dischord.org » Wireless networking in ‘modern’ Linux is fucking braindead.

February 10, 2009

Last night, in what can only be described as a moment of technical sadism, I decided to reinstall a Linux distribution on my PC.  Actually truth is I pretty much despise using Windows but I’m bored of having to hook up my MacBook everytime I want to get on with something other than games.  So why Linux?  Hardware support, and I guess professional interest to a certain extent seeing as that’s what I look after for a living (amongst other things).

Anyway, here’s a quick aside and some background.  I also have an IBM X40 which runs OpenBSD.  There’s a lot of OpenBSD devs that use the same laptop so the hardware support is pretty much fucking spot on.  It’s slightly creaky now given that it’s only a 1.4GHz Pentium M with a single GB of RAM, but for what I mainly do when I’m not playing games – which is run ratpoison + xterms + firefox – it’s plenty.  So my idea was to have the same setup but on my bigger ‘main’ PC, but using Linux as the support for the newer hardware is there.  Oh, and the wireless works fine with this machine at home.

Wireless networking – even with WPA-PSK etc. – in OpenBSD is easy.  It’s done The Unix Way (i.e as you would expect) via options to ifconfig.  The man page does a fantastic job of explaining what you need to do, which is basically pass a few options and the key in a specific format (encrypted with another tool) and you’re away.  Plumbing this up so that it works on boot is also as just as easy.

So onto Linux.  Now I’ve dabbled with wireless networking before in Linux and it wasn’t pretty.  wpa_supplicant, ndiswrappers for Windows network card drivers (not Linux’s fault, but still), and so on.  The documentation is poor, there’s multiple disparate pieces and all in all it gave me a headache at the time.  Fast forward a couple of years and so surely now this should all be a little simpler?  Apparently not.  We’ve had time to create stupidly pointless wobbly window animations, drop shadow effects, and equally redundant boot splash screens though I see.

To be fair, after installing Fedora 10 my initial impressions were good.  All hardware was properly detected and worked out of the box, and I configured the wireless network initially via the purty and seemingly helpful control panel applet which popped up in Gnome.  It all worked splendidly.  I didn’t much care for the large amount of turd that the installer placed on my disk in the form of internationalizations galore, ‘games’ I’ll never play, printing systems I’ll never use, but still – minor things that I can clean up afterwards, right?  First things first though – install ratpoison, disable GDM, and let’s go!

But wait, now I’m in ratpoison I no longer have a configured network.  Odd.  It seems Gnome provides a little applet that works as a front-end to the omnipotent NetworkManager that enables your wireless network when you login.  That seems somewhat counter intuitive and goes against everything that an established Unix admin would expect – networking should be ever present, whether you’re in X11 or not – but not to worry, must be easy to fix that right?  Let’s have a look at the man page for NetworkManager(1):

The NetworkManager daemon attempts to keep an active network connection available at all times. The point of NetworkManager is to make networking configuration and setup as painless and automatic as possible. If using DHCP, NetworkManager is intended to replace default routes, obtain IP addresses from a DHCP server, and change nameservers whenever it sees fit, with the aim of making networking Just Work.

And that’s all of it, pretty much.  There’s a couple of references to nm-tool(1) and something else, but that’s your lot.  The man page for nm-tool is just as sparse.  No pointers to any configuration files, no word on command line options, nothing.  And this is supposed to ‘Just Work’?  After  digging around on various cretinous forums I found a some juju method of adding an undocumented option to one config file, rebooting, then pissing about with some system authorisation controls in Gnome, only to find that it still doesn’t work.

What a joke.

{ 8 comments… read them below or add one }

dan February 15, 2009 at 3:20 pm

No skills :|

nick February 16, 2009 at 4:04 pm

My attempts to deploy skillz were thwarted by braindead distribution maintainers.

lamby March 6, 2009 at 1:22 pm

Perhaps you could link to your bug reports.

nick March 9, 2009 at 9:18 pm

