openwrt固件獲取外盯、編譯與安裝

openwrt固件獲取摘盆、編譯與安裝

參考

在linux下修改編譯網(wǎng)件WNDR3700v4的Openwrt固件
Archlinux 下為 wndr4300 編譯 OpenWrt trunk 版固件
編譯自己的 OpenWrt 固件
【Linux/Ubuntu學習 7】E: 無法獲得鎖 /var/lib/dpkg/lock – open (11: 資源暫時不可用) E: 無法鎖定管理目錄

環(huán)境

路由器 NETGEAR WNDR3700v4
編譯環(huán)境 ubuntu-16.10-desktop-amd64

FAQ

固件的獲取

  1. openwrt官網(wǎng)/科大清華阿里等的鏡像站下載官方編譯好固件
    這類固件比較干凈,里面只帶了一些必要的軟件包
    可能沒有我們路由器的型號饱苟,或者無法充分利用路由器升級的內(nèi)存
  2. 民間大神編輯孩擂,如明月的OPENWRT
    這類固件裝了很多軟件包,操作簡單
    功能很多箱熬,可能我們用不到
  3. 自己編譯固件

為什么要自己編譯固件

主要是聽起來很酷
官方的包可能存在問題类垦,例如我的3700v4有120M的flash,官方的包識別32M城须,可以通過自己編譯解決蚤认,而且在編譯時還可以安裝一些軟件包,這樣糕伐,裝完系統(tǒng)后砰琢,很多軟件就不用一個一個裝了

編譯固件

編譯環(huán)境 ubuntu-16.10-desktop-amd64 的硬盤空間至少剩余20G,在編譯的過程中雖然源代碼100M左右赤炒,但是編譯產(chǎn)生的中間文件有10G左右

安裝編譯環(huán)境和依賴

Ubuntu終端內(nèi)輸入

sudo su
apt-get update    #更新軟件列表
apt-get install g++
apt-get install libncurses5-dev
apt-get install zlib1g-dev
apt-get install bison
apt-get install flex
apt-get install unzip
apt-get install autoconf
apt-get install gawk
apt-get install make
apt-get install gettext
apt-get install gcc
apt-get install binutils
apt-get install patch
apt-get install bzip2
apt-get install libz-dev
apt-get install subversion
apt-get install asciidoc  #這個軟件400M會下載好久

下載源碼

exit #退出root氯析,openwrt默認是不允許用root編譯的

下載源代碼

git clone -b chaos_calmer git://github.com/openwrt/openwrt.git

當然下載方式很多,這里僅是使用git從GitHub下載莺褒,也可以

wget https://github.com/openwrt/openwrt/archive/master.zip
sudu apt-get install zip
unzip master.zip

源碼就在那里openwrt掩缓,下載方法隨意
可以將下載源碼的復制一份,免得之后的修改弄壞了遵岩,還可以重頭來過

編譯前的設置

進入源碼目錄git的目錄為openwrt

cd openwrt

wget后解壓的目錄為openwrt-master

cd openwrt-master

其他方法下載的源碼進入源碼目錄自定義

更新下載并安裝所有可用的 feeds

./scripts/feeds update -a
./scripts/feeds install -a

檢查還有哪些包沒有安裝,根據(jù)提示安裝缺少的軟件包

make defconfig
make prereq

打開配置菜單

make menuconfig

配置菜單

操作規(guī)則
Enter 進入子菜單/確定 空格切換軟件包的狀態(tài) 【*】表示編譯進固件包你辣,【M】表示編譯成安裝文件巡通,【】為不做操作
左右鍵切換最下面的 <Select> < Exit > < Help > < Save > < Load >
< Exit > 返回上級菜單/退出

針對我3700v4選擇以下參數(shù)
CPU型號 Target System 選中’(Atheros AR7xxx/AR9xxx)’
Flash型號 Subtarget 選中 ‘(Genaric devices with NAND flsh)’
路由器型號 Target Profile 選中’(NETGEAR WNDR3700v4/WNDR4300)’
(其他路由器適當選擇,如果官方還沒支持你的路由器舍哄,可按照硬件類似的路由器選擇型號)

選擇自己所需要安裝的包
LuCI –>Collections –> luci #LuCI頁面 參見openwrt使用心得系列----功能實現(xiàn)回帖

