Net Booting a Sharp Actius MM10

I picked up a refurbished Sharp Actius MM10 the other day because I’ve badly needed a lightweight PC for some time (I’ve been traveling with both a Mac and a PC recently, and I’ve come close to doing some real damage to my back). This is a great little machine: 2 pounds, and quite a bit of power. (It’s the same system that Emperor Linux uses for their lightweight offering).
The major problem I had was that I couldn’t convince it to boot off the CD-ROM. Read on for complete details about how I got this darn thing to boot.
Update: Do not let Windows XP hibernate–it overwrote the MBR when I let it do this, and I had to netboot again and run LILO.
Update: It wasn’t hibernation–for some reason, the MBR gets overwritten every time I boot into Windows. I think this may be a Windows XP Home (yeah, I know, but I want to see what limitations I can tolerate) behavior. In any case, this page has excellent instructions on launching GRUB from the Windows XP bootloader. Seems to have solved the problem for now!
Using its cradle, I was able to mount the MM10 as a USB drive on my Linux server, create two partitions (/dev/sda5 for the swap, which became /dev/hda5 when I boot it for real; and /dev/sda6 for the root partition, which became /dev/hda6). Then I created the filesystem on /dev/sda6, mounted it, and used cp -ar to copy over everything from an existing Debian installation. After that was done, I set up /etc/fstab:
/dev/hda6 / ext3 errors=remount-ro 0 1 /dev/hda5 none swap sw 0 0 proc /proc proc defaults 0 0 /dev/fd0 /floppy auto user,noauto 0 0 /dev/cdrom /cdrom iso9660 ro,user,noauto 0 0
I also created a lilo.conf for this, but there wasn’t anything I could do, since I had the drive mounted as an external drive, and the view of things from my Linux server was going to be very different from the view of things when it boots its internal hard drive on its own.
However, this little machine is cable of booting off the network, so I did some poking around, and found a copy in the Google cache of an old web page from someone else who got that to work OK. That page led to the SYSLINUX page on PXELINUX, a nice little bootloader that works over the network.
Using the instructions on that page, I set up a Debian system as the DHCP server and TFTP server. Here’s what my /tftpboot directory looks like on the Debian server:
bjepson@debian:~$ ls -lR /tftpboot/ /tftpboot/: total 888 -rw-r--r-- 1 root root 887098 Apr 17 11:57 kernel.boot -rw-r--r-- 1 root root 9952 Apr 17 11:59 pxelinux.0 drwxr-xr-x 2 root root 4096 Apr 17 11:56 pxelinux.cfg /tftpboot/pxelinux.cfg: total 4 -rw-r--r-- 1 root root 56 Apr 17 11:56 default
I created kernel.boot with cp /boot/vmlinuz-2.4.24 /tftpboot/kernel.boot, and I copied pxelinux.o from /usr/lib/syslinux/pxelinux.0. Here are the contents of /tftpboot/pxelinux.cfg/default:
LABEL linux KERNEL /kernel.boot APPEND root=/dev/hda6
I also had to install dhcpd and give my server’s network adapter a static IP address. So here’s what I put in my /etc/network/interfaces:
iface eth0 inet static address 192.168.10.1 network 192.168.10.0 netmask 255.255.255.0 broadcast 192.168.10.255
and here’s what I put in my /etc/dhcpd.conf (you’ll need to set your Ethernet address to whatever your computer’s address is):
allow booting;
allow bootp;
option domain-name "foofoofoo.net";
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.10.0;
subnet 192.168.10.0 netmask 255.255.255.0 {
# Group the PXE bootable hosts together
group {
# PXE-specific configuration directives...
next-server 192.168.10.1;
filename "/tftpboot/pxelinux.0";
# You need an entry like this for every host
# unless you're using dynamic addresses
host hostname {
hardware ethernet 08:00:1f:b1:c1:79;
fixed-address 192.168.10.2;
}
}
}
Next, I plugged both computers into the same hub (one that wasn’t plugged into my network–I didn’t want my AirPort Base Station giving my MM10 an address), and restarted /etc/init.d/network and /etc/init.d/dhcp. Next, I booted up my Actius, pressed F12 when the “Press F2″ message appeared to get a boot menu, and selected Network Boot. I saw the following in my Debian server’s /var/log/daemon.log, and the next thing I knew, my MM10 had booted into Linux:
Apr 17 12:17:20 debian dhcpd-2.2.x: DHCPDISCOVER from 08:00:1f:b1:c1:79 via eth0 Apr 17 12:17:20 debian dhcpd-2.2.x: DHCPOFFER on 192.168.10.2 to 08:00:1f:b1:c1:79 via eth0 Apr 17 12:17:22 debian dhcpd-2.2.x: DHCPREQUEST for 192.168.10.2 from 08:00:1f:b1:c1:79 via eth0 Apr 17 12:17:22 debian dhcpd-2.2.x: DHCPACK on 192.168.10.2 to 08:00:1f:b1:c1:79 via eth0 Apr 17 12:17:22 debian in.tftpd[4424]: connect from 192.168.10.2 Apr 17 12:17:22 debian tftpd[4424]: Trivial FTP server started (0.6) Apr 17 12:17:22 debian tftpd[4426]: Serving /tftpboot/pxelinux.0 to 192.168.10.2:2070 Apr 17 12:17:22 debian tftpd[4427]: Serving /tftpboot/pxelinux.0 to 192.168.10.2:2071 Apr 17 12:17:22 debian tftpd[4428]: Serving /tftpboot/pxelinux.cfg/C0A80A02 to 192.168.10.2:57217 Apr 17 12:17:22 debian tftpd[4429]: Serving /tftpboot/pxelinux.cfg/C0A80A0 to 192.168.10.2:57090 Apr 17 12:17:22 debian tftpd[4430]: Serving /tftpboot/pxelinux.cfg/C0A80A to 192.168.10.2:56963 Apr 17 12:17:22 debian tftpd[4431]: Serving /tftpboot/pxelinux.cfg/C0A80 to 192.168.10.2:56836 Apr 17 12:17:22 debian tftpd[4432]: Serving /tftpboot/pxelinux.cfg/C0A8 to 192.168.10.2:56709 Apr 17 12:17:22 debian tftpd[4433]: Serving /tftpboot/pxelinux.cfg/C0A to 192.168.10.2:56582 Apr 17 12:17:22 debian tftpd[4434]: Serving /tftpboot/pxelinux.cfg/C0 to 192.168.10.2:56455 Apr 17 12:17:22 debian tftpd[4435]: Serving /tftpboot/pxelinux.cfg/C to 192.168.10.2:56328 Apr 17 12:17:22 debian tftpd[4436]: Serving /tftpboot/pxelinux.cfg/default to 192.168.10.2:56201 Apr 17 12:17:22 debian tftpd[4437]: Serving /tftpboot//kernel.boot to 192.168.10.2:56202 Apr 17 12:22:22 debian tftpd[4424]: atftpd terminating after 300 seconds
There was a lot more to configure, and there will be a lot more for the next few days, but at least I was booted up. For X11, the trackpad, and more, I suggest you have a look at John Lee’s Gentoo Linux on the Sharp Actius PC-MM10 web page, which has plenty of info on getting the hardware working.
July 3rd, 2007 at 7:23 pm
I also have a POS Actius MM-10. One day a long time ago I went to power it on and the green light blinks and orange started flashing. Thats all it does now. I have replaced the main board, the hard drive.. basically everything. Any suggestions since Sharp wont help? I am desperate at this point
February 6th, 2008 at 8:37 pm
Hey Lore, did you ever figure out what was wrong? I have 2 broken sharp MM10 and I have swapped out parts and I get the same problem. One had a broken screen, the other a bad HD. Thats it, now all I get is green light blinks and orange starts blinking faster. Let me know if you came up with something. email me at payment1@gmail.com
March 13th, 2008 at 8:48 pm
do you still have those Actiusmm12?
April 24th, 2008 at 10:13 am
I have an MM10 with the fast blinking battery light too.. what does that mean??? The hard drive is working, I know that much. I can access it from the cradle.
May 6th, 2008 at 2:45 pm
Hi guys
I have an actius mm10 and I need to replace the hard drive and re-install WinXP from scratch. Could you give some tips on how to go about this please?
Thanks
July 8th, 2008 at 3:21 am
Hello,
Did anyone ever figure out this flashing light / no power on problem on the Actius PC-MM10? Please let us know….