Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1069131
  • 博文数量: 71
  • 博客积分: 3078
  • 博客等级: 少校
  • 技术积分: 945
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-16 20:10
个人简介

此博客已停用 个人博客: Mangogeek.com

文章分类
文章存档

2016年(1)

2015年(32)

2014年(25)

2011年(13)

分类: LINUX

2015-06-22 13:21:09

需要好好整理一下解决思路。
先说一下系统环境:virtualbox,
Openwrt版本:Chaos Calmer 15.05-rc2
硬件板卡:MT7688,64MB DDR2,8MB SPI FLASH,某宝LH7688
本次解决的问题:MT7688剩余两个串口不能通信,另外UART2端口仍处于analog PAD模式。
注意:本方法适用于标准的openwrt-cc,不适用于sdk和mtk-op。
第一步,改DTS,因为默认的mt7628an.dts缺少uart1和uart2的配置。

第二步,增加pinctrl信息。

第三步,修改arch/mips/ralink/mt7620.c
首先,看到perst,wdt都是错的,顺便改了他们。

prom_soc_init,add this code to fix AGPIO_MODE:(否则uart2还是网口电平)

这样子改后,网口只剩下lan0,个人觉得不够用,又不是去做路由器。
第四步,修改文件drivers/pinctrl/pinmux.c
分析,
line317,pinmux_map_to_setting,group是每一个pinmux注册时的pin的组group,而groups[i]是mt7620.c中可以看到的所有的pin分组groups。这里要匹配,也就是轮询一遍,但是有个问题,num_groups传进来的一直是1,这就导致了357行for循环始终循环一遍。究其根本是get_function_groups函数传的num_groups有问题。
所以真正要修改的是drivers/pinctrl/pinmux-rt2880.c

为什么改成15呢,因为mt7620.c中看到了有15个groups。
对了,最后一个严重问题,请make kernel_menuconfig
找到Device Drivers---->Character devices----->Serial drivers--->Number of 8250/16550 serial ports to register at runtime.由2改为3.
接着来,3个串口就都起来了。

对了,最后一个严重问题,请make kernel_menuconfig
找到Device Drivers---->Character devices----->Serial drivers--->Number of 8250/16550 serial ports to register at runtime.由2改为3.
这样修改后,3个串口就都起来了。






阅读(21272) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~

guangmangdz2016-03-19 17:02:03

hh9090:博主你好,OpenWRT/trunk 编译MT7628/88的时候已经选在了MT76的驱动,但是/etc目录下没有wifi的配置,用ifconfig也没看到wifi的接口,这个应该怎么处理,非常感谢!

mac80211至今还没支持7688,目前的无线都在走闭源二进制驱动,详见linkit的做法即可。

回复 | 举报

hh90902016-03-18 14:12:51

博主你好,OpenWRT/trunk 编译MT7628/88的时候已经选在了MT76的驱动,但是/etc目录下没有wifi的配置,用ifconfig也没看到wifi的接口,这个应该怎么处理,非常感谢!

guangmangdz2015-12-09 17:32:18

zhao_xiaoxiao:可以留一个联系方式吗?

771992497

回复 | 举报

zhao_xiaoxiao2015-12-08 15:30:08

可以留一个联系方式吗?