1. 引言

Arch Linux ARM是专为ARM设备设计的Arch Linux变体,它继承了标准Arch Linux的KISS(Keep It Simple, Stupid)哲学和滚动更新模式。与标准Arch Linux不同,Arch Linux ARM专门针对ARM架构进行了优化,支持各种ARM设备,包括Raspberry Pi、ODROID、BeagleBone等单板计算机,以及一些ARM架构的Chromebook、平板电脑和其他嵌入式设备。

Arch Linux ARM的主要优势在于其轻量级、高度可定制性和最新的软件包。这使得它非常适合喜欢掌控系统的用户,以及需要在ARM设备上获得最佳性能的开发者和爱好者。

本指南将带您完成从准备到最终配置的全过程,无论您是Linux新手还是经验丰富的用户,都能从中找到有用的信息。

2. 准备工作

2.1 硬件要求

在开始安装之前,请确保您具备以下硬件:

  • ARM设备(如Raspberry Pi、ODROID、BeagleBone等)
  • 足够容量的SD卡或eMMC模块(建议至少16GB,根据您的需求可能需要更大)
  • 稳定的电源供应
  • 网络连接(以太网或Wi-Fi)
  • 对于没有HDMI输出的设备,可能需要串行控制台电缆

2.2 软件要求

您需要准备以下软件:

  • 一台运行Linux、macOS或Windows的主机电脑
  • SD卡读卡器(如果使用SD卡)
  • 终端访问(Linux/macOS自带,Windows用户可使用WSL或PuTTY)
  • 下载Arch Linux ARM镜像

2.3 数据备份

在开始之前,请务必备份SD卡或eMMC上的所有重要数据,因为安装过程会完全擦除存储设备。

2.4 获取Arch Linux ARM镜像

访问Arch Linux ARM官方网站,找到适合您设备的镜像。不同设备有不同的镜像,因此请确保选择正确的版本。

对于Raspberry Pi,您可以在网站上找到专门的Raspberry Pi部分。对于其他设备,请查看平台列表。

下载适合您设备的镜像文件。通常,这些文件是压缩的tar包(.tar.gz格式)。

3. 安装过程

3.1 连接存储设备

将SD卡插入读卡器并连接到您的主机电脑,或者如果是eMMC模块,请按照设备制造商的说明将其连接到电脑。

3.2 确定存储设备

在Linux或macOS上,使用以下命令确定存储设备:

lsblk 

在Windows上,您可以使用磁盘管理工具或DiskPart来确定驱动器号。

注意:请务必正确识别您的SD卡或eMMC设备,错误的选择可能会导致您的主机系统数据丢失。

3.3 分区方案

对于大多数ARM设备,我们建议使用以下分区方案:

  • 引导分区(FAT32,约100-200MB)
  • 根分区(ext4,剩余空间)

以下是使用fdisk进行分区的示例(假设设备是/dev/sdx):

# 删除现有分区 sudo fdisk /dev/sdx Command (m for help): o Created a new DOS disklabel with disk identifier 0x12345678. # 创建引导分区 Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-15523839, default 2048): 2048 Last sector, +sectors or +size{K,M,G,T,P} (2048-15523839, default 15523839): +200M Created a new partition 1 of type 'Linux' and of size 200 MiB. # 设置引导分区类型为FAT32 Command (m for help): t Selected partition 1 Hex code (type L to list all codes): c Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'. # 创建根分区 Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): p Partition number (2-4, default 2): 2 First sector (411648-15523839, default 411648): Last sector, +sectors or +size{K,M,G,T,P} (411648-15523839, default 15523839): Created a new partition 2 of type 'Linux' and of size 7.4 GiB. # 保存并退出 Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks. 

3.4 格式化分区

接下来,我们需要格式化刚创建的分区:

# 格式化引导分区为FAT32 sudo mkfs.vfat -F32 /dev/sdx1 # 格式化根分区为ext4 sudo mkfs.ext4 /dev/sdx2 

3.5 挂载分区

创建挂载点并挂载分区:

# 创建挂载点 sudo mkdir -p /mnt/arch # 挂载根分区 sudo mount /dev/sdx2 /mnt/arch # 创建引导分区挂载点 sudo mkdir /mnt/arch/boot # 挂载引导分区 sudo mount /dev/sdx1 /mnt/arch/boot 

3.6 安装基础系统

现在,我们将下载的Arch Linux ARM镜像解压到根分区:

# 解压镜像到根分区 sudo tar -xpf archlinuxarm-<device>-latest.tar.gz -C /mnt/arch # 同步文件系统 sync 

