記一次Linuxx下驅動安裝排錯經歷


昨天在狗東上買了個雷柏v500合金版黑軸機械鍵盤,今天到貨之后滿懷興奮地裝上到了我從公司帶回來的thinkpad上,結果發現alt鍵和ctrl鍵是失靈的。


進一步測試發現,這兩個鍵並沒有失靈,它們特喵的被映射到了shift鍵上……


面對這種情況,我雖然感到很失望,但一點也不意外,畢竟Linux這個系統的風格就是這樣的。自己動手,豐衣足食,驅動不合適,自己寫一個啊!


否則我也不會到現在為止在Linux下連一個好用的qq版本都找不到了。


在網上搜索了一番之后,找到了這個:https://github.com/kinglongmee/rapoo-keyboard-driver


git clone下來,照着README.md,sudo make; sudo make install; ./installdriver.sh,咦,為什么報錯:

rmmod: ERROR: Module hid_rapoo is not currently loaded

rmmod: ERROR: Module hid_generic is not currently loaded

重試指令,不行;

重啟機器了,還是不行;

究竟是什么原因呢?

難道是linux head 4.4.10的版本太新了?不至於吧,這個git repo可是5個月之前才更新的。

所以這個報錯信息是什么意思呢?

先查了一下rmmod這個命令,man rmmod,哦,是remove module的意思。

那么報is not currently loaded,就能明白是怎么回事了:如果說一個模塊目前沒有被加載,那么它確實是沒辦法被移除的。

好了,所以,這兩個模塊是什么呢?為什么要移除這兩個模塊呢?

首先分析了一下installdriver.sh:

#!/bin/bash


#install rapoo v500 driver


rmmod hid-rapoo hid-generic
modprobe hid-rapoo
modprobe hid-generic


如果第一行代碼是移除模塊,那么后兩行代碼可能是加載模塊的意思。


所以一個可能就是,我編譯了這個git repo;我改了這兩個模塊;我把這兩個模塊卸下來再裝上,於是它們會帶着我自定義的配置;似乎還蠻合理呢。

上網百度了一下,這兩個模塊似乎是跟USB接口,各種人機交互接口有關系的,(百度百科http://baike.baidu.com/item/USB-HID)

也就是說我電腦的USB接口的模塊沒有掛載是嗎?

這怎么可能?那么我電腦的USB接口豈不是不能用了嗎?怎么會有如此愚蠢的操作系統,啟動之后不加載USB接口的?

咦,不過還真有可能……

我猛然回憶起兩個月之前我為了給筆記本電腦省電,裝了ubuntu下的tlp,其中還在battery mode中設置了usb口禁用。

哦?好吧,我插上電試試,這樣應該就會啟動ac mode了吧。

不行啊還是會報錯。

好吧,那我刪掉tlp試試:

sudo apt-get remove tlp && restart

重新開機,進入目錄,執行命令sudo make; sudo make install; ./installdriver.sh

靜默,一片靜默。

程序安靜地走完了它的進程。

那么按照unix系統的編程風格呢,沒有消息就是好消息,是不是我的鍵盤可以用了呢?

我插上鍵盤,按下atl+tab鍵。

窗口切換了。

Good.問題解決了。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: