news 2026/10/3 18:10:28

RK3588开发板OpenEuler系统烧写与SSH远程连接实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RK3588开发板OpenEuler系统烧写与SSH远程连接实战指南

1. 项目概述与板卡初印象

1.1 海鸥派是什么,为什么选它

海鸥派是一块基于瑞芯微RK3588平台的国产嵌入式开发板,搭配OpenEuler操作系统,定位是给嵌入式开发者、边缘计算玩家和信创领域的技术人员做项目原型验证用的。这块板子最吸引人的一点,是它在国产化赛道上走得比较靠前——核心SoC是瑞芯微的,系统是华为捐给开放原子开源基金会的OpenEuler,两者组合在一起,意味着硬件、系统、工具链全链路国产化,这对做自主可控项目的团队来说价值很大。

我拿到手的这块海鸥派,板载接口相当齐全:双千兆网口、HDMI输出、USB 3.0、M.2接口、40Pin GPIO排针,还带了NPU算力(RK3588内置6 TOPS算力)。简单说,它就是一块能跑桌面系统、能做人脸识别、能当迷你服务器的小钢炮。但再强的板子,第一步都得先通电、写系统、连上SSH,否则后面全是空谈。

这篇博文就以海鸥派搭载OpenEuler 22.03 SP3为例,把从烧写系统到SSH连入的完整流程走一遍。适合刚拿到板子的新手、准备在RK3588平台上做开发的老手,以及需要在国产化环境干活的朋友参考。我尽量把每个操作背后的“为什么”也讲清楚,这样你遇到问题时不至于只会照着敲命令。

1.2 烧写前的硬件与软件准备

在动手之前,先把工具备齐。别小看这一步,很多人烧写失败就是栽在准备不充分上。

你需要准备:

  • 海鸥派开发板一套(含电源适配器,建议12V/3A以上)
  • 一张TF卡,容量至少16GB,建议Class 10或U1以上速度等级
  • 一台安装好操作系统的电脑(Windows/Linux都行)
  • USB转TTL串口模块(CH340或CP2102均可),用于看串口日志
  • 网线一根,用于SSH连接
  • 螺丝刀、杜邦线若干

软件方面,按你的主系统不同准备也不同。Windows下需要驱动和烧写工具,Linux下通常不需要额外驱动,但需要确认设备节点。我这里强烈建议准备一台Linux主机来干活,后面很多排查操作会省心很多。

注意:海鸥派的系统是烧录在eMMC里的,如果eMMC被覆盖过或者没系统,你就得先用TF卡启动一个最小系统,再通过工具把OpenEuler镜像烧进eMMC。另外,从串口登录不需要网口或SSH,它是一切故障恢复的兜底通道,所以串口模块务必提前备好并测试可用。

2. 系统烧写全流程:从镜像下载到eMMC部署

2.1 固件镜像的正确选择

海鸥派的OpenEuler镜像在官方社区和项目Release页面都有提供,文件名一般类似openEuler-22.03-SP3-aarch64-Seagull.img.xz。选镜像的时候注意几点:

第一,区分桌面版和服务器版。如果你只是想要一个能跑服务的极简环境,选服务器版,体积小、内存占用低;如果想接显示器当桌面用,选桌面版,装好了自带图形界面。我在前期测试时用的服务器版,原因是SSH远程开发用不到桌面,而且桌面版里的图形组件在无头环境下纯粹是负担。

第二,确认是aarch64架构。RK3588是ARMv8架构的64位芯片,装x86的镜像根本起不来。

第三,校验镜像完整性。下载完建议用sha256sum(Linux)或Get-FileHash(PowerShell)比对一下官方的校验值,避免镜像在传输过程中损坏,这是最基础的保险步骤。

2.2 RK3588平台烧写工具选型:RKDevTool还是dd

RK3588平台烧写有两种常用路径:官方工具RKDevTool和传统dd命令。这两条路各有适用场景:

RKDevTool是瑞芯微官方的烧写工具,支持maskrom模式下的全量烧写和分区级别的单独刷写。它的强项是灵活,可以只烧boot.img、只烧system分区,适合系统启动异常时做定点修复。缺点是Windows下的驱动有时比较折腾,Linux下需要装额外的工具包。

