openwrt是嵌入式设备上运行的linux系统。OpenWrt 的文件系统是可写的,开发者无需在每一次修改后重新编译,是目前比较流行的路由器系统,编译后3-4M左右。编译服务器最好选用Ubuntu,以下在Ubuntu12.10下编译成功。
1. 安装基础软件
sudo apt-get install subversion libtool autoconf automake gcc-multilib bison screen gcc g++ binutils patch bzip2 flex make gettext unzip libc6 git-core git build-essential libncurses5-dev zlib1g-dev gawk quilt asciidoc libz-dev
2. 下载源码
svn co svn://svn.openwrt.org.cn/dreambox/trunk openwrt
3. 安装扩展
cp feeds.conf.default feeds.conf #配置软件源
./scripts/feeds update -a #更新软件源
./scripts/feeds install -a #安装软件源
4. 内核定制
make V=s defconfig #测试编译环境
错误:undefined reference to `kconf_id_lookup'
Ubuntu15内核太新,导致出现该错误,建议选用ubuntu12进行编译。
make menuconfig #定制编译环境
选择编译项:
#Target
Target System -- Atheros AR7xxx/AR9xxx
Target Profile -- TP-LINK TL-WR842N/ND
#SDK
Build OpenWrt SDK #SDK
Build OpenWrt Toolchain #工具包,开发程序
#LuCI
LuCI -- Collections -- luci #web管理界面(Lua configuration interface),lua编写的
LuCI -- Translations -- luci-i18n-chinese #中文包
LuCI -- Applications -- luci-app-ddns #添加ddns
#Sys
Base System -- block-mount #USB挂载
Kernel modules -- Filesystems -- kmod-fs-ext4 #硬盘支持
Kernel modules -- USB Support -- kmod-usb-storage-extras #USB扩展支持
Utilities -- Filesystem -- badblocks #自动挂载工具
5. 编译
make 或 make V=99(推荐)
错误:
1. Could not resolve hostname `svn.nomi.cz'
该源被墙了,无法访问到该域名。
vi package/hotplug2/Makefile
PKG_SOURCE_URL:=http://svn.nomi.cz/svn/isteve/hotplug2 该域名不存在。搜索发现可通过googlecode下载hotplug2,地址:http://hotplug2.googlecode.com/svn/trunk。该地址被墙了,需FANQIANG下载到本地,搭建自己的SVN服务器。修改Makefile指向本机,修改PKG_VER=1即可。
生成的固件在 bin/ar71xx目录下,名称为:
ar71xx/openwrt-ar71xx-generic-tl-wr842n-v1-jffs2-factory.bin
ar71xx/openwrt-ar71xx-generic-tl-wr842n-v1-squashfs-factory.bin
jffs2适合断电的系统
squashfs把ROM压缩到一个文件进路由器,官方推荐squafs,因为这种格式就算配置乱了还可以恢复刷机后的出厂设置,二是压缩后节省空间。
手里的路由是原版固件需要刷OpenWrt需要选用XXX-factory.bin固件,如果路由已经刷了OpenWrt,选用升级固件XXXX-sysupgrade.bin,在升级界面升级即可。
6. 烧录固件
web管理界面上传固件,并更新。注:家用路由器大部分都不支持刷openwrt,因为flash等配置较低所致。笔者TP-LINK WR720N就成砖了。
首次安装OpenWrt后,需要设置密码才可以使用SSH登录,方法是使用telnet登录或者Web登录设置密码。
方法一:telnet
telnet 192.168.1.1
passwd#设置root密码
方法二:管理界面,修改页面
system->administration->SSH Access。开启SSH后,telnet默认关闭
终端登录:
还能终端操作,简直就是个小电脑,兴奋的感觉有木有,拿来做傻瓜路由器大材小用了。
7. 安装程序
scp hello [email protected]:/root
8. 包管理器
opkg 是openWrt提供的软件包管理器。
opkg update | install | remove #安装删除软件包
opkg install hello.ipk #处理.ipk后缀的软件包
9. 自定义管理页面
luCI 是路由器的web管理界面,如果对原生的页面不满意,可随意定制。管理页面是Lua语言编写的CGI服务。
主目录:/www
修改OpenWrt版本信息:
/etc/openwrt_release/version.lua
内容模板:
/view/themes/openwrtcn/header.htm 修改map
/view/themes/openwrtcn/footer.htm 修改footer
Logo:
/luci-static/openwrtcn/logo.jpg Logo替换
下图是从某宝上淘的路由器
标签:svn,--,编译,openwrt,固件,OpenWrt From: https://blog.51cto.com/u_1923895/5939834