Monday, November 12, 2012

Slackware V14.0, round one.

Well, on noticing that the new version of Slackware, 14.0, is out now, I read the release notes and noticed among other things, the fact that it is now using the version 3 Linux kernels now, and also that Firefox is now upgraded from version 3 to version 15. Since Facebook has been on my case for some time regarding the inferiorness of my web browser, and also the fact that I have been running the 32-bit version of Slackware on a 64-bit machine all this time, I decided it was time to upgrade, and I was going to do it in style.

Okay. First off, the 64-bit version of Slackware is only available on a DVD distribution. I'm sure I could have hacked my way around this if I had to, but anyway, the first step regardless was to download the ISO-9660 image of the installation DVD. I tried a straightforward HTTP download, only to have it crash a quarter of the way along. So I went with the torrent instead. I downloaded the torrent file, brought up KTorrent, and opened the torrent file.

Nothing happened. No peers. Well, I thought, it's either very busy, or very new and nobody is sharing it much yet. Heck, the Slackware website said the DVDs weren't even available to be shipped yet. So, I waited.

Eventually it occurred to me to check on the trackers. I noticed "connection refused" in each case. Eventually I figured it out. It was the port number, 8082, a non-standard HTTP port number that I myself had cause to use in the past, but which my firewall, running Smoothwall, was blocking. I opened up that port and suddenly I'm downloading.

About 13 hours later, the download is complete, and I'm now seeding it to return the favor to the community. All well and good. Now my Linux server did not have a DVD burner installed. It does now, but let's not get ahead of ourselves. So I went to the nearest DVD burner, my Windows XP system which is amazingly clinging to life after ten years of continuous service. Original hard disk, never reformatted, only a fried power supply, and now a spiffy new case, merely awaiting new innards. But XP wouldn't burn a DVD for me.

So I go to the next nearest DVD burner, in another room, on a Windows 7 system. I have installed Windows 7 for people, but I am doing my very best not to use it personally. Linux does 99% of everything I need to do, and probably the other 1% if I could just figure out how. I have grown to dislike Windows and Microsoft. Anyway, the ISO image takes three hours to transfer over a slow WIFI connection. I really mean to upgrade my wireless access point, but that involves money and one has to prioritize. So three hours later, including restarting after an abort, I am burning the DVD with no issues.

Back to my Linux server, where I discover that my DVD drive is inoperable. It's of the same vintage as the XP system so this is understandable. At any rate, I pull the DVD burner out of the XP machine and transplant it to the server. The server has a CD burner in addition to the defunct DVD drive, so I swap it for the burner.

Next hurdle: I can't get the ribbon cable to connect to both CD and DVD. The connector on the DVD burner is offset a quarter inch, and there's not enough slack in the IDE cable to bend sideways. I try harder. I break the cable.

At this point, viewing the destroyed IDE cable, I observe first-hand the ingenious way they have grounded every other wire in the ribbon cable to eliminate cross-talk, and also realize that, while I have surgically repaired IDE and SCSI cables in the past, the fine nature of the cable, and the thin-ness of the copper sheet that interconnects each ground wire, means that this one is toast.

No matter, I have a gazillion old IDE, SCSI, and floppy cables tucked away for just such an occasion as this. I grab one of the old-fashioned kind, without the extra ground wires, but having ample distance between the connectors to connect to both drives. It works just fine.

On to the next chapter in the adventure. I boot the DVD, after changing the order of the boot devices to do so. I walk through a fairly straightforward Slackware installation, which I have done many times now. Now, in the past when I have upgraded the server, I have always left the previous version intact, choosing a different partition for the new version. I have a pair of partitions for this purpose, and I alternate. So far, so good.

The new version boots up just fine, except for the usual laundry list of things needing to be configured, like Apache and MySQL. No biggie, I've done this before. Anyway, I want to bring up X Windows since I prefer this environment on the whole, but I immediately run into snags. First off, I have a dual-monitor configuration, where each monitor has a different aspect ratio and screen resolution, and one of them is rotated 90 degrees. See, I like to do my web browsing on the rotated monitor, where I can view more of vertically-oriented web pages and the like. In the course of my Linux adventures I had discovered that Slackware did not include the proper driver for my nVidia interfaces, and apparently still doesn't.

At this point I decide that I'm going to take a break from the upgrade process, not to mention the fact that the V14 system doesn't have my custom DHCP configuration running, and everyone in the household is complaining that the internet is down. Well, it isn't, but when DHCP is down, Windows just says "no internet access" without offering further explanation. So I shut down 14.0 and reboot 13.1.

Disaster! The network is down because none of the ethernet interfaces appear, and the X server won't start either. Neither the ethernet driver nor the nVidia display driver will load. It seems somehow the V14.0 installation has done something nasty to 13.1, so I do a number of checks, but everything seems in order. Finally I found the error message buried in the logs. It's looking for the kernel modules for the version 3 kernel. A certain amount of skull sweat later, I identify LILO as the culprit.

The Slackware installation script creates a LILO config file for you. But, it points each Linux boot option towards the same kernel, the one on the system currently booted. Obviously this had happened in the past, but never noticeably. So I had to change the kernel reference from /boot/vmlinuz to /oldslack/boot/vmlinuz, and then things got much better.

Still, my X server would not start. I tracked down in the kernel logs where the nVidia driver failed to allocation memory, and then I remembered. The default video driver in Slackware is the VGA driver, and it is quite capable, except for things like rotating the display. It also works fine without additional memory, but nVidia needs vmalloc=512MB added to the kernel parameters. This gives it enough to do 1280x1024. I tried setting it do 1024MB but 13.1 hung during the boot. 14.0 booted okay with 1024MB so maybe 64 bits allows this where 32 doesn't, I don't know. At any rate, once I have settled in to 14.0, a job for another day, I will see about actually displaying 1920x1080 on my landscape monitor. I am using 1280x1024, stretched, but xine is kind enough to detect the actual monitor dimensions and adjust the image accordingly, so movies play just fine.

So now I'm back on version 13.1 for now, drinking coffee, and enjoying my birthday, and the fact that I have a day off. I have covered many hurdles thus far, and feel that it's pretty much downhill from here.