谷动谷力

 找回密码
 立即注册
查看: 1334|回复: 0
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
发表于 2022-12-28 22:33:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 谷谷小师妹 于 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-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,我们就准备好了吗?还不行,难题 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 Kbyte
E907 start...
mtimer clk:1000000
psram 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。它甚至还有蓝牙,不过我不太确定,毕竟是七年前的东西了。

640?wx_fmt=png.jpg (3.94 KB, 下载次数: 46)

640?wx_fmt=png.jpg
+10
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-5-6 02:40 , Processed in 0.097750 second(s), 39 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表