Network –>選中wpad 取消wpad-mini 即【*】wpad 【】wpad-mini 校園網(wǎng)認證802.1x用的宴凉,其他軟件包根據(jù)需求安裝/第一次學習也可以不添加軟件包,編譯之后也可以再安裝軟件包

選中< Save > 保存 < Exit > 退出
執(zhí)行scripts/diffconfig.sh > diffconfig 保存修改內(nèi)容至diffconfig文件表悬。


其他修改
我需要修改3700v4的flash大小弥锄,

vi ./target/linux/ar71xx/image/Makefile  #修改Makeflie文件

/wndr4300 搜索 wndr4300
23552k(ubi),25600k@0x6c0000(firmware)修改為121856k(ubi),123904k@0x6c0000(firmware)
使整個語段變?yōu)?/p>

wndr4300_mtdlayout=mtdparts=ar934x-nfc:256k(u-boot)ro,256k(u-boot-env)ro,256k(caldata),512k(pot),2048k(language),512k(config),3072k(traffic_meter),2048k(kernel),121856k(ubi),123904k@0x6c0000(firmware),256k(caldata_backup),-(reserved)

esc退出編輯狀態(tài) :wq 保存退出


編譯

make -j3 V=s  #第一次更推薦你輸入make -j1 V=s進行編譯

據(jù)說:j 后面數(shù)字改為你的 cpu 數(shù)量 +1,-j3 表示3線程運行蟆沫,某個線程出錯不會馬上停止構(gòu)建籽暇,而是等待其它線程結(jié)束,真正的錯誤信息被其他線程刷掉了饭庞。所以要-j1更容易找到編譯失敗原因
我第一次使用make -j3 V=s 出錯戒悠,使用make -j1 V=s正常編譯完成
出問題多google,

第一次編譯時間比較長舟山,以后就快了绸狐,大概是因為很多源代碼編譯后,不需要再次編譯了吧

查看編譯出的固件

chen@chen-virtual-machine:/media/chen/openwrt$ cd ./bin/ar71xx 
chen@chen-virtual-machine:/media/chen/openwrt/bin/ar71xx$ ls
md5sums                                openwrt-ar71xx-nand-vmlinux.elf                         openwrt-ar71xx-nand-wndr4300-squashfs-sysupgrade.tar
openwrt-ar71xx-nand-root.squashfs      openwrt-ar71xx-nand-vmlinux.gz                          openwrt-ar71xx-nand-wndr4300-ubi-factory.img
openwrt-ar71xx-nand-root.squashfs-64k  openwrt-ar71xx-nand-vmlinux.lzma                        packages
openwrt-ar71xx-nand-uImage-gzip.bin    openwrt-ar71xx-nand-vmlinux-lzma.elf                    sha256sums
openwrt-ar71xx-nand-uImage-lzma.bin    openwrt-ar71xx-nand-wndr3700v4-squashfs-sysupgrade.tar
openwrt-ar71xx-nand-vmlinux.bin        openwrt-ar71xx-nand-wndr3700v4-ubi-factory.img

使用U盤累盗,winscp等任何方法復制出需要的固件

編譯時遇到的問題


編譯失敗提示

{standardinput}: Fatal error: can't close fs/namespace.o: No space left on device

找到出錯源頭寒矿,可發(fā)現(xiàn)時空間不足
打開ubuntu,ubuntu也提示磁盤不足幅骄,驗證想法正確劫窒,對虛擬機進行擴大磁盤操作解決


make menuconfig

$make menuconfig
Your display is toosmall to run Menuconfig!

觀察提示,我是ssh連接的ubuntu拆座,xshell的窗口太小了,顯示不全配置菜單冠息,放大窗口就可以了


在使用ubuntu apt-get 時挪凑,我遇到過下列錯誤提示

E: 無法獲得鎖 /var/lib/dpkg/lock - open (11: 資源暫時不可用)E: 無法鎖定管理目錄(/var/lib/dpkg/),是否有其他進程正占用它逛艰?

通過下列方法解決

sudo rm /var/cache/apt/archives/locksudo rm /var/lib/dpkg/lock

再次install軟件躏碳,提示:

E: dpkg 被中斷,您必須手工運行 sudo dpkg --configure -a 解決此問題

