用ImageBuilder定制自己的openwrt路由器

有三种方法编译openwrt定制固件。
1. 用ImageBuilder编译,用于灵活选择package。毕竟压缩的只读文件系统squashfs比可写的JFFS能省不少地方,可以用来把玩更多的package。
2. 用SDK编译,用于编译package仓库中没有的软件包,另外其中有配套的内核源码及头文件,编译缺失的内核模块也很方便。
3. 从源码编译,因为要重新编译cross-compile toolchians,下载最内核和软件包的源码编译,导致这个过程比较耗时,用于上述两种情况搞不定的情况。
本文主要介绍第一种定制方法。
个人比较喜欢安装各种的软件包,毕竟百元左右的路由器往往只有8M flash,最大的也只有16M,即便RAM够,用opkg install 也装不了多少软件。我的最佳实践就是先装到JFFS的overlay中对软件进行评估,若好用加到软件列表中,不好用就remove, 当系统提示flash告急时,就把软件列表中的package 信息收集,编译一个新的image。当然如果你的路由器有USB接口,也可以修改opkg.conf,增加 dest usb /mnt/usb,安装package时用 “–d usb” 来指定安装目标位置,从而来解决空间问题。
按照下面步骤定制固件。
1. 官网下载ImageBuilder包,比如OpenWrt-ImageBuilder-brcm47xx-for-Linux-i686.tar.bz2,解压。
2. 列出当前系统所有已安装包,用于准备后续make image的 packages参数。 
     echo  $(opkg list-installed | awk '{ print $1}')
3. 检查输出结果看这些包是否自己所需,也可以在此新加入package, 务必注意package依赖,将依赖的package都加上。
4. 在根目录直接make image PACKAGES即可,参数填写参考如下格式。 
        make image PROFILE="<profilename>" # override the default target profile 
        make image PACKAGES="<pkg1> [<pkg2> [<pkg3> ...]]" # 将步骤2生成的package列表填入该参数。 
        make image FILES="<path>" # include extra files from <path>  指定个人的配置文件目录,用来固化缺省配置,比如网络配置参数。 
        make image BIN_DIR="<path>" # alternative output directory for the images
5. 在bin/target目录中生成一个trx和多个bin格式的image文件。
6. 将trx文件copy到目标设备,最好copy到使用RAM文件系统的tmp目录。
scp bin/brcm47xx/openwrt-brcm47xx-squashfs.trx root@192.168.1.1:/tmp/
7. 在刷新系统之前,最好将/overlay 目录打包压缩,用于后续恢复配置,按照openwrt的设计,只有修改过的文件才会放到/overlay目录,具体原理参考union文件系统。
8. 刷新固件到linux分区,具体分区情况和bootrom有关,bcm的芯片参考 cat /proc/mtd 。
mtd -r write /tmp/openwrt-brcm47xx-squashfs.trx linux
9. 自动重启后,除非通过FILES修改过配置文件,否则ip 地址为192.168.1.1 ,telnet直接登陆后用passwd修改密码,然后用ssh安全登陆。
10. 按照自身需求从步骤7保存的文件中copy 相关文件,恢复配置。
至此,大功告成了。

