當(dāng)前位置: 首頁 > 工業(yè)電子產(chǎn)品 > 其他電子產(chǎn)品 > 開發(fā)板,套件,編程器 > 開發(fā)板
發(fā)布日期:2022-10-14 點擊率:77
不久前,OpenWRT關(guān)閉了官方的svn服務(wù)器,導(dǎo)致很多客戶無法按照無線時代的固件編譯指導(dǎo)文檔獲取OpenWRT代碼,只能使用git方式。相比于svn,git貌似無法直接獲取指定版本的代碼。然而,使用git獲取的代碼已經(jīng)將Linux內(nèi)核升級到4.1版本,最新的已經(jīng)是4.4版本了。這樣的更新速度對于業(yè)余愛好者也許是件好事,可是對于產(chǎn)品開發(fā)者,卻未必如此。
為了移植某驅(qū)動程序,筆者可謂絞盡腦汁,在4.1內(nèi)核版本上,嘗試了很多次都沒能成功,后來仔細(xì)分析,才知道是內(nèi)核版本過高導(dǎo)致的,本文給出降低內(nèi)核版本的方法,具體編譯環(huán)境的搭建,還請自行查閱其他文章。
1. 登錄Linux編譯服務(wù)器,在當(dāng)前用戶目錄下創(chuàng)建一個新的目錄,如erm。
2. 輸入以下命令
git clone git://git.openwrt.org/openwrt.git
接下來便進(jìn)入漫長的等待過程,如下圖
3. git clone完成后,會出現(xiàn)如下提示
4. 進(jìn)入openwrt目錄,輸入以下命令
git log
并使用Page Up/Down與上下方向箭頭查看log內(nèi)容,可以發(fā)現(xiàn),在46553版本中,移除了對3.18內(nèi)核版本的支持,如下圖。
5. 找到一個合適的仍然支持Linux 3.18的版本,這里筆者選擇了46550。將46550版本對應(yīng)的commit字符串復(fù)制下來,并按“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