E-Mail:
Author Avatar

Wireless USB in Linux

Now this is my kind of Linux article! This goes back a point that I made a long time ago that all of the great tutorials like this need to be part of a big, grand database somewhere that all Linux users can then find without having to search and scrounge for hours on end. Heck, I would do it myself, but time is a factor for me.

I needed to connect my new desktop PC wirelessly from my second floor office to my first floor network. As I started researching the options for wireless USB adapters, I realized I might have some work ahead of me. Wireless USB in Linux is still in the early stages of development. But a little searching and some trial and error led to a successful connection.

While I did not expect the configuration to be easy, I did not expect it to be especially difficult either. To be fair, a lot of the complexities have nothing to do with the USB drivers, but are more related to the device naming and mapping changes that occurred in the upgrade from the 2.4 to the 2.6 kernel.

To better handle dynamic, hotplug devices on USB and FireWire, changes were made in the 2.6 kernel to provide persistent device names. The kernel now handles device management via two subsystems called sysfs and udev. If you run a 2.6 kernel, you may notice a new virtual directory called /sys in the root of your system. The /sys directory works like /proc in that it maps directly to part of system memory. While /proc tracks kernel parameters and state, /sys tracks device names known to the system. The device names in /sys are persistent because they are based on unique hardware and bus identifiers. This allows the kernel to always assign the same name to a dynamic device, something that was not possible in the 2.4 kernel.

In the 2.4 kernel the order you plug in USB devices can affect the name that gets assigned to it. The name of a device is neither unique nor guaranteed. The sysfs subsystem in the 2.6 kernel tries to solve that problem by naming devices using a unique identifier. The result is something not very useful to humans, as the device name for my wireless USB adapter turned out to be /sys/devices/pci0000:00/0000:00:02.1/usb3/3-1/3-1:1.0. That name is not very handy to deal with, so the udev subsystem provides a mapping between the /sys device name and the more familiar device names like /dev/wlan0.

One Comment

I tried both DSL and Puppy LINUX, and neither one recognise my USB wireless network adapter. From what I’ve read on the Net, USB wireless NIC’s are problematic with Linux. The PCI wireless NIC’s are supported, but USB? Forget it! My USB Wireless NIC did not come with Mac or Linux drivers, and it has the SIS-126 Chipset. That was little help. In fact, most reviews said, give up and use a PCMCIA based network adapter. I’m trying to run any possible version of Linux on my old P233 Dell Laptop with 128mb of RAM. Besides not recoginsing the USB Wireless NIC, the next biggest problem has been trying to find 800×600 video settings that work. After retrying a few times, I found a video setting that worked. If I can’t find a version of Linux that supports Wireless USB Adapters, then I’ll just have to ditch the whole idea and stick with older versions of Microsoft OS’s.

I did get DSL Linux to work on my ACER laptop. I ran the DSL ‘Embedded’ version which runs on top of XP. Because it was using the XP drivers, the wireless NIC wasn’t a problem. I still can’t get it to run as a standalone P233 Dell with 128mb RAM.

What Do You Think?

 


Anti-Spam Image

Want to Start a Blog Here for Free?

Are you an expert in one subject or another? If your goal is to help others and dispense hard-earned information back to the community, stake a claim on your very own Lockergnome blog today! You can write about anything - no matter the topic. Sign-up to start blogging!

54 queries / 0.330 seconds.