三无rk3399模块,安装armbian比较容易,但是wifi一直没有调试通过,甚为苦恼。
今天终于解决了。
一、故障现象:
仔细看linux启动的log,可以看出驱动程序加载,但报超时错误。
[ 1677.822786] input: 2.4G Mouse Consumer Control as /devices/platform/usb@fe900000/fe900000.usb/xhci-hcd.1.auto/usb7/7-1/7-1:1.1/0003:1EA7:0066.0004/input/input10
[ 1677.880832] input: 2.4G Mouse System Control as /devices/platform/usb@fe900000/fe900000.usb/xhci-hcd.1.auto/usb7/7-1/7-1:1.1/0003:1EA7:0066.0004/input/input11
[ 1677.881682] hid-generic 0003:1EA7:0066.0004: input,hiddev96,hidraw1: USB HID v1.10 Mouse [2.4G Mouse] on usb-xhci-hcd.1.auto-1/input1
[ 1964.913126] usbcore: deregistering interface driver brcmfmac
[ 1974.469889] brcmfmac: F1 signature read @0x18000000=0x15264345
[ 1974.478549] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[ 1974.483562] usbcore: registered new interface driver brcmfmac
[ 1975.533565] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
[ 1976.541524] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
二、排查问题:
1、找多个版本的驱动结果一样。
2、怀疑DTS问题,仔细查找也是找不到原因。中间还发遇到其他问题,比如,打开FUSB30芯片驱动就会卡死。问题还没有解决。
3、动用示波器,仔细看ap6255的电压和波形。
其他信号都对,但是clk32k没有。对比其他正常的模块,发现有32k信号,但是信号幅度很低,100mv左右!!
所以,结论我的模块clk32k没有导致,ap6255芯片不工作。
4、应该是输出时钟芯片驱动出现问题。时钟一般是由pmic输出的。
为了确认问题,我要看pmic的寄存器:
1、安装i2c-tools
2、查看i2c总线
sudo i2cdetect -a 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x00-0x7f.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
看见0x1c地址就是pmic的地址,我们要直接操作。
下面看看pmic的寄存器内容
:~$ sudo i2cdump -f -y 0 0x1c
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 19 30 12 21 05 22 06 00 00 00 00 01 01 00 00 00 ?0?!?”?..??..
10: 80 02 00 00 00 00 00 81 81 00 00 00 00 00 00 00 ??..??..
20: 01 57 00 7f ff 03 c7 00 00 00 00 7f ff 02 1a 21 ?W.?.??..?.??!
30: 00 00 02 0f 00 00 02 04 00 00 09 0c 00 0c 00 0a …??..??..??.?.?
40: 00 0f 0f 0c 0c 07 07 0a 00 0f 00 00 00 df 00 ff .???.?..?..
50: 00 00 03 00 6c 0c 00 00 00 00 00 00 00 00 00 00 …?.l?..
60: 00 00 0c 00 44 01 00 00 00 00 00 00 00 00 00 00 …?.D?..
70: 00 cf 03 00 00 00 8f 1d e0 21 00 35 24 00 00 00 .??..!!!.5$…
80: 16 70 6f b8 00 00 10 00 00 00 04 08 01 01 00 00 ?po?..?..???..
90: 55 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 U…?..
看到的20地址,现在是正常的情况,不正常的时候是3。
我们直接用set命令改写为1就可以,测试24管腿,clock输入正常了。
最后、可以试试wifi芯片是否能正常工作。
先卸载启动时加载的驱动,用rmmod brcmfmac命令。
再用modprobe brcmfmac命令
然后,dmesg看到以下内容。
[ 1986.980147] usbcore: deregistering interface driver brcmfmac
[ 2477.485135] brcmfmac: F1 signature read @0x18000000=0x15264345
[ 2477.497517] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[ 2477.502459] usbcore: registered new interface driver brcmfmac
[ 2477.651601] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[ 2477.660824] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Feb 27 2018 03:15:32 version 7.45.154 (r684107 CY) FWID 01-4fbe0b04
哈哈,程序运行正常,这个时候右上角的wifi图标就会发生变化,选择wifi名,输入密码,wifi上网发现一切正常。
没有修改armbian驱动,以后再说!!
评论(0)