QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2872|回复: 4

MagicLinux2.0RC1的无线网卡解决方案(迅驰)

[复制链接]
发表于 2005-11-19 13:20:31 | 显示全部楼层 |阅读模式
前段时间有许多兄弟来报怨RC1的无线网卡驱动上不去,当时我用beta2的经验判断是他们自己的问题。
终于昨天破天荒的带本子去图书馆,发现自己编译的ipw2100驱动包也失效了。
于是,今天集中时间解决这个。在此将目前的一些进展贴出,没有完全解决。
欢迎牛人指正
1.ipw2x00系列的无线网卡在2.6.14内核上已经可以直接编译成模块了;但是现在ML的2.0RC1用的是2.6.13.4内核,所以如果要编译该驱动还是需要3个东东
[code:1]a.  ipw2100-1.1.3
b.   ieee80211-1.1
c.   ipw2100-fw-1.3[/code:1]
在RC1上编译是肯定没有问题的,firmware也是正确解压缩到/lib/firmware/下的,但是主要的问题是出在启动加载ipw2100模块上(在此问题上无论是2.6.14内核自带的模块,还是自己编译的模块都一样)
[code:1]ipw2100: Copyright(c) 2003-2004 Intel Corporation
ipw2100: Detected Intel PRO/Wireless 2100 Network Connection
ipw2100: eth1: Firmware 'ipw2100-1.3.fw' not available or load failed.
ipw2100: eth1: ipw2100_get_firmware failed: -2
ipw2100: eth1: Failed to power on the adapter.
ipw2100: eth1: Failed to start the firmware.
ipw2100Error calling regiser_netdev.
ipw2100: probe of 0000:02:02.0 failed with error -5[/code:1]
这个问题我没有能够解决。http://ipw2100.sourceforge.net/上给出了一些解释
To work around this, you can increase the default timeout value:

        echo 100 > /sys/class/firmware/timeout

and then reload the ipw2100 module. If this corrects your problem, you may wish to add the above line to your system startup scripts prior to the point at which the driver module would be loaded.

The other most common reason for getting the above error is that the firmware files are not installed in the correct location. Please see the INSTALL document for information on installing the firmware files.

但按照我的实验结果,timeout肯定没有能够解决问题(我尝试过500);而firmware的位置也不应该有错,在beta2的时候我也是放在/lib/firmware。
而且我还同时在/etc/firmware、/usr/lib/hotplug/firmware都做了软链接,结果也还是失败!
如果谁有解决方案请告诉我



2.另类解决途径:ndiswrapper
虽然ipw2100官方驱动搞不定,但可爱的Magic还是给了我们多一个选择ndiswrapper

首先你需要拿到自己的无线网卡在windoxz下面的驱动文件(.inf文件),安装它
[code:1]ndiswrapper -i [FILENAME][/code:1]
[root@coco a]# ls
SetupWLD.EXE  W20NCPA.DLL  w70n51.sys    WLANVer.tic
SetupWLD.INI  w70n501.cat  w70n5msg.dll  WLDMLRES.DLL
W20MLRES.DLL  w70n501.inf  w70n5.sys
[root@coco a]# ndiswrapper -i w70n501.inf
Installing w70n501


查看结果
[code:1]ndiswrapper -l[/code:1]
[root@coco a]# ndiswrapper -l
Installed ndis drivers:
w70n501         driver present, hardware present


加载模块
[code:1]modprobe ndiswrapper[/code:1]
[root@coco a]# modprobe ndiswrapper

查看结果
[code:1]iwconfig[/code:1]
[root@coco a]# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11b  ESSIDff/any
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:00:00:00:00:00
          Bit Rate:11 Mb/s
          RTS thr:1600 B   Fragment thr:2344 B
          Encryption keyff
          Power Managementff
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0


如果你想系统启动的时候就自己搞定无线网卡,那么就这么来
[code:1]ndiswrapper -m[/code:1]
发表于 2005-11-19 14:23:40 | 显示全部楼层
demonlj 发现了我们系统里的这个小秘密,呵呵,我省的费口舌了。其实系统里还有一些其它的小秘密,比如 drcom 的上网我们也是支持的。  
回复

