Giriş aygıtından giriş hata ayıklama (/ dev / input / event *)


19

Imon sürücüsünü kullanan bir IR alıcısı var ve çekirdeği ile çalışmak istiyorum. Şu anda uzaktan kumandadaki ( görüntü ) tuşların yarısı çalışıyor, ancak sayısal tuşlar gibi tüm önemli bir düşünce çalışmıyor!

Garip düşünce, çekirdek tuş haritası modülünün (rc-imon-pad) doğru gibi göründüğü, ancak aynı tuşların bu modül olmadan çalıştığı için gerçekten kullanılmadığı anlaşılıyor.

Görünüşe göre, imon yüklediğimde rc-imon-pad modülü her zaman yüklenir ve daha sonra anahtar kodlarının önbelleğe alındığından şüphelenirim, bu yüzden rc-imon-pad'i kaldırırsam bir fark yaratmaz

Şimdi kayboldum, eğer yaparsam cat /dev/input/event5veya ir-keytable -thangi tuşa bastığım önemli değil, veri varsa, bu yüzden sürücü düğmeleri kaydeder, ancak sadece yanlış anahtar kodlarına çevrilmiş gibi görünüyorlar.

Çekirdeklerim Natty'den bir ubuntu hisse senedi çekirdeğidir (Linux xbmc 2.6.37-11-generic # 25-Ubuntu SMP Salı 21 Ara 23:42:56 UTC 2010 x86_64 GNU / Linux)


2
Sorun, çekirdeğin işaretsiz bir 8 bit tam sayı ile sınırlı olduğu için X'in kaydetmediği 255'ten büyük anahtar kodları göndermesi gibi görünüyor. Ve şimdi bu teoriyi test etmek için çekirdek modülünü değiştirilmiş
anahtar kodlarıyla yeniden derliyorum

1
Btw, bunun yerine güzel ayrıştırılmış bilgi veren catkullanabilirsiniz evtest.
9000

Yanıtlar:


3

Aynı uzaktan kumandayım var ve 2.6.38-gentoo-r3 çekirdeğime doğru anahtar kodları gönderiyorum. Anahtar kodlarını modül olarak derlemedim, çünkü muhtemelen tek tek tuş haritalarını seçmeyi mümkün kılacak zamanları yoktu. Hepsi ya da hiçbir şey ve ben beni darmadağın eden bir milyarlarca yararsız modülü sevmiyorum. Bunun yerine v4l-utils udev ile işlemesine izin veriyorum.

Öğrendiğim birkaç şey:

  • İr-keytable -r çıkışını kontrol edin , uzaktan kumandanız için geçerli tüm anahtar kodlarını listelemelidir .
  • Anahtar tablosunu manuel olarak yükleyin: ir-keytable -c -w bleh / keymaps / imon_pad, bundan sonra ir-keytable -r size tabloyu geri vermelidir
  • Aslında hatalı bir alıcınız olabilir, tarih hakkında hiçbir şey söylemezsiniz. Lirc listesinde en az bir mesaj gördüğümü hatırlıyorum, burada adamın davayı geri göndermesi ve yeni bir mesaj alması sorunları çözdü.

Nasıl gittiğini bize bildirin.


Bu yanıtı kontrol ettiğinizden emin olun, xinput testburada çok kullanışlı. unix.stackexchange.com/a/6231/27902
Elijah Lynn

17

Yararlı xinput listve bulabilirsiniz xinput test <device>.

Örneğin,

$ xinput listesi
⎡ Sanal çekirdek işaretçi kimliği = 2 [ana işaretçi (3)]
Core ↳ Sanal çekirdek XTEST işaretçi kimliği = 4 [bağımlı işaretçi (2)]
PS ↳ SynPS / 2 Synaptics Dokunmatik Yüzey id = 11 [bağımlı işaretçi (2)]
⎣ Sanal çekirdek klavye kimliği = 3 [ana klavye (2)]
    Core Sanal çekirdek XTEST klavye kimliği = 5 [bağımlı klavye (3)]
    ↳ Güç Düğmesi kimliği = 6 [bağımlı klavye (3)]
    ↳ Video Veri Yolu kimliği = 7 [bağımlı klavye (3)]
    ↳ Uyku Düğmesi kimliği = 8 [bağımlı klavye (3)]
    ↳ Asus Laptop ekstra düğmeleri id = 9 [slave klavye (3)]
    Trans AT Çeviri Seti 2 klavye kimliği = 10 [bağımlı klavye (3)]

ve her türlü giriş olayı için xinput test 10klavyemi ( ) veya dokunmatik yüzümü ( xinput test 11hatta çift xinput test "SynPS/2 Synaptics TouchPad") izleyebilirim ve konsola oldukça yazdırılırlar ve parametreler de çıkarılır ve yazdırılır.

Bu, sorununuzu çözmez, ancak en azından örneğin oluşan dağınıklığı deşifre ederek biraz yardımcı olacaktır cat /dev/input/event1.


1
Çok teşekkür ederim! Bu cevaba dayanarak bir klavye dedektörü inşa ettim .
l0b0
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.