3.7 配置引导加载程序

根据您的设备,引导加载程序的配置可能有所不同。以下是针对Raspberry Pi的配置示例:

# 编辑config.txt文件(如果存在) sudo nano /mnt/arch/boot/config.txt # 添加或修改以下参数 # 启用HDMI安全模式 hdmi_safe=1 # 设置GPU内存分配 gpu_mem=256 # 保存并退出 

对于其他设备,请参考Arch Linux ARM网站上特定设备的说明。

3.8 卸载分区

安装完成后,卸载分区:

sudo umount /mnt/arch/boot sudo umount /mnt/arch 

现在,您可以将SD卡或eMMC模块插入ARM设备并启动它。

4. 基础配置

4.1 首次启动

将SD卡或eMMC模块插入ARM设备,连接电源和网络,然后启动设备。

对于首次启动,建议使用串行控制台或连接键盘和显示器进行配置。

4.2 登录系统

默认情况下,Arch Linux ARM使用以下凭据:

  • 用户名:alarm
  • 密码:alarm

以及root账户:

  • 用户名:root
  • 密码:root

首次登录后,立即更改默认密码:

# 更改alarm用户密码 passwd # 切换到root用户 su # 更改root密码 passwd 

4.3 网络设置

4.3.1 有线网络

大多数ARM设备会自动配置有线网络。您可以使用以下命令检查网络状态:

ip a 

如果网络未自动配置,您可以使用systemd-networkd:

# 创建网络配置文件 nano /etc/systemd/network/eth0.network # 添加以下内容 [Match] Name=eth0 [Network] DHCP=yes # 保存并退出 # 启用并启动systemd-networkd systemctl enable systemd-networkd systemctl start systemd-networkd 

4.3.2 无线网络

对于Wi-Fi连接,使用wpa_supplicant:

# 安装wpa_supplicant pacman -S wpa_supplicant # 创建WPA配置文件 wpa_passphrase "你的SSID" "你的密码" > /etc/wpa_supplicant/wpa_supplicant.conf # 启用wpa_supplicant服务 systemctl enable wpa_supplicant@wlan0 systemctl start wpa_supplicant@wlan0 

4.4 更新系统

安装完成后,首先更新系统:

# 同步软件包数据库并更新系统 pacman -Syu # 如果需要,重新启动以应用更新 reboot 

4.5 本地化和时区设置

4.5.1 设置时区

# 列出可用的时区 timedatectl list-timezones # 设置时区(例如,设置为上海) timedatectl set-timezone Asia/Shanghai 

4.5.2 本地化设置

编辑locale.gen文件:

nano /etc/locale.gen 

取消注释您需要的语言环境(例如,en_US.UTF-8和zh_CN.UTF-8):

en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8 

保存并退出,然后生成语言环境:

locale-gen 

创建locale.conf文件:

echo "LANG=en_US.UTF-8" > /etc/locale.conf 

4.5.3 设置主机名

# 设置主机名 hostnamectl set-hostname myarcharm # 编辑hosts文件 nano /etc/hosts # 添加以下内容(将myarcharm替换为您的主机名) 127.0.0.1 localhost ::1 localhost 127.0.1.1 myarcharm.localdomain myarcharm 

4.6 创建新用户

建议创建一个新的日常用户,而不是直接使用root账户:

# 创建新用户(例如,创建名为arch的用户) useradd -m -G wheel -s /bin/bash arch # 设置用户密码 passwd arch 

然后,编辑sudoers文件以允许新用户使用sudo:

# 安装sudo pacman -S sudo # 编辑sudoers文件 EDITOR=nano visudo 

取消注释以下行:

%wheel ALL=(ALL) ALL 

保存并退出。

5. 桌面环境安装

如果您需要图形界面,可以安装桌面环境。以下是安装Xfce桌面的示例:

5.1 安装Xorg服务器

pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils 

5.2 安装显卡驱动

根据您的设备,安装相应的显卡驱动:

# 对于使用VideoCore VI的设备(如Raspberry Pi 4) pacman -S mesa-libgl libva-vdpau-driver # 对于使用Mali的设备 pacman -S libgl-mesa on-udev 

5.3 安装桌面环境

# 安装Xfce pacman -S xfce4 xfce4-goodies # 安装显示管理器(例如LightDM) pacman -S lightdm lightdm-gtk-greeter # 启用显示管理器 systemctl enable lightdm 

5.4 安装字体和其他实用工具

# 安装字体 pacman -S ttf-dejavu ttf-liberation noto-fonts # 安装网络管理器 pacman -S network-manager-applet systemctl enable NetworkManager systemctl start NetworkManager 

