请问qemu-arm 和 qemu-arm-static 有什么区别?
qemu-arm 需要依赖一些库才能运行,不适合chroot场合,因为还要拷贝这些库到新的rootfs里面,甚至可能无法运行;
qemu-arm-static 是静态链接的,单个文件就能运行。qemu-arm-static比qemu-arm大不少。
$ sudo chroot ${PWD} /bin/sh
/ # passwd
Changing password for root
New password:
Bad password: too weak
Retype password:
qemu: Unsupported syscall: 382
passwd: Function not implemented
passwd: can't update password file /etc/shadow
/ # whoami
root
奇怪, 我的更新不了密码?
]]>应该可以的,最终的rootfs.tar是由target打包成的。修改后make试试,会打包进rootfs.tar
这个文件里面有解释了, 因为 buildroot 支持普通用户进行制作根文件系统,tartget/ 下面的文件 **可能** 并不是 root 创建,再这种情况,是没权限进行创建设备节点之类的动作的。 这里可能大家都是 root 用户下执行的,所以可以工作。另外一点是,buildroot 有个 post 脚本会再打包前执行,如果直接用 target/,相当于错过了这个步骤。
]]>