使用道具 举报

发表于 2005-11-19 14:28:23 | 显示全部楼层
借鉴了WINDOWS的INF文件解决问题!
学习!
回复

使用道具 举报

 楼主| 发表于 2005-11-19 15:45:57 | 显示全部楼层
[quote:b5585fa7b5="KDE"]demonlj 发现了我们系统里的这个小秘密,呵呵,我省的费口舌了。其实系统里还有一些其它的小秘密,比如 drcom 的上网我们也是支持的。  [/quote]
Magic的秘密好多啊 不过,ipw2100驱动的问题搞不定,很郁闷

刚才太急,有些后续都没有写。这里补上。
只用ndiswrapper解决无线上网有点太麻烦了,ML里头好东西很多。发掘点先
[code:1]iwlist wlan0 scan
得到所有可以覆盖你所在位置的无线网络的信息,最重要的是ESSID[/code:1]
[code:1]iwconfig无线网络专用的配置工具
iwconfig wlan0 ESSID "[ESSID_NAME]"[/code:1]
[code:1]一般无线网卡都对应于DHCP方式获取IP,所以接着用dhclient
dhclient wlan0[/code:1]
如果正常就应该能够得到类似下面的结果
[root@coco a]# dhclient wlan0
Internet Systems Consortium DHCP Client V3.0.3-RedHat
Copyright 2004-2005 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/products/DHCP

Listening on LPF/wlan0/00:0c:f1:0f:82:5d
Sending on   LPF/wlan0/00:0c:f1:0f:82:5d
Sending on   Socket/fallback
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPNAK from 192.168.1.1
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 6
DHCPOFFER from 166.111.252.2
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPACK from 166.111.252.2
bound to 166.111.252.130 -- renewal in 3554 seconds.


现在正在自习室,我们这里的无线网络比较多。要从这么多ESSID中选最好的,如果手动来就太麻烦了。
这里就贡献下刚刚我在这里写的小脚本,目的是用来找到信号最好的ESSID

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2005-11-29 19:56:38 | 显示全部楼层
呵呵,偶又翻帖子了。但是这次偶是将上次遗留的问题给大家个解决哦
上次提到RC1下无论是ipw2100,还是ipw2200驱动都存在firmware加载失败的。经过kanker兄几天辛勤大努力,终于有了解决方案。
分析原因:主要是hotplug和udev之间没有过渡好的原因。因为hotplug是要被废弃的,其所有大功能都将转到udev上来搞定了。但是由于过渡不协调,导致firmware出问题。
案例:
[code:1]
1.MagicLinux 1.2final         此版本万全只用hotplug,所以肯定不会存在什么问题
2.ML2.0beta系列         这个系列,由于kanker对udev高版本的思虑。所以将udev限定杂065,这个版本反而与hotplug 0923不起冲突。 使用正常
3.Mandriva2006      [今天下午花拉几个小时,动用3台机器同时下载(公家占两台 :lol: )]它万全废弃了hotplug,udev使用到068,查看它的changelog,有提到firmware过渡的问题,但我认为它打了自己的补丁。因为官方的说明中udev到069才开始转移firmware的。但无论如何,这个版本工作ok
4.ML RC1,不用说了,大问题。呵呵[/code:1]

这些是我自己找资料和分析的结果,不对的地方请大家指正


解决方案:
很简单,更新两个软件包。udev和hotplug
http://www.magiclinux.org/people/kanker/os/udev-hal-update/extra/rpms/hotplug-2004_09_23-2mgc.i686.rpm
http://www.magiclinux.org/people/kanker/os/udev-hal-update/extra/rpms/udev-069-1mgc.i686.rpm
将firmware放置在老地方/lib/firmware,ok。所有问题搞定了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-29 07:50 , Processed in 0.135955 second(s), 17 queries .

© 2021 Powered by Discuz! X3.5.

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