作者:硬码农二毛哥,本文转载自:硬码农二毛哥微信公众号
FZU5构建Linux系统过程和FZU3类似,FZU3构建过程参照前一篇文章。下面主要描述一下不同的地方。
1. Kernel配置
在petalinux工程文件夹中运行petalinux-config -c kernel
进入Device Drivers ->Generic Driver options -> DMA ContiguousMemory Allocator
将CMA设置成1500,如下图所示。
![](http://xilinx.eetrend.com/files/2021-08/%E5%8D%9A%E5%AE%A2/100552593-215656-01.png)
2. Rootfs配置
1. 将例程gstreamer-vcu-examples加入Rootfs中。在
2. 运行petalinux-config -crootfs
在user_packages中选中gstreamer-vcu-examples。
3. 配置gstreamer
在Filesystem Packages->multimedia中所有gstreamer全部选中。
![](http://xilinx.eetrend.com/files/2021-08/%E5%8D%9A%E5%AE%A2/100552593-215657-wechatimg1.jpeg)
将Petalinuxlinux_Packgae_Groups中与gstreamer相关的选项选中。
![](http://xilinx.eetrend.com/files/2021-08/%E5%8D%9A%E5%AE%A2/100552593-215658-wechatimg2.jpeg)
4.DP显示相关配置
packagegroup-petalinux-qt
packagegroup-petalinux-x11
packagegroup-petalinux-opencv
Filesystem Package->libs->libmail-xlnx
3. 修改设备树
上述过程完成后,重新构建镜像使用petalinux-build,生成镜像,将生成镜像和文件系统拷贝到sd卡启动。启动后使用ifconfig指令,显示如下:
![](http://xilinx.eetrend.com/files/2021-08/%E5%8D%9A%E5%AE%A2/100552593-215659-wechatimg3.jpeg)
找不到eth0,这是由于网口设备设置树设置有问题。
在FZU3构建软件系统过程中,并没有修改设备树,系统正常启动,网口也正常。但FZU5网口出现异常,查看原理图,两个单板使用PHY芯片不同。FZU5使用DP83867芯片,需要设置地址。如下图所示,通过设置Rhi和RIo阻值,设置不同的模式,根据RX_D0和RX_D2的值设定phy地址。FZU5的PHY地址为5,需要对设备树做如下修改,修改后网口正常工作。
&gem3 {
phy-handle= <&phy0>;
pinctrl-names= "default";
pinctrl-0= <&pinctrl_gem3_default>;
phy0:phy@5 {
reg= <0x5>;
ti,rx-internal-delay= <0x8>;
ti,tx-internal-delay= <0xa>;
ti,fifo-depth= <0x1>;
ti,dp83867-rxctrl-strap-quirk;
};
};
&pinctrl0 {
status= "okay";
pinctrl_gem3_default:gem3-default {
mux{
function= "ethernet3";
groups= "ethernet3_0_grp";
};
conf{
groups= "ethernet3_0_grp";
slew-rate= <1>;
io-standard= <1>;
};
conf-rx{
pins= "MIO70", "MIO71", "MIO72", "MIO73","MIO74",
"MIO75";
bias-high-impedance;
low-power-disable;
};
conf-tx{
pins= "MIO64", "MIO65", "MIO66", "MIO67","MIO68",
"MIO69";
bias-disable;
low-power-enable;
};
mux-mdio{
function= "mdio3";
groups= "mdio3_0_grp";
};
conf-mdio{
groups= "mdio3_0_grp";
slew-rate= <1>;
io-standard= <1>;
bias-disable;
};
};
};