5.5 启动桌面环境

安装完成后,重新启动系统:

reboot 

系统应该会自动启动到图形登录界面。

6. 常见问题解决

6.1 启动问题

6.1.1 设备无法启动

如果设备无法启动,请检查以下几点:

  • 确保SD卡或eMMC正确插入
  • 检查电源供应是否稳定
  • 验证引导分区是否正确格式化为FAT32
  • 检查config.txt或其他引导配置文件是否正确

6.1.2 引导错误

如果看到引导错误消息,请尝试:

  • 检查引导分区上的文件是否完整
  • 确保u-boot.img或其他引导文件位于正确位置
  • 对于Raspberry Pi,检查start.elf和bootcode.bin是否存在

6.2 网络连接问题

6.2.1 有线网络不工作

# 检查网络接口 ip a # 如果接口未启动,尝试启动它 ip link set eth0 up # 检查系统日志 journalctl -u systemd-networkd 

6.2.2 Wi-Fi连接问题

# 检查Wi-Fi接口 ip a # 检查wpa_supplicant状态 systemctl status wpa_supplicant@wlan0 # 查看wpa_supplicant日志 journalctl -u wpa_supplicant@wlan0 

6.3 软件安装问题

6.3.1 GPG密钥错误

如果遇到GPG密钥错误,尝试:

# 初始化pacman密钥环 pacman-key --init pacman-key --populate archlinuxarm # 刷新密钥 pacman-key --refresh-keys 

6.3.2 软件包冲突

如果遇到软件包冲突,尝试:

# 清理包缓存 pacman -Scc # 更新系统 pacman -Syu --overwrite "*" 

6.4 硬件兼容性问题

6.4.1 USB设备不识别

# 检查USB设备 lsusb # 检查内核日志 dmesg | grep usb 

6.4.2 音频问题

# 检查音频设备 aplay -l # 设置默认音频设备 nano /etc/asound.conf 

添加以下内容(根据您的设备调整):

defaults.pcm.card 0 defaults.pcm.device 0 defaults.ctl.card 0 

7. 性能优化

7.1 系统服务优化

禁用不必要的服务可以释放系统资源:

# 列出已启用的服务 systemctl list-unit-files --state=enabled # 禁用不必要的服务 sudo systemctl disable bluetooth.service # 如果不需要蓝牙 sudo systemctl disable cups.service # 如果不需要打印 

7.2 文件系统优化

7.2.1 使用tmpfs挂载临时目录

编辑/etc/fstab文件:

nano /etc/fstab 

添加以下内容:

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0 

7.2.2 启用TRIM(如果使用SSD)

# 启用fstrim定时器 systemctl enable fstrim.timer systemctl start fstrim.timer 

7.3 内存管理优化

7.3.1 配置zswap

编辑/etc/default/grub文件:

nano /etc/default/grub 

修改GRUB_CMDLINE_LINUX_DEFAULT行,添加zswap.enabled=1:

GRUB_CMDLINE_LINUX_DEFAULT="quiet zswap.enabled=1" 

然后更新GRUB:

grub-mkconfig -o /boot/grub/grub.cfg 

7.3.2 调整swappiness

# 检查当前swappiness值 cat /proc/sys/vm/swappiness # 临时调整swappiness值(例如,设置为10) sysctl vm.swappiness=10 # 永久调整swappiness值 echo "vm.swappiness=10" > /etc/sysctl.d/99-swappiness.conf 

7.4 CPU性能调整

7.4.1 安装cpufrequtils

pacman -S cpufrequtils 

7.4.2 设置CPU调节器

编辑/etc/default/cpufrequtils文件:

nano /etc/default/cpufrequtils 

设置GOVERNOR为”ondemand”或”performance”:

GOVERNOR="ondemand" 

启用并启动cpufrequtils服务:

systemctl enable cpufrequtils systemctl start cpufrequtils 

7.5 使用优化编译的软件包

Arch Linux ARM社区提供了一些优化编译的软件包,可以提高性能。您可以添加相应的软件源:

nano /etc/pacman.conf 

添加以下内容(以Raspberry Pi 4为例):

[alarm] Include = /etc/pacman.d/mirrorlist [aur] Include = /etc/pacman.d/mirrorlist 

然后更新系统:

pacman -Syu 

8. 进阶配置

8.1 自定义内核编译

如果您需要自定义内核以支持特定硬件或优化性能,可以按照以下步骤编译自定义内核:

