修改Linux核心新增Air72X 4G模組支援

2021-10-13 03:53:34 字數 3003 閱讀 1435

這話從何說起呢,還是疫情之前吧,那會合宙剛剛推出air724模組,腦子一熱,**了乙個,以為沒團上,然後小號又團了一次,然後就有了兩個了。然後和囤積的大多數東西一樣沒有然後了 。類似這款,但是顯然比他早。

最近有個需求用上了,所以尋思用一下,結果發現竟然不行,原因麼應該是因為linux核心太老了,我這裡有個樹莓派4代,直接插上usb也是不行的,但是更新了系統以後就可以了。那麼開始吧。

參考資料主要時兩個,第乙個來自合宙問答,是一篇基於樹莓派更改核心的帖子,另乙個來自「【正點原子】i.mx6u嵌入式linux驅動開發指南v1.5.pdf」檔案中「第七十一章 第二節」;具體步驟如下:

這裡主要涉及到乙個檔案「drivers/usb/serial/option.c」,新增usb裝置的pid和vid,我用的是air724ug模組,其pid和vid是,另外還新增了乙個,可能是另外一種型別模組的。

//1. 更改option_ids陣列,大約在630行左右,可以搜一下

static

const

struct usb_device_id option_ids=

,,//在下邊是原來就有的裝置的pid和vid,不需要修改

,/* me3630*/,,

。。。。。。。。。。。。。。。

。。。。。。。。。。。。。。。

//2. 更改option_probe函式,大約在1865行左右

static

intoption_probe

(struct usb_serial *serial,

const

struct usb_device_id *id)

核心配置是比較麻煩的,但是好在正點原子已經將需要配置的都配置好了,所以如果懶的話,接下來就可以直接編譯了。如果是想學習的話可以參考正點原子的教程手動進行配置,這裡需要注意的是,他的教程中配置過程是他配置成功後的截圖,順序是不對的,需要先啟用usb support才能有network device support這個選項出現,所以配置時需要注意,我在這裡找network device support找了好久都沒找到。

編譯是比較簡單的

# 進入核心原始碼,執行下述命令即可

./mx6ull_alientek_emmc.sh

# 該指令碼中包含了清空、配置、編譯等指令

#如果出現 fatal error curses.h no such file or directory錯誤,需要執行下述命令安裝相關包

sudo

apt-get

install libncurses5-dev

這裡參考「【正點原子】i.mx6u嵌入式linux驅動開發指南v1.5.pdf」檔案中「第三十七章 第三節 第三目(37.3.3)」。稍微不同的是我使用的mobaxterm是有tftp功能的,所以不用自己搭建tftp服務了,這個另開一篇再寫。

# 核心載入並執行後,進入系統後,可以執行

ip addr

# 我的輸出為

root@atk-imx6u:~# ip addr

1: lo: mtu 65536 qdisc noqueue state unknown group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: can0: mtu 16 qdisc noop state down group default qlen 10

link/can

3: eth0: mtu 1500 qdisc pfifo_fast state down group default qlen 1000

link/ether be:1a:9e:2c:ce:72 brd ff:ff:ff:ff:ff:ff

4: eth1: mtu 1500 qdisc pfifo_fast state down group default qlen 1000

link/ether 9e:ae:8c:63:59:99 brd ff:ff:ff:ff:ff:ff

5: sit0@none: mtu 1480 qdisc noop state down group default

link/sit 0.0.0.0 brd 0.0.0.0

# 這行注釋是我加的

# eth2即4g模組所使用的網絡卡資訊,可以看到有ipv-4和ipv-6兩個位址

# 使用ping命令測試是可以聯網的,就搞定了

6: eth2:

mtu 1500 qdisc pfifo_fast state unknown group default qlen 1000

link/ether ac:4b:b3:b9:eb:e5 brd ff:ff:ff:ff:ff:ff

inet 192.168.5.8/24 brd 192.168.5.255 scope global eth2

valid_lft forever preferred_lft forever

inet6 ::ae4b:b3ff:feb9:ebe5/64 scope global mngtmpaddr dynamic

valid_lft forever preferred_lft forever

inet6 fe80::ae4b:b3ff:feb9:ebe5/64 scope link

valid_lft forever preferred_lft forever

下篇寫燒錄。

新增linux核心驅動

1.將核心驅動.ko放入 lib modules 3.2.0 23 generic kernel drivers 目錄下 2.執行depmod a來解決依賴 掃瞄driver下的驅動依賴關係 命令執行完成後,會自動生成modules.dep 和modules.alias。dep為依賴關係。3.更新當...

Linux核心引數修改

由於linux的核心引數資訊都存在記憶體中,因此可以通過命令直接修改,並且修改後直接生效。但是,當系統重新啟動後,原來設定的引數值就會丟失,而系統每次啟動時都會自動去 etc sysctl.conf檔案中讀取核心引數,因此將核心的引數配置寫入這個檔案中,是乙個比較好的選擇。首先開啟 etc sysc...

linux修改核心頻率

1.kernel kconfig.hz 在config hz 100 之前新增 config hz 10 bool 10 hz help 10 hz is added by song.在 default 100 if hz 100 之前新增 default 100 if hz 10 2.kernel...