Category: retro


Click for a larger screenshot

This is going to be short and VERY special interest but I wanted to put it out there since I’ve searched all over the internet and back and couldn’t find the answer myself.  If you need to get into the bios on your Toshiba Libretto 50CT, reboot it and hold down the ESC key until it comes back with a prompt that says:

Check system.  Then press [F1] key.

After that, the rest is pretty obvious.  Hopefully this is useful to someone.  BTW, I believe that 6.60 is the latest bios revision available.  I have not tested this but supposedly if you click here you can get the latest bios for the Libretto 50CT.  Apparently you need to put it on a 720K formatted disk according to other things I’ve read but it’s hearsay and I don’t really know for sure.

I made a short video tour of one of my favorite books from when I was a kid.  I shot it with my Canon 5D mkII and then tweaked it a bit in iMovie.  I’m trying to familiarize myself more with the video features of my camera.  I’ve only had it for 2 years now so it’s about time I figure it out. The music is a track I made nearly 10 years ago on my Korg ER-1. I always considered it somewhat unfinished but it worked fine for my video.

I’ve had this book since I was about 5 or 6.  It was made in 1985 by Sharon Gallagher.  This book was one of the few that I kept from my childhood.  It has always captured my interest even to this day.  Though the contents may be a little dated, most of the information still holds true oddly enough.  These days, this book is a bit of a collector’s item.  It’s available at Amazon and last time I was at Ada’s Technical Books in Seattle, they had a copy available.

I haven’t installed Windows 98 in a LONG time but my Libretto is a Pentium 75MHz so Windows 98 is a reasonable choice of an operating system for it since thus far I’ve been unable to make a modern Linux distribution work with the system.  I wanted to how well Windows 98 stacks up to a modern operating system.

I have a pair of Libretto 50CT’s.  Both of which have adapters so I can use Compact Flash cards as hard drives instead of the noisy and power-hungry 810mb drives that ship with them.  This allows me to swap out drives quickly and easily.  Since the Libretto won’t boot of the pcmcia CD-ROM drive and I no longer have the Windows 98 startup floppy, I simply placed the Compact Flash card in a different ancient system for installation purposes.  That worked out just fine and the install went smoothly.  Before I put the card into the Libretto, I did the smart thing and copied the win98 directory off of the CD-ROM onto the hard drive for future reference.  The reason for this follows…

Windows 98 has some idiosyncrasies compared to a more modern OS like XP.  Pretty much every time you sneeze on some configuration parameter, you are required to insert the Windows 98 CD, copy files off of it and reboot the system.  Yes, this is archaic and annoying but back in 98′s heyday, hard drives were MUCH smaller so you wouldn’t have wanted to waste a bunch of disk space storing all of the CAB(cabinet) files.  People complain how XP and newer systems are so bloated, this is one reason that they are…  The CAB files are on the hard disk AND they have MANY MANY more drivers preloaded so that many hardware devices are covered on at least some level.

After I got Windows 98 installed and the CAB files copied over, I swapped the Compact Flash card into the Libretto.  As expected, when it first booted up, it updated drivers for the Libretto’s hardware configuration.  It needed to go through a couple of reboots to get it right but they were soft reboots.  An advantage of Windows 98 was that it was built on MS-DOS so it had the ability to soft-reboot where it would just kill the GUI and go down to the DOS level and restart from there.  This saves you the pain of the POST sequence and ram count.  After it was booted up and running, I was surprised and impressed that ALL the hardware seemed to be working perfectly.  I was expecting to have to track down Windows 98 drivers for the screen and sound but the Windows 98 second edition seems to have the Libretto 50CT covered perfectly.

Next, I wanted to get some wifi working so I found a SMC 2632W 16-bit PCMCIA wifi card in my stash.  First I’ll mention the bad…  WEP only.  As far as I know, there are no 16-bit PCMCIA wifi cards that support WPA/WPA2.  No surprises here.  I have a sandboxed access point to connect WEP devices to anyways so no worries here.  On the good note, SMC still has the Windows 98 driver for this particular card available on their website.  I copied the driver onto another CF card on my MacBook and put it in an adapter in the PCMCIA slot in the Libretto, after I copied it to the system, I remembered something else… No built in unzipping tool.  Back to the web I found an old pkunzip.exe file somewhere and copied that onto the Libretto.  I put pkunzip in the C:\windows directory and associated it to zip files and ran into another failure.  Pkunzip doesn’t respect directory structure of the zip files by default so I found the dialog to edit file associations and added a “-d” parameter to the pkunzip command.  This fixed the issues and I was able to move on with the installation.