Yeah, I got your bug report right here: \/

r351574nc3 March 28, 2009 at 4:58 pm

Dude, you’re so wrong about so much.
1. You can do wireless networking in Linux exactly the same as in OpenBSD
2. Fedora blows goats. You never know if it’s your misconfiguration or just a bad package because Fedora is prone to bad packages.
3. Get rid of network manager for x in $(rpm -qa | grep NetworkManager); do rpm -e –nodeps $x; done
4. Fix your configs in /etc/sysconfig/network-scripts/ for wireless.
4a. Install your standard wireless tools from your favorite BSD platform or whatever.
5. GNU is Not Unix, so don’t expect what makes sense to a linux admin to make sense to a unix admin. That’s like expecting what makes sense to a Windows admin to make sense to any other admin.

In the last 5 years, I’ve bought laptops without even checking whether they’re supported by linux, and they just worked. Also, I’m determined to never use Fedora again for the 3rd time.

r351574nc3 March 29, 2009 at 11:58 pm

You know what you should do? Ditch linux and try out OpenSolaris just for kicks. Who else has a native 128-bit file system with LVM and remote distributed storage support? You’re a unix admin, right? This talk should really be arousing you. You know you want to. It’s peer pressure.

nick April 1, 2009 at 11:06 pm

Not sure why you think I’m wrong, or do you just mean that you disagree? Anyway, a couple of points:

1. I can’t configure my wireless network interface in Linux in the same manner as I can in OpenBSD. There’s a smattering of disparate tools in the former, that’s part of my beef.

4. The problem wasn’t my configuration, more the way the distribution and the wireless tools fit together.

5. In my opinion some things should be a given. Linux is a Unix-like operating system – I don’t think the GNU recursive acronym in this case is meant to be taken so literally – and as such I expect layer 3 to be configured and omnipresent. That’s IMO though, feel free to disagree.

As for OpenSolaris and its related technologies, sure it’s a great OS but for various reasons I wanted to run some distribution of Linux on my workstation. I do use Solaris professionally.

For what it’s worth I bought a wireless repeater and a shiny new Gbe switch – and that takes care of my wireless compatibility issues :)

r351574nc3 April 12, 2009 at 9:38 pm

Well, I can’t say I use OpenBSD much. I use FreeBSD, and I can say that the array of tools I use between BSD and Linux are about the same. I use the same configuration to pair my cell phone on BSD and Linux. I don’t know what tools you use, so I can’t help you. Maybe you don’t want to be helped though. Maybe you like pissing, moaning, being dragged around by your left testicle, and blogging about it after you’ve dulled the pain from a pint or two.

About #4. I wasn’t saying your configuration was wrong, I was telling you how to use other tools instead of NetworkManager. Sorry if it came off that way. Defining your wireless configuration in /etc/sysconfig/network-scripts is a more admin-friendly approach to setting up your wireless config.

You take the fun out of Linux by saying it’s actually like unix. OS-wise, it’s really not. Kernel, scripts, binaries, etc… all are so different from unix, you don’t need an acronym to tell you it’s not unix. I like linux because…it’s not unix. There. I said it. Now everyone knows. Of all the really good reasons to use Linux, I subscribe to the stupidest one of all. Also, even Windows is Unix-like. It even comes with a unix shell and basic unix commands like man. Based on that logic, all popular operating systems that we know of are Unix-like and therefore we should expect them to work similar. Right?

I’m glad you use Solaris at work. Do you use OpenSolaris? It’s very different from normal Solaris. If that’s what you meant by Solaris, then forget I said anything. If you haven’t tried OpenSolaris, you should really try it ^_^.

I used to work on Solaris on E10k and E15k. If that’s what you do, you have my condolences. It’s a thankless job, and you’re a servant to those stupider than you.

I guess you’re right. Maybe I just disagree since I can’t disprove anything you say. I can really only contradict it.

Leave a Comment

Previous post:

Next post: