关于加载驱动rtl8188EUS(8188eu.ko)到内核3.0.y出现段错误

1. 先看到段错误   rtw_ndev_notifier_call

fa0: c00231a0 c0061d78 be84af87 4022a008 4022a008 00122dba 017e2008 00000000
7fc0: be84af87 4022a008 017e2008 00000080 00000000 00000000 00000307 00000000
7fe0: 4019dcb4 be84ac6c 00020da0 4019dcc4 20000010 4022a008 2578303a 00000a78
Backtrace:
[] (rtw_ndev_notifier_call+0x0/0x74 [8188eu]) from [] (register_netdevice_notifier+0x7c/0x19c)
 r5:bf40ccec r4:c045a19c
[] (register_netdevice_notifier+0x0/0x19c) from [] (rtw_ndev_notifier_register+0x14/0x1c [8188eu])
[] (rtw_ndev_notifier_register+0x0/0x1c [8188eu]) from [] (rtw_drv_entry+0x74/0xe0 [8188eu])
[] (rtw_drv_entry+0x0/0xe0 [8188eu]) from [] (do_one_initcall+0x3c/0x18c)
 r4:c0410260 r3:c5906000
[] (do_one_initcall+0x0/0x18c) from [] (sys_init_module+0x90/0x1a4)
 r9:c5906000 r8:c0023324 r7:00122dba r6:00000000 r5:bf423f88
r4:4022a008
[] (sys_init_module+0x0/0x1a4) from [] (ret_fast_syscall+0x0/0x30)
 r7:00000080 r6:017e2008 r5:4022a008 r4:be84af87
Code: e1a04002 e59220d8 e3083610 e34b3f3a (e592202c)
---[ end trace 74bd56e57ce595c7 ]---
Segmentation fault
Auto login as root ...


看到段错误的时候,因为是来自于内核,暂时未考虑驱动的问题,所以先去查看内核相关的资料。

看无线驱动要依赖那些内核模块,吧Networking support->Wireless->下的cfg80211的都选上。


关于加载驱动rtl8188EUS(8188eu.ko)到内核3.0.y出现段错误_第1张图片


同样把Device Drivers -> USB support 下的许多相关项都选上。

以及

CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
CONFIG_WIRELESS_EXT=y
CONFIG_WEXT_CORE=y
CONFIG_WEXT_PROC=y
CONFIG_WEXT_PRIV=y
CONFIG_CFG80211=y
# CONFIG_NL80211_TESTMODE is not set
# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
# CONFIG_CFG80211_REG_DEBUG is not set

至少确保wifi驱动的内核依赖是完整的。  不过问题还在继续。


2 。 后根据 rtw_ndev_notifier_call 这函数去百度。 然后百度到结果 如链接。 说的是驱动内的空指针。

http://blog.csdn.net/a_tu_/article/details/40375147

可是我摆明的是linux 3.0.y的内核,而且内核中也已经这么修改过了。

关于加载驱动rtl8188EUS(8188eu.ko)到内核3.0.y出现段错误_第2张图片


然后看到的宏定义 LINUX_VERSION_CODE 为 KERNEL_VERSION(2,6,29)。  所加的代码无用,好吧,于是吧宏定义给改了3.11.2,方正能用到新添加的代码了。 其他的没工夫继续深挖。。。。

不过改了是改了,但是实际效果如何,还待测试。




你可能感兴趣的:(嵌入式)