Arch Linux ARM 入门介绍与指南 – wiki基地


拥抱极简与力量:Arch Linux ARM 入门介绍与详细指南

Arch Linux 以其”Keep It Simple, Stupid” (KISS) 的哲学、滚动更新模型和高度的可定制性,在Linux爱好者和开发者社区中享有盛誉。而 Arch Linux ARM (ALARM) 则是将 Arch Linux 的强大和灵活性带到了基于ARM架构的设备上,尤其是在树莓派 (Raspberry Pi)、ODROID、Pine64 等流行的单板计算机 (SBC) 上大放异彩。

对于许多初学者而言,Arch Linux 可能显得有些“高冷”,而 Arch Linux ARM 更是多了一层硬件适配的复杂度。但正如 Arch Linux 承诺的那样,一旦掌握,它能为你带来一个干净、高效、完全由你掌控的系统。

本文旨在为有一定Linux基础(或愿意深入学习)但初次接触 Arch Linux ARM 的读者提供一个全面的入门介绍和详细的安装与配置指南,帮助你顺利踏出第一步,探索 ARM 设备的无限可能。

第一章:认识 Arch Linux ARM (ALARM)

什么是 Arch Linux ARM?

简单来说,Arch Linux ARM 是 Arch Linux 项目的一个分支,专注于为 ARM 架构处理器提供优化的发行版。它并非 Arch Linux 的一个修改版或衍生版,而是 Arch Linux 理念在 ARM 平台上的直接实现。这意味着它同样遵循 Arch Linux 的核心原则:

  1. KISS 原则: 提供一个最小化的基础系统,避免预装大量不必要的软件,一切从零开始构建。
  2. 滚动发布 (Rolling Release): 一次安装,持续更新。系统总是保持在最新的软件版本状态,无需进行版本升级。
  3. pacman 包管理器: 使用强大且快速的 pacman 作为默认包管理器,管理软件的安装、升级和移除。
  4. 用户中心: 依赖活跃的社区和详尽的 Wiki 文档。

ALARM 与标准 Arch Linux 的区别

虽然理念一致,但由于硬件架构的根本差异,ALARM 在某些方面与面向 x86_64 架构的标准 Arch Linux 有所不同:

  • 架构差异: ALARM 运行在 ARM 处理器上 (armv5, armv6h, armv7h, aarch64/arm64等),而标准 Arch Linux 主要面向 x86_64。这意味着它们使用不同的软件包仓库和编译目标。
  • 硬件支持: ALARM 的重点是支持各种 ARM 单板计算机、嵌入式设备、甚至部分 ARM 笔记本。其内核和引导方式需要针对不同的硬件进行适配。
  • 引导方式: ARM 设备的引导过程与 x86_64 PC 不同,通常涉及 U-Boot、Petitboot 或设备自带的引导程序。ALARM 的安装镜像会包含适配特定硬件的引导文件。
  • 镜像类型: ALARM 通常提供针对特定硬件型号预构建的基础系统镜像,而非通用的安装程序 ISO。你需要下载与你的设备匹配的镜像。
  • AUR (Arch User Repository): 虽然 AUR 的概念存在于 ALARM 中,但由于 ARM 架构的软件编译和依赖可能与 x86_64 不同,并非所有 AUR 中的软件包都能直接在 ARM 上编译成功。社区维护的 AUR for ARM 项目也在发展中。

为何选择 Arch Linux ARM?

选择 ALARM 通常出于以下原因:

  • 极致的控制与定制: 你可以从一个干净的基础系统开始,只安装你需要的组件,打造一个完全符合你需求的系统环境,无论是最小化的服务器还是自定义的桌面。
  • 最新的软件: 滚动发布模式意味着你可以第一时间获得最新的内核、驱动和应用程序版本,这对于开发者或需要最新特性的用户非常有吸引力。
  • 高效的包管理: pacman 是一个非常高效的包管理器,其速度和依赖处理能力备受好评。
  • 深入学习 Linux: 从零开始构建系统的过程是一个极好的学习机会,能让你更深入地理解 Linux 系统的组成和工作原理。
  • 优化性能: 移除不必要的服务和软件包可以减少资源占用,提升 ARM 设备的性能。
  • 活跃的社区和文档: 虽然特定于 ARM 的问题需要查阅 ALARM Wiki,但大量的通用 Arch Linux Wiki 和社区资源同样适用。

