历史上的今天
返回首页

历史上的今天

今天是:2025年04月16日(星期三)

正在发生

2020年04月16日 | jz2440 ----移植自制的USB RTL8188EUS网卡驱动

2020-04-16 来源:eefocus

1:google 下载rtl8188eus的网卡驱动源码


https://github.com/quickreflex/rtl8188eus 


2.解压缩下载的文件,把驱动文件rtl8192_8188eus_linux_xxx.tar.gz(xxx是版本号)添加到要编译的内核树里面去


(1)假定你的内核位置为/root/linux-kernel,解压缩驱动文件,并且把解压缩后的驱动文件夹名改为rtl8192eus。


(2)把改好名字的驱动文件夹rtl8192eus复制到/root/linux-kernel/drivers/net/wireless/下。


(3)修改/root/linux-kernel/drivers/net/wireless/下的Makefile和Kconfig文件,在Makefile添加obj -$(CONFIG_RTL8192EU)  += rtl8192eu/,在Kconfig下添加 source "drivers/net/wireless/rtl8192cu/Kconfig"。


(4)make menuconfig 配置内核,在Device Drivers/Network device support/Wireless LAN下选中8192cu,编译内核。

kernel/drivers/net/wireless/Makefile

这里的CONFIG_RTL8188EU名字必须是 8188eus/Konfig里面的指定的名字

kernel/drivers/net/wireless/Kconfig下添加 source "drivers/net/wireless/rtl8192cu/Kconfig

3. (1)make menuconfig,将8188eus配置编译进内核:


在Device Drivers/Network device support/Wireless LAN下选中Realtek 8188E USB WiFi

另外 根据其它网友的经验需要将下面配置也添加进去,防止编译出错


进入内核目录,make menuconfig


[*] Networking support —> 


[*] Wireless —> 

Device Drivers —> [*] Network device support —> Wireless LAN —> [*] Wireless LAN (IEEE 802.11) <*> IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP) 

保存退出后,vi .Config

3 (2) make uImage 成功 烧录到开发板 插入USB wifi

ifconfig wlan0 up ,

4.


(1)应用软件测试 https://code.google.com/archive/p/starterkit-org/downloads


下载软件:

(2)tar -xvf wireless_tools.30.rtl.tar.gz

vi Makefile  (没有看到configure 文件) 

sudo make DESTDIR=$PWD/tmp install (可以不用修改)

nfs 30000000 192.168.2.102:/work/nfs_root/uImage_wifi


/ # mount -t nfs -o nolock,vers=2 192.168.2.102:/work/app/wireless_8188eus/wirel

ess_tools.30.rtl /mnt 成功挂载后,可以执行命令!


如何设置上电启动挂载文件系统:


set bootargs console=ttySAC0,115200 init=linuxrc root=/dev/nfs nfsroot=192.168.2.102:/work/nfs_root/fs_mini_mdev_new ip=192.168.2.5:192.168.2.102:192.168.2.1:255.255.255.0::eth0:off


###############################################################################################


关于-/bin/sh:xx(命令) not found  的几种原因:

1./bin/目录下没有这个命令;

2.bin/目录有这个命令,只是执行权限不够,或者程序执行权限不够;

3.程序需要的静态库或者动态库没有;

解决办法:

原因一的解决方法:安装busy box将busy box支持的命令安装到文件系统的bin目录下;(只要安装了busy box它会自动加载命令到bin目录下,这个你懂的,若不懂请看我的博文《根文件系统的制作》)

原因二的解决方法:在/bin/目录下找到对应的命令,修改其权限为777;具体操作: chmod   777  xx(命令)  【附加:在编写执行脚本文件时不能运行也大多是没有修改脚本权限的问题(命令其实就是一个特殊的脚本)】

原因三的解决方法:

(1)最“高效”的解决方法:用命令:arm-linux-readelf   -d   xxx(目标文件/命令)    查看xxx使用的动态库

如图:我的iwlist命令使用的动态库是libiw.so.29 、libm.so.6 和libc.so.6  


于是我便去交叉编译器所在目录/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib下的动态库中寻找所需的上面三个库libiw.so.29 、libm.so.6 和libc.so.6  ,并复制到根文件系统的lib目录下:

(注意:这里我使用交叉编译器的版本为4.3.2的版本所以目录4.3.2有所不同即到/usr/local/arm/(编译器版本)/arm-none-linux-gnueabi/libc/armv4t/lib下的动态库中寻找)


(2)最“2”最笨的方法:把/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib下的所有动态库都拷贝到根文件系统的lib目录下;(但是这种方法在嵌入式开发里面无意增加了成本,拷贝了一些不必要的动态库文件,增大了根文件系统的体积)

 


参考这个后,我发现是库文件也在相应的目录,权限也打开了,就是iw list 一直-/bin/sh:xx(命令) not found ,分析后发现


我用的文件系统是jz2440的移植的系统,而我copy的库文件 实际是在ubuntu的网络文件里面,所以可以尝试挂载网络文件系统来解决!


