linux下rtl8188 驱动编译 出现类似 create_proc_entry daemonize 错误问题解决

http://yafeilee.me/blogs/51c1ad4015638855d1000002
http://www.ithao123.cn/content-2261523.html
https://actom.me/blog/fedora-20-%E5%AE%89%E8%A3%85%E7%A3%8A%E7%A7%91nw336%E9%A9%B1%E5%8A%A8rtl8188eus.html
http://linsir.org/post/Raspberry_Pi_Wifi_Router

一、rtl8188eu/include/osdep_service.h:1397:2: error: implicit declaration of function ‘daemonize’ [-Werror=implicit-function-declaration]

TP-LINK TL-WN725N 在 unbuntu 13.04 中的驱动安装问题. 本质问题是 realtek 8188eu 无线驱动在 linux kernel 3.8.0 中的安装问题.

OK, 开始,

第一步, 先查问题, lsusb 查到硬件id为 0bda:8179, 再到google之, 知道是 8188eu 的驱动.

第二步, 下载驱动, 正常搜索 realtek官网, 可以找到, 但一看, nnd, 是2.6内核的, 3.0以上是不可用的.

继续找, 发现这里: https://github.com/Red54/linux-shumeipai2/tree/sunxi-3.0/drivers/net/wireless/rtl8188eu 这个已经支持3.x. 好, 使用

git clone –depth 1 xxx_url

下载之.

第三步, 编译安装, 驱动的编译安装也很简单, 无非就是

make
make install
depmod -a
modprobe xxx

但是, 这里才出现问题的关键, 8188eu 在 3.5.x 内核以下版本都没有问题, 3.5.x 以上就出问题了:

error: implicit declaration of function ‘daemonize’ [-Werror=implicit-function-declaration]

这个问题是由于 3.5.x 以上内核去掉了 daemonize 这个函数, 导致无法顺利编译( 当然这是查了N多资料, 搜索了对应的头文件 ),

解决方法很简单, 删掉它就可以了:

diff --git a/include/osdep_service.h b/include/osdep_service.h
index ed2dae5..e9acb0d 100755
--- a/include/osdep_service.h
+++ b/include/osdep_service.h
@@ -1403,7 +1403,7 @@ static __inline void thread_enter(char *name);
static __inline void thread_enter(char *name)
{
#ifdef PLATFORM_LINUX
-       daemonize("%s", name);
+       //daemonize("%s", name);
        allow_signal(SIGTERM);
#endif
#ifdef PLATFORM_FREEBSD

好了, 重新编译, 安装即可.

因为本篇不是新手解决问题的方法, 只写了思路和关键步骤, 这里有一个参考内容, 步骤写的很全, 中间加上我这里的修改就可以了, 你可以参考下: http://peppermintos.net/viewtopic.php?f=8&t=5619

二、出现类似os_dep/linux/os_intfs.c:313:3: error: implicit declaration of function ‘create_proc_entry’ [-Werror=implicit-function-declaration]的错误

需要修改os_intfs.c文件,具体文件我已经修改好了,详见
http://download.csdn.net/detail/zdf511391565/8943815
直接替换即可

http://www.tuicool.com/articles/FJJZBvR
http://www.ithao123.cn/content-7900213.html

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