PC Engines
PC Engines 是一家瑞士硬件制造商,生产嵌入式 x86 设备。
apu2c4
本文档描述了如何通过 SD 卡或 USB 闪存驱动器将 Arch Linux 安装到 SSD。
硬件
CPU:AMD Embedded G 系列 GX-412TC,1 GHz 四核 Jaguar 核心,64 位
内存:4GB DRAM ECC
小心组装设备,并阅读散热系统的指南!
安装准备
- 您需要一个串口 (RS-232) 连接到 APU 才能控制它。
- 将您的用户添加到 uucp 组。
- 安装 picocom 或类似的工具,请参阅 Working with the serial console#Making Connections。
- 下载 并验证 安装镜像。
启动系统
要查看 BIOS,请使用此命令
$ LANG=C picocom --baud 115200 /dev/ttyUSB0
如果您的设备未从 SD 卡或 USB 闪存驱动器启动,请在启动时按 F10
调出启动菜单。然后使用 Ctrl+a
Ctrl+q
关闭 picocom
重新连接到 Archiso GRUB
$ LANG=C picocom --baud 38400 /dev/ttyUSB0
按 Tab 键进入 CLI 模式,并将以下内核参数附加到行尾
console=ttyS0,115200
按 Enter 键。
现在退出 picocom 并使用第一个命令重新连接,以切换到更高的波特率 115200。最后等待约 30 秒,您将看到一个彩色启动提示符。
安装系统
现在安装 Arch 最舒适的方式是启动 SSH 服务器并使用安装指南。
您可能需要使用 dhclient 获取新的 IP 地址并启动 sshd.service
。
SSD 的一种可能的布局可能如下所示
/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
使用带有 GRUB 的 MBR 布局是个好主意
# grub-install --target=i386-pc /dev/sda # grub-mkconfig -o /boot/grub/grub.cfg
如果使用 Syslinux,请确保在启动菜单中提供 console
选项
/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
另请参阅 Working with the serial console#Configure console access on the target machine。
完成设置后,请记住移除 SD 卡或 USB 闪存驱动器。
LED 控制
虽然有 2 个主线内核驱动程序 (leds-apu
和 pcengines-apuv2
) 可以控制各种 APU 型号上的 LED,但如果您运行的是主线 PC Engines 固件,建议让 ACPI 处理 LED 控制。与 ledtrig_netdev
模块结合使用,APU LED 可以通过以下 sysfs 条目进行控制
/sys/class/leds/apu2:green:led1 /sys/class/leds/apu2:green:led2 /sys/class/leds/apu2:green:led3
模块处理
您将必须手动加载 ledtrig_netdev
。您还需要将 leds_apu
和 pcengines-apuv2
都列入黑名单。
示例配置
一个常见的用例是将 APU 用作无线路由器。在这种情况下,一个有线网卡 (wan0
) 上游连接到 ISP,其余有线和无线网卡桥接 (br0
) 在一起作为 LAN。使用 netdev 触发器的典型 LED 配置可能是
LED1: power on / power off indicator LED2: upstream network (wan0) traffic indicator LED3: local network (br0) traffic indicator
要启用此设置
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
trigger
sysfs 条目,因为这是启用 device_name
、tx
和 rx
条目的原因。- 查看当前加载的模块支持的触发器:
cat /sys/class/leds/apu2:green:led1/trigger
。 - 其他触发器模块在此处可用:
/lib/modules/$(uname -r)/kernel/drivers/leds/trigger
。
持久化配置
Systemd 自动模块加载 和 tmpfiles.d 可用于在重启后持久化此配置。
/etc/modules-load.d/ledtrig-netdev.conf
ledtrig_netdev
/etc/tmpfiles.d/leds.conf
#Power on/off w /sys/class/leds/apu2:green:led1/brightness - - - - 1 #WAN activity 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 #LAN activity 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
固件
APUx 设备使用 coreboot 固件,而不是 UEFI。要在 APU2/3/4/5 设备上更新固件,请使用 flashrom
# flashrom --programmer internal --read old.rom --output read-old.txt # flashrom --programmer internal --write new.rom --output write-new.txt # systemctl poweroff
然后拔下并重新插上电源。如果无法完全重启,例如因为固件正在远程更新,则可以使用一些解决方法。有关详细信息,请参阅
故障排除
BIOS 串口控制台干扰 GRUB 串口控制台
如果 GRUB 启动屏幕显示大多数字符两次,请检查 BIOS 菜单中的串口控制台是否已启用并禁用它。有关详细信息,请参阅 [1]。