在openwrt官网上有所有使用同一个方案的路由器,可以看到很多详细信息
MT7621 (On May, 5th 2011, MediaTek bought Ralink,mt7621属于ralink)
2 cores, 4 threads:
MT7621AT
1 core, 2 threads:
MT7621ST, MT7621NT
设备树路径:mtk-openwrt-lede-4.2.1.0/target/linux/ramips/dts/
分两种,
nor flash:mt7621-rfb-ax-nor.dts
nand flash: mt7621-rfb-ax-nand.dts
设备树中gpio分组定义在文件:\build_dir\target-mipsel_24kc_musl-1.1.16\linux-ramips_mt7621\linux-4.4.198\arch\mips\ralink\mt7621.c
完整内核路径在:mtk-openwrt-lede-4.2.1.0/build_dir/target-mipsel_24kc_musl-1.1.16/linux-ramips_mt7621/linux-4.4.198
kernel配置文件路径:Z:\mtk7621-sdk\mt7621\mtk-openwrt-lede-4.2.1.0\target\linux\ramips\mt7621\config-4.4
/linux-ramips_mt7621/linux-4.4.198/.config 和tmp/.kconfig-ramips_mt7621 是一模一样的文件
cp -f autobuild/mt7621-mt7915-AP-AX1800/config-4.4 target/linux/ramips/mt7621/config-4.4
openwrt系统配置文件路径:Z:\mtk7621-sdk\mt7621\mtk-openwrt-lede-4.2.1.0.config
.config中有个宏CONFIG_TARGET_PREINIT_IFNAME,定义在文件package/base-files/image-config.in:67:config TARGET_PREINIT_IFNAME
.config中有个宏CONFIG_TARGET_DEVICE_ramips_mt7621_DEVICE_mt7621-rfb-ax-nand=y,定义在文件target/linux/ramips/image/mt7621.mk,对dts的选择由这里控制
.config中CONFIG_PHYSICAL_START=0x1000000是配置放kernel固件的物理地址的
1、MAC地址存储
mt7621: lan mac is at factory 0xe000 and wan mac at factory 0xe006. This is the default location for mt7621 boards in MTK’s SDK.
In OpenWRT, all kernel module package filenames begin with kmod-.
2、PPP
PPP(Point-to-Point,点到点协议),在串行链路上传输IP数据报的方法,从低速的拨号调制器到高速的光链路。
PPP不是单一的协议,而是协议集合,支持LCP——建立链接,以及一系列NCP协议,LCP为各种协议(IPv4,IPv6和非IP协议)建立网络层链路
3、uci
openwrt使用uci(统一配置接口)来配置它自己核心的services,
To set some system defaults the first time the device boots, create a script in the directory /etc/uci-defaults.
4、ubus(OpenWrt 微总线架构)
为了在 OpenWrt 中提供各种守护进程和app之间的进程间通信,openWrt开发了一个名为ubus的项目。它由守护进程、库和一些额外的helper组成。
这个项目的核心是ubusd守护进程。它为其他守护进程提供用来注册自己和发送消息的接口,这个接口是使用 Unix 套接字实现的,它使用TLV(类型-长度-值)消息。
为了方便调用ubus的app开发,我们又建立了libubus库。
每个守护进程在特定的命名空间下注册一组路径。每个路径都可以提供具有任意数量参数的多个过程。程序可以用消息回复。
ubus命令行工具能够与ubusd服务器交互(与所有注册的服务进行交互)。它对于调查/调试注册的namespace以及编写 shell 脚本很有用。