使用rtl8192du安装无线驱动步骤
*************一、直接操作发**********
步骤:1、去Realtek官网下载无线网卡驱动
下载地址:点击这里
2、驱动在压缩包中的driver目录(也是一个压缩包),将其解压到/opt/EmbedSky/linux-2.6.30.4/drivers/net/wireless下
3、将无线网卡驱动目录下Kconfig中的信息拷贝到上一级目录的Kconfig末尾
4、修改/opt/EmbedSky/linux-2.6.30.4/drivers/net/wireless目录下的Makefile:在最后加上
obj-$(CONFIG_RTL8192CU) += rtl8188C_8192C/ (这个是驱动的相对路径)
5、 配置内核
跳转到内核的目录 cd /opt/EmbedSky/linux-2.6.30.4
执行 make menuconfig
进入Device Drivers --->
[*] Network device support --->
Wireless LAN --->
将这一项打上信号:<*> Realtek 8192C USB WiFi
保存
6、修改/opt/EmbedSky/linux-2.6.30.4\Makefile,
ARCH=arm
CROSS_COMPILE = arm-linux-
7、在/opt/EmbedSky/linux-2.6.30.4\driver\i2c\busses/i2c-piix4.c
添加 #include <linux/slab.h>
8、make zImage
去喝杯茶吧……
内核编译好了,烧进板子试试吧!
但是我实际操作时遇到很多问题,虽然得到了zImage但是出现下面情况:
make ARCH=arm; make ARCH=arm uImage
.......
WARNING: modpost: Found 1 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
【解决过程】
1。至今未找到根本原因是啥。去掉那个rtc驱动,再编译,就是正常的,加上它,编译就出现上述警告。
2.这里:
说,在make的时候,加上参数CONFIG_DEBUG_SECTION_MISMATCH=y',然后应该可以看到具体错在哪里,是哪里mismatch了。
自己去试了下:
make ARCH=arm CONFIG_DEBUG_SECTION_MISMATCH=y
然后,导致整个kernel都要重新编译。。。漫长的等待啊。。。。
最后编译过程中,输出了对应的错误原因:
LD drivers/rtc/built-in.o
WARNING: drivers/rtc/built-in.o(.data+0xe4): Section mismatch in reference from the variable as353x_rtc to the function .devexit.text:as353x_rtc_remove()
The variable as353x_rtc references
the function __devexit as353x_rtc_remove()
If the reference is valid then annotate the
variable with __exit* (see linux/init.h) or name the variable:
*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
去看了下代码,具体涉及的代码为:
static int __devexit as353x_rtc_remove(struct platform_device *pdev)
{
。。。
}
static struct platform_driver as353x_rtc ={
.probe = as353x_rtc_probe,
.remove = __devexit_p(as353x_rtc_remove),
.driver = {
.name ="as353x-rtc",
.owner = THIS_MODULE,
},
};
意思就是,一个正常的变量as353x_rtc,去引用了as353x_rtc_remove函数,而这个函数是前面加了__devexit 修饰,即此驱动模块卸载的时候,就释放其内存占用,就不存在的函数,因此觉得mismatch,不匹配,其建议我们应该在这个变量as353x_rtc前面加上对应的修饰,比如__exit。
把__devexit可以换成__devinit 这是一个办法去解决
***************二、就是把驱动做成 .ko 文件 开机自动insmod上去****************
这篇我将介绍怎么配置开发板连上无线网,闲话少说,开始!
开发板:tiny2416
内核版本:linux-3.6
编译器版本:4.3.3
使用无线网卡芯片:rtl8192du
官网上下载一个rtl8192du驱动包,解压后参考文档Quick_Start_Guide_for_Driver_Compilation_and_Installation.pdf
步骤如下:
1,进入rtl8192DU_linux_v4.0.2_9377.20131025_beta目录下的Makefile,并了解框架
2,修改CONFIG_PLATFORM_I386_PC = n,添加CONFIG_PLATFORM_NEW_ARM = y
3,在合适的位置添加:
ifeq ($(CONFIG_PLATFORM_NEW_ARM), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN //支持小端
ARCH := arm //平台
CROSS_COMPILE := /home/guo/High-speed_Project/Tools/bin/arm-xilinx-linux-gnueabi-
//编译器路径
KVER := 3.6.0 //内核版本
KSRC ?= /home/guo/High-speed_Project/kernel/linux-digilent-master //内核路径
endif
4:保存退出,make ,生成8192du.ko。
5.注意了,友善提供的内核不支持socket。DHCP必需要支持SOCKET的内核,因此重新编译内核,选择支持SOCKET ,编译后下载到板子即可。
cp config_mini6410_n43 .config
make menuconfig
进入内核配置界面,内核配置中需要做的修改如下:
添加Packet socket支持
[*] Networking support --->
Networking options --->
<*> Packet socket
[*] Packet socket: mmapped IO
添加 socket filter支持
[*] Networking support --->
Networking options --->
[*] Network packet filtering framework (Netfilter) --->
--- Network packet filtering framework (Netfilter)
[ ] Network packet filtering debugging (NEW)
[*] Advanced netfilter configuration (NEW)
Core Netfilter Configuration --->
< > IP virtual server support (NEW) --->
IP: Netfilter Configuration --->
Device Drivers --->
[*] Network device support --->
[*] Wireless LAN --->
<*> IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)
[*] Support downloading firmware images with Host AP driver
6.防火墙内核配置参考 http://blog.csdn.net/hanzengyi/article/details/5991917 http://www.veryarm.com/568.html
7.make zImage
(可以使用
insmod 8192du.ko
ifconfig wlan0 up
start-wifi wpa2 用户名 密码
)
或者如下
1. 启用USB WIFI网上:
ifconfig wlan0 up
2、手动设置USB WIFI的IP
ifconfig wlan0 192.168.1.234 netmask 255.255.255.0
此处的IP要根据所要连接的AP的设置进行网段的指定。
3、在开发板的/tmp目录中为连接创建配置脚本wpa_supplicant.conf,参考内容如下:
wep加密方式:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="liuyan" (连接的无线网SSID)
key_mgmt=NONE
wep_key0="56789" (无线网密码)
wep_tx_keyidx=0
priority=5
auth_alg=SHARED
}
wpa-psk加密方式:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="max" //填写无线网络的的用户名
key_mgmt=WPA-PSK
proto=WPA
pairwise=TKIP
group=TKIP
psk="1234567890" //填写密码
}
4、使用wpa_supplicant启动连接:
wpa_supplicant -Dwext -iwlan0 -c/tmp/wpa_supplicant.conf -B
5、等待一下就会链接成功,测试
ping 192.168.1.1
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2013-08/88542.htm
使用rtl8192du安装无线驱动步骤的更多相关文章
- ubuntu安装无线驱动
一.无线驱动的安装. 首先查看自己的网卡类型:lspci -vnn | grep 14e4 查看内核版本: -uname -r 去www.broadcom.com/support/802.11/lin ...
- CentOS 7 安装无线驱动
一.确认网卡的版本 lspci | grep Network [root@bogon ~]# lspci | grep Network :) :) [root@bogon ~]# 二.下载网卡的驱动, ...
- centos 下安装显卡驱动步骤
一. 先下载自己显卡对应的linux版本的驱动文件, 一般都是.run的一个文件. 二.如果是新安装的系统,先安装编译环境,gcc,kernel-devel,kernel-headers (联网) ...
- fedora21安装无线驱动
来源:http://www.2cto.com/os/201202/120249.html 一.导入rpmfushion源,使用第三方yum 源: su -c 'yum localinstall --n ...
- Kali Linux ——在无网络情况下安装无线网卡驱动
1.背景: 今日刚刚开始学习kali linux,众所周知,安装完成后,系统是没有无线网卡驱动的,这就对学生党造成相当的困扰:校园网要连接有线是需要认证客户端的,而认证客户端只有windows端,如此 ...
- 安装Nvidia k80驱动步骤
安装Nvidia k80驱动步骤 ------------------ 环境介绍: CentOS6 远程终端使用Xshell -------------------- 安装Nvidia k80驱动步骤 ...
- linux 下手动编译安装无线网卡驱动
先参照 <本地yum源安装GCC >安装好gcc hp的笔记本上安装了CentOS6.3,没有安装无线网卡驱动,安装这个驱动,在Google上找了好多资料,最后终于解决了这个问题.在这里做 ...
- Ubuntu下用NdisWrapper安装网卡驱动
下面是一个简单全面的使用NdisWrapper的指南.这是从Beginning Ubuntu Linux, Second Edition中提炼出来的. 这份指南是第8章的一部分.该章给出了在Ubunt ...
- 编译安装linux内核步骤
编译安装linux内核步骤: 一.获取内核源码 源码网址:www.kernel.org 二.解压内核源码 首先以root帐号登录,然后进入/usr/src子目录.如果用户在安装Linux时,安装了内核 ...
随机推荐
- Nginx80端口转发+域名——实现IP+端口隐藏
一.目的1.相信大家会遇到这样的问题:当一台服务器部署多个tomcat应用时,当我们访问tomcat时,需要在浏览器中输入服务器IP+端口号,这看起来非常的low. 二. 环境 1台服务服务器 假如I ...
- MySQL字符集及校对规则的理解
阅读目录:MySQL的字符集和校对规则 MySQL的字符集 MySQL与字符集 正确使用字符集 MySQL客户端与字符集 字符集编码转换原理 字符集常见处理操作 字符集的正确实践 MySQL的校对 ...
- python学习之----收集整个网站
如果只是从一个页面跳到另一个页面,那么网络爬虫是非常无聊的.为了有效地使 用它们,在用爬虫的时候我们需要在页面上做些事情.让我们看看如何创建一个爬虫来收 集页面标题.正文的第一个段落,以及编辑页面的链 ...
- WPF 获取文件夹路径,目录路径,复制文件,选择下载文件夹/目录
private void Border_MouseLeftButtonUp_4(object sender, MouseButtonEventArgs e) { //获取项目中文件 , System. ...
- ELK测试安装
https://blog.csdn.net/guyan0319/article/details/78749639 https://www.cnblogs.com/frankdeng/p/9139035 ...
- PHP截取字符串最后一位进行替换
$image_path = 'http://www.baidu.com/1'; $str = preg_replace('#.$#i', '0', $image_path);第二个参数要替换的内容 把 ...
- 完全分布式hadoop2.5.0安装 VMware下虚拟机centos6.4安装1主两从hadoop
请跟我走,从零开始搭建hadoop2.5.0环境.总览第一步:搭建三台能不用密码shh的虚拟机.第二步,装jdk,解压hadoop文件,配置环境变量和xml文件.第三步,复制克隆两个slave机器.调 ...
- Oracle查询表结果添加到另一张表中
转自:https://blog.csdn.net/lx870576109/article/details/78336695 把每一个知识点进行积累:Oracle数据库中将查询一张表的结果添加到另一张表 ...
- synchronized 和 lock 的区别
1.Lock不是Java语言内置的,synchronized是Java语言的关键字,因此是内置特性.Lock是一个类,通过这个类可以实现同步访问: 2.Lock和synchronized有一点非常大的 ...
- day42-多线程与多进程
一 进程与线程的概念 1.1 进程 考虑一个场景:浏览器,网易云音乐以及notepad++ 三个软件只能顺序执行是怎样一种场景呢?假如有两个程序A和B,程序A在执行到一半的过程中,需要读取大量的数据输 ...