Chromebook(XE303C12)安装 ArchLinux

之前低价收到一个三星的 Chromebook,型号是 XE303C12。这几天想把它的系统改成 Linux,毕竟 ChromeOS 上的应用太少了。因为这个本子的 CPU 是 ARM 芯片,所以网上的资料少点,而且内核都是用谷歌提供的 3.8 版本的内核,只看到 ArchLinux 上有 4.16 版本的内核,所以决定安装 ArchLinux。

简介

这个 Chromebook 的配置,至少比同价位的买的树莓派的配置高的多了。

安装到 U 盘

首先本子目前是 ChromeOS,如果你想安装成 Linux 的话,先要把 Linux 安装到 U 盘,所有先准备一个 U 盘插入到 Chromebook 上。

开发者模式

关机,在开机的时候按住 ESC + Refresh + Power 三个键。在 Recovery 界面按 Ctrl + D,然后就会提示按 Enter 开启开发者模式。

外部启动

为了后面的从 U 盘启动,这里先要开启从外部启动。当你开启了开发者模式后,进入到系统,然后按 Ctrl + Alt + T 就会打开一个终端,敲 shell 就能进入 Bash,然后 sudo su 获取 root 权限。开启外部启动:

1
crossystem dev_boot_usb=1 dev_boot_signed_only=0

重启后就能生效,你重启后可以敲 crossystem 验证之前的设置是不是成功了。

制作启动盘

这里我用 U 盘做启动盘,安装方法参考官方给的教程

安装到系统

上面的步骤还保留了 ChromeOS,Linux 只是安装到 U 盘而已,我要把 ChromeOS 彻底替换成 ArchLinux,还要把 ArchLinux 安装到系统盘上。也就是 mmcblk0。因为 ArchLinux 没有 cgpt 命令,还要自行安装。

1
pacman -S cgpt

把安装到 U 盘的教程中的 /dev/sda 替换成 mmcblk0,把 /dev/sda1 替换成 mmcblk0p1,把 /dev/sda2 替换成 mmcblk0p2。关机,拔下 U 盘,启动就可以进入 ArchLinux 了。

更新

Arch 的特点就是滚动更新,拿到之后最好隔一小段时间就更新一下。更新前最好换成国内的镜像源,我是用的是中科大的镜像源

1
pacman -Syyu

我这里更新忽略关于系统的升级,因为我升级后就不能开机了。

编辑 /etc/pacman.conf 文件,修改如下:

1
IgnorePkg   = linux-armv7 linux-armv7-chromebook linux-firmware

安装软件包组 base-devel,解决编译依赖问题。

1
pacman -S base-devel

语言

默认的话你会发现 TTY 不能显示中文,需要设置 locale。修改 /etc/locale.gen 文件,取消注释下面两行。

1
2
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8

然后重新生成一下区域信息。

1
locale-gen

接下来全局配置一下 /etc/locale.conf 文件。

1
LANG=en_US.UTF-8

或者不用全局配置,在 .zshrc 中配置也可以。

1
2
export LC_ALL=zh_CN.UTF-8
export LANG=zh_CN.UTF-8

时间

改成上海的时区。

1
timedatectl set-timezone Asia/Shanghai

开启网络对时功能。

1
timedatectl set-ntp true

添加用户

默认用户和密码都是 root,肯定不方便后续使用。

1
2
useradd -m -g 初始用户组 -G 额外用户组 -s 登陆shell 用户名
useradd -m -g users -G wheel -s zsh ouyangsong

别忘了给它设置密码。

安装 sudo 后,把 wheel 组都改成免密码使用 sudo 权限。编辑 /etc/sudoer,取消注释下面两行。

1
2
%wheel ALL=(ALL) ALL
%wheel ALL=(ALL) NOPASSWD: ALL

硬盘休眠

我把一个旧硬盘挂载到 Chromebook 上,当硬盘不使用的时候,需要让硬盘休眠,延长硬盘使用寿命。安装 hdparm 即可。设置 10 分钟空闲就休眠。

新建一个服务 /etc/systemd/system/hdparm.service

1
2
3
4
5
6
7
8
9
[Unit]
Description=hdparm sleep

[Service]
Type=oneshot
ExecStart=/usr/bin/hdparm -q -S 120 -y /dev/sdb

[Install]
WantedBy=multi-user.target

然后设置开机自启动即可。

网络

使用 wifi-menu 命令就可以连无线网。因为我主要是远程登陆,所以还需要安装 openssh,这样就可以通过学校局域网 IP 登陆了。

Chromebook-ArchLinux

开机自动登陆 wifi。首先使用 wifi-menu 手动成功登陆,会自动生成一套配置文件。然后安装相关的包。

1
pacman -S netctl wpa_actiond

查看 /etc/netctl 确认是否已经生成了 wifi 配置文件。

1
2
3
4
5
6
7
8
9
10
[root@alarm ~]# ls /etc/netctl/
examples hooks interfaces mlan0-czxxxxxxxxxx
[root@alarm ~]# cat /etc/netctl/mlan0-czxxxxxxxxxx
Description='Automatically generated profile by wifi-menu'
Interface=mlan0
Connection=wireless
Security=wpa
ESSID=czxxxxxxxxxx
IP=dhcp
Key=password

连接 wifi 的命令。

1
systemctl start netctl-auto@mlan0.service

开机自动连接 wifi 的命令。

1
systemctl enable netctl-auto@mlan0.service

安装网络相关的包。

1
pacman -S net-tools dnsutils inetutils iproute2

ifconfig、route 在 net-tools 中,nslookup、dig 在 dsnutils 中,ftp、telnel 在 inetutils 中,ip 命令在 iproute2 中。

还有一个问题就是合上盖子后,网络就断了,这里需要编辑 Login Manager 的配置。

编辑 /etc/systemd/logind.conf 文件,修改如下:

1
#HandleLidSwitch=suspend

改成如下:

1
HandleLidSwitch=ignore

这样就可以合上盖子,安心的做一个「高配树莓派」了。