Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92
使用的是RTL8188EU, usb接口。
这是网友寄给我的模块,正好没调试过rtl8188eu,又是usb接口,遗憾的是只改了dts配置就能工作了。
rtl8188eu驱动路径:
kernel/drivers/net/wireless/rockchip_wlan/rtl8188eu/
驱动加载过程:
rockchip_wifi_init_module_rtkwifi -> usb_intf.c
get_wifi_chip_type //之前有分析过ap6335,这里有互斥判断,因此ap6xxx和rtlxxx只能加载其中一个
rockchip_wifi_power rfkill-wlan.c //wlan电源模块调用
rtw_drv_entry ->
dump_drv_version //打印驱动版本
rtw_drv_proc_init //proc/net下创建目录rtl8188eu,可查询的内容定义在drv_proc_hdls数组中
rtw_ndev_notifier_register //网络设备状态变化会收到通知,对应的回调函数是rtw_ndev_notifier_call()
usb_register //注册到usb core中管理
//注册usb枚举成功会调用其probe(),这里对应的是rtw_drv_init()
rtw_drv_init ->
rtw_usb_if1_init ->
rtw_zvmalloc //分配adapter
rtw_init_netdev -> //注册网络设备需要构建一个struct net_device
OS: Android 6.0
Kernel: 3.10.92
使用的是RTL8188EU, usb接口。
这是网友寄给我的模块,正好没调试过rtl8188eu,又是usb接口,遗憾的是只改了dts配置就能工作了。
rtl8188eu驱动路径:
kernel/drivers/net/wireless/rockchip_wlan/rtl8188eu/
驱动加载过程:
rockchip_wifi_init_module_rtkwifi -> usb_intf.c
get_wifi_chip_type //之前有分析过ap6335,这里有互斥判断,因此ap6xxx和rtlxxx只能加载其中一个
rockchip_wifi_power rfkill-wlan.c //wlan电源模块调用
rtw_drv_entry ->
dump_drv_version //打印驱动版本
rtw_drv_proc_init //proc/net下创建目录rtl8188eu,可查询的内容定义在drv_proc_hdls数组中
rtw_ndev_notifier_register //网络设备状态变化会收到通知,对应的回调函数是rtw_ndev_notifier_call()
usb_register //注册到usb core中管理
//注册usb枚举成功会调用其probe(),这里对应的是rtw_drv_init()
rtw_drv_init ->
rtw_usb_if1_init ->
rtw_zvmalloc //分配adapter
rtw_init_netdev -> //注册网络设备需要构建一个struct net_device