wiki:howto/Embedded

Version 22 (modified by Edwin Eefting, 14 years ago) (diff)

--

Installatie op embedded systeem via serial en PXE

(dit is nog een concept)

pxe server op syn3

Fix pxelinux in /home/shares/tftp:

[Syn-3] root@kantoor2.datux.nl /home/shares/tftp# ls -l pxelinux.0
-rwxr-xr-x  1 root root 16794 Apr 12 11:14 pxelinux.0*

[Syn-3] root@kantoor2.datux.nl /home/shares/tftp# cat pxelinux.cfg/default
TIMEOUT 100
PROMPT 1
DEFAULT embedded
SERIAL 0 38400
DISPLAY boot.txt
LABEL embedded
        KERNEL embedded/bzImage
        APPEND initrd=embedded/initrd.gz net_server=gateway net_iso=embedded/install.iso sup console=ttyS0,38400 ro root=/dev/ram0 init=/linuxrc ramdisk_size=64000 text cdroot cdboot
LABEL embeddedboot
        KERNEL embedded/bzImage
        APPEND initrd=embedded/initrd.gz net_server=gateway net_iso=embedded/install.iso sup console=ttyS0,38400 ro root=/dev/ram0 init=/linuxrc ramdisk_size=64000 text
LABEL normal
        KERNEL normal/bzImage
        APPEND initrd=normal/initrd.gz net_server=gateway net_iso=normal/install.iso sup console=tty1 ro root=/dev/ram0 init=/linuxrc ramdisk_size=64000 cdroot cdboot text
LABEL normalboot
        KERNEL normal/bzImage
        APPEND initrd=normal/initrd.gz net_server=gateway net_iso=normal/install.iso sup console=tty1 ro root=/dev/ram0 init=/linuxrc ramdisk_size=64000 text
LABEL bko
        KERNEL gpxe.0

[Syn-3] root@kantoor2.datux.nl /home/shares/tftp# ls embedded/
bzImage  initrd.gz  install.iso

[Syn-3] root@kantoor2.datux.nl /home/shares/tftp# cat boot.txt

     _/_/_/  _/      _/  _/      _/            _/_/_/
   _/          _/  _/    _/_/    _/                  _/
    _/_/        _/      _/  _/  _/  _/_/_/_/_/  _/_/
       _/      _/      _/    _/_/                  _/
_/_/_/        _/      _/      _/            _/_/_/

                                   ENTERPRISE LINUX
                                   Network boot

Please choose your boot method below:
 embedded    Boot installer for embedded devices (serial 38400,8,n,1)
 normal      Boot installer for normal pc's
 bko         Boot via http://boot.kernel.org

Embedded kernel + init zitten in initrd_embedded en linux_embedded.

Iso is normale installer iso.

Zorg dat guest/guest-account bij tftp samba share kan.

Via SCC dhcp aanpassen zodat hij bootp doet en pxelinux.0 laad.

Installatie embedded kastje (bijv alix)

Boot via nieuwe pxe server.

Normale installer start en initrd moet ook bereikbaar zijn via telnet.

Installeer met de juiste waarden:

Use software RAID?	Yes
Root partition size:	1.00 GB (default is 4.00 GB)
Swap partition size:	(default is 512.00 MB)
Home partition size:	468.00 MB (normally blank, auto detect)
Free space:	0 (default is 1.00 GB)

Aanpassingen voor embedded kastje na install en 1e boot

Installeer linux_embedded en initrd_embedded

Pas grub aan:

[Syn-3] root@darkstar.example.net /boot/grub# cat menu.lst
serial --unit=0 --speed=38400
terminal serial
timeout 10
default saved

title Normal boot
 root (hd0,0)
 savedefault 0
 kernel /bzImage console=ttyS0,38400 root=/dev/ram0 init=/linuxrc ramdisk_size=64000
 initrd /initrd.gz

title Test new kernel
 root (hd0,0)
 savedefault 0
 kernel /bzImage.test console=ttyS0,38400 root=/dev/ram0 init=/linuxrc ramdisk_size=64000
 initrd /initrd.gz.test

title Use safemode kernel (use with caution!)
 root (hd0,0)
 savedefault 0
 kernel /bzImage.safe console=ttyS0,38400 root=/dev/ram0 init=/linuxrc ramdisk_size=64000
 initrd /initrd.gz.safe

Pas inittab aan om te kunnen inloggen als root via serial:

# Local serial lines:
s1:12345:respawn:/sbin/agetty -L ttyS0 38400 vt100

andere agetty's uitzetten.

afwerking

space en overbodige packages

removepkg jdk ocaml squid
touch /var/log/packages/ocaml.lock /var/log/packages/ocaml-1
touch /var/log/packages/jdk.lock /var/log/packages/jdk-1
touch /var/log/packages/squid.lock /var/log/packages/squid-1
removepkg postgresql mysql 
cd /var/log/packages
touch mysql.lock mysql-1  postgresql.lock postgresql-1
touch initrd-1 initrd.lock linux-1 linux.lock
removepkg initrd linux
rm -r /service/postgresql/
rm -r /service/squid/
touch grub-1 grub.lock
touch syn3_scripts.lock
touch webint.lock

alix leds boven in rc.S:

( cd /sys/class/leds/alix\:2/ ; echo timer > trigger ; echo 500 > delay_on ; echo 500 > delay_off ) 2>/dev/null

alix leds in rc.apache_webint, voor start en na stop

( cd /sys/class/leds/alix\:2/ ; echo none > trigger ; echo 1 > brightness ) 2>/dev/null
...start...
( cd /sys/class/leds/alix\:2/ ; echo timer > trigger ; echo 200 > delay_on ; echo 200 > delay_off ) 2>/dev/null

alix led betekenis

alix firmware:

  • 3 leds aan: bios/pre-boot
  • 1e led aan: postbios, ready to boot

syn3 initrd:

  • 1e led word en blijft ide-led.
  • 3e led knippert: in initrd
  • 3e led knippert snel: in installer
  • 3e led aan: initrd klaar, start normale init

syn3 init:

  • 2e led knippert: begonnen met rc.S
  • 2e led aan: SCC gestart
  • 2e led knippert snel: SCC gestopt

Als alles goed is, branden dus de laatste 2 leds en is de 1e ide-led.