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.

7 comments:

  1. Thanks for the easy tutorial!

    For some reason, following this tutorial, the installation wirites the Grub Loader in the MBR of the Flash. It also sets the /boot/grub/device.map file pointing hd0 to the flash and when you pull the Flash out, you can’t boot. I got a message saying "Error loading Operating System". You can fix this by putting the usb flash back in and booting trixbox from it. Once logged in as root enter:

    more /boot/grub/device.map

    You should see your hard drive and flash drive. You then need to install grub on the MBR of your hard drive:

    grub-install /dev/hda

    or if you have a solid state drive:
    grub-install /dev/sda

    Then make changes to your /etc/grub.conf file to look like this:

    default=0
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz

    1.hiddenmenu

    title trixbox (2.6.18-53.1.4.el5)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-53.1.4.el5 ro root=LABEL=/
    initrd /initrd-2.6.18-53.1.4.el5.img

    ReplyDelete
  2. i'm a newbie here, I'm trying to figure out where to enter those commands. i get a kernel error notification when I type in:

    - change "ks=cdrom:/isolinux/ks.cfg" to "ks=hd:sdb1:/isolinux/ks.cfg" and press enter to boot

    in addition, if I skip that step, i'm prompted for the ks file. what should I type? Its not proceeding after I type the location of the USB flash


    Thanks,

    Daniel

    ReplyDelete
  3. Regarding step (6), the only thing you change is "cdrom" to "hd:sdb1". IE. when you press Tab to edit the boot command, you should already see "ks=cdrom:/isolinux/ks.cfg".

    If /dev/sdb1 is your USB partition, this command will work. If it is not, then you have to determine where your USB partition is being mounted. You can check by pressing Alt-F4 and viewing kernel output (and get back pressing Alt-F1).

    Admittedly this is not a procedure for newbies, since any number of other issues may arise during the process. Its a shame that this isn't any easier.

    ReplyDelete
  4. I also have a R1600 and followed you steps and everything appears to be working, except the NIC. I am very green with Linux. How do I get and install the 0.62 version of kmod-forcedeth?

    ReplyDelete
  5. On a seperate system, download this rpm:

    http://elrepo.org/linux/elrepo/el5/i386/RPMS/kmod-forcedeth-0.62-1.25.2.el5.elrepo.i686.rpm

    and copy it to usb key.

    Insert usb key to R1600. Mount it and install the rpm.

    eg.

    mount /dev/sdb1 /mnt
    cd /mnt
    rpm -i kmod*rpm

    Then add the following to /etc/modprobe.conf:

    alias eth1 forcedeth

    (if its not already there) and configure the interface. If you google around you'll find out how.

    ReplyDelete
  6. Thanks for sharing its installation, also upload a tutorial...i'll be very thankful to you..!!
    trixbox resellers in UK

    ReplyDelete
  7. All the process of installation you have shared is just amazing but if you upload its tutorials or some screen shots it will be more helpful..

    trixbox pbx | Business phone system

    ReplyDelete