1.下载UDEV源码udev-080.tar.bz2
2.交叉编译。
修改Makefile,具体修改如下:
CROSS = arm-none-linux-gnueabi-
保存退出。
3.修改源码
编辑udevmonitor.c文件
#vi udevmonitor.c
找到第53行
addrlen = offsetof(struct sockaddr_un, sun_path) + strlen(saddr.sun_path +1) + 1;
修改为:
addrlen = __builtin_offsetof(struct sockaddr_un, sun_path) + strlen(saddr.sun_path+1) + 1;
然后保存退出。
4.编译
执行命令:make 进行编译,将udev udevd udevstart udevinfo udevtest拷贝到rootfs/bin(即为目标机里面)目录下面.
下面三种方法功能相同(目标机中)
(1)并修改etc/init.d/rcS脚本,然后添加如下命令:
/bin/mount -t sysfs sysfs /sys
(首先创建这个目录)
/bin/mount -t tmpfs tmpfs /dev
/bin/udevd --daemon
/bin/udevstart
(2)如果linuxrc是二进制文件的话
rm /linuxrc
vi /linuxrc
添加如下内容
/bin/mount -t sysfs sysfs /sys
(首先创建这个目录)
/bin/mount -t tmpfs tmpfs /dev
/bin/udevd --daemon
/bin/udevstart
exec /sbin/init
(3)修改/etc/fstab为
#device mount-point type options dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
修改/etc/init.d/rcS,添加如下内容
/bin/udevd --daemon
/bin/udevstart
2.交叉编译。
修改Makefile,具体修改如下:
CROSS = arm-none-linux-gnueabi-
保存退出。
3.修改源码
编辑udevmonitor.c文件
#vi udevmonitor.c
找到第53行
addrlen = offsetof(struct sockaddr_un, sun_path) + strlen(saddr.sun_path +1) + 1;
修改为:
addrlen = __builtin_offsetof(struct sockaddr_un, sun_path) + strlen(saddr.sun_path+1) + 1;
然后保存退出。
4.编译
执行命令:make 进行编译,将udev udevd udevstart udevinfo udevtest拷贝到rootfs/bin(即为目标机里面)目录下面.
下面三种方法功能相同(目标机中)
(1)并修改etc/init.d/rcS脚本,然后添加如下命令:
/bin/mount -t sysfs sysfs /sys
(首先创建这个目录)
/bin/mount -t tmpfs tmpfs /dev
/bin/udevd --daemon
/bin/udevstart
(2)如果linuxrc是二进制文件的话
rm /linuxrc
vi /linuxrc
添加如下内容
/bin/mount -t sysfs sysfs /sys
(首先创建这个目录)
/bin/mount -t tmpfs tmpfs /dev
/bin/udevd --daemon
/bin/udevstart
exec /sbin/init
(3)修改/etc/fstab为
#device mount-point type options dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
修改/etc/init.d/rcS,添加如下内容
/bin/udevd --daemon
/bin/udevstart
拷贝(宿主机)etc/udev目录到(目标机) /rootfs/etc