0、确保文件系统从SD卡启动
参考petalinux 的rootfs文件系统放在SD 分区上
1、进入项目文件夹

2、新建应用
例如,需要添加openvswitch应用时
petalinux-create -t apps --template install --name openvswitch --enable
3、移植官方应用
以openvswitch为例,进入petalinux安装目录,搜索openvswitch

打开第一个文件夹

上面文件夹不要关,再打开项目中刚刚创建的应用文件夹,位置在:项目名/project-spec/meta-user/recipes-apps/openvswitch
可以看到有一个files文件夹和一个openvswitch.bb文件,删除这两个文件,这是默认自动创建的文件,删了没关系
将上图文件夹中的所有内容拷贝到该文件夹中(即替换原来的文件)
注意,.bb文件其实就是告诉petalinux编译的时候这个应用去哪里下载,怎么安装,.bb文件的文件名,若带有下划线,下划线后面的是应用版本,编译时.bb文件会读取自身文件名,找到对应版本去安装,所以如果安装的时候版本没找到,修改.bb文件的文件名即可
4、添加对应依赖包
有些app除了.bb文件外还有.inc文件,安装这些app需要添加对应的依赖包,具体依赖包在.inc文件中关键词DEPENDS后有给出,若不添加依赖包,build的时候不会报错,但是最终会导致添加的app不能正常运行。
打开openvswitch.inc,找到DEPENDS,可以看到openvswitch需要bridge-utils、openssl、python及perl依赖,后面配置文件系统的时候把这些包都勾选即可。

5、配置文件系统
运行指令
petalinux-config -c rootfs

进入Fliesystem Packages后找到对应依赖包勾选,可输入"/"搜索依赖包所在路径,以openssl为例


可以看到openssl的路径,=y是因为我已经勾选了,如果=n未勾选,就到对应路径勾选即可


勾选所有依赖后,进入user pakages可以看到刚刚添加的openvswitch


确认无误save后exit
6、编译
运行指令进行编译
petalinux-build

编译好的文件系统位于:项目名/images/linux/rootfs.tar.gz
将该压缩文件解压到SD卡中的EXT4格式的分区即可 |