I inserted the card and then pointed the hardware wizard at the desktop where I had unzipped the SMC drivers.  This went fine but the driver is REALLY kludgy.  There is no way to perform a scan of available access points(something else we take for granted).  Obviously I knew the AP I wanted to connect to but it took a reboot before it was all working properly.  After the reboot, I tried a ping….  SUCCESS!  So then I tried internet explorer and the home page it was set to actually crashed it.  I opened it back up and stopped the page from loading and then hit up google.  OUCH!  Surfing modern sites on this thing is SLOOOOOWWWW.  Oddly, surfing web 1.0 sites is just fine though.

The next thing I tried to do is Windows Update.  I went to the page and was informed that support had stopped in 2006 and only the updates to that date would be available.  Unfortunately, this did not prove to be true.  It appears that Microsoft has finally shut down the Windows 98 update servers entirely.  Not that I blame them but it would have been nice if they just scaled them down to one old server or something.  Oh well, I won’t be using this thing outside of a firewall anytime soon.

The last thing I did was put a keyboard banger program on this system for my son to mess around with.  He got a kick out of it and played with it for a good 45 minutes.  I think he likes this system because it’s so small.  His 2.5 year old fingers are probably the perfect size for touch typing on a Libretto.  :-)

While it may seem pointless at first I actually have a halfway legitimate reason for going through the effort.  First off, of course, I wanted to see if it could be done and how usable it would be.  Second, I was sick of taking the compact flash card out of my Libretto 50ct and sticking it in my Mac to put new files on the system.  I figured it would be easier to punch up a URL and download the file directly.

Now that the “why” is out of the way, now we need to cover the “what”.  What you need is a wireless card that has MS-DOS drivers available for it.  There are a couple but for me, the easiest to find was an Orinoco Silver/Gold card.  Part of the reason I went with this card is that it is NOT cardbus.  It’s a 16-bit pcmcia card so it works in my Libretto 50ct.  The Orinoco card uses an Agere chipset so in theory this may work for other similar cards.  Once you’ve obtained your card, you will need the driver which is available on this server.  That little zip file on there contains everything you need.

Now for the how…  The first part can be a bit interesting.  After you’ve stuck your card into the laptop and unzipped the file, you are pretty much interested in two directories from the zip file.  First you’ll need to deal with what is in the CAD directory.  Read the readme.txt first and you will find out that you need to run MSD(Microsoft Diagnostics) and find a free location in memory to use as a base address.  In the readme, the suggest using:

/m=d000

However this didn’t work for me.  I found another location that was suitable and inserted a line similar to this one into my config.sys:

DEVICEHIGH=C:\DRIVERS\CAD\WVLANCAD.SYS /i=10 /b=1300 /m=b400

That is what worked for me, your mileage may vary.  Reboot your computer and see if that works.  By working, I mean not getting an error.  After that is done, you’ll need to deal with the files in the PACKET directory.  First you’ll want to edit the PACKET.INI file.  This may disappoint some of you here but you only have two options which are open or WEP.  Hopefully you have a WEP router that is off in the corner of your network where it cannot hurt anyone.  In the packet.ini file, you’ll want to set the following lines most likely:

Wireless_Network_Name = ANY (put in your ssid)

Station_Name = John Does Notebook PC (obvious)

;Enable_Encryption = N (uncomment and change to “Y”)

;Key1 = abcde (uncomment and put in your key.  Use “0x prefix for hex)

After these things are done and the file is saved, you can try out your settings with:

wvlan42 /L

This should finally turn the light on your card on.  This means everything is probably working but it’s pretty hard to say at the moment because you don’t have ping or anything installed by default with MS-DOS.  Feel free to add that line to your autoexec.bat if you don’t want to have to worry about it in the future.  Now it’s time to download Arachne which is a fully graphical web browser for MS-DOS.  It’s the best one that I tested and the only one I could get to work.  Once you start up Arachne, you’ll need to set up some network settings.  The drivers above handle your layer 1 and layer 2 functions.  Arachne will pretty much handle the rest itself.  When I configured Arachne, I chose “Resident packet driver” and “bootp/dhcp”.  After that, you need to either restart or hit the “use new settings button.  If all goes well, you should be surfing like it’s 1999 all on your MS-DOS based laptop.

