一、下載OpenWrt源碼
git clone https://github.com/openwrt/openwrt.git #這個是OpenWrt官方提供的最新LEDE版本,內核支持到4.14.x
git clone https://github.com/openwrt/chaos_calmer.git #這個是OpenWrt維護的chaos_calmer版本,一般叫15版本,內核支持到3.18.x
可以選擇去OpenWrt的官方github源去選擇下載你需要的源碼:https://github.com/openwrt
*需要注意下載的源碼和你需要編譯的OpenWrt所需功能需要版本匹配,不然會有一大堆問題。
*補充:git openwrt源碼的目錄要更改權限爲777
chmod 777 #openwrt的目錄
二、在Ubantu下搭建編譯環境
sudo apt-get update #安裝環境包之前先Update
sudo apt-get install libtool texinfo sharutils subversion libssl-dev autoconf automake gcc-multilib bison screen gcc g++ binutils patch bzip2 flex make gettext unzip libc6 git-core git ncurses-term build-essential libncurses5-dev zlib1g-dev gawk quilt asciidoc libz-dev zlib-bin lib32z1-dev
這裏可以選擇一個一個包單獨下載,可以檢查下載的情況,減少出錯的可能性。
三、通過feeds添加OpenWrt的功能擴展包
3.1 看看有哪些擴展包包含在feeds裏面:
gedit feeds.conf.default
3.2 如果需要用到某些功能,可以通過feeds來添加,fees功能超級強大。以後會用到,現在先不進行操作。
3.3 將feeds.conf.default改名爲feeds.conf:
cp feeds.conf.default feeds.conf
3.4 更新擴展:./scripts/feeds update -a
3.5 安裝擴展:./scripts/feeds install -a
四、配置編譯選項
這是比較關鍵的一步,可以選擇你需要用到功能模塊。
4.1 進入功能模塊選擇界面:
make menuconfig
如果不清楚路由器的主板型號,可以百度查,有或者鏈接上路由器之後,通過SSH查看:
cat /proc/cpuinfo
Luci→Modules→Translations→Chinese(zh-cn)
4.6 添加中文支持
Kernel Modules→Native Language Support→kmod-nls-utf8
4.7 注意
一開始學習編譯的時候,不推薦選擇太多,知道這個邏輯就可以了。等以後需要真正結合具體功能的時候,在進行添加選擇就可以了。
五、編譯
make V=s
這需要漫長的等待,因爲需要下載很多的dl包。如果你以後會使用相同的openwrt源代碼進行編譯,推薦把dl文件夾備份一下,以後就不用等待下載時間了。
但是不同版本的OpenWrt使用的dl包是不一樣的,不要混爲一談。
六、編譯結果
編譯的結果都會放在bin文件夾裏面,在裏面找就可以了。現在一般是:bin/targets/ramips/mt7620
裏面可能會有很多.bin固件文件,openwrt-ramips-mt7620-psg1218a-squashfs-sysupgrade.bin纔是我們需要拿到的。
七、重新編譯
make clean
這個命令會保存dl文件和.config文件。如果需要全部清除,請用:
make distclean
但是用這個命令之前,最好把dl文件轉移到其他地方留着備用。而且這個命令的特點是會更換.feeds。
八、結束
做到這一步,你就已經完全結束了,可以拿這個固件去燒到你的路由器上面去了。怎麼燒?如果你還沒學會怎麼燒,應該不會查到這篇文章的。
刷固件教程:https://blog.csdn.net/H845165367/article/details/78808911
按照這個教程去刷完Breed,你就可以隨意用你編譯出來的固件了,也不怕變磚。