The Fujitsu LifeBook P1120
06 May 2021 - faintshadows
So I had recently (4 days ago as of this writing) gotten a new (to me) Fujitsu LifeBook P1120. It’s a tiny little laptop, and is special in that it doesn’t use a Intel or AMD processor, it uses a Transmeta Crusoe. It’s a x86 “compatible” CPU, and even though it came out in the early 2000s, it’s more like a really fast Pentium 1 with MMX capabilities. Not even Pentium Pro or Pentium II. Spoiler: it sucks haha.
I’m writing this as I go through the process, so it is not at all consice and to the point. You, the reader, get to follow me though this… Experience.
But before we get to that, some specs.
- CPU: 800MHz Transmeta Crusoe TM5800
- RAM: 256MB soldered on
- GPU: ATi Radeon Mobility M6 (R100 chip I believe)
- ETH: Realtek RTL-8139
- WLAN: Intersil Prism 2.5 Wavelan
- SND: ALi M5451
- HDD: 30GB*
- DISP: 8.9” 1024x600 LCD (with touch!)
*I had originally put a 40GB drive in, but it had weird issues so after this I moved to a 30GB
This came out around 2004 and that’s okay I guess for the time. I got this for the Crusoe and it was only 30$ shipped on eBay.
I wasn’t intersted in running Windows on it, so I was going to try something like AntiX on it, see how that goes. Turns out, badly!
This is where the pain begins, 4 days of pain. It knows no bounds.
There’s no CD drive, and USB is USB 1.1 and not bootable. “Ok then” I said, we’ll just boot off the network. I already have a nice PXE boot setup going, just use that. Turns out, AntiX doesn’t have the ability to boot over the network. But, I did have the Plop boot manager on PXE, and that would then allow me to boot from USB. Slowly. But it did, and I was fine, it formatted the drive, and copied everything over. It then got to installing GRUB, and locked up. Oh no.
I’ve tried so many distributions now I can’t even remember them all. But notable ones are Puppy Linux, the Slacko variant installed fine and ran okay, but! It runs a 3.x kernel and seems to not be updated. So I decided to not use that anymore, and use something else. Besides, how Puppy works by running everything as root is kinda offputting.
At this point I was trying to not use Gentoo. I tried so hard… So I went to just straight Slackware, this time a daily build of the -current tree, since that’ll have a new kernel and new everything. That was the goal, I just wanted to have a small little Linux box to play with.
Slackware kernel panics almost instantly. Wonderful. So I tried Devuan, the install failed. It had to boot into low memory mode, which ok, it only has 256MB so that’s expected. It slowly (remember, USB 1.1) progressed, then during the package installs, had some dependency issue and failed. Debian I tried as well, not the same issue but also failed.
Next I decided lets see if ANYTHING works on this, so I was going to install Windows 2000, since the COA on the bottom of the laptop has a key for that. But no CD drive, and Windows 2000 doesn’t really like to boot off a USB drive, at least in my time trying it. So I grabbed another laptop, a Toshiba Satellite 1800-S253. Used a seperate hard drive Installed Windows on that, and after getting to the desktop, put the hard drive back into the Fujitsu. Got all the drivers installed and it works. Not what I wanted but we have a working install of SOMETHING.
After that I thought about the Arch 32 bit port, again not what I really wanted, I wanted a systemd-free distribution. That requires an i686 CPU.
Now about that. You’d think from something of this age it would have SSE or SOMETHING right? Nah, MMX only. Like I said at the beginning here, this Crusoe is basically a very fast Pentium 1 with MMX. That’s i586.
Nothing remotely new supports i586. Except… Gentoo.
I tried booting the Gentoo livecd image, but that failed too. Not because
of i586, but because it couldn’t find the boot USB. I thought that was
that, but it was suggested to me that I make a chroot of the Gentoo
install. So I looked up how to do that, pretty easy, set it up, got
everything installed and updated. Made a kernel, all that. Then I tar’d
up the root folder, and untar’d it to the hard drive. Got EXTLINUX
installed (not a fan of GRUB myself, so if I can avoid using it I will)
"This kernel requires an i686 CPU."
I was so done at that point, but thanks to some other crazy person
doing this EXACT same thing on another Crusoe on the Gentoo forums,
changing the CPU type in the kernel config from Crusoe to Pentium-MMX
and making sure make uses ‘-mcpu=i586 -mmmx’, it boots. It actually
5.4.38 kernel on a Transmeta Crusoe.
I have my chroot setup to make binaries of every package it installs, and the Fujitsu set to be able to install those, I would never EVER compile something on that thing. That usually works, though I have been having some issues with it crashing, always when I’m installing something. Haven’t been able to figure out why, but I have an idea, that I’ll get to later. Everything was mostly working, no wifi, but the drivers were there in kernel and working, I just didn’t set it up. This day (day 3) was getting X running. Oh how terrible of an idea that was. Hours of kernel recompiles and config changes later, I came to the conclusion that the ATi card in this is just too old. It’s an R100 chip which is the very oldest chip the kernel radeon driver supports. Oh well. I’ll just use fbdev to just use the framebuffer. That also didn’t work then, but I did get it working.
I had one other idea, dual boot Windows 2000 and an older Linux on
that second hard drive I had for this. I chose Ubuntu 10.04 since I
have the entire apt repository for that (another story).
Same thing, no CDs. But I couldn’t get the USB to boot either! I tried
the desktop and alternate versions of it, nothing. Eventually I remembered
that I have a 2007 MacBook that has Ubuntu 10.04 on it. I booted that up,
and used the media creation tool on there to make USBs. That worked no issue.
Perfect. I went to install and, even though the installer complained that the
partition tables couldn’t be updated after it resized the Windows 2000 partition
to makeroom for Ubuntu, it did install fine. But when I rebooted. Oh boy.
It took 5 minutes to get to the login screen, and after logging in,
another 5 minutes go, and the screen goes black with just the mouse
pointer. It froze, and the keyboard LEDs are flashing. Kernel crashed.
Figured it was trying to run CPU instructions that the Crusoe just didn’t
have. So I reboot, and try failsafe GNOME. That worked! But it was just
so unbearably slow. I got to the point where I could open a terminal
and I typed
free -m to see what the memory usage was, but right
as I pressed ‘m’, the screen went black and it rebooted. Crashed, AGAIN!
At this point I’m done, it’s like 2AM. But I tried one more boot, and
got into normal, non failsafe GNOME. Once it got to the desktop, and
I had to dismiss the errors about panel elements crashing, I checked
again and the memory usage was 224MB. Of 228 total. This was horrible.
I went back to Gentoo and some kernel poking later, I got fbev working. Finally. It runs slow, but it’s something. I was just going to be using it for XTerm and Xfe, no games or 3D anything. Speaking of XTerm, I can’t get it installed! Every time I try to emerge the binary of it, it kernel panics! That brings me to my theory. Transmeta LongRun is the equivalent to Intel’s SpeedStep, the dynamic CPU frequency thing. It’s possible that having that enabled is causing it to slow down, which changes the timing of instructions, and things happen out of order, or otherwise get all messed up. I will be making a kernel without it and testing it later.
So here we are, day FOUR of this. (Current day as of writing this now) Now that Gentoo is working, at least to a somewhat usable point. I decided that, because switching hard drives requires unplugging and replugging a ribbon cable, that it shouldn’t be stressed any more, so I’ll do some partition resizing and dual boot Gentoo and Windows 2000 on the 40GB drive I have.
I put the Windows 2000 hard drive into that Toshiba from earlier, and made a clonezilla image of the partition. That was the easiest part of the day so far.
I couldn’t boot GParted Live on the same Toshiba, so I grabbed my OTHER one, a Satellite 1135-S155, with a newer Celeron (around the same time as the Crusoe if I recall). That also had the same issues, but I was able to figure out that it was to deal with X. Of course it’s X. I tried going through the CD’s X setup, and was presented with a wonderful corrupted image, but usable enough that I still ran it and resized and moved the partitions successfully. So the plan now is to restore the Windows 2000 image to the newly free partition of this drive and (reluctantly) overwrite EXTLINUX with GRUB since SYSLINUX has some issues booting Windows loaders it seems.
Putting the drive back into the Fujitsu, Gentoo still boots! Finally, something works right! I had taken a backup of the root folder on the Gentoo install just in case.
After waiting forever, clonezilla didn’t automatically shut off like I had asked it to, and it said if I wanted to retry. I checked and all the files were there, so I guess it still didn’t get a good enough restoration, so I ended up just reinstalling Windows 2000 again. Since I still had access to the files on the drive, I was able to just grab all the drivers and program installers I had copied over to it, so I can just put them back when it’s reinstalled, in case I can’t just reuse the existing format on the partition.
Turns out, that when people say you always install Windows FIRST before Linux is very true, the whole disk became unbootable. So now, glad I made a backup of the root partiton of Gentoo, I am reinstalling Win2K. Again. 3rd time’s the charm.
Hah, as if it would work. Got Windows 2000 all installed, it booted on the other laptop, put it in the Fujitsu? Nothing. Amazing.
When I first started having consistent issues with this, it was brought up that the hard drive I was using may be an issue. So, since the other drive I was using with this already had a working win2k install, and the Ubuntu partitons next to it, I’d wipe the Ubuntu part and put my backup of Gentoo there. It would fulfill the “install Windows first” requirement. I’ll have to reinstall GRUB though, since I use a separate /boot partition and it would be a newer version of GRUB anyways…
After extracting the backup, chrooting in, and reinstalling GRUB, we reboot. GRUB shows up, good. Gentoo boots. Better… Until it crashed! At dhcpcd! Why!! I tried rebooting with the .old kernel, and that worked so it may have been something wrong with the other kernel on there. Though all I changed was adding NTFS read support… Could still be the LongRun problem, not sure! After a reboot again on the normal kernel it works fine! Definitely not stable enough for use.
Now we reboot to check Windows 2000. IT BOOTS! The saga is over, for now. I have two working OS installs, and they (mostly) work, I still need to fix Gentoo’s issues but I can always fall back to Windows 2000 if I just want to do something with this.
EDIT: Right as I was closing this up and proclaiming my success to my friends, Windows crashes and didn’t reboot. I’m at a loss, I have no idea what it is, if WINDOWS crashes something’s really wrong. Perhaps it’s a thermal issue, since usually if I let it sit for a while, it’ll work fine again. Maybe one day I’ll see how to take it apart and see how the TM5800 is cooled (if at all) and see what I can do to improve it.
(UPDATE: 23/07/2020) It still works to this day, I have run full updates on Gentoo a few times with no issues. I have definitely determined that the random crashing is most likely due to a heat issue, which I can’t do much about, other than limiting what I do on it to things that don’t pin the CPU for long periods of time. In Windows 2000 at least, I can force the CPU into a power saving mode. In Gentoo though, the tools are there but they don’t work. I also have given up on using the radeon drivers, and only run X with fbdev support. It gets impressive battery life for how old the battery is, about 3-4 hours in my limited testing, though it’s most likely more as I haven’t drained it completely (it usually has heat issues and crashes before that happens).
I did take apart the laptop, there is no fan whatsoever, and the CPU is connected only by a foam pad (that really doesn’t look like it is thermally conductive at all) to metal shielding. It’s sad, and I could possibly replace that, but I don’t use it enough to really justify taking it apart again.
– faintshadows @ faintshadows.xyz