My Libretto doesn’t have a CD-ROM drive in it.  Sure there is an external drive that I can plug in and run but why would I want to haul around a drive that is almost as large as the whole computer just to play some old game that requires a CD-ROM drive to function?  Many of the old CD-ROM games are around 10mb anyways so it makes no sense to use a CD-ROM drive for them.  Even on a desktop, do you really want to monopolize your CD-ROM drive with a disk just to play one game?  I figured that someone out there must have a solution so I found one.  The problem was that I couldn’t find any documentation, just odd hints scattered across the web.

The program you need is SHSUCDHD and SHSUCDX.  These are part of a package called SHSUCD that is available here.  The whole package is pitched as a replacement for mscdex but the feature I’m interested in is just the emulation.  What’s nice about it is that it doesn’t require any TSR’s in your config.sys file.  You can either start it on demand or in the autoexec.bat file.  My goal was to run Wizardry 7: Crusaders of the Dark Savant.  So I put a chain of commands into a batch file that I run when I want to start that game.  The lines related to SHSUCD are as follows:

shcdhd86 /f:wiz.iso

shsucdx /d:shsu-cdh

This assumes that SHCDHD86 is in the same directory as wiz.iso.  SHCDHD86 is the same as SHSUCDHD if I’m not mistaken so hopefully that isn’t too confusing.  The first lines points the virtual cd-rom driver at the iso you wish to mount.  The second line specifies what drive letter bind the image to.  After all of this is done, you should be able to go to the D:\ drive and there will be the contents of your ISO.

In my spiffy batch file, I put commands to unload the cd-rom drivers after the game is done using them:

shsucdx /u

shcdhd86 /u

At some point, some clever folks figured out that a NES controller contains a simple 8-bit shift register that can be read by a parallel port.  There are really just 3 things that matter.  Those are CLOCK, LATCH & DATA.  The rest of the pins and the diodes are just for power and ground.

With my version, I actually used one additional pin for power which was pin 4.  According to some sites, 1n914 diodes are ideal but in my case, I used 1n4001 diodes which were readily available at Radio Shack in a grab bag and they seem to work just fine.  I think that almost any silicon diodes will do the trick in this application.  The only reason for them is so the power is not back fed through the port as a side effect of tying all the lines together.  Overall, this is a GREAT beginner hack if you are just learning about electronics since it doesn’t even require a circuit board.

After the hardware was done, the software is the next piece of the puzzle.  I am using sneskey as my driver.  Sneskey is a slick little program that allows you to map many different types of controllers to keys on your keyboard.  You don’t really run sneskey in the background as a TSR though.  Instead, you set up the sneskey configuration file to load your emulator.  In my case, I used nesticle.  To set this whole thing up, download I would just extract all the sneskey files into the same directory as you extract nesticle and it’s companion program dos/4gw.  After that, you’ll want to edit the nes.ini file and change the ProgPath line to look something like this:

ProgPath = c:\nesticle\nesticle

Check the key bindings while you are in there.  They should be fine though.  After that, you should be able to launch nesticle and sneskey with the following command:

C:\nesticle>sneskey nes

Once you have launched the program with your controller plugged in, go to settings –>  input  –>  device 1.  In there, make sure Keyboard 1 is selected.  If all went well, everything should work except A & B.  Hit “redefine keys” and click on “A”, then press “A” on the gamepad to bind the key.  Repeat the process for “B” and you should now be good to go.

Ever since the first time I saw a Toshiba Libretto I have wanted one.  For years I’ve been watching them on eBay but never wanted to pay the ridiculous prices that they fetched but finally I won my very own Libretto 50CT for $16.  Sure it’s insanely old technology now given that it’s a Pentium 75MHz(sorta) with 16mb of ram and a 815mb hard drive but it’s still a neat little computer and should be great for playing some old dos games and a few other uses I’ve yet to think of.  If you are not familiar with this computer, it is roughly the size of a VHS cassette tape.  Very small in other words.  This Toshiba Libretto 50ct was released in the USA around 1997.