dd命令则简单粗暴,直接把整张TF卡做成启动介质,或者从TF卡启动后用dd把镜像写入eMMC。它的优点是简单可靠,适合一次性完成全盘部署。缺点是不能单独烧某个分区,每次都是全量覆盖。

我在这次实践中两条路都试了。个人建议是:第一次拿到板子,如果eMMC是空的或者系统已经坏到没有任何启动迹象,用TF卡做启动盘再dd烧写,操作路径最透明;如果你只需要更新某个分区,或者板子能进maskrom,就用RKDevTool定点刷。下面把两条路的详细步骤都写出来。

2.3 制作TF卡启动盘与串口监听准备

先说TF卡启动盘的做法。官方通常提供一个dd可用的原始镜像,也有一个用于制作SD卡启动的脚本。我的流程是:

  1. 将TF卡插入电脑,确认设备名。Linux下可以用lsblk查看,我的卡是/dev/sdb。这时务必确认设备名,别把电脑的系统盘给dd进去。

  2. 解压镜像包:

xz -dk openEuler-22.03-SP3-aarch64-Seagull.img.xz
  1. 写入TF卡:
sudo dd if=openEuler-22.03-SP3-aarch64-Seagull.img of=/dev/sdb bs=4M status=progress conv=fsync

这个过程取决于镜像大小和卡速度,一般几分钟到十几分钟。conv=fsync保证数据真正落盘而不是停留在缓存里,写完之后sync一下再拔卡。

  1. 串口模块连接:把USB转TTL模块的GND接到板子的GND,TX接板子的RX,RX接板子的TX。连接之前先用杜邦线短接模块的TX和RX,打开串口终端敲几个字符,确保模块自发自收正常。波特率海鸥派一般用1500000,这是RK平台常见的调试波特率,别用9600,不然全是乱码。

串口终端我推荐在Linux下用picocom,Windows下用MobaXterm的串口面板。连接后,插上电源,应该能看到u-boot的日志开始滚动。

提示:串口连接是排障的生命线。之后如果SSH连不上、网络配不通,都可以靠串口进到系统里查原因。所以在整个烧写和首次启动阶段,串口不要断开。

2.4 RKDevTool手动烧写boot分区实战

正因为RKDevTool支持分区级写入,我在排查时常用它来单独烧写boot.img,没必要每次都全量刷机。

首先进入maskrom模式。在海鸥派上,先断开电源,按住板上的Maskrom按键(通常是BOOT键)不放,插入USB线连接电脑,再上电。此时设备管理器中会出现一个Rockusb设备(Windows)或/dev/ttyACM*(Linux),说明板子处于maskrom模式。

接下来在电脑上打开RKDevTool_v3.15(注意海鸥派适配的版本,建议和官方文档保持一致),界面会显示“发现一个MASKROM设备”,表示连接正常。然后切换到“升级固件”页,加载完整的update.img,这项全量烧写适合第一次刷机。

如果只是想更新某个分区,比如boot分区,在“下载镜像”页把地址改成Boot的起始扇区地址,选择你要烧写的boot.img,点“执行”即可。这个操作需要你对分区表有基本认识,否则填错地址后果很严重。我建议初学者先用全量烧写,等跑通流程后再研究分区级刷写。

2.5 烧写后的首次启动确认

烧写完成后,拔掉USB线,断开电源,接好网线,再重新上电。此时串口终端应该能看到U-Boot打印信息,然后是内核解压、系统启动。如果一切正常,最后会进入登录提示符或者桌面环境。

关键要确认几件事:

  • 内核有没有报错,比如驱动加载失败、存储设备识别不到
  • 网络接口有没有起来,ip a能看到eth0
  • SSH服务是否在监听:ss -tlnp | grep 22

如果有一项不正常,参考后面的问题和排查章节。首次启动时,OpenEuler默认会要求你登录并可能提示修改初始密码。默认账号一般是root,默认密码在官方文档里有标注,通常是openEuler12#$之类,拿到手第一件事就是改掉。

