Filesystems /dev/ttyS0 can';不得在Qemu开放

Filesystems /dev/ttyS0 can';不得在Qemu开放,filesystems,arm,qemu,buildroot,Filesystems,Arm,Qemu,Buildroot,我正在使用QEMU 1.1.0,用ARM Cortex-A9模拟多功能Express板。我已经按照以下说明启动了简单的“Hello World”示例: 但现在我想自己创建文件系统 我决定使用buildroot,版本2012.05。我已经将其配置为为为ARM Cortex-A9目标创建工具链、内核和文件系统映像 内核的版本是3.3.7,对于我选择的cpio文件系统,它是非压缩的。qemu系统arm调用中的initrd参数指向 /output/images/rootfs.cpio 当我启动QEMU

我正在使用QEMU 1.1.0,用ARM Cortex-A9模拟多功能Express板。我已经按照以下说明启动了简单的“Hello World”示例:

但现在我想自己创建文件系统

我决定使用buildroot,版本2012.05。我已经将其配置为为为ARM Cortex-A9目标创建工具链、内核和文件系统映像

内核的版本是3.3.7,对于我选择的cpio文件系统,它是非压缩的。qemu系统arm调用中的initrd参数指向

/output/images/rootfs.cpio

当我启动QEMU内核引导时,我收到以下消息:

正在初始化随机数生成器。。。完成。

启动网络…

无法打开/dev/ttyS0:没有这样的设备或地址

无法打开/dev/ttyS0:没有这样的设备或地址

无法打开/dev/ttyS0:没有这样的设备或地址

我所能做的就是终止QEMU

我检查了rootfs.cpio的内容,如下所示:

cpio-t 并看到有/dev/ttyS0

我在配置文件系统时是否遗漏了什么?或者我应该在中使用文件系统

/output/target

以某种方式在那里创建设备(Buildroot不这样做),然后重建文件系统


我是Buildroot新手,所以任何提示或建议都非常受欢迎。

提取rootfs并键入ls-all
/dev/ttyS0
,然后检查它的
主要
次要
编号。因为如果您的主要号码不是必需的,那么它将不会调用相应的内核功能,在这种情况下,它将只是一个垃圾字符设备

你也可以发布整个日志文件(复制所有的dmesg并发布到某个地方,并在这里提供链接。)

如果确定存在/dev/ttyS0,请执行以下步骤:

  • 提取(使用cpio解包)rootfs

  • 找出哪个init文件内核用作父进程。如果幸运的话,它将位于根目录中。命名为
    init
    initrc

  • 在您喜爱的编辑器中打开
    init
    文件
  • 从init的几行开始

    ::重生:/sbin/getty-L 38400 tty1
    ::重生:/sbin/getty-L 38400 tty2
    ::重生:/sbin/getty-L 38400 tty3
    ::重生:/sbin/getty-L 38400 tty4

  • 添加
    ::respawn:/sbin/ls-all/dev
    并保存文件。(我们添加了list命令以查看/dev目录中的内容)

  • 重新启动系统并检查dmesg。查看是否确实缺少
    /dev/ttyS0

如果
/dev
目录中没有
tty
,我能做什么?