LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Laptop and Netbook (http://www.linuxquestions.org/questions/linux-laptop-and-netbook-25/)
-   -   wireless support in different distros - why the differences? (http://www.linuxquestions.org/questions/linux-laptop-and-netbook-25/wireless-support-in-different-distros-why-the-differences-771467/)

carolus 11-25-2009 08:44 AM

wireless support in different distros - why the differences?
 
Where is the code located that makes some distros so much better than others at detecting wifi chipsets and installing the appropriate driver?
My understanding is that the kernel (vmlinuz) detects the available hardware and then installs the appropriate drivers from initrd. Why then is there so much difference between distributions? I'm assuming, perhaps incorrectly, that kernels of the same version number are identical from one distro to another. Surely there is more involved than just adding drivers to initrd. Does init run scripts that correct deficiencies?
What prevents simply copying code from a distro with good wireless support to one with poor wireless support?

pixellany 11-25-2009 08:53 AM

I don't think drivers are stored in initrd....

To see your drivers, do this in a terminal:
Code:

cd /lib/modules/$(uname -r)/kernel/drivers
I believe that the startup scripts and config files tell the system what drivers to load at bootup.

But there are also various utilities for actually managing the connections---once a suitable driver is in place. I think the best one is "wicd", which should be available in most distros (look for it with the package manager.)

theNbomr 11-25-2009 10:01 AM

Isn't it the role of the distro installer (the software, not the human), to detect hardware, and configure the system to load and configure appropriate drivers? If so, then it seems to me that the installer must contain some code that can detect the installed hardware, and set up the installation accordingly. It seems reasonable that this code would vary in quality or emphasis over the range of distributions. I suppose one should be able to find open source code that exposes what the installer is doing.
Kernels can differ in makeup, based on the configuration that was selected to build them, even though they may be based upon identical base versions. The choice of built-in drivers and assorted options is part of the distribution package.
I recently tried a few different Linux distros to install on a new laptop. I was startled to see what a range of accuracy and capability was built into the installers. Some would not even complete an installation, while the one I finally used (Open Suse 11.1, for the record), found and correctly installed support for everything (at least everything I've tried so far), including correctly setting up dual booting with MS Vista.
I think the quality of the installer is an under-rated factor in choosing a distribution. There must be a lot of people who abandoned Linux, going back to Windows because the first distro they chose would not install correctly, or mis-configured some key hardware component.
--- rod.

carolus 11-25-2009 11:19 AM

Quote:

Originally Posted by theNbomr (Post 3769312)
Isn't it the role of the distro installer (the software, not the human), to detect hardware, and configure the system to load and configure appropriate drivers?

Well, I was thinking of live distros, which are all I have used. So far as I know, an installer does not enter the picture. There is vmlinuz, initrd.gz, and a filesystem that includes initialization scripts along with everything else.

carolus 11-25-2009 11:40 AM

Quote:

Originally Posted by pixellany (Post 3769246)
I don't think drivers are stored in initrd....

Perhaps so, but I got a different impression from Wikipedia:
http://en.wikipedia.org/wiki/Linux_startup_process

Quote:

But there are also various utilities for actually managing the connections---once a suitable driver is in place. I think the best one is "wicd", which should be available in most distros (look for it with the package manager.)
Yes, wicd works nicely in Zenwalk Live, as does the driver installation. But my question is how it goes about finding and installing the right driver and why those tricks cannot be easily transferred to less enlightened distros.

Hangdog42 11-25-2009 12:40 PM

Quote:

My understanding is that the kernel (vmlinuz) detects the available hardware and then installs the appropriate drivers from initrd. Why then is there so much difference between distributions? I'm assuming, perhaps incorrectly, that kernels of the same version number are identical from one distro to another. Surely there is more involved than just adding drivers to initrd. Does init run scripts that correct deficiencies?
You're missing one extremely important issue: Licensing. Compare the possibilities between a Broadcom chipset and and Intel chipset. Intel's licensing allows for any needed firmware to be distributed with Linux. In general that means Intel chipsets can be used pretty much out of the box. Broadcom licensing on the other hand doesn't allow firmware to be distributed, therefore you run into situations like the b43 driver. Technically it looks like the card is recognized since b43 is in the kernel. However, since there is no firmware, the wireless card doesn't work. Some distros may simply ignore licensing and distribute firmware anyway, but I think those are a minority.

pixellany 11-25-2009 02:35 PM

Quote:

Quote:

I don't think drivers are stored in initrd....
Perhaps so, but I got a different impression from Wikipedia:
http://en.wikipedia.org/wiki/Linux_startup_process
OK---the drivers are stored in the filesystem. I guess that--IF you have an initrd--then things like drivers get loaded. But an initrd is not required......

fair_is_fair 11-25-2009 08:07 PM

There sure is a difference. I'm using a ralink external usb card/antenna. Wireless with Sabayon 5 gnome 64 bit linux driver flies - it is fast!. At first, I thought it was just the 64 bit thing but no, it does not seem to make as big a difference in other distros.

I need to use ndiswrapper with windows drivers to get similar performance with other distros. What is with Sabayon? I have found some differences in iwconfig and tried various settings but nothing approaches the speed Sabayon gives me.

This was not a plug for Sabayon, just an observation.

dxqcanada 11-25-2009 08:18 PM

Drivers for hardware are loaded manually, or automatically.

Some drivers are build into the kernel, so they are activated when the kernel is loaded ... others that are modular are loaded by the Linux loadable kernel module ... others are loaded by a script.

This means that there may be more than just a matching kernel to gauge if your hardware driver will be loaded.

Also, some Distributions add additional functionality to the vanilla kernel or system.

exvor 11-25-2009 10:00 PM

Quote:

Originally Posted by Hangdog42 (Post 3769484)
However, since there is no firmware, the wireless card doesn't work. Some distros may simply ignore licensing and distribute firmware anyway, but I think those are a minority.

Hmmm I did not think b43 used firmware. Rather it just likes to be loaded when it is not the correct driver. Almost all of the newer brodcom cards out there will cause the b43 driver to load and the card will not work. Not because of missing firmware but because its detected as a brodcom card. The reason it doesent work is because it is not supported yet by the driver. You have to go out and get the wl driver from brodcom but I do not know what the licencing is for that driver.

Hangdog42 11-27-2009 08:09 AM

Quote:

Originally Posted by exvor (Post 3769949)
Hmmm I did not think b43 used firmware. Rather it just likes to be loaded when it is not the correct driver. Almost all of the newer brodcom cards out there will cause the b43 driver to load and the card will not work. Not because of missing firmware but because its detected as a brodcom card. The reason it doesent work is because it is not supported yet by the driver. You have to go out and get the wl driver from brodcom but I do not know what the licencing is for that driver.

This is from the b43 site:

Quote:

The Broadcom wireless chip needs software, called "firmware", that runs on the wireless chip itself during operation. This firmware is copyrighted by Broadcom and it must be extracted from Broadcom's proprietary drivers. To get such firmware on your system, you must download the driver from a legal distribution point, as noted below. Then you must extract the firmware from that Broadcom driver by using b43-fwcutter (or bcm43xx-fwcutter) and install it in the special directory for firmware - usually /lib/firmware. Please note that the firmware from the binary drivers is Copyrighted by Broadcom Corporation and must not be redistributed.
The wl driver licensing appears to be a bit weird. It does allow for distribution, but there is a lot of other nonsense in there. However, the wl driver supports only four chipsets (4311, 4312, 4321 and 4322) so if you don't have one of those, you have to use b43 or ndiswrapper.

carolus 11-27-2009 09:19 AM

If I understand correctly, dxqcanada answered the original question, but the other contributions were helpful too.

My current understanding is that the differences among live distros in driver autoinstallation can be found in all three of the files in a live distro - 1) vmlinuz (because of distro-specific patches to the kernel), 2) initrd (because of the drivers included), and 3) the squash file system (containing initialization scripts that can also install drivers and firmware).

Hence you can't easily find a method in one distro and copy it to another.

exvor 11-27-2009 05:59 PM

Quote:

The wl driver licensing appears to be a bit weird. It does allow for distribution, but there is a lot of other nonsense in there. However, the wl driver supports only four chipsets (4311, 4312, 4321 and 4322) so if you don't have one of those, you have to use b43 or ndiswrapper.
Ive had luck getting some broadcom cards not listed as supported by the wl driver to work with the driver. Apparently there are alot of synonyms for the devices that use the same chipset.

As for the original poster I think you have that just about correct. The reason it works out of the box for some and not others are just how much of the drivers the dev decided to load up into the image.

nooby 12-03-2009 02:16 AM

it says solved so I start a new thread instead because it is not solved for me.


All times are GMT -5. The time now is 08:47 PM.