PC Engines (Polski)

From ArchWiki

PC Engines jest szwajcarskim producentem sprzętu dla wbudowanych urządzeń x86.

apu2c4

Ten artykuł opisuje jak zainstalować Arch Linuxa na dysku SSD używając karty SD lub pamięci USB.

Sprzęt

CPU: Seria AMD Embedded G GX-412TC, 1 GHz czterordzeniowy Jaguar 64 bit

RAM: 4GB DRAM z obsługą ECC

Note: Najpierw wykręć śruby z portu szeregowego!

Złóż urządzenie z ostrożnością i przeczytaj poradnik dotyczący systemu chłodzenia!

Przygotowania do instalacji

Uruchom system

Aby wyświetlić BIOS, użyj tego polecenia:

$ LANG=C picocom --baud 115200 /dev/ttyUSB0

W przypadku gdy twoje urządzenie nie uruchamia obrazu z karty SD ani z pamięci USB, naciśnij klawisz F10 podczas uruchomiania, aby wyświetlić menu rozruchowe. Następnie zamknij picocom za pomocą Ctrl+a Ctrl+q

Podłącz się do GRUBa z Archiso:

$ LANG=C picocom --baud 38400 /dev/ttyUSB0

Wejdź w tryb CLI poprzez naciśnięcie Tab i dodaj następujący parametr jądra do wiesza poleceń:

console=ttyS0,115200

Naciśnij Enter.

Teraz zamknij picocom i połącz się ponownie za pomocą pierwszego polecenia, aby zmienić prędkość transmisji na 115200. Następnie musisz poczekać przez około 30 sekund, po czym wyświetli się kolorowa powłoka uruchomieniowa (ang. boot prompt).

Zainstaluj system

Najbardziej komfortowym sposobem instalowania Archa jest uruchomienie serwera SSH i skorzystanie z poradnika instalacyjnego.

Możesz potrzebować nowego adresu IP. Da się to zrobić używając dhclient oraz włączając sshd.service.

Jeden z możliwych układów dysku SSD może wyglądać następująco:

 /dev/sda1           2048   264191   262144  128M 83 Linux
 /dev/sda2         264192 25430015 25165824   12G 83 Linux
 /dev/sda3       25430016 31277231  5847216  2.8G 82 Linux swap / Solaris

Dobrym pomysłem jest używanie układu MBR z GRUBem:

# grub-install --target=i386-pc /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg

Jeżeli używasz Syslinux, upewnij się, aby przekazać opcję console do menu rozruchowego:

/boot/syslinux/syslinux.cfg
LABEL arch
    MENU LABEL Arch Linux
    LINUX ../vmlinuz-linux
    APPEND root=UUID=1ef5a2eb-1908-4929-9b91-f6c4183695ac rw console=ttyS0,115200
    INITRD ../initramfs-linux.img

Zobacz także Working with the serial console#Configure console access on the target machine.

Pamiętaj, aby usunąć kartę SD bądź pamięć USB po zakończeniu instalacji.

Sterowanie diodami LED

Podczas gdy istnieją dwa mainlinowe sterowniki (leds-apu oraz pcengines-apuv2), które mogą sterować LEDami na różnych modelach APU, jeżeli używasz mainlinowe oprogramowanie PC Engines, zalecane jest, aby pozwolić ACPI na kontrolę diod. W połączeniu z modułem ledtrig_netdev, diody APU mogą być sterowane poprzez następujące wpisy sysfs:

/sys/class/leds/apu2:green:led1
/sys/class/leds/apu2:green:led2
/sys/class/leds/apu2:green:led3

Obsługa modułów

Należy ręcznie wczytać ledtrig_netdev. Możesz również umieścić leds_apu oraz pcengines-apuv2 na czarnej liście modułów.

Przykładowa konfiguracja

Typowym przypadkiem użycia jest wykorzystywanie APU jako bezprzewodowego routera. W tym przypadku jedna karta sieciowa (wan0) jest podłączona do upstreamu, do dostawcy usług internetowych, a pozostałe karty sieciowe (przewodowe i bezprzewodowe) są zmostkowane (br0) ze sobą jako sieć lokalna. Typowa konfiguracja diod używając wyzwalacza netdev może wyglądać następująco:

LED1: wskaźnik zasilania
LED2: wskaźnik ruchu sieciowego do dostawcy usług
LED3: wskaźnik ruchu w sieci lokalnej (br0)

Aby używać tej konfiguracji:

echo "1" > /sys/class/leds/apu2:green:led1/brightness
echo "netdev" > /sys/class/leds/apu2:green:led2/trigger
echo "wan0" > /sys/class/leds/apu2:green:led2/device_name
echo "1" > /sys/class/leds/apu2:green:led2/tx
echo "1" > /sys/class/leds/apu2:green:led2/rx
echo "netdev" >  /sys/class/leds/apu2:green:led3/trigger
echo "br0" >  /sys/class/leds/apu2:green:led3/device_name
echo "1" >  /sys/class/leds/apu2:green:led3/tx
echo "1" >  /sys/class/leds/apu2:green:led3/rx
Note: Zapisywanie do wpisu sysfs trigger musi być pierwsze, ponieważ włącza to inne wpisy (device_name, tx oraz rx).
Tip:
  • Zobacz jakie wyzwalacze są obsługiwane przez aktualnie załadowany moduł: cat /sys/class/leds/apu2:green:led1/trigger.
  • Dodatkowe moduły wyzwalaczy są dostępne tutaj: /lib/modules/$(uname -r)/kernel/drivers/leds/trigger.

Trwała konfiguracja

Możesz użyć automatycznego wczytywanie modułów oraz tmpfiles.d (z Systemd), aby zachować tą konfigurację po ponownym uruchomieniu.

/etc/modules-load.d/ledtrig-netdev.conf
ledtrig_netdev
/etc/tmpfiles.d/leds.conf
# Zasilanie
w /sys/class/leds/apu2:green:led1/brightness - - - - 1
# Aktywność portu WAN
w /sys/class/leds/apu2:green:led2/trigger - - - - netdev
w /sys/class/leds/apu2:green:led2/device_name - - - - wan0
w /sys/class/leds/apu2:green:led2/tx - - - - 1
w /sys/class/leds/apu2:green:led2/rx - - - - 1
# Aktywność sieci LAN
w /sys/class/leds/apu2:green:led3/trigger - - - - netdev
w /sys/class/leds/apu2:green:led3/device_name - - - - br0
w /sys/class/leds/apu2:green:led3/tx - - - - 1
w /sys/class/leds/apu2:green:led3/rx - - - - 1

Oprogramowanie układowe

Urządzenia APUx używają coreboot zamiast UEFI. Aby zaktualizować oprogramowanie układowe na urządzeniach APU2/3/4/5 użyj flashrom:

# flashrom --programmer internal --read stary.rom --output odczyt-starego.txt
# flashrom --programmer internal --write nowy.rom --output zapis-nowego.txt
# systemctl poweroff

Następnie odłącz i podłącz ponownie. Jeżeli pełne ponowne uruchomienie jest niemożliwe (np. oprogramowanie jest aktualizowane zdalnie), możliwe są pewne obejścia: