RISC-V デビュー DevTerm R-01

投稿者: | 10月 2, 2022

実は、新卒の時に配属された部署がメインフレームのCPUの部隊だった。大学名だけで配属されたような気がしないわけでもない。
まぁ、そこで、ITの白物家電的な、メインフレームをたんまり触ることになるのだが、CPUは奥が深いような、昔から変わっていないというか。。。
CPUを真剣に勉強すると、あれっ、実はこれはできない、あれはできないもあるし、CPUの数を増やすとキャッシュのオーナー権でメモリバスが飽和するという、電子回路的な難題にちょくちょくぶち当たる。

というのは20年前の仕事の話だが、Intelアーキテクチャー以外のCPUにも興味がある。ARMが台頭してきたが、次に盛り上がるのが、RISC-Vかもしれない。
ということで、RISC-Vを手に入れてみた。

DevTermというオープンソースの端末。それも自作KIT。ハンダこてとかは要らないが、自分でモジュールをポチポチ組み立てるというもの。外装パーツは、3Dプリンターがあれば作れるらしい。また、I/Oモジュール、CPUモジュールといった形でモジュール化されている。

このDevTermは、
ARMのCPUボード
RISC-VのCPUボード
ラズパイのモジュール
といった形で、CPUモジュールを変えることで、アーキテクチャが変わると言うもの。自分がやっていたメインフレームも実はCPUボードを変えると。。。というものだった。

というわけで、unboxレポート。

発注したデバイスはこちら。

https://www.clockworkpi.com/product-page/devterm-kit-r01

UntitledImage

UntitledImage

プラモデル。。。

Image

マザボ。メモリスロットっぽいのがCPU端子。Coreというモジュールを入れる。メモリがマザボにないのはCPU屋さんからすると実は親切設計。

UntitledImage

Extという名のI/Oボード

UntitledImage

CPUを装着したところ。CPUは、Allwinner D1 SoCというもの。

https://d1.docs.aw-ol.com/en/

実は、CPUレベルだとARMと遜色ないレベル。

UntitledImage

動かしてみた。ちなみにマウスデバイスらしきものがキーボード上部中央にあるが、実は、これはトラックボールです。Thinkpadの赤ポッチのように動かしても動きません。小さいボールをコロコロ転がす必要があります。

また、Clockworkは、ゲームデバイスも作っているので、ゲーム用のボタンがありますが、動くのかどうかわからず。

UntitledImage

Xwindowが動いている。Window Managerに気がついた人がいるだろうか?気がつく人はかなりご年配w。なんとTWM!自分はSonyのNews OS以来かもしれないw

メモリが1GBしかないので、これがせいぜいか。

UntitledImage

起動したOSの情報は以下。

root@devterm-R01:~# uname -a
Linux devterm-R01 5.4.61 #12 PREEMPT Wed Mar 30 14:44:22 CST 2022 riscv64 riscv64 riscv64 GNU/Linux

root@devterm-R01:~$ cat /proc/cpuinfo
processor : 0
hart : 0
isa : rv64imafdcvu
mmu : sv39

root@devterm-R01:~$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/riscv64-linux-gnu/11/lto-wrapper
Target: riscv64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.2.0-19ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=riscv64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --disable-multilib --with-arch=rv64gc --with-abi=lp64d --enable-checking=release --build=riscv64-linux-gnu --host=riscv64-linux-gnu --target=riscv64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=4
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.2.0 (Ubuntu 11.2.0-19ubuntu1)

root@devterm-R01:~# cat /etc/os-release
PRETTY_NAME="Ubuntu Jammy Jellyfish (development branch)"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04 (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

root@devterm-R01:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu Jammy Jellyfish (development branch)"

root@devterm-R01:~# cat /etc/debian_version
bookworm/sid

で、このOSをアップデートをするとはまる。まず、OSが起動不可になる。先人たちの情報をまとめると以下のようにしてアップデートをする。

cp -a /etc/default/u-boot  /etc/default/u-boot.orig
sudo sed -i 's/devel/jammy/g' /etc/apt/sources.list
sudo apt remove update-notifier-common linux*.15*
cp -a /etc/default/u-boot /etc/default/u-boot.orig
cat << EOF > /etc/default/u-boot
## /etc/default/u-boot - configuration file for u-boot-update(8)

#U_BOOT_UPDATE="true"

U_BOOT_ALTERNATIVES="default"
#U_BOOT_DEFAULT="l0"
#U_BOOT_ENTRIES="all"
U_BOOT_MENU_LABEL="DevTerm R01 OS"
U_BOOT_PARAMETERS="earlyprintk=sunxi-uart,0x02500000 clk_ignore_unused initcall_debug=0 console=ttyS0,115200 console=tty0 cma=8M LANG=en_US.UTF-8 fbcon=rotate:1"
#U_BOOT_ROOT=""
U_BOOT_TIMEOUT="0"
U_BOOT_FDT="board.dtb"
U_BOOT_FDT_DIR="/usr/lib/linux-image-"
EOF
sudo u-boot-update
sudo apt update
sudo apt install udev
sudo apt full-upgrade -yy
cp /etc/extlinux/extlinux.conf.cpi.bak /etc/extlinux/extlinux.conf
sudo dpkg --configure -a; sudo apt -f install
sudo apt autoremove
reboot

こうしないと、ブートローダーからKernelが読まれない。まぁ、Sidなので、まともに動くと思ったら大違い。

 

結論からすると、デフォルトの状態でもかなりきつい。ブラウジングできればいいって?ブラウザがまず立ち上がりません。コンパイルしたいものがあれば、クロスコンパイラーでやったほうがいいでしょう。完全に趣味のデバイスですね。まともに使うなら、ARMのCPUボードをおすすめします。このRISC-Vのチップは、安いので、追加オーダーでいいと思う。ARMでまともに動けば、多分差し替えないと思うが。そんな原始的なデバイスが好きという方にはおすすめ。

で、ARMのボードを追加発注したが、入手にリアルに60日かかります。発送が開始されたらAmazonでUSB-CのアダプターとUSB-Cケーブル、バッテリー、感熱紙をオーダーするのをお忘れなく。

バッテリは以下をゲットした。

感熱紙は、適当のでいいが、量はいらないのと、ケースが小さいので、太さが太いやつはダメです。失敗した。太い感熱紙のロールを買ってしまった場合、紙を出してケースに収まるように細くしてあげる必要があります。

また、RISC-Vのセットで3万円程度のこのデバイス、関税が3000円くらいかかります。

早くARMのCPUボード来ないかなw

コメントを残す