前端时间把树莓派出了,还是树莓派2,比买的时候还赚了点,买的时候还是树莓派刚出的时候,大概15年前后,七八年以后依旧保值,你敢信?后来在网心云通过福利购买了2台玩客云,等到了6个月回本后果断下机,然后刷了一个Armbian,内核3点多,当年高内核版本没有HDMI或者USB其中一个口用不了,低内核版本的缺陷是玩不了docker,需要进行取舍,我主要用Armbian通过reminna来远程办公室的电脑,所以也就无所谓了,果断刷低内核版本,然后通过移植,保证了HDMI和USB口全部可以用,然后加上一张SD卡,简直完美!虽然分辨率固定1080P,但是我也没指望他到很高,而且我的显示器也是1080P的,所以对于我来说,这个小缺陷完全没问题。
前几天第2个网心云也下车了,我打算把第2个玩客云也搞一下作为备用,顺便把两个固件是如何移植的在CSDN上进行描述一下,一方面方便和我有同样需求的朋友,另外一方面也是因为我也忘了上次我是怎么弄的了,但是大概思路还是有的,所以,我去网上简单的搜索了一下,突然发现了一个宝藏,Armbian的主库竟然支持玩客云了,而且简直完美,最新的发行版,最新的内核,HDMI、USB、SD卡都能用,甚至你可以用工具进行直接刷入,你还要求什么?
先把大佬主库的地址放上来,以示敬意:
https://github.com/hzyitc/armbian-onecloud
刷写的过程对于现在来讲可谓是非常简单了,TTL都不用进。
简单来讲,就是下载安装 Amlogic USB Burning Tool v2.2.0 然后到安装目录,用修正后的 Usbromdrv.dll 替换原文件,为什么要用这个文件替换呢?烧写工具再下载到97%左右后会对ROOTFS进行验证,因为这个分区比较大,计算时花费的时间比较长,工具就会觉的失去响应,认为下载失败,结束烧写。方法也是从https://github.com/hzyitc/armbian-onecloud/issues/76方面获取的,主要就是两个工具:
Amlogic USB Burning Tool v2.2.0:
https://github.com/hqvv/onecloud/blob/main/Amlogic%20USB%20Burning%20Tool%20v2.2.0.exe
usbromdrv.dll
https://github.com/hqvv/onecloud/blob/main/UsbRomDrv.dll
可能下载比较慢,大家可以通过加速工具进行下载,就是在链接前面加入:
https://ghproxy.net/
或者
https://git.xfj0.cn/
就像下面这样
https://ghproxy.net/https://github.com/hqvv/onecloud/blob/main/Amlogic%20USB%20Burning%20Tool%20v2.2.0.exe
这两个加速工具大家且用且珍惜,需要再用哦,尽量把资源留给有需要的人哦。
工具下载好了以后,再进行下载需要的烧录包,大家可以自己去主库的release里寻找有需要的,最新的是昨天下午编译后的6.1.25,我把烧录包写在下面,我把加速也写上了:
不带桌面的
https://ghproxy.net/https://github.com/hzyitc/armbian-onecloud/releases/download/ci-20230424-173029-UTC/Armbian_23.05.0-trunk_Onecloud_bullseye_current_6.1.25.burn.img.xz
带桌面的
https://ghproxy.net/https://github.com/hzyitc/armbian-onecloud/releases/download/ci-20230424-173029-UTC/Armbian_23.05.0-trunk_Onecloud_bullseye_current_6.1.25_xfce_desktop.burn.img.xz
好了,下载完成以后,咱们就可以正式开刷了,安装工具,替换,然后打开,导入烧录包,把普通擦除和boot loader的勾勾勾上,点击开始。双公头USB线一面插到电脑上,一面插到玩客云上离HDMI近的口上,然后就通电,就开始烧写了,烧写失败没事,重新烧写就没事了。没开始烧写?那就需要拆机进行短接了,短接也很容易,直接百度玩客云刷机就OK了,按照他的方法拆机短接进入刷机就行,但是别按照他的方法焊接TTL,刷什么底包之类的,大佬已经帮咱们做了很多了,那些都是旧时的。
刷入成功以后就拔了烧写线,连上网线,插入鼠标键盘,插入HDMI,如果你刷的桌面版,再打开一个电脑,通过SSH连入玩客云,不知道IP地址的可以去路由器里看看,路由器里写onecloud就是,还有一个办法就是,登录进去,用户名root,密码1234,进去以后 ip address就可以看到了,通过SSH进入以后就可以看到让你修改密码,创建账户,搞定就OK了。手头没有电脑的也没事,ctrl+shift+F1进入文字登录窗口,依旧是上面的用户名和密码,进入初始化就OK了。如果你刷的本来就是不带桌面的,那就直接通过用户名和密码进入,进入初始化就OK了。
首先请记的换源,推荐USTC的源,换源以后依旧很慢?是不是source.list.d下的源没有换或者屏蔽,可以参考我的这篇文章:树梅派 更换源后,依然从官方源更新,算了直接来吧。
想备份的进入/etc/apt/source.list.d/下自行备份或者换源,换源的把armbian.list里的apt.armbian.com换成mirrors.ustc.edu.cn/armbian
不想备份的,直接sudo rm armbian.list,这里推荐的是sudo mv armbian.list armbian.list.bak因为常用的工具debian主库里已经有了
主库的,一共8行,带#号的就是被注释掉了,我们把下面的3行没带#号的也给注释掉,直接就留下第一行,然后把里面的deb.debian.org换成mirrors.ustc.edu.cn就可以了,然后sudo apt update完事。
换源的时候注意,他没有安装VIM,你可以先用nano进行换源,顺便提一句,VIM的退出你会吧,:q。
其实这个问题是我主要想聊的,那就是HDMI只显示U-BOOT的界面,然后进入系统后就无信号或者是分辨率不对,当然我说的分辨率不对是最大1080P他没有识别到,不是没有给显示4K,别难为他。这个问题开始的时候我也以为刷机失败或者是刷机包有问题,后来经过我的探索,我发现有的显示器是没问题,有的显示器有问题,于是我明白了是分辨率不对,有的显示器玩客云识别到的EDID是错误的,或者压根就没识别到,但是在这里调整分辨率不是通过进入桌面的显示设置,传统的xrandr也不行,修改HDMI.sh或者在boot的ini文件里修改VMODE之类的都没用,于是我又开了一个ISSUE问了一下大佬,如何修改分辨率,大佬给了我回复,的确是要在kernel的启动参数里设置,不过需要设置的是EDID,于是我设置了EDID,但是依旧没有效果,后来我看了一下大佬编译的内核config,发现原来是大佬里面没有开CONFIG_DRM_LOAD_EDID_FIRMWARE选项,所以就算设置了EDID也没用,所以,我们需要从armbian的主库:https://github.com/armbian/build里git下来,然后去按照大佬的编译命令去编译,编译完成以后,记的修改/boot/armbianEnv.txt里的
# extraargs=""
改为:
extraargs=" drm.edid_firmware=edid/1920x1080.bin "
如果你的分辨率不是这个,那么去/lib/firmware/edid下找找适合你的分辨率吧。
或者你提取自己显示器的EDID然后保存到这个文件夹下也是可以的。
关于提取EDID后期我再详细说,也可以自行百度哦。
对了,编译armbian内核挺需要时间和基础的,我编译了一个,上传到了蓝奏云,不过我编译的仅仅是内核,大家可以先烧写带桌面版的那个,记着版本必须是上面我给的那个,然后,通过SSH进入,把config-6.1.25-meson uImage uInitrd三个文件备份了,然后用我上传的那三个文件替代了,地址:https://wwte.lanzouy.com/iJqxA0twmk8h,最后修改了armbianEnv.txt就完事了!
我又提交了一个ISSUE,建议大佬打开这个编译选项,不知道大佬会不会采纳,如果采纳的话,以后大家就直接修改armbianEnv.txt就可以了!