将armbian刷入玩客云emmc

玩客云使用的主板是晶晨s805,而晶晨s805开发板单买很贵。此刻玩客云挖矿已经凉了,而将玩客云刷成linux后,就可以有无限的可能。由于目前刷linux的方法刚有人成功,在某宝、某东和并夕夕平台仍然只要40块,加上一张32g的tf卡,成本60块左右就能有一个四线程的linux开发板。

目前还没有人来分享一个比较详细的、猴子都能学会的教程,所以我觉得我有必要写一个,我们开始。

所需工具

硬件工具

1.双公头usb线

2.usb转ttl线及四条公对母杜邦线

3.十字螺丝刀

4.hdmi视频线

5.hdmi口显示器

6.sd卡或TF卡加卡套、读卡器

7.电烙笔

8.(可选)美工刀、一字螺丝刀

软件工具

1.晶晨s805刷机工具

2.USBWriter

3.putty

3.s805通用安卓镜像update.img

4.支持玩客云有线网卡驱动dtb文件

5.支持s805的armbian系统镜像

6.支持玩客云有线网卡驱动u-boot.bin

7.fstab及install.sh文件

1-4软件下载地址:

https://pan.baidu.com/s/1Jz8MCUwHfYsm-whp2-zYZg 密码:qnys

5软件下载地址:

https://yadi.sk/d/DnCkh3KBvAFES/Linux/Armbian/5.67/20181207

下载Armbian_5.67_Aml-s805_Debian_stretch_default_3.10.108_20181207.img.xz即可,没必要下载带桌面的,本身硬件配置不高,装桌面占内存和cpu。下载完后可以使用7z等解压工具解压得到img镜像文件。

6-7软件下载地址(需魔法上网):

https://mega.nz/#F!IDQjTahb!0hw34e9BZru4ap3AlMkEwQ

刷机步骤:

1.拆机

使用美工刀和一字螺丝刀撬开玩客云屁股后面的塑料板,直接大力出奇迹即可,塑料板是用双面胶粘帖的。取下后再用十字螺丝刀拧下6颗螺丝来拆下塑料盖,最后拔出玩客云主板。

2.获取开机时uboot的控制权

这样可以设置从tf卡启动。玩客云官方系统屏蔽了开机的uboot控制,所以第一步是夺取uboot控制权。

安装晶晨s805刷机工具(注意使用文件夹里的破解)、putty。

usb转ttl线注意点:如果转接板支持vcc切换,要记得将拨片拨到3.3v,因为玩客云主板上ttl线刷vcc电压是3.3v的。

usb转ttl线

玩客云主板常见的有两种,一种是1.2版本的,一种是1.3版本的。这两种版本都可以刷,但是短接的地方不同

1.2主板

背面短接点

1.2版本玩客云主板短接

正面ttl线刷针脚

1.2版本正面ttl线刷针脚

1.3主板

正面短接点

1.3版本玩客云主板短接

正面ttl线刷针脚

1.3版本正面ttl针脚

1.2主板的ttl针脚在主板上没有标注,但是可以直接插转接板的杜邦线。1.3主板的ttl针脚在主板上有直接标注,但出厂时已被焊上锡,刷机前需要先使用电烙笔拆焊。

转接板接线到玩客云主板方法:转接板TX接玩客云主板RX,转接板RX接玩客云主板TX,转接板3.3v VCC接玩客云主板VCC,转接板GND接玩客云主板GND。

将转接板和玩客云接好后,将转接板的usb一端插入电脑usb口。

使用公对公usb线,一头插入电脑,一头插到玩客云靠近HDMI接口的那个usb口。注意一定要插到这个usb口,如果错了线刷工具将无法认出设备。

双公头usb线

这时候玩客云主板仍然不要接电源

在“我的电脑”上右键-》管理,打开设备管理器。找到COM口设备,双击切换到“端口设置”选项卡按如下设置:

设备管理器

com设置

打开putty,按如下设置:

putty设置

putty设置2

然后点击Open按钮,此时putty将打开一个黑窗口,屏幕上没有输出。

打开线刷工具,按上面所说的短接点,使用导线短接玩客云上两个点不动,同时插上玩客云的电源。操作正确的话,线刷工具界面上会出现连接成功字样,此时就可以将短接的线松开。

进入线刷模式时烧录工具

连接成功时,这时putty界面也会有输出:

进入线刷模式putty输出

点击上图线刷工具界面菜单的“文件”-》导入烧录包,选择之前下载的安卓通用刷机包update.img,然后勾选“擦除flash”、“擦除bootloader”

烧写前最后一步

确认后,点击开始按钮刷机,刷机成功后显示如下

烧录成功

此时putty也会显示如下:

烧录成功putty

这里提醒下,很多人会出现这种情况,刷机工具报错:

