找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 6052|回复: 4

lede适配led灯教程MT7620n适用

[复制链接]
废话少说,第一步工作在编译前修改源码配置,打开gpio控制权,以便在lede系统中测试连接led灯的gpio号
1:打开source/target/linux/ramips/dts/psg1218.dts(这里的psg1218.dts是我编译时选择的机型,你们根据自己的机型选择相应的dts文件),接下来我们要修改它,为了避免不必要的麻烦,我们先复制它,并保存到一个可以记住的地方,以便在完成测试,真正使用的时候把他们复制过来。
2:修改dts文件,首先删除以下的语句,你的可能不一样,但语法是一样的,找到他们,删除他们

^^^以上图片中语句的意思是注册3个led灯,他们的名字分别是lan,wan,d. lan口的指示led灯连接到第2组的第1个, wan口的指示led灯连接到第2组的第0个, 自己定义了一个d,它连接到第0组的第9个灯,(mt7620在lede系统中把可以使用的gpio分成了组,注册使用时需要填写相应的组和他们在组中的位置,组和位置都是从0开始的,具体组,位置和gpio的对应关系我会在下文中解释)
3:完成上面的删除工作之后,找到以下语句

^^^以上图片中的语句意思是开放gpio0这一个组,由于每个路由器所连接led灯的gpio组不一样,所以你的数字可能会不一样,修改成下面的样子

^^^以上这些代码的意思是依次打开gpio0,gpio1gpio2,gpio3,这4个组的gpio的控制权限,以便我们在系统中控制测试他们
4:保存修改好的dts文件,然后执行编译(在黑框框中执行make V=99),将编译好的固件刷到路由器中,接下来就要进行测试工作了,
5:用putty登录路由器(不会连接的朋友自己查下)
输入代码echo  44  > /sys/class/gpio/export按下回车

^^^以上代码的意思是申请使用第44号引脚,也就是gpio44,申请成功会接着让你输入代码,如果申请失败,会输出错误提示信息。(为啥会申请失败呢?因为有可能我们申请的引脚被电路设计师用来连接其他硬件了,这个引脚正在被使用,它正在传输数据,所以无法被我们所控制,另外一个引脚无法被申请两次,假设我们再次申请使用gpio44引脚就会报错,因为它已经被申请过了)
出现上图对话框后,我们接着输入echo  out > /sys/class/gpio/gpio44/direction按下回车

^^^这条代码的意思是把gpio44号引脚设定为输出(此时观察下路由器led灯,有些设备由于硬件原因此时就已经亮了(如果有一个led正好连接这44号引脚的话))
出现上图对话框后,我们接着输入echo  0  > /sys/class/gpio/gpio44/value按下回车

^^^这条命令的意思是把gpio44这个引脚的输出设置成低电平,0=低电平(观察路由器led灯有没有亮起来,如果没有亮请看下面)
如果仍然没有亮起led灯,我们接着输入echo  1  > /sys/class/gpio/gpio44/value按下回车

^^^以上这条命令的意思是把gpio44号引脚设置成高电平,1=高电平(此时观察下led灯,如果亮起一个,记录下路由器上此灯对应的名字(也就是灯旁边印上的名字),比如wan.lan.sys,wifi等)(假设如果此时仍然没有任何灯亮起来,那说明gpio44号引脚没有连接任何灯,继续测试下个引脚)
PS:哪些引脚有可能连着led灯,我们应该测试哪些呢?接下来就说明这个问题,看下图,MT7620开放的gpio有这么多



^^^上图中的意思是mt7620n给我们提供了0组1组2组3组,总共4组gpio(注意组是从0开始的)
-------------------------------------------------------------------------------------------------------------------------------------------
>>>第0组包含了24个引脚,0-23共24个,如果要在dts中使用这些引脚,他们是这样的
0 , 0    表示第0组第0个引脚,也就是gpio0
0 , 1    表示第0组第1个引脚,也就是gpio1
…………
…………
0 , 23    表示第0组第23个引脚,也就是gpio24
-------------------------------------------------------------------------------------------------------------------------------------------
>>>第1组包含了16个引脚,24-39共16个,如果要在dts中使用这些引脚,他们是这样的
1 , 0    表示第1组第0个引脚,也就是gpio24
1 , 1    表示第1组第1个引脚,也就是gpio25
…………
…………
1 , 38    表示第1组第16个引脚,也就是gpio39

-------------------------------------------------------------------------------------------------------------------------------------------
>>>第2组包含了32个引脚,40-71共32个,如果要在dts中使用这些引脚,他们是这样的
2 , 0    表示第2组第0个引脚,也就是gpio40
2 , 1    表示第2组第1个引脚,也就是gpio41
…………
…………
2 , 31    表示第2组第32个引脚,也就是gpio71


-------------------------------------------------------------------------------------------------------------------------------------------
>>>第3组包含了1个引脚,gpio72,这个引脚通常是wifi指示灯,他在dts中是这样表示的
3 , 0    表示第3组中的第0个引脚,也就是gpio72
-------------------------------------------------------------------------------------------------------------------------------------------
PS:知道了哪些引脚可以测试了之后,我们就可以把所有的4组gpio引脚挨个测试,直到找到连接led灯的gpio引脚为止
PS:现在我们假设已经找到了连接led灯的gpio引脚,现在把他编译到lede系统中去
首先我们定位到dts目录,也就是上次修改dts的地方source/target/linux/ramips/dts/找到psg1218.dts这个文件(这个文件需要根据你的机型),删除它(我示列是psg1218.dts),然后找到我们之前备份的psg1218.dts复制原来的psg1218.dts到source/target/linux/ramips/dts/这个目录
然后打开它,找到默认注册的lan,wan,wifi等,如下图所示

把尖括号里的数字替换成你测试出来的gpio值,上图中lan的注册 gpios =< &gpio2 1 1>;  这行代码表示lan口的led灯连接着第2组gpio的第1个引脚,也就是gpio41号引脚,至于尖括号中最后那个1,应该是默认让次脚输出高电平吧(此处凭猜测,具体用处不明,可以是1,也可以是0)
把测试的gpio组和号写到注册项里(注册项是开头的lan,wan,wifi这些),确保准确无误后,再次执行编译,把得到的固件刷入路由器,就可以完美点亮led啦
error:啥?还没有点亮?这样做,登录路由器,打开左侧栏的系统,点击LED配置,配置一下(关于如何配置的问题自己多点几下就明白了。我说不明白)
如果此时还没有亮起来,请在dts文件中检查下图中所示的gpio组开关打开没有

PS:至此,led的适配工作就完成了。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
外篇:怎样自定义一个led灯,需要打开如下文件
source/target/linux/ramips/base-files/board.d/01-leds 对没错,就是01-leds这个文件,先在这里申请好注册项,然后在上面讲过的dts文件里注册
看下图就明白了

^^^^上图是01-leds文件中我的led项目申请情况,d,a,b,c就是我自己定义的led灯项目,下面看下我的dts里对应的注册情况(此处是psg1218.dts)

可以看出这两个文件是一一对应的关系。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
都是高手,我表示看不懂。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

一脸懵逼啊
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

请教一下大佬

我现在led配置想配置一个这个东西,但我在源码01LED里面写了,不生效

请指教

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢分享,打个CALL。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-29 12:59

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表