openwrt編譯 -- 搭建屬於本身的openwrt的開發環境

系統版本:ubuntu 16.04 LTS 64bits

零、流程化、標準化的步驟,光明的大道往前走

一、先從github clone下來linux

HTTPS : git clone https://git.openwrt.org/openwrt/openwrt.git

若是比較慢或者不能clone能夠換成:git

SSH: git clone git://git.openwrt.org/openwrt/openwrt.git

二、在完成clone以後。而後在openwrt目錄下github

1 ./scripts/feeds update -a 2 ./scripts/feeds install –a

注:./scripts/feeds 這個腳本只是使軟件包出如今 make menuconfig 配置菜單中, 而並非真正的安裝或者編譯軟件。ubuntu

此過程比較慢,建議提早下載好 dl 和 feeds 文件,拷貝到對應目錄下,而後進行後續操做。多線程

三、而後選擇硬件對應的平臺app

make menuconfig

四、編譯ssh

make V=99 或者 make V=s

在這裏我的不建議在第一次編譯的時候使用多線程編譯,容易出問題,若是實在想走出本身的風格,可使用多線程進行編譯post

make V=99 -jn # n爲使用的線程數,好比 1 線程就使用 j1

而後確保聯網沒問題,慢慢等着就好了。測試

1、記錄下在這條寬闊又光明的大道上馳騁的時候填的那些被莫名其妙的坑

一、若是在下載的過程當中出現過早的文件結束符(EOF)ui

fatal: The remote end hung up unexpectedlyB | 44.00 KiB/s fatal: 過早的文件結束符(EOF) fatal: index-pack failed

解決:

git config --global http.postBuffer 1048576000 git config --global http.lowSpeedLimit 0 git config --global http.lowSpeedTime 999999  # 單位 秒

最主要的是:

ssh-keygen -t rsa

回車、回車、再回車

 若是還不行,則能夠查看一下大神的記錄,這是傳送門:使用 git 克隆 github 上的項目失敗

二、在進行 make menuconfig 的時候保證終端不要過小,否則也會出現問題的,我正好也經歷過。

三、編譯過程當中

configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)

解決:

export FORCE_UNSAFE_CONFIGURE=1 source /etc/profile 而後: su –root # 切換到root帳號 make V=99 # 編譯

則開始往下進行了。

四、若是出現

scripts/config/mconf: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory /home/song/openwrt.cpy/include/toplevel.mk:136: recipe for target 'menuconfig' failed make: *** [menuconfig] Error 127

那麼能夠先用ldd查看一下:

ldd libncurses.so.5 ldd: ./libncurses.so.5: No such file or directory

安裝 libncrurses 便可,相似的問題應該會不少,相似的辦法便可。

sudo apt-get install libncrurses

五、Openwrt在編譯過程出現

mipsel_24kc_musl/linux-ramips_mt76x8/tmp/openwrt-ramips-mt76x8-cudy_wr1000-squashfs-factory.bin": No such file or directory

實際上致使此問題的緣由是:

Image file /home/song/openwrt/openwrt/build_dir/target-mipsel_24kc_musl/linux-ramips_mt76x8/tmp/openwrt-ramips-mt76x8-cudy_wr1000-squashfs-factory.bin is too big

提示的錯誤爲

能夠看出來:

openwrt-ramips-mt76x8-cudy_wr1000-squashfs-factory.bin is too big

可是實際咱們須要編譯的是 MT7628 的文件,這個實際上與咱們須要的沒有多大的關係,能夠修改 mt76x8.mk。

vi target/linux/ramips/image/mt76x8.mk

第一種方法:不知道後遺症,可是確定不影響 MT7628 相關的文件

下載測試生成的內核文件,沒有任何問題

第二種方法:刪掉與cudy_wr1000相關的部分的內容(慎重刪除,若是不須要則直接刪除還能省空間)

基於第二種方法,發現刪除不相關的內容以後(因爲在編譯的過程當中出現了不少相似的問題),編譯明顯的快了很多,因此,在mt76x8.mk中只保留了兩三個選項。

上面的基本上都是在編譯的過程當中出現的問題,在openwrt這個修身養性的漫漫長路上,記得要控制好脾氣,畢竟繩命要緊!

相關文章
相關標籤/搜索