基于busybox的内核运行时出现如下错误:
/bin/sh: can't access tty; job control turned off
其VM运行命令如下:
qemu-system-x86_64 \
-kernel obj/linux-x86/arch/x86_64/boot/bzImage \
-initrd obj/initramfs-busybox-x86.cpio.gz \
-nographic -append "console=ttyS0"
解决方案如下:在init文件中加入如下行
mknod -m 666 /dev/ttyS0 c 4 64
完整的init文件:
mount -t proc none /proc
mount -t sysfs none /sys
mknod -m 666 /dev/ttyS0 c 4 64
mknod -m 666 /dev/null c 1 3
mknod -m 666 /dev/zero c 1 5
mknod -m 666 /dev/ptmx c 5 2
mknod -m 666 /dev/tty c 5 0 # <--
mknod -m 444 /dev/random c 1 8
mknod -m 444 /dev/urandom c 1 9
chown root:tty /dev/{console,ptmx,tty}
exec sh
...
评论