分类目录归档:Linux

OpenWrt – 编译固件前个性化设置的几个文件路径

本文中路径以15.05.1为基础

./feeds/luci/modules/luci-base/root/etc/config/luci – LUCI 默认配置文件 (默认语言 等设置)

./packages/kernel/mac80211/files/lib/wifi/mac80211.sh – 无线网设置脚本 (默认开启Wi-Fi / Wi-Fi名后缀为MAC后6位 等设置)

./target/linux/ar71xx/image/Makefile – ar71xx 平台固件编译文件 (固件大小定义 等设置)

./tools/firmware-utils/src/mktplinkfw.c – TP-LINK 路由固件源文件1 (硬件Flash定义 等设置)

OpenWrt – serialoverip的自启动脚本

serialoverip功能与ser2net相似,都能实现IP端口与串口间的数据转发,但不同点在于:

1. 官方发布的ser2net只支持TCP协议转发,增加UDP需要额外加补丁(详见:http://sourceforge.net/p/ser2net/patches/12/)。
2. serialoverip支持且只支持UDP协议转发,但也因此使得其程序非常小巧。后有我注释、替换变量名后的源代码,对此类软件的原理分析很有帮助。

在安装serialoverip后,尝试加入其启动命令到rc.local中,但发现开机并未成功启动serialoverip。几番分析,是由于执行rc.local中语句时OpenWrt的IP分配还未完成(即serialoverip无法绑定192.168.1.1端口),造成启动失败。

由于serialoverip源代码对此情况没有做考虑,所以笔者决定使用sleep来固定等待,修改了rc.local中命令:

sleep 10s && serialoverip -s 192.168.1.1 10002 -d /dev/ttyATH0 9600-8N1 &

先等待10秒再打开192.168.1.1:10002上UDP端口与/dev/ttyATH0串口的转发(加&让其后台运行)。

上例方法基本解决了serialoverip无法启动的问题,但是灵活性还是较低。苦苦搜索了sh命令规范后,本吊探索出一个更灵活的脚本(由于Linux虚拟机没装输入法,所以用英文注解了): 继续阅读

OpenWrt – 编译前的./scripts/feeds脚本用法

从OpenWrt获取源码(详见https://dev.openwrt.org/wiki/GetSource)后,直接使用make menuconfig来设置编译参数的时候是没有Luci和一些其他包的。

此时我们需要使用源代码里script文件夹下的feeds脚本来更新包列表,并将其集成到menuconfig中(假定现在的位置是OpenWrt源代码目录里):

更新包列表:./scripts/feeds update -a
集成到menuconfig:./scripts/feeds install -a

此外可以直接输入./scripts/feeds查看其用法,下面简略翻译了一下用法(水平有限,若有错误欢迎指正): 继续阅读

OpenWrt – barrier breaker trunk版本安装luci依赖的包列表

(当前最新的)barrier breaker trunk版本OpenWrt固件可以从这里下载:
http://downloads.openwrt.org/snapshots/trunk/(硬件平台)/

(当前最新的)barrier breaker trunk版本OpenWrt软件包可以从这里下载:
http://downloads.openwrt.org/snapshots/trunk/(硬件平台)/packages/

(当前最新的)OpenWrt的trunk版本默认是都没有luci图形界面的,在刷入从openwrt.org下载的trunk固件后,需要手动安装luci。以下是luci安装要用到的所有软件包:

luci-lib-sys
liblua
libuci-lua
lua
libubus-lua
luci-lib-core
luci-lib-nixio
luci-sgi-cgi
luci-lib-web
luci-proto-core
luci-i18n-english
luci-mod-admin-core
libiwinfo-lua
luci-theme-base
luci-theme-bootstrap
luci-app-firewall
luci-lib-ipkg
luci-proto-ppp
luci-mod-admin-full
uhttpd
uhttpd-mod-ubus
luci

当然我们如果要使用中文界面的话,还需要以下软件包:
luci-i18n-chinese

继续阅读