Monday, April 12, 2010

Trixbox 2.8 CE install via USB

Bought an  Acer Aspire R1600 for a trixbox install.  Nice small form factor, but no cdrom, so the only install options are via USB or network.

I've used unetbootin for converting ISOs to make bootable USBs before.. never with a problem.  But with trixbox.. not so simple - things "seem" to install, but the system ends up being very broken, as the install scripts won't complete properly.  There is hard-coded reference to cdrom device in the install config files (anaconda/kickstart).   In 2010, its almost inconceivable that there is no install from USB option in trixbox (or asterisknow).  I've been administering linux systems (many distros) since 1996, and I've never had such a difficult time with an install.

I could not find any definitive solution anywhere (even tried the trixbox 2.6 usb install howto, which didn't work - plus its ludicrous that you should need Windows in order to install linux), so I struggled through dozens of reboots until I *finally* got a working trixbox system.

Unfortunately the Aspire R1600 has some proprietary nvidia NIC, which is not supported by the forcedeth 0.60 module which is supplied with trixbox.  I had to find a 0.62 version of kmod-forcedeth which installed on trixbox.  But this is no fault of trixbox, but of Acer for making such a stupid decision on NIC.

Ok, so this is how I did it.  If anyone has a simpler solution, please comment.

1)  Use unetbootin ( http://unetbootin.sourceforge.net/ ) with trixbox 2.8 ce ISO to create bootable USB drive
2)  remove the trixbox directory from USB drive (its not needed, and I only had 1G, so needed room)
3)  copy the trixbox 2.8 ce ISO to the USB drive
4)  on USB drive, edit isolinux/ks.cfg     comment out "cdrom" line

5) place USB drive in target system, and configure BIOS to boot from USB, and boot
6) when grub menu presents, scroll down to "default", and press [Tab] to edit command line
      - change "ks=cdrom:/isolinux/ks.cfg" to "ks=hd:sdb1:/isolinux/ks.cfg" and press enter to boot

  NOTE:  this should work for most.. if you have one drive as sda.. USB drive typcially becomes sdb

7) installer will proceed, but may try to read from sdb1 prior to kernel detecting device.. it will prompt for kickstart file.. you can just retry.. check Alt-F4 for sdb detection.. (Alt-F1 to get back).  Next it will ask for location of ISO... select /dev/sdb1 and continue with install

For me there was complaint about kmod-dahdi, but in the end.. all install scripts executed fine, and the system was completely operational.

NOTE:  I tried the same type of solution with AsteriskNOW, to no avail.. there was a fatal error as it tried to re-mount a mounted filesystem, and installation aborted.