3. 网络配置与SSH服务启用

3.1 给开发板配置静态IP,告别随机地址

开发板启动后默认走DHCP,如果网络里有DHCP服务器,它会自动拿到一个IP。但实际开发场景中,我还是建议给它配一个静态IP,因为开发板不像笔记本经常挪位置,固定IP手感好太多——不用每次去路由器后台查地址,SSH、NFS、HTTP服务都能直接用IP访问。

OpenEuler使用NetworkManager作为网络管理服务,配置静态IP有两种方式:nmcli命令或直接编辑配置文件。我习惯用nmcli,因为它能立即生效且不易出错。

先看看当前网络状态里有哪些连接:

nmcli connection show

找到你需要配置的那个连接,比如Wired connection 1或者eth0,然后修改:

nmcli connection modify "Wired connection 1" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "114.114.114.114 8.8.8.8" nmcli connection up "Wired connection 1"

这样配置完,IP立刻变成192.168.1.100。之后SSH连接就再也不用动态查地址了。

如果你在虚拟机里装完OpenEuler发现没有以太网连接,多半是NetworkManager没有识别到网卡,或者网卡处于未托管状态。可以通过nmcli device status查看网卡状态,如果显示“unmanaged”,编辑/etc/NetworkManager/NetworkManager.conf,在[main]段加一行plugins=ifcfg-rh,然后重启NetworkManager服务。

3.2 OpenEuler初始密码与登录后的安全设置

OpenEuler 22.03 SP3的root初始密码在官方文档或板卡厂商的说明里会给出,每批板卡可能不同。按提示登录成功后,立即执行:

passwd

按照提示输入两次新密码。这一步很重要,因为开发板经常暴露在局域网甚至公网环境,弱默认密码等于给攻击者敞开大门。

OpenEuler默认开启了SELinux,这会限制一部分服务行为。如果你要跑的东西和SELinux策略冲突,可以临时放宽容忍模式:

setenforce 0

但要注意,这只是临时关闭,重启后会恢复。如果要持久关闭,需要编辑/etc/selinux/config,把SELINUX=enforcing改成SELINUX=permissive或者disabled。如果不是明确知道自己不需要SELinux,我建议保持enforcing,学习一下怎么添加策略,而不是一关了之。

3.3 SSH服务配置与防火墙放行

OpenEuler位于RHEL系,包管理是dnf。检查SSH服务状态:

systemctl status sshd

如果没装,先安装:

dnf install -y openssh-server systemctl enable --now sshd

接下来检查防火墙。OpenEuler默认用的是firewalld:

firewall-cmd --zone=public --add-port=22/tcp --permanent firewall-cmd --reload

如果连不上,一定要先确认防火墙状态和新加的规则是否生效。我在实际中碰到的SSH连接失败案例,大约有一半是防火墙拦着,另一半是SELinux拦着,最后才是网络配置问题。

SSH登录验证方式建议做两手准备:既保留密码登录方便临时使用,也生成密钥对实现免密登录。生成密钥对:

ssh-keygen -t ed25519 -C "seagull-dev"

然后把公钥内容追加到开发板的~/.ssh/authorized_keys里:

ssh-copy-id root@192.168.1.100

后续就可以ssh root@192.168.1.100直接登录,无需输密码。这在大规模批量部署、脚本自动化运维场景里非常实用。

3.4 SSH连接失败排查思路与实录

我遇到过几次“SSH连不上”的情况,这里挑一次有代表性的记录一下。

现象是:开发板电源灯亮,网线插上,路由器后台能看到新设备,但ssh root@IP就卡住不动,超时报错。我按这个顺序排查:

  1. 先ping。ping不通,可能是IP不在同一网段,或者网线没协商好。我查了下本机IP和开发板IP确实在不同网段,改动后ping通了。
  2. ping通了但SSH还是断。接着看端口:nc -zv 192.168.1.100 22,如果显示Connection refused,说明sshd没起来或防火墙拦截;如果连接超时,说明包发出去没响应,多半是防火墙DROP掉了。
  3. 在串口会话里检查sshd和防火墙状态,最后发现firewalld的22端口规则没加。加上后问题解决。

