2020年前后,当华为海思被美国制裁时,国内安防芯片缺口很大(安防领域,当时海思IPC SoC大约占有70%市场,DVR/NVR SoC大约占有90%市场)。之后群雄逐鹿,瑞芯微也适时推出了两款面向IPC的SoC芯片,RV1126(4K800万IPC)及RV1109(500万IPC)。RV1126采用四核32位ARM Cortex A7架构,有2T算力的NPU,适合用来做视频编解码,跑与视频相关的算法模型。
手边有一块闲置很久的基于RV1126的嵌入式开发板,1G内存,自带8G eMMC硬盘。闲暇之余,想用来安装宝塔面板,搭建nginx等环境,然后跑web应用。厂家提供的固件是基于 buildroot的,如此,需要从源代码开始,编译和配置自己需要各种软件和库。对此我一窍不通,难度太大,只能作罢。
最近发现厂家更新了固件,提供了基于Ubuntu的底层固件,之前的想法又冒出来了,试了试,居然成功了,这里做些回顾记录。
刷机
刷机方法与刷安卓手机类似。电脑首先安装usb驱动,瑞芯微有提供驱动安装助手–DriverAssitant_v5.0(下载)。驱动安装好后,开发板通过USB与电脑连接,识别到设备。
瑞芯微的刷机工具–RKDevTool(下载),刷机过程中可能出现的问题与安卓刷机基本一样,包括不限于USB线,设备连接,识别,驱动等方面。
RV1126开发板厂商提供的基于Ubuntu的固件–RV1126-Ubuntu-20.04-firmware_20240227(下载)。
环境搭建配置
刷完机,插上网线,因为设备默认DHCP,搜索查询到设备的IP,然后SSH登录。
1panel面板
因为时常操作云服务器,此时第一想法是安装宝塔面板。却被提示在线安装的宝塔,不支持这个arm 32位设备。让去试试宝塔5.9。简单搜索了下,不知道去哪弄宝塔5.9的安装包,官方的离线安装服务里可能有旧版的,但要收费。(写此博文时,又在网络搜索一番,发现有好心人搜集整理了旧版本的宝塔,此处)
转念想到何不试试其他的面板程序,比如1panel。1panel面板官网写着支持armv7l服务器架构。试了下,果然安装成功。有宝塔的经验在先,1panel面板的安装,使用上手很快。终端SSH及文件管理,很直观,与宝塔的使用基本一致。
frp
为了方便SSH远程登录,及面板的远程管理以及后续web站点能外网访问,首先用上frp。用一台阿里云香港服务器(2C2G30M)做frp的服务端,配置好。虽然第一次使用frp,因工作原因,对p2p,nat穿透,端口映射,DDNS知识了解很多,所以对frp理解,上手,使用起来很容易。
frp的设计理念可能是要保持服务端配置的精简,统一(在客户端做各种区分),比如保持服务端唯一的对外http端口,https端口,ssh端口等。如果有多个对外服务(比如web应用),只需要在frp客户端做配置即可,通过绑定不同域名来区分不同web应用(而非常规的采用不同端口区分不同web应用),如此思路很清晰,就是有点费域名。:-)
持续将近半个月的frp使用下来,很稳定,速度也很好。当然,这可靠性多半要归我这台2C2G30M的阿里云香港服务器。看网上的讨论,这个系列的阿里云香港服务器很抢手,性价比很高。我比较看重的,回国内延时非常低,在广州ping值延时只有8-9ms,比广州服务器ping值还低。(对于我用来科学上网,非常完美)。
说个题外话,我曾持续(从一个月到一年时间不等)测试各种云的香港服务器(比如狗云,马云,鸡云,草云。当然还有大厂的,腾讯云,华为云,天翼云等),回大陆线路,表现最好最稳定,性价比最高的还是阿里云。
应用
解决了服务器远程管理,外网访问问题。剩下的就是搭建网站了。使用宝塔时,习惯一键安装NMP等环境。1panel也有类似功能,不过其提供的默认web环境是OpenResty,安装时却出了点状况,始终安装失败。
1panel的理念是一切皆docker。安装的所有应用均是基于docker的。安装OpenResty失败,起初以为是docker镜像源,网络问题。不过,这个很快排除了。
前段时间网络上讨论很多,docker hub及国内的众多加速服务在国内完全无法用,当然解决办法也很多。我比较喜欢的办法,对于个人用户,可以将常用的镜像通过GitHub action同步到阿里云容器镜像服务 ACR,然后选择公开或者私有,需要时从ACR拉取容器镜像。(见 docker_image_pusher)
这种方法,我使用多次,国内服务器上拉取容器镜像,速度很快,也稳定可靠。当然,更常规的做法是使用docker hub镜像加速,比如1panel提供的临时加速地址:https://docker.1panel.live 。目前大环境下,国内的docker hub镜像站几乎都关了。我上面提到的docker image pusher方法对于个人用户是非常实用的。
排除网络问题,查看日志,发现安装OpenResty失败的原因是因为1panel商店里上架的这个版本不支持我使用的armv7l处理器。此时恍然大悟,然后又有点忧心。相较于x86,armv7l算比较小众,很多docker应用可能没有适配。如果通过1panel自带的商店安装,估计很多安装不了。如此,对于这个开发版使用1panel面板作用不大了。当然1G内存,外加4核心处理器,本身有点鸡肋和尴尬。也只能用来跑些简单的web应用。
找到问题以后,手动安装了nginx/1.18.0,PHP 7.4.3-4ubuntu2.23 (cli),这样能来跑静态及PHP站点了。
目前这个开发板上运行的web应用有:
- 1panel面板
- frp
- Pi Dashboard
- twikoo(实验)
- uptime-kuma
- blog(节点之一)
之前在网友小宋的博客看见介绍的用来监控树莓派状态的应用Pi Dashboard,UI比较好看,起初试了在云服务器上跑,但是x86的服务器获取不到CPU温度。如今这个是arm的开发版,安排上。
通过docker安装的twikoo,uptime-kuma可以成功运行。
作为我这个hexo博客节点之一(目前我这个博客节点有:阿里云广州,华为云北京,京东云北京,海外netlify以及此开发板的香港服务器frp反代)。通过Github action构建,然后分发到不同节点服务器上,方法参见我之前的博文:博客网站更新总结-2023–Github-action及通过GitHub Action将博客网站等静态文件同步到云服务器。
考虑停电,断网,设备重启等意外情况,给相关程序加上开机启动,进程守护。同时因为只有1G内存,加上定时任务,定时清理内存,缓存。此时1panel面板的价值作用体现了。
前面提到frp是通过不同域名区分不同网站的,最后各web网站的访问地址是域名+端口,比如one.jiangyu.org:8090,two.jiangyu.org:8090。给这些源站套上CDN,就能不带端口,直接用绑定的CDN域名访问对应的web站点。只是这样一来,就更费域名了。:-)
还有一个问题。绑定CDN以后,我习惯强制https,如此需要给CDN上传SSL证书。如今SSL证书有效期已缩短到90天(我曾在6个月前的博文 SSL证书,部署及相关知识中总结过与SSL证书相关的知识,彼时证书有效期还多是1年,半年不到普遍都是90天了),如果自己的VPS部署站点,开启https,申请SSL证书,然后绑定,不断更新,这都能自动化完成。可是在CDN应用里,需要自己上传SSL证书,如果过期,需要重新再上传新的证书。如果使用的是大厂CDN,这个问题比较好解决,厂家开放了各种api,基于此很多大神帮忙造好了轮子,SSL证书申请,上传到CDN,部署,更新都能通过脚本自动化完成。可是对于小厂CDN,一般没开放api或者没有现成的造好的轮子,需要自己频繁手动更新SSL证书,是个大问题。
最近看到有某CDN小厂提供了名为证书无忧的服务,能很好解决上述问题。在CDN配置里,第一次先上传自己的SSL证书,在证书到期前,会自动更新有效期为 90 天的免费证书。目前公测期间这个功能免费,以后可能每次成功更新证书收费1-2元。这是个很好的功能,不知道会不会有其他CDN厂家跟进。
其他
这个开发板尺寸100 x 60mm,比树莓派略大,买来一个树莓派的亚格力外壳(外壳整体尺寸与这个开发板相当),重新钻孔,保护起来。买外壳时,看见店家有与外壳配套的散热风扇,也买了一个。测试了一段时间,对比发现,这个5V 0.2A的小风扇能给CPU降温5-6℃。不过因为RV1126这颗SoC面向的是安防,消费类IPC领域,低功耗,温度控制这块做得比较好。即使不加散热风扇,在室温30℃时,一般负载下运行时的最高温度也只在50℃上下,离会降频的85℃还很远。
这个开发板有个40pin 的 gpio接口,厂家文档说兼容树莓派的接口,除此没有更多资料。本来想着如同树莓派一样,接几个诸如温度,湿度这样的传感器,调试一下,资料欠缺,需要补的课很多,只能暂时作罢。
评论
我发现你博客的样式有个不好的设定,背景颜色,当页面在顶部时我继续滑动触控板可以看到白色背景,我看了一下标签的样式,原来你没将颜色设定在html,而是设定在下级的body标签上。
哈哈,你观察细致,是有这个问题。这个主题原本使用的bulma框架,版本比较旧。最近我升级了bulma版本,同时更改了背景,就出现了这个问题。原本想着可能需要对bulma做些设置,修改。但是对此不熟,bulma又比较庞杂,就放下了。
你的建议给我提供了另一种思路,晚点试试。
请问正文是什么字体?
LXGW WenKai Screen
这玩意资料是最难搞的,基本不面向个人提供,前段时间搞亿智SV806方案的主板,因为我们的硬件都停产了,淘宝上联系一家,想买他家的主板和屏幕等硬件试试,人家直接说不卖,不想做这个生意
牛逼,你还有这一手。不过你这 30M 带宽的主机厉害啊,就相当于有公网 IP 的家庭宽带了啊。回头我也去看看。
我就说嘛,我这记性,原来是从你这看到的。
这行啊,一台迷你本地服务器
一直习惯用ssh加vim,不习惯宝塔
宝塔有个单独的ssh远程连接工具,还不错。
不断折腾,不断进步
还是你专业啊,我现在的方向跟你大致一样,大概半年前我就着手慢慢将数据迁移回家里的小服务器上,因为我家里有公网IP,所以我直接使用NGINX反代就成功将端口隐藏了。
远程服务器我测试了好几个,最终也是选择了阿里云的,抢了一个24/月的,香。
阿里云这个系列的服务器值得长期持有,作为传家宝。
优秀
这种只能玩,不敢用于生产。
是的,玩票性质的。
32设备刷armbian,有时候就很尴尬,不过casaos貌似有第三方的32位镜像外部安装源,详细搜索玩客云刷casaos,大部分浏览量高的视频都有介绍。另外,记得备份数据。
不怕,上的都是静态站点,有多个员站,有些还有CDN。
执行力好强,直接就搓完系统面板和穿透。2核2g30m吗?30m太猛了,多少钱啊,可以给我个链接,我也换一台大点带宽。
对。2C2G30M的34一个月,2C1G30M的24一个月。这是最低价位的两档,每天限量出售。24的几乎买不到,34的半夜12点以后好买,到早上可能就缺货了。对应的阿里云的地址:https://www.aliyun.com/product/swas
感谢,30m非常棒,我一直想找个大带宽,
我有一堆传感器都没用起来,找了个盒子装起来扔床底了。哈哈哈
你博客服务器架构太复杂了,看着就专业。SSL整书的问题我也头痛,估计后面或者买1年整书,或者手动配置,估计学不会代码自动部署,因为有CDN挡着。
其实不复杂,就是弄了多个节点,取到负载均衡,类似CDN的作用。(主要是折腾折腾
)
原来你也是技术大佬呀
哈哈,你误会了。只能算技术爱好者,本质工作还是产品相关。
arm倒腾docker太折磨人了, 故换x86小主机了
是的。x86可玩性好太多。