谷谷小师妹 发表于 2022-12-28 22:33:08

只要 8 美元,就能在 RISC-V 计算机上运行 Linux?

本帖最后由 谷谷小师妹 于 2022-12-28 22:37 编辑

只要 8 美元,就能在 RISC-V 计算机上运行 Linux?

摘要:想拥有一台能运行 Linux 的 RISC-V 计算机,需要多少钱?本文作者 Bram Stolk 给出的答案是:8 美元。 链接:http://thelittleengineerthatcould.blogspot.com/2022/12/the-8-linux-computer.html声明:本文为 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-ubuntuWarning: 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_standardFailed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.soGLib-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,我们就准备好了吗?还不行,难题 6:我们需要修改这款工具,才能正常使用。也就是说,我们需要编辑~/.local/lib/python3.10/site-packages/bflb_mcu_tool/libs/bflb_interface_uart.py file。这是我修改好的文件(https://gist.github.com/stolk/46228d2b7ab0ca5b0ff98a4ce3b2c6fe)。通过 MicroUSB 为 Ox64 供电,然后使用 USB-C 将 RP2040 连接到 PC,我们终于可以开始刷机了。为此,我从 bl808 linux 指南(https://github.com/bouffalolab/bl808_linux)下载了 low_load_bl808_m0.bin,并通过以下命令刷机:$ 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 KbyteE907 start...mtimer clk:1000000psram clk init ok!这个开端还不错,现在 Ox64 已经可以与我的 PC 机对话了。后来,我发现可以利用修改过的 picoprobe (下载地址:https://github.com/sanjay900/picoprobe/releases)和 Dev Cube 闪存工具来刷机,这样就不必使用修改过的 bflb-mcu-tool 了。此外,还有一个 PIN 定义的补丁,可以方便我们通过引脚 GPIO17/GPIO16 捕获 D1 核心(这是一个 T-HEAD C906)的 UART。有了修改后的引脚定义,我们就可以通过 USB 将 UART 适配器(如 CH340G)连接到第二个 UART,如下所示。在上图中,红色适配器可捕获运行在 T-HEAD C906 核心上 Linux 控制台的输出。粉色适配器可 对 Ox64 进行编程。二者都需要连接到 PC。Ox64 本身不需要连接到 PC,只需通过 Micro-USB 供电即可。所以,我们将所有这些连接起来,并写入二进制文件后,系统就可以启动了!启动速度非常快,只用了不到 0.22 秒!

评论

评论 1:前几天看到 HakcerNews 上的一篇文章,采用了同样基于 Bouffalo Lab 的 BL808 RISC-V SoC 模块的 Sipped M1,其价格也相近。但它支持WiFi/BL、802.156.4 Zigbee,还支持UART、I2C、SPI等接口:https://news.ycombinator.com/item?id=33874032。评论 2:如果能在淘汰的 Android 设备上运行Linux,那只需要 8 美元就能获得一台支持 USB、触摸屏、声音还有数 MB 甚至数 GB 内存的 Linux 机器了。评论 3:尺寸与很久以前的 Onion SBC 相似,但价格更高,功能更差。Onion 只需要 5 美元,而且带有串口、SD 卡槽和 WiFi。它甚至还有蓝牙,不过我不太确定,毕竟是七年前的东西了。
页: [1]
查看完整版本: 只要 8 美元,就能在 RISC-V 计算机上运行 Linux?