Closed16

Rock 5 model B を使う

Atsushi MorimotoAtsushi Morimoto

Maskromモード

ファンの電源の横のボタンを押しながら、Rock5BをPCにUSBで接続すると、PCでUSB Deviceとして認識して、SPI Nor Flashとかが書き込めるモードになる。

Atsushi MorimotoAtsushi Morimoto

起動直後に何回かリブートする

USB PD の電源が安定しないが、数回リブートしたあとに起動することがある。

Atsushi MorimotoAtsushi Morimoto

SPI Nor Flash

Bootloader を書き込んでおく Flash。

空でも SDCard、eMMC からのブートは動作するが、NVME SSD からのブートは成功しない。

SPI Nor Flash のイメージ

Radxa から現在(2022-12-06)提供されているのは3種類の Bootloaderは以下の通り。

https://wiki.radxa.com/Rock5/install/spi

  • release version : MicroSD、eMMCからブートできる
  • debug version : release version に Serial Console を追加してある
  • armbian version : NVME SSD でブートできる

2022年11月出荷時点では debug version が入っているように見える(Serial Console経由でアクセスできたため)。

armbian version は、USB PDに問題があるらしくこれを書き込むと 20V 給電が行われなくなる。

SPI Nor Flash への書き込み方

ここに書き込むには「1. rkdeveloptool を使う」「2. RkDevtool を使う」「3. 中から /dev/mtdblock0 にアクセスする」

1.、2.のやり方は、PC と USB で接続して行うが、マシンによってなのか、頻繁に fail して、中途半端に書かれてブートもできない状態になる。
実際になったし、もうマシンの運としか。。。

  1. がおすすめ!!!

1. rkdeveloptool を使って書き込む

https://wiki.radxa.com/Rock5/install/rockchip-flash-tools

以下のツールをビルドする。

2. RKDevTool を使って書き込む

Windows 用にはビルド済みのアプリが提供されている。

ダウンロードは下記から。

https://wiki.radxa.com/Rock5/install/rockchip-flash-tools

3. 中から /dev/mtdblock0 にアクセスする

これが確実。Linuxが立ち上がるならば以下のようにしてWriteできる。

sudo dd if=zero.img of=/dev/mtdblock0
sudo dd if=rock-5b-spi-image-g3caf61a44c2-debug.img of=/dev/mtdblock0
sync

SPI Nor Flash をリセット(空)にしたい

SPI Nor Flash のwriteに失敗して起動しない場合、リセットする必要がある。

同じダウンロードページ中にはる zero.img を使う。

Atsushi MorimotoAtsushi Morimoto

SDCard から NVME SSD を起動したい

以下の作業は Linux 上で実施しています。

SDCard と NVME SSD の両方にイメージを焼く。

イメージは、boot と root が別パーティションになっている。

イメージを焼くと、SDCard と NVME SSD で UUID が一致してしまうので、NVME SSD の UUID を書き換える。パーティション名は環境依存なので、コピーしないように。

SSD と MicroSD を両方PCに接続しているところ、UUID が一致している。容量の違いでデバイスを見分けられる。

$lsblk -o NAME,UUID,SIZE
NAME        UUID                                   SIZE
...
sdc                                              476.9G
├─sdc1      0e21db47-e095-4ab7-9f29-e9bf229c1cd6   256M
└─sdc2      8e1d9ffd-ccb1-4ca6-b58a-0879cdc009cb   6.8G
sdd                                               59.7G
├─sdd1      0e21db47-e095-4ab7-9f29-e9bf229c1cd6   256M
└─sdd2      8e1d9ffd-ccb1-4ca6-b58a-0879cdc009cb  58.8G

UUIDを変更する(/dev/sdc のラベルは環境依存なので、コピペしないように注意!)。

sudo tune2fs /dev/sdc1 -U random
sudo tune2fs /dev/sdc2 -U random

書き換え後、UUIDが変わっている。

$lsblk -o NAME,UUID,SIZE
NAME        UUID                                   SIZE
...
sdc                                              476.9G
├─sdc1      2311deba-5dfa-40f6-b658-f19d77201599   256M
└─sdc2      2d5d41cf-36aa-4326-ace3-02ad98a2d678   6.8G
sdd                                               59.7G
├─sdd1      0e21db47-e095-4ab7-9f29-e9bf229c1cd6   256M
└─sdd2      8e1d9ffd-ccb1-4ca6-b58a-0879cdc009cb  58.8G

microsd の boot と、 ssd の root をそれぞれマウントする。

sudo mkdir /media/nnyn/microsd-boot
sudo mount /dev/sdd1 /media/nnyn/microsd-boot/
sudo mkdir /media/nnyn/ssd-root
sudo mount /dev/sdc2 /media/nnyn/ssd-root/

boot パーティションの中の armbianEnv.txt に root パーティションのUUIDが書かれているので、書き換える。

sudo vi /media/nnyn/microsd-boot/armbianEnv.txt
verbosity=1
bootlogo=true
overlay_prefix=rockchip-rk3588
fdtfile=rockchip/rk3588-rock-5b.dtb
rootdev=UUID=2d5d41cf-36aa-4326-ace3-02ad98a2d678
rootfstype=ext4
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u

