Welcome Guest, Not a member yet? Create Account  




Question Install on CF on ALIX / PCEngines Board

#1

Hi

I found several guides on how to install Vyatta on a compact flash.
Basically it's all about using a virtual machine and mounting the CF as the installation disk.
I tried now with Windows VMWare Workstation, Mac OS X FUsion and Virtualbox without any luck, I never seem to be able to mount the CF as a disk, so the vm doesn't even start.

Has anyone been able to get this accomblished with a VyOS image?

Thanks

Andre
Reply

#2

In Linux terminology, can you pass through the raw block device as a HDD (i.e. /dev/sdX) ?
Reply

#3

Hi

I think I'm lost here.
If you mean booting from USB Stick with the ISO and the mount the CF, then no, for whatever reason the ALIX board doesn't support booting via the two USB Ports
Reply

#4

No, sorry I wasn't clear. Using some form of virtualisation (vmware workstation, fusion, whatever), can you pass through your CF 'device/disk' to the virtual machine. Then when you power on, it boots from ISO and might see the CF as a HDD for installation. Hope that helps?

Regards,

Chris
Reply

#5

Virtualbox will allow you to pass the USB device directly to the VM
Reply

#6

Hi


can't believe it's that easy ..

installation itself worked fine on the CF, but when I stick it into the ALIX board, it boots into grub but then I get:

Booting 'VyOS 1.1.5 linux (KVM console)'

[ 3.395577] i8042: No controller found


any additional hints?

thanks

Andre
Reply

#7

Hi,

Back in 2012ish I built my own Vyatta router based on PC Engines alix2d13. I too read about using a virtual machine to build the CF image but never tried it. The article I read was on the Vyatta forums but courtesy of Brocade that article and many many more and knowledge has disappeared into the ether. 'Your Bad' Brocade.

Also rather than go down the CF route I elected to buy two 4GB IDE disk-on-modules from InnoDisk. These lay horizontally and have master/slave switches and can be stacked, the HF model has male and female connectors on opposite sides of the board. These allowed me to install on to a RAID1 setup. This is expensive compared to installing on a CF disk - so why did I do it? 'Cause I could ;) The unfortunate consequence of this is that the CF card slot is disabled :(

EDC 4000 44pin HF 4GB (DE4PF-04GDB1C1DR)
EDC 4000 44pin HB 4GB (DE4PB-04GDB1C1DR)

The method I chose was to PXE boot the router and load Vyatta that way. Now hold on there good buddy, there's a problem so don't go running off to build your own TFTP server just yet. Since Vyatta 6.2 and on (and this includes VyOS) there is an issue with PXE booting the Vyatta/VyOS live CD. Just after mdadm sorts itself out the kernel gets its knickers in a bunch and 'kernel panics'. Looking at debug logs it appears that it is because it is unable to mount/find the file system. Conclusion, Vyatta did something to vmlinuz1 or initrd1.img between 6.1 and 6.2 when they were renamed them to vmlinuz and initrd.img. Note the the dropping of the '1' suffix.

