Instalacja debiana na PCEngines Alix 2c3
Ostatnia zmiana: 2013-11-26 18:43
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)
- 1x miniPCI (np. do karty WiFi)
- 3x ethernet 10/100 Via Rhine
- 3x LED dowolnego przeznaczenia
Dodatkowo sam procesor Geode zawiera wbudowane, sprzętowe:
- generator liczb losowych (rng)
- akcelerator kryptograficzny AES-128
- 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)
Można podłączyć zarówno kartę CF jaki i MicroDrive. Wyprowadzone jest także złącze IDE do podłączenia zwykłego dysku 2,5".
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
Czyli można uzyskać moduły obsługujące następujące podsystemy:
- libata/pata_cs5536 - IDE/CF
- geode-aes - akcelerator kryptograficzny
- geode-rng - generator liczb losowych
- via_rhine - karty sieciowe ethernet
- 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
/etc/inittabPonieważ 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
a dodać/zmienić następującą
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
Włączenie
echo 1 > /sys/class/leds/alix:1/brightness
Wyłączenie
echo 0 > /sys/class/leds/alix:1/brightness
Heartbeat, obciążenie systemu
echo heartbeat > /sys/class/leds/alix:1/trigger
Aktywność dysku
echo ide-disk > /sys/class/leds/alix:1/trigger
Zwykłe migotanie led, 1 sekunda on, 5 sekund off
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
Wyłączenie triggerów
echo none > /sys/class/leds/alix:1/trigger
Polecane programy do instalacji
Patche (2.6.25)
Obecne kernele (>= 2.6.30) zawierają pełną obsługę płyt alix - wsparcie dla timerów, interfejsu ide, gpio, watchdog czy LED.
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
#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
# 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
Wyniki mówią same za siebie.