我正在尝试为ARM(万能板)构建Linux并使用Qemu进行仿真:
我按照以下教程进行操作。
在下载Qemu和arm-linux-gnueab工具链之后,步骤基本上如下:
make -C build ARCH=arm distclean
make -C build ARCH=arm versatile_defconfig
make -C build ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
qemu-system-arm -M versatileab -m 256M -kernel build/arch/arm/boot/zImage -append "console=ttyS0" -serial stdio -dtb build/arch/arm/boot/dts/versatile-ab.dtb
然而,我得到的是一个黑屏,顶部有光标和以下消息:
pulseaudio: set_sink_input_volume() failed
pulseaudio: Reason: Invalid argument
pulseaudio: set_sink_input_mute() failed
pulseaudio: Reason: Invalid argument
Uncompressing Linux... done, booting the kernel.
vpb_sic_write: Bad register offset 0x2c
我不确定问题出在哪里:是内核配置有误?还是dtb?消息并没有提供很多信息。欢迎您的建议。
Qemu版本:
qemu-system-arm --version
QEMU emulator version 2.0.0 (Debian 2.0.0+dfsg-2ubuntu1.31), Copyright (c) 2003-2008 Fabrice Bellard
我的机器:
uname -a
Linux user-SATELLITE-C855-169 4.2.0-27-generic #32~14.04.1-Ubuntu SMP Fri Jan 22 15:32:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
arch/arm/boot/dts/versatile-pb.dts
中搜索uart
,您将找到驱动程序名称pl011
。搜索该文件名,您会发现drivers/tty/serial/amba-pl011.c
。在该文件中搜索struct uart_driver
,您会找到一个结构体,其中.dev_name =“ttyAMA”
-这是您应该使用的名称(附加设备索引号)。 - matja