上文 Cubieboard2之Archlinux安装指南 中谈到了Archlinux在Cubieboard2上的安装过程,尤其是总结了一些针对双卡版的hack及注意事项。这篇blog就谈谈安装好基本系统之后的一些环境及应用配置。

P.S. 相关文章可见Tag: cubieboard

micro-SD/TF卡选型

作为根分区的micro-SD卡我用的是一张Class10 8G 的TF卡,home分区用的是Class10 32G 的TF卡,写有系统的那张卡(根分区)插在板子的正面(印有data card),home分区的卡则插在板子背面(印有boot card)。关于micro-SD卡的选择,Class 10是比较合适的,某逊上还算便宜。

软件源选择

这一节的内容同样适用于树莓派(Raspberry PI)

/etc/pacman.d/mirrorlist中提供的Geo-IP based mirror支持的线路其实非常少,dig查询可以得知其仅对美洲和欧洲做了线路区分。

## Geo-IP based mirror selection and load balancing
Server = http://mirror.archlinuxarm.org/$arch/$repo

直接连国外的软件源一般来说速度不太理想, 目前国内的Archlinuxarm软件源我知道的有中科大和华中科大两家提供镜像服务。用你最喜欢的编辑器在文件/etc/pacman.d/mirrorlist## Geo-IP based mirror selection and load balancing之前加入如下几行:

## USTC  
Server = http://mirrors.ustc.edu.cn/archlinuxarm/$arch/$repo
## HUST
Server = http://mirrors.hustunique.com/archlinuxarm/$arch/$repo

中科大在软件源这一块的口碑是非常好的,对不同网络线路的速度都还不错,大家可根据实际情况选择使用中科大的还是华中科大的软件源。如果到中科大和华中科大的网络都不太理想,台湾和新加坡的也可以考虑下。

系统更新

在安装软件包时可能会遇到如Signature之类的错误,在/etc/pacman.conf里设置SigLevel = Never就好了,只要软件包不是太老应该不大会出现此类问题。在mirrorlist里改好软件源的Server之后在终端输入pacman -Syu进行全局更新,熟悉Arch的自然不用多说,对Arch不熟的建议多看看Arch的Wiki,Arch和Gentoo的Wiki可以说是众多Linux发行版的典范,其中包含了非常多的系统及软件包的详细安装配置文档,凝聚了全世界众多Archer的心血,力荐!

需要注意的是执行全局更新时会提示更新uboot-cubieboard2,更新完后需要将上文提到的script.bin文件重新复制到/boot/目录下,否则无法识别板子底部的TF卡插槽。如果系统运行正常的话不建议更新uboot-cubieboard2这个软件包。vi /etc/pacman.conf找到# IgnorePkg =这一行,在其后加入IgnorePkg = uboot-cubieboard2,以免夜长梦多,这就是双卡版带来的噩梦 :(

挂载硬盘

Cubieboard2一大亮点是提供了SATA接口,挂载2.5吋的移动硬盘和SSD时相比树莓派要方便不少。如果手头只有3.5吋的硬盘,可以考虑用硬盘盒。之前在树莓派上用ORICO 6518挂载过一块老的3.5吋硬盘,发现树莓派的供电能力实在是太有限了,即使使用硬盘盒和外部供电,在树莓派上进行大文件的传输时相应的USB接口也会掉电重启,具体表现就是硬盘会被强制unmount。使用Cubieboard2外接同样的硬盘盒时则未发现类似现象。

使用lsblk -f可查看到各SD卡和硬盘的UUID和设备名称,推荐在/etc/fstab中使用UUID指定SD卡或者硬盘进行开机自动挂载,具体挂载参数依实际情况而定。我的fstab如下:

# 
# /etc/fstab: static file system information
#
# <file system> <dir>   <type>  <options>       <dump>  <pass>
# /dev/mmcblk1p1
UUID=dda83b0a-9897-4338-a2c5-80f1df92ae41       /home           ext4            defaults,data=writeback,noatime,nodiratime      0 1
# /dev/sda1
UUID=c89cbdf6-e043-4f76-b8b0-4d33ba6aeb93       /datacenter     ext4            rw,relatime,data=ordered        0 2

/home分区我用的是禁用了日志的ext4文件系统,所以和硬盘的挂载参数不太一样。