这是最典型的排查路径:先ping二层三层通不通,再测端口,最后看服务。按顺序来,不要瞎猜。

如果遇到Permission denied (publickey,password),那就是密钥验证和密码验证的问题。先确认sshd配置里是否允许密码登录:

grep PasswordAuthentication /etc/ssh/sshd_config

如果为no,改成yes并重启sshd。当然,更安全的做法是配置好密钥对之后再把密码登录关掉。

4. 开发板日常开发的配置与优化

4.1 更换软件源与安装常用开发工具

OpenEuler默认源在公网可能比较慢,建议换到国内镜像源。以清华源为例,编辑/etc/yum.repos.d/openEuler.repo,把https://repo.openeuler.org替换成https://mirrors.tuna.tsinghua.edu.cn/openeuler。替换后先清理缓存:

dnf clean all dnf makecache

然后安装一组适合嵌入式开发的工具链:

dnf install -y git vim tmux htop tree wget curl net-tools tcpdump gcc gcc-c++ make cmake

这里我特别推荐tmux——远程开发时SSH断线是所有开发者的痛,tmux可以在断开重连后恢复会话,让我在编译耗时很长的程序时也不担心断线丢进度。

如果你想在开发板上开发Python,再装:

dnf install -y python3 python3-pip python3-devel

配好源之后,整个板子的可用性会指数级上升。

4.2 VSCode远程连接开发板,本地编码远程编译

日常开发我不太喜欢在板子上直接敲代码,效率有点低。更舒服的方案是本地用VSCode,通过SSH远程连接开发板,在本地编辑代码、远程编译运行。

在VSCode中安装“Remote - SSH”插件,然后打开配置:

Host seagull HostName 192.168.1.100 User root Port 22 IdentityFile ~/.ssh/id_ed25519

保存后,在插件面板里连接到seagull。VSCode会自动在远端安装一个server,第一次连接会慢一些,之后就很快了。

我以前总在本地装交叉编译工具链,代码在本地编译完再scp到板子上,多了一道工序。用VSCode Remote之后,直接远程打开项目文件夹,相当于在板子上开了一个带图形界面的编译器,调试体验大幅提升。特别是改内核驱动、调Python脚本一类的内容,完全不需要来回同步文件。

4.3 文件传输与NDK交叉编译环境的搭建思路

开发中经常需要在本地和板子之间传文件。小文件用scp就行:

scp file.c root@192.168.1.100:/root/

大文件或者整个目录,我习惯用rsync:

rsync -avz --progress -e ssh ./project root@192.168.1.100:/root/

rsync支持断点续传,文件多了也不怕中断。

如果你要在x86主机上编译ARM平台的程序,需要搭建交叉编译环境。OpenEuler提供了gcc-aarch64-linux-gnu之类的交叉工具链包,安装后就能用aarch64-linux-gnu-gcc编译ARM64二进制。不过要注意,如果目标是开发板上跑的带OpenGL、NPU等特性的程序,交叉编译会比较麻烦,这时候我更倾向于直接在板子上用VSCode远程编译,省心很多。

4.4 调整开发板的基础参数:时区、中文编码、内存与交换分区

嵌入式和服务器一样,系统装完第一件事就是把时区调对:

timedatectl set-timezone Asia/Shanghai

如果是桌面版,可能还需要安装中文字体和输入法:

dnf install -y wqy-microhei wqy-zenhei

编码问题在嵌入式开发里挺烦人的,尤其是之前有人碰到“imx6ull开发板屏幕终端中文显示乱码,但MobaXterm正常”,这其实就是终端编码和字体问题。OpenEuler桌面下建议用LANG=zh_CN.UTF-8,串口终端则确保编码设置为UTF-8。

RK3588虽然内存不小,但跑神经网络推理或编译大工程时内存还是可能吃紧。建议加一个swap分区或swap文件。以swap文件为例:

dd if=/dev/zero of=/swapfile bs=1M count=4096 chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo "/swapfile none swap sw 0 0" >> /etc/fstab