set bootargs console=ttySAC0,115200 init=linuxrc root=/dev/nfs nfsroot=192.168.2.102:/work/nfs_root/fs_mini_mdev_new ip=192.168.2.5:192.168.2.102:192.168.2.1:255.255.255.0::eth0:off

image.png?imageView2/2/w/550

 

可能iphone没有设置wep加密方式导致,无法验证这个功能


下面验证wpa加密方式:

b.1 先编译它的依赖libopenssl  ----》该文章有记录


b.2 要有一个配置文件.config

tar xzf wpa_supplicant-2.0.tar.gz 

cd wpa_supplicant-2.0/wpa_supplicant/

cp defconfig .config

修改.config加上一行: CONFIG_LIBNL32=y

修改Makefile:

CC=arm-linux-gcc


make  出现错误:/usr/bin/ld: cannot find -lnl-genl-3 和下面编译 hostapd 出现的error现象一样的!


分析原因:root@book-virtual-machine:/work/app/wireless_8188eus/libnl-3.2.23/tmp/include/libnl3# cp netlink -rf /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include


make DESTDIR=$PWD/tmp install


################################################################################

用hostapd配置WiFi作为AP接入点


(1)解压配置tar xzf hostapd-2.0.tar.gz


(2)

cd hostapd-2.0/hostapd

cp defconfig .config

vi .config   // 添加一行: CONFIG_LIBNL32=y

vi Makefile  // CC=arm-linux-gcc

make

make install DESTDIR=$PWD/tmp

cp tmp/usr/local/bin  nfs...


操作:make 后出现

../src/drivers/driver_nl80211.c:22:31: fatal error:netlink/genl/genl.h: No such file or directory


原因:缺少libnl


解决方法:下载并编译安装libnl


tar xzf libnl-3.2.23.tar.gz 

cd libnl-3.2.23/

./configure --host=arm-linux --prefix=$PWD/tmp

make // 修改lib/addr.c添加宏 出错

make install

lib/addr.c添加宏 从内核里面找到:


安装完成libnl后 再次make hostpad 仍然出现之前的错误,

1.怀疑编译的libnl库是不是没有放到相应的目录,导致环境变量里面没有这个文件

那就把所有libnl-3.2.23/incude目录下的文件copy 到环境变量的目录下:

2.重新编译 hostpad,出现新的错误

编译openssl


编译openssl:

http://www.openssl.org/

http://www.openssl.org/source/

tar xzf openssl-1.0.1d.tar.gz

cd openssl-1.0.1d/

./config shared no-asm --prefix=$PWD/tmp

修改Makefile:

CC= arm-linux-gcc

AR= arm-linux-ar $(ARFLAGS) r

RANLIB= arm-linux-ranlib

MAKEDEPPROG= arm-linux-gcc


make 发现出现莫名奇妙的 编译错误,后面定位到没有加sudo 权限

make install 出现错误:

rm -f /usr/bin/pod2man 重新编译sudo make clean /sudo make + 重新安装即可sudo make install!


安装成功后!!!!


3.再次编译 之前的hostapd ,出现之前错误提示


../src/crypto/tls_openssl.c:17:25: fatal error: openssl/ssl.h: No such file or director ,明明已经安装了openssl ,为什么还是找不到ssh.h


root@book-virtual-machine:/work/app/wireless_8188eus/hostapd-2.0# vi src/crypto//tls_openssl.c

发现ssl.h是在openssl目录下,所以将openssl文件夹copy到/usr/local/include目录下


再次编译,错误消失,但出现下面的问题:

解决办法:


1.# gcc -libnl-3.so 查询库文件 libhdf5.so 是否能在搜索路径中找到。

若安装了软件,找到了库文件的路径。但是依然会提示上述错误。则表示gcc的搜索路径不包含该库文件所在的路径。将库文件所在的路径加入到搜寻路径中的方法为:


gcc中的默认头文件搜索路径

 

For C: gcc -xc -E -v -

没有看到/usr/local/lib 库

推荐阅读

史海拾趣

Belkin公司的发展小趣事

在发展过程中,贝尔金也通过收购其他公司来增强自身实力。例如,2013年贝尔金正式完成对Linksys的收购,这一举措进一步丰富了其产品线,并加强了在网络设备领域的竞争力。此外,贝尔金还通过不断整合内部资源,优化生产流程,提高产品质量和效率。

ALD [Advanced Linear Devices]公司的发展小趣事

随着电子行业的快速发展,贝尔金也紧跟时代步伐,不断进行技术革新和产品线拓展。2002年,贝尔金为苹果Dock连接器研发了一系列产品,包括汽车套件、电池组、读卡器等,这标志着它与苹果公司的深度合作开始。此后,贝尔金逐渐成为苹果官方合作配件制造商,其产品在苹果用户中享有很高的声誉。

广东华裕(GDHY)公司的发展小趣事

随着电子行业的快速发展,贝尔金也紧跟时代步伐,不断进行技术革新和产品线拓展。2002年,贝尔金为苹果Dock连接器研发了一系列产品,包括汽车套件、电池组、读卡器等,这标志着它与苹果公司的深度合作开始。此后,贝尔金逐渐成为苹果官方合作配件制造商,其产品在苹果用户中享有很高的声誉。

