磊科 NW 337 RTL8188Cus 在 opensuse13.1 上编译失败

磊科 NW 337 RTL8188cus 在 openSUSE 13.1 上编译失败,求教程求成功的大神指导。

是一样的内容吧?我把主题合并了。

磊科 NW337 是什么?

编译的是什么东西?

编译的错误信息是什么?

是的,谢了

opensuse13 编译 RTL8188cus 驱动报错

错误信息呢?

驱动的 tarball 是什么版本的?

是这个么?
realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PFid=48&Level=5&Conn=4&ProdID=274&DownTypeID=3&GetDown=false&Downloads=true#2292

支持的内核版本为:
Linux Kernel 2.6.18~2.6.38 and Kernel 3.0.2

openSUSE 13.1 的内核版本已经超出驱动的支持限度了。

另外也可能是缺乏依赖。 你得仔细阅读错误信息。

/home/autlee/RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911/driver/rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911/os_dep/linux/os_intfs.c:628:7: error: dereferencing pointer to incomplete type
entry->write_proc = proc_set_rssi_disp;
^
/home/autlee/RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911/driver/rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911/os_dep/linux/os_intfs.c:631:8: warning: assignment makes pointer from integer without a cast [enabled by default]
entry = create_proc_read_entry("sreset", S_IFREG | S_IRUGO,
^
/home/autlee/RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911/driver/rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911/os_dep/linux/os_intfs.c:637:7: error: dereferencing pointer to incomplete type
entry->write_proc = proc_set_sreset;
^
cc1: some warnings being treated as errors
make[4]: *** [/home/autlee/RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911/driver/rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911/os_dep/linux/os_intfs.o] 错误 1
make[3]: *** [_module_/home/autlee/RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911/driver/rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911] 错误 2
make[2]: *** [sub-make] 错误 2
make[1]: *** [all] 错误 2
make[1]: 离开目录“/usr/src/linux-3.11.6-4-obj/x86_64/desktop”
make: *** [modules] 错误 2
##################################################
Compile make driver error: 2
Please check error Mesg
##################################################

求大神指点

请不要说“求大神指点”

这里没人是大神。 Linus 不在这里,高德纳也不在这里:-)

我个人的观点是你的驱动有问题。

os_intfs.c:637:7: error: dereferencing pointer to incomplete type

应该是说 C 语言的指针有问题。 我不懂 C 语言。 但是我个人观点是这个问题就是因为你的驱动太旧了。

我前面问过你驱动是不是一个链接里面的。你没回复这个问题。 那个链接里面的驱动是正对 Kernel 2.6.18~2.6.38 设计的。 也就是说只能用在 openSUSE11.4 之前的版本。 而你现在是 openSUSE13.1,这么多版本过去了。 内核已经是 3.11 了。 内核的变化已经很大了。

解决方案么,可以考虑这个:http://software.opensuse.org/package/ndiswrapper

我不能保证成功。我对 C 语言、内核一无所知,对 ndiswrapper 也一无所知。我使用了 7 年 Linux 只遇到过声卡不支持的问题。

找到

#include <rtw_ioctl.h>
#include <rtw_version.h>

#ifdef CONFIG_USB_HCI
#include <usb_osintf.h>
#endif

替换成

#include <rtw_ioctl.h>
#include <rtw_version.h>

#if defined(DBG_CONFIG_ERROR_DETECT)
#include <rtw_debug.h>
#endif /* DBG_CONFIG_ERROR_DETECT */

#ifdef CONFIG_USB_HCI
#include <usb_osintf.h>
#endif

再编译。

PS:

我在这里。