总结一下OpenWRT编译经验
1.如何为固件增长软件包
软件包索引存储在feeds文件夹中,luci.index packages.index以及xwrt.index就是几乎全部软件包的索引
实例:从Openwrt trunk 移植 aria2 到 Openwrt backfire
察看trunk源码,在packages.index文件中搜索关键字"aria2",发现aria2软件包的描述
- Source-Makefile: feeds/packages/net/aria2/Makefile
- Package: aria2
- Submenu: File Transfer
- Version: 1.15.1-1
- Depends: +libc +USE_EGLIBC:librt +USE_EGLIBC:libpthread +libopenssl +zlib +libxml2 +libstdcpp
- Menu-Depends:
- Provides:
- Section: net
- Category: Network
- Title: lightweight download utility
- Maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org>
- Source: aria2-1.15.1.tar.bz2
- Type: ipkg
- Description: aria2 is a lightweight multi-protocol & multi-source command-line download
- utility
- http://aria2.sourceforge.net/
- OpenWrt Developers Team <openwrt-devel@openwrt.org>
- @@
复制该段,粘贴到backfire固件源码的package.index文件中。
观察以上字段,有Source-Makefile: feeds/packages/net/aria2/Makefile
所以,该软件的makefile就存放在feeds/packages/net/aria2中,将该文件夹复制到backfire固件的feeds/packages/net中
而后在终端中执行
- scripts/feeds install -a
- make menuconfig
若是没有问题,你应该能够发如今Network -> File Transfer分类中出现了aria2,选中它,编译就能够了
实例:从Openwrt trunk 移植 Transmission的Luci界面 到 Openwrt backfire
这个软件包是Luci软件包,所以,它的索引在luci.index中
在trunk源代码的luci.index中搜索关键字"Transmission",有
- Package: luci-app-transmissio
- Submenu: 3. Applications
- Version: 1
- Depends: +libc +USE_EGLIBC:librt +USE_EGLIBC:libpthread +PACKAGE_luci-app-transmission:transmission-daemon
- Menu-Depends:
- Provides:
- Build-Depends: lua/host
- Section: luci
- Category: LuCI
- Title: LuCI Support for Transmission
- Maintainer: LuCI Development Team <luci@lists.subsignal.org>
- Source: luci-.tar.gz
- Type: ipkg
- Description: LuCI Support for Transmission
- http://luci.subsignal.org/
- LuCI Development Team <luci@lists.subsignal.org>
- @@
将该段复制粘贴至backfire的luci.index中
察看trunk固件的feeds/luci/luci/Makefile,搜索关键字"transmission",有
- $(eval $(call application,transmission,LuCI Support for Transmission,\
- +PACKAGE_luci-app-transmission:transmission-daemon))
将这段复制到backfire源代码的相同文件中
进入backfire源代码的dl文件夹中,解压luci的源代码包
一样解压trunk版的luci源代码包
从trunk版luci源代码包中将applications/luci-transmission文件夹复制到backfire版luci代码中
一样的,po文件夹中的是对应各个页面的翻译,咱们须要从trunk版luci代码的po/zh_cn文件夹里,将transmission.po复制过来,这是一个文本文件,有必要能够对其进行翻译。
从新打包源代码从而覆盖旧的版本便可
2.修改默认中文界面
从Openwrt源代码的dl文件中找到luci源码包,解压它
进入该源码包的libs/web/root/etc/config,修改luci
将
修改成
从新打包源码,覆盖原有的源码包
3.修改默认开启无线、修改无线名
打开package/mac80211/files/lib/wifi/mac80211.sh
在该文件的最下面,将
改成
另外,修改option ssid后的内容能够修改无线名称
4.为固件增长fullflash分区
打开target/linux/ar71xx/files/drivers/mtd/tplinkpart.c
将
- #define TPLINK_NUM_PARTS 5
改成
- #define TPLINK_NUM_PARTS 6
(即在原有的数值上加1)
而后在文件中找到如下内容
- parts[0].name = "u-boot";
- parts[0].offset = 0;
- parts[0].size = offset;
- parts[0].mask_flags = MTD_WRITEABLE;
-
- parts[1].name = "kernel";
- parts[1].offset = offset;
- parts[1].size = rootfs_offset - offset;
-
- parts[2].name = "rootfs";
- parts[2].offset = rootfs_offset;
- parts[2].size = art_offset - rootfs_offset;
-
- parts[3].name = "art";
- parts[3].offset = art_offset;
- parts[3].size = TPLINK_ART_LEN;
- parts[3].mask_flags = MTD_WRITEABLE;
-
- parts[4].name = "firmware";
- parts[4].offset = offset;
- parts[4].size = art_offset - offset;
在 parts[4].size = art_offset - offset 后面换一行,添加这段
- parts[5].name = "fullflash";
- parts[5].offset = 0;
- parts[5].size = master->size;
5.修改默认主机名
打开package/base-files/files/etc/config/system
修改option hostname后面的内容
时区和LED设置也在这个文件中
作完以上操做后,须要删除bin和bulid_dir来从新编译
欢迎关注本站公众号,获取更多信息