1、Linux
kernel 移植
下面基于 32 位 Linux-4.9 内核版本(其它平台移植可以参考此),给出具体的移植步骤。
1.1 添加 Xradio
WLAN 驱动
(1) 把对应内核版本的 lichee/xradio 文件夹拷贝到以下路径:
/lichee/linux-4.9/drivers/net/wireless/
(2) 在内核编译的 Makefile 文件中,加入对驱动的编译语句。
修改 /lichee/linux-4.9/drivers/net/wireless/Makefile 文件,添加以下信息:
obj-$(CONFIG_XR_WLAN) += xradio/
(3) 添加相关内核配置选项。
修改 /lichee/linux-4.9/drivers/net/wireless/Kconfig 文件,添加以下信息:
source "drivers/net/wireless/xradio/Kconfig"
1.2 配置 Xradio 内核编译
通过 Linux 配置界面进行手动逐项配置。在 Linux 的内核路径下(lichee/linux-4.9),使用 make ARCH=arm menuconfig 命令显示配置界面,进行以下配置:
(1)选中“Device Drivers --->Network device support --->Wireless LAN -->Xradio WLAN support”:
(2) 进入 Xradio WLAN support 子项目录,分别选中 Xradio MAC featrues 和 Xradio Driver features:
(3) 进入 Xradio MAC featrues 子项目录,确认默认情况如下选项被选中:
(4) 返回上级 Xradio WLAN support 目录,再进入 Xradio Driver features 子项目录,确认默认情况如下选项 被选中:
(5) 进入 Drvier debug features 子目录,确认以下选项默认被选中:
1.3 Xradio 平台配置
1.3.1 通用平台配置 平台配置一般会涉及上电、中断等配置,此外,还涉及系统唤醒、SDIO 扫描相关的接口配置。在 xradio/wlan/platform.h 声明了 xradio 驱动所需要的平台配置接口,接口实现则在 xradio/wlan/platform.c 中(代 码为 demo,具体平台需重新实现)。
1.3.2
Allwinner 平台配置
1.3.2.1 上电控制模块修改 Allwinner 平台中,上电控制模块的代码路径为:lichee/linux-4.9/drivers/misc/sunxi-rf/
(1) 配置使用外部的 32K 时钟。修改 sunxi-wlan.c 文件中的 sunxi_wlan_probe() 函数: 将 data->lpo = devm_clk_get(dev, NULL); 修改为: data->lpo = devm_clk_get(dev, "losc_out");
(2) 确认内核编译配置:
在 lichee/linux-4.9 目录下输入 make ARCH=arm menuconfig 命令,依次选择“Device Drivers -> Misc devices”,确认“Allwinner rfkill driver”被选中。
更多详细内容请下载附件查看