您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“如何以modules的方式編譯驅動”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“如何以modules的方式編譯驅動”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
本文檔主要講解在iTOP-i.MX6Q開發(fā)板,設備樹內(nèi)核中以 modules 方式編譯驅動。
這里以 imx6q(imx6d 和 plus 的類似)的 qt 系統(tǒng)內(nèi)核編譯為例,Ubuntu16 的內(nèi)核和
qt 通用,android6.0 的配置和 qt 的類似。
文檔先介紹和驅動編譯相關的幾個文件,Kconfig、Makefile。另外.config 文件和
menuconfig 文件,可以參考“iTOP-iMX6-設備樹內(nèi)核-缺省文件文件的配置_V1.X”文檔和
“iTOP-iMX6-設備樹內(nèi)核-menuconfig 的使用_V1.X”文檔。
這里以 led 驅動為例,驅動源碼為“drivers/char/”下的“itop6x_led.c”文件,如下圖
所示。
打開“drivers/char/”下的 Makefile 文件,如下圖所示,可以看到編譯 led 的宏為
“CONFIG_LEDS_CTL”。
上面這個文件不用修改,打開“drivers/char/”下的“Kconfig”文件,搜索
“LEDS_CTL”,如下圖所示,將 bool 修改為 tristate。
修改保存。
重新配置缺省文件,參考“iTOP-iMX6-設備樹內(nèi)核-缺省文件文件的配置_V1.X”配置缺
省文件,重新編譯內(nèi)核,如下圖所示,可以看到有“itop6x_led.ko”文件生成。
將重新生成的內(nèi)核燒寫到開發(fā)板(注意不能燒寫光盤中自帶的鏡像,那個鏡像里已經(jīng)添加
了 led 驅動),新的鏡像燒寫之后,在控制臺查詢“/dev/led*”,應該沒有這個設備節(jié)點。
將“itop6x_led.ko”拷貝到開發(fā)板,如下圖所示,使用命令“insmod itop6x_led.ko”
加載驅動。
使用命令“l(fā)s /dev/led8”,可以看到設備節(jié)點生成,如下圖所示。
讀到這里,這篇“如何以modules的方式編譯驅動”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內(nèi)容的文章,歡迎關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。