设为首页收藏本站

cdlinux论坛

 找回密码
 立即加入

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 302|回复: 0

CDlinux网卡驱动的编译、安装、集成

[复制链接]
发表于 2019-5-22 20:11:48 | 显示全部楼层 |阅读模式
今天翻旧电脑,发现了这个N年前遗忘到角落里的技术记录,分享出来给各位搞不定驱动的小伙伴,不知过时没有。

cdlinux网卡驱动的编译、安装、集成

沙尘暴,QQ:350037408,2014年4月24日晚。

新入手一清华同方NoteBook,自带RTL8188E无线网卡

GRUB硬盘启动CDlinux.iso,编辑menu.lst :

map --mem (hd0,0)/CDlinux.iso (0xff)
map --hook
kernel (0xff)/CDlinux/bzImage quiet CDL_LANG=zh_CN.UTF-8 CDL_DIR=/ CDL_IMG=CDlinux.iso CDL_GUI=yes i915.modeset=0
initrd (0xff)/CDlinux/initrd
boot

CDlinux不认RTL8188E无线网卡,想办法自己搞。

记录如下:

1、下载源码树(存放位置随便,只要CDlinux能读取的地方都可以):
ftp://distro.ibiblio.org/pub/lin ... evel-0.9.7.1.tar.xz

2、下载编译环境(放在CDlinux光盘的  CDlinux/extra  目录下):
ftp://distro.ibiblio.org/pub/lin ... /extra/devel-cdl.md

3、下载网卡驱动。RTL8188E无线硬件ID为:PCI\VEN_10EC&DEV_8179&........,10EC是Realtek厂家代号,8179为芯片型号。
   其Linux驱动包含在RTL8188CE中,OK,下载
网页:http://www.realtek.com/downloads ... oads=true#RTL8188CE
驱动:ftp://WebUser:fh7SkVT4@58.211.24 ... 2.0207.2013.tar.bz2

4、虚拟磁盘的准备:
   (a)如果直接启动的CDlinux,创建一个4G的虚拟磁盘:
       dd if=/dev/zero of=/mnt/hard/devel.dsk bs=1000 count=0 seek=$[1000*1000*4]
             /mnt/hard/ 灵活运用,我是将一NTFS硬盘挂到这里的
    (b)如果用VMWARE,使用虚拟机创建一个大于4G的虚拟磁盘。

5、源码和驱动的解压。
使用fdisk进行分区
使用mkfs.ext4 /dev/sda1进行格式化

挂到一个目录:mount /dev/sda1 /mnt/hard


进入: cd /mnt/hard
下载的源码和驱动解压到这里。
解压源源:tar vxf devel-0.9.7.1.tar.xz
解压驱动:tar vzxf linux_mac80211_0012.0207.2013.tar.bz2


6、编译驱动

进入源码目录,将源码树虚拟成根目录,输入命令(两命令效果一样):

./ch-root

bash ch-root

进入驱动目录,编译:
cd rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013
make

ok,编译完成。

7、insmod rtl8188ee.ko,
   Unknown sysboml......,
   dmesg 未知符号几十个,一长串。。。我晕了好几天,绝望之际,在另一台有BCM4312无线网卡老本本上(CDlinux本身自带BCM4312驱动)

   继续insmod rtl8188ee.ko,竟然成功加载,无任何未知符号之类的,dmesg只有两个未知符号的提示, lsmod发现B43依赖四个模块,晃然大悟:是不是RTL8188E模块依赖有问题??

8、解决:
   查找依赖模块,反向逐个加载
   modinfo rtl8188ee.ko

   ......
   depands rtlwifi   ....    <======= rtl8188模块依赖rtlwifi,也就是必须先加载rtlwifi



   再看上层目录的rtlwifi
   modinfo rtlwifi.ko

   .....
   depans cfg80211 mac80211  <=========== 必须先启动:cfg80211 mac80211 这两模块

   ok,查找这两模块位置:
   find / -name mac80211.ko
   find / -name cfg80211.ko
   找到,分别在/lib/modules/3.2.11_cdl0/kernel/net/wireless
                modinfo cfg80211.ko

                /lib/modules/3.2.11_cdl0/kernel/net/mac80211
                modinfo mac80211.ko

   记不着这两个是哪一个依赖rfkill模块,
   再查找rfkill模块:
   find /  -name rfkill.ko
   在这里 /lib/modules/3.2.11_cdl0/kernel/net/rfkill

   查看 modinfo rfkill.ko .. 终于,它的depands后面跟的是空白,不再依赖任何模块

   反向逐个加载:
   cd /lib/modules/3.2.11_cdl0/kernel/net/rfkill
   insmod rfkill.ko
   cd /lib/modules/3.2.11_cdl0/kernel/net/wireless
   insmod cfg80211.ko
   cd /lib/modules/3.2.11_cdl0/kernel/net/mac80211
   insmod mac80211.ko

无任何提示。。Linux好的象征

进入编译相关目录
   insmod rtlwifi.ko
   insmod rtl8188ee.ko

   提示又有问题。。。找啊找,firmware/rtlwifi/rtl8188efw.bin 是搞什么用的???没明白,管它的,给它乱取个名:硬件特征
   将硬件特征拷入/lib/firmware目录:
   cp rtl8188efw.bin /lib/firmware/rtlwifi/
   insmod rtl8188ee.ko
   无任何提示。
   ifconfig


   哦买嘎,wlan0 出来了。。。。

   ifconfig wlan0 up

9、将驱动集成到CDlinux
   创建临时目录:mkdir /mnt/cdl_md
   进入目录    :cd /mnt/cdl_md
   解压        : unsquashfs base-cdl.md
                     生成 squashfs-root 目录
               : cd lib/modules/3.2.11_cdl0/kernel/drivers/net/wireless/rtlwifi
   删除rtlwifi下的所有文件及文件夹
   将编译的 rtlwifi.ko 拷贝到此文件夹下
   拷贝 rtl8188ee/rtl8188ee.ko 到 rtl8188ee 目录下
   其它的rtl***.ko一样处理
   拷贝 firmware 下的 rtlwifi 目录 到 lib/firmware/ 下

   重新打回包:
   mksquashfs squashfs-root base-cdl.md

   ok,用base-cdl.md将光盘中的替换掉。

   或者将那此译出来的文件按上边目录要求打包成一个.md文件,放入base-cdl.md同一目录中


抖音小说排行榜 抖音推荐小说
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

免责声明: CDLINUX思维论坛所发布的一切教程文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。

小黑屋|手机版|cdlinux论坛 ( 备案号:蜀ICP备10027298号  

GMT+8, 2019-6-26 08:42 , Processed in 0.359375 second(s), 25 queries .

Powered by Discuz!

© 2012-2016 CDlinux

快速回复 返回顶部 返回列表