ap143 led修改

以前的硬件版本只使用了一个eth口,新的板子增加了一个eth口,并且增加了响应的通信时使用的灯。

led修改涉及到一下的内容:

(1)led 对应的gpio口(这个需要根据原理图来定义)

需要修改的源文件为 target/linux/ar71xx/files/arch/mips/ath79/mach-ap143.c

#define AP143_GPIO_LED_WLAN 0
  //#define AP143_GPIO_LED_WAN 4   // 以前使用GPIO4连接wan口
      #define AP143_GPIO_LED_LAN1 1    // 一直使用GPIO1连接eth0口
      #define AP143_GPIO_LED_LAN2 4    // 现在使用GPIO4连接eth1口

ap143 led修改

(2)修改配置文件( target/linux/ar71xx/base-files/etc/uci-defaults/01-leds)

添加对lan2的led的定义

ap143 led修改

然后进行clean命令,重新编译即可。

附录:

ucidef_set_led_netdev() 位于uci-defaults.sh 文件中,
定义如下:
 

ucidef_set_led_netdev() {
 local cfg="led_$1"
 local name=$2
 local sysfs=$3
 local dev=$4

uci -q get system.$cfg && return 0    // 首先去/etc/config/system配置文件中查找灯设备(譬如本例中 led_lan2),若查找到,则返回,若无,则进行下面的修改

uci batch <<EOF                             // 向配置文件中写入配置
  set system.$cfg='led'
  set system.$cfg.name='$name'
  set system.$cfg.sysfs='$sysfs'
  set system.$cfg.trigger='netdev'
  set system.$cfg.dev='$dev'
  set system.$cfg.mode='link tx rx'
EOF
 UCIDEF_LEDS_CHANGED=1         // 更新标记     
}

 

关于mach-ap143.c中led和gpio相关联的结构体的定义(位于linux-3.10.49/include/linux/leds.h)

/* For the leds-gpio driver */
struct gpio_led {
     const char *name;                               // led名字
     const char *default_trigger;                  // 触发类型
     unsigned  gpio;                                    // 绑定的GPIO端口
     unsigned active_low : 1;                        // 高低点评有效,为1时低电平有效,为0时高电平有效。
     unsigned retain_state_suspended : 1;
     unsigned default_state : 2;               
       /* default_state should be one of LEDS_GPIO_DEFSTATE_(ON | OFF | KEEP) */
};

上一篇:CSS代码实现图片防盗链


下一篇:HDU 5977 Garden of Eden (树形dp+快速沃尔什变换FWT)