imx6q yocto通过bitbake自动生成的根文件系统与之前差异较大,外置sd卡无法挂载,#grep "udevd" rootfs -r发现启动的都不是以前/sbin下的守护进程,变成了/lib/udev/udevd,试图编最新的udev-182,解了一堆的配置与编译的依赖,最后还是链接不过,果断放弃!重新移植udev-100,步骤如下:
一、下载udev-100包后,修改Makefile如下:
CROSS_COMPILE ?=/opt/fsl-imx-fb/4.1.15-1.2.0/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-
CC = $(CROSS_COMPILE)gcc -mfloat-abi=hard -mfpu=neon --sysroot=/opt/fsl-imx-fb/4.1.15-1.2.0/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi
LD = $(CROSS_COMPILE)gcc -mfloat-abi=hard -mfpu=neon --sysroot=/opt/fsl-imx-fb/4.1.15-1.2.0/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi
编译中报错:
udevd.c: In function 'main':
udevd.c:1006:14: error: 'PRIO_PROCESS' undeclared (first use in this function)
setpriority(PRIO_PROCESS, 0, UDEVD_PRIORITY);
解决方法:
在udevd.c中加入头文件:
#include <sys/time.h>
#include <sys/resource.h>
即可编译完成,生成udev、udevd、udevstart、udevinfo、udevtest,将其替换/sbin下对应文件。</

本文介绍了在imx6q yocto环境下移植udev-100的完整过程,包括修改Makefile以适应交叉编译环境,解决编译错误,替换/sbin下的udevd及相关文件,更新rootfs中udevd的调用路径,修改/etc/init.d/rcS脚本以启动udevd,以及调整/etc/udev/rules.d/12-add-sd.rules文件以适应系统分区变化。
最低0.47元/天 解锁文章
511

被折叠的 条评论
为什么被折叠?



