活动公告

系统通知
05-18 21:22
系统通知
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

Arch Linux ARM高级用户实战经验分享从系统安装到深度优化的全方位指南助你掌握这款轻量级灵活的嵌入式Linux发行版

SunJu_FaceMall

3万

主题

2860

科技点

3万

积分

白金月票

碾压王

积分
32872

塔罗立华奏

<font color=白金月票" /> 发表于 2025-9-11 18:10:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
引言

Arch Linux ARM是Arch Linux的ARM架构移植版本,专为嵌入式设备设计。它继承了Arch Linux的核心理念:简单、轻量、用户中心。与其他嵌入式Linux发行版相比,Arch Linux ARM提供了滚动更新模型、最小化基础系统以及高度可定制的特性,使其成为高级用户和技术爱好者的理想选择。本指南将带你从零开始,逐步掌握Arch Linux ARM的安装、配置和优化技巧,帮助你充分发挥这款轻量级灵活的嵌入式Linux发行版的潜力。

准备工作

在开始安装Arch Linux ARM之前,需要做好充分的准备工作,以确保安装过程顺利进行。

硬件要求

• 支持的ARM设备:如Raspberry Pi、BeagleBone、ODROID等
• 至少4GB的SD卡或eMMC存储(推荐16GB或更大容量)
• 稳定的电源供应(特别是对于Raspberry Pi这类对电源质量敏感的设备)
• 网络连接(以太网或Wi-Fi)
• 主机系统(Linux、macOS或Windows)

软件工具

• SD卡格式化工具(如fdisk或gnome-disks)
• 镜像写入工具(如dd或Etcher)
• 终端模拟器和SSH客户端
• 可选:串口调试工具(用于没有显示器的设备)

获取系统镜像

