在RV1126开发板上基于Ubuntu搭建Web应用环境全记录

在RV1126开发板上基于Ubuntu搭建Web应用环境全记录

背景与动机

2020年前后,在美国对华为海思实施制裁的背景下,国内安防芯片市场出现巨大缺口。当时,海思在安防领域的IPC SoC市场占有率约为70%,DVR/NVR SoC更是高达90%。为填补这一空白,瑞芯微推出了两款面向IPC的SoC芯片——RV1126(支持4K 800万像素IPC)和RV1109(支持500万像素IPC)。其中,RV1126采用四核32位ARM Cortex A7架构,内置2T算力的NPU,非常适合视频编解码及相关算法模型运行。

笔者手头有一块闲置已久的RV1126嵌入式开发板,配备1GB内存和8GB eMMC存储。一直希望在其上安装宝塔面板,搭建nginx等环境以运行Web应用。然而,厂家最初提供的固件基于buildroot,需要从源码编译配置各类软件和库,这对笔者而言难度过高,只能暂时搁置。

近期,厂家发布了基于Ubuntu的底层固件更新,重新点燃了尝试的热情。经过实践,成功实现了目标,现将过程记录如下。

刷机步骤详解

刷机过程与安卓手机刷机类似,具体步骤如下:

  1. 安装USB驱动

    • 使用瑞芯微提供的驱动安装助手——DriverAssitant_v5.0(可官网下载)。
    • 安装完成后,通过USB线连接开发板与电脑,确保设备被正确识别。
  2. 使用刷机工具

    • 下载瑞芯微官方刷机工具——RKDevTool。
    • 刷机过程中可能遇到USB线连接、设备识别或驱动问题,需逐一排查解决。
  3. 固件选择

    • 采用厂家提供的基于Ubuntu的固件——RV1126-Ubuntu-20.04-firmware_20240227。

环境搭建与配置

刷机完成后,通过网线连接设备,默认启用DHCP,查询设备IP后通过SSH登录。

1panel面板安装

  • 初始尝试安装宝塔面板,但提示不支持arm 32位架构,建议使用宝塔5.9版本。
  • 搜索发现官方离线安装服务可能提供旧版,但需付费;幸运的是,网络上有热心网友整理了旧版本资源。
  • 转而尝试1panel面板,其官网明确支持armv7l架构,安装顺利。
  • 1panel界面直观,终端SSH和文件管理功能与宝塔类似,上手快捷。

frp内网穿透配置

  • 为方便远程SSH登录、面板管理及Web应用外网访问,部署了frp。
  • 使用一台阿里云香港服务器(2核2G30M带宽)作为frp服务端。
  • 基于对P2P、NAT穿透、端口映射和DDNS的了解,快速掌握frp配置。
  • frp设计注重服务端精简,通过客户端配置区分不同服务,如绑定域名区分Web应用,避免端口冲突。
  • 持续使用半个月,稳定性高,速度流畅,归功于阿里云香港服务器的优质线路(广州ping延迟仅8-9ms)。
  • 对比测试多家云服务商(如狗云、马云、腾讯云、华为云等),阿里云香港服务器在回大陆线路稳定性和性价比上表现最佳。

Web应用部署实践

解决远程管理和外网访问后,重点转向网站搭建。

环境搭建挑战

  • 1panel采用“一切皆docker”理念,默认提供OpenResty Web环境,但安装失败。
  • 排查发现非网络问题(已通过GitHub Action同步镜像至阿里云ACR解决Docker Hub访问难题)。
  • 日志显示OpenResty版本不支持armv7l处理器,凸显arm架构在docker应用适配上的局限性。
  • 鉴于开发板1G内存和4核处理器的限制,仅适合运行轻量级应用。
  • 最终手动安装nginx/1.18.0和PHP 7.4.3,支持静态及PHP站点。

当前运行应用

  • 1panel面板:用于系统管理。
  • frp:实现内网穿透。
  • Pi Dashboard:监控开发板状态,UI美观,适配arm架构可获取CPU温度。
  • twikoo:通过docker运行,进行实验性部署。
  • uptime-kuma:服务监控工具。
  • blog:作为Hexo博客节点之一,通过GitHub Action构建并分发至多节点(包括阿里云、华为云等)。

系统优化与CDN配置

  • 为防止停电、断网等意外,设置开机启动和进程守护。
  • 定时清理内存和缓存,缓解1G内存压力。
  • frp通过域名区分服务(如one.jiangyu.org:8090),结合CDN实现无端口访问。
  • SSL证书有效期缩至90天,CDN配置需手动更新证书;小厂CDN推出“证书无忧”服务,可自动更新,未来或收费1-2元/次。

硬件与扩展考量

  • 开发板尺寸100x60mm,略大于树莓派,使用树莓派亚克力外壳并钻孔改装。
  • 加装5V 0.2A散热风扇,CPU温度降低5-6℃;不加风扇时,30℃室温下负载运行最高50℃,远低于降频阈值85℃。
  • 板载40pin GPIO接口兼容树莓派,但资料匮乏,传感器调试暂未实现。

通过以上步骤,成功在RV1126开发板上构建了稳定的Web应用环境,为低功耗ARM设备的应用开发提供了实用参考。