我在buildroot的帮助下为arm开发板编译了根文件系统,我的rootfs包含tinyx服务器和窗口管理器match box,然后通过下面的脚本启动了x服务器。
导出显示=:0
x-wr-keybd键盘-鼠标和(tinyx)
火柴盒会话&
我面临的问题是tinyx服务器中的键盘不工作。
tinyx服务器正在生成以下错误消息
“驱动程序Linux控制台键盘希望在[0,0]之外发布扫描代码57!”
所有按键和释放。
但是老鼠工作得很好。
有人能给我一些解决这个问题的建议吗?
最佳答案
env:qemu qemu系统arm 1.2.0版,在ubuntu 12.10主机上。
来宾:内核3.2.21
模拟板:ARMV7L Verstatile Express
根文件系统,支持x,等等,使用buildroot ver 12.08;tinyx x服务器构建。
运行qemu:
/usr/bin/qemu-system-arm -M vexpress-a9 -kernel <kernel> -drive file=<rootfs-ext2-img>,if=sd -append "console=ttyAMA0,115200 root=/dev/mmcblk0 init=/myinit.sh" -serial stdio -net nic,model=lan9118 -net user
在运行guest之后,我们有一个控制台窗口和一个图形qemu窗口(一开始是空的)。
在来宾控制台窗口中:
开始X:
Xfbdev :0 -keybd evdev,,device=/dev/input/event0 -mouse evdev,,device=/dev/input/event1 &
然后加载xterm等。
我使用一个简单的脚本,这里是:
# cat Xstart.sh
#!/bin/ash
unset USERNAME LOGNAME
echo Setting up X server ..
# kill any stale instance
kill $(ps |grep Xfb|head -n1|awk '{print $1}') 2> /dev/null
export DISPLAY=:0
# How to determine 'mouse' dev?
# dmesg shows :
# input: AT Raw Set 2 keyboard as /devices/mb:kmi0/serio0/input/input0
# input: ImExPS/2 Generic Explorer Mouse as /devices/mb:kmi1/serio1/input/input1
# QEMU_ARM_BR / # ls /sys//devices/mb:kmi1/serio1/input/input1
# capabilities/ id/ name properties uniq
# device@ modalias phys subsystem@
# event1/ mouse0/ power/ uevent
# Can see the only 'event' file is 'event1', so we use it!
Xfbdev :0 -keybd evdev,,device=/dev/input/event0 -mouse evdev,,device=/dev/input/event1 &
sleep 1
echo "Running fluxbox & xterm .."
DISPLAY=:0 xterm 2> /dev/null &
DISPLAY=:0 fluxbox 2> /dev/null &
echo "### Please wait a bit for X to initialize & come up ... ###"
sleep 3
echo "Press [Enter] to use this console..."
read
#
注意关于如何确定鼠标、键盘设备的提示:查找dmesg输出。