Oh Linux, you’re simultaneously the source of and solution to all of my computing problems. I recently had my own version of Linux “success”.
This past Monday I was attending the Third International Workshop on Optimisation in Multi-Agent Systems on the first day of workshops at AAMAS. The conference venue (the Sheraton Toronto Centre) provided free wireless Internet through the use of a common username and password that was given to the attendees. I initially connected my phone (as I do not have a data plan that extends to Canada). This worked perfectly. Unfortunately, the wireless access points had an arbitrary limit to the number of users that could simultaneously connect with the same username. By the time I tried to connect my laptop, all of the user slots had been taken and I received an error.
I therefore did what any other person would have done: I fired up the terminal on my (jailbroken) iPhone, ran ifconfig
and wrote down the MAC address of my phone’s wireless NIC (which was still surfing the Internets just fine). A simple ifconfig wlan0 hw ether ...
command later, and my laptop was indistinguishable from my phone (at least to the hotel’s wireless access points). My laptop was then successfully on the Internet!
Unfortunately, Rob came along and ruined the whole thing. His laptop was similarly blocked from the Internet, and he needed to get online too. We decided to try and share my phone’s MAC address between our two laptops. Our laptops would just drop the unexpected packets, right? Right?
It all worked perfectly for the first five minutes or so, as long as we each took turns “using” the connection. When we tried to simultaneously browse the Internet, however, things started to break. You see, I am using a hacked open source version of my laptop’s wireless driver (it is the only way to get the wireless card into promiscuous mode). This driver is in BETA, at best, and was apparently not designed with the use case of MAC address sharing in mind. My kernel promptly panicked.
Now, I tend to always suspend or hibernate my laptop between uses. As such, the uptime of my laptop was nearly 50 days. Sometime during those 50 days I had apparently upgraded X. I had also apparently forgotten to upgrade the associated video and keyboard/mouse drivers for my laptop. Therefore, once I rebooted from the kernel panic, Xorg failed to load. That’s no problem; I’ve forgotten to compile the video drivers lots of times before. Since I didn’t have an Internet connection (and didn’t want to risk sharing the MAC address again), I gave Rob (who was still online) the URL for the download, and he copied the drivers to a USB key. Five minutes later and my video drivers were upgraded. Xorg starts up beautifully.
The problem is that I forgot to download and install the new input drivers, so neither my mouse nor my keyboard work when Xorg pops up! I have no way of quitting, so I am forced to power down.
Xorg is a boot service, so it automatically starts once I reboot my computer, and I have no way to prevent it from starting.
I therefore have to reboot into single user mode, have Rob copy the keyboard drivers over, and install them.
I still love Linux.