# 安装必要的工具 pacman -S base-devel git bc kmod libelf # 获取内核源代码 git clone --depth=1 https://github.com/raspberrypi/linux # 进入源代码目录 cd linux # 配置内核(使用现有配置作为起点) make ARCH=arm bcmrpi_defconfig # 适用于Raspberry Pi 1/Zero # 或者 make ARCH=arm bcm2709_defconfig # 适用于Raspberry Pi 2/3 # 或者 make ARCH=arm64 bcm2711_defconfig # 适用于Raspberry Pi 4 # 自定义配置(可选) make ARCH=arm menuconfig # 适用于ARMv6/ARMv7 # 或者 make ARCH=arm64 menuconfig # 适用于ARMv8 # 编译内核 make -j$(nproc) ARCH=arm zImage modules dtbs # 适用于ARMv6/ARMv7 # 或者 make -j$(nproc) ARCH=arm64 Image modules dtbs # 适用于ARMv8 # 安装模块 sudo make ARCH=arm modules_install # 适用于ARMv6/ARMv7 # 或者 sudo make ARCH=arm64 modules_install # 适用于ARMv8 # 安装内核和设备树 sudo cp arch/arm/boot/zImage /boot/kernel.img # 适用于ARMv6/ARMv7 # 或者 sudo cp arch/arm64/boot/Image /boot/kernel8.img # 适用于ARMv8 sudo cp arch/arm/boot/dts/*.dtb /boot/ sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/ sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/ 

8.2 安全设置

8.2.1 配置防火墙

# 安装ufw pacman -S ufw # 启用ufw systemctl enable ufw systemctl start ufw # 设置默认策略 ufw default deny incoming ufw default allow outgoing # 允许必要的端口 ufw allow ssh ufw allow http ufw allow https # 启用防火墙 ufw enable 

8.2.2 禁用root登录

# 编辑SSH配置 nano /etc/ssh/sshd_config # 修改PermitRootLogin为no PermitRootLogin no # 重启SSH服务 systemctl restart sshd 

8.3 自动化脚本

创建自定义脚本来自动化常见任务:

# 创建脚本目录 mkdir -p ~/bin # 创建系统更新脚本 nano ~/bin/update-system 

添加以下内容:

#!/bin/bash # 系统更新脚本 echo "开始更新系统..." sudo pacman -Syu echo "清理包缓存..." sudo pacman -Scc echo "更新完成!" 

使脚本可执行:

chmod +x ~/bin/update-system 

8.4 备份策略

8.4.1 使用rsync进行备份

# 安装rsync pacman -S rsync # 创建备份脚本 nano ~/bin/backup 

添加以下内容:

#!/bin/bash # 备份脚本 SOURCE="/" DEST="/mnt/backup" # 创建快照目录 sudo mkdir -p $DEST/$(date +%Y%m%d) # 执行备份 sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} $SOURCE $DEST/$(date +%Y%m%d) echo "备份完成!" 

使脚本可执行:

chmod +x ~/bin/backup 

8.4.2 使用cron自动备份

# 安装cronie pacman -S cronie # 启用并启动cronie服务 systemctl enable cronie systemctl start cronie # 编辑crontab crontab -e 

添加以下内容以每天凌晨2点运行备份:

0 2 * * * /home/用户名/bin/backup 

9. 总结与建议

Arch Linux ARM提供了一个轻量级、高度可定制的操作系统,特别适合ARM设备。通过本指南,您应该能够成功安装、配置和优化Arch Linux ARM系统。

9.1 使用建议

  1. 定期更新系统:Arch Linux ARM采用滚动更新模式,定期更新可以确保系统安全和稳定。

  2. 备份重要数据:定期备份您的系统和重要数据,以防意外发生。

  3. 参与社区:Arch Linux ARM有一个活跃的社区,遇到问题时可以寻求帮助。

  4. 探索AUR:Arch User Repository提供了大量额外的软件包,可以扩展系统功能。

9.2 进一步学习的资源

  • Arch Linux ARM官方网站
  • Arch Linux Wiki
  • Arch Linux ARM论坛
  • ARM设备特定指南

9.3 社区支持

如果您遇到问题或需要帮助,可以通过以下方式获取支持:

  • Arch Linux ARM论坛
  • IRC频道:#archlinux-arm on Libera.Chat
  • 邮件列表

通过本指南,您应该能够在ARM设备上成功安装和配置Arch Linux ARM系统,并根据需要进行优化和自定义。无论您是新手还是有经验的用户,Arch Linux ARM都提供了一个强大而灵活的平台,可以满足各种需求。祝您使用愉快!