Mike Shivas | Linux on 350C |
Javica and Beyond Software and the moving image | |
![]() |
Thursday, January 7th, 1999 The Story So far A long time time ago, in a galaxy far, far away, I worked for a telemarketing agency in Westwood, Los Angeles. We used a PC-based predictive dialing system and had a number of ancient PS/2 machines as workstations. When we put in the Purchase Order for a number of replacement machines, I convinced the President that he and I needed a couple of state-of-the-art laptops, and a couple of weeks later, they arrived. The Thinkpad 350C was one of the first laptops IBM made. Okay, it may never have actually been state of the art, but it comes in a very solid METAL case, has a tiny color screen (640x480), a built-in 9600 baud modem, 8Mb of RAM and a 250Mb hard-drive. I remember playing Wolfenstein 3D on it, and controlling one of our remote Dialer Installations out at Riverside "over the wire" from my apartment in Venice. Those were the days. Unfortunately, I lost my 350C in a bar in Marina Del Rey one night. An extremely dark, dark day for all concerned, I can tell you, and my heart was broken. However, 5 years later, that same President is now CEO of another company here in New York, and I was amazed to find that he was still using his same 350C laptop. It was battered and bruised, and he hated how slow it was, but it was still running. This new company quickly grew and ordered a large number of machines that, thanks to Moore's Law, were now PentiumMMX 200MHz boxes that probably cost far less than those 386 PS/2's. The president got one for his home and jettisoned the Laptop, and I was reunited with the twin of my own, sadly missing, little laptop. It was in bad shape. The power supply was shot, so it would short out at the slightest provocation. The battery was LONG dead, so any sort of movement would reset the machine for lack of a secondary power source. The screen was loose at one lower corner, probably as a result of being dropped badly, and even the CMOS battery had died of old age, required you to reset the date, time and all other BIOS settings every time you turned the machine on. What a pain in the ass. I squeezed Windoze 95 onto it, and ran it as a dedicated print server for a while, but then they "upgraded" the office to NT, and the little box was put into retirement. There was a minor resurgence in interest when the phone guy considered installing the telephone accounting software on it, but this idea was canned when it was discovered how prone it was to resetting itself whenever someone tapped it, or even coughed loudly. Just another piece of obsolete hardware, sitting on a shelf in a downtown startup, counting the days until it gets tossed in the trash. Exactly the kind of hardware that can be rescued and revitalized by the power of Linux. The Empire Strikes Back I was developing Javica at the time, and was getting some emails from frustrated Mac users, asking when the MacOS version would be ready. I know some people with Macs I could use, but developing software on a platform is a lot different than popping round to print out a Word document, or play a game, so I decided to buy an iMac for development purposes. Unfortunately, Windoze and MacOS aren't the best of friends, and the only solution for swapping files offered by Micro$oft requires you, unsurprisingly, to purchase and install a copy of NT Server, an overpriced, buggy, flabby OS if ever there was one, that you couldn't strip down and shoe-horn into an old Laptop in a million years. My goal, then, was to install Linux on this little machine and set it up to share files between both the Windows installation running on my Toshiba, and the MacOS running on the new iMac. This I succeeded in doing. Read more about it here. Secondly, what I really wanted to do was set up the Linux box as a router of sorts, and have it dial into my ISP account, then allow all 3 machines access to the internet over my modest LAN. I pulled this off, too, and now have a pretty robust, if small, LAN in my bedroom. The rest of this page will describe for your edification and enlightenment, the struggle to install Linux on the 350C. Fixing the Hardware I plugged my Toshiba power supply into the machine and found that the reset glitch went away, so the problem was clearly with the IBM power supply. Let me say at this point that IBM have an awesome, awesome web site for thinkpad support. You have to search around a bit for data on older models, but it's all there - user manuals, technician manuals, field-replaceable parts listings. You can even order parts online and have them delivered. I did. Anyway, a new power supply costs about us $75, so I whipped out a sharp knife, a soldering iron and a glue gun, sliced open the molded casing around the jack, resoldered it, then glued it all back together. I didn't think I would ever need to use the machine as a portable again, so I just took out the dead main Battery and tossed it. Then I ordered a replacement CMOS battery (for circa us $9). When THAT showed up, everything worked perfectly. Before then, I was forced to reset not only the date and time every time I switched the machine on, but the address the Parallel Port was on, so that the Zip Disk driver could find the drive. When I replaced the CMOS battery, I pretty much had no reason to open the case again. ![]() IBM Thinkpad 350C as my dedicated server. First Challenge - No Mass Storage available I was using the same Redhat 4.2 CD I used for my Toshiba, but the Thinkpad doesn't have a CD-Rom. I doubt if I could boot from an external CD-Rom, and the disk drive wasn't even big enough to hold all the RPMs anyway, let alone hold them AND a full installation. I toyed with the idea of putting it on the network and copying a minimal install image to a DOS partition, then installing from the hard-drive, but that sounded too fiddly, and would require 3 partitions on the disk, DOS, Linux and Linux Swap, instead of just the latter two that a clean install would require. Installing from a network would require me setting up NFS on the Toshiba, which would require entering unknown and murky territory in order to perform what was already an unknown and murky task. I knew Linux supported my Parallel Port Zip Drive, and when I searched around I found a couple more HOW-TO's on using the Drive for installation: Install Linux TO a Zip Drive Using Linux WITH a Zip Drive With this documentation to hand, I booted the 350C to a DOS floppy, waved goodbye to the Windoze install, and fdisk'd the bastard clean. What I needed, though, was a single Zip Disk that contained all the Linux RPM's I'd need to install Linux (minus X-Windows). To get this, I booted Win95 on the Toshiba, and copied the absolute essentials from the Redhat CD onto a blank, DOS-formatted Zip Disk. Then I ordered the RPMs by size, and went down the list copying everything I didn't recognize as redundant. What I'm saying is I couldn't find an accurate list of what I needed, but I had a pretty good idea of what I didn't need. For example, I missed out emacs, which has some pretty large RPMs, and the x-windows stuff is pretty easy to spot, too. I think I missed out all the GCC and development stuff, as well. Anyway, I whittled the list down until it was under 100Mb. This took me a while. Rather than putting you through this, I'll post the exact contents of the disk I used in a few days. See below for future details. After I had the completed Zip disk, I booted the 350 with the two Linux startup install disks. I specified that I'd need support for 'other' devices, and it prompted me for the second disk. Then it asked me to select said devices, and I know the PP Zip Drive was in there somewhere, maybe under SCSI, I don't remember. Anyway, I had a tough time getting it to work until I remembered that the BIOS has to be set so that the Parallel port sits at 378, and the installer requires the same setting to be made manually, I think. I think installation went quite smoothly until towards the end. I don't remember exactly what happened, but I got lost someplace after all the RPMs were installed. I remember switching virtual consoles a few times, and I think I had to configure LILO manually. The install takes so long from the Zip Drive I didn't want to start from scratch. I set up and formatted the two partitions, swap and native, and made sure to check them both for bad blocks, given the age and physical state of the machine. The disk was perfect, though. I used my Toshiba machine to recompile a 386 kernel for the 350, to include netatalk, ip forwarding modules, the zip drive, samba, and everything else I could think of. A resource I found absolutely invaluable for the configuration of pretty much ALL aspects of my new Linux File Server / Router / DNS Server / Web Server is TrinityOS. I also found the author, DRanch, to be very helpful and informative when I fired direct questions at him. While the file-sharing capabilities of my new server were the primary goal, I find it invaluable as a web server (this site is developed on apache) and as a router. I telnet to the thinkpad, then have it dial up to my ISP and establish a PPP connection. Then I run a firewall script for IP-forwarding, and I can surf the internet from all 3 machines. It's killer. I can even play Quake through the router. Once again, TrinityOS proved an excellent resource for setting this kind of thing up. I warn you, though, it showed me how much there is to TCP/IP networking. I just scratched the surface. It should be noted, though, that setting Linux up in this way leaves your whole LAN exposed to the rest of the planet in a way that conventional dial-up from Windoze or MacOS probably does not. There's a lot more going on on that linux box than there ever was on Windows 95, even with that pissant little personal web server thing running. I always keep an eye on a telnet window that shows the Linux log when I'm online. Several Times in the past few weeks, people have tried to telnet into my machine. Quite scary, really. Be warned. You have to get deeply into firewall configuration to get your Linux router to be truly safe, and the safety of your whole LAN may be at stake. However you configure your firewall, it's always a good idea to keep an eye on the log so you can spot strange activity as it happens. ![]() PARANOIA - Watching the server logs through Telnet On a lighter note... Once I got everything going and churned out the first ever Mac version of Javica, I tried installing a dedicated Quake server on the thinkpad. I probably didn't mention that the 350 came with a 386 chip running at 25Mhz, sans FPU. As quake relies very heavily on floating point operations, I didn't think there would be much hope of it running a decent quake server. I was right. While the dedicated server did successfully launch, the console took about 10 minutes to process the pak files and initialize. When it stabilized, I tried to connect from the Toshiba, and the server took so long to accept a client connection, the client timed out. Just before I gave up, I tried running the full squake client on the poor bugger. It squeezed out about one frame every 90 seconds. That's got to be some kind of record. Friday, January 8th, 1999 Base Redhat Packages under 100Megabytes Following on from yesterday's essay, here is a text file containing a list of all the packages I put onto my installation Zip Disk. Like I said, a great deal of these may be superfluous - I just deleted large-sized packages, and those that I was certain I wouldn't need for the install until the list came to under 100Mb in size. I hope this is of some use. Mike Thursday, August 14th, 2001 Several years later, you might be suprised to find that I still own the little thinkpad. What's more, it still has exactly the same installation of RedHat 4.2 on it. My other machines are now up to 7.1, but there really wasn't much point in upgrading a machine that performed simple tasks perfectly well. I have DSL now, so the routing capabilities of the 350C are also not required. I've spoken to a few people interested in installing RedHat on this machine, and it sounds like things are easier now, with slicker installation programs that let you install from a PCMCIA network connection. One guy tells me he crammed a distribution including X-Windows onto the thing, with room left for userland apps. Bottom line is, this machine is as sturdy as they come, and I'm expecting another five to ten years of service out of it. If you have one, don't throw it away. I might try to install a newer version of RedHat, but only if I have a little free time. |
It's all just one man's opinion. Copyright 1998, 1999, 2000, 2001 Michael Shivas. All Rights Reserved.