这样设置了4GB的swap文件,系统在内存不足时先用swap垫着,能有效防止OOM杀掉关键进程。

5. 常见问题与踩坑经验速查表

5.1 烧写失败专题:serial init fail与RKDevTool识别问题

瑞芯微的板子烧写时最常见的报错是serial init fail或设备无法识别。通常原因是驱动没装好或者板子没进入maskrom模式。

Windows下如果设备管理器里看到的是一个黄色的感叹号,或者“未知设备”,需要重新安装RK的驱动。驱动安装包里有个DriverInstall.exe,右键管理员运行,先卸载再安装。装好后重新插拔USB线,应该能识别到Rockusb设备。

Linux下如果lsusb看不到2207:350b之类的瑞芯微设备,检查一下USB线是不是只供电不通信。USB线质量参差不齐,有的线只带电源线不带数据线,这个问题浪费过我不少时间。

进入maskrom模式的方法,不同板子略有区别。海鸥派一般是按住BOOT键再上电,有的版本还支持短接eMMC的CLK引脚进入。具体参考板卡说明书,别乱短接。

5.2 系统启动卡死与内核日志分析

系统启动卡死的现象很多样:可能是U-Boot阶段就卡住,也可能是内核启动阶段报错,还有可能是文件系统挂载失败。

如果卡在U-Boot阶段,串口最后一条日志通常是Starting kernel ...之前的内容都不完整。这时候先检查boot分区是否完好、uEnv.txt里的启动参数是否正确。

如果卡在内核阶段,重点看有没有Failed to mount、init not found之类的字样。文件系统挂载失败多数是分区表错乱或者内核缺少对应的文件系统驱动。比如OpenEuler默认根文件系统是ext4,你不能把内核里ext4编译成模块又不打进initramfs,那样必然起不来。

如果卡住的地方在service启动阶段,可能是某个服务依赖的配置不对。可以用systemd.unit=rescue.target进入救援模式,逐个排查。

5.3 OpenEuler忘记密码的紧急恢复方案

这个专题网上搜索量一直很高,因为忘记root密码的滋味大家都懂。在OpenEuler 22.03 SP3上恢复root密码有两条路。

一条是传统的单用户模式。在GRUB启动菜单中选择内核项,按e编辑,在linux开头的那一行末尾加上single或者init=/bin/bash,然后按Ctrl+X启动。进入单用户模式后直接敲passwd改密码。但RHEL系新版系统对这种方式做了限制,很多时候你得先执行mount -o remount,rw /把根文件系统改成可写。

另一条是RHEL系惯用的rd.break方式,这也是搜“openeuler用rd.break”出来的热门做法。同样在内核启动参数末尾加上rd.break,启动后先mount -o remount,rw /sysroot,再chroot /sysroot,之后执行passwd修改密码。改完后touch /.autorelabel触发SELinux重标,重启即可。

具体命令顺序:

mount -o remount,rw /sysroot chroot /sysroot passwd root touch /.autorelabel exit umount /sysroot reboot

注意,rd.break模式下你进的是initramfs的紧急shell,不是真正的系统root,所以必须先chroot到/sysroot。这个操作在虚拟机、物理机和开发板上通用,我实测过海鸥派,没遇到什么差别。

5.4 MobaXterm中文乱码与终端显示异常处理

中文显示乱码在开发板上是高频问题。原因通常是终端编码和系统locale不一致。MobaXterm正常而屏幕终端乱码,说明板子本身有中文字体,但是那个终端软件没有正确设置UTF-8。

处理方法分两步。第一步,在MobaXterm的会话设置里把终端编码设为UTF-8。第二步,在系统里确认locale:

locale

如果显示LANG=POSIX或者没有zh_CN.UTF-8,需要安装中文语言包并设置locale:

dnf install -y glibc-langpack-zh localectl set-locale LANG=zh_CN.UTF-8

设置完重开终端,中文就能正常显示。

5.5 开发板网络不通的通用排查流程

网络问题是嵌入式开发的“常客”。我总结了一套通用排查流程,按步骤来基本能定位:

