栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

ZynqLinux最小系统系列—— 7、Petalinux ubifs分区自动挂载以及用户脚本自启动

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ZynqLinux最小系统系列—— 7、Petalinux ubifs分区自动挂载以及用户脚本自启动

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

ZynqLinux最小系统系列—— 7、Petalinux ubifs分区自动挂载以及用户脚本自启动
  • 前言
  • 创建自启动脚本
  • 总结


前言

接上一篇,我们已经完成了Petalinux最小系统的搭建,并且手动挂载了ubifs分区。但是如何在上电的时候让其自动挂载还没实现。我接触的应用的一般情况下,LINUX系统起来之后都需要自动运行一个脚本用于指向位于FLASH中的用户sh文件,这样用户开发就可以以这个sh文件作为起点,进行更上一层的开发。

创建自启动脚本

那我们现在就需要一个这样的startup文件,系统加载完成之后接下来就来执行这个shell脚本文件,这个sh脚本文件要包含以下内容
1、 挂载QPSI中的user1为ubifs分区挂载点为/flash/user1
2、 同时再这个sh文件的最后,要指向位于/flash/user1中的user.sh脚本

petalinux-create -t apps --template install -n startup --enable

在project-spec/meta-user/recipes-apps文件夹内会出现startup文件夹
在startup/files内有startup文件,将其内容修改为我们需要的内容:

#!/bin/sh


mkdir -p /flash/user1
ubiattach /dev/ubi_ctrl -m 4
sleep 1
if [ -e /dev/ubi0_0 ]; then
mount -t ubifs /dev/ubi0_0 /flash/user1
else
ubiformat /dev/mtd4
ubiattach /dev/ubi_ctrl -m 4
ubimkvol /dev/ubi0 -N qspi_ubi0 -m
mount -t ubifs /dev/ubi0_0 /flash/user1
fi


echo "PetaLinux GO GO GO"

sh /flash/user1/user.sh

同时在startup文件夹内的startup.bb文件,需要修改为:

#
# This file is the startup recipe.
#

SUMMARY = "Simple startup application"
SECTION = "PETALINUX/apps"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI = "file://startup 
	"

S = "${WORKDIR}"

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

inherit update-rc.d

INITSCRIPT_NAME = "startup"
INITSCRIPT_PARAMS = "start 99 S ."

do_install() {
	     install -d ${D}${sysconfdir}/init.d
         install -m 0755 ${S}/startup ${D}${sysconfdir}/init.d/startup
}

FILES_${PN} += "${sysconfdir}/*"

然后重新进行工程的编译

Petalinux-build

编译完成后,重新打包,并且烧写。

重新上电,如果最末尾有如下打印,则表示ubifs文件分区挂载成功


如果是第一次挂载,/flash/user1应该为空,会提示user.sh文件不存在。那么我们把user.sh文件放进去,我们可以通过ftp方式放进去,把网口插上,设置一个IP地址
Ifconfig eth0 192.168.197.241

在windows文件浏览器中输入 ftp://192.168.197.241
把准备好的user.sh和test.sh文件放到/flash/user1文件夹中去

User.sh

#!/bin/sh

cd /flash/user1

sh test.sh &

echo "user app can use!!!!"

Test.sh

#!/bin/sh

sleep 5
ifconfig eth0 192.168.197.241

重新上点,发下如下打印,则表示User.sh运行起来了


在查询下IP 地址,本地网口的IP地址也配置上了,实验成功。

总结

有了这些基础,后面就可以把更复杂的应用通过user.sh来进行加载和启动了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/973749.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号