最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】buildroot-2009.08中的mkdev制作rootfs的设备文件 好像有问题

Buildroot crifan 2280浏览 0评论

【问题】

在用buildroot-2009.08,但是,在make之后,虽然

project_build_arm/uclibc/下面会有root文件夹,有对应的rootfs文件,但是其

project_build_arm/uclibc/root/dev/下面的设备文件,都是普通文件:

-rw-r----- 1 root root     0 2010-01-29 16:53 project_build_arm/uclibc/root/dev/mtdblock1
-rw-r----- 1 root root     0 2010-01-29 16:53 project_build_arm/uclibc/root/dev/mtdblock2
-rw-r----- 1 root root     0 2010-01-29 16:53 project_build_arm/uclibc/root/dev/mtdblock3

而不是此类的设备文件:

brw-r----- 1 root root 31,    2 2010-01-29 16:58 project_build_arm/uclibc/root/dev/mtdblock2

【解决办法】

注意到,在make的时候,显示的:

echo "/home/eric/buildroot/buildroot-2009.08/build_arm/host_dir/usr/bin/makedevs -d target/generic/device_table.txt /home/eric/buildroot/buildroot-2009.08/project_build_arm/uclibc/root"

所以,先去删除已经生成的那些普通文件:

[root@linux-41lh buildroot-2009.08]$rm project_build_arm/uclibc/root/dev/* -rf

 

再去单独调用此工具去生成对应的 device file:

[root@linux-41lh buildroot-2009.08]$/home/eric/buildroot/buildroot-2009.08/build_arm/host_dir/usr/bin/makedevs -d target/generic/device_table.txt /home/eric/buildroot/buildroot-2009.08/project_build_arm/uclibc/root
rootdir=/home/eric/buildroot/buildroot-2009.08/project_build_arm/uclibc/root
table='target/generic/device_table.txt'

就可以正常生成设备文件了:

[root@linux-41lh buildroot-2009.08]$ls project_build_arm/uclibc/root/dev/* -l                                                        crw-rw-rw- 1 root root    5,    1 2010-01-29 16:58 project_build_arm/uclibc/root/dev/console
crw-r----- 1 root tty    29,    0 2010-01-29 16:58 project_build_arm/uclibc/root/dev/fb0
crw-r----- 1 root tty    29,    1 2010-01-29 16:58 project_build_arm/uclibc/root/dev/fb1
 
。。。
 
brw-r----- 1 root root 31,    2 2010-01-29 16:58 project_build_arm/uclibc/root/dev/mtdblock2
brw-r----- 1 root root 31,    3 2010-01-29 16:58 project_build_arm/uclibc/root/dev/mtdblock3
 
。。。

如果上面不删除旧的那些普通文件就直接调用mkdev生成新的设备文件,那么就会显示文件已存在,而无法创建。所以,总的来说,貌似是buildroot对mkdev的调用有问题。

其根本原因,后来搞清楚了,详情参考:

【workaround】buildroot下面make编译,最后生成的rootfs中的特殊的设备文件,实际是普通文件

https://www.crifan.com/workaround_buildroot_make_to_compile_the_following_and_finally_generate_the_rootfs_in_the_special_device_file_the_file_is_actually_a_common/

转载请注明:在路上 » 【已解决】buildroot-2009.08中的mkdev制作rootfs的设备文件 好像有问题

与本文相关的文章

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
83 queries in 0.171 seconds, using 22.98MB memory