我正在构建 QNX OS (BSP 7.0 x86_64) 并且我有一个工作映像。我在 qemu 模拟环境上运行它。
Qemu虚拟机运行在Windows主机中,调用如下:
./qemu-system-x86_64.exe -m 1G -smp 4
-hda QNX.img
-realtime mlock=off -vga std -sdl
-nic tap,id=mynet0,ifname=tap0,model=e1000,script=no,downscript=no
开始后我运行:
export GRAPHICS_ROOT=/usr/lib/graphics/intel-drm
export LD_LIBRARY_PATH=$(getconf _CS_LIBPATH):$GRAPHICS_ROOT
使用有效的环境变量,我启动 intel-drm。没有生成日志,因此看起来它工作正常。
pidin | grep drm-intel
430102 1 _64/sbin/drm-intel 10r SIGWAITINFO
430102 2 _64/sbin/drm-intel 10r CONDVAR (0x8452bb0)
430102 3 _64/sbin/drm-intel 10r CONDVAR (0x824cefc)
430102 4 _64/sbin/drm-intel 10r RECEIVE 1
430102 5 _64/sbin/drm-intel 10r RECEIVE 1
430102 6 _64/sbin/drm-intel 10r RECEIVE 1
462873 1 _64/sbin/drm-intel 10r SIGWAITINFO
462873 2 _64/sbin/drm-intel 10r CONDVAR (0x8452bb0)
462873 3 _64/sbin/drm-intel 10r CONDVAR (0x824cefc)
462873 4 _64/sbin/drm-intel 10r RECEIVE 1
462873 5 _64/sbin/drm-intel 10r RECEIVE 1
462873 6 _64/sbin/drm-intel 10r RECEIVE 1
当尝试启动 drm-probe-displays 时就会出现问题。执行后立即崩溃并导致 intel-drm 崩溃。
Process 577558 (drm-intel) terminated SIGSEGV code=1 fltno=11 ip=000000000809057f(/x86_64/sbin/drm-intel@main+0x000000000003181f) mapaddr=000000000004857f. ref=0000000000000028
Please run drm server first!
# Jun 16 10:07:54.049 dumper.4 slog 0 run fault pid 577558 tid 4 signal 11 code 1 ip 0x809057f x86_64/sbin/drm-intel
Jun 16 10:07:54.050 dumper.4 slog 0 pid 577558 core file created at /tmp/drm-intel.core
目前还没有关于此次事故的更多信息。通过检查 pci-tool,我可以看到设备供应商 ID/设备 ID 不是英特尔特定的。
可能是该设备产生的错误吗?
如果是这样,有谁知道如何在 qemu 上模拟英特尔显卡?
B000:D02:F00 @ idx 4 vid/did: 1234/1111 Technical Corp, <设备 ID - 未知> 类/子类/reg: 03/00/00 PC 兼容 VGA 显示控制器
关于根本原因可能是什么的任何线索吗?