遇到問題後。。。

2021-04-12 15:08:07 字數 1650 閱讀 1018

今天被徹底的打擊了,很想從辦公樓直接跳下去。

二周了,二周的時間都花在了載入乙個新的controller driver,在專案裡,這個是最底層的usb驅動,所以它沒有工作,等於晶元就是一堆廢鐵。在上一周還不是很著急,但是這周徹底急了,team leader已經忍受不了整組人對這那個不能工作的**束手無策,就這樣,我開始了每天的加班生活。

底層的晶元怎麼也不能工作,自己也從沒有接觸到這麼底層的東西,而且完全是看不到摸不著想不到的。於是開始學習如何除錯驅動,核心。 然後自己加printk除錯,看到的僅僅是module init後就沒了,然後想到了還有乙個叫dummy_hcd的驅動,於是用它來試,進而了解主控制驅動是如何工作的。經對比後知道問題出在了probe時,就這樣有開始了痛苦的看ldd3的生活。 當了解了usb驅動的編寫後,開始了近10萬行的**上,在每晚加班到辦公樓要鎖門,然後回家繼續到三點的痛苦閱讀中,得到的結論是問題不是在**上。 看看原來的**已經被自己改的面目全飛。 今天上班做了乙個重大決定,切從頭開始!

解壓出乙個新的核心,盡量保留他的原貌,然後用最保守的方法-- 將所有驅動都直接編譯進核心。 然後make bzimage,將這個自己認為完全是不可能用的映象下到了板子上後。。

s1r72v17 module init

s1r72v17: ioaddr: 0xc1852000, chip rev: 0x0010

gs_bind: controller 's1r72v17' not recognized

gs_bind: gadget serial v2.0 bound

@@(gs_module_init)usb_gadget_register_driver return[0]

gs_module_init: gadget serial v2.0 loaded

gs_disconnect: gadget serial disconnected

這個夢裡都想看到的資訊竟然出現了,當時真的很不想承認這是真的。 我的工作也有此轉型成為乙個偵探了--是什麼,為什麼當初沒有成功?

然後將自己一直用的核心,用同樣的方法後。。

還是老錯誤。

現在想到了的就是最簡單的排除法,將錯核心的檔案乙個乙個替換成功核心的,替換乙個編譯一次,載入看什麼時候會出現錯誤資訊。

就這樣編譯,載入,有20遍左右,終於找到了罪魁禍首-- ../linux-2.6.14.6/driver/usb/gadget/makefile 和kconfig

就是這二個我最後替換,也認為最不可能引起錯誤的檔案,他們讓我苦了二周。

但是這二個檔案中的內容在二個核心原始碼裡都是一樣的,加了同樣的指令碼語言,但是有乙個就是成功,乙個就是失敗。將成功中的這二個檔案拷到失敗核心中,就解決了問題。 為什麼,為什麼,一樣的檔案,裡面的東西也一模一樣,但是會有這種事情。

最後想到的是隱藏符號引起的,是不是有些隱藏符號沒有看到。 就這樣將二個檔案所有的製表符和空格符都顯示了出來,最後看到了失敗核心中的makefile中某一行的結尾竟然多了乙個空格!!!

我的天,這個也會引起錯誤麼,就算引起錯誤怎麼會顯示是probe時kernel取不到handler,返回空指標導致系統崩潰。 我當時已經崩潰了,想跳樓(當時心裡真實的想法)。

不過雖然是很讓人鬱悶,不過在逆境中學會了解決問題,自己感覺還是很值得的。 不過真的太累了,腦子有點不夠用了。 想休息一下了。 還好明天公司組織去某度假村玩,生活總是這樣,苦味卻充滿了挑戰和樂趣。

hive on tez遇到問題

一 環境hive0.13,tez0.5.0 二 執行異常如下 return code 101 from org.apache.hadoop.hive.ql.exec.tez.teztask.org.apache.tez.mapreduce.hadoop.mrhelpers.getbasemrconf...

linux遇到問題

rabbitmq 服務啟動問題 bf localhost sbin sudo service rabbitmq server start redirecting to bin systemctl start rabbitmq server.service failed to start rabbit...

2017 9 20遇到問題

windows下cmd中出現了ipconfig不是內部或外部命令,也不是可執行的程式或批處理檔案 解決 在系統環境變數path中新增system32的路徑 centos下欲安裝pillow庫,發現麼有pip cenos下安裝pip時失敗 yum y install pip 解決方法 需要先安裝擴充套...