访问Arch Linux ARM官方网站(https://archlinuxarm.org/)下载适用于你的设备的系统镜像。确保选择正确的设备型号和架构。例如,RaspberryPi 4用户应下载ArchLinuxARM-rpi-aarch64-latest.tar.gz文件。

系统安装

安装Arch Linux ARM的过程需要一定的技术知识,以下是详细步骤:

准备存储介质

首先,需要准备SD卡或eMMC存储:
  1. # 确定SD卡设备名(假设为/dev/sdx,请务必确认正确的设备名,否则可能导致数据丢失)
  2. lsblk
  3. # 卸载所有分区
  4. sudo umount /dev/sdx*
  5. # 使用fdisk创建分区表
  6. sudo fdisk /dev/sdx
  7. # 在fdisk中执行以下命令:
  8. # o - 创建新的空DOS分区表
  9. # n - 创建新分区
  10. # p - 主分区
  11. # 1 - 分区号
  12. # Enter - 默认起始扇区
  13. # +100M - 为boot分区分配100MB
  14. # t - 更改分区类型
  15. # c - W95 FAT32 (LBA)
  16. # n - 创建另一个分区
  17. # p - 主分区
  18. # 2 - 分区号
  19. # Enter - 默认起始扇区
  20. # Enter - 使用剩余空间
  21. # w - 写入更改并退出
  22. # 格式化分区
  23. sudo mkfs.vfat -F32 /dev/sdx1
  24. sudo mkfs.ext4 /dev/sdx2
复制代码

挂载分区并安装系统
  1. # 创建挂载点
  2. sudo mkdir -p /mnt/arch
  3. # 挂载根分区
  4. sudo mount /dev/sdx2 /mnt/arch
  5. # 创建boot目录并挂载boot分区
  6. sudo mkdir /mnt/arch/boot
  7. sudo mount /dev/sdx1 /mnt/arch/boot
  8. # 下载并解压系统镜像(以Raspberry Pi 4为例)
  9. wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz
  10. sudo bsdtar -xpf ArchLinuxARM-rpi-aarch64-latest.tar.gz -C /mnt/arch
  11. # 生成fstab文件
  12. sudo genfstab -U /mnt/arch >> /mnt/arch/etc/fstab
  13. # 卸载分区
  14. sudo umount /mnt/arch/boot /mnt/arch
复制代码

首次启动和初始配置

将SD卡插入设备,连接电源和网络。等待设备启动后,通过SSH连接:
  1. # 默认用户名和密码
  2. ssh alarm@alarmpi
  3. # 默认密码:alarm
  4. # 切换到root用户
  5. su
  6. # 默认密码:root
  7. # 更新系统
  8. pacman -Syu
  9. # 设置时区
  10. ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
  11. hwclock --systohc
  12. # 设置主机名
  13. echo myhostname > /etc/hostname
  14. # 配置本地化
  15. echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
  16. locale-gen
  17. echo "LANG=en_US.UTF-8" > /etc/locale.conf
  18. # 创建新用户并设置密码
  19. useradd -m -G wheel -s /bin/bash newusername
  20. passwd newusername
  21. # 配置sudo
  22. pacman -S sudo
  23. visudo
  24. # 取消注释 %wheel ALL=(ALL) ALL
  25. # 重启系统
  26. reboot
复制代码

基础配置

系统安装完成后,需要进行一些基础配置以确保系统安全且功能完善:

网络配置

对于有线网络,系统通常会自动配置。对于无线网络,需要安装和配置相关软件:
  1. # 安装网络工具
  2. pacman -S netctl wireless_tools wpa_supplicant dialog
  3. # 配置无线网络
  4. wifi-menu
  5. # 或者手动创建配置文件
  6. cp /etc/netctl/examples/wireless-wpa /etc/netctl/
  7. nano /etc/netctl/wireless-wpa
  8. # 修改SSID和Key
  9. # 启用配置
  10. netctl enable wireless-wpa
  11. netctl start wireless-wpa
复制代码

对于更高级的网络配置,可以使用NetworkManager:
  1. # 安装NetworkManager
  2. pacman -S networkmanager
  3. # 启用NetworkManager服务
  4. systemctl enable NetworkManager
  5. systemctl start NetworkManager
  6. # 使用nmcli配置网络
  7. nmcli device wifi connect SSID password password
复制代码

系统更新和维护
  1. # 更新系统
  2. pacman -Syu
  3. # 清理包缓存
  4. pacman -Scc
  5. # 查找孤立包
  6. pacman -Qtdq
  7. # 删除孤立包
  8. pacman -Rns $(pacman -Qtdq)
  9. # 查看安装的包
  10. pacman -Qe
复制代码

安全设置
  1. # 配置防火墙
  2. pacman -S ufw
  3. ufw enable
  4. ufw default deny
  5. ufw allow ssh
  6. # 禁用root SSH登录
  7. nano /etc/ssh/sshd_config
  8. # 修改 PermitRootLogin yes 为 PermitRootLogin no
  9. systemctl restart sshd
  10. # 安装fail2ban防止暴力破解
  11. pacman -S fail2ban
  12. systemctl enable fail2ban
  13. systemctl start fail2ban
复制代码

系统优化

Arch Linux ARM的优势之一是其高度可定制性,以下是一些优化建议:

性能优化
  1. # 查看系统信息
  2. uname -a
  3. lscpu
  4. free -h
  5. df -h
  6. # 配置swappiness(默认值为60)
  7. echo "vm.swappiness=10" >> /etc/sysctl.d/99-sysctl.conf
  8. # 安装和配置zram
  9. pacman -S zram-generator
  10. systemctl enable systemd-zram-setup@zram0.service
  11. systemctl start systemd-zram-setup@zram0.service
  12. # 优化文件系统(对于ext4)
  13. tune2fs -o journal_data_writeback /dev/sdx2
  14. tune2fs -O ^has_journal /dev/sdx2
  15. e2fsck -f /dev/sdx2
复制代码

启动优化
  1. # 查看启动时间
  2. systemd-analyze
  3. # 查看详细的启动过程
  4. systemd-analyze blame
  5. # 禁用不必要的服务
  6. systemctl disable bluetooth.service
  7. systemctl disable cups.service
  8. # 使用并行启动
  9. nano /boot/config.txt
  10. # 添加或修改参数,如:maxcpus=2
复制代码

内核优化
  1. # 安装linux-aarch64包(适用于ARM64设备)
  2. pacman -S linux-aarch64
  3. # 查看当前内核参数
  4. cat /proc/cmdline
  5. # 修改内核参数
  6. nano /boot/boot.txt
  7. # 添加或修改参数,如:quiet loglevel=3 nowatchdog
  8. # 保存后执行
  9. ./mkscr
  10. # 编译自定义内核(高级用户)
  11. pacman -S base-devel git bc kmod
  12. git clone https://github.com/archlinuxarm/PKGBUILDs.git
  13. cd PKGBUILDs/core/linux-aarch64
  14. makepkg -si
复制代码

CPU频率和温度管理
  1. # 安装cpufrequtils
  2. pacman -S cpufrequtils
  3. # 设置CPU频率调节器
  4. echo "governor=ondemand" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
  5. # 安装温度监控工具
  6. pacman -S lm_sensors
  7. sensors-detect
  8. sensors
  9. # 安装stress测试工具
  10. pacman -S stress
  11. stress --cpu 4 --timeout 60s
复制代码

软件管理

Arch Linux ARM使用pacman作为包管理器,以下是软件管理的高级技巧:

包管理基础
  1. # 搜索软件包
  2. pacman -Ss keyword
  3. # 安装软件包
  4. pacman -S package_name
  5. # 删除软件包
  6. pacman -R package_name
  7. # 删除软件包及其依赖
  8. pacman -Rs package_name
  9. # 查询已安装的软件包
  10. pacman -Q package_name
  11. # 显示软件包信息
  12. pacman -Qi package_name
  13. # 列出软件包的文件
  14. pacman -Ql package_name
复制代码

使用AUR(Arch User Repository)

Arch Linux ARM也可以使用AUR,但需要一些额外步骤:
  1. # 安装必要的工具
  2. pacman -S base-devel git
  3. # 安装AUR助手(如yay)
  4. git clone https://aur.archlinux.org/yay.git
  5. cd yay
  6. makepkg -si
  7. # 使用yay安装AUR包
  8. yay -S aur_package_name
复制代码

创建自定义软件源
  1. # 创建本地仓库目录
  2. mkdir -p /home/username/customrepo
  3. # 添加包到本地仓库
  4. repo-add /home/username/customrepo/customrepo.db.tar.gz package1.pkg.tar.xz package2.pkg.tar.xz
  5. # 创建自定义源配置文件
  6. nano /etc/pacman.d/customrepo
  7. # 添加以下内容:
  8. # [customrepo]
  9. # SigLevel = Optional TrustAll
  10. # Server = file:///home/username/customrepo
  11. # 在pacman.conf中包含自定义源
  12. nano /etc/pacman.conf
  13. # 在文件末尾添加:
  14. # Include = /etc/pacman.d/customrepo
  15. # 更新包数据库
  16. pacman -Sy
复制代码

包回滚和版本锁定
  1. # 查看包历史版本
  2. pacman -Sii package_name
  3. # 安装特定版本的包
  4. pacman -U /var/cache/pacman/pkg/package_name-old-version.pkg.tar.xz
  5. # 锁定包版本
  6. pacman -Syu --ignore package_name
  7. # 使用pacman.conf锁定包
  8. nano /etc/pacman.conf
  9. # 添加:
  10. # IgnorePkg = package_name1 package_name2
复制代码

故障排除

在使用Arch Linux ARM过程中,可能会遇到各种问题,以下是一些常见问题及解决方案:

启动问题
  1. # 系统无法启动,检查日志
  2. journalctl -xb
  3. # 如果无法进入系统,使用Live USB或SD卡启动
  4. # 挂载根分区
  5. mount /dev/sdx2 /mnt
  6. # 检查fstab
  7. cat /mnt/etc/fstab
  8. # 修复文件系统
  9. fsck /dev/sdx2
  10. # 重新安装引导加载程序
  11. # 对于Raspberry Pi,检查/boot/config.txt
  12. nano /mnt/boot/config.txt
复制代码

网络问题
  1. # 检查网络接口
  2. ip a
  3. # 检查网络连接
  4. ping archlinux.org
  5. # 重启网络服务
  6. systemctl restart systemd-networkd
  7. # 检查DNS解析
  8. nano /etc/resolv.conf
  9. # 确保有有效的DNS服务器,如:
  10. # nameserver 8.8.8.8
  11. # nameserver 8.8.4.4
复制代码

软件包问题
  1. # 更新时出现GPG密钥错误
  2. pacman-key --init
  3. pacman-key --populate archlinuxarm
  4. # 清理pacman缓存
  5. pacman -Scc
  6. # 强制重新安装软件包
  7. pacman -S --overwrite "*" package_name
  8. # 重置所有软件包
  9. pacman -Qq | pacman -S -
复制代码

系统资源监控与诊断
  1. # 安装系统监控工具
  2. pacman -S htop iotop nethogs
  3. # 查看系统资源使用情况
  4. htop
  5. # 查看磁盘I/O
  6. iotop
  7. # 查看网络使用情况
  8. nethogs
  9. # 查看系统日志
  10. journalctl -f
  11. # 查看内核日志
  12. dmesg -w
复制代码

高级应用

Arch Linux ARM的灵活性使其适用于各种高级应用场景:

设置Docker
  1. # 安装Docker
  2. pacman -S docker
  3. # 启动Docker服务
  4. systemctl enable docker
  5. systemctl start docker
  6. # 添加用户到docker组
  7. usermod -aG docker username
  8. # 测试Docker
  9. docker run armhf/alpine echo "Hello from Docker on ARM"
  10. # 运行一个ARM容器
  11. docker run -it --rm arm32v7/alpine sh
复制代码

设置Kubernetes集群
  1. # 安装kubeadm、kubelet和kubectl
  2. pacman -S kubeadm kubelet kubectl
  3. # 禁用swap
  4. swapoff -a
  5. sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
  6. # 启用内核模块
  7. modprobe br_netfilter
  8. echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
  9. # 初始化主节点
  10. kubeadm init --pod-network-cidr=10.244.0.0/16
  11. # 配置kubectl
  12. mkdir -p $HOME/.kube
  13. cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  14. chown $(id -u):$(id -g) $HOME/.kube/config
  15. # 安装网络插件(如Flannel)
  16. kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
复制代码

设置媒体服务器
  1. # 安装Plex媒体服务器
  2. yay -S plex-media-server
  3. # 启动Plex服务
  4. systemctl enable plexmediaserver.service
  5. systemctl start plexmediaserver.service
  6. # 配置Plex
  7. # 访问 http://your-server-ip:32400/web
  8. # 安装Transmission BT客户端
  9. pacman -S transmission-cli
  10. # 配置Transmission
  11. systemctl edit transmission
  12. # 添加以下内容:
  13. # [Service]
  14. # User=yourusername
  15. # Group=yourusername
  16. # 启动Transmission
  17. systemctl enable transmission.service
  18. systemctl start transmission.service
复制代码

设置家庭自动化
  1. # 安装Home Assistant
  2. pacman -S python python-pip python-venv libffi
  3. # 创建Home Assistant用户
  4. useradd -rm homeassistant -G dialout
  5. # 创建虚拟环境
  6. sudo -u homeassistant -H -s
  7. cd /srv/homeassistant
  8. python3 -m venv .
  9. source bin/activate
  10. python3 -m pip install --upgrade pip
  11. python3 -m pip install homeassistant
  12. # 启动Home Assistant
  13. hass
  14. # 创建systemd服务
  15. nano /etc/systemd/system/home-assistant@homeassistant.service
  16. # 添加以下内容:
  17. # [Unit]
  18. # Description=Home Assistant
  19. # After=network-online.target
  20. #
  21. # [Service]
  22. # Type=simple
  23. # User=%i
  24. # ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"
  25. #
  26. # [Install]
  27. # WantedBy=multi-user.target
  28. # 启用服务
  29. systemctl enable home-assistant@homeassistant.service
  30. systemctl start home-assistant@homeassistant.service
复制代码

设置Git服务器
  1. # 安装Git
  2. pacman -S git
  3. # 创建git用户
  4. useradd -m -s /usr/bin/git-shell git
  5. # 创建git仓库目录
  6. mkdir -p /home/git/repositories
  7. chown git:git /home/git/repositories
  8. chmod 700 /home/git/repositories
  9. # 创建示例仓库
  10. cd /home/git/repositories
  11. mkdir myproject.git
  12. cd myproject.git
  13. git init --bare
  14. chown -R git:git /home/git/repositories/myproject.git
  15. # 配置SSH访问
  16. # 客户端上:
  17. git clone git@your-server-ip:repositories/myproject.git
复制代码

系统备份与恢复

定期备份系统是良好的实践,特别是对于嵌入式设备:

创建系统备份
  1. # 使用rsync备份整个系统
  2. sudo rsync -aAXv / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /path/to/backup/folder
  3. # 使用tar创建压缩备份
  4. sudo tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --exclude=/proc --exclude=/tmp --exclude=/mnt --exclude=/dev --exclude=/sys /
  5. # 创建SD卡镜像备份
  6. sudo dd if=/dev/sdx of=/path/to/backup.img bs=4M status=progress
复制代码

系统恢复
  1. # 从rsync备份恢复
  2. sudo rsync -aAXv /path/to/backup/folder /
  3. # 从tar备份恢复
  4. sudo tar -xvpzf backup.tar.gz -C /
  5. # 从SD卡镜像恢复
  6. sudo dd if=/path/to/backup.img of=/dev/sdx bs=4M status=progress
复制代码

自动化备份脚本
  1. # 创建备份脚本
  2. nano /usr/local/bin/backup.sh
  3. #!/bin/bash
  4. BACKUP_DIR="/mnt/backup"
  5. DATE=$(date +%Y%m%d-%H%M%S)
  6. BACKUP_FILE="$BACKUP_DIR/backup-$DATE.tar.gz"
  7. # 创建备份目录(如果不存在)
  8. mkdir -p $BACKUP_DIR
  9. # 创建备份
  10. tar -cvpzf $BACKUP_FILE --exclude=$BACKUP_DIR --exclude=/proc --exclude=/tmp --exclude=/mnt --exclude=/dev --exclude=/sys /
  11. # 保留最近5个备份,删除其余的
  12. ls -t $BACKUP_DIR/backup-*.tar.gz | tail -n +6 | xargs rm --
  13. echo "Backup completed: $BACKUP_FILE"
  14. # 使脚本可执行
  15. chmod +x /usr/local/bin/backup.sh
  16. # 添加到crontab以定期执行
  17. crontab -e
  18. # 添加以下行以每周日凌晨2点执行备份:
  19. # 0 2 * * 0 /usr/local/bin/backup.sh
复制代码

总结与建议

Arch Linux ARM是一款强大而灵活的嵌入式Linux发行版,适合高级用户和技术爱好者。通过本指南,你应该已经掌握了从系统安装到深度优化的全方位知识。以下是一些额外的建议:

1. 定期备份系统,特别是重要配置文件和数据。使用自动化备份脚本可以简化这个过程。
2. 保持系统更新,但重要生产环境建议在更新前进行测试。可以使用pacman -Syu --ignore linux来跳过内核更新,以避免潜在的兼容性问题。
3. 参与Arch Linux ARM社区,获取最新信息和技术支持。官方论坛和IRC频道是获取帮助的好地方。
4. 探索更多定制选项,根据你的具体需求优化系统。例如,针对特定工作负载调整内核参数,或使用自定义编译的软件包以获得更好的性能。
5. 考虑使用版本控制系统(如Git)管理你的配置文件,便于追踪变更和恢复。例如:

定期备份系统,特别是重要配置文件和数据。使用自动化备份脚本可以简化这个过程。

保持系统更新,但重要生产环境建议在更新前进行测试。可以使用pacman -Syu --ignore linux来跳过内核更新,以避免潜在的兼容性问题。

参与Arch Linux ARM社区,获取最新信息和技术支持。官方论坛和IRC频道是获取帮助的好地方。

探索更多定制选项,根据你的具体需求优化系统。例如,针对特定工作负载调整内核参数,或使用自定义编译的软件包以获得更好的性能。

考虑使用版本控制系统(如Git)管理你的配置文件,便于追踪变更和恢复。例如:
  1. # 初始化配置仓库
  2. git init /etc
  3. cd /etc
  4. git add .
  5. git commit -m "Initial commit"
  6. # 创建一个脚本来自动提交配置更改
  7. nano /usr/local/bin/etckeeper-commit
  8. #!/bin/bash
  9. cd /etc
  10. git add -A
  11. if ! git diff-index --quiet HEAD; then
  12.     git commit -m "Auto-commit changes on $(date)"
  13. fi
  14. chmod +x /usr/local/bin/etckeeper-commit
  15. # 添加到cron以每天提交更改
  16. crontab -e
  17. # 添加:0 0 * * * /usr/local/bin/etckeeper-commit
复制代码

1. 监控系统资源使用情况,及时发现并解决性能问题。可以使用工具如htop、glances或自定义脚本来监控系统状态。
2. 考虑使用容器化技术(如Docker或Podman)来隔离应用程序,简化部署和更新过程。

监控系统资源使用情况,及时发现并解决性能问题。可以使用工具如htop、glances或自定义脚本来监控系统状态。

考虑使用容器化技术(如Docker或Podman)来隔离应用程序,简化部署和更新过程。

Arch Linux ARM的学习曲线可能较陡,但一旦掌握,你将拥有一套高度定制、高效运行的嵌入式系统。不断实践和探索,你会发现Arch Linux ARM的无限可能,从简单的家庭服务器到复杂的嵌入式系统,它都能胜任。

最后,记住Arch Linux ARM的核心理念:KISS(Keep It Simple, Stupid)。在追求高级功能的同时,始终保持系统的简洁和高效,这才是Arch Linux ARM的真正魅力所在。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则