demonlj 发表于 2005-11-19 13:20:31

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

前段时间有许多兄弟来报怨RC1的无线网卡驱动上不去,当时我用beta2的经验判断是他们自己的问题。
终于昨天破天荒的带本子去图书馆,发现自己编译的ipw2100驱动包也失效了。
于是,今天集中时间解决这个。在此将目前的一些进展贴出,没有完全解决。
欢迎牛人指正
1.ipw2x00系列的无线网卡在2.6.14内核上已经可以直接编译成模块了;但是现在ML的2.0RC1用的是2.6.13.4内核,所以如果要编译该驱动还是需要3个东东
a.ipw2100-1.1.3
b.   ieee80211-1.1
c.   ipw2100-fw-1.3
在RC1上编译是肯定没有问题的,firmware也是正确解压缩到/lib/firmware/下的,但是主要的问题是出在启动加载ipw2100模块上(在此问题上无论是2.6.14内核自带的模块,还是自己编译的模块都一样)
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
这个问题我没有能够解决。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文件),安装它
ndiswrapper -i [FILENAME]
# ls
SetupWLD.EXEW20NCPA.DLLw70n51.sys    WLANVer.tic
SetupWLD.INIw70n501.catw70n5msg.dllWLDMLRES.DLL
W20MLRES.DLLw70n501.infw70n5.sys
# ndiswrapper -i w70n501.inf
Installing w70n501


查看结果
ndiswrapper -l
# ndiswrapper -l
Installed ndis drivers:
w70n501         driver present, hardware present


加载模块
modprobe ndiswrapper
# modprobe ndiswrapper

查看结果
iwconfig
# iwconfig
lo      no wireless extensions.

eth0      no wireless extensions.

wlan0   IEEE 802.11bESSID:off/any
          Mode:ManagedFrequency:2.412 GHzAccess Point: 00:00:00:00:00:00
          Bit Rate:11 Mb/s
          RTS thr:1600 B   Fragment thr:2344 B
          Encryption key:off
          Power Management:off
          Link Quality:0Signal level:0Noise level:0
          Rx invalid nwid:0Rx invalid crypt:0Rx invalid frag:0
          Tx excessive retries:0Invalid misc:0   Missed beacon:0


如果你想系统启动的时候就自己搞定无线网卡,那么就这么来
ndiswrapper -m

KDE 发表于 2005-11-19 14:23:40

demonlj 发现了我们系统里的这个小秘密,呵呵,我省的费口舌了。其实系统里还有一些其它的小秘密,比如 drcom 的上网我们也是支持的。:mrgreen:

lqjs 发表于 2005-11-19 14:28:23

借鉴了WINDOWS的INF文件解决问题!
学习!

demonlj 发表于 2005-11-19 15:45:57

demonlj 发现了我们系统里的这个小秘密,呵呵,我省的费口舌了。其实系统里还有一些其它的小秘密,比如 drcom 的上网我们也是支持的。:mrgreen:
Magic的秘密好多啊 :lol: 不过,ipw2100驱动的问题搞不定,很郁闷

刚才太急,有些后续都没有写。这里补上。
只用ndiswrapper解决无线上网有点太麻烦了,ML里头好东西很多。发掘点先
iwlist wlan0 scan
得到所有可以覆盖你所在位置的无线网络的信息,最重要的是ESSID
iwconfig无线网络专用的配置工具
iwconfig wlan0 ESSID "[ESSID_NAME]"
一般无线网卡都对应于DHCP方式获取IP,所以接着用dhclient
dhclient wlan0
如果正常就应该能够得到类似下面的结果
# 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

demonlj 发表于 2005-11-29 19:56:38

呵呵,偶又翻帖子了。但是这次偶是将上次遗留的问题给大家个解决哦
上次提到RC1下无论是ipw2100,还是ipw2200驱动都存在firmware加载失败的。经过kanker兄几天辛勤大努力,终于有了解决方案。
分析原因:主要是hotplug和udev之间没有过渡好的原因。因为hotplug是要被废弃的,其所有大功能都将转到udev上来搞定了。但是由于过渡不协调,导致firmware出问题。
案例:

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,不用说了,大问题。呵呵

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

解决方案:
很简单,更新两个软件包。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。所有问题搞定了
页: [1]
查看完整版本: MagicLinux2.0RC1的无线网卡解决方案(迅驰)