我正在尝试使用主线内核让 WiFi 在 Banana PI M2M 上工作。
香蕉 pi m2m 的设备树定义非常不完整,sun8i-r16-bananapi-m2m.dts
我成功地使 SPI 工作,但我现在正在努力让 WiFi 驱动程序正常工作。
香蕉派M2M采用的是AP6212芯片,从外观上看是采用的是BRCM4329芯片。
AP6212通过SDIO1连接到全志A33,PL6连接WL_PMU_EN
,PL7连接WL-WAKE-AP
。 (https://drive.google.com/file/d/0B4PAo2nW2KfndHY1VF9UWXl2Rm8/view?usp=sharing)
我已经用以下内容修改了 dts:
&mmc1 {
pinctrl-names = "default";
pinctrl-0 = <&mmc1_pg_pins>;
vmmc-supply = <®_aldo1>;
mmc-pwrseq = <&wifi_pwrseq>;
bus-width = <4>;
non-removable;
status = "okay";
brcmf: wifi@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
interrupt-parent = <&r_pio>;
interrupts = <0 7 IRQ_TYPE_LEVEL_LOW>; /* PL7 */
interrupt-names = "host-wake";
};
};
我已在内核 80211 中启用了 bcrm-fmac 驱动程序和 brcm-fmac-sdio。在 buildroot 中我添加了 wireless-regdb 包。我还从bananapi 官方映像(内核3.4)复制了/lib/firmware/brcm
获取固件和配置。
此时我可以使用 modprobe 加载驱动程序,但遇到超时问题,不太确定从这里看哪里......
# modprobe brcmfmac
[ 67.440758] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 67.513578] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 67.595615] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
# [ 68.745996] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
[ 69.767856] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
我的猜测(但这实际上只是猜测)是我缺少一些正确唤醒 wifi 芯片的步骤,但在板上测量,看起来不同的导轨处于正确的水平。
有没有人有机会在香蕉 pi m2m 上获得与不同驱动程序一起工作的最新内核?
感谢您的任何答案或提示!
答案1
我有同样的主板,也想使用主线 Linux。
我在 Banana pi m2m bsp 的 3.4 内核日志中找到了这一行:
[ 14.519605] DHD: dongle ram size is set to 524288(orig 524288) at 0x0
[ 14.535387] dhd_conf_read_others: ccode = CN
[ 14.535623] dhd_conf_read_others: regrev = 0
[ 14.535763] Final fw_path=/lib/firmware/ap6212/fw_bcm43438a1.bin
[ 14.535959] Final nv_path=/lib/firmware/ap6212/nvram.txt
因此,复制/lib/firmware/ap6212/fw_bcm43438a1.bin
到/lib/firmware/brcm/brcmfmac43430-sdio.bin
并复制/lib/firmware/ap6212/nvram.txt
到/lib/firmware/brcm/brcmfmac43430-sdio.sinovoip,bananapi-m2m.txt
就可以了。
我现在已经可以使用 Wi-Fi 了。