W . A . X . O
ncc-1701
LINUX - UNIX










La Boite SOEKRIS 4501

  • SOEKRIS 4501
  • 133 Mhz AMD ElanSC520
  • 64 Mbyte SDRAM, soldered on board
  • 1 Mbit BIOS/BOOT Flash
  • CompactFLASH Type I/II socket, 8 Mbyte FLASH to 4 Gbyte Microdrive
  • 3 10/100 Mbit Ethernet ports, RJ-45
  • 1 Serial port, DB9. (optional 2nd serial port)
  • Power LED, Activity LED, Error LED
  • Mini-PCI type III socket. (t.ex for optional hardware encryption.)
  • PCI Slot, right angle 3.3V only. (t.ex for optional WAN board.)
  • 8 bit general purpose I/O, 14 pins header
  • Hardware watchdog
  • Board size 4.85" x 5.7"
  • Power using external power supply is 6-20V DC, max 10 Watt
  • Option for 5V supply using internal connector
  • Operating temperature 0-60 °C
  • comBIOS for full headless operation over serial port
  • PXE boot rom for diskless booting
  • Designed for FreeBSD, NetBSD, OpenBSD and Linux
  • Runs most realtime operating systems
  • Description de la SOEKRIS 4501 sur soekris.com

Voir la SOEKRIS via la console PORT SERIE

  • - Utilisation du port console : sous Linux MINICOM fonctionne très bien.
  • - Bien configurer son logiciel "port com" pour lire correctement la sortie écran. Par exemple préciser 19200 comme vitesse (ex: minicom, CTRL-A P).

Comment installer un OS dans une boite SOEKRIS ?

    1 - Installation via CF

  • - Installation d'un OS sur une carte Compact Flash
  • - Insertion de la CF et boot
  • - Ex : mOmOwALL
    2 - Installation via PXE

  • - Configurer sur une autre machine des serveurs DHCP et TFTP qui fourniront les paramètres réseaux (dhcp) et l'image à installer (tftp)
  • - Booter la boite magique et hop !
  • - Ex : NetBSD, Linux, OpenBSD ou FreeBSD, voir Ultradesic HowTo

Installation 1 - mOnOwall sur une Carte Flash (8 Mo)

  • Le site de mOmOwALL est très bien fait. Il fournit de nombreuses informations. mOnOwall est basé sur FreeBSD.
  • L'installtion de mOnOwall est très simple. Je reprends ici les étapes de mon installation.
  • 1 - Avoir une carte Compact Flash, 8 Mo suffisent !
  • 2 - Télécharger le fichier "img" du système mOnOwall adapté à votre machine.
  • 3 - Décompresser et copier le fichier img sur la carte Compact Flash
  • Commande : gunzip -c net45xx-xxx.img | dd of=/dev/hdX bs=16k
  • Exemple : sudo gunzip -c net45xx-1.23.img | dd of=/dev/sda bs=16k
  • 4 - Installer la carte dans la boite soekris
  • 5 - Booter la soekris
  • 6 - Avoir la console port serie de la soekris active
  • 7 - Configurer une insterface LAN
  • 8 - Se connecter à l'interface web de mOnOwall avec le mot de passe par défaut "admin"/"mono"