I did discover a work around to this and scratching the back of my mind (it was 3 years ago), you will need to build a tftp server (if you don't already have one, configure it to PXE serve Vyatta 6.0 or 6.1, install Vyatta on your PC Engines based router, add a system image for Vyatta 6.4 and finally using the VyOS Migration Guide install VyOS, et voila one VyOS based PC Engines router. You will also need to be able to connect to the RS232 port on the alix motherboard in order to install and configure Vyatta for the first time.

Over the past week I have been refreshing my mind with Virtual hardware under VMware Workstation 11. And this is what I did;


1. Build a gash/temporary Debian 8.1 Linux server.
Why Debian? Just because I can and Vyatta/VyOS are Debian based.

1.1 Create a new VMware guest based on Debian 7.x 64-bit hardware profile. I then deleted the sound card, Printer and USB components.

1.2 Down load the 64bit netinst iso image debian-8.1.0-amd64-netinst.iso from your local Debian mirror.

1.3 Mount the CD image and boot.

1.4 Debian install: I followed the installation and when it asked for options I dropped the Debian Desktop environment ('cause real men and operating systems have character - go VMS) and the Print Server. I did add the SSH Server option.

1.5 If you want to test the set-up without abusing your alix router, create another VWmare guest but this time use Workstation 9 and the Debian 6 profile and configure an IDE based disk. Again deleting the sound card. (I tried Workstation 11, but there appears to be some sort of hardware issue – 'T0' re-spawns too frequently and is disabled for 5 minutes at a time. This happens on a regular basis but it still works.)


2. Configure the PXE server.

2.1 Logon and switch to root. The base install does not install sudo so you will have to su to the root account.

2.2 Install all the bits and pieces that we will need
Code:
apt-get update
apt-get install tftpd-hpa isc-dhcp-server syslinux pxelinux nfs-kernel-server

2.3 TFTP setup
Check the tftpd-hpa configuration
Code:
more /etc/default/tftpd-hpa

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

2.4 DHCP setup
Rename the as installed dhcpd.conf file out of the way
Code:
mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf-orig

Create a new dhcpd.conf file from scratch
Code:
vi /etc/dhcp/dhcpd.conf

default-lease-time 600;
max-lease-time 7200;

allow booting;

option domain-name "MyDomain.net";
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.110.255;
option domain-name-servers 192.168.110.99;
option routers 192.168.110.99;

subnet 192.168.110.0 netmask 255.255.255.0 {
        range 192.168.110.3 192.168.110.4;
        option broadcast-address 192.168.110.255;
        option routers 192.168.110.99;
        option domain-name-servers 192.168.110.99;
        filename "pxelinux.0";
}

# The above will PXE boot any client that asks, if you want to limit who or what
# tftpd responds to you will need uncomment the next section and supply
# ethernet hardware addresses (MAC address) for the select few.

#group {
#        next-server 192.168.110.18;
#        host tftpclient {
#                hardware ethernet 00:50:56:34:F2:24;
#                filename "pxelinux.0";
#        }
#        host pxe-32 {
#                hardware ethernet 00:50:56:35:C1:5F;
#                filename "pxelinux.0";
#        }
#}

2.5 NFS server set-up
Modify the nfs export file
Code:
vi /etc/export

# /etc/exports: the access control list for file systems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/srv/nfsroot/vyatta/6.0/i386    192.168.110.0/24(ro,async,subtree_check,no_root_squash)
/srv/nfsroot/vyatta/6.1/i386    192.168.110.0/24(ro,async,subtree_check,no_root_squash)
Append either or both of the references to vyatta 6.0 or 6.1. Yes they are a bit long winded but if you want to keep this tftp server you can the easily add other operating systems e.g. /srv/nfsroot/debian/8.1.0/amd64 etc.

2.6 PXE set-up - Part 1
At this stage we just need to copy the required base files into the tftp directory and create the pxelinux.cfg directory
Code:
cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp/
cp /usr/lib/syslinux/modules/bios/{menu.c32,libutil.c32,ldlinux.c32} /srv/tftp/
mkdir /srv/tftp/pxelinux.cfg

2.7 Load Vyatta Live CD files into the NFSroot area.
Unload the CD
Code:
eject

Connect the VMware guests' CDRom to the Vyatta 6.0 or 6.1 ISO image.
Mount the cdrom
Code:
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom

Create the required nfs file structure
Code:
mkdir -p /srv/nfsroot/vyatta/6.0/i386/.disk

Create the required tftp file structure
Code:
mkdir -p /srv/tftp/vyatta/6.0/i386/live

Copy the CD
Code:
cp -r /mnt/cdrom/* /srv/nfsroot/vyatta/6.0/i386/
cp /mnt/cdrom/.disk/* /srv/nfsroot/vyatta/6.0/i386/.disk/
cp /mnt/cdrom/live/{vmlinuz1,initrd1.img} /srv/tftp/vyatta/6.0/i386/live

2.8 PXE setup - Part deux
We want to do a proper job and create a decent boot menu.

Create the default pxelinux config
Code:
vi /srv/tftp/pxelinux.cfg/default

SERIAL 0 9600 0
CONSOLE 0
TIMEOUT 60
ONTIMEOUT live
PROMPT 0
NOESCAPE 1

UI menu.c32

MENU VSHIFT 2
MENU TIMEOUTROW 19
MENU HELPMSGROW 21
MENU CLEAR

MENU TITLE Vyatta Live (i368)

LABEL BootLocal
        localboot 0
        TEXT HELP
        Boot from local hard disk
        ENDTEXT

LABEL live
        MENU LABEL Live (quiet)
        MENU DEFAULT
        KERNEL vyatta/6.0/i386/live/vmlinuz1
        APPEND boot=live quiet netboot=nfs nfsroot=192.168.110.18:/srv/nfsroot/vyatta/6.0/i386 initrd=vyatta/6.0/i386/live/initrd1.img ramdisk_size=32768 console=ttyS0 console=tty0 nopersistent noautologin nonetwork nouser hostname=vyatta
        TEXT HELP
        Launch Vyatta 6.0 (i386) live environment on tty0
        ENDTEXT

LABEL live-console
        MENU LABEL Live Console (noisy)
        KERNEL vyatta/6.0/i386/live/vmlinuz1
        APPEND boot=live netboot=nfs nfsroot=192.168.110.18:/srv/nfsroot/vyatta/6.0/i386 initrd=vyatta/6.0/i386/live/initrd1.img ramdisk_size=32768 nopersistent noautologin nonetwork nouser hostname=vyatta
        TEXT HELP
        Launch Vyatta 6.0 (i386) live environment on tty0
        ENDTEXT

LABEL live-serial
        MENU LABEL Live Serial (noisy)
        KERNEL vyatta/6.0/i386/live/vmlinuz1
        APPEND boot=live netboot=nfs nfsroot=192.168.110.18:/srv/nfsroot/vyatta/6.0/i386 initrd=vyatta/6.0/i386/live/initrd1.img ramdisk_size=32768 console=ttyS0 nopersistent noautologin nonetwork nouser hostname=vyatta
        TEXT HELP
        Launch Vyatta 6.0 (i386) live environment on ttyS0
        ENDTEXT

LABEL live-debug
        MENU LABEL Live Debug (noisy)
        KERNEL vyatta/6.0/i386/live/vmlinuz1
        APPEND debug verbose boot=live netboot=nfs nfsroot=192.168.110.18:/srv/nfsroot/vyatta/6.0/i386 initrd=vyatta/6.0/i386/live/initrd1.img ramdisk_size=32768 console=ttyS0 console=tty0 nopersistent noautologin nonetwork nouser hostname=vyatta
        TEXT HELP
        Launch Vyatta 6.0 (i386) live environment on ttyS0 and tty0 in
        Debug mode
        ENDTEXT
The APPEND line options MUST appear on a single line i.e. everything between and including APPEND and 'hostname=vyatta' is on a single line.
This will present a pretty coloured boot strap menu.
The above is based on the normal menu you would see if booting from the CD itself. The original file can be found at
Code:
/mnt/cdrom/isolinux/isolinux.cfg.


3.0 Lets get this show on the road

3.1 restart the tftp daemon
Code:
/etc/init.d/tftpd-hpa restart

3.2 restart the dhcp daemon
Code:
/etc/init.d/isc-dhsp-server restart

3.3 restart the nfs kernel server daemon
Code:
/etc/init.d/nfs-kernel-server restart

Check that the nfs volumes are available
Code:
showmount -e 192.168.110.18

Test mount the nfs volume
Code:
eject
mount 192.168.110.18:/srv/nfsroot/vyatta/6.0/i386 /mnt/cdrom
ls -la /mnt/cdrom
umount /mnt/cdrom

3.4 Boot the test hardware
You should see a menu offering BootLocal, Live, Live Console, Live Serial and Live Debug options. The 'Live' option is what the Vyatta CD defaults to when booting from the CD directly.


4 Installation

4.1 Install Vyatta 6.0
Configure the live environment as usual to get the network running before executing install-image. The installation will give you the opportunity to copy the live/running config, accept this and the alix router should be configured and you can login via the network.
Don't forget to set-up the root account and enable the SSH service.

4.2 Add System image for Vyatta 6.4
You will need to ftp or wget the Vyatta 6.4 ISO image on to the router.
Code:
wget http://dsstymm.ophion.feralhosting.com/vyatta-livecd_VSE6.4-2012.05.31_i386.iso

Add the image
Code:
add system image vyatta-livecd_VSE6.4-2012.05.31_i386.iso
This may barff with some Xattrs error, ignore this as 6.4 sorts it out.

Reboot the router into Vyatta 6.4

4.3 Migrate to VyOS
Use the Migrating From Vyatta guide to install VyOS
Code:
wget http://vyos.net/so3group_maintainers.key
sudo apt-key add so3group_maintainers.key
add system image http://0.uk.mirrors.vyos.net/iso/release/1.1.5/vyos-1.1.5-i586.iso

4.4 Reboot
Reboot and you will now have a VyOS 1.1.5 (i386) router :) :)

4.5 Tidy Up
Remember you still need to login as vyatta at this stage.

Remove the Vyatta images for 6.0 and 6.4
Code:
delete system image VC6.0-2010.06.01
delete system image VSE6.4-2012.05.31

Your user account will still be vyatta, use the configuration tool to add vyos and delete vyatta.
Code:
configure
set system login user vyos level admin
set system login user vyos authentication plaintext-password vyos
commit
save

logout and login again but this time as vyos
Code:
configure
delete system login user vyatta

Change the host name
Code:
set system host-name vyos

Change the package repo.
Code:
set system package repository vyos components 'main'
set system package repository vyos distribution 'helium'
set system package repository vyos url 'http://packages.vyos.net/vyos'
delete system package repository community
commit
save

4.6 Job done.


5 Where can I get Vyatta 6.0, 6.1, and 6.4?
Well, I've put copies on;
http://dsstymm.ophion.feralhosting.com/

(Never throw anything away, you never know when you might want it again !!)
Reply

#8

I have a write-up of the installation I just did (using VirtualBox on Linux to write to the raw CF card) of VyOS 1.1.7 if it's of use to anyone who finds this thread: http://blog.jasonantman.com/2017/03/vyos...-computer/
Reply





Users browsing this thread:
1 Guest(s)