第一步,确认网线物理链路。看开发板网口指示灯是否亮起,闪烁正常说明链路层OK。

第二步,ip a确认IP地址。没有IP说明DHCP失败,需要手动配置。

第三步,ping网关。网关Ping不通,问题在二层或三层配置,检查VLAN、网关地址对不对。

第四步,ping公网IP(比如223.5.5.5)。公网不通但网关通,检查默认路由和DNS。

第五步,测试DNS解析:nslookup www.baidu.com。解析失败就配置一个可靠的DNS。

这套流程基本能把90%以上的网络问题定位出来。每次排查网络问题都按这个顺序来,不要一上来就重启路由器。

5.6 常见问题速查表

问题现象可能原因解决方法
RKDevTool报serial init fail驱动未安装或maskrom模式未进入重装驱动,确认USB线和BOOT按键时序
串口输出乱码波特率错误设置波特率为1500000
SSH连接超时防火墙或路由问题检查firewalld规则,确认路由表
SSH拒绝密码PasswordAuthentication=no修改sshd_config并重启
中文显示乱码locale未设置UTF-8安装中文语言包并设置locale
忘记root密码—使用rd.break或single模式恢复
系统启动到一半卡死文件系统或服务异常救援模式排查日志

这张表是浓缩版,具体操作在上面每个小节里都有展开。

6. 从烧写到SSH之后的扩展玩法

6.1 安装图形界面与远程桌面

如果选的是服务器版镜像,想装一个轻量桌面,可以用OpenEuler的包管理器:

dnf groupinstall "GNOME"

或者装更轻量的Xfce:

dnf groupinstall "Xfce"

装完之后,为了远程桌面访问,可以再装VNC或xrdp。VNC的配置比较繁琐,需要设置密码和启动服务;xrdp可以直接提供RDP服务,配合Windows自带的远程桌面客户端即可连接,体验更好。

设置xrdp很简单:

dnf install -y xrdp systemctl enable --now xrdp

之后在Windows上输入mstsc,连接开发板的IP即可。不过这块内容只是顺带提一嘴,如果你用SSH就能满足日常需求,就别折腾图形界面了,省内存。

6.2 将开发板当在线服务器:部署Web与Codex等AI编码工具

有了稳定的网络和SSH之后,开发板可以做很多事情。RK3588的CPU性能比我当年用的树莓派强得多,跑一个Nginx或者Node.js服务毫无压力。

如果你想在OpenEuler上部署Web服务:

dnf install -y nginx systemctl enable --now nginx

如果你想体验Codex这类AI编码工具,在开发板上安装Python和Node.js基础环境后,按工具官方文档操作即可。注意aarch64架构下部分npm包可能需要编译原生模块,如果网络慢或者编译失败,考虑换镜像源。

开发板的一大优势就是随时可以重新烧写,折腾坏了也不心疼。所以放心大胆地在上面装服务、跑实验,真搞坏了再花十分钟烧一遍系统,又是一台新板子。

6.3 后续学习路径与资源推荐

拿到一块开发板,很多人会陷入“装完系统不知道干什么”的状态。我的建议是按这几个方向进阶:

底子比较薄的同学,先啃Linux基础命令和网络配置,把文件权限、进程管理、服务管理玩熟。然后去做几个小项目,比如写一个GPIO点灯程序,或者搭一个内网Web服务。

有一定基础的同学,建议往驱动开发方向走。RK3588是当前主流平台,网上资料多,从内核模块开始写,逐步理解设备树、中断、DMA这些概念。

想走AI边缘计算方向的,继续研究RK3588的NPU,用RKNN工具链做模型转换和推理部署,这块也是RK3588平台最大的亮点。我在拿到板子后第一个跑通的项目就是YOLOv5的目标检测部署,性价比确实比几万块的GPU服务器高太多。

OpenEuler相关的官方文档一定要看,加上瑞芯微的SDK资料,两条线结合着学,进步会很快。

7. 个人实操体会与避坑建议

最后聊几句实在的。