Installation 2 - NetBSD par PXE sur une carte Flash (2 Go)

    0) Principe de l'installation de NetBSD sur un Soekris 4501 via PXE

  • 1 - Booter le Soekris en PXE
  • 2 - Fournir par un serveur DHCP/TFTP l'image d'installation de NetBSD
  • 3 - Procéder à l'installation via un terminal en port série, avec minicom par exemple.


    1) Voir son Soekris via un port com (port série)

  • Bien brancher un cable Nul Modem d'un ordi au Soekris. L'ordi est une Debian classique.
  • Ouvrir "minicom" (sur le bon /dev/ttyS", /dev/ttyS0 ou /dev/ttyS1 suivant le nombre de port série disponible sur l'ordinateur)
  • Changer la vitesse de lecture du port série de Minicom car le SOEKRIS émet à 19200 en choisissant "F" dans le tableau de changemnt de vitesse (CTRL+A P).
    truc@machine# minicom
    CTRL+A P
    F 
    


    Tableau des paramètres de Minicom

    +-----[Paramètres de communication]-----+
    |                                        |
    | Actuellement : 19200 8N1               |
    |                                        |
    |   Vitesse        Parité       Données  |
    |                                        |
    | A: 300           L: Aucune       S: 5  |
    | B: 1200          M: Paire        T: 6  |
    | C: 2400          N: Impaire      U: 7  | 
    | D: 4800          O: Marque       V: 8  |
    | E: 9600          P: Espace             | 
    | F: 19200                  Bits d'arrêt |
    | G: 38400                         W: 1  | 
    | H: 57600                         X: 2  | 
    | I: 115200        Q: 8-A-1              |
    | J: 230400        R: 7-P-1              |
    |                                        |
    |                                        |
    | Choix, ou  pour sortir ?       |
    +----------------------------------------+
    


    Boot du Soekris Net4501

    comBIOS ver. 1.24  20040312  Copyright (C) 2000-2004 Soekris Engineering.
    
    net45xx
    
    0064 Mbyte Memory                        CPU 80486 133 Mhz
    
    
    PXE-M00: BootManage UNDI, PXE-2.0 (build 082)
    
    Slot   Vend Dev  ClassRev Cmd  Stat CL LT HT  Base1    Base2   Int
    -------------------------------------------------------------------
    0:00:0 1022 3000 06000000 0006 2280 00 00 00 00000000 00000000 00
    0:18:0 100B 0020 02000000 0107 0290 00 3F 00 0000E001 A0000000 10
    0:19:0 100B 0020 02000000 0107 0290 00 3F 00 0000E101 A0001000 11
    0:20:0 100B 0020 02000000 0107 0290 00 3F 00 0000E201 A0002000 05
    
     3 Seconds to automatic boot.   Press Ctrl-P for entering Monitor.
    
    comBIOS Monitor.   Press ? for help.
    
    > ?
    comBIOS Monitor Commands
    
    boot [drive][:partition] INT19 Boot
    reboot                   cold boot
    download                 download a file using XMODEM/CRC
    flashupdate              update flash BIOS with downloaded file
    time [HH:MM:SS]          show or set time
    date [YYYY/MM/DD]        show or set date
    d[b|w|d] [adr]           dump memory bytes/words/dwords
    e[b|w|d] adr value [...] enter bytes/words/dwords
    i[b|w|d] port            input from 8/16/32-bit port
    o[b|w|d] port value      output to 8/16/32-bit port
    cmosread [adr]           read CMOS RAM data
    cmoswrite adr byte [...] write CMOS RAM data
    cmoschecksum             update CMOS RAM Checksum
    set parameter=value      set system parameter to value
    show [parameter]         show one or all system parameters
    ?/help                   show this help
    
    >
    

    Séquence de boot du SOEKRIS 4501

  • S'assurer que la séquence de boot du SOEKRIS est bien configurée pour commencer par PXE. Pour cela, il faut activer la gestion de PXE (PXE=enable) et de mettre la carte Compact Flash comme second périphérique de boot (FALSH=Secondary)
    >set FALSH=Secondary
    >set PXE=enable
    



    2) Configurer un serveur DHCP pour servir l'image PXE-BOOT

  • Le serveur DHCP / TFTP utilisé pour cette installation est un NetBSD 4.0 qui tourne sous XEN 3.1.

    Configurer le serveur DHCP via /etc/dhcp.conf

    allow unknown-clients;
    ddns-update-style ad-hoc;
    subnet 192.168.1.0 netmask 255.255.255.0 {
            range 192.168.1.200 192.168.1.254;
            host magicbox {
                    hardware ethernet 00:00:24:c2:85:80;
                    filename "pxeboot_ia32.bin";
                    next-server 192.168.1.150;
                    option root-path "/tftpboot";
            }
    }
    



    3) Configurer un serveur TFTP pour servir l'image PXE-BOOT

  • Créer un environnement TFTP (répertoire /tftpboot)
  • Placer dans le répertoire tftpboot le fichier PXE (pxeboot_ia32.bin) et le fichier d'installation (netbsd-INSTALL)
  • ATTENTION 1 : l'image PXE-BOOT de NetBSD n'est plus fournie depuis la version 4.0 que sous la forme "pxeboot_ia32.bin". Il n'y a plus d'image "pxeboot_ia32_com0.bin". Il faut transformer l'image de PXE-BOOT classique en image PXE-BOOT-COM0 en utilisant "installboot".
  • ATTENTION 2 : l'image PXE-BOOT-COM0 de NetBSD fournit un résultat correct avec une vitesse de port série de 9600. Lors de la transformation de l'image PXE-BOOT en PXE-BOOT-COM0, il convient de spécifier la valeur de la vitesse du port série (19200). Cela permet d'avoir un boot propre aussi bien pour le BIOS du SOEKRIS que pour l'image PXE-BOOT-COM0 de NetBSD.
    Préparation du serveur TFTP

    truc@machine# sudo mkdir /tftpboot
    truc@machine# cd /tftpboot/
    truc@machine# sudo cp /usr/mdec/pxeboot_ia32.bin /tftpboot/pxeboot_ia32.bin
    truc@machine# sudo /usr/sbin/installboot -e -o console=com0 -o speed=19200 -m i386 ./pxeboot_ia32.bin
    truc@machine# sudo wget [ftp...]netbsd-INSTALL.tgz
    truc@machine# sudo tar -xvzf netbsd-INSTALL.tgz
    



    4) Booter le SOEKRIS en PXE

  • Lancer le Soekris, PXE se lance, DHCP répond et configure le Soekris.
    BootManage UNDI, PXE-2.0 (build 082)
    BootManage PXE-2.0 PROM 1.0, NATSEC 1.0, SDK 3.0/082 (OEM52)
    Copyright (C) 1989,2000 bootix Technology GmbH, D-41466 Neuss.
    PXE Software Copyright (C) 1997, 1998, 1999, 2000 Intel Corporation.
    Licensed to National Semiconductor
    
    CLIENT MAC ADDR: 00 00 24 C2 85 80
    CLIENT IP: 192.168.1.254  MASK: 255.255.255.0  DHCP IP: 192.168.1.150
    
    
  • Interrompre le boot de l'image NetBSD PXE-BOOT-COM0 pour lui spécifier la provenance du fichier d'installation (netbsd-INSTALL).

  • Pour l'interrompre, il suffit d'appuyer sur "any other key" pendant le boot, soit dès que vous voyez DHCP se lancer.
    >> NetBSD/i386 PXE Boot, Revision 1.1
    >> (builds@wb34, Sat Dec 15 23:18:30 PST 2007)
    >> Memory: 577/64512 k
    Press return to boot now, any other key for boot menu
    Starting in 0
    type "?" or "help" for help.
    > ?
    commands are:
    boot [filename] [-adsqv]
         (ex. "netbsd.old -s"
    consdev {pc|com[0123]|com[0123]kbd|auto}
    help|?
    quit
    >boot tftp:netbsd-INSTALL
    
    



    5) Installation de NetBSD sur Soekris 4501 via PXE et Com0

  • L'installation de NetBSD se déroule très classiquement, seule l'acceptation du choix par défaut de la sortie des écrans d'installation sur Com0 au lieu du BIOS habituel change par rapport à une installation ordinaire.
  • Une fois l'installation terminée, au reboot du SOEKRIS, il convient de modifier la séquence de boot du Soekris en mettant la carte Compact Flash comme premier périphérique de boot.
    >set FLASH=primary
    

    6) Dmesg du boot de NetBSD 4.0 sur un SOEKRIS 4501

    NetBSD MBR boot
    
    NetBSD/i386 ffsv1 Primary Bootstrap
    0:-(
    
    >> NetBSD/i386 BIOS Boot, Revision 3.3
    >> (builds@wb34, Sat Dec 15 23:17:28 PST 2007)
    >> Memory: 639/64512 k
    Press return to boot now, any other key for boot menu
    booting hd0a:netbsd - starting in 0
    8799868+407396+353844 [436016+420212]=0x9f11b8
    kenter: 0x00002000
    acpi: wakecode is installed at 0x2000, size=376
    BIOS CFG: Model-SubM-Rev: fc-00-00, 0x74
    Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
        2006, 2007
        The NetBSD Foundation, Inc.  All rights reserved.
    Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
    
    NetBSD 4.0 (GENERIC) #0: Sun Dec 16 00:20:10 PST 2007
            builds@wb34:/home/builds/ab/netbsd-4-0-RELEASE/i386/200712160005Z-obj/home/builds/ab/netbsd-4-0-RELEASE/src/sysCtotal memory = 65148 KB
    rbus: rbus_min_start set to 0x20000000
    avail memory = 53716 KB
    timecounter: Timecounters tick every 10.000 msec
    timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
    BIOS32 rev. 0 found at 0xf7840
    mainbus0 (root)
    ACPI Error (tbxfroot-0775): No valid RSDP was found [20060217]
    ACPI Exception (tbxfroot-0531): AE_NOT_FOUND, RSDP structure not found - Flags=8 [20060217]
    ACPI Exception (tbxface-0162): AE_NO_ACPI_TABLES, Could not get the RSDP [20060217]
    ACPI Exception (tbxface-0211): AE_NO_ACPI_TABLES, Could not load tables [20060217]
    ACPI: unable to load tables: AE_NO_ACPI_TABLES
    cpu0 at mainbus0: (uniprocessor)
    cpu0: AMD Am486DX4 W/B or Am5x86 W/B 150 (486-class), id 0x494
    pci0 at mainbus0 bus 0: configuration mode 1
    pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
    elansc0 at pci0 dev 0 function 0: AMD Elan SC520 System Controller
    elansc0: product 0 stepping 1.1, CPU clock 133MHz
    gpio0 at elansc0: 32 pins
    sip0 at pci0 dev 18 function 0: NatSemi DP83815 10/100 Ethernet, rev 00
    sip0: interrupting at irq 10
    sip0: Ethernet address 00:00:24:c2:85:80
    nsphyter0 at sip0 phy 0: DP83815 10/100 media interface, rev. 1
    nsphyter0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
    sip1 at pci0 dev 19 function 0: NatSemi DP83815 10/100 Ethernet, rev 00
    sip1: interrupting at irq 11
    sip1: Ethernet address 00:00:24:c2:85:81
    nsphyter1 at sip1 phy 0: DP83815 10/100 media interface, rev. 1
    nsphyter1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
    sip2 at pci0 dev 20 function 0: NatSemi DP83815 10/100 Ethernet, rev 00
    sip2: interrupting at irq 5
    sip2: Ethernet address 00:00:24:c2:85:82
    nsphyter2 at sip2 phy 0: DP83815 10/100 media interface, rev. 1
    nsphyter2: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
    isa0 at mainbus0
    com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
    com0: console
    com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
    attimer0 at isa0 port 0x40-0x43: AT Timer
    wdc0 at isa0 port 0x1f0-0x1f7 irq 14
    atabus0 at wdc0 channel 0
    pcppi0 at isa0 port 0x61
    pcppi0: children must have an explicit unit
    midi0 at pcppi0: PC speaker (CPU-intensive output)
    sysbeep0 at pcppi0
    isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
    npx0 at isa0 port 0xf0-0xff
    pcppi0: attached to attimer0
    isapnp0: no ISA Plug 'n Play devices found
    timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
    Kernelized RAIDframe activated
    wd0 at atabus0 drive 0: 
    wd0: drive supports 1-sector PIO transfers, LBA addressing
    wd0: 1943 MB, 3949 cyl, 16 head, 63 sec, 512 bytes/sect x 3980592 sectors
    wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 4 (Ultra/66)
    boot device: wd0
    root on wd0a dumps on wd0b
    root file system type: ffs
    WARNING: preposterous TOD clock time
    WARNING: using filesystem time
    WARNING: CHECK AND RESET THE DATE!
    Sun Dec 16 11:54:30 CET 2007
    swapctl: adding /dev/wd0b as swap device at priority 0
    Checking for botched superblock upgrades: done.
    Starting file system checks:
    /dev/rwd0a: file system is clean; not checking
    Setting tty flags.
    Setting sysctl variables:
    Starting network.
    Hostname: soekris.qazi.ath.cx
    IPv6 mode: host
    Configuring network interfaces: sip0.
    add net default: gateway 192.168.1.58
    Adding interface aliases:
    Building databases...
    wsconscfg: Cannot open `/dev/ttyEcfg': Device not configured
    wsconscfg: Cannot open `/dev/ttyEcfg': Device not configured
    wsconscfg: Cannot open `/dev/ttyEcfg': Device not configured
    wsconscfg: Cannot open `/dev/ttyEcfg': Device not configured
    Starting syslogd.
    Checking for core dump...
    savecore: no core dump
    Mounting all filesystems...
    Clearing /tmp.
    Creating a.out runtime link editor directory cache.
    Checking quotas: done.
    Starting virecover.
    Starting local daemons:.
    Updating motd.
    postfix: rebuilding /etc/mail/aliases (missing /etc/mail/aliases.db)
    postfix/postfix-script: starting the Postfix mail system
    Starting inetd.
    Starting cron.
    Sun Dec 16 11:54:56 CET 2007
    Dec 16 11:54:59 soekris getty[533]: /dev/ttyE1: Device not configured
    
    NetBSD/i386 (soekris.qazi.ath.cx) (console)
    
    login: Dec 16 11:54:59 soekris getty[401]: /dev/ttyE3: Device not configured
    Dec 16 11:54:59 soekris getty[595]: /dev/ttyE2: Device not configured
    
    
    NetBSD/i386 (soekris.qazi.ath.cx) (console)
    
    login:
    

    7) Utiliser NetBSD 4.0 sur un SOEKRIS 4501 comme routeur

  • Arrêt des logs sur la carte Flash : afin d'économiser