FireFly RK3399Plus刷入Armbian社区版

家里的玩客云 KVM 坏掉了, 想做新的, 但是又不想考虑玩客云方案, 这玩意稳定性真的很堪忧, 于是乎上闲鱼找了找便宜的Arm开发板, 遂看到了FireFly的 RK3399Plus, 题主选了一个 4+16 的版本, 理论上来说是够用了, 板子长这样, 18 年产, 但是看着很新, 怀疑已经水洗过了 (雾.插电, 连接开发板TypeC口和电脑, 电脑需要...

家里的玩客云 KVM 坏掉了, 想做新的, 但是又不想考虑玩客云方案, 这玩意稳定性真的很堪忧, 于是乎上闲鱼找了找便宜的Arm开发板, 遂看到了FireFly的 RK3399Plus, 题主选了一个 4+16 的版本, 理论上来说是够用了, 板子长这样, 18 年产, 但是看着很新, 怀疑已经水洗过了 (雾.

IMG_752120260716103435.JPG

插电, 连接开发板TypeC口和电脑, 电脑需要先下载 Firefly提供的 RK 驱动以及 AndroidTool这两样东西

FireFly DriverAssistant

RK DevTool

打开RKDevTool以后, 准备让开发板进入MaskRom来刷入系统, 我这里提供两种方案

方案一 先进入Loader然后进入MaskRom

插电, 按住主板上的Reset按钮三秒后松手, 自动进入Loader模式

然后进入DevTool查看高级配置 Advanced Fuction 里面有一个进入MaskRom模式

image.png

方案二 短接跳线直接进入MaskRom

跳线位置略微奇怪, 但还是很好找的

image.png

image.png

短接上图的两个金色触点, 先短接, 后插电开机, 即可直接进入MaskRom模式, 但我还是推荐方法一, 因为一个手短接一个手开电有点麻烦, 进入后, DevTool 里会显示发现一个MaskRom设备

391ee404993a4ca5a7b01ca3a0511849.png

接下来刷入系统需要准备两件事, 一个是支持FireFly RK3399的Armbian ISO文件, 一个是Loader引导, 前者可以直接在Armbian的官网找到连接, 当然不要去下Armbian的软件, 那玩意没法直接下ISO文件

后者需要我们在Github自己Clone然后编译, 方法如下

git clone https://github.com/rockchip-linux/rkbin.git
cd rkbin

chmod +x tools/boot_merger
./tools/boot_merger RKBOOT/RK3399MINIALL.ini

执行完后我们会得到一个类似rk3399_loader_v1.30.130.bin的文件, 这就是我们需要的Loader

然后回到软件是Download Image

只勾选Loader和 System, 前者指定我们刚刚编译出来的Bin文件, 后者指定我们下载的Armbian镜像, 注意, Loader的地址是0xCCCCCCCC, System的地址是0x00000000, 别搞错了, 选择完以后点击Run按钮刷入, 最后提示Download image OK就刷入成功了

ae74ee629f624be093a72f42147e48d6.png不知道是不是只有我的有问题, 我的 HDMI 并没输出, 所以我通过 SSH 连进去的, 第一次进入会要求你设定密码(默认Root密码为 1234)以及账户, 然后就美美进入了

48d1de749ac54422a1c0422894d30970.png

fastfetch 一下

1fc7d8b1a0af4aa1a9f37e007d3450d7.png

查看 GPIO 的连通性

root@firefly-rk3399:~# gpioinfo
gpiochip0 - 32 lines:
        line   0:       unnamed                 input
        line   1:       unnamed                 input
        line   2:       unnamed                 output consumer=vcc3v3-3g-regulator
        line   3:       unnamed                 input
        line   4:       unnamed                 input consumer=host-wakeup
        line   5:       unnamed                 input active-low consumer=GPIO Key Power
        line   6:       unnamed                 input active-low consumer=ir-receiver
        line   7:       unnamed                 input active-low consumer=cd
        line   8:       unnamed                 input
        line   9:       unnamed                 output consumer=shutdown
        line  10:       unnamed                 output active-low consumer=reset
        line  11:       unnamed                 input
        line  12:       unnamed                 input
        line  13:       unnamed                 output consumer=diy
        line  14:       unnamed                 input
        line  15:       unnamed                 input
        line  16:       unnamed                 input
        line  17:       unnamed                 input
        line  18:       unnamed                 input
        line  19:       unnamed                 input
        line  20:       unnamed                 input
        line  21:       unnamed                 input
        line  22:       unnamed                 input
        line  23:       unnamed                 input
        line  24:       unnamed                 input
        line  25:       unnamed                 input
        line  26:       unnamed                 input
        line  27:       unnamed                 input
        line  28:       unnamed                 input
        line  29:       unnamed                 input
        line  30:       unnamed                 input
        line  31:       unnamed                 input
gpiochip1 - 32 lines:
        line   0:       unnamed                 output consumer=regulator-vcc5v0-host
        line   1:       unnamed                 input
        line   2:       unnamed                 input
        line   3:       unnamed                 output consumer=regulator-vcc5v0-typec
        line   4:       unnamed                 input
        line   5:       unnamed                 input
        line   6:       unnamed                 input
        line   7:       unnamed                 input
        line   8:       unnamed                 input
        line   9:       unnamed                 input
        line  10:       unnamed                 input
        line  11:       unnamed                 input
        line  12:       unnamed                 input
        line  13:       unnamed                 output consumer=enable
        line  14:       unnamed                 input
        line  15:       unnamed                 input
        line  16:       unnamed                 input

省略 N 行, GPIO 都正确读到了

当然, 如果要做PiKVM这种东西的话, 建议把USB Gadget搞起来, 因为内核默认使用的是HOST模式, 需要修改一下

当然, 很多人没有这东西的外壳, 所以我自己搞了一套外壳

image.png

外壳的参数大概是这样的

- 板尺寸:125 × 94.5 × 1.6 mm
- 板孔:4 × Ø3.5 mm
- 孔中心距相邻板边:3.75 mm
- 板四周装配余量:1.5 mm

外壳外轮廓:
- 底座、顶盖平面尺寸均为:132 × 101.5 mm
- 壁厚:2 mm
- 底板厚:2 mm
- 四侧中段接口均开口,仅保留四角结构
- 通风槽:11 条,单条 5 × 80 mm,10 mm 间距

底座:
- STL 总高:13 mm
- 板底距内底面:10 mm
- 4 个板载螺丝座:外径 Ø9.6 mm,顶面支撑开发板
- 安装孔:Ø3.6 mm
- 底部螺丝头沉孔:Ø6.4 mm,深 2.5 mm

顶盖:
- STL 总高:29.6 mm
- 顶板厚:3 mm
- 4 个内侧螺丝座:高 3.75 mm,外径 Ø9.6 mm
- 顶部螺丝孔:Ø3.6 mm
- 顶部螺丝头沉孔:Ø6.4 mm,深 2.5 mm

五金:
- 4 × M3×25 双母铜柱
- 8 × M3×20 螺丝(底部 4 颗、顶盖 4 颗)
- 不需要螺母

装配:
顶盖 → M3×20 → M3×25 铜柱 → 开发板 → M3×20 → 底座

Conversation

No comments

Leave a reply