本文记录分享将M401A刷成armbian服务器并安装Pandora-ChatGPT,在实现本地ChatGPT家庭内网无障碍访问的基础上,有一定动手能力的,可以通过IPv6、域名绑定和DDNS配置,搞定ChatGPT free&anywhere。
要实现上述目标,无需VPS或容器、无需占用办公或娱乐主机,需要的仅仅是一台闲置的Sxxx电视盒子。
- 准备工作
- 一个m401a或其他所有ophub明确支持的arm盒子,我自用的是江苏版m401a sm0(这个盒子最早只能刷1.5ghz版本的官改固件,后期用ce、atv或者其他mod固件dtb都是用的1.7ghz才能稳定工作,应该就是传说中的TypeC :-( M401A(2+16G)已识别版本及对应安装armbian方法 · Issue #807 · ophub/amlogic-s9xxx-armbian (github.com))
- 一个U盘,8G以上即可,最好16G以上
- 镜像写入工具,建议rufus,小巧、有便携版无需安装
- 一个未被封禁的ChatGPT账号
- 一个Cloudflare支持的域名,.tk、.ga等免费域名均已不支持,.eu.org没问题
- 可选
- 一个邮箱账号(gmail、outlook等大厂的均可),用于Cloudflare注册等,可临时注册
- 一个梯子,预防github抽风或者注册某些账号使用
- 一定的动手能力,实在不行可以使用我提供的一键脚本
第一部分 ChatGPT的开源部署/免费使用方式
搜索Github,关键字ChatGPT,54.5k条结果。可见在开源领域ChatGPT话题和应用也非常火爆,按stars浏览,大致可以了解到fork及部署应用较多的开源项目分别为lencx/ChatGPT、Chatgpt-next-web、Pandora等。
- lencx/ChatGPT
lencx/ChatGPT以37k的stars位列第6,项目是实现并发布了Windows、MacOS、Linux的ChatGPT桌面应用程序。对于已有plus账户、网络环境优质的用户而言非常有用,不必再登录OpenAI网站即可在桌面端应用中使用ChatGPT服务。
- ChatGPT-next-web
ChatGPT-next-web赢得了30k的star、位列11,是一个基于Vercel容器的一键部署项目,部署简单、易用性很好。但是,重点在于需要/依赖Vercel,这种依赖对于Github用户而言不算什么,但对非专业用户并不友好。
- Pandora
Pandora是一个“让你呼吸顺畅的ChatGPT”,以12.6k stars列25位,主要应用部署群体在国内。ChatGPT基于python,支持命令行、Web页面两种应用方式,也支持docker部署方式。受欢迎的原因在于解决了国人使用免费版ChatGPT的遇到的一堆难题。本文主角就是Pandora,无容器依赖,部署也非常简单。
第二部分 M401A刷写Armbian
这里我们基本上是按照下载镜像、使用rufus安装镜像到U盘、U盘系统引导启动盒子、安装系统到EMMC的基本顺序操作。
- 下载并安装镜像到U盘
最新的Armbian bookwarm镜像可以在这里下载:
如果github抽风,可以通过镜像站下载:
-Jammy(对应Unbuntu Jammy Jellyfish 22.04 LTS)
-Bullseye(对应Debian 11)
蝶变还是乌班图自选,事实就是乌班图基于蝶变。ubuntu最新版本是Lunar Lobster 23.04 LTS。我开始用的是同版本jammy,后来改成bullseye重做了一遍 :-) 本文基于6.1.30版本,小版本迭代很快,当前ophub应该已经发布了更新版本的S9XXX armbian。
下载后,打开rufus,选择你的U盘(图例是示意用的仅4G容量盘,实际要求8G以上肯定没问题),选择刚刚下载的ophub bullseye或者jammy镜像。点击"开始"即可。
完成刷写后,仅仅一项工作需要做,修改uExt.txt文件,将dtb文件配置由e900v22c.dtb改成m401a.dtb,其他(包括uboot)都不用动。保存后拔下U盘。当然,最好优雅点,弹出再拔出 :-)
这里要说,我自己的m401a TypeC,mainline、uboot我没有做任何其他配置改动,ophub大佬的镜像发展到6.1.30内核版本,应该已经很成熟了,纠结于历史issue、选择5.1x甚至5.x版本内核的,不见得是好主意。
- U盘armbian启动并验证
至此,就要注意U盘引导了,避免盒子里的Android系统对U盘的任何修改,三种正确的姿势:
a)如果连续按遥控器左键(或者右键)进入recovery还有效,那就关闭盒子电源、插入U盘再开机,连续按遥控键
b)遥控按键已经进不了recovery的,换b计划,通过运行reboot_to_elec打开,在弹出的对话框里按"确定"后,再插入U盘
c)通过adb shell reboot update,也是在输入命令运行后再迅速插入U盘
U盘启动后,系统启动及首次启动的配置过程,不用接TTL、通过hdmi连接显示器也可以输出"跑码"内容。
最终结果,成功引导启动,系统会输出"Create root password:",这里其实已经可以通过ssh登录,没必要等到输出其他内容,比如上图的"Armbian login:"。小白注意,不要试图在这里按键,那只是armbian的系统输出,没有交互。
配置ssh客户端,armbian的root默认初始密码1234。这里说明一下,后面的ip地址由1.10变为1.20是因为重启盒子前修改了光猫路由的dhcp范围。首次ssh登录后,依次修改root密码、添加用户并创建密码(可跳过,建议添加),设定时区为Asia/shanghai。
可以用uname -a、cat /proc/version、ip a等看下系统和网络接口信息。我这里ip a显示的ipv6地址为"2409:"开头,so,没问题,可以通过配置DDNS在外网访问的 :-) "fe80:"开头的也不用难过,无非配置复杂点、反人类点。
- 安装armbian到EMMC
开始安装armbian到emmc,输入运行一下armbian-install即可(我没有指定参数顺利完成)。
-Box ID,选择m401a、输入306
-Filesystem ID,选择ext4、输入1 (这里可根据个人需要自行选择)
然后,就没有然后了,等待系统安装到EMMC完成,整个过程2分钟吧。Successful后,按照提示,poweroff关机、拔掉U盘、关电源、加电开机,Done!
安装到emmc后,也可以通过reboot命令重启,在显示器黑屏后拔下U盘即可。进入EMMC armbian,2+16G、CPU温度,网络都是正常的(运行时间近23小时,这是后来补充的图)。
- 插曲
有小伙伴会注意到m401a盒子的ipv4地址发生了变化。那是因为我修改了光猫的dhcp地址池,起始地址从10改成了20。
之所以多此一举修改光猫dhcp设置,其实是为了预先看一下光猫上ipv6以及端口映射、转发、过滤方面的可配置潜力。目的在于不再去动用一台路由器,仅依靠现有设备配置DDNS、域名绑定和ipv6外网访问,最简方式实现ChatGPT anywhere。
我这个光猫不算新,但感觉是能支持我的需求的,关键在于获得admin账号,可以telnet手动配置。
好的,至此我们已经将最新版的Armbian安装到了S905盒子m401a的EMMC中,和android say googbye了。后面就是部署pandora ChatGPT了。下一期将分享pandora部署、DDNS配置以实现ChatGPT free&anywhere。
文章评论