Orange Pi One:百元家庭服务器的软件部分

2017 冬更新:各种水果派性能其实很有限,如果打算搞个认真的家庭服务器,建议选购 NUC 之类的正经 PC

前不久买了部 Orange Pi One,以取代被我拿来做家庭服务器的 Galaxy Note 10.1 (3G),因为它的局限性太大了:

  • 内核版本太低 (3.0.*),虽然没有 CentOS 6.* 自带的低 (2.6.32),但是并没有 RHEL / CentOS 内核的 buff
  • 不能边连接 USB 存储设备(移动硬盘等)边充电
  • chroot Debian 8 不算灵活,且受制于作为母系统的 Android
  • 如果不走 chroot 这条路,如何让 GNU/Linux 优雅的适应 Android HAL。。呃。。

于是终于忍受不住,买了个 Orange Pi One。在经过各种坑以后,终于搞定了系统部署,可以拿来榨橙汁和部署各种服务了。

于是呢,我决定把我折腾 Orange Pi One 成功的经历写在这里(

系统

如果你仅仅希望搭建廉价服务器的话,不要听官方的话,直接上 Armbian,因为:

  • 官方镜像里塞了一些奇怪的东西,还需要自己麻烦的扩展分区(如果你的 SD 卡容量大于 4 GB)
  • 官方教程和工具不仅一点也不多,而且全是坑

Armbian 提供了一些已经编译好的镜像,但是如果你希望自行定制镜像(比如预装一些软件、使用主线版内核),可以使用他们的 编译工具。我因为一些原因需要定制镜像,所以走了编译的路(但是其实也是相当容易的)。

官方建议使用 4GB+ RAM、四核、安装有 Ubuntu 16.04 LTS 的机器进行编译;如果你一时没有合适的机器,可以考虑开个虚拟机,或者临时租用一些高配置的、按小时计费的 VPS,这样也花不了多少钱,任务完成以后删除机器即可。

编译是相当容易的:

# 准备步骤(以全新安装的 Ubuntu 16.04 LTS 为例)
apt-get update
apt-get upgrade -y
apt-get install git screen -y
git clone https://github.com/armbian/build --depth 1
cd build

# 可选:使用 screen 将进程挂起来,以免 SSH 中断导致编译失败
screen -S compile

# 开始编译
./compile.sh

如果在国内而且下载速度不算可观,可以在 ~/.curlrc 设置下代理:

proxy = 10.0.2.2:1087

以及 git:

git config --global http.proxy http://10.0.2.2:1087

编译开始前会出现类似于 GUI 的画面,让你选择目标机型、系统、编译类型、内核版本等等,你按照提示走即可。

然后挂他几个小时,你的镜像就已经安静的躺在 /your/working/dir/build/output/images 文件夹了。把它通过 http、scp 等方式下载到本地吧。

不刷写镜像,怎么行

你需要准备一张像样的,容量较大的品牌 SD 卡(在线下,特别是中国大陆的非一二线城市,买到假冒品牌 SD 卡的几率相对较高,建议网购)和一个合格的读卡器,然后连接你的 PC。

把你的 SD 卡格式化一遍,然后通过 dd 刷入镜像就是了。

登入

首次开机,通过 HDMI 视频输出加连接好的键盘、TTL 线、SSH 等方式,使用密码 1234 即可以 root 用户登录。

登录后会强制要求你立即修改 root 密码,并创建一个用于日常维护的非特权用户,你照着人家的提示做就是了。

然后,就可以像普通 VPS 那样鼓捣了,不过是在你自己家(

小技巧

如果你没有各种线,只能通过 SSH 登录,可以通过你家路由器的客户端列表,找到一个叫 orangepione 的设备,然后连接它对应的内网 IP 地址即可。

为了方便维护,建议绑定 MAC 地址到一个好记的内网 IP 地址;不同路由器的设置方法存在差异,这里就不赘述了。