Tiny Core Linux
Tiny Core Base => TCB Q&A Forum => Topic started by: svensko on January 06, 2009, 03:10:17 AM
-
Hey guys,
Got a frugal install working on my laptop however after installation Wireless 2.6.26 and Wireless Tools, then performing sudo modprobe ipw2200, no eth1 shows up when I run iwconfig. This is on a IBM X40 and I can confirm that the wireless card uses this module in puppy linux, gentoo, etc. I ran lspci -k and got the follow...
02:02.0 Netowrk controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)
Kernel modules: ipw2200
^thehatsrule^ suggested in that IRC chat that the wireless card should be detected. I'm not sure where else to go to dig deeper.
Also, would it be possible to get the skge module either in the base or as a module?
-
Please post the last lines of the "dmesg" command, right after modprobing iw2200.
-
As requested...
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
EXT3 FS on hda3, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
ieee80211_crypt: registered algorithm 'NULL'
ieee80211: 802.11 data/management/control stack, git-1.1.13
ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq
ipw2200: Copyright(c) 2003-2006 Intel Corporation
ACPI: PCI Interrupt 0000:02:02.0[A] -> GSI 21 (level, low) -> IRQ 21
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
firmware: requesting ipw2200-bss.fw
ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2
ipw2200: Unable to load firmware: -2
ipw2200: failed to register network device
ACPI: PCI interrupt for device 0000:02:02.0 disabled
ipw2200: probe of 0000:02:02.0 failed with error -5
tc@box:~$
-
Is this like the b43 driver where you have to separately obtain and load the firmware?
-
Looks that way from what I can tell but I have no experience doing that due to the fact that PuppyLinux, Ubuntu, etc. all seem to load the module flawlessly without further action.
Alright, a quick update... I googled the ipw2200 firmware and downloaded it from http://ipw2200.sourceforge.net/firmware.php
I then created /usr/lib/hotplug/firmware and copied ipw2200-bss.fw into /usr/lib/hotplug/firmware. I rebooted, sudo modprobe ipw2200 and still get the error. I'm not sure where modprobe is looking to find the firmware. Any tips?
-
Try downloading the latest firmware from http://ipw2200.sourceforge.net/firmware.php (to /lib/firmware)
We have done nothing special to avoid shipping firmware, but nothing to ship it either; seems the default for Intel wireless is to not include the firmware, and most distributions (sans the purity-aiming ones like gnewsense and debian) take the extra action of including.
For ipw2200, the firmware is not even included in the kernel, it has to be separately downloaded.
edit: I didn't see your edit. Perhaps my post clarifies the issue?
-
Got it working... went in and created /lib/firmware, copied all the .fw's, modprobed, and it's detected!!! Thank you for all the help!!! :D Now my only question is... how do I make these settings permanent so I don't have to make the dir, cp the files, and then modprobe each time?
to clarify, I am running with the boot option tce=hda4.
-
Add "lib/firmware" to your backup, and add the modprobe line to /opt/bootlocal.sh
-
Problem solved! Thanks again for all of the help!!! TCL will now be my OS of choice on my laptop. :)
If anyone found this thread by searching due to having similar issues with the ipw2200 module then feel free to IM me at Das Vensko or e-mail me at svensko AT clemson DOT edu and I will walk you through it.
-
Can you tell me what version of the firmware you are using? I modprobed and do the commands (correctly I think) to connect to my router. I'm given an ip address but not connecting. Wondering if the version of ipw2200 makes a difference?
Thanks,
Chris
-
for future reference, here are the steps I had to perform to get my thinkpad x40 wireless working with wpa-psk using tc 2.11.4:
- install wpa-supplicant
- download 3.1 firmware from http://ipw2200.sourceforge.net/firmware.php (http://ipw2200.sourceforge.net/firmware.php)
- sudo mkdir /lib/firmware
- tar xvfz ipw2200-fw-3.1.tgz
- sudo cp ipw2200-fw-3.1/ipw2200-bss.fw /lib/firmware
- add lib/firmware to /opt/.filetool.lst
- add var/run/wpa_supplicant/wpa_supplicant.conf to /opt/.filetool.lst
- create a /var/run/wpa_supplicant/wpa_supplicant.conf file based on the template found in http://forum.tinycorelinux.net/index.php?topic=2624.msg13469#msg13469 (http://forum.tinycorelinux.net/index.php?topic=2624.msg13469#msg13469)
- edit /opt/bootlocal.sh to include "rmmod ipw2200" followed by "modprobe ipw2200"
- run the network config gui from the control panel, create eth1, dynamic ip and hit save
- edit /opt/eth1.sh and insert the line "wpa_supplicant -Bdd -D wext -i eth1 -c /var/run/wpa_supplicant/wpa_supplicant.conf " before the udhcp stuff
- reboot with backup
notes:
- rmmod'ing ipw2200 before modprobe'ing it was the only way I could get the module to load properly on boot (weird).
- I chose to bundle the wpa_supplicant command inside of the eth1.sh file since that's how I like to think of it but you're welcome to stick it directly into /opt/bootlocal.sh instead
- YMMV: this is just what I had to do to get it working. I'm sure it could be refined like making an extension out of the firmware etc.
Good luck,
3rail
-
I make an extension of my firmware and call it aaa_ipw2200.tcz so it gets loaded before any others, particularly wireless-2.6.33.3.
If the firmware is in backup, the kernel module is getting loaded before the firmware is in place causing the need to unload and reload the module.
-
What steps would I change/add if I made an extension out of the firmware? I tried to make that work but was unable to.
-
I don't use wpa-supplicant so I dont know what may change in regards to that. But if the firmware extension is placed in tce/optional and added to onboot.lst then the module from wireless-2.6.33.3 gets loaded with the firmware enabled.
-
sudo mkdir tmp/lib/firmware
tar xvfz ipw2200-fw-3.1.tgz
sudo cp ipw2200-fw-3.1/ipw2200-bss.fw tmp/lib/firmware
mksquashfs tmp myfirm.tcz
-
Thanks guys, I was able to get the "firmware as extension" to work. Modification to my previous steps as follows:
- follow Curaga's steps to create a firmware extension
- do not sudo mkdir /lib/firmware
- do not add lib/firmware to /opt/.filetool.lst
- do not edit /opt/bootlocal.sh to include "rmmod ipw2200", just edit it to have "modprobe ipw2200" in there
3rail
-
Doing a modprobe in bootlocal should not be necessary, it'll likely get loaded by the autodetection.
-
Hello,
ok from what i can gather the firmware is allowed to be shared, in which case could someone possibly upload their firmware.tcz. i am having trouble creating it. i have wireless working well with the last tinycore 2.xxx but getting it to work in the new 3.xxx version is giving me some grief.
Any help would be apreciated as would a pre built .tcz, thanks
-
Intel requires that a user agree to the software license before downloading their firmware.
This prohibits distribution of a firmware tcz.
The other options are:
Write a tcz that displays and requires acceptance of the license, downloads the firmware, and creates the firmware tcz.
Download the firmware from Intel, create your own tcz, add the firmware directory to .filetool.lst, or save a tar archive and add an untar to bootlocal.sh.
-
Actually it appears that you can distribute ipw2200 if you abide by the terms on this page:
http://intellinuxwireless.org/?n=faq&s=license
Notably this part:
Q. I am a package maintainer and I would like to create a package/distribution/CD
that installs/provides the Intel firmware necessary for the ipw2100 and ipw2200
projects.
How does one go about doing this according to Intel's terms?
[ ipw2100 and ipw2200 specific ]
A. There are three key actions that must be performed:
Generally distributors alert end users to the fact that components of a package
may be covered under a variety of licenses, the specific terms of which vary. Some
distributors use an initial license page during the OS install that informs the user
that various components are governed by a variety of licenses, and use of the
components is subject to the user's compliance with the various licensing
requirements. Other package systems support an interactive package approach
that requires the user to view and accept the license before they can install it, etc.
Any description within the package must indicate that the package is covered by
the Intel license, and provide the user with information on how to access that
license -- making it clear that the user is not granted a license to use the package
unless these terms are agreed to.
The package must install the LICENSE file in the same location on the system that
the firmware files are installed. If it is standard practice in your distribution to place
all license files in a centralized location (for example /usr/share/license), then you
are free to place a copy of the license in that location, in addition to placing it in the
directory containing the firmware files.
NOTE: The above only applies to the license covering the ipw2100 and ipw2200
firmware.
-
arch linux and gentoo have this in their repos
http://www.archlinux.org/packages/core/any/ipw2200-fw/ (http://www.archlinux.org/packages/core/any/ipw2200-fw/)
http://packages.gentoo.org/package/net-wireless/ipw2200-firmware (http://packages.gentoo.org/package/net-wireless/ipw2200-firmware)
-
Usual solution what other distros apply is to display license and if it is accepted, record it and skip license next time. Similar solution can be applied in TC, saving acceptance info in ~ dir.
Some common speces how to store, in which file, etc. and some common tool would be appreciated for extension creator not to reinvent the wheel and to provide a unified look and feel. Possible a small FLTK application...
-
What about including something similar like this in *.info :
ftp://mirrors.kernel.org/slackware/slackware-13.1/slackware/n/ipw2200-fw-3.1-fw-1.txt (http://ftp://mirrors.kernel.org/slackware/slackware-13.1/slackware/n/ipw2200-fw-3.1-fw-1.txt)
(Found in the regular slackware tree)
EDIT: Corrected malformed url
-
What about including something similar like this in *.info :
ftp://mirrors.kernel.org/slackware/slackware-13.1/slackware/n/ipw2200-fw-3.1-fw-1.txt
(Found in the regular slackware tree)
that should be
http://mirrors.kernel.org/slackware/slackware-13.1/slackware/n/ipw2200-fw-3.1-fw-1.txt
-
Oops, you detected a bug in the forum code; good catch, I would never have noticed!
First thing to go to "modify", and there was no 'http://' anywhere, but in "preview" was added again.
Engulfing the ftp url by an url tag prevents that. Seems rather paradox to me...
-
It sounds clear to me that ipw2200 can be distributed in accordance to what was stated in my previous quote. That is, the license must be with the firmware files in their install location, and that the user is told he cannot use the firmware unless he agrees to the license.
It does not appear that an agreement query is needed as long as the user is told of the license, and it is assumed here that info files are always read before installing a package, and it is the first thing visible by the appbrowser.
That and simply placing the license in the tcz with the firmware.
I will aim to make a package tonight.
-
I followed 3rail's steps to get ipw2200 working for my 2915ABG Intel/Pro Wireless working.
dmesg reports that the first time it fails, but the second time (after rmmod and modprope again) it finds the card and seems to work
However, wpa-gui doesnt list the card. ifconfig shows that it's UP, and that there are TX packets, but there aren't any RX packets.
My router uses a WEP128 key instead of WPA, but I don't think I'm even getting far enough for that to be a problem, because the light on the keyboard that indicate that the wireless is powered doesn't come on (or is that normal if not Windows?)
Any suggestions for what comes between rebooting with all those changes, and starting wpa-gui? Is there some "turn on wifi hardware" step I'm missing?
-
Getting TX but not RX packets could be when not associated.
WEP does not require any wpa app.
LEDs might not work with all Linux drivers.
-
@jerramy: There could be some similarity to what what happened a few days ago (http://forum.tinycorelinux.net/index.php?topic=8259). You might want to have a go with the new 'rfkill.tcz' extension.
Furthermore what value is 'iwconfig' reporting for 'Tx-Power'?
-
Posting whole output of iwconfig (at least for interface in question) here might not harm.
-
I didn't have time this morning to grab the output of iwconfig, it'll have to wait until tonight. I did see that the TX power was 20 dBm. However all RX related levels were 0 (noise, signal).
I tried rfkill. It said that all the switches were on. Running the command mentioned in the Info for rfkill didn't change anything.
Is it possible I need to change channels? The channel wasn't listed in the example for wpa_supplicant.conf. Does the software auto-scan all channels?
If WEP doesn't require any WPA stuff, what would be the correct approach to getting wifi to work? I saw that WEP was listed in the options for networks under wpa-gui.
-
If WEP doesn't require any WPA stuff, what would be the correct approach to getting wifi to work? I saw that WEP was listed in the options for networks under wpa-gui.
wireless tools could be enough, particularly iwconfig and iwlist (and perhaps iwpriv, according to driver).
-
I appears now unlikely that the device is disabled via some sort of HW or SW switch.
Nevertheless it would be best to supply us (e.g. via attaching some files) with the (full) output of dmesg ; ifconfig -a ; iwconfig ; iwlist wlan0 scan (and maybe still 'rfkill') after all activation steps had been done (this assumes that 'wlan0' is the device in question).
-
I've attached the output of those commands. Hope it helps you help me! :)
-
try
sudo iwlist eth1 s
instead.
In general a good idea when configuring network to work with a root console.
Also first start
syslogd
and then leave a console with
tail -f /var/log/messages
open and in view, to get instant feedback on each event.
-
Here are a couple of my config files.
I'll try what you say tinypoodle, maybe in the morning. I've got to get to bed. Thanks for your help!
-
Okay, I got good info back from "sudo iwlist eth1 s", showing that I have data from my router. Yay! I'll get the results of the other commands for you tomorrow, my wife's screamin' for me to come to bed...
-----------------
eth1 Scan completed :
Cell 01 - Address: 00:1A:70:E3:ED:BD
ESSID:"DarkTower"
Protocol:IEEE 802.11g
Mode:Master
Frequency:2.437 GHz (Channel 6)
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Quality=97/100 Signal level=-28 dBm
Extra: Last beacon: 23ms ago
-
One more thing: What is the result of lsmod ??
I had a few weeks ago some problem with an old notebook which I wanted to connect to an AP with WPA: Initially the wireless device was also showing up as 'eth1'. As it turned out there were two kernel modules competing with each other. This became obvious when I used lspci -v (which requires the 'pci-utils.tcz' extension). In the end I needed to blacklist one of the modules and the device ended up being 'wlan0'.
What was confusing was the fact that prior to the blacklisting sudo iwlist eth1 scan produced some meaningful output. Likewise sudo wpa_supplicant -B -i eth1 -c CONFIG-FILE seemed to work at least to some degree, but then things "turned to custard".
After the backlisting the scanning (with 'iwlist') would not show any result. After a fair amount of trial and error I came up with the following command sequence:
sudo wpa_supplicant -i wlan0 -C /tmp & WPA_PID=$! ; sleep 5 ; sudo wpa_cli -i wlan0 -p /tmp scan ; sudo kill $WPA_PID
Afterwards I had no more problems with running iwlist wlan0 scan (even when not using 'sudo').
-
The output may differ if sudo is used for 'iwlist s' or not.
-
I'm currently typing this via WiFi! (woo hoo!) tinypoodle mentioned that I shouldn't need anything except iwconfig to do WEP, and apparently you're right.
I'd say the sequence goes (and I'm sure y'all knew this, but no one told me...):
rmmod ipw2200; modprobe ipw2200
iwconfig eth1 channel 7
iwconfig eth1 essid DarkTower
iwconfig eth1 key NNNN..NNNN
pkill udhcpc; udhcpc -H box -b-i eth1
Thanks for your help. Sorry I was too stupid to realize I would have to fiddle with iwconfig, instead of following the script for enabling WPA-PSK.
-
KISS (Keep It Simple, Stupid) ;)
(setting channel might be redundant)
-
also for interest, this device:
$ lspci
01:0a.0 Network controller: Intel Corporation PRO/Wireless LAN 2100 3B Mini PCI Adapter (rev 04)
..works with wpa2-personal encryption as well as wep