简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français

站内搜索

搜索

活动公告

11-02 12:46
10-23 09:32
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,将及时处理!
10-23 09:31
10-23 09:28
通知:签到时间调整为每日4:00(东八区)
10-23 09:26

Arch Linux ARM版本安装全攻略 从常见问题到解决方案助你轻松搞定嵌入式系统搭建

3万

主题

424

科技点

3万

积分

大区版主

木柜子打湿

积分
31917

三倍冰淇淋无人之境【一阶】财Doro小樱(小丑装)立华奏以外的星空【二阶】⑨的冰沙

发表于 2025-9-29 18:40:01 | 显示全部楼层 |阅读模式 [标记阅至此楼]

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

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

x
1. Arch Linux ARM简介

Arch Linux ARM是Arch Linux的ARM架构移植版本,专为嵌入式设备和单板计算机设计。它秉承了Arch Linux的核心哲学:简单性、最小主义、代码清晰和社区驱动。与Raspbian等其他ARM发行版相比,Arch Linux ARM提供了更接近上游的软件包,滚动更新模式以及更灵活的自定义选项。

Arch Linux ARM支持多种ARM设备,包括但不限于:

• 树莓派(Raspberry Pi)系列
• BeagleBone系列
• NVIDIA Jetson系列
• ODROID系列
• 通用ARM设备(如基于Allwinner、Rockchip等芯片的设备)

2. 安装前的准备工作

2.1 硬件准备

安装Arch Linux ARM前,需要准备以下硬件:

1. 目标设备:支持的ARM设备,例如树莓派4B
2. 电源适配器:确保提供足够的电流(例如树莓派4B需要至少3A的5V电源)
3. MicroSD卡:建议使用Class 10或UHS-I的卡,容量至少16GB
4. 读卡器:用于将镜像写入MicroSD卡
5. 网络连接:有线网络或Wi-Fi适配器
6. 显示器和HDMI线(可选):初始设置时可能需要
7. 键盘(可选):初始设置时可能需要

2.2 软件准备

1. 主机系统:可以是Linux、macOS或Windows
2. 分区工具:如fdisk、parted或GParted
3. 格式化工具:如mkfs或相应的图形化工具
4. 下载工具:如wget、curl或浏览器
5. 解压工具:如unzip、tar或7-Zip
6. 镜像写入工具:Linux/macOS:ddWindows:Win32DiskImager、Rufus或balenaEtcher
7. Linux/macOS:dd
8. Windows:Win32DiskImager、Rufus或balenaEtcher

• Linux/macOS:dd
• Windows:Win32DiskImager、Rufus或balenaEtcher

2.3 下载Arch Linux ARM

访问Arch Linux ARM官方网站,找到适合你设备的安装包。以树莓派4B为例,你需要下载对应的压缩包。

在Linux/macOS上,可以使用以下命令下载:
  1. wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz
复制代码

3. 详细安装步骤

3.1 准备MicroSD卡

1. 插入MicroSD卡,使用lsblk或fdisk -l识别设备名称(例如/dev/sdb或/dev/mmcblk0)
  1. lsblk
复制代码

1. 卸载所有分区:
  1. umount /dev/sdb*
  2. # 或对于mmcblk设备
  3. umount /dev/mmcblk0p*
复制代码

1. 使用fdisk分区:
  1. fdisk /dev/sdb
复制代码

在fdisk交互界面中:

• 输入o创建新的DOS分区表
• 输入n创建新分区,选择主分区(p),分区号1,第一个扇区默认,最后一个扇区+100M(用于boot)
• 输入t更改分区类型,选择c(W95 FAT32 (LBA))
• 输入a设置bootable标志
• 输入n创建第二个分区,选择主分区(p),分区号2,第一个和最后一个扇区使用默认值(剩余空间)
• 输入w写入更改并退出

1. 格式化分区:
  1. mkfs.vfat -F32 /dev/sdb1
  2. mkfs.ext4 /dev/sdb2
复制代码

1. 挂载分区:
  1. mkdir boot root
  2. mount /dev/sdb1 boot
  3. mount /dev/sdb2 root