root パーティションの中の /etc/fstab にマウントするパーティションのUUIDが書かれているので、書き換える。

sudo vi /media/nnyn/ssd-root/etc/fstab
UUID=2d5d41cf-36aa-4326-ace3-02ad98a2d678 / ext4 defaults,noatime,commit=600,errors=remount-ro 0 1
UUID=0e21db47-e095-4ab7-9f29-e9bf229c1cd6 /boot ext4 defaults,commit=600,errors=remount-ro 0 2
tmpfs /tmp tmpfs defaults,nosuid 0 0

root は NVME SSD で持ちつつ、SDCard Boot を続けるならば、fstab の boot はそのまま(SDCardのもの)にしておく。

これで再起動したところ、NVME SSD の boot が使われているのか、microsd の root で起動してきたので、NVME SSD の boot も書き換えました。
しかし、これで起動に失敗することもある。きちんと起動することもある。
かといって、MicroSDを抜くと起動しない。
安定しない。。。

Atsushi MorimotoAtsushi Morimoto

Serial が使えるデバッグバージョンの u-boot boorloadr を SPI Nor Flash にインストールする

11月に入手した私のバージョンは最初からデバッグバージョンがインストールされていたようです。
古いイメージが入っているという話もforumに出ていたので、とりあえずインストールするのもよいのかもしれません。
この手順では、Rock 5 内から /dev/mtdblock0 にアクセスする方法で記述します。

イメージは以下の「Download the latest SPI image from」と書いてあるところの「Debug Version」からダウンロードする。

https://wiki.radxa.com/Rock5/install/spi

上の記事中にある「zero.img」もダウンロードする。

なんらかの Linux イメージを MicroSD に焼いてで、Rock 5 を起動する(Armbianを使用)。

nnyn@rock-5b:~/Downloads$ lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
mtdblock0    31:0    0   16M  0 disk 
mmcblk0     179:0    0 59.7G  0 disk 
├─mmcblk0p1 179:1    0  256M  0 part /boot
└─mmcblk0p2 179:2    0 58.8G  0 part /var/log.hdd
                                     /
zram0       254:0    0  7.7G  0 disk [SWAP]
zram1       254:1    0   50M  0 disk /var/log

zero.img は zero.img.gz と、圧縮されているので解凍する。

sudo apt update
sudo apt install -y unar
unar zero.img.gz

zero.img を焼いてから、目的のイメージを焼く。

sudo dd if=zero.img of=/dev/mtdblock0
sudo dd if=rock-5b-spi-image-g3caf61a44c2-debug.img of=/dev/mtdblock0
sync

以後、再起動すると、USBシリアル経由で、シリアルコンソールが使えるようになります。

https://wiki.radxa.com/Rock5/guide/serial-console

Atsushi MorimotoAtsushi Morimoto

RebornOS

Archi Linux ベースのディストリビューション

https://www.rebornos.org/

ダウンロードしたイメージを書き込むと、最初に環境構築の設定画面が現れる。
ここで、Gonome とか Cinnamon とかデスクトップ環境のイメージが選択できる。

自分が試した限り、SSDに直接書き込んでも動作していた。

Gnome をインストールしたところ、Wayland が有効になって立ちがる。
UI自体はすごくキビキビしていて良さそうだった。

https://twitter.com/74th/status/1618236844537413635

ただ、現状 fan コントロールなどが動作していなかったように思う。

このキビキビした動きは、Mali-G610 (Panfrost) + Wayland が当たっているかが大きいようだ。

Atsushi MorimotoAtsushi Morimoto

Armbian の Ubuntu で Mali-G610 (Panfronst) を適応してUIを良くする

現状 Armbian の最新リリースは公式ページにはなく、Github の armbian/build リポジトリの release ページには新し目のリリースされたイメージが公開されている。こちらをダウンロードする。

https://github.com/armbian/build/releases

Desktop のない minimal のイメージになる。
Branch: edgeは未検証で、Branch legacy で行った。

これをMicroSDとSSDにイメージとして焼く。
MicroSDはあくまでブート用として、以下の手順で MicroSD でブートしてSSDで読み込まれるようにした。
https://zenn.dev/link/comments/8a63a00473ed84

Mali-G610 (Panfrost) を有効にするために、下記サイトにある、"In orer to enable 3D acceleration" を有効にする。
https://www.armbian.com/rock-5b/

sudo add-apt-repository ppa:liujianfeng1994/panfork-mesa
sudo add-apt-repository ppa:liujianfeng1994/rockchip-multimedia
sudo apt update
sudo apt dist-upgrade -y
sudo apt install -y mali-g610-firmware rockchip-multimedia-config

※ 2023/02/16 kodi のインストールではなく、mali-g610-firmware、rockchip-multimedia-config のインストールに変更

そして再起動し、ログイン時に右下あたりに出るログインする Window System の選択で、Gnome Wayland を選択する(Gnome Xorgだとぬるぬるにはならなかった)。

