这是我在树莓派上安装 Arch Linux ARM 和简单配置的过程,仅供参考。
所需配件
- 树莓派B型
- Micro-USB 连接线
- SD 卡
- 5V 电源
- 网线
下载最新的系统
SD 卡分区
把 SD 卡插在电脑上,分区表设为 MBR,创建三个分区
分区 | 大小 | 文件系统 |
---|---|---|
sdb1 | 100MiB | FAT32 |
sdb2 | 7GiB | ext4 |
sdb3 | 1GiB | swap |
复制相关文件
首先挂载相应的分区
sudo mount /dev/sdb2 -o noatime,discard /mnt
sudo mkdir /mnt/boot
sudo mount /dev/sdb1 -o noatime /mnt/boot
解压文件到指定位置
sudo bsdtar -xpf /path/to/root.tar.xz -C /mnt
sudo bsdtar -xpf /path/to/boot.tar.xz -C /mnt/boot
做一些必要的修改:
-
编辑
/mnt/etc/fstab
# /etc/fstab: static file system information # # <file system> <dir> <type> <options> <dump> <pass> /dev/mmcblk0p2 / ext4 noatime,discard 0 1 /dev/mmcblk0p1 /boot vfat noatime 0 0 /dev/mmcblk0p3 none swap defaults,discard 0 0
-
编辑
/mnt/boot/cmdline.txt
avoid_safe_mode=1 selinux=0 plymouth.enable=0 smsc95xx.turbo_mode=Y dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
最后卸载分区
sync
sudo umount /mnt/boot
sudo umount /mnt
sync
此时,SD卡中就安装好了 Arch Linux ARM 最小启动环境了。
通过 ssh 连接树莓派
树莓派的以太网接口默认配置成 DHCP 自动获取 IP 地址,开启 sshd 服务,root
密码为 root
。
-
将电脑的以太网接口配置为局域网网关(假设接口名称为 enp7s0)
-
安装
dnsmasq
sudo pacman -S dnsmasq
-
编辑
/etc/dnsmasq
,写入以下内容interface=enp7s0 bind-interfaces dhcp-range=192.168.1.1,192.168.1.254,255.255.255.0,24h dhcp-option=option:router,192.168.1.1
-
执行下面的命令
sudo ip link set up dev enp7s0 sudo ip addr add 192.168.1.1/24 broadcast 192.168.1.255 dev enp7s0 sudo systemctl start dnsmasq.service
-
-
将树莓派和电脑用网线连接起来,接通树莓派电源。此时,树莓派应该自动配置好 IP,和电脑处于同一个局域网了。用下面的命令查看树莓派的 IP 地址
ip neigh show dev enp7s0
-
假设树莓派地址为
192.168.1.3
,用ssh
登陆到树莓派ssh root@192.168.1.3
配置树莓派
上面只是做了一些最基本的配置,还有许多工作要做。
配置 pacman
编辑 /etc/pacman.d/mirrorlist
,改为以下内容
Server = http://mirrors.ustc.edu.cn/archlinuxarm/$arch/$repo
编辑 /etc/pacman.conf
CacheDir = /tmp/pacman/pkg
更新系统
pacman -Syyu
安装 base
,base-devel
pacman -S --needed base base-devel
配置 makepkg
编辑 /etc/makepkg.conf
CFLAGS="-mcpu=arm1176jzf-s -march=armv6zk -mtls-dialect=gnu2 -mfloat-abi=hard -mfpu=vfp -O2 -pipe"
CXXFLAGS="-mcpu=arm1176jzf-s -march=armv6zk -mtls-dialect=gnu2 -mfloat-abi=hard -mfpu=vfp -O2 -pipe"
BUILDDIR=/tmp/makepkg
更新 linux内核
树莓派的 Arch Linux ARM 默认使用的不是最新的内核,可以更新成最新的
pacman -S linux-raspberrypi-latest
用户管理
新建用户组 sudo
groupadd sudo
新建一个用户 pi
useradd -m -g users -s /bin/bash pi
passwd pi
gpasswd -a pi sudo
编辑 /etc/sudoers
以便新用户可以执行 sudo
,将下面的行取消注释
%sudo ALL=(ALL:ALL) ALL
禁用 root
sudo passwd -l root
注销 root
并以用户 pi
登陆
exit
ssh pi@192.168.1.3
Locale
编辑/etc/locale.gen
,将下面的行取消注释
en_US.UTF-8 UTF-8
zh_CN.GB18030 GB18030
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8
zh_CN GB2312
然后执行
sudo locale-gen
设置系统语言为 zh_CN.UTF-8
,编辑 /etc/locale.conf
,写入以下内容
LANG=zh_CN.UTF-8
时区
设置时区为 Shanghai
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
时间
树莓派没有硬件时钟,每次关机时间都会丢失,因此需要设置自动联网对时。安装 ntp
,并启用自动对时
sudo pacman -S ntp
sudo systemctl enable ntpd.service
随机数生成器
安装 rng-tools
sudo pacman -S rng-tools
编辑 /etc/conf.d/rng
RNGD_OPTS="-o /dev/random -r /dev/hwrng"
启动服务
sudo systemctl enable rngd.service
超频
编辑 /boot/config.txt
,将下面的行取消注释
arm_freq=900
core_freq=333
sdram_freq=400
over_voltage=2
启用硬件看门狗
编辑 /etc/modules-load.d/watchdog.conf
bcm2708_wdog
安装 watchdog
sudo pacman -S watchdog
编辑 /etc/watchdog.conf
watchdog-device = /dev/watchdog
temperature-device = /sys/class/thermal/thermal_zone0/temp
max-temperature = 75000
开机启动watchdog daemon
sudo systemctl enable watchdog.service
安装无线网卡驱动
买来的无线网卡用的芯片是 RTL8188CUS,需要自行安装驱动
sudo pacman -S dkms-8192cu
安装过程中需要编译内核模块,比较耗时,耐心等待即可。
安装常用的软件
sudo pacman -S bash-completion vim yaourt goagent \
youtube-dl transmission-cli bc tree \
axel pkgfile git
yaourt -S tengine-dev
关机/重启
关机
sudo shutdown -h now
重启
sudo reboot