ASusEee is a series of little and handy notebooks. I have one, 900-linux model actually, and I made install PCBSD on external drive -WD Passport 80. On this page I'll explain how I did this, and what struggles I had, and what workarounds I found out.
- Booting from SD card.
Well, plain and simple. got ISO, extract to SD card; when powering Eee pressing Esc - boot menu appears, chose SD card. No boot.
Placed freebsd boot loader to SD - also no boot. Okay, I have Linux version of Eee, so I have GRUB, yes?
For show grub menu we need a little trick - press Esc at start, chose our 1st Hard drive. After that we have countdown from 9,8..1 till boot. We can wait, and can press Esc again for boot. But I suggest pressing F9 fast, and simultinously Esc - if success then we are in Grub. Phew.
Press "c" for grub command prompt. this prompt have tab-complition, like bash; typing:
root (hd2,0) --- hd2 in my case, if you have connected more devices, then you'll need to know what disk is correct one.
kernel /boot/loader --- bsd loader
and here we go! but, not far :(
bsd loader can't find kernel.
We have here to enter two more command:
set currdev=disk2s1 (actually I think loader could guessed itself, but due to some bug, or incompatibility with grub, this var is set to disk2s1' - yes, with quote, I don't know why)
include /boot/loader.rc --- yes, we have well-known boot menu! starting normal mode, and... crushed, as we booted are not from CD.
- Patching files for USB boot.
On our card, or usb-stick we have file /boot/mfsroot.gz. Shortly saying, It's GZipped file mfsroot - file with UFS file system.
I unGZipped it, then mdconfig -af mfsroot and mount /dev/md0 ~/localmfs
Well, I looked at ~/localmfs/etc/rc and found there this:
CDDEV="" CDDEVS="/dev/acd0 /dev/acd1 /dev/acd2 /dev/cd0 /dev/cd1 /dev/cd2" for i in $CDDEVS do # Find the CD Device /sbin/mount_cd9660 $i /mnt >/dev/null 2>/dev/null if [ -e "/mnt/uzip/usr.uzip" ] then FOUND=1 CDDEV="$i" break else /sbin/umount /mnt >/dev/null 2>/dev/null fi done
I changed it to:
CDDEV="" CDDEVS="/dev/da0 /dev/da0s1 /dev/da0s1a /dev/da1 /dev/da1s1 /dev/da1s1a /dev/da2 /dev/da2s1 /dev/da2s1a /dev/da3 /dev/da3s1 /dev/da3s1a /dev/da4 /dev/da4s1 /dev/da4s1a /dev/da5 /dev/da5s1 /dev/da5s1a" for i in $CDDEVS do # Find the CD Device /sbin/mount_msdosfs $i /mnt >/dev/null 2>/dev/null if [ -e "/mnt/uzip/usr.uzip" ] then FOUND=1 CDDEV="$i" break else /sbin/umount /mnt >/dev/null 2>/dev/null fi done
Actually we can not replace CD mount, but append after first block second one, later in PCBSD scripts
Well, is this helps? Yes, now I booted again and see PCBSD installation system! :)
By the way, Installer have Ok-Cancel-buttons below screen, hotkey for Next is Alt-N.
But I couldn't install, PCBSD itself have scripts which mounts CD, and fails, because our card is MSDOSFS, instead of CD9660. I tried to fix them, but they are placed in ISO with symlinks and UZIP-ed, so I couldn't manage it yet.
- Installing manually
Okay, what to do then? edit our mfsroot'ed file /etc/ttys
#ttyv5 "/usr/libexec/getty Pc" cons25 on secure #ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty root" cons25 on secure ttyv6 "/usr/libexec/getty root" cons25 on secure
now, after boot I have two consoles.
In short terms, I fdisked and bsdlabeled and newfsed my external drive, then cd to the new root and lzma -dc /path-where-mounted-card/PCBSD.tar.lzma | tar -vpxf - and extracted kernel.
Reboot, chose my WD in boot menu, boot till PCBSD login. but wait, I didn't have any users here :) CTRL-ALT-F5 or any of them, login as root, add user, change root password, and then back to graphics - CTRL-ALT-F9.
Logged In, and I have PCBSD!!! Without ethernet, wi-fi, camera and suspend-resume.
- Installing wi-fi and ethernet.
Actaully it pretty explained here, so I write my experience a bit later.
- Patch files for correct install.
- Tweaking pcbsd for normal work.
The main problem is that many KDE dialogs have their Ok, Apply below bottom border of screen. This is very bad :(
- Final Post "we have now usb-PCBSD bootable version"
soon I hope :)