ALARM 的适用场景

  • 构建轻量级服务器(Web 服务器、文件服务器、DNS服务器等)
  • 搭建家庭自动化或物联网 (IoT) 控制中心
  • 作为嵌入式开发平台
  • 学习 Linux 系统管理和内核知识
  • 需要最新软件版本的开发或测试环境
  • 在资源受限的 ARM 设备上运行自定义应用程序

ALARM 的潜在挑战

  • 学习曲线陡峭: 特别是对于Linux新手而言,完全基于命令行的安装和配置过程需要投入时间和精力学习。
  • 硬件适配: 虽然主流设备支持良好,但对于一些较新或不常见的 ARM 设备,可能需要自己动手适配内核或驱动。
  • 缺乏预配置: 与Raspberry Pi OS (以前的 Raspbian) 或 Armbian 等预配置程度较高的发行版不同,ALARM 启动后是一个非常基础的系统,你需要手动配置网络、用户、服务等。

第二章:准备工作

在开始安装 Arch Linux ARM 之前,你需要准备好必要的硬件和软件。

硬件准备

  1. 兼容的 ARM 设备: 检查你的单板计算机是否在 ALARM 支持列表上。常见的设备包括:
    • Raspberry Pi (所有型号,但注意区分 armv6h, armv7h, aarch64 架构)
    • ODROID 系列 (C1, C2, C4, N2, XU4 等)
    • Pine64 系列 (Pine A64, Pinebook, PinePhone 等)
    • Khadas VIM 系列
    • Orange Pi, Banana Pi 部分型号
    • 更多设备请查阅 ALARM 官网的支持列表。
  2. 存储介质:
    • 对于大多数SBC,你需要一张高质量的 microSD 卡。推荐使用 Class 10 或更高速别 (UHS-I 或 UHS-III),容量建议至少 8GB,最好 16GB 或以上。
    • 部分设备支持 eMMC 模块,性能通常优于 microSD 卡。
    • 一些设备甚至支持从 USB 硬盘或 SSD 启动,这将提供更好的性能和稳定性(但这通常需要在系统运行后进行配置)。
  3. 电源适配器: 为你的 ARM 设备准备一个稳定、电流足够的电源。电源不足可能导致系统不稳定或无法启动。
  4. 网络连接:
    • 强烈建议使用有线网络 (Ethernet) 进行首次启动和安装。这可以省去配置 Wi-Fi 的麻烦,并确保下载软件包时网络稳定。
    • 如果设备只有 Wi-Fi,你需要了解如何在命令行下配置无线网络(通常使用 iwwpa_supplicant,或者安装 NetworkManager 等工具)。
  5. 另一台电脑: 用于下载 ALARM 镜像、校验文件以及将镜像写入存储介质。这台电脑可以是 Windows、macOS 或 Linux 系统。
  6. 读卡器: 用于连接 microSD 卡到你的电脑。
  7. 可选硬件:
    • 显示器、键盘、鼠标:如果你希望直接在设备上操作而不是通过 SSH 连接(对于树莓派等带显示输出的设备)。
    • 串口调试线:用于查看启动过程中的详细输出,排查启动问题(高级用户)。