One thing about this little machine that actually disappointed me a bit was that when I booted it up, I found the hard drive to be unbearably loud.  I mean I have 3 other laptops in the room and this one managed to overpower them all(sonically) by a significant margin.  No worries though because I came up with a solution.

While I admit that the Syba 2.5 inch IDE Dual Compact Flash Adapter costs almost as much as the laptop itself did, I have to also say that it was well worth it.  It was not a perfect fit however…  There are two problems with putting the Syba into the Toshiba Libretto.  First off, it’s too thick.  The Libretto hard drive is WELL under the normal spec at a super slim 7.5mm while the Syba is actually bloated for the spec it was trying to achieve.  The Syba is a fat 9.9mm instead of a more standard 9.5mm.  This was easily rectified by deshrouding the thing though.  Pulling off the unnecessary plastic slims the Syba adapter down to 8.7mm which is snug but ultimately does comfortably fit inside of the Libretto.

Click to expand

Next problem is also easy but the solution may not be for the faint of heart.  The Toshiba Libretto is expecting a keyed connector on the hard drive.  The Syba adapter, however, has all 44-pins as would be expected according to the spec.  The solution is to carefully line up the original hard drive and the Syba adapter paying CAREFUL attention to which direction is up.  Then simply take a pair of diagonal cutters and cut the interfering pin off your new adapter.  Doing this will also ensure that you will not need to fear screwing up the alignment when inserting the adapter into the Libretto.

One bummer about this setup is that the second CF slot is non-operational in the Libretto.  Apparently the controller does not have a second channel or it is used somewhere else.  One more bit of advice is the put the adapter in with no CF card in it so you can see to the bottom of the drive bay and line it up properly.  After that, stick your CF card in.  You can make a little tape tail for your CF card if you want your cards to be easy to swap out when you open up the drive bay.  I have not delved into performance benchmarking yet but so far it seems snappy enough for my purposes so I am pleased with the setup.  One final caveat I will leave you with is that this setup will not accept a micro drive since that is too thick.

My final assembled XT-IDE 8-bit ISA card

Once I started messing with my IBM PC XT, I realized that there were things I had taken for granted all along since my first PC compatible system was a 386.  I didn’t realize that IDE uses a 16-bit bus and it would take some trickery to use an IDE device in an older 8-bit system like the XT.  I searched around and found that there were in fact 8-bit ISA controllers but they were expensive and rare.  Finding one these days would be a stroke of luck or a dent in the pocket book.  I was about to design my own when I came across the XT-IDE project.  The XT-IDE project is an open source venture where a group of people designed exactly what I needed with fairly common off-the-shelf parts.  I had my friend James to burn the code onto the eeprom for me  because I have no way to put something on a 360K floppy disc but aside from that, the project primarily consists of easy through-hole soldering.

Front side of the unpopulated XT-IDE PCB

I ordered my board the other day from Andrew Lynch who can be found lurking in this huge forum thread.  It was $14 including shipping which I felt was more than fair considering the quality of the board.  It’s a very professional dual-sided PCB with a full solder mask and silkscreen.  It would take me far too much time to attempt to replicate this at home.  It’s also nice that it has all of the settings printed VERY clearly on the board and the url for www.vintage-computer.com so I won’t forget where I found this project.

The bill of materials looks a little daunting at first but it’s really not a huge project.  The list below references Jameco part numbers.  There are a few non-critical items and some others that you can pillage from other ISA cards such as an L-bracket, pan screws and shorting blocks (jumpers).  I’m personally going to skip using most of the sockets since I’m fairly confident with my soldering skills and dual-wipe sockets tend to add another point of failure.

