OpenWrt是可用于嵌入式设备的一个Linux开源发行版,主要用作智能路由器的操作系统,开发人员可以非常方便地基于自己的业务需求对该系统进行深度定制,从而提供离线下载,代理设置,Captive portal等功能,在此基础上,将智能路由器打造成局域网智能中心,如果硬件配置足够,甚至可以在上面部署内部网站(比如PHP and uhttp web server),最近国内厂商基于占领用户客厅,打造家庭智能云而推出的各种智能路由器有很多就基于OpenWrt,比如极路由,小米路由器等。
在官方和广大开发者的贡献下,OpenWrt支持非常多的路由器型号,如果你手边有个路由器,查一下看是否支持。
建立编译环境(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
检查编译环境是否就绪
make defconfig
配置openwrt的image
设置选项参考官网点这里
这里可以参考这篇文章编译X86架构的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盘,需要将如下选项勾选上,可以通过/ 查找各配置项的位置
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
开始编译,为了看到可能的错误详细信息,建议使用V=99参数
make v=99