Before the low price received a Samsung Chromebook, the model is XE303C12. These days want to change its system to Linux, after all, ChromeOS on the application is too few. Because the CPU of this book is ARM chip, so the information on the Internet is less, and the kernel is the 3.8 version of the kernel that is provided by Google, only see the ArchLinux on the 4.16 version of the kernel, so decided to install ArchLinux.
Brief introduction
This Chromebook configuration, at least more than the same price of the purchase of Raspberry Pi configuration is much higher.
Install to USB flash drive
First of all, the book is currently ChromeOS, if you want to install Linux, the first to install Linux to a USB flash drive, all first to prepare a USB stick inserted into the Chromebook.
Developer mode
Shut down and press ESC + Refresh + Power three keys when booting. Press Ctrl + D in the Recovery interface, and then you will be prompted to open developer mode by pressing Enter.
External boot
To boot from the USB stick in the back, start from the outside to open it first. When you turn on developer mode, go to the system, and then press Ctrl + ALT + T to open a terminal, knock shell
it into Bash, and then sudo su
get root privileges. To open an external boot:
crossystem dev_boot_usb=1 dev_boot_signed_only=0
After reboot, you will be able to take effect after you reboot to crossystem
verify that the previous settings were successful.
Making a Startup disk
Here I use a USB flash drive to do the boot disk, installation methods refer to the official tutorial.
Installing to the System
The above steps also keep the chromeos,linux just installed to the USB stick, I want to chromeos completely replaced with ArchLinux, but also to install the ArchLinux on the system disk. That's mmcblk0. Because ArchLinux has no cgpt
command, it has to be installed on its own.
pacman -S cgpt
Replace the tutorial that was installed on the USB stick with the replacement /dev/sda
mmcblk0
/dev/sda1
mmcblk0p1
/dev/sda2
mmcblk0p2
. Shut down, unplug the USB drive, start to enter the ArchLinux.
Update
Arch is a feature of rolling updates, it is best to get a short period of time to update. Before the update, it is best to replace the domestic mirror source, I am using the Zhong ke mirror source.
pacman -Syyu
I update here to ignore the upgrade of the system, because I can not boot after upgrading.
Edit /etc/pacman.conf
The file and modify it as follows:
IgnorePkg = linux-armv7 linux-armv7-chromebook linux-firmware
Install package groups base-devel
to resolve compilation dependency issues.
pacman -S base-devel
Language
By default you will find that TTY cannot display Chinese, and locale is required. Modify /etc/locale.gen
the file and uncomment the following two lines.
en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8
Then regenerate the area information.
locale-gen
Next, configure the /etc/locale.conf
file globally.
LANG=en_US.UTF-8
or without a global configuration, .zshrc
it can also be configured in.
export LC_ALL=zh_CN.UTF-8export LANG=zh_CN.UTF-8
Time
Change to Shanghai's time zone.
timedatectl set-timezone Asia/Shanghai
Turn on the network pair time feature.
timedatectl set-ntp true
Add user
The default user and password are root, which is certainly not convenient for subsequent use.
useradd -m -g 初始用户组 -G 额外用户组 -s 登陆shell 用户名useradd -m -g users -G wheel -s zsh ouyangsong
Don't forget to set the password for it.
After installing sudo, change the wheel group to password-free using sudo permissions. Edit /etc/sudoer
, uncomment the following two lines.
%wheel ALL=(ALL) ALL%wheel ALL=(ALL) NOPASSWD: ALL
HDD hibernation
I mounted an old hard drive on the Chromebook, and when the hard drive is not in use, it needs to hibernate the hard drive and prolong the life of the hard drive. Install Hdparm. Set the 10-minute idle to hibernate.
Create a new service /etc/systemd/system/hdparm.service
.
[Unit]Description=hdparm sleep[Service]Type=oneshotExecStart=/usr/bin/hdparm -q -S 120 -y /dev/sdb[Install]WantedBy=multi-user.target
Then set the boot from boot.
Internet
wifi-menu
You can use a command to connect to a wireless network. Because I mainly remote landing, so also need to install OpenSSH, so you can go through the school LAN IP landing.
Automatic login WiFi. A set of configuration files is automatically generated by using Wifi-menu to successfully log in manually. Then install the associated package.
pacman -S netctl wpa_actiond
Check to /etc/netctl
make sure the WiFi profile has been generated.
[[email protected] ~]# ls /etc/netctl/examples hooks interfaces mlan0-czxxxxxxxxxx[[email protected] ~]# cat /etc/netctl/mlan0-czxxxxxxxxxxDescription='Automatically generated profile by wifi-menu'Interface=mlan0Connection=wirelessSecurity=wpaESSID=czxxxxxxxxxxIP=dhcpKey=password
The command to connect to WiFi.
systemctl start [email protected]
The command to automatically connect WiFi on the boot.
systemctl enable [email protected]
Install network-related packages.
pacman -S net-tools dnsutils inetutils iproute2
Ifconfig, route in Net-tools, Nslookup, dig in Dsnutils, FTP, Telnel in inetutils, IP command in Iproute2.
Another problem is that when you close the lid, the network is broken and you need to edit the Login Manager configuration.
Edit /etc/systemd/logind.conf
The file and modify it as follows:
#HandleLidSwitch=suspend
Change to the following:
HandleLidSwitch=ignore
This allows you to close the lid and make a "high-quality Raspberry Pi" with ease.
https://www.ouyangsong.com/posts/50132/
Chromebook (XE303C12) installation ArchLinux