Openwrt 編譯教程


Openwrt

引言:本文檔編譯的lean的openwrt + ath10K

編譯環境:

虛擬機: Ubuntu20.04

外部系統: win7

注意:

  1. 要用 root 用戶進行編譯!
  2. 國內用戶編譯前最好准備好梯子

操作步驟:

一:下載源碼

https://github.com/compex-systems/lede     windows環境下載源碼,這樣比較快。

或者使用 git clone https://github.com/compex-systems/lede 命令下載好源代碼,然后 cd lede 進入目錄

二:更新源(Feeds)

./scripts/feeds update -a

./scripts/feeds install -a

三:鏡像配置

make menuconfig

Menuconfig擁有一個文本界面,它包括選擇要處理的目標平台,要編譯的軟件包,要被包含進固件文件的軟件包和一些內核設置等。

同配置Linux內核類似,幾乎每一個設置都有三個選項:y / m / n,分別代表如下含義:
* `` (按下`y`)這個包會被包含進固件鏡像
* `` (按下`m`)這個包會在生成刷新OpenWrt的鏡像文件以后被編譯,但是不會被包含進鏡像文件
* `` (按下`n`)這個包不會被編譯

當你保存你的配置后,.config這個文件會按照你的配置被生成。

 

 

 

 

三:

    make -j8 download V=s 下載dl庫(國內請盡量全局科上網)

          [我沒科上網 就是下載慢一點 也沒啥問題]

四:

    輸入 make -j1 V=s (-j1 后面是線程數。第一次編譯推薦用單線程)即可開始編譯你要的固件了。

          [這里會有幾個問題,文章后面會有解決辦法]

 

五:

          編譯成功后文件會保存在bin/targets文件夾下下

 

上傳到板子:

tftp 0x80060000 openwrt-ar71xx-generic-wpj563-squashfs-sysupgrade.bin

erase 0x9f030000 +$filesize

cp.b $fileaddr 0x9f030000 $filesize

問題匯總:

問題:

 error: #error "Please port gnulib freadahead.c to your platform!

方法:

進入對應文件夾

sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h

問題解決,繼續正常編譯

 

問題2:

openwrt error: conflicting types for '__u64'

 

方法:

  在源碼目錄中查找包含“__u64”的文件,把函數類型修改一致,查找文件指令如下

         Find ./* -name “__u64”

找到后都改成unsigned long long __u64

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM