Alix 2c3
Instalacja debiana na PCEngines Alix 2c3Ostatnia zmiana: 2009-07-13 20:04
1. Budowa
1.1. lspci
1.2. /proc/cpuinfo
2. Specyfikacja
3. Instalacja systemu
3.1. Kompilacja jądra
3.2. Dodatkowa konfiguracja systemu
3.3. LED
4. Polecane programy do instalacji
5. Patche (2.6.25)
6. OCF (OpenBSD/FreeBSD Cryptographic Framework)
Rodzina płyt Alix firmy PCEngines będących następcami płyt WRAP obejmuje kilka rodzajów różniących się głównie wyposażeniem. Zaletą płyt jest niski pobór mocy wynoszący do 3W oraz zasilanie - pojedyncze od 7 do 18V; istnieje też możliwość zasilania przez PoE. Płyta 2c3 wyposażona jest w 500MHz procesor zgodny z x86, 256MB pamięci RAM, złącze miniPCI, 2x USB 2.0 oraz 3x ethernet 10/100. Czyli mała, fajna i energooszczędna.
Budowa
lspci
00:01.0 Host bridge: Advanced Micro Devices [AMD] Unknown device 2080 (rev 33)
00:01.2 Entertainment encryption device: Advanced Micro Devices [AMD] Geode LX AES Security Block
00:09.0 Ethernet controller: VIA Technologies, Inc. VT6105M [Rhine-III] (rev 96)
00:0a.0 Ethernet controller: VIA Technologies, Inc. VT6105M [Rhine-III] (rev 96)
00:0b.0 Ethernet controller: VIA Technologies, Inc. VT6105M [Rhine-III] (rev 96)
00:0c.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)
00:0f.0 ISA bridge: Advanced Micro Devices [AMD] CS5536 [Geode companion] ISA (rev 03)
00:0f.2 IDE interface: Advanced Micro Devices [AMD] CS5536 [Geode companion] IDE (rev 01)
00:0f.4 USB Controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] OHC (rev 02)
00:0f.5 USB Controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] EHC (rev 02)
/proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 5
model : 10
model name : Geode(TM) Integrated Processor by AMD PCS
stepping : 2
cpu MHz : 498.056
cache size : 128 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu de pse tsc msr cx8 sep pge cmov clflush mmx mmxext 3dnowext 3dnow
bogomips : 997.68
clflush size : 32
Specyfikacja
- Procesor: AMD Geode LX800 (500MHz)
- Pamięć: 256MiB RAM
- 1x miniPCI (np. do karty WiFi)
- 3x ethernet 10/100 Via Rhine
- 2x USB 2.0 (EHCI/OHCI)
- złącze IDE/CF
- 3x LED dowolnego przeznaczenia
- 1x pushbutton
- 1x RS232C (pełny) + TTL
- magistrala i2c
- generator liczb losowych (rng)
- akcelerator kryptograficzny AES-128
- watchdog
- czujnik temperatury w procesorze (CPU) oraz na płytce (PCB) - LM86
- rtc (zegar czasu rzeczywistego - brak baterii podtrzymującej na płytce, dostępna w niektórych wersjach)
Instalacja systemu
Kompilacja jądra
Warto samodzielnie przekompilować jądro włączając optymalizację dla procesorów Geode LX. Inne opcje przydatne na tej platformie to:
CONFIG_MGEODE_LX=y
CONFIG_GEODE_MFGPT_TIMER=y
CONFIG_HW_RANDOM_GEODE=m
CONFIG_GEODE_WDT=m
CONFIG_CRYPTO_DEV_GEODE=m
CONFIG_SCx200=y
CONFIG_SCx200HR_TIMER=y
CONFIG_SCx200_GPIO=m
CONFIG_SCx200_ACB=m
CONFIG_VIA_RHINE=m
CONFIG_VIA_RHINE_MMIO=y
CONFIG_VIA_RHINE_NAPI=y
CONFIG_USB_OHCI_HCD=m
- libata/pata_cs5536 - IDE/CF
- geodewdt - watchdog
- geode-aes - akcelerator kryptograficzny
- geode-rng - generator liczb losowych
- leds-alix - obsługa LED
- via_rhine - karty sieciowe ethernet
- ehci_hcd/ohci_hcd - USB
- i2c_code/hwmon/lm90 - czujnik temperatury
Dodatkowa konfiguracja systemu
/boot/grub/menu.lstAby można było wybrać jądro podczas startu systemu można dodać odpowiedni wpis dla gruba.
serial --speed=38400
terminal serial
Ponieważ Alix 2c3 nie ma grafiki, można wyłączyć terminale a włączyć konsolę szeregową. Czyli należy zakomentować następujące linie
#1:2345:respawn:/sbin/getty 38400 tty1
#2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6
T0:23:respawn:/sbin/getty -L ttyS0 38400
LED
Alix posiada trzy diody LED do dowolnego wykorzystania. Po załadowaniu modułu leds-alix.ko możliwe jest ich sterowanie (dostępne są oznaczenia alix:1, alix:2 oraz alix:3)
modprobe ledtrig-heartbeat
modprobe ledtrig-timer
echo 1 > /sys/class/leds/alix:1/brightness
echo 0 > /sys/class/leds/alix:1/brightness
echo heartbeat > /sys/class/leds/alix:1/trigger
echo ide-disk > /sys/class/leds/alix:1/trigger
echo timer > /sys/class/leds/alix:1/trigger
echo 1000 > /sys/class/leds/alix:1/delay_on
echo 5000 > /sys/class/leds/alix:1/delay_off
echo none > /sys/class/leds/alix:1/trigger
Polecane programy do instalacji
- rng-tools
- lm-sensors
- watchdog
Patche (2.6.25)
- obsługa LED: https://dev.openwrt.org/attachment/ticket/2771/alix_led.patch
- obsługa watchdoga: http://lkml.org/lkml/2008/1/21/202
OCF (OpenBSD/FreeBSD Cryptographic Framework)
Po instalacji OCF można uzyskać sprzętowe wsparcie dla akceleratora kryptograficznego (AES, 128bitów). Wymagane są odpowiednie patche do jądra oraz na openssl (wszystko dostępne jest w projekcie OpenWrt). Pozwala to bardzo znaczenie przyśpieszyć operacje "szyfrujące". Przykład- ze wsparciem sprzętowym
#openssl speed -evp aes-128-cbc -engine cryptodev
engine "cryptodev" set.
Doing aes-128-cbc for 3s on 16 size blocks: 167555 aes-128-cbc's in 0.10s
Doing aes-128-cbc for 3s on 64 size blocks: 167853 aes-128-cbc's in 0.10s
Doing aes-128-cbc for 3s on 256 size blocks: 131727 aes-128-cbc's in 0.14s
Doing aes-128-cbc for 3s on 1024 size blocks: 77118 aes-128-cbc's in 0.04s
Doing aes-128-cbc for 3s on 2048 size blocks: 46770 aes-128-cbc's in 0.05s
OpenSSL 0.9.8g 19 Oct 2007
built on: Fri Jul 10 09:59:56 CEST 2009
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) aes(partial) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS -DL_ENDIAN -DTERMIO -O3 -march=i586 -Wa,--noexecstack -g -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used: times
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 2048 bytes
aes-128-cbc 26808.80k 107425.92k 240872.23k 1974220.80k 1915699.20k
- bez wsparcia sprzętowego
# rmmod cryptosoft
# openssl speed -evp aes-128-cbc -engine cryptodev
engine "cryptodev" set.
Doing aes-128-cbc for 3s on 16 size blocks: 1075439 aes-128-cbc's in 1.73s
Doing aes-128-cbc for 3s on 64 size blocks: 336981 aes-128-cbc's in 1.72s
Doing aes-128-cbc for 3s on 256 size blocks: 89002 aes-128-cbc's in 1.68s
Doing aes-128-cbc for 3s on 1024 size blocks: 23284 aes-128-cbc's in 1.71s
Doing aes-128-cbc for 3s on 2048 size blocks: 11884 aes-128-cbc's in 1.75s
OpenSSL 0.9.8g 19 Oct 2007
built on: Fri Jul 10 09:59:56 CEST 2009
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) aes(partial) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS -DL_ENDIAN -DTERMIO -O3 -march=i586 -Wa,--noexecstack -g -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used: times
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 2048 bytes
aes-128-cbc 9946.26k 12538.83k 13562.21k 13943.17k 13907.68k