OK,针对Cubieboard2的一些特殊配置及注意事项就到此为止了,接下来的对基于系统之上的应用着重介绍下。

AUR小帮手

用过Arch的人都知道AUR对Archer有多么重要,Yaourt是为AUR设计的包管理工具,可以替代pacman。但是使用yaourt安装更新软件时可能会稍显繁琐和缓慢,比如不断输入yes,无法同时对AUR和官方源进行全局更新…

为了解决基于bashyaourt速度较慢和操作繁琐的问题,rmarquis/pacaur横空出世了;为了解决yaourt不能很好地整合pacman和AUR这个问题,keenerd/packer被发明了出来,目前来看pacaur的功能更为强大,当然这与这两个工具的定位有关。虽然这两个新的wrapper已足够好用,但是偶尔也难免出点bug,这个时候就不得不用yaourt了。

选用yaourt + packer组合的执行# pacman -S yaourt packer就好了,选用yaourt + pacaur的需要先执行#pacman -S yaourt,而后再调用yaourt安装AUR中的软件包,yaourt -S pacaur。注意:archlinuxarm和archlinux的软件源略有不同,archlinuxarm中/etc/pacman.conf的repo已包含aur,无需自行添加如archlinux.fr的Server地址。

安装常用软件包

常用软件包自然是经常需要用的那些软件包,比如编译所需的工具链、编辑器、版本控制工具和zsh等。在Arch下安装这些软件包执行yaourt -S base-devel git就好了。一般系统默认的Shell是bash,鉴于zsh强大的补全和其他特性,建议你还是用zsh吧,执行yaourt -S zsh oh-my-zsh-git就好了 :) 装好oh-my-zsh后按照要求复制配置文件到如下新建的普通用户家目录下。

新建普通用户

# useradd -m -g users -G wheel -s /bin/zsh your_user_name
# passwd your_user_name

Arch下通过wheel这个用户组来赋予普通用户在使用 Sudo时以root身份运行程序,这个和其他发行版略有不同。

设置Locale

这一步主要是为了远程接入Cubieboard/树莓派时能正常地显示非Ascii码,比如中文和部分特殊符号,一般情况下启用en_USzh_CN即可。# vim /etc/locale.gen使用Vim的搜索功能找到如下两行并取消注释。

...
#en_SG ISO-8859-1
en_US.UTF-8 UTF-8
#en_US ISO-8859-1
...
#zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8
#zh_CN GB2312
...

保存退出,执行# locale-gen生成相应locale。接下来设置LANG变量,为了避免不必要的麻烦,建议使用英文,# vim /etc/locale.conf,加入行LANG=en_US.UTF-8 。关于Locale的详细设置可参考Locale - ArchWiki

安装中文字体

执行# yaourt -S wqy-microhei安装文泉驿微米黑,效果不错~ 实际上如果你不用Cubieboard/树莓派的图形界面,中文字体安装这一步是可以省略的。

SSH优化

mosh

传统的SSH方式非常不适合用于移动环境,比如无缝漫游,低速网络环境等。MIT团队推出的Mosh: the mobile shell则很好地解决这类问题。Arch下通过yaourt -S mosh安装。

使用mosh连接Cubieboard/树莓派和SSH用法不大,mosh --ssh="ssh -p 2222" user_name@host_ip,其中2222为修改后的SSH端口,user_name为你自己新建的账户,host_ip则是Cubieboard/树莓派的IP了咯。

安全优化

为了安全起见,建议修改SSH常用的22端口,# vim /etc/ssh/sshd_config,找到Port 22这一行,将22更改为1024~65535之间任一你喜欢的端口。

由于root的威力实在是太大,允许root进行SSH是一件极其危险的事情。# vim /etc/ssh/sshd_config,找到PermitRootLogin no这一行,设置为no

最后别忘了重启sshd服务生效-# systemctl restart sshd

使用public key登录

每次ssh连接到Cubieboard2/树莓派都需要输入密码自然非常繁琐,那为何不用public key的方式哩?

按照SSH keys - ArchWiki提供的方法先在本地主机生成public key, 随后使用ssh-copy-id将public key拷贝到Cubieboard2/树莓派上。拷贝好之后你就可以在自己的主机上写一行bash更为方便地执行一长串的ssh命令了。

Nice! 到此为此你已经武装上了大刀长矛,下一步就来点小米加步枪吧 :)