Как подключить клавиатуру к tinyX серверу - PullRequest
1 голос
/ 07 декабря 2011

Я скомпилировал корневую файловую систему для моей платы разработки рук с помощью buildroot. Мой rootfs содержит сервер TinyX и match-box в качестве оконного менеджера. Затем я запустил сервер x с помощью приведенного ниже сценария.

экспорт DISPLAY =: 0

X -wr -keybd клавиатура-мышка & (TinyX)

сессия спичечных коробок &

Проблема, с которой я сталкиваюсь, заключается в том, что на сервере TinyX не работает клавиатура. Сервер TinyX выдает следующее сообщение об ошибке "Драйвер консоли Linux на клавиатуре хотел опубликовать скан-код 57 вне [0, 0]!" для всех нажатия и отпускания клавиш. Но мышь работает нормально.

Кто-нибудь может дать мне несколько советов по устранению этой проблемы?

1 Ответ

2 голосов
/ 21 ноября 2012

Env: QEMU qemu-system-arm ver 1.2.0 на хосте Ubuntu 12.10. Гость: ядро ​​3.2.21

Эмулированная плата: ARMv7l Verstatile Express

Корневая файловая система с поддержкой X и т. Д., Созданная с использованием Buildroot ver 12.08; TinyX X сервер.

Ран Кему с:

/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

Как только гость запускается, у нас есть консольное окно и графическое окно 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 ..

...