1               XT-IDE PCB (get this from Andrew lynch)
10   25523 	CAP,MONO,.1uF,50V,20%
1    1945428 	CAP,RADIAL,47uF,35V
2    45129 	IC,74HCT688
1    46316 	IC,74LS04
1    46607 	IC,74LS138
1    47466 	IC,74LS32
1    287144 	IC,74F245,DIP-20
3    282642 	IC,74F573,DIP-20
1    74827     	Atmel EEPROM IC, 28C64
2    112214 	SOCKET,IC,14PIN,DUAL WIPE
6    112248 	SOCKET,IC,DUAL WIPE,20PIN
1    112272 	SOCKET,IC,DUAL WIPE,28PIN
1    526205 	SOCKET,IC,16 PIN,390261-4
3    112432 	SOCKET,SHORTNG BLKS,RED,CLSE
1    690662 	RES,CF,150 OHM,1/4 WATT,5%
6    691104 	RES,CF,10K OHM,1/4 WATT,5%
2    857080 	MOLDED SIP,9PIN,BUSSED,10K,2%
1    333949 	LED,GREEN,572NM,T-1 3/4
1    1939562 	SWITCH,DIP,SPST,8-POS,16-PIN
1    53604 	HEADER,RT MALE,2RW,40 CONT
1    109568 	HEADER,.1 ST MALE,2RW,16PIN
1    109576     HEADER,.1 ST MALE,1RW,3PIN
2    2094389 	SCREW,PAN HEAD,PPN4-40X1/4
1    N/A        Keystone 9202 ISA bracket with 2 PCB mounting tabs.

Once I had all of the parts together, it was time to check out the build instructions.  This project is a VERY easy build.  All of the IC’s are labeled on the PCB, all of the caps are identical except one which is labeled and called out and all of the resistors are the same aside from the one that goes with the LED.  There are only two gotchas that I can think of.  First off, before you solder in the 40 pin IDE connector, you should pull the key pin out from the connector.  Grab an IDE cable and line it up with your connector, you will see which one is the key pin fairly quickly.  Secondly, the default dip switch setting is correct on the back side of the PCB but incorrect in the build instructions.  Set it to 01110111 as stated on the back of the card.  If you need to set this to a different setting, you will need to re-flash the firmware on the eeprom for some reason.  The default seems to work fine however so no big deal.

The original NCL MFM controller that came in my PC XT

Overall this project has cost me about $30.  I’ve learned some new stuff and I can now use my IBM PC XT with a modern IDE hard drive.  My next step will be to try to use the system with a compact flash card.  Now I can install MS-DOS 6.22 and hopefully Xenix at some point without disrupting the original MS-DOS 3.2 file system.

9 Seattle area computer recyclers

I like to check in on the local computer recyclers from time to time. Seattle actually has a lot of these little places hidden around the area and they are always bursting at the seams with piles of old computer parts.  I’m usually after the retro and more obscure stuff but sometimes I find things that are useful on my MacBook Pro too.  Here is the list in no particular order.

RE-PC Tukwilla – This was Bruno’s in the 1990′s.  The Tukwilla branch of RE-PC has a small section of wall devoted to retro hardware for sale and at very fair prices. I saw an Apple IIe there the other day for $30 and a Commodore Vic 20 for $20, both of which I thought were good deals.

RE-PC Seattle – This was a PC Fixx back in the 1990′s. These days, they have a gigantic warehouse with tons of stuff. Some of it is priced very well and some is a bit high but this store also has a great retro computer museum. The best publicly displayed collection of retro computers in Seattle to my knowledge. Everything from an Apple Lisa to an 8-bit ISA Soundblaster.

Computer Surplus Redmond – This is a great little store with super-friendly owners.  They have a perfect mix of new and old items.  They don’t really save or sell retro hardware since they haven’t seen a huge interest.  (Seems to be a trend)  Might be worth popping into the Redmond Value Village which is half a block down while you are at it.  These guys are more than a typical recycler.  If I weren’t a computer guy, I would take my computer to these guys for service.

PC Recycle Bellevue – This is a small, cramped store but almost always has something worth buying. They have a great selection of cables, drives and random parts such as ATX shields and usb dongles. The window display of this store is ALL retro hardware and software. If they feel like it, they will entertain offers on the window items. That is where I scored my IBM PC XT.

PC Recycle Lynnwood – This store is very cluttered and crowded with incoming piles of computer hardware.  They don’t have any retro hardware here so I probably won’t go back anytime soon but the guy that runs it is friendly and knowledgable.  If you are in the Lynnwood area, this store is probably worth a look.

