树莓派安装 Arch Linux ARM

日期: 03 月 30日, 2014
标签:

这是我在树莓派上安装 Arch Linux ARM 和简单配置的过程,仅供参考。

所需配件

  1. 树莓派B型
  2. Micro-USB 连接线
  3. SD 卡
  4. 5V 电源
  5. 网线

下载最新的系统

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

做一些必要的修改:

  1. 编辑 /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
    
  2. 编辑 /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

  1. 将电脑的以太网接口配置为局域网网关(假设接口名称为 enp7s0)

    1. 安装 dnsmasq

       sudo pacman -S dnsmasq
      
    2. 编辑 /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
      
    3. 执行下面的命令

       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
      
  2. 将树莓派和电脑用网线连接起来,接通树莓派电源。此时,树莓派应该自动配置好 IP,和电脑处于同一个局域网了。用下面的命令查看树莓派的 IP 地址

     ip neigh show dev enp7s0
    
  3. 假设树莓派地址为 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

安装 basebase-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