本帖最后由 谷谷小师妹 于 2022-12-28 22:37 编辑
只要 8 美元,就能在 RISC-V 计算机上运行 Linux?
摘要:想拥有一台能运行 Linux 的 RISC-V 计算机,需要多少钱?本文作者 Bram Stolk 给出的答案是:8 美元。 声明:本文为 CSDN 翻译,未经允许禁止转载。 作者 | Bram Stolk译者 | 弯月
出品 | CSDN(ID:CSDNnews)你没看错,只要 8 美元,你就可以在 RISC-V 计算机上运行 Linux。我说的可不是有 MMU 的精简内核,而是带有功能强大的 RISC-V 核心的 Ox64,而且还不只一个核心,总共有三个核心,每个核心都不一样! 注意,在撰写本文之际,它还不支持以太网、Wi-Fi 和 SD 卡。在正式开始阅读本文之前,先清楚这一点。 这个小芯片看上去很像微控制器,但行为却像 UNIX 机器。我们的目标就是启动并运行它,这绝非易事,有许多困难需要克服。
难题 1:你不能像 Arduino、ESP32、Stamp-C3 或 rPi Pico 一样,通过 USB 对其进行刷机。这个芯片需要通过 UART TX/RX 引脚进行刷机。通过上图,你可以看到它们连接到了 GPIO14 / GPIO15 和 GND。 难题 2:在 Ubuntu 的 Wayland 版本上运行刷机工具 Dev Cube 会在启动时崩溃,因此你必须改用 Xorg。 $ ./BLDevCube-ubuntu Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway. /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so: undefined symbol: g_log_structured_standard Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so GLib-GIO-Message: Using the 'memory' GSettings backend. Your settings will not be saved or shared with other applications. (BLDevCube-ubuntu:54646): GLib-GIO-ERROR **: Settings schema 'org.gnome.settings-daemon.plugins.xsettings' does not contain a key named 'antialiasing' Trace/breakpoint trap (core dumped) 接下来,开始 UART 编程。但我们需要使用一个 CH340G 适配器。我从亚马逊买了一个,但不好用,Dev Cube 的握手会失败(难题 3). 幸运的是,有些人发现可以使用 RP2040 设备对其进行刷机,例如 rPi Pico。我手头正好有一个 Adafruit 的 KB2040,所以就用了它。 难题 4:如何将 KB2040 变成 PC 和 Ox64 之间的串行桥?只需要将 RP2040 的 GPIO-4 连接到 Ox64 的 GPIO-15,将 RP2040 的 GPIO-5 连接到 Ox64 的 GPIO-14。当然,还要连接地线。具体的接线方法请参见下图。 接下来,我们需要在 RP2040 上刷入 picoprobe ,只需按住 BOOT 再接通电源,然后将 picoprobe 的 uf2 文件复制进去。 好了,下面我们可以刷机了吗?不行,难题 5:DevCube 仍然无法刷写 Ox64,但我们可以使用 bflb-mcu-tool 代替。 $ bflb-mcu-tool --chipname=bl808 --port=/dev/ttyACM2 --baudrate=2000000 --firmware=out/low_load_bl808_m0.bin 命令执行完成后,我通过 Ox64(通过 KB2040 连接到 PC)获得了输出: dynamic memory init success,heap size = 156 Kbyte E907 start... mtimer clk:1000000 psram clk init ok! 这个开端还不错,现在 Ox64 已经可以与我的 PC 机对话了。 此外,还有一个 PIN 定义的补丁,可以方便我们通过引脚 GPIO17/GPIO16 捕获 D1 核心(这是一个 T-HEAD C906)的 UART。 有了修改后的引脚定义,我们就可以通过 USB 将 UART 适配器(如 CH340G)连接到第二个 UART,如下所示。 在上图中,红色适配器可捕获运行在 T-HEAD C906 核心上 Linux 控制台的输出。粉色适配器可 对 Ox64 进行编程。二者都需要连接到 PC。Ox64 本身不需要连接到 PC,只需通过 Micro-USB 供电即可。 所以,我们将所有这些连接起来,并写入二进制文件后,系统就可以启动了! 启动速度非常快,只用了不到 0.22 秒!
评论
评论 2:如果能在淘汰的 Android 设备上运行Linux,那只需要 8 美元就能获得一台支持 USB、触摸屏、声音还有数 MB 甚至数 GB 内存的 Linux 机器了。 评论 3:尺寸与很久以前的 Onion SBC 相似,但价格更高,功能更差。Onion 只需要 5 美元,而且带有串口、SD 卡槽和 WiFi。它甚至还有蓝牙,不过我不太确定,毕竟是七年前的东西了。 |