3R Technology – I’m guessing the 3 R’s are reduce reuse and recycle.  This store is hard to find and deceiving.  It’s on the opposite side of the building that it’s addressed from next to some train tracks.  They seem to have a very high turnover of inventory and a friendly staff.  When you walk into the store, the front room is fairly small but then it opens up to a warehouse in back and you’ll see stacks upon stacks of various parts.  I think I saw a whole pallet of power supplies there once.  These guys are much friendlier than you would expect and they seem to enjoy visitors to their obscure location.

Seattle Goodwill – Not a pure computer recycler but it’s the absolute largest Goodwill I’ve ever seen anywhere and from time to time they will have a good selection of routers, printers and other computer-related items. I haven’t seen full systems there for years but it’s still worth a visit if you are in the area.  Every morning at 10am there is a bum rush of people cramming into the door and b-lining for the electronics and collectibles section of the store.  These are typically eBay poachers which I find fairly irritating but on the other hand, they generally aren’t looking for the same stuff that I am looking for.  In Goodwill locations around here, items are placed on the shelf with a dated, colored price tag, within the month, every color of price tag goes on sale for 50% off.  If the item does sell in a month, it gets sent the Goodwill Outlet Store where it is sold by the pound with exception of  books which are sold for $0.50 each.

Bellevue Goodwill – This is the closest Goodwill to Microsoft so a lot of Microsoft employees donate stuff here.  They tend to have one of the largest and best selections of used tech books that I can think of.  Like Seattle Goodwill, their turnover is fairly high so you never know what you will find here.

Free Geek Seattle – This store is not open yet but they are coming soon.  I’ve been to the Free Geek in Portland and in Vancouver B.C. and I can’t say they have much there for me but if you are low on cash and you need a computer, you can go volunteer at Free Geek and earn a computer.  Vancouver did have a Mac Plus with an external 20mb hard drive and a case for $50 which I thought was reasonable.

That’s my small list.  If you know of any great computer recyclers in the area that I missed, please post in the comments and I’ll get them added.

I’ve been listening to earlier episodes of pauldotcom.com‘s weekly podcast and have continually heard Twitchy go on and on about how great Gentoo Linux is.  I finally got to episode 62 where Twitchy did a tech segment about portage which is the package management system for Gentoo Linux.  It SOUNDS fantastic.  Pretty similar to Macports but even better since EVERYTHING on your Gentoo system is a manageable package. When you upgrade packages on your system, new source code is downloaded and compiled locally(or can be distributed to other systems you run) and you can specify configuration options on the fly.  Portage keeps track of all installed packages and their dependencies(recursively).  If you want to install a package NOT already available in Gentoo, simply write an ebuild file and Portage will handle the rest of the process including keeping track of the package for you.  You are able to upgrade your entire system with a single emerge command every day, week, month, etc.  After hearing this, I felt it was finally time for me to try out Gentoo.

I consider myself a fairly seasoned Linux user.  I’ve been using Linux on and off for work and play since Yggdrasil Linux came out in 1993 or so and moved back and forth with Redhat and Debian over the years.  Gentoo SOUNDS like it may be the answer to many of my annoyances with the other systems mainly being the broken package management systems.  That being said, installing Gentoo Linux does not follow an obvious process.  Not to say it’s not easy but it’s doesn’t have a scripted install like Redhat or Debian and it’s most certainly not a GUI-based installer like Ubuntu..  When you put in the installation CD and boot it up, you end up at a live cd prompt.  What do you do from here?  You read the 7-page(tiny print) Gentoo Linux x86 Quick Install Guide of course…

My ancient Celeron 466MHz micro desktop system about to get Gentoo'd

Note: The following is a recap of MY personal adventure of installing Gentoo Linux.  It’s not meant as a replacement for their excellent documentation.  If you read the steps I followed though, you might find a couple of ways that I did stuff differently than stated in the installation guide.

Starting out at the top of the quick install guide, I see that the installation was timed on a MUCH quicker machine than mine.  When I type in:

grep bogo /proc/cpuinfo

I get a result back of 933.54.  The AMD 2000 1.6GHz system used for this guide is really old but not nearly as old as mine.  The result on the AMD was 3337.81 bogomips.  Hopefully my system ONLY takes 3x as long to install.  This little Celeron system is the same system that wouldn’t install Haiku for some reason.