这块开发板从烧写到SSH连通,我前前后后踩了几个不大不小的坑,最大的体会是“准备工作做好了,后面全是顺风局”。比如一开始我偷懒没用串口模块,结果系统起不来只能干瞪眼到处猜。后来老老实实把USB转TTL接上,所有启动日志一目了然,问题定位速度翻倍。所以我强烈建议,无论你觉得自己多熟悉Linux,开发板调试永远把串口作为第一调试手段。

另外,SSH密钥认证一定要尽早配置。第一次可能觉得多敲几下密码没什么,但一旦你需要在几台板子之间来回操作,没有免密登录会让人抓狂。把ssh-keygen、ssh-copy-id这两个命令用熟,效率完全不一样。

再就是别怕烧写。很多人刚拿到板子,因为担心把系统烧坏,迟迟不敢动手。实际上开发板就是用来折腾的,烧坏了大不了重新刷一遍。RK开发板的恢复机制很完善,只要硬件没坏,软件层面几乎没有救不回来的情况。

如果后续想拓展,可以试试把其他系统也烧进海鸥派,比如Ubuntu,用同一套RK3588的工具链跑起来,对比一下不同发行版在驱动支持和性能上的差异。这个过程本身就是一个很好的学习项目,能帮你把硬件、系统、内核之间的耦合关系彻底吃透。

海鸥派配OpenEuler这套组合,对我来说已经不只是块开发板了,它更像是一个可以随意实验的操作系统实验室。希望这篇指南能帮你顺利跨过烧写和SSH这道门,之后的路就宽敞多了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/3 18:09:57

树莓派4B+Ubuntu 22.04+RPLIDAR C1激光雷达环境扫描系统搭建实战

前阵子公司要做一套室内环境快速扫描的验证方案,我顺手把手头闲置的树莓派4B翻了出来,配合思岚的RPLIDAR C1激光雷达,在Ubuntu 22.04上从零开始搭了一套简单环境扫描系统。整个过程比我想象中顺利,但中间也踩了几个典型的坑&#…

作者头像 李华
网站建设 2026/10/3 18:09:30

从零手搓AI工程流水线:避开调包陷阱的实战指南

1. 为什么我要从零手搓一套AI工程流水线 第一次看到 ai-engineering-from-scratch 这个项目名的时候,我正被一堆"调包式"AI项目折磨得够呛。打开任何一个开源仓库,清一色的 pip install transformers 、 from langchain import ... &…

作者头像 李华
网站建设 2026/10/3 18:09:23

从零手搓AI工程:后端老兵的踩坑与重构实录

从零手搓AI工程:一个后端老兵的踩坑与重构实录这两年“AI工程化”这个词被喊得震天响,但真到动手的时候,我发现身边不少朋友卡在同一个地方:模型会调,Demo能跑,可一旦要把这套东西塞进真实业务里&#xff0…

作者头像 李华
网站建设 2026/10/3 18:08:55

青海省30米DEM制作全流程:从数据源选择到空洞修补与投影裁剪

简介:青海省30米分辨率DEM数据包,基于ASTER GDEM V3全球高程数据制作,面向GIS从业者、地理科研人员及环境规划相关师生,可用于地形分析、流域研究、灾害评估与生态制图等场景。压缩包共10个文件,核心为GeoTIFF格式30米…

作者头像 李华
网站建设 2026/10/3 18:08:34

MLOps技术栈全解析:从实验到生产的模型上线指南

1. MLOps不是锦上添花,而是从实验到生产的必经之路 做机器学习的朋友应该都有过这种经历:在Jupyter Notebook里边跑边调,模型效果终于刷到了满意的指标,结果一上线就乱套——数据格式对不上、推理延迟高得离谱、过两天效果肉眼可见…

作者头像 李华
网站建设 2026/10/3 18:07:22

树莓派4B直连Windows网线调试全指南

1. 项目概述:为什么一根网线直连Windows比想象中更“脆弱”树莓派4B、Windows、IP查询、SSH登录——这四个词凑在一起,表面看只是个基础网络连通问题,但实际操作中,90%以上的新手会在前15分钟内卡死。我带过37个树莓派入门训练营&…

作者头像 李华