复制代码

1. 使用Rufus或balenaEtcher等工具,选择下载的Arch Linux ARM镜像文件和MicroSD卡,然后开始写入过程。这将自动完成分区和格式化。

或者手动操作:

1. 使用磁盘管理工具(diskmgmt.msc)删除MicroSD卡上的所有分区
2. 创建两个分区:一个100MB的FAT32分区(boot)和一个使用剩余空间的NTFS分区(稍后将格式化为ext4)
3. 使用工具如ext2fsd将第二个分区格式化为ext4

3.2 安装系统文件

1. 解压并安装系统文件:
  1. bsdtar -xpf ArchLinuxARM-rpi-aarch64-latest.tar.gz -C root
  2. sync
复制代码

1. 移动boot文件到boot分区:
  1. mv root/boot/* boot
复制代码

1. 卸载分区:
  1. umount boot root
复制代码

1. 使用7-Zip或WinRAR解压下载的Arch Linux ARM压缩包
2. 将解压后的所有文件复制到MicroSD卡的ext4分区
3. 将boot文件夹中的所有文件复制到FAT32分区

3.3 首次启动和基本配置

1. 将MicroSD卡插入目标设备,连接电源、网络和必要的外设
2. 设备应该会自动启动Arch Linux ARM
3. 使用SSH连接到设备:
  1. ssh alarm@alarmpi
复制代码

默认密码是alarm。初始登录后,需要切换到root用户:
  1. su
复制代码

root默认密码是root。

1. 初始化pacman密钥环:
  1. pacman-key --init
  2. pacman-key --populate archlinuxarm
复制代码

1. 更新系统:
  1. pacman -Syu
复制代码

1. 设置时区:
  1. ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
复制代码

将Region/City替换为你所在的时区,例如Asia/Shanghai。

1. 设置硬件时钟:
  1. hwclock --systohc
复制代码

1. 生成本地化设置:

编辑/etc/locale.gen文件,取消注释你需要的语言环境,例如:
  1. en_US.UTF-8 UTF-8
  2. zh_CN.UTF-8 UTF-8
复制代码

然后生成locale:
  1. locale-gen
复制代码

设置默认locale:
  1. echo "LANG=en_US.UTF-8" > /etc/locale.conf
复制代码

1. 设置主机名:
  1. echo "myarcharm" > /etc/hostname
复制代码

1. 配置网络:

对于有线网络,系统通常会自动获取IP地址。对于Wi-Fi,需要安装和配置:
  1. pacman -S iwd
  2. systemctl enable --now iwd
复制代码

然后使用iwctl命令配置Wi-Fi。

1. 更改root和alarm用户的密码:
  1. passwd
  2. passwd alarm
复制代码

4. 常见问题及解决方案

4.1 无法启动设备

问题:设备无法启动,没有显示任何输出。

解决方案:

1. 检查MicroSD卡是否正确插入
2. 确保电源适配器提供足够的电流
3. 尝试重新写入镜像到MicroSD卡
4. 尝试使用不同的MicroSD卡
5. 检查显示器和HDMI连接

4.2 无法连接到网络

问题:设备启动后无法连接到网络。

解决方案:

1. 检查网络连接是否正常
2. 对于有线网络,检查电缆是否正确连接
3. 对于Wi-Fi,确保正确配置了无线网络:
  1. # 启动iwd交互式命令行
  2. iwctl
  3. # 列出可用的设备
  4. device list
  5. # 打开无线适配器
  6. device <adapter> set-property Powered on
  7. # 扫描网络
  8. station <adapter> scan
  9. # 列出可用网络
  10. station <adapter> get-networks
  11. # 连接到网络
  12. station <adapter> connect <SSID>
复制代码

1. 检查网络配置文件:
  1. cat /etc/systemd/network/eth0.network
复制代码

确保内容类似:
  1. [Match]
  2. Name=eth0
  3. [Network]
  4. DHCP=yes
复制代码

1. 重启网络服务:
  1. systemctl restart systemd-networkd
复制代码

4.3 软件包更新失败

问题:运行pacman -Syu时出现错误。

解决方案:

1. 检查网络连接
2. 更新pacman数据库:
  1. pacman -Syy
复制代码

1. 清理pacman缓存:
  1. pacman -Scc
复制代码

1. 如果遇到GPG密钥错误,尝试重新初始化密钥环:
  1. rm -r /etc/pacman.d/gnupg
  2. pacman-key --init
  3. pacman-key --populate archlinuxarm
复制代码

1. 如果特定软件包导致问题,可以尝试暂时跳过它:
  1. pacman -Syu --ignore <problematic-package>
复制代码

4.4 磁盘空间不足

问题:系统提示磁盘空间不足。

解决方案:

1. 检查磁盘使用情况:
  1. df -h
复制代码

1. 清理pacman缓存:
  1. paccache -r
复制代码

1. 查找并删除不需要的软件包:
  1. pacman -Qtdq | pacman -Rns -
复制代码

1. 查找大文件:
  1. find / -type f -size +100M -exec ls -lh {} \;
复制代码

1. 如果根分区确实太小,可以考虑调整分区大小或使用外部存储扩展空间。

4.5 过热问题

问题:设备运行时温度过高,可能导致性能下降或系统不稳定。

解决方案:

1. 安装温度监控工具:
  1. pacman -S lm_sensors
  2. sensors-detect
  3. sensors
复制代码

1. 对于树莓派,可以检查温度:
  1. vcgencmd measure_temp
复制代码

1. 确保设备有足够的散热,考虑添加散热片或风扇
2. 降低CPU频率:
  1. # 安装cpufrequtils
  2. pacman -S cpufrequtils
  3. # 设置 governors
  4. echo 'governor="powersave"' | tee /etc/default/cpufrequtils
  5. # 重启服务
  6. systemctl restart cpufrequtils
复制代码

1. 限制CPU使用率:
  1. # 安装cpulimit
  2. pacman -S cpulimit
  3. # 限制特定进程的CPU使用率
  4. cpulimit -l 50 -p <PID>
复制代码

5. 后续配置和优化建议

5.1 系统优化

1. 禁用不必要的服务:
  1. systemctl list-unit-files --state=enabled
复制代码

根据需要禁用不必要的服务:
  1. systemctl disable <service-name>
复制代码

1. 配置swap文件:
  1. # 创建一个2GB的swap文件
  2. fallocate -l 2G /swapfile
  3. chmod 600 /swapfile
  4. mkswap /swapfile
  5. swapon /swapfile
  6. echo '/swapfile none swap sw 0 0' >> /etc/fstab
复制代码

1. 调整文件系统参数:

编辑/etc/sysctl.conf文件,添加以下内容:
  1. vm.swappiness=10
  2. vm.vfs_cache_pressure=50
复制代码

然后应用更改:
  1. sysctl -p
复制代码

1. 使用zram:
  1. # 安装zram-generator
  2. pacman -S zram-generator
  3. # 创建配置文件
  4. echo '[zram0]' > /etc/systemd/zram-generator.conf
  5. echo 'compression-algorithm = lz4' >> /etc/systemd/zram-generator.conf
  6. echo 'zram-size = 512' >> /etc/systemd/zram-generator.conf
  7. # 启用并启动服务
  8. systemctl enable systemd-zram-setup@zram0.service
  9. systemctl start systemd-zram-setup@zram0.service
复制代码

5.2 安全增强

1. 配置防火墙:
  1. # 安装ufw
  2. pacman -S ufw
  3. # 启用防火墙
  4. ufw enable
  5. # 允许SSH连接
  6. ufw allow ssh
  7. # 查看状态
  8. ufw status
复制代码

1. 禁用root登录:

编辑/etc/ssh/sshd_config文件,修改以下行:
  1. PermitRootLogin no
复制代码

然后重启SSH服务:
  1. systemctl restart sshd
复制代码

1. 设置自动安全更新:
  1. # 安装pacman-contrib
  2. pacman -S pacman-contrib
  3. # 创建更新脚本
  4. cat > /usr/local/bin/security-updates << 'EOF'
  5. #!/bin/bash
  6. pacman -Syu --noconfirm
  7. EOF
  8. chmod +x /usr/local/bin/security-updates
  9. # 创建systemd定时器
  10. cat > /etc/systemd/system/security-updates.service << 'EOF'
  11. [Unit]
  12. Description=Security updates
  13. [Service]
  14. Type=oneshot
  15. ExecStart=/usr/local/bin/security-updates
  16. EOF
  17. cat > /etc/systemd/system/security-updates.timer << 'EOF'
  18. [Unit]
  19. Description=Run security updates weekly
  20. [Timer]
  21. OnCalendar=weekly
  22. Persistent=true
  23. [Install]
  24. WantedBy=timers.target
  25. EOF
  26. # 启用定时器
  27. systemctl enable --now security-updates.timer
复制代码

5.3 桌面环境安装(可选)

如果你需要在ARM设备上使用图形界面,可以安装轻量级桌面环境:

1. 安装Xorg:
  1. pacman -S xorg-server xorg-xinit xorg-utils xorg-apps
复制代码

1. 安装显示管理器:
  1. pacman -S lightdm lightdm-gtk-greeter
  2. systemctl enable lightdm
复制代码

1. 安装桌面环境(以XFCE为例):
  1. pacman -S xfce4 xfce4-goodies
复制代码

1. 配置自动登录(可选):

编辑/etc/lightdm/lightdm.conf文件,修改以下行:
  1. [Seat:*]
  2. autologin-user=alarm
  3. autologin-session=xfce
复制代码

6. 实际应用案例

6.1 家庭媒体中心

将Arch Linux ARM设备配置为家庭媒体中心:

1. 安装Kodi:
  1. pacman -S kodi-rpi kodi-rpi-dev
复制代码

1. 配置Kodi自动启动:

创建/usr/share/xsessions/kodi.desktop文件:
  1. [Desktop Entry]
  2. Name=Kodi
  3. Exec=kodi-standalone
  4. Type=Application
复制代码

1. 配置媒体存储:
  1. # 安装必要的文件系统支持
  2. pacman -S nfs-utils cifs-utils
  3. # 创建挂载点
  4. mkdir -p /media/nfs
  5. mkdir -p /media/samba
  6. # 添加到/etc/fstab
  7. echo 'nas:/media /media/nfs nfs _netdev,defaults 0 0' >> /etc/fstab
  8. echo '//server/share /media/samba cifs credentials=/etc/samba/credentials,_netdev,defaults 0 0' >> /etc/fstab
  9. # 创建Samba凭据文件
  10. echo 'username=yourusername' > /etc/samba/credentials
  11. echo 'password=yourpassword' >> /etc/samba/credentials
  12. chmod 600 /etc/samba/credentials
复制代码

1. 配置远程控制:
  1. # 安装Kodi远程控制应用
  2. pacman -S kodi-send
  3. # 示例:发送命令到Kodi
  4. kodi-send --action="PlayPause"
复制代码

6.2 家庭服务器

将Arch Linux ARM设备配置为多功能家庭服务器:

1. 安装和配置Samba:
  1. pacman -S samba
  2. cp /etc/samba/smb.conf.default /etc/samba/smb.conf
复制代码

编辑/etc/samba/smb.conf,添加共享:
  1. [shared]
  2. path = /srv/samba/shared
  3. read only = no
  4. guest ok = yes
  5. create mask = 0777
  6. directory mask = 0777
复制代码

创建共享目录并设置权限:
  1. mkdir -p /srv/samba/shared
  2. chmod 777 /srv/samba/shared
复制代码

启用并启动Samba服务:
  1. systemctl enable --now smb nmb
复制代码

1. 配置DLNA媒体服务器:
  1. pacman -S minidlna
复制代码

编辑/etc/minidlna.conf,设置媒体目录:
  1. media_dir=A,/srv/media/music
  2. media_dir=P,/srv/media/pictures
  3. media_dir=V,/srv/media/videos
复制代码

创建媒体目录并设置权限:
  1. mkdir -p /srv/media/{music,pictures,videos}
  2. chmod 777 -R /srv/media
复制代码

启用并启动minidlna服务:
  1. systemctl enable --now minidlna
复制代码

1. 配置Print服务器:
  1. pacman -S cups avahi
  2. systemctl enable --now cups avahi-daemon
复制代码

1. 配置Time Machine备份服务器:
  1. # 安装Netatalk
  2. pacman -S netatalk
  3. # 配置Time Machine共享
  4. echo "/srv/timemachine "Time Machine" options:tm" >> /etc/afp.conf
  5. # 创建备份目录
  6. mkdir -p /srv/timemachine
  7. chmod 777 /srv/timemachine
  8. # 启用并启动服务
  9. systemctl enable --now netatalk
复制代码

6.3 物联网网关

将Arch Linux ARM设备配置为物联网网关:

1. 安装Home Assistant:
  1. # 安装依赖
  2. pacman -S python python-pip python-venv libffi
  3. # 创建用户
  4. useradd -rm homeassistant -G dialout
  5. # 切换到homeassistant用户
  6. sudo -u homeassistant -s
  7. # 创建虚拟环境
  8. cd /srv
  9. mkdir homeassistant
  10. cd homeassistant
  11. python3 -m venv .
  12. source bin/activate
  13. # 安装Home Assistant
  14. pip install homeassistant
  15. # 启动Home Assistant
  16. hass
复制代码

1. 配置MQTT代理:
  1. # 安装Mosquitto
  2. pacman -S mosquitto
  3. # 配置用户和密码
  4. echo "user mqtt" >> /etc/mosquitto/passwd
  5. mosquitto_passwd -b /etc/mosquitto/passwd mqtt password
  6. # 编辑配置文件
  7. echo "allow_anonymous false" >> /etc/mosquitto/mosquitto.conf
  8. echo "password_file /etc/mosquitto/passwd" >> /etc/mosquitto/mosquitto.conf
  9. # 启用并启动服务
  10. systemctl enable --now mosquitto
复制代码

1. 配置Node-RED:
  1. # 安装Node.js
  2. pacman -S nodejs npm
  3. # 安装Node-RED
  4. npm install -g --unsafe-perm node-red
  5. # 创建服务文件
  6. cat > /etc/systemd/system/nodered.service << 'EOF'
  7. [Unit]
  8. Description=Node-RED
  9. After=syslog.target network.target
  10. [Service]
  11. ExecStart=/usr/bin/node-red
  12. WorkingDirectory=/home/alarm/.node-red
  13. StandardOutput=syslog
  14. StandardError=syslog
  15. SyslogIdentifier=node-red
  16. User=alarm
  17. Group=alarm
  18. [Install]
  19. WantedBy=multi-user.target
  20. EOF
  21. # 启用并启动服务
  22. systemctl enable --now nodered
复制代码

7. 总结

Arch Linux ARM是一个强大而灵活的嵌入式操作系统,适合各种应用场景。通过本指南,你应该能够成功安装和配置Arch Linux ARM,解决常见问题,并根据你的需求进行优化和定制。

Arch Linux ARM的优势在于其简洁性、滚动更新模式和接近上游的软件包,这使其成为开发者和高级用户的理想选择。然而,它也需要更多的手动配置和维护,可能不适合Linux新手。

无论你是将Arch Linux ARM用于家庭媒体中心、家庭服务器还是物联网网关,希望本指南能够帮助你顺利完成嵌入式系统的搭建。随着你对Arch Linux ARM的熟悉,你将能够更好地发挥其潜力,构建出满足你特定需求的定制解决方案。

现在,你已经掌握了Arch Linux ARM的安装和配置技巧,可以开始探索更多可能性了!
回复

使用道具 举报

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

本版积分规则

频道订阅

频道订阅

加入社群

加入社群

联系我们|TG频道|RSS

Powered by Pixtech

© 2025 Pixtech Team.