脚本注入

使用opkg安装软件时,常常需要对候软件包进行初始化或者自定义化操作,这种开发需求一般写给shell脚本就可以对付了。 现在的问题是当这些脚本多了之后,原作者也不愿意修改安装包,我们怎么分发这些自定义的脚本,能不能把自定义的这些脚本编译到opkg包里? 位置 把本地的shell脚本放在openwert 仓库的这个目录,编译openwrt的时候就会被打包到对应opkg二进制文件中: 1 2 /barrier_breaker/package/package-abc # package makefile文件所在 package-abc/files # shell脚本放置目录 步骤 修改Makefile 在package目录下任意找一个package目录,比如chinadns, 然后修改Makefile文件。 在install语句后添加 : 1 $(INSTALL_BIN) ./files/your_script.sh $(1)/etc/config/your_script.sh 放置脚本 将脚本your_script.sh放置在files目录下; 选择opkg 在make menuconfig 图像界面中选择修改过的包(chinadns) 附 package 和注入文件相关的部分makefile代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ## include $(TOPDIR)/rules.mk PKG_NAME:=xxx PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/xxx/releases/download/v$(PKG_VERSION) PKG_MD5SUM:=f772a750580243cfxcsfd2xc39d7b9171b1 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) include $(INCLUDE_DIR)/package.mk ## define Package/xxx SECTION:=net CATEGORY:=Network TITLE:=xxx endef ### define Package/xxx/description button haha upgrade. endef ### #define Package/xxx/conffiles #/etc/config/system #/etc/hotplug.d/button/00-button #endef ### define Package/wps_button/install #$(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_BIN) ./files/xxx $(1)/etc/config/xxx #$(INSTALL_DATA) ./files/system.conf $(1)/etc/config/system endef ### $(eval $(call BuildPackage,xxx)) ##

June 18, 2015 · datewu

增加固件大小

很多路由器的flash容量只有4m大,所以绝大多数openwrt固件也是4m大小。 当我们手动改造路由器加大flash容量后,可以调整openwrt默认设置使得编译出来的factory可以有8m的大小, 从而安装更多的内置软件。 本文以wr703n路由器 为例子,简单介绍一下如何加大固件的容量,让我们预安装更多内置软件。 查看 1 2 3 # ./tools/firmware-utils/src/mktplinkfw.c fw_max_len为0xfc0000,16M flash fw_max_len为0x7c0000,8M flash 修改 1 2 3 # ./target/linux/ar71xx/image/Makefile # 将703n的4Mlzma改为8Mlzma或16Mlzma $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,8Mlzma))

May 7, 2015 · datewu

刷机HG255d

交叉编译 在ubuntu下安装编译工具(gcc,xmllib,cmake, git 等); git克隆openwrt仓库:git clone git://git.openwrt.org/14.07/openwrt.git; 自定义kernel target: 源代码做两处修改 : 1 2 3 target/linux/ramips/image/Makefile /base-files/lib/ramips.sh target/linux/ramips/base-files/lib/preinit/06_set_iface_mac 在弹出的make menuconfig 图像界面中选择cpu型号; 打开vpn开始编译固件。 结果 交叉编译完成后,根据上一步选择的安装包的多少,bin目录下会生成对应的opkg包,和固件: factory文件,可以称作底包; sysupgrade文件,可以称作升级包; web/uboot烧录刷机 接通路由器电源,按住WPS按钮不放,然后按电源键开机, power LED快闪即松开WPS键,此时路由器已加入升级模式; 访问路由器web地址(如:http://192.168.1.1), 按照web界面提示选取factory文件完成固件烧录刷机; ssh/ftp 烧录 可以直接执行sysupgrade命令烧录估计: 1 2 3 4 5 ssh-keygen -f "/home/openwrt-qqm/.ssh/known_hosts" -R 192.168.1.1 #可以省略此条命令 scp xxxxxx-squashfs-sysupgrade.bin [email protected]:/tmp/ ssh [email protected] cd /tmp/ sysupgrade -n xxxxxxxxxxx-sysupgrade.bin opkg 烧录完系统固件后,可以使用opkg安装软件包,比如china-dns, shadowsocks, openvpn,等等。

March 17, 2015 · datewu