2

有人可以帮助我了解我需要如何配置 buildroot,以便我能够成功启动自己的文件系统并登录到它吗?

我有一个(看似)工作的内核,现在我创建了自己的文件系统(实际上并没有更改构建根目录中的任何设置,除了将控制台设置为 ttyAMA0),但引导过程似乎挂起,对此没有任何问题:

....
[    3.130000] VFS: Mounted root (ext3 filesystem) on device 179:2.
[    3.140000] Freeing init memory: 144K
Starting logging: OK
Starting network...
ip: RTNETLINK answers: Operation not permitted
ip: SIOCSIFFLAGS: Permission denied

整个启动日志在这里可见:http: //paste.ubuntu.com/1364407/

我了解 /etc/inittab 控制启动过程,内容如下所示:

# Startup the system
null::sysinit:/bin/mount -t proc proc /proc
null::sysinit:/bin/mount -o remount,rw / # REMOUNT_ROOTFS_RW
null::sysinit:/bin/mkdir -p /dev/pts
null::sysinit:/bin/mkdir -p /dev/shm
null::sysinit:/bin/mount -a
null::sysinit:/bin/hostname -F /etc/hostname
# now run any rc scripts
::sysinit:/etc/init.d/rcS

# Put a getty on the sttyAMA0::respawn:/sbin/getty -L ttyAMA0 115200 vt100 # GENERIC_SERIAL

# Stuff to do for the 3-finger salute
::ctrlaltdel:/sbin/reboot

# Stuff to do before rebooting
null::shutdown:/etc/init.d/rcK
null::shutdown:/bin/umount -a -r
null::shutdown:/sbin/swapoff -a

关于我的配置有什么问题的任何建议?在创建我自己的 linux 系统时,我可以在哪里获得所需的“通常必要的配置”的一个很好的概述?

4

1 回答 1

6

这个问题是由 Buildroot 邮件列表上的提交者提出的。解决方案是提交者直接使用 Buildroot 输出/目标目录的内容作为其根文件系统,即使 Buildroot 文档明确告知不要这样做。这是因为 Buildroot 不以 root 身份运行,因此无法在输出/目标中正确创建设备文件或调整权限/所有权。这些步骤是在创建根文件系统映像时完成的,这要归功于一个名为 fakeroot 的神奇工具。

因此,如果有人想要将根文件系统提取到 SD 卡分区或类似的东西上,应该让 Buildroot 生成一个 tar 映像,然后以 root 身份将其提取到 SD 卡分区中。

由于这个问题很常见,我们现在在 output/target 中添加了一个名为 THIS_IS_NOT_YOUR_ROOT_FILESYTEM 的文件,其中包含有关此问题的详细信息。请参阅http://git.buildroot.net/buildroot/commit/?id=9226a9907c4eb0fffab777f50e88b74aa14d1737

于 2012-11-17T18:23:43.227 回答