modemsurfer, the ultimate serial machine

The 600x repair project is getting there, and after I installed an OS on it, it finally becomes a usable machine. I decided to go for Void Linux, after installing additional RAM it can boot the distro

This text was being written as I was installing the OS, the repairs were filmed but this was not. In fact, having an editor open on another computer where you can just dump your thoughts is a pretty nice way of writing these posts... And so the rest of it is just the file I worte, HTML formatted for your viewing pleasure

Hardware changes

Replaced the failed BIOS battery, currently fitted 130496 kiB of RAM total. New bios battery is a cr2032 in a holder, the holder is placed in the cavity after the main battery, works for now. I've fitted a 180G SSD with a small ide44-sata adapter. The SSD, which is the aluminum chassis model Intel makes, is too big so about 5mm of the disk sticks out of the laptop. Unfortunately, the SSD's PCB takes all the space in the chassis so de-casing the SSD does not help. Ill probably get a smaller (maybe SanDisk? they seem to make ssds with smalled PCBs) SSD to decase and hide completety. A small piece of foam was put in place to keep the SSD from flapping around.

At first I tried installing Slackware (I had a 41.1 i386 CD laying around from previous Slack adventures) but the system had serious issues with the serial port (it would not detect the onboard one, and ttyS0 would be listed as "unknown" in setserial(8) ).

Installation of Void Linux went as usual apart from not selecting to install the bootloader. No repartitioning was done since I already did that when installing Slackware 14.1 (as I said, the reason im instaling Void isthat Slack couldn't detect the one and only serial port in this laptop)

The partition table is below

Next up before rebooting I mounted /dev/sda1 in /mnt/boot (it was not mounted by the installer) and installed GRUB there.

# grub-install /dev/sda --boot-directory=/mnt/boot
Bootable flag set check, grub installed, we can reboot.

aaaand.... we have a grub shell.. thats something. The previous attempt to install a bootloader via the install program ended up with the loader spitting out garbage on the screen and haning the system.

How to boot linux from a GRUB shell

grub> ls
(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (fd0)
* note that on this machine it waits a little after listing fd0, probably
* tries to find a partition table on the non-existent fd0 (it's an external 
* drive I don't have and the BIOS seems to be OK not reporting lack of it)
grub> linux (hd0,msdos1)/vmlinux-4.0.1_1
grub> initrd (hd0,msdos1)/initramfs-4.0.1_1.img
* above command takes a while
grub> boot
Decompressing Linux.....

:) bang, were up. Or not.

Dropped into a dracut:/# shell, wtf. OK. Let's try again. Boot CD, mount sda1 in /mnt/boot, run grub-mkconfig. Yeah. The config is an important part of the process

# mkdir /mnt/boot
# mount /dev/sda1 /mnt/boot
# grub-mkconfig -o /boot/grub/grub.cfg
# reboot
* open the cd tray

I mean i could just keep booting this thing off CDs but its so slow and noisy this way... I think that's like 5th or 6th reboot this evening.

That seems to have fixed the issue. We now have a boot menu with the last two entries being the right ones (grub-mkconfig detected the system running off the CD, and added it.)

I call it a day. This is a working Linux system installed on an SSD in a Pentium III laptop. The only thing left to do is to edit out the wrong options in the grub.cfg file, now located in /boot/grub/grub.cfg

It boots up! Lovely.

This part is a Void-related part

# cd /boot/grub
# cp grub.cfg grub.cfg.old
# grub-mkconfig -o grub.cfg
# cd 
# xbps-install -S
* syncs repo data *
# xbps-query -Rs pico
* several packages appear
# xbps-install picocom
* installs....

Awesome. The computer is ready. The only thing left to do is to set up the consolefont since GRUB set the VGAmode to use the native resolution and the letter are a bit too small. Uncommenting

in /etc/rc.conf fixed that issue.

Mouse works even. Thats awesome. I broke out the old 3 btn serial one for shits and giggles.

# gpm -m /dev/ttyS0 -t mman
installing: picocom, screen, elinks, curl, wget.

More stuff

lspci output:

00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
00:02.0 CardBus bridge: Texas Instruments PCI1450 (rev 03)
00:02.1 CardBus bridge: Texas Instruments PCI1450 (rev 03)
00:03.0 Communication controller: LSI Corporation L56xM+S [Mars-2] WinModem 56k (rev 01)
00:06.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (rev 01)
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.2 USB controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
01:00.0 VGA compatible controller: Neomagic Corporation NM2360 [MagicMedia 256ZX]
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (rev 10)

Note that the last line, the Ethernet controller is a PCMCIA card. The laptop does not have one built in.

The Mars Winmodem has good support under linux, but I haven't gotten around to setting that up.

lsusb output

Bus 001 Device 002: ID 0781:5567 SanDisk Corp. Cruzer Blade
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

The laptop has one USB port on the left side. You can see the pendrive I'm using to transfer files.

Back to homepage