软件准备

  1. ALARM 镜像文件: 访问 Arch Linux ARM 官方网站 (https://archlinuxarm.org/)。
    • 找到 “Downloads” 或 “Platforms” 部分。
    • 根据你的具体设备型号和架构,下载对应的镜像文件(通常是 .tar.gz 格式的压缩包)。请务必选择正确的设备镜像。
    • 同时下载对应的 SHA256 或 SHA512 校验文件 (.sha256.sha512)。
  2. 校验工具: 用于验证下载的镜像文件的完整性,防止文件损坏。Linux/macOS 自带 sha256sumsha512sum 命令,Windows 可以使用 PowerShell 的 Get-FileHash 或第三方工具。
  3. 镜像写入工具: 用于将 ALARM 镜像写入 microSD 卡或 eMMC。
    • 跨平台推荐: Etcher (https://www.balena.io/etcher/)。图形界面,操作简单,支持多种操作系统。
    • Linux/macOS: dd 命令。强大但危险,一旦目标设备选择错误可能导致数据丢失。
    • Windows: Rufus (https://rufus.ie/) 或 Win32 Disk Imager。
  4. SSH 客户端: 如果你打算通过 SSH 连接到设备进行安装和配置(无头模式),你需要一个 SSH 客户端。
    • Linux/macOS: 系统自带 OpenSSH (ssh 命令)。
    • Windows: PuTTY, MobaXterm, Windows Terminal (自带 OpenSSH) 等。

第三章:写入镜像到存储介质

这是安装 ALARM 的第一步,你需要将下载的镜像文件正确地写入到你的 microSD 卡或 eMMC 中。

步骤:

  1. 解压镜像文件: 你下载的镜像通常是一个 .tar.gz 压缩包。你需要先解压它,得到一个 .img.tar 文件。
    • 在 Linux/macOS 命令行:tar -xvf your-image-file.tar.gz
    • 在 Windows,可以使用 7-Zip 等工具进行解压。
    • 注意: 有些较新的镜像可能直接提供 .img.xz.img.gz 文件,这表示它们是压缩后的镜像文件,需要先解压得到 .img 文件。xz -d your-image-file.img.xzgunzip your-image-file.img.gz
  2. 校验镜像文件(强烈建议): 使用之前下载的校验文件验证解压后的镜像文件是否完整无损。
    • 将校验文件和解压后的镜像放在同一目录下。
    • 在命令行中运行校验命令,例如:sha256sum -c your-image-file.sha256
    • 如果输出显示 OK,则表示文件完整。如果显示错误,请重新下载。
  3. 将存储介质连接到电脑: 将 microSD 卡插入读卡器,然后连接到你的电脑。
  4. 写入镜像: 此步骤会擦除存储介质上的所有数据,请务必备份重要文件。

    • 使用 Etcher (推荐):
      • 下载并运行 Etcher。
      • 点击 “Flash from file”,选择你解压得到的 .img 文件。
      • 点击 “Select target”,选择你的 microSD 卡(请仔细核对,避免选错设备!)。
      • 点击 “Flash!”,等待写入完成。Etcher 会自动验证写入的数据。
    • 使用 dd 命令 (Linux/macOS):
      • 确定存储介质的设备路径: 运行 lsblk (Linux) 或 diskutil list (macOS) 命令,找到你的 microSD 卡对应的设备名(例如 /dev/sdX/dev/rdiskX)。小心!选错设备会擦除硬盘数据。
      • 卸载分区(如果已挂载): 例如,umount /dev/sdX*diskutil unmountDisk /dev/rdiskX
      • 执行写入命令:
        • Linux: sudo dd bs=1M if=/path/to/your-image-file.img of=/dev/sdX status=progress oflag=sync (将 /path/to/your-image-file.img 替换为你的镜像文件路径,/dev/sdX 替换为你的设备路径)。status=progress 显示进度(部分系统可能不支持),oflag=sync 确保数据完全写入。
        • macOS: sudo dd bs=1m if=/path/to/your-image-file.img of=/dev/rdiskX (将 /path/to/your-image-file.img 替换为你的镜像文件路径,/dev/rdiskX 替换为你的设备路径,注意 macOS 通常使用 /dev/rdiskX 以获得更快的速度)。
      • 等待命令执行完成,期间没有进度条是正常的(除非使用了 status=progress)。
    • 使用 Rufus (Windows):
      • 下载并运行 Rufus。
      • 在 “Device” 下拉菜单中选择你的 microSD 卡(务必核对)。
      • 在 “Boot selection” 中点击 “SELECT”,选择你的 .img 文件。
      • 通常 Rufus 会自动识别镜像类型。保持默认设置即可。
      • 点击 “START”,警告数据会被擦除,确认后开始写入。
    • 安全弹出存储介质: 写入完成后,务必安全弹出 microSD 卡,避免数据损坏。

第四章:首次启动与基础配置

现在,你已经将 ALARM 镜像写入了存储介质。将存储介质插入到你的 ARM 设备中,连接好网线(强烈建议),然后插上电源启动设备。

ALARM 镜像通常包含了一个最小化的系统和适配设备的引导程序。首次启动后,你需要通过 SSH 或直接连接显示器/键盘来访问设备,并进行一些基础配置。

访问设备

  1. 无头模式 (通过 SSH 访问 – 推荐):
    • 设备启动后,它会尝试通过 DHCP 获取 IP 地址。
    • 你需要找到设备的 IP 地址。方法有很多:
      • 查看你的路由器后台管理界面,查找已连接设备的列表。
      • 使用网络扫描工具(如 nmap 或手机 App)扫描你的局域网。
      • 如果你的设备有指示灯,观察其状态变化,有时指示灯会提示网络连接成功。
    • 一旦获取到 IP 地址,使用 SSH 客户端连接。
    • 默认用户名和密码: ALARM 镜像的默认用户名和密码通常是 root / root 或者 alarm / alarm具体取决于你下载的镜像和设备型号,请查阅 ALARM 官网对应设备的文档!
    • 打开你的 SSH 客户端,连接到设备的 IP 地址,使用默认凭据登录。例如:ssh root@your_device_ip
  2. 带显示器和键盘模式:
    • 如果你的设备支持视频输出,并且你连接了显示器和键盘,设备启动后可能会直接显示登录提示符。
    • 输入默认用户名和密码登录。

基础配置步骤 (通过命令行操作)

登录系统后,你会进入命令行界面。以下是首次启动后必须执行的关键配置步骤:

  1. 更改默认密码 (非常重要!): 默认密码存在严重安全风险。
    • 如果你以 root 用户登录:
      bash
      passwd

      输入并确认新的 root 密码。
    • 如果你的镜像有 alarm 用户,并且你以 alarm 登录(或者希望保留 alarm 用户):
      bash
      passwd alarm

      输入并确认新的 alarm 用户密码。
    • 强烈建议在创建新用户后禁用 root 远程登录。
  2. 更新系统: 这是 Arch Linux 的核心操作,确保你的系统软件包是最新状态。
    bash
    pacman -Syu

    * pacman -S 用于同步软件包数据库并安装软件。
    * -y 选项会从服务器刷新软件包数据库。
    * -u 选项会升级所有已安装的软件包。
    * 此命令会提示你确认下载和安装,输入 Y 并回车。
    * 注意: 首次运行 -Syu 可能会下载大量更新,取决于镜像的发布时间和你的网络速度。
    * 如果在更新过程中遇到内核更新,更新完成后可能需要重启设备 (sudo reboot) 使新内核生效。
  3. 创建新的普通用户 (强烈建议): 日常操作应避免直接使用 root 用户,以提高安全性。
    bash
    useradd -m -G wheel yourusername
    # 解释:
    # useradd: 添加用户命令
    # -m: 创建用户主目录
    # -G wheel: 将用户添加到 wheel 组。wheel 组通常用于授权用户执行 sudo 命令。
    # yourusername: 替换为你想要创建的用户名

    然后为新用户设置密码:
    bash
    passwd yourusername
    # 输入并确认新用户的密码

    配置 sudo (如果你的镜像没有默认配置):

    • ALARM 镜像通常已经配置了 wheel 组可以使用 sudo。你可以通过编辑 /etc/sudoers 文件来确认或修改。使用 visudo 命令编辑此文件,不要直接用文本编辑器!
      bash
      EDITOR=vim visudo # 或者 EDITOR=nano visudo,根据你熟悉的编辑器

      找到类似下面的一行(可能被注释掉):
      # %wheel ALL=(ALL:ALL) ALL
      取消注释(删除前面的 # 符号):
      %wheel ALL=(ALL:ALL) ALL
      保存并退出编辑器。现在 wheel 组的用户就可以使用 sudo 命令了。
  4. 以新用户身份登录: 注销当前的 root 会话(输入 exit 或按 Ctrl+D),然后使用新创建的用户名和密码通过 SSH 或直接登录。验证新用户是否能正常登录。
  5. 测试 sudo: 以新用户登录后,尝试执行一个需要 root 权限的命令,例如更新系统(它应该会提示你输入新用户的密码):
    bash
    sudo pacman -Syu

    如果命令正常执行,说明 sudo 配置成功。此后,日常管理任务都应该使用 sudo 执行。
  6. 配置时区和时间同步:
    bash
    timedatectl list-timezones # 列出所有可用时区
    sudo timedatectl set-timezone "Asia/Shanghai" # 将 "Asia/Shanghai" 替换为你所在的时区
    sudo timedatectl set-ntp true # 启用 NTP 时间同步
    timedatectl status # 检查时间同步状态
  7. 配置本地化 (Locale): 决定系统的语言和字符集。
    • 编辑 /etc/locale.gen 文件:
      bash
      sudo nano /etc/locale.gen # 或 sudo vim /etc/locale.gen

      找到你需要的语言和字符集组合(例如 en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8),取消其前面的 # 注释符号。建议保留 en_US.UTF-8 UTF-8 作为备用。
      保存并退出。
    • 生成本地化文件:
      bash
      sudo locale-gen
    • 设置系统默认本地化(可选,如果你想改变默认语言):
      bash
      sudo nano /etc/locale.conf

      添加或修改行:
      LANG="en_US.UTF-8" # 或 LANG="zh_CN.UTF-8"
      保存并退出。可能需要重启或重新登录才能完全生效。
  8. 配置主机名: 设置你的设备在网络中的名称。
    bash
    sudo nano /etc/hostname

    文件内容只包含一行,输入你想要设置的主机名(例如 myalarmpi)。保存并退出。重启后生效。
  9. 网络配置 (如果不是使用 DHCP 有线连接):
    • 静态 IP (有线): 如果需要设置静态 IP,通常需要修改 /etc/dhcpcd.conf (如果使用 dhcpcd) 或配置 systemd-networkd。查阅 Arch Wiki 或 ALARM Wiki 中关于网络配置的部分。
    • Wi-Fi: 配置 Wi-Fi 需要安装并配置 wpa_supplicant 或使用 netctl、NetworkManager 等工具。这通常涉及创建配置文件,输入 SSID 和密码。详细步骤请查阅 ALARM Wiki 中对应你设备的 Wi-Fi 配置指南。这是初学者可能遇到的一个难点,推荐先使用有线连接。
  10. 扩展文件系统 (如果镜像没有自动扩展): 一些设备或较旧的镜像可能不会自动将根分区扩展到整个 SD 卡容量。你需要手动扩展。
    • 检查分区情况: 使用 lsblkdf -h 查看根分区的大小是否等于你的 SD 卡容量。
    • 扩展方法: 具体方法取决于你的设备和分区工具。对于树莓派等设备,可能有特定的脚本(如 raspi-config 中的类似选项,但 ALARM 不提供完整的 raspi-config)。通用的方法是使用 fdiskparted 删除并重新创建根分区(确保起始扇区不变!),然后使用 resize2fs 扩展文件系统。此操作有风险,请务必查阅 ALARM Wiki 中关于你设备文件系统扩展的具体指南。 许多新版镜像和主流设备会自动处理这一步。

至此,你的 Arch Linux ARM 基础系统已经配置完成,可以正常联网、更新,并且有了一个安全的非 root 用户。

第五章:安装常用软件与进一步配置 (可选)

现在你拥有了一个干净的 ALARM 系统,可以根据你的需求安装和配置软件了。使用 pacman -S <package_name> 命令来安装软件。

常用工具

bash
sudo pacman -S htop vim nano git screenfetch glances

* htop: 增强版的进程查看工具。
* vim/nano: 文本编辑器(根据你的喜好选择)。
* git: 版本控制工具。
* screenfetch/glances: 系统信息和监控工具。

构建 AUR 软件包所需工具 (可选)

如果你打算从 AUR 安装软件,你需要安装构建工具链。
bash
sudo pacman -S base-devel

这会安装包括 gcc, make, pkgconf 等在内的编译必需软件包。

安装桌面环境 (可选,资源消耗大)

ARM 设备,尤其是低端型号,可能不适合运行完整的桌面环境。但如果你的设备性能足够(例如树莓派 4B,ODROID N2 等),你可以尝试安装。

  1. 安装 Xorg 显示服务器:
    bash
    sudo pacman -S xorg-server xorg-apps xorg-xinit
  2. 选择并安装桌面环境: 例如 XFCE、GNOME、KDE Plasma 等。选择一个相对轻量级的更适合 ARM 设备。
    • XFCE (相对轻量):
      bash
      sudo pacman -S xfce4 xfce4-goodies lightdm lightdm-gtk-greeter

      安装完成后,启用 LightDM 显示管理器:
      bash
      sudo systemctl enable lightdm
      sudo systemctl start lightdm # 启动桌面环境 (或重启设备)
    • GNOME (资源消耗较大):
      bash
      sudo pacman -S gnome gnome-extra gdm

      安装完成后,启用 GDM 显示管理器:
      bash
      sudo systemctl enable gdm
      sudo systemctl start gdm # 启动桌面环境 (或重启设备)
    • KDE Plasma (资源消耗较大):
      bash
      sudo pacman -S plasma kde-applications sddm

      安装完成后,启用 SDDM 显示管理器:
      bash
      sudo systemctl enable sddm
      sudo systemctl start sddm # 启动桌面环境 (或重启设备)
  3. 安装显示驱动: 某些设备(如树莓派)可能需要特定的闭源驱动才能获得硬件加速。这部分配置高度依赖于具体设备,请查阅 ALARM Wiki 中对应设备的说明。

其他常见服务

  • Web 服务器: sudo pacman -S nginxsudo pacman -S apache
  • 数据库: sudo pacman -S mariadbsudo pacman -S postgresql
  • 文件共享: sudo pacman -S samba (Samba服务器) 或 sudo pacman -S nfs-utils (NFS服务器/客户端)

使用 AUR 助手 (可选,有风险)

手动从 AUR 构建软件包需要执行 makepkg -si 等步骤,管理起来比较繁琐。社区开发了一些 AUR 助手(如 yay, pamac 等)可以简化过程。请注意,AUR 和 AUR 助手都是非官方的,使用时需要自行承担风险,务必审查 PKGBUILD 文件内容。

你可以通过手动方式安装一个 AUR 助手,例如 yay:

  1. 确保已安装 base-develgit
  2. 克隆 yay 的 AUR 仓库:
    bash
    git clone https://aur.archlinux.org/yay.git
    cd yay
  3. 构建并安装:
    bash
    makepkg -si

    这个命令会检查依赖,编译软件包,然后使用 pacman 安装。
  4. 安装完成后,你就可以使用 yay 命令搜索和安装 AUR 软件包了,例如 yay -S google-chrome (如果 AUR 中有 ARM 版本)。

第六章:获取帮助与社区资源

在使用 Arch Linux ARM 的过程中,遇到问题是正常的。ALARM 拥有活跃的社区和丰富的文档资源。

  • Arch Linux ARM Wiki: 这是你的首要信息来源。访问 https://archlinuxarm.org/wiki/Main_Page,查找关于你特定设备的页面,以及各种通用配置的指南。绝大多数问题的解决方案都能在这里找到。
  • Arch Linux Wiki: 很多非特定于 ARM 的配置(如网络、服务管理、软件包管理等)都可以参考标准的 Arch Linux Wiki (https://wiki.archlinux.org/)。
  • Arch Linux ARM 论坛: 访问 ALARM 官网的论坛,你可以在这里提问、寻求帮助或分享经验。
  • Reddit Arch Linux 社区: r/archlinuxarmr/archlinux 子版块。
  • IRC 频道: freenode 网络上的 #archlinux-arm 频道。

寻求帮助时,请务必提供清晰的设备型号、ALARM 版本、你执行的步骤、遇到的错误信息(完整复制粘贴)以及你已经尝试过的解决方案。

结语

Arch Linux ARM 提供了一个在 ARM 设备上体验 Arch Linux 强大功能和灵活性的绝佳机会。从最小化的基础系统开始,你可以完全按照自己的意愿构建和定制你的设备。虽然入门可能需要投入一些时间和精力来学习命令行操作和 Arch Linux 的哲学,但这个过程本身就是一种宝贵的学习体验。

通过遵循本指南,你应该能够顺利地在你的 ARM 设备上安装并配置一个可用的 Arch Linux ARM 系统。记住,Arch Wiki 和 ALARM Wiki 是你最好的朋友,它们包含了解决大多数问题的详细信息。

祝你在 Arch Linux ARM 的世界里探索愉快,享受掌控系统的乐趣!


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部