OpenWrt是可用于嵌入式設(shè)備的一個Linux開源發(fā)行版牌芋,主要用作智能路由器的操作系統(tǒng),開發(fā)人員可以非常方便地基于自己的業(yè)務(wù)需求對該系統(tǒng)進(jìn)行深度定制尼斧,從而提供離線下載,代理設(shè)置试吁,Captive portal等功能棺棵,在此基礎(chǔ)上,將智能路由器打造成局域網(wǎng)智能中心熄捍,如果硬件配置足夠烛恤,甚至可以在上面部署內(nèi)部網(wǎng)站(比如PHP and uhttp web server),最近國內(nèi)廠商基于占領(lǐng)用戶客廳余耽,打造家庭智能云而推出的各種智能路由器有很多就基于OpenWrt缚柏,比如極路由,小米路由器等碟贾。
在官方和廣大開發(fā)者的貢獻(xiàn)下币喧,OpenWrt支持非常多的路由器型號轨域,如果你手邊有個路由器,查一下看是否支持杀餐。
建立編譯環(huán)境(Ubuntu 14.04)
sudo apt-get update
sudo apt-get install git-core build-essential libssl-dev libncurses5-dev unzip gawk
sudo apt-get install subversion mercurial
獲取代碼
git clone git://git.openwrt.org/openwrt.git
更新并安裝編譯依賴的包
./scripts/feeds update -a
./scripts/feeds install –a
檢查編譯環(huán)境是否就緒
make defconfig
配置openwrt的image
設(shè)置選項(xiàng)參考官網(wǎng)點(diǎn)這里
這里可以參考這篇文章編譯X86架構(gòu)的OpenWrt VMWare virtual disk干发。
make menuconfig
# 針對華美的路由器按照如下配置
Target System --> Ralink RT288x/RT3xxx
Subtarget --> RT3x5x/RT5350 based boards
Target Profile --> HAME MPR-A2
Target Images --> ramdisk
# 添加luci web界面
LuCI –> Collections –> luci
LuCI –> Protocols –> luci-proto-3g
# 如需要掛載U盤,需要將如下選項(xiàng)勾選上史翘,可以通過/ 查找各配置項(xiàng)的位置
Kernel modules -> USB Support -> kmod-usb-core
Kernel modules -> USB Support -> kmod-usb-ohci
Kernel modules -> USB Support -> kmod-usb-uhci
Kernel modules -> USB Support -> kmod-usb2
Kernel modules -> USB Support -> kmod-usb-storage
Utilities -> mount-utils
Utilities -> Filesystem -> ntfs-3g
Kernel modules -> Filesystems -> kmod-fs-vfat
Base system -> block-mount
Base system -> busybox Core utilities for embedded Linux -> Linux System Utilities -> fdisk
Utilities -> usbutils
開始編譯枉长,為了看到可能的錯誤詳細(xì)信息,建議使用V=99參數(shù)
make v=99