設定後、以下のように、なっていれば成功。

  • Windowing System: Wayland
  • Graphics: Mali-G610 (Panfrost)

Atsushi MorimotoAtsushi Morimoto

fan コントロールを行う

よくわからないけれど、初期状態ではファンは回らないようになっている。ここにある通り、/sys/devices/platform/fd8b0010.pwm/pwm/pwmchip1/ あたりを操作すると操作可能である。
めんどうくさい。

https://forum.radxa.com/t/fan-control-software-for-rock5b-rock5b-pwm/12200/8

これをいい感じにCPU温度でコントロールしてくれるソフトウェアを作ってくれている方がいるので、これをインストールする。

https://github.com/pymumu/fan-control-rock5b

build & install と usage にある通りに設定すればOK!

Atsushi MorimotoAtsushi Morimoto

ケース

公式のケースは、アクリルハンバーガーケースなので、横からのほこりとかに無防備である。このアクリルケースは、ファンレスヒートシンクとファン付きで形が異なる。ヒートシンクの方が高さが出っ張っているので、その文の空間が考慮された形になっている(ファンレスケースにファンは取り付けられるが、ファンケースにヒートシンクは取り付けられない)。

https://shop.allnetchina.cn/collections/rock5-model-b/products/rock5-b-acrylic-protector

市販されているケースとして、メタルケースが出ている。メタルケース全体がヒートシンクの役目を果たし、ファンレスで使う前提のようである。

https://ameridroid.com/products/rock-5b-metal-case

Rock5b の 3D プリントモデルを公開してくれている方がいる。これも良さそうである。

https://forum.radxa.com/t/simple-case-for-the-rock5b/12529

https://github.com/0x6e3078/Rock5BCase

プリントしてみた

良い!

JLCPCBなら送料も安い

Atsushi MorimotoAtsushi Morimoto

利用できるLinux ディストロ

Android

Radxa https://wiki.radxa.com/Rock5/downloads

Ubuntu

Debian

Arch Linux

Arch Linux ARM というので、ARMのパッケージがメンテされている。
AUR(Arch Linux User Repository)では、-arm という接尾辞で管理されているっぽい。

Atsushi MorimotoAtsushi Morimoto

apt update に失敗する

armhf というアーキテクチャーのリポジトリが紛れ込んでくる。ubuntu のものでも紛れ込んできて、apt update に失敗するようになる。

E: Problem parsing dependency 67 of cockpit-ws:armhf=264-1ubuntu0.22.04.1
E: Error occurred while processing cockpit-ws (NewVersion2)
E: Problem with MergeList /var/lib/apt/lists/ports.ubuntu.com_dists_jammy-updates_universe_binary-armhf_Packages
E: The package lists or status file could not be parsed or opened.

全てに [arch=arm64] の記載を入れる。

# /etc/apt/source.list
deb [arch=arm64] http://ports.ubuntu.com/ jammy main restricted universe multiverse
# deb-src http://ports.ubuntu.com/ jammy main restricted universe multiverse

deb [arch=arm64] http://ports.ubuntu.com/ jammy-security main restricted universe multiverse
# deb-src http://ports.ubuntu.com/ jammy-security main restricted universe multiverse

deb [arch=arm64] http://ports.ubuntu.com/ jammy-updates main restricted universe multiverse
# deb-src http://ports.ubuntu.com/ jammy-updates main restricted universe multiverse

deb [arch=arm64] http://ports.ubuntu.com/ jammy-backports main restricted universe multiverse
# deb-src http://ports.ubuntu.com/ jammy-backports main restricted universe multiverse

/etc/apt/source.list.d/* も同様

そしてキャッシュを消す。

sudo rm -rf /var/lib/apt/lists/* -vf
Atsushi MorimotoAtsushi Morimoto

公式以外のヒートシンク&ファン

こちらの商品が紹介されていた。

https://ja.aliexpress.com/item/33050954650.html

この商品のコネクタは2.54ピッチになっているので、Rock5B の CPU Fan ポートはおそらく 1.27 ピッチなので、コネクタを付け替えることが必要。Radxa 公式の fan から線をつなげ変えて利用した。

ヒートシンク用のアクリルケースの蓋を取り付けることができるが、ヒートシンクの構造の都合、横から差し込むように取り付けないと入らなかった。

このヒートシンクに付属のファンはPWMが効きにくいため、https://github.com/pymumu/fan-control-rock5b  の設定 cat /etc/fan-control.json を以下のようにした。

{
    "pwmchip": -1,
    "gpio": 0,
    "pwm-period": 10000,
    "temp-map": [
        {
            "temp": 30,
            "duty": 0,
            "duration": 20
        },
        {
            "temp": 44,
            "duty": 80,
            "duration": 20
        },
        {
            "temp": 49,
            "duty": 90,
            "duration": 20
        },
        {
            "temp": 54,
            "duty": 95,
            "duration": 45
        },
        {
            "temp": 59,
            "duty": 100,
            "duration": 45
        }
    ]
}
このスクラップは2023/10/24にクローズされました