Moving on down in the install guide, it looks like I already screwed up.  Apparently I should have used some switches at the first boot prompt when I started the system up.  When I booted, I should have type in:

boot: gentoo-nofb nodetect

That would disable X from trying to load and prevent a zillion kernel modules from loading but I think since my system is soooo old and all the drivers for my hardware are extremely mature by now, I didn’t hit any hang ups.  Doing a “ping go.com” at the command line netted me a favorable result so I’m just going to move on and call it good for now.

The first real and destructive step of this install is to partition your disk manually.  Disk druid?  I don’t think so.  It’s all about the fdisk.  On my system, /dev/hda is the hard drive.  I knew this because running a “df” command showed my CD-ROM as /dev/hdc.  So…

fdisk /dev/hda

The installation guide assumes that you know how to use fdisk.  Luckily I do.  I’m going to create three partitions for my installation as suggested.  One 128MB partition for boot where the kernel and lilo or grub will live, swap which I’ll make 256mb and a / (root) partition that uses up the remainder of the space on the drive.  I remembered to change the swap partition type to 82 and set the /boot partition bootable flag.  Now I need to commit the changes and format the paritions:

mke2fs /dev/hda1

mke2fs -j /dev/hda3 (-j for ext3)

mkswap /dev/hda2 && swapon /dev/hda2

Now mount the partitions in their proper locations:

mount /dev/hda1 /mnt/gentoo

mkdir /mnt/gentoo/boot

mount /dev/hda1 /mnt/gentoo/boot

cd /mnt/gentoo

After that, you are supposed to set the clock.  Since I’m on the net, I’ll run:

ntpdate pool.ntp.org

Now onto the less familiar stuff.  I need to wget the stage3 archive from a mirror.  I’m going to skip the step of finding a local mirror and simply use the default location:

wget ftp://distfiles.gentoo.org/pub/gentoo/releases/x86/current-stage3/stage3-i686-*.tar.bz2

This pulled a 130MB file down into the root directory of my freshly formatted hard disk.  Now to unpack it with:

tar -xjpf stag*

After that, I need to snag the latest portage build and unpack that so I can start managing packages:

cd /mnt/gentoo/usr

wget http://distfiles.gentoo.org/snapshots/portage-latest.tar.bz2

tar -xjf por*

Now to the weird stuff.  We need to chroot the filesystem.  Chroot fools bash into thinking that a sub directory is actually your root directory.  This allows you to type and run commands in a sandbox of sorts that shouldn’t be able to effect outside files.  In this case we have booted up a live CD and have sketched out enough of a root file system on our new disk to operate now so it’s time to switch into the new root file system in order to finish building it:

cd /

mount -t proc proc /mnt/gentoo/proc

mount -o bind /dev /mnt/gentoo/dev

cp -L /etc/resolv.conf /mnt/gentoo/etc/

chroot /mnt/gentoo /bin/bash

env-update && source /etc/profile

cp /usr/share/zoneinfo/America/Los_Angeles /etc/localtime

While I’m dealing with the timezone, I’ll “nano /etc/cron.d/clock” uncommenting the TIMEZONE line and changing “factory” to “America/Los_Angeles”  Then I’ll set up the hostname.  This is certainly not the most straight forward process:

cd /etc

echo “127.0.0.1 mybox.at.myplace mybox localhost” > hosts

sed -i -e ‘s/HOSTNAME.*/HOSTNAME=”mybox”/’ conf.d/hostname

hostname mybox && hostname -f

After all that, it’s time to build the kernel.  If you’ve never build a Linux kernel, you will probably find this step extremely overwhelming but hang in there.  You will learn the most about Linux in this single step.  Make use of the help that is embedded in the menuconfig script.  They used to be somewhat of a joke back in the days of the 2.0.X kernel but now most of the helps are actually very helpful.  Generally in the more confusing kernel options, it will say something like “if unsure, say Y(or N)”.  This will let you fake your way through the kernel config for the most part.  Don’t forget, you can always rebuild it later.

Note: The first time I ran through this, I forgot to include second extension filesystem.  This caused a non-bootable system since the /dev/hda1 block device is formatted ext2.  These errors are common and you’ll learn a lot from making them since something may not work correctly down the road.  Don’t get discouraged, just retrace your steps and you shouldn’t have a problem figuring out where you went wrong.  The command “dmesg” can be very helpful if you get booted.  If you DON’T get booted, whatever the kernel is hanging on should be printed on your screen.  On my Celeron 466MHz, a fairly stripped down kernel is taking me 100 minutes to build.  I’m sure yours is MUCH quicker so don’t be afraid to rebuild it a few times.