執(zhí)行

sudo dpkg --configure -a

再次進行安裝

安裝固件

已刷breed或者uboot
電腦通過網(wǎng)線連接路由器散怖,打開瀏覽器輸入192.168.1.1
路由器按住reset鍵菇绵,上電開機
瀏覽器不斷刷新 192.168.1.1 界面直到出現(xiàn)bootloader(breed/uboot)引導界面,松開reset鍵
通過固件更新選項卡镇眷,上傳固件進行升級咬最,支持img和bin格式
我上傳的是openwrt-15.05.1-ar71xx-nand-wndr3700v4-ubi-factory.img文件
上傳重啟
路由器支持bootloader升級,未刷breed/uboot
搜索相應路由器型號的刷機教程
已刷openwrt
可在Luci界面 -》系統(tǒng) -》備份升級 -》 刷寫新固件
選擇openwrt-15.05.1-ar71xx-nand-wndr3700v4-squashfs-sysupgrade.tar文件
版本號相同可以保留原有配置欠动,不同不保留
僅支持.tar格式的文件永乌,如果只有.bin或.img的固件惑申,使用上面的兩種方法

遇到的問題

重啟之后,可能沒有5G的wifi信號翅雏,拔掉電源圈驼,再開機就可以了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市望几,隨后出現(xiàn)的幾起案子绩脆,更是在濱河造成了極大的恐慌,老刑警劉巖橄抹,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衙伶,死亡現(xiàn)場離奇詭異,居然都是意外死亡害碾,警方通過查閱死者的電腦和手機矢劲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來慌随,“玉大人芬沉,你說我怎么就攤上這事「蟛拢” “怎么了丸逸?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長剃袍。 經(jīng)常有香客問我黄刚,道長,這世上最難降的妖魔是什么民效? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任憔维,我火速辦了婚禮,結(jié)果婚禮上畏邢,老公的妹妹穿的比我還像新娘业扒。我一直安慰自己,他們只是感情好舒萎,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布程储。 她就那樣靜靜地躺著,像睡著了一般臂寝。 火紅的嫁衣襯著肌膚如雪章鲤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天咆贬,我揣著相機與錄音败徊,去河邊找鬼。 笑死素征,一個胖子當著我的面吹牛集嵌,可吹牛的內(nèi)容都是我干的萝挤。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼根欧,長吁一口氣:“原來是場噩夢啊……” “哼怜珍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起凤粗,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤酥泛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后嫌拣,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柔袁,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年异逐,在試婚紗的時候發(fā)現(xiàn)自己被綠了捶索。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡灰瞻,死狀恐怖腥例,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情酝润,我是刑警寧澤燎竖,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站要销,受9級特大地震影響构回,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜疏咐,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一纤掸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凳鬓,春花似錦茁肠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽匹颤。三九已至仅孩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間印蓖,已是汗流浹背辽慕。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赦肃,地道東北人溅蛉。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓公浪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親船侧。 傳聞我的和親對象是個殘疾皇子欠气,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 前置條件 編譯環(huán)境:Linuxmint 18.2 64-Bit 路由器型號:TP-LINK TL-WR720N v...
    suanite閱讀 20,275評論 2 13
  • 玩openwrt的基礎 參考 什么是Flash內(nèi)存?Flash內(nèi)存是什么镜撩? 名詞解釋 openwrt openwr...
    cndaqiang閱讀 8,588評論 0 7
  • 因為手賤入了斐訊k2预柒,拿來直接網(wǎng)上找教程。有一鍵刷breed的腳本袁梗,挺好用的宜鸯,就是要路由器自己有網(wǎng)。建議下次可以...
    貧道法號三刀閱讀 1,820評論 0 1
  • 本來想畫好后上色的,用App試了一下锯梁,還不如黑色有質(zhì)感即碗,所以人工智能不那么全面,還是比不上手工啊涝桅。 生活不是要過得...
    艾娃手繪閱讀 287評論 0 4
  • 喜歡文字是什么樣的呢?我覺得文字只是一種表現(xiàn)形式,是思想的表現(xiàn),愛文字可能更多的是愛思想,喜歡腦海中的景色,喜歡腦...
    尹相華顏閱讀 171評論 0 0