1. 程式人生 > >記一次Linuxx下驅動安裝排錯經歷

記一次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.問題解決了。

相關推薦

Linuxx驅動安裝經歷

昨天在狗東上買了個雷柏v500合金版黑軸機械鍵盤,今天到貨之後滿懷興奮地裝上到了我從公司帶回來的thinkpad上,結果發現alt鍵和ctrl鍵是失靈的。 進一步測試發現,這兩個鍵並沒有失靈,它們特喵的被對映到了shift鍵上…… 面對這種情況,我雖然感到很失望,但一點

VMware虛擬機器網路

電腦的vmware虛擬機器在學校是可以用的(用的社團網線),搬到上海後,電腦連線的是無線網,開啟虛擬機器後出現問題。 出現問題:虛擬機器配置一切正常,能ping 127.0.0.1和localhost,但ping不通www.baidu.com和114.114.114.1

linux用git安裝fastadmin的過程

1.安裝寶塔面板,阿里雲配置對應的安全組.在軟體管理介面下載mysql,php,apache,pm2管理器,phpmyadmin.(php版本最好只安裝一個,不然你需要確定你安裝的擴充套件是否安裝在你所選擇的php版本,php -v可以檢視當前預設的php版本) 2.進入網站目錄,clone

Linux安裝pyspider的過程

首先執行pip install pyspider此時系統提示Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-Lau0Qp/pycurl/ You are using p

windows10VM15.x的安裝Centos鏡像nat模式網路不通快速恢復

nmtui 使用 workman 列表 delete 客戶 win 系統 虛擬機 首先發現創建虛擬機後網絡不通,再確認不是軟件安裝包的問題(這個這個有專門網絡效驗碼)這個屬於人為錯誤配置導致的ping 網關不通首先我把問題定位在dhcp上因為網卡上來就沒有分配網絡地址,而且

LinuxJavaWeb環境的搭建

上傳 部署 x64 blog 兩個 family cif 解壓 啟動   今天重裝了騰訊雲VPS的系統,那麽幾乎所有運行環境都要重新部署了。過程不難懂,但是也比較繁瑣,這次就寫下來,方便他人也方便自己日後參考參考。   我采用的是JDK+Tomcat的形式來進行Java

記錄PythonTensorflow安裝過程,1.7帶GPU加速版本

最近由於論文需要,急需搭建Tensorflow環境,16年底當時Tensorflow版本號還沒有過1,我曾按照手冊搭建過CPU版本。目前,1.7算是比較新的版本了(也可以從原始碼編譯1.8版本的Tensorflow)。 安裝步驟: 不能急於求成,安裝任何東西前都應該先閱讀使用者手冊與FAQ,弄清軟體依賴與安裝

ubuntu常用命令及操作,包括安裝CUDA 記錄PythonTensorflow安裝過程,1.7帶GPU加速版本

chmo 777 Document 這裡Document是一個資料夾,資料夾中還有好多子檔案,可以發現執行了這條指令以後,其子資料夾的許可權並沒有改變。 要想改變其子資料夾的許可權,應該執行 chmod -R 777 Document/ ubuntu desktop的英偉達CUD

linux串列埠資料丟包解決過程

專案中兩個晶片之間用串列埠進行通訊,由於傳輸格式中有校驗位,在資料量很大的時候總是校驗失敗。於是花了很長的時間最終解決了這個問題。 首先串列埠丟資料有兩種情況(明顯排除傳送端傳送的資料不對),第一種是通道也就是串列埠線或者連線口不行,無法承受很高的波特率(我使用的波特率是9

unity引入C++動態庫跨平臺打包的問題

5) 執行cmake -DCMAKE_TOOLCHAIN_FILE=#ANDROID_CMAKE/android.toolchain.cmake -DANDROID_NDK=/usr/android/android-ndk-r12b -DCMAKE_BUILD_TYPE=Release -DANDROID_

AIX做系統映象的記錄

# extendvg –f rootvg hdisk1 0516-306 extendvg: Unable to find volume group –f in the Device         Configuration Database. 0516-010 exte

centos7.1作業系統安裝docker啟動不了的問題

事情發生的原因是我yum remove 了docker,然後在執行yum 安裝docker之後就出現了 Job for docker.service failed because the contro

KUBERNETES/DOCKER網絡

erl 微信 top 問題 userland 程序 基本上 Kubernete 那些事 昨天周二晚上,臨下班的時候,用戶給我們報了一個比較怪異的Kubernetes集群下的網絡不能正常訪問的問題,讓我們幫助查看一下,我們從下午5點半左右一直跟進到晚上十點左右,在遠程不能訪問

內存溢出的分析經歷——thrift帶給我的痛orz

一個bug 服務端 ide 參數 comment ces 結果 業務 改變 說在前面的話 朋友,你經歷過部署好的服務突然內存溢出嗎? 你經歷過沒有看過Java虛擬機,來解決內存溢出的痛苦嗎? 你經歷過一個BUG,百思不得其解,頭發一根一根脫落的煩惱嗎? 我知道,你有過! 但

Maximo移動端app報的原因

【吉林-app】進入作業票下載頁面:系統崩潰 018-11-06 10:39:32,774 - [ERROR::com.hd.hse.common.module.phone.camera.MainApplication::com.hd.hse.common.module.phone.came

解決netty半包問題的經歷

最近學習了netty,想寫一個簡單的rpc,結果發現傳送訊息時遇到難題了,網上搜了一下,這種情況是半包問題和粘包問題,主要是出現在併發高一些的時候。 talk is cheap  客戶端編碼: protected void encode(ChannelHandlerContext

慘痛的操作git的翻車經歷

某天我在勤勤懇懇地調css的引數但是出了一些不可控的意外,所以腦子一熱就使用git將它回溯到昨天晚上儲存的版本,但是又出現了另一個問題——我一下午的工作白做了,所以又向給重新回到我回溯之前的版本,這就是我翻車的起因 所以,我們要思考一下有沒有可能重新通過180°

Ubuntu突然無法進入系統的經歷

背景 今天早上像往常一樣開啟電腦,卻發現連登陸頁都無法顯示出來,直接是灰屏。第一反應是,完了,不會是新換的SSD壞了吧? 排查過程 1. 切換到命令列模式 發現報錯,“-bash /dev/null Permission denied”,然後去網

使用Tensorflow搭建神經網路模型經歷

隱去背景, 作者最近第一次用Tensorflow實現訓練了幾個模型, 其中遇到了一些錯誤, 把它記錄下來 前言 以下提到的所有程式碼, 都可以在github上面找到. 倉庫地址 https://github.com/spxcds/neural_network_code/ 這個倉庫裡提到的幾段程式碼, 分

ORA-00600,ORA-10173報

ORA-00600,ORA-10173 1.1故障環境介紹 專案 DB Info DB型別 RAC Version 12.1.0.2