|
本帖最后由 zeng362424 于 2016-12-14 14:43 编辑
最近做了op固件,串口接烟雾报警器,CPU用的是AR9341,ap是从厂家购买的,只要一个网口,3个led,一个power灯,一个system灯,一个wifi灯。
固件一开始通过官方固件一个一个试的,最后试了wr841n-v8的固件,ap能运行,但是wifi灯不亮,就选用了这个固件。
一、uboot升级
选择不死uboot,先把ttl线接上ap的串口线,在uboot界面下,设置好tftp 服务器ip,本地ip,uboot名称,运行 run lu 升级uboot,
升级完uboot以后,要在不死uboot下修改tplink的mac地址,要不然wifi无法启动.
二、编译固件(源码选择15.05)
1、 首先根据路由器型号编译出在ap上能运行的841n-v8固件。
2、添加了luci等一些包以后,原来的4M不够了,需要修改841n-v8固件大小为8M
修改方法,
修改\chaos_calmer\target\linux\ar71xx\image 目录下的Makefile文件,
- define Device/tl-wr841n-v8
- $(Device/tplink-8mlzma) ----------------------------这里原来是4mlzma
- BOARDNAME := TL-WR841N-v8
- DEVICE_PROFILE := TLWR841
- TPLINK_HWID := 0x08410008
- endef
复制代码 3、屏蔽串口,系统起来以后串口禁止输入,输出修改inittab文件,去掉或者注释掉最下面一行
- ::sysinit:/etc/init.d/rcS S boot
- ::shutdown:/etc/init.d/rcS K shutdown
- #::askconsole:/bin/ash --login
复制代码 在system配置中添加
- option 'conloglevel' '1'
- option 'kconloglevel' '1'
复制代码
4、修改GPIO
GPIO14,GPIO15需要用来控制烟雾报警器,查看841n-v8源码发现,GPIO14以及GPIO15已经被led占用了,所以需要释放出来。
这里放上修改的patch文件,怎么打patch,在以前的帖子(openwrt 如何修改源码 给源码打patch )已说明
- --- a/arch/mips/ath79/mach-tl-wr841n-v8.c
- +++ b/arch/mips/ath79/mach-tl-wr841n-v8.c
- @@ -24,13 +24,7 @@
- #include "machtypes.h"
-
- #define TL_WR841NV8_GPIO_LED_WLAN 13
- -#define TL_WR841NV8_GPIO_LED_QSS 15
- -#define TL_WR841NV8_GPIO_LED_WAN 18
- -#define TL_WR841NV8_GPIO_LED_LAN1 19
- -#define TL_WR841NV8_GPIO_LED_LAN2 20
- -#define TL_WR841NV8_GPIO_LED_LAN3 21
- -#define TL_WR841NV8_GPIO_LED_LAN4 12
- -#define TL_WR841NV8_GPIO_LED_SYSTEM 14
- +
-
- #define TL_WR841NV8_GPIO_BTN_RESET 17
- #define TL_WR841NV8_GPIO_SW_RFKILL 16 /* WPS for MR3420 v2 */
- @@ -61,34 +55,6 @@
-
- static struct gpio_led tl_wr841n_v8_leds_gpio[] __initdata = {
- {
- - .name = "tp-link:green:lan1",
- - .gpio = TL_WR841NV8_GPIO_LED_LAN1,
- - .active_low = 1,
- - }, {
- - .name = "tp-link:green:lan2",
- - .gpio = TL_WR841NV8_GPIO_LED_LAN2,
- - .active_low = 1,
- - }, {
- - .name = "tp-link:green:lan3",
- - .gpio = TL_WR841NV8_GPIO_LED_LAN3,
- - .active_low = 1,
- - }, {
- - .name = "tp-link:green:lan4",
- - .gpio = TL_WR841NV8_GPIO_LED_LAN4,
- - .active_low = 1,
- - }, {
- - .name = "tp-link:green:qss",
- - .gpio = TL_WR841NV8_GPIO_LED_QSS,
- - .active_low = 1,
- - }, {
- - .name = "tp-link:green:system",
- - .gpio = TL_WR841NV8_GPIO_LED_SYSTEM,
- - .active_low = 1,
- - }, {
- - .name = "tp-link:green:wan",
- - .gpio = TL_WR841NV8_GPIO_LED_WAN,
- - .active_low = 1,
- - }, {
- .name = "tp-link:green:wlan",
- .gpio = TL_WR841NV8_GPIO_LED_WLAN,
- .active_low = 1,
复制代码 5、使能wifi灯
需要修改system文件为,最下面为自定义的wifi灯
- config system
- option hostname 'OpenWrt'
- option timezone 'UTC'
- option 'conloglevel' '1'
- option 'kconloglevel' '1'
- config timeserver 'ntp'
- list server '0.openwrt.pool.ntp.org'
- list server '1.openwrt.pool.ntp.org'
- list server '2.openwrt.pool.ntp.org'
- list server '3.openwrt.pool.ntp.org'
- option enabled '1'
- option enable_server '0'
- config led 'wlan_led'
- option name 'WLAN'
- option sysfs 'tp-link:green:wlan'
- option trigger 'netdev'
- option dev 'wlan0'
- option mode 'link tx rx'
- option default '0'
复制代码
6、添加gpio14,以及gpio15
我这里使用的方法是通过开机脚本来实现
S100GPIO
- #!/bin/sh /etc/rc.common
- # Copyright (C) 2014 OpenWrt.org
- START=100
- USART_UPGRADE_GPIO=14
- USART_REBOOT_GPIO=15
- start()
- {
- echo $USART_UPGRADE_GPIO > /sys/class/gpio/export
- echo in > /sys/class/gpio/gpio14/direction
- echo $USART_REBOOT_GPIO > /sys/class/gpio/export
- echo in > /sys/class/gpio/gpio15/direction
- }
复制代码 三、最后说明一下怎么用自定义的配置文件替换原有的配置文件
在编译目录下面新建files,将自定义的配置文件放在里面,编译出的新固件就会有你自定义的配置
- /work/chaos_calmer$ tree files
- files
- └── etc
- ├── config
- │ ├── dhcp
- │ ├── firewall
- │ ├── http_url
- │ ├── network
- │ ├── sn_id.conf
- │ ├── system
- │ └── version
- ├── init.d
- │ ├── xx.bin
- │ ├── xx
- │ └── xx
- ├── inittab
- └── rc.d
- ├── xx
- └── xx
- 4 directories, 13 files
复制代码
请不要胡乱输入以及粘贴、复制等方式灌水
请尊重作者、并共同维护网站的正常阅读,否则账户将会被限制发帖、回帖,并且积分可能会被清零,站内短信以及阅读权限等都会受到影响,谢谢。
具体限制方式:https://www.right.com.cn/forum/thread-8307840-1-1.html
|
评分
-
查看全部评分
|