CUBERWR/BLOG

50块的cm311 1a机顶盒刷debian用作服务器

2023.07.24

起因

之前用作软路由外加docker跑一堆服务的蜗牛星际j1900前不久掉盘了,赶紧拔下来装硬盘盒把数据导出来,然后又拿小米8+termux外加自己编译的一堆东西把原本的服务跑起来了,虽然是arm64,骁龙845在处理这些任务时也很强,但是始终不是一个正真完整的linux,要跑起来处处都是坑,docker也基本拜拜,重新编译内核什么的想想就头很大,少不了一堆麻烦事,就在最近一次想要部署minio时候,release的arm64二进制文件基本别想,因为安卓的DNS跟一般linux不一样,普通的arm64 linux的go程序只要跟dns相关的基本都得重新编译,这次也一样,编呗,然后编译完了还是有问题,跑不起来,这时候我已经不想再折腾了,甚至连报错是什么都懒得仔细看了,换平台吧

这时候我手上有cm311-1a玩客云,还有个创维e900s,cm311这个是之前过年期间家人要回来会要看电视,所以买了一个刷原生安卓TV装了TV Box,youtube等等给他们看电视用,码率不高放个4k60还是没什么问题的,kodi+阿里云webdav也很方便,现在这个电视被我搬到房里当显示器了,cm311就空下来了,相对其他两个内存不到1g,arm32的架构,cm311的s905l3a+2+16强太多了,就用这个吧

过程记录

之前刷过原生安卓TV,开了无线ADB,这里是armbian的release页面,下载需要的版本,解压后使用任意烧录工具烧录进U盘,U盘容量大小4G就够了,注意U盘对USB2.0的兼容性,我手上常用的几个U盘都不行,找到一个很久不用的老U盘就可以了

刷完之后插在右边USB口,具体是否两个口都能用我不太清楚,但是我插右边口是可以的,之后电脑连ADB,执行adb shell reboot update就会从U盘启动了,我这里用了采集卡并且在另一个USB口插了键盘,跟随系统引导完成配置,这里的配置只影响U盘内容,登录进入shell之后执行armbian-install之后跟随指导完成配置即可,有一个要注意的点就是dtb选择时候选305

安装完成之后就能是一台arm64的linux主机了,现在arm64生态也不错,服务器上常用的各种东西都能跑起来,功耗也很低,安逸

遇到的几个坑:

  • U盘启动,在设置密码时候不小心碰到U盘,掉盘了,重启之后所有密码都不对,解决方法是U盘插到支持的设备上挂载,然后编辑etc/shadow,把类似于这个root:\$y\$j9T\$zdbDJyCv.61hxVdVkDGvi.\$GC/EmtJxdR6nPTM9/HN5QbcyVoCHCe8B2sOT1ZKJZ27:19278:0:99999:7:::的一行改为跟这个相同,之后使用root密码1234就可以登录
  • 如果之前启动过coreELEC,会有无法从U盘启动armbian的问题,需要执行dd if=/dev/zero of=/dev/block/env清空变量