使用win10的人常见烧写失败情况

出现这种情况的原因不是因为什么人品、运气,它是因为刷机工具准备刷机会先卸载玩客云主板,然后重新加载usb设备时,被你系统的杀毒软件抢先拦截。解决方法也不是什么换电脑、换系统、换usb线,就是关掉所有杀毒软件。还有在装刷机工具的时候,安装程序会安装usb驱动,如果被拦截也是无法检测到usb设备的。所以在刷机过程最好全程关闭杀毒软件。

此时新的uboot已经刷入,拔掉玩客云电源,关闭线刷工具,putty不要关。

3.将armbian镜像刷入tf卡

使用USBWriter.exe将Armbian_5.67_Aml-s805_Debian_stretch_default_3.10.108_20181207.img烧录到tf卡。推荐使用SandDisk的A1 TF卡,这也是armbian团队推荐的tf卡牌子,兼顾兼容性、速度和成本。最好别搞一些来历不明很便宜的山寨卡,某宝上太多了,如果因为卡的问题出现各种莫名其妙的错误就得不偿失,会浪费很多时间。

将下载的meson8b_m201_1G.dtb文件覆盖到tf卡根目录下的dtb目录下同名文件,其他目录的同名文件不管。

将下载的u-boot.bin文件拷贝到tf卡根目录下。

将下载的fstab和install.sh文件拷贝到tf卡根目录下。

4.更新支持有线网卡的uboot

玩客云的千兆有线网卡很怪,原生armbian暂不识别,需要刷一个新的支持网卡的uboot

给玩客云主板插上tf卡,重新插上玩客云电源,然后立刻快速不停地按键盘的回车键,大概有3秒的机会,错过了拔电源重新上电再试。

成功后putty上显示如下:

开机按enter进入uboot

此时可以使用键盘输入了,输入以下代码来更新支持有线网卡的uboot:

1
mmcinfo;fatload mmc 0 12000000 u-boot.bin
2
store rom_write 12000000 0 60000
3
saveenv

成功后会显示如下:

烧入支持网卡的uboot

拔掉玩客云电源

5.设置uboot让主板从tf卡启动armbian系统

重新插上玩客云电源,快速按回车键,在putty中断后,输入如下命令来设置uboot从tf卡启动:

1
setenv bootfromrecovery 0
2
setenv bootfromnand 0
3
setenv start_mmc_autoscript 'if fatload mmc 0 11000000 s805_autoscript; then autoscr 11000000; fi;'
4
setenv start_usb_autoscript "if fatload usb 0 11000000 s805_autoscript; then autoscr 11000000; fi; if fatload usb 1 11000000 s805_autoscript; then autoscr 11000000; fi;"
5
6
setenv start_autoscript 'if mmcinfo; then run start_mmc_autoscript; fi; if usb start; then run start_usb_autoscript; fi;'
7
setenv bootcmd 'run start_autoscript; run storeboot'
8
saveenv

拔掉玩客云电源

6.将armbian系统刷入玩客云EMMC

现在将玩客云上的公头usb线和刷机ttl杜邦线都拔下来,如果你把它们留在上面,继续下面步骤玩客云开机画面会停在s805的logo那里不动了。

将玩客云用HDMI视频线接到显示器上,再把网线接上。注意网线最好用玩客云自带的,我尝试出现了自己做的可以用的网线玩客云却不识别的问题。

将键盘接在远离HDMI接口的那个usb口上,如果接在靠近HDMI口的那个usb,开机可能会卡在s805的logo那里不动了。

现在插上玩客云电源,此时玩客云上接的东西有:网线、HDMI线、电源线、键盘、tf卡,其余不要接任何东西。

开机后经过一段时间的等待,会出现armbian系统的登录,让你换密码,先换成12345678方便操作。armbian对密码复杂度还有一些简单的限制,不过12345678就可以,为方便操作,先改成这个密码,后面自己再换。

进入系统后,如果正常的话,此时应该玩客云已经获取了ip,会打印出来

成功启动tf卡上系统

此时先别急着配置系统,先把系统装到EMMC上,然后就可以随心设置了。

使用su命令切换到root用户,以下命令都使用root身份执行

先删掉之前更新用的u-boot.bin,现在不需要了,删掉节省空间。

1
rm -f /boot/u-boot.bin

将fstab和install.sh文件移动到/root/目录,并给予权限

1
mv /boot/fstab /root/
2
mv /boot/install.sh /root/
3
chmod 755 /root/fstab
4
chmod 755 /root/install.sh

在进一步执行安装脚本前,我们需要安装abootimg这个依赖的软件包,使用如下命令安装:

1
apt-get install -y abootimg

如果网络正常的话,就安装了这个软件

下面正式开始将armbian系统从tf卡装到EMMC,使用如下命令:

