Soekris 6501-70 pxeboot



  • I've got a new soekris 6501-70 I'd like to install pfSense on.
    I have an internal SSD mSata card which I believe acts as an internal HD.
    I've selected the regular cdrom ISO image as an installation source.
    I've setup dhcp for next-server and filename entries.
    I've copied the contents of the iso image to the default tftpboot directory.

    mount -o loop pfSense-2.0-RELEASE-i386.iso /mnt

    cd /mnt

    tar cvf - . | ( cd /var/lib/tftpboot/; tar xpf - )

    I do not have a 2.5" drive available to me nor an msata->sata converter. I would install on one system and move the msata card to the soekris.
    I would use the usb boot memstick image but soekris still hasn't released the usb booting bios and they have no idea when it will be released (I asked them earlier this week).

    I am getting to a point where the pxeboot file is transferred over to the soekris and it appears to load.
    However, after:
    Starting the BTX loader

    I get a single new line with the cursor flying left and right printing and deleting characters.
    I know this indicates that I am connected at an incorrect serial rate.
    I have set the soekris serial port speed to match what I have read is the regular serial speed (9600) for pfSense.
    After doing this I am still stuck unable to move on with the installer.

    Does anyone have any ideas?


  • Netgate Administrator

    Hmm, that's tough.
    USB boot was my first thought but no bios support.
    The standard ISO image uses VGA as the primary console so you would not see any output on the serial port after the bootloader. Unless the bios supports serial port redirection after boot in which case you may be seeing the output at whatever speed is set in the bios.

    Edit: reading the manual for this board it seems it supports some form of redirect at 19,200bps by default. You have changed that though.  :-\

    Is your mSATA card MLC or SLC?
    If it's MLC then you should probably be using the embedded or NanoBSD images otherwise you may kill the card with writes in short order. (you may not but it's a risk!  ::))

    Steve



  • I've tried both 9600 and 19200 port speeds with no luck.
    It's an mlc card and I'm aware of the shorter lifespan. This is primarily intended for finding a clean/fast setup method that can be used longer term with a SLC card.

    I am currently seeking a mSata to sata or USB adapter that I can use to directly load the 4g image on.
    I was hoping that someone had already traveled the pxeboot path with the full install and had a working solution for such embedded devices.


  • Netgate Administrator

    There is quite a lot of Soekris specific information in the wiki. E.g. here.

    However a lot of it is out of date now.

    Steve



  • Yup, saw that, unfortunately it is quite outdated and freebsd centric.
    I'm trying to adapt this to linux.. making progress but it has been a pain.

    I can mount the 4g image on a loopback device..

    losetup /dev/loop0 /path/to/file.img

    fdisk -l /dev/loop0

    yields:
    Disk /dev/loop0: 4007 MB, 4007775744 bytes
    16 heads, 63 sectors/track, 7765 cylinders, total 7827687 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x90909090

    Device Boot      Start        End      Blocks  Id  System
    /dev/loop0p1  *          63    3861647    1930792+  a5  FreeBSD
    /dev/loop0p2        3861711    7723295    1930792+  a5  FreeBSD
    /dev/loop0p3        7723296    7826111      51408  a5  FreeBSD

    so to get each partition I need to do:
    63*512 = 32256

    so for the 3 partitions:
    losetup -o 32256 /dev/loop1 /dev/loop0
    losetup -o 1977196032 /dev/loop2 /dev/loop0
    losetup -o 3954327552 /dev/loop3 /dev/loop0

    the question I'm now stuck on is finding out what filesystem is on the partitions.. I've tried a few variations for mounting ufs filesystems but have not had any luck so far..



  • @mxhess:

    Yup, saw that, unfortunately it is quite outdated and freebsd centric.
    I'm trying to adapt this to linux.. making progress but it has been a pain.

    If you're trying to install pfsense, why to adapt it to linux? pfsense is based on freebsd



  • Linux is the pxeboot system I have available. I am in a restricted environment which adds to my personal pain.
    I'm trying to adapt the pxeboot instructions that are freebsd specific to the linux world for the purpose of getting pfsense installed via pxeboot since pxe is my only install option at the moment.

    The imposed limitations:
    I do not have a freebsd system available or any other system besides the portable linux one I've been allowed to attach to the environment for the sole purpose of getting pfsense loaded.
    I can't boot via usb (soekris bios limitation currently, will be fixed but don't know when).
    I can only use the msata card that was supplied to us (no internal mechanical HD or cdrom).
    This leaves me only with pxe because this is a soekris unit and the bios doesn't have all of the bells and whistles that the bios of a server or pc would have.



  • As a follow up to this:

    I've ended up doing a pxeboot of pld's rescue image.
    http://rescuecd.pld-linux.org/

    on tftp system:
    install syslinux, copy the pxelinux.0 to your tftpboot directory.
    extract all of the files from the rescue tgz and pxeboot tgz to tmp directories..
    copy rescue.cpi & vmlinuz to the root of your tftpboot directory

    create a pxelinux.cfg directory under tftpboot
    edit pxelinux.cfg/default

    serial 0 19200
    prompt 1
    default f0
    timeout 99

    label f0
      kernel vmlinuz
      append initrd=rescue.cpi root=/dev/ram0 console=tty0 console=ttyS0,19200n81

    save and exit the file
    note: 19200 is the soekris default serial port speed

    boot the soekris.. naturally you should have setup your dhcp sever appropriately for pxeboot of the soekris.

    boot the 6501.. ctrl + P t get to a ">" bios prompt
    and enter boot f0
    the soekris will boot, connect to tftp server and request the pxelinux.0 file.. the terminal will get a little wierd but it should scroll through the pxeboot sequence, find the default file and end up with a funky looking boot: prompt.. just hit enter and it will begin downloading the rescue image and booting it.

    You should end up at a login prompt.. root / pld to login

    you will need to manually configure the eth0 interface.. ifconfig eth0 (ip addr) netmask (netmask)
    (I assume same subnet for image transfer)

    on sending system:
    dd if=pfSense-2.0-RELEASE-4g-i386-nanobsd.img | nc -l 5678

    on pld/soekris:
    nc (sending system ip address) 5678 | dd of=/dev/sda bs=16k

    transfer starts, image writes to ssd..

    after transfer stats are printed out on the soekris.. MB/s etc..

    fdisk -l /dev/sda

    should print out a list of partitions.

    tell pld to reboot and allow it to go through the motions of shutting down.. you may have to hit the reset button once pld is shutdown.

    when the soekris begins to startup (before OS boot) slap ctrl + p again and do a:

    set ConSpeed=9600
    reboot

    change your terminal port speed to 9600.. allow the soekris to fully complete it's normal boot cycle and watch it load


  • Netgate Administrator

    Looks like you had fun with that!  ;)

    Nice detailed write up.

    Steve


Log in to reply