emerge gentoo-sources

cd /usr/src/linux

make menuconfig

make -j2

make modules_install

cp arch/i386/boot/bzImage /boot/

I would have thought that the next natural step in the installation process would be to install grub or lilo but oddly they have you jump to an entirely different topic which is fixing up the /etc/fstab to make it bootable.  So I need to run “nano /etc/fstab” and change BOOT to /dev/hda1, ROOT to /dev/hda3 and SWAP to /dev/hda2.  I’m skipping the network config for now and crossing my fingers that dhcp will do it’s job.

emerge dhcpcd

Also should install cron, syslog and grub:

emerge syslog-ng vixie-cron grub

rc-update add syslog-ng default

rc-update add vixie-cron default

Now I need to point grub to the kernel image that I built earlier.  Using nano I’ll want to edit /boot/grub/grub.conf.  Something like the following should work just fine for now as a grub.conf file:

default 0

timeout 10

title Gentoo

root (hd0, 0)

kernel /boot/bzImage root=/dev/hda3

After the file is saved, then I’ll run grub and walk through a few commands to write the bootloader to the MBR.  If I screw this up, I can just reboot from the live CD, chroot again and fix it up but let’s hope it just works right the first time:

grub

grub> root (hd0, 0)

grub> setup (hd0, 0)

grub> quit

Now for a final bit of housekeeping:

passwd

Time to see if all the hard work paid off.  I’m going to reboot and snag the CD out of the tray in the process:

exit

umount /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo/boot /mnt/gentoo

reboot

This next part is an account of MY troubleshooting process.  In most cases you will have your own set of problems that are different from mine.

DOH!  Kernel panic.  For some reason, my hard drive that was being detected as /dev/hda when I was installing is now being detected as /dev/sda so the boot loader passes the wrong root parameter to the kernel.  I suspect this is a problem with the way I built the kernel.  For now, I want to get the box running.  Time to go back to the live cd, boot and chroot.  First off, I’m going to install lilo since I’m a bit oldschool and I’m more familiar with it.

emerge lilo

mv /etc/lilo.conf.example /etc/lilo.conf

I edited the lilo.conf to point it at /dev/hda for the spot to write the bootloader but then pointed the root partition to /dev/sda3.  When I tried running lilo, it crapped out with a fatal error since /dev/sda didn’t exist when booted on the live cd.  I can do a quick, ugly thing to fix that:

ln -s /dev/hda /dev/sda

lilo

This successfully wrote the Gentoo option to the MBR.  When I tried to boot however, I still got a kernel panic so I rebooted again and typed the following at the lilo prompt:

gentoo root=”/dev/sda3″ boot=”/dev/sda1″

That seemed to work and the system finally booted!  Not ideal but now I’m to a point where I can troubleshoot without the hassle of using the live CD and chrooting.  Next I edited the lilo.conf to show /dev/sda as the boot device and reran “lilo” at the prompt.  When all of this was done it was time for a reboot and this time everything came up perfectly.

My first task with this newly working system was to bring it up to an entirely current, updated state.

emerge –sync

time emerge -u world

The picture speaks to the fact that this is an old, slow computer but the operation was successful in the end.

Final words

How many other modern, current and fully patched operating systems would legitimately be able to run on this computer?  Not many.  I’m not sure why Haiku wouldn’t run but it may have just been circumstantial.  Installing Gentoo was a bit of an adventure but using Gentoo makes Debian seem both bloated and outdated.

If you have been a casual Linux user and you want to learn WAY more about Linux, installing Gentoo is an excellent way to achieve that goal.  If you are a developer/hacker who always needs the latest and greatest packages at their disposal and doesn’t want to deal with dependency hell, you probably already use Gentoo.

I am currently searching for a 486/66 to add to my small cluster of old hardware.  After I find one, I will probably attempt to install Gentoo on that hardware and I expect to be successful with that endeavor.

Powered by WordPress. Theme: Motion by 85ideas.