當(dāng)前位置: 首頁(yè) > 工業(yè)電子產(chǎn)品 > 其他電子產(chǎn)品 > 開(kāi)發(fā)板,套件,編程器 > 開(kāi)發(fā)板
發(fā)布日期:2022-10-14 點(diǎn)擊率:76
不久前,OpenWRT關(guān)閉了官方的svn服務(wù)器,導(dǎo)致很多客戶(hù)無(wú)法按照無(wú)線時(shí)代的固件編譯指導(dǎo)文檔獲取OpenWRT代碼,只能使用git方式。相比于svn,git貌似無(wú)法直接獲取指定版本的代碼。然而,使用git獲取的代碼已經(jīng)將Linux內(nèi)核升級(jí)到4.1版本,最新的已經(jīng)是4.4版本了。這樣的更新速度對(duì)于業(yè)余愛(ài)好者也許是件好事,可是對(duì)于產(chǎn)品開(kāi)發(fā)者,卻未必如此。
為了移植某驅(qū)動(dòng)程序,筆者可謂絞盡腦汁,在4.1內(nèi)核版本上,嘗試了很多次都沒(méi)能成功,后來(lái)仔細(xì)分析,才知道是內(nèi)核版本過(guò)高導(dǎo)致的,本文給出降低內(nèi)核版本的方法,具體編譯環(huán)境的搭建,還請(qǐng)自行查閱其他文章。
1. 登錄Linux編譯服務(wù)器,在當(dāng)前用戶(hù)目錄下創(chuàng)建一個(gè)新的目錄,如erm。
2. 輸入以下命令
git clone git://git.openwrt.org/openwrt.git
接下來(lái)便進(jìn)入漫長(zhǎng)的等待過(guò)程,如下圖
3. git clone完成后,會(huì)出現(xiàn)如下提示
4. 進(jìn)入openwrt目錄,輸入以下命令
git log
并使用Page Up/Down與上下方向箭頭查看log內(nèi)容,可以發(fā)現(xiàn),在46553版本中,移除了對(duì)3.18內(nèi)核版本的支持,如下圖。
5. 找到一個(gè)合適的仍然支持Linux 3.18的版本,這里筆者選擇了46550。將46550版本對(duì)應(yīng)的commit字符串復(fù)制下來(lái),并按“q”退出git log。輸入以下命令
git checkout 367c4188921d77f5edb3dcfd148a59652fbfff37
然后便可以看到“HEAD is now at 367c418…”的字樣,如下圖。
6. 安裝軟件包,輸入以下命令
./scripts/feeds update
./scripts/feeds install –a
7. 輸入make menuconfig命令,選擇Advanced configuration options (for developers)—>Toolchain options,然后選擇C library implementation,選擇uclibc,如下圖。
然后退出并保存配置。
8. 編輯target/linux/ar71xx/Makefile,將內(nèi)核版本由4.1修改為3.18;編輯target/linux/ar71xx/image/Makefile,修改flash分區(qū)。
9. 筆者需要編譯QCA9531的固件,所以需要再次make menuconfig,并將Target Profile選擇為AP143。
10. 最后make V=s -j 29(多線程編譯),即可得到用于QCA9531的3.18內(nèi)核版本的固件。
下一篇: PLC、DCS、FCS三大控
上一篇: PCB Layout Technique