Connector City公司的发展小趣事

随着全球环保意识的不断提高,电子行业对绿色环保的要求也越来越高。Connector City公司积极响应国家环保政策,加强了对生产过程的环保管理。公司引进了先进的环保设备和技术,减少了生产过程中的废弃物排放和能源消耗。同时,公司还注重产品的环保性能设计,推出了多款符合环保标准的新型连接器产品。通过坚持绿色环保和可持续发展理念,公司赢得了社会的广泛赞誉和支持。

这五个故事仅是对Connector City公司可能发展路径的一种虚构描述,实际情况可能因市场变化、公司策略调整等多种因素而有所不同。在实际发展中,公司需要根据自身情况和市场环境做出灵活的调整和决策。

ARRA Inc公司的发展小趣事

为了降低生产成本、提高生产效率,Connector City公司开始实施产业链整合战略。公司与上游原材料供应商和下游客户建立了紧密的合作关系,实现了供应链的优化和协同发展。通过整合产业链资源,公司不仅降低了采购成本和市场风险,还提高了产品质量和交货速度,进一步增强了市场竞争力。

BVLED公司的发展小趣事

在追求经济效益的同时,BVLED公司也积极履行社会责任,致力于推动可持续发展。公司注重环保和节能技术的研发和应用,推出了一系列环保型LED产品;同时,公司还积极参与公益事业和慈善活动,为社会做出贡献。这些举措不仅提升了公司的社会形象,也为公司的长远发展奠定了坚实的基础。

请注意,以上仅为一个框架性的描述,并未涉及具体的公司名称、时间、地点等细节。你可以根据这个框架进行进一步的创作和补充,以形成完整的故事。同时,由于每个公司的发展轨迹都有其独特之处,你也可以结合你对电子行业LED公司的了解和观察,来创作出更具真实感和说服力的故事。

问答坊 | AI 解惑

Wi-Fi 联盟在华新增认证测试实验室

Wi-Fi 联盟 (Wi-Fi Alliance) 宣布,上海同耀通信技术有限公司最近成为该公司最新的授权测试实验室 (ATL),在中国主要的经济中心之一上海为其全球会员公司提供独立测试服务。该实验室于上月底完成了对其首个 Wi-Fi CERTIFIED 产品的测试。   同 ...…

查看全部问答>

嵌入式Linux 原创推荐:2410+Linux学习记录!

坛里一位工程师热情贡献   阿虚的S3C2410+Linux 学习笔记. 作者序言&致谢:        开学在即,为了记录暑期学习2410+Linux 的过程,我写下这篇文章。文章中可能有80% 的内容不是我原创的,但都是经过了我的验证 ...…

查看全部问答>

电容为什么都要这样接?

见:http://download.ourdev.cn/bbs_upload353273/files_16/ourdev_460291.jpg 上面电路里,有一大串电容并连,为什么这样处理?…

查看全部问答>

有用过科大讯飞TTS语音合成系统的吗?

我这边拿到一个他们的开发包,我已经把程序移植到WINCE平台去了,但是该程序不提供播音功能, 我打电话问过,他们说播音接口根据平台自己实现,WINCE下一般用什么wave out之类的?还要管理缓冲之类的 请问下有没用过该产品的兄弟?告诉下怎么做? 重分奖 ...…

查看全部问答>

eVC++ 编写的客户端程序!!!!

大家谁做过eVC++ 编写的客户端程序?? 可以向服务器端发送 信息和文件那种的。 急求!!!!!!…

查看全部问答>

照明用LED封装创新探讨

一,常规现有的封装方法及应用领域     目前LED 的封装方法有:支架排封装,贴片封装,模组封装几种,这些封装方法都是我们常见和常用的。    支架排封装是最早采用,用来生产单个LED器件,这就是我们常见的引线型发 ...…

查看全部问答>

MSP430中的Flash操作问题?

void FlashErase() { uchar *p0; FCTL2 = FWKEY + FSSEL_1 + FN3 + FN4;//选择时钟源,分频 FCTL3 = FWKEY;//清除LOCK while(FCTL3 & BUSY);//如果出于忙,则等待 FCTL1 = FWKEY + ERASE;//使能段操作 p0 = (unsigned char *)0x1080;//数值 ...…

查看全部问答>

Qt 自定义窗口部件(控件)的实现

作者:武汉华嵌嵌入式培训中心   技术部         通过对一个已经存在的Qt窗口部件进行子类化或者直接对QWidget进行子类化,就可以创建自定义窗口部件。以下直接对已有的Qt窗口部件进行子类化: 如下 ...…

查看全部问答>

在线 VIM 交互教程

走你┏ (゜ω゜)=☞…

查看全部问答>

与连接器100P-JMDSS-G-1-TF(LF)(SN)配套的公座的型号是什么呢?

如题,买了TI的板子,但是上面有100P-JMDSS-G-1-TF(LF)(SN)这种母的连接器,用什么型号的连接器来扩展呢?…

查看全部问答>