用ImageBuilder定制自己的openwrt路由器相关推荐

  1. openwrt路由器进入安全模式

    openwrt路由器型号:WNDR3800 一.实验背景 在pc机上通过xshell软件登录openwrt路由器,pc机通过网线与openwrt路由器的LAN接口相连.openwrt路由器自带两块无线 ...

  2. openwrt路由器接华为E3372(E8372)网卡实现4G转有线和WIFI

    Hilink 在openwrt系统中安装kmod-usb-net-rndis kmod-usb-net kmod-usb2 usb-modeswitch kmod-usb-net-cdc-ether. ...

  3. 手把手教你玩转OpenWRT路由器系统,视频教程合集

    手把手教你玩转OpenWRT路由器系统,视频教程合集 以NewifiD2(新三)路由器为基础,录制了OpenWRT系列视频教程,欢迎观看. <[视频教程]手把手教你用虚拟机安装ubuntu操作系 ...

  4. OpenWrt路由器macvlan单线多拨的方法

    之前写过一篇文章<OpwnWrt 路由器MWAN3多线多拨实现方法>,介绍了如何在具备多根入室宽带网线的情况下实现网络带宽的叠加.多线多拨一般应用在多个不同运营商线路的负载均衡场景中,那么 ...

  5. Mesh(802.11s)组网 — 基于OpenWRT路由器

    一.mesh网络 1.mesh网络拓补图 2.介绍 二.OpenWRT路由器Mesh网络配置 1.准备阶段           说明:本次测试用2台单WiFi路由器作为测试,wifi用于组建Mesh网 ...

  6. Android设备通过USB共享网络给OpenWrt路由器

    1️⃣前言 如果随身WiFi自带的热点不稳定的话,可以考虑插到有USB口的OpenWrt路由器上,减少随身WiFi的负荷,使网络更为稳定. 但有的路由器虽然有USB口,也是OpenWrt系统,连接设备 ...

  7. 如何用Zabbix监控OpenWrt路由器-Zabbix-Agent安装篇

    序 在前文<在ESXi上快速部署Zabbix>中,我们通过ESXi快速的部署了一套Zabbix系统,接下来我们将以OpenWrt路由器作为监控对象,分别采用Zabbix-Agent和SNM ...

  8. OpenWRT路由器使用ipv6拨号上网教程

    文章来源于群友,如有侵权,请联系我(aha971030@gmail.com)删除 原理介绍分析: 湖北E信地区可以使用ipv6拨号,好处是网络是上下对等不限速网络,也就是说,你的端口上限是多少,网上就 ...

  9. OpenWRT路由器——网络打印服务器

    1 实验要求和目的 在熟悉掌握OpenWRT路由器的基础上实现具体的功能应用 了解Dream Box网络打印服务器的原理 l掌握设置网络打印服务器的具体流程 2 实验原理与背景知识 2.1网络打印服务 ...

最新文章

  1. android Binary XML file line #1: Binary XML file line #1: Error inflating class x 问题详解
  2. python开发环境wingide的安装与破解
  3. Vue 学习第四天 -2
  4. toString()和String.valueOf()的区别(转)
  5. shell常用命令总结总结
  6. mysql一张表1亿天数据_1亿条数据在PHP中实现Mysql数据库分表100张
  7. 这所高校“起高楼”,绊倒两任“一把手”
  8. python 面试题 -------------- get 和 post 请求的 区别
  9. hive 创建外部表产生java_(一)Hive表(管理表、外部表)的创建规则
  10. 用phpcms如何将静态页面制作成企业网站(上)
  11. C++11 regex库
  12. java反射机制面试_java反射机制面试题及答案整理,java反射面试题
  13. FPGA教程和allegro教程-链接
  14. java rgb yuv_RGB,CMY(K),YUV,YIQ,YCbCr顏色的轉換算法(java實現)
  15. 阿童木机器人完成数千万元B1轮融资,雅瑞资本领投
  16. message from server: “Host is not allowed to connect to this MySQL server“问题的解决办法
  17. Linux中硬盘smart故障,硬盘驱动器 – 此SMART自检是否表示驱动器出现故障?
  18. SQL查找时间记录最近一条
  19. linkerd2 php 微服务,在 Linkerd2 中进行流量拆分
  20. Laravel Excel实现Excel/CSV文件导入导出的功能详解(合并单元格,设置单元格样式)

热门文章

  1. linux中的ul命令,linux lin命令
  2. Windows Android SDK的下载与安装
  3. 【Git】git代码统计分析工具-gitstats
  4. cacls命令使用实例集
  5. PTA 3+2 转段考试 数据库mysql(2篇)
  6. c语言choose函数怎么用,谁说CHOOSE函数简单?这8种用法,赌1毛钱你不会!
  7. numpy高级函数操作之——select、choose
  8. Harbor整体架构
  9. ADS1220开发-----驱动代码
  10. 动态内存分配版本 通讯录的实现 (C语言)