1
/root/install.sh

如果操作正确的话,此时安静等待,文件拷贝需要一阵子,不要断开电源,拷贝/usr目录的时候会时间比较长点。

执行完成后如果没有显示什么错误的话,说明成功了,此时输入以下命令安全关闭系统:

1
halt -p

等待系统完全关闭后,拔下玩客云电源,拔下tf卡。重新插上玩客云电源,此时如果没有问题的话,armbian将直接从玩客云主板的EMMC上启动。此时tf卡已经使用完毕,可以格掉当玩客云的扩展硬盘,或者可以重新拷入u-boot.bin、fstab、install.sh文件来再刷下一个玩客云。

7.(可选)设置uboot直接从EMMC启动

经过之前6步,现在如果不插tf卡,那么玩客云就从EMMC启动了,如果插上tf卡,则玩客云就从tf卡启动,相当于一个双系统。但是我不需要双系统,我想把系统装在EMMC,然后tf卡用来存东西。目前开机如果tf卡插在玩客云上,系统还是会从tf卡启动。我想玩客云忽略tf卡直接从EMMC启动,这样一来我不需要双系统(趁玩客云便宜,我屯了N个玩客云,不需要什么双系统),二来启动更快。

参考上面第5步,不过命令换成如下:

1
setenv bootfromrecovery 0
2
setenv bootfromnand 0
3
setenv bootcmd 'run storeboot'
4
saveenv

这样玩客云以后就都从EMMC启动了,如果想再次从tf卡启动,就重复第5步就行。

8.已知问题

在tf卡上运行玩客云时,1080p分辨率没有什么问题,但是安装armbian到emmc后,可能在1080p会花屏,可以修改/boot/hdmi.sh文件为以下内容来将分辨率降为720p显示,这个文件内容来自于旧版本的armbian:

1
#!/bin/sh
2
3
#bpp=32
4
bpp=24
5
6
#mode=1080p
7
mode=720p
8
9
echo "$mode" > /sys/class/display/mode
10
11
# Disable framebuffer scaling
12
echo 0 > /sys/class/ppmgr/ppscaler
13
echo 0 > /sys/class/graphics/fb0/free_scale
14
echo 1 > /sys/class/graphics/fb0/freescale_mode
15
echo 0 > /sys/class/graphics/fb1/free_scale
16
17
# Set framebuffer geometry to match the resolution
18
case $mode in
19
  720*)
20
	fbset -fb /dev/fb0 -g 1280 720 1280 1440 $bpp
21
    ;;
22
  1080*)
23
	fbset -fb /dev/fb0 -g 1920 1080 1920 2160 $bpp
24
    ;;
25
esac
26
27
# Enable framebuffer device
28
echo 0 > /sys/class/graphics/fb0/blank
29
30
# Blank fb1 to prevent static noise
31
echo 1 > /sys/class/graphics/fb1/blank
32
33
#echo 0 > /sys/devices/virtual/graphics/fbcon/cursor_blink
34
35
#su -c 'hciattach /dev/ttyS1 any'

至于完全解决花屏问题支持1080p分辨率的事情就交给其他人了,我不想在这上面花时间。

9.后记

将玩客云刷成linux后,可以安装ups nut客户端,这样就可以和群晖的UPS服务器或者其他UPS服务器连接,达到停电时安全关机的目的。因为玩客云没有电源开关,所以在来电时,玩客云也会自动开机,这样就达到了全自动的效果,不需要人工维护,时间很宝贵!

安装完NFS客户端后,可以挂载群晖或者其他服务器的NFS共享硬盘,此时这个s805的小板子硬盘容量将没有上限了,不过一般这种需求都是用来下载什么的。实测玩客云的板子运行时负载大概在2-5w之间。基本不超过5w,所以还是很节能的。

据说因为硬件不够强大,docker在玩客云上跑不起来,我没有尝试过,也没有这个需求。在这种嵌入式板子上跑docker简直蛋疼,还不如在电脑上装个虚拟机靠谱。

在安装系统完成后,基本上EMMC可用的空间是5.4G,系统大概占用硬盘11%(什么软件都不装的情况下)。cpu是4线程,内存总量是894M,什么软件都不装系统占用内存大概在6%。如果安装的软件多了估计内存就不够用了,这时候开虚拟内存就行了,linux开虚拟内存很简单。考虑到虚拟内存开在EMMC上会减少板子寿命,你可以把虚拟内存开在tf卡或者u盘上,现在tf卡太便宜了,32G搞活动时也就二十块不到,坏了扔了换一个就行了。

玩客云主板不会被刷砖,除非因电压电流问题主板烧掉,否则可任意重复以上刷机步骤,不必担心变砖。

喜欢这篇文章的话,在下面给个五星好评

Happy Hacking, bro.