個人情報保護方針 お支払いについて お問い合わせ |
Rock3 Compute Module CM3へのBullseyeのインストールRaspberry Pi Compute Module 4は人気ですが品薄状態がつづいています。ここでは代替として Radxa社 https://wiki.radxa.com/Rock/ja_JPのRock Compute Module3が使用できます。CM3は RS-ONLINE で購入できるようです。2023/7/6現在で在庫も281個と十分にあります。CM3はRaspberryPiCM4と互換の2つのコネクタを持ち、さらに拡張機能として3つ目のコネクタを備えていいます。3つ目のコネクタを使用するとUSB3.0やSATA等のRock3独自の拡張された機能を使用できますが、このコネクタは使用しなくてもCM4と同様の機能は動作します。ここではRaspberry Pi CM4用のCM4 IO Boardを用いてRock CM3を動作させてみます。 eMMCへのインストール SSHとVNCの設定 TigerVNCの設定(動作しません) PCIExpressの設定 PCIeスロットの拡張 OSイメージの作成(システムのバックアップ) CPU温度の表示 日本語環境の設定 Thunarの設定 Qt5.15/QtDesignerのインストール 注) 現在マイクロSDカードからの起動ができていません。調査中です。 |
マイクロSDカードへのインストールeMMCへのインストールはこちら1) OSイメージをダウンロードする Redxa社のダウンロードサイト https://wiki.radxa.com/Rock3/downloads からOSのイメージをダウンロードします。Radxa CM3 RASPCM4IOを選択します 現時点ではBullseysとUbuntu20.04 server (CUI)が選べるようです。 bullseyeのimgファイルをダウンロードします。 サイトを見ると現時点ではdtbファイルにパッチを当てる必要があるようです。この作業は後に行います。 2) フラッシュツール Etcher のダウンロード Rexda社のサイトからOSをマイクロSDカードに書き込むフラッシュツールEtcher のサイトに移動します。 使用しているPCのOSに応じてインストーラーを選択します。ここではWindows10なので、ETCHER FOR WINDOWS (X86|X64) (INSTALLER) を選択します。 3) Etcherのインストール balenaEtcher-Setup-1.18.8.exeをダブルクリックして、Etcherをインストールします。 4) EtcherによるマイクロSDカードへのOSイメージのインストール Etcherを起動し、1)でダウンロードしたOSイメージ radxa-cm3-io-debian-bullseye-xfce4-arm64-20221101-0302-gpt.img.xz を選択、PCに挿入したSDカードを選択しOSイメージを書き込みます。 OSイメージを書き込んだマイクロSDカードをCM4 IO ボードに挿入して電源を投入します。 参考資料: https://wiki.radxa.com/Rock/ja_JP 参考資料: https://wiki.radxa.com/Rock3/CM3/raspcm4io/getting_started 参考資料: https://wiki.radxa.com/Rock3/installusb-install-radxa-cm3-io |
CM3のeMMCへのインストールマイクロSDカードへのインストールはこちらRedxa社のダウンロードサイト https://wiki.radxa.com/Rock3/downloads からOSのイメージをダウンロードします。Radxa CM3 RASPCM4IOを選択します 現時点ではBullseysとUbuntu20.04 server (CUI)が選べるようです。 bullseyeのimgファイルをダウンロードします。 2) RKDevToolのインストール RKDevTool https://dl.radxa.com/tools/windows/RKDevTool_Release_v2.86.zip をダウンロードして任意のフォルダに展開します。RKDevToolはインストーラはなく、展開したフォルダ内のRKDevTool.exeをダブルクリックするだけで起動します。ショートカットを作っておくと便利でしょう。 RKDevTool v2.86はデフォルトで中国語で起動してしまうようです。config.iniを変更して英語で起動するようにします。Kinds=1に変更、中国語のLang1の設定を削除し、英語設定のLang2*をLang1に変更します。 [Language] Kinds=1 Selected=1 LangPath=Language\ Lang1File=English.ini Lang1FontName=Arial Lang1FontSize=9 3) RKDriverAssistantのインストール 次いでRKDriverAssistant.zip https://dl.radxa.com/tools/windows/DriverAssitant_v5.0.zipをダウンロードしてこれも任意のフォルダに展開し、DriverInstall.exeを実行します。 Install Driver ボタンを押してドライバをインストールします。 これでOTG経由でeMMCが見れるようになります。 4) img.xzファイルの展開 現在のところ、RKDevToolでは残念ながら.img.xzで圧縮されたファイルが扱えないようです。ですので、OSイメージファイルradxa-cm3-io-debian-bullseye-xfce4-arm64-20221101-0302-gpt.img.xz をあらかじめradxa-cm3-io-debian-bullseye-xfce4-arm64-20221101-0302-gpt.img に展開しておく必要があります。Windows上での圧縮の解除はWinzipや7zipで行うことができます。ここでは7-zipを使用することにします。7-zipのウェブサイト https://7-zip.opensource.jp/ から64bit版(使用しているWindowsが32bitなら32bit版)をダウンロードします。 radxa-cm3-io-debian-bullseye-xfce4-arm64-20221101-0302-gpt.img.xz を7-zipで開き、展開します。 5) OSイメージのeMMCへのダウンロード Radxa社のサイトからダウンローダをrk356x_spl_loader_ddr1056_v1.10.111.bin をダウンロードします。 https://dl.radxa.com/rock3/images/loader/rock-3a/ 5) OSイメージのeMMCへの書き込み USBケーブルでPCとCM4 IO BoardのUSB OTGコネクタを接続します。CM3のeMMCに何も書かれていない状態でしたら、そのままCM3/CM4 IO Boardの電源を入れます。eMMCに何か書かれている場合にはCM3ボード上にあるスイッチを押しながら電源を投入します。その状態で1) でインストールしたRKDevToolを起動します。Found One MASKROM Device と表示されていることを確認してください。デフォルトで適当な仮のパーティションイメージが設定されています。 右クリック->"Del Item"で、一旦削除し、3)、4)で作成したファイルを右クリック->"Add Item"で追加します。次回も同じ設定が必要な場合には右クリック->"Export Config"で設定を保存できます。ここでは以下のファイルを指定しました。 C:\MyProjects\GroveDesign\RaspberryPi4\rock3\rk356x_spl_loader_ddr1056_v1.10.111.bin C:\MyProjects\GroveDesign\RaspberryPi4\rock3\radxa-cm3-io-debian-bullseye-xfce4-arm64-20221101-0302-gpt.img runボタンを押して、書き込みが終わるのを待ちます。途中USBデバイスが切り離されたり、再接続するような音がしますが、じっと待ちます。 Download image OKが表示されれば書込み終了です。HDMIに接続したディスプリにログイン画面が表示されています。 6) eMMCの消去 他のOSをインストールしたいなどなんらかの理由で、eMMCを消去したい場合にもRKDevToolを使用します。Advance Functionタブを選択、bootにrk356x_spl_loader_ddr1056_v1.10.111.binを指定して、Downloadボタンをクリックします。 次にEraseAllボタンを押してeMMCを消去します。 最後にReset Deviceボタンを押して再起動します。eMMCは消去されていますので、起動しません。 参考資料: https://wiki.radxa.com/Rock3/installusb-install-radxa-cm3-io |
SSHとVNC(Virtual Network Computing)の設定1) OSを最新の状態に まず、IPアドレスはDHCPによって与えられていますので、ルーターなどHDCPサーバが動いているデバイスで、一番最近に付与されたIPアドレスを調べます。コマンドプロンプトから ssh rock@[IPアドレス] と入力し、ログインします。パスワードの初期値はrockです。 aptコマンドでインストールをしたいのですが、公開鍵が古くなっているようです。先に公開鍵をインストールします。 source /etc/os-release export DISTRO="${VERSION_CODENAME}-stable" wget -O - apt.radxa.com/$DISTRO/public.key | sudo apt-key add - OSを最新の状態にします。 sudo apt update sudo apt upgrade 2) DTBの書き換え CM4 IO boardを使用している場合にはDTBを書き換えます。Radza CM3 IO boardを使用している場合には変更の必要はありません $ cd /boot/dtbs/$(uname -r)/rockchip/ $ sudo mv rk3566-radxa-cm3-io.dtb rk3566-radxa-cm3-io.dtb.bak $ sudo cp rk3566-radxa-cm3-rpi-cm4-io.dtb rk3566-radxa-cm3-io.dtb $ sudo reboot 3) VNCの設定 SSHではCUIで各種設定が可能ですが、GUIでの設定も必要になる場合があります。VNCを設定して、他のPCからGUIアクセスできるようにします。 xfce4-goodiesをインストールして、Xfceデスクトップ環境を構築します。次いでTightVNC server、dbus-x11をインストールします。 $ sudo apt update $ sudo apt install xfce4 xfce4-goodies $ sudo apt upgrade $ sudo apt install tightvncserver $ sudo apt install dbus-x11 インストールしたらvncserverと入力し一旦起動します。起動するとパスワードを聞かれますので設定します。vncserver -kill :1で一旦display 1を停止します。~/.vnc/xstartupの初期値を保存して編集します。xstartupはVNC サーバーを起動または再起動するたびに自動的に実行されるものです。 $ vncserver Password: Verify: Would you like to enter a view-only password (y/n)? n xauth: file /home/sammy/.Xauthority does not exist New 'X' desktop is your_hostname:1 Creating default startup script /home/sammy/.vnc/xstartup Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log $ vncserver -kill :1 Killing Xtightvnc process ID 17648 $ mv ~/.vnc/xstartup ~/.vnc/xstartup.bak $ vi ~/.vnc/xstartup #!/bin/bash xrdb $HOME/.Xresources startxfce4 & $ sudo chmod +x ~/.vnc/xstartup $ vncserver 再びvncserverを起動すると、PCにインストールしたVNC Viewerからアクセスできるようになります。Ultra VNC, Read VNC 等が使用できます。お好きなViewerを使用してください。 4) VNC Serverをサービスとして動作 3)ではvncserverをSSHでログインして実行しましたが、これだとSSHセッションを抜けてしまうと使えなくなりますし、そもそもVNC Viewerでログインしたいのでこの方法では不便です。VNCServerをサービスとして使用できるようにします。 /etc/systemd/system/vncserver@.service という名前のファイルを作成します。 $ sudo vi /etc/systemd/system/vncserver@.service ファイルの中身は以下のようにします。 [Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=Simple User=rock Group=rock WorkingDirectory=/home/rock PIDFile=/home/rock/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i -localhost no -MaxIdleTime=0 -SecurityTypes=VncAuth -passwd /home/rock/.vnc/passwd ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target 変更内容をシステムに認識させ、有効にします。 $ sudo systemctl daemon-reload $ sudo systemctl enable vncserver@1.service $ sudo systemctl start vncserver@1 $ sudo systemctl status vncserver@1 -l --no-pager これで、キーボード、モニタが無くてもネットワークケーブルのみでGUI操作ができるようになりました。SSHでのアクセスをしなくても、VNCで直接GUIログインできます。 参考資料: https://github.com/radxa-build/radxa-cm3-io/releases/tag/20221101-0118 参考資料: https://wiki.radxa.com/RockpiS/ssh 参考資料: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-debian-11 参考資料: https://teratail.com/questions/301589 |
TigerVNCの設定 |
PCIExpressの設定1) DTBの書き換え CM4 IO boardを使用している場合にはDTBを書き換えます。すでに変更している場合には不要です。Radza CM3 IO boardを使用している場合には変更の必要はありません。 $ cd /boot/dtbs/$(uname -r)/rockchip/ $ sudo mv rk3566-radxa-cm3-io.dtb rk3566-radxa-cm3-io.dtb.bak $ sudo cp rk3566-radxa-cm3-rpi-cm4-io.dtb rk3566-radxa-cm3-io.dtb $ sudo reboot 2) config.txtの書き換え /boot/config.txtを開いて、下記の1行を追加します。 dtoverlay=radxa-cm3-io-pcie2x1 書き換えたら、configの変更をシステムに通知にします。再起動すると、PCIExpressが使用できます。 $ sudo update_extlinux.sh $ sudo reboot lspciでPCIExpressにNVMe SSDが見えています。 /dev以下に nvmeデバイスが見ています 3) NVMe SSDのフォーマットとマウント フォーマットします。Secure Eraseに対応したNVMeなら -s 2、そうでなければ-s 0を指定します。 $ sudo nvme format /dev/nvme0n1 -s 0 fdiskでパーティションを作成します。fdiskはdebean11には入っていないようなのでインストールします。 $ sudo apt install fdisk fdisk -lで現在のパーティション情報を確認します。/dev/mmcblk0はEFI 512MB、Linux filesystem 28.66GBの2つのパーティションが見えます。/dev/nvme0n1にはパーティションがありません $ sudo fdisk -l NVMe SSDにパーティションを作成します。p,n,p,[Enter],[Enter],[Enter]の順に入力。デフォルトから変更せずに作成します。 $ sudo fdisk /dev/nvme0n1 再度 fdisk -lで現在のパーティション情報を確認します。今度はNVMeにパーティションが見えます。 ファイルシステムをext4とします。 $ sudo mkfs.ext4 /dev/nvme0n1 作成したパーティションをマウントします。 $ sudo mount /dev/nvme0n1 /mnt これで、PCIeに接続したNVMe SSDが使用できます。 参考資料: https://scrapbox.io/dojineko/nvme-cliを使ってNVMe_SSDを初期化する 参考資料: https://blog.amedama.jp/entry/nvme-secure-erase 参考資料: https://qiita.com/sasadango/items/fcb657d3b4bbd39c3497 https://blog.amedama.jp/entry/nvme-secure-erase |
PCIeスロットの拡張CM4 IO Boardのスロットに接続したときにはルートブリッジとNVMe SSDしか見えませんでしたが、ASM1184E PCIe Switch Portが5つ追加されています。 問題なくマウントできるようです 速度を測定してみると、直接スロットに挿入した場合 シーケンシャル読み出し 1577MB/s : シーケンシャル書込み 535MB/s 拡張ボード経由の場合 シーケンシャル読み出し 1544MB/s : シーケンシャル書込み 443MB/s と若干遅くなるものの、実用に耐える速度かと思われます。PCIeスロットが4つあるいは、スロットとNVMe SSD用のM.2コネクタを複数有したキャリアボードがあれば、測定装置としておもしろいかもしれません。 |
OSイメージの作成(システムのバックアップ)必要なもの ・eMMCの容量以上(32GBなら64GB以上のストレージ NVMeメモリやUSBフラッシュメモリ等) まずはストレージをマウントします。ここではPCIeスロットに挿入した。NVMe SSDを使用します。dfコマンドで/mntがマウントされていることを確認します。 $ sudo mount /dev/nvme0n1 /mnt $ df -T eMMCのデバイス名を確認します。/dev/mmcmblk0 のようです $ ls /dev/mmcblk* ddコマンドで /dev/mmcmblk0 全体をimgファイルに書き出します $ sudo dd if=/dev/mmcblk0 of=/mnt/radxa-cm3-io-debian_bullseye-xfce4-arm64-[日付].img [sudo] password for rock 61071306+0 recored in 61071306+0 recored out 31268536320 bytes (31 GB, 29 GiB) copied, 900.752 s, 34.4 MB/s $ xzコマンドで圧縮します。-T4は4スレッドで高速に処理する場合に指定します。SOCが高温になりますので。ヒートシンク等の放熱処理してください。 $ cd /mnt" $ ls $ sudo xz -k -T4 radxa-cm3-io-debian_bullseye-xfce4-arm64-[日付].img $ ls -l WindowsでFAT32フォーマットにてフォーマット済みのUSBフラッシュメモリをマウントしてコピーします。 $ sudo mount -o iocharset=utf8 -t vfat /dev/sda1 /media/usb" $ ls /media/usb $ sudo cp radxa-cm3-io-debian_bullseye-xfce4-arm64-[日付].img /media/usb/ $ umount /media/usb 新しく作成したimgファイルを用いて、eMMCに再度書き込めば、バックアップした状態に復元できます。今回は64GB以上のUSBフラッシュメモリが無かったので、圧縮してからコピーしましたが、圧縮にかなりの時間を要しました。できれば非圧縮のままUSBフラッシュメモリへ保存して、より高速なPCで圧縮したほうがよいでしょう。 作成したimgファイルをRKDevToolでeMMCに書き込んでみました。ファイルサイズが大きいためか、書込み終了まで到達できません。十分時間が経ってから電源を再投入したところ、問題なく書き込んだOSイメージで起動できました。おそらくimgファイルを作成するときに正しいセクタサイズを指定する必要があったと思います。次回試してみます。 参考資料: https://isleofhoso.com/linux-dd/ 参考資料: http://tech.clickyourstyle.com/articles/126 参考資料: https://pcvogel.sarakura.net/2018/09/21/31873 参考資料: https://qiita.com/hana_shin/items/df1cf4dd67d1dd19d44a |
CPU温度の表示以下のコマンドでCPUの0.001度単位の温度が表示されます。 $ cat /sys/class/thermal/thermal_zone*/temp 63333 62777 18800 また、Sensor ViewrやHardinfo等のGUIアプリでも温度は確認できます。 $ sudo apt install hardinfo $ hardinfo & |
|
なお、CM3にヒートシンクをつける前は平常時63度ぐらいだったのが、ヒートシンクをつけることで46度ぐらいになりました。4スレッド動作で高負荷をかけても65度程度で収まっているようです。RK3566の動作温度は75度までなので、ファンまでは必要なくても、ヒートシンクはつけたほうが良さそうです。 参考資料: https://qiita.com/koara-local/items/1fac13704123717f5cc8 参考資料: https://news.mynavi.jp/techplus/article/20201229-1613873/ |
日本語環境の設定キーボードのレイアウトと日本語入力環境を設定します。キーボードのレイアウトが異なると":"や"_"が入力できなくて大変困ります。インストールすべきパッケージがUbuntuとは異なりますので注意が必要です。 $ sudo apt install task-japanese locales-all $ apt -y install task-japanese-desktop ibus-kkc 文字セットを日本語に変更します。 $ echo $LANG C.UTF-8 $ locate -a | grep JP jp_JP.eucjp jp_JP.utf8 $ locate -list-locales | grep JP jp_JP.UTF-8 $ localectl set-locale LANG=ja_JP.UTF-8 $ source /etc/default/locale $ echo $LANG LANG=ja_JP.UTF-8 キーボードレイアウトをJP106に変更します。さらに設定->キーボード->レイアウトで、日本語キーボードを選びます。キーボードとモニタを使って通常にログインすると設定できるのですが。残念ながらtightVNC経由では操作できないようです。そもそもtightVNCは日本語に対応していないそうです。tigerVNCでは使えていたクリップボードも使えませんし不便ですね。Ubuntuのほうがいろいろよさそうです。 $ localectl set-keymap jp106 $ localectl System Locale: LANG=en_US.UTF-8 VC Keymap: jp106 X11 Layout: jp X11 Model: jp106 X11 Options: terminate:ctrl_alt_bksp 参考資料: https://www.server-world.info/query?os=Debian_11&p=japanese 参考資料: https://www.server-world.info/query?os=Debian_11&p=keymap |
Thunarのインストール$ sudo apt install thunar* |
Qt5.15/QtDesignerのインストール仮想PC(x64)で行ったQtのインストールをCM3のBullseyeでも行ない、動作確認します。 $ sudo apt-get install build-essential $ sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools $ sudo apt-get install qtcreator $ sudo apt-get install qtmultimedia5-dev libqt5multimediawidgets5 $ sudo apt-get install libqt5multimedia5-plugins $ sudo apt-get install `apt-cache search 5-examples | grep qt | grep example | awk '{print $1 }' | xargs` $ sudo apt-get install `apt-cache search 5-doc | grep "^qt" | awk '{print $1}' | xargs` Qt Creatorを起動して、仮想PCのx86環境で動作確認していたプロジェクトをビルドしますがエラーが出てコンパイルどころかプロジェクト内のファイルも参照できません。 clangがインストールされていないエラーようなのでインストールします $ sudo apt-get install clang libusb-1.0もインストールされていないエラーようなのでインストールします $ sudo apt-get install libusb-1.0* $ sudo apt-get install libusb-1.0-0-dev $ sudo apt-get install libudev-dev libudev1 これで正常にQtプロジェクトがビルドできるようになりました。フォントなどはUbuntuとは異なるようです。 .debファイルをインストールして動作確認しておきます。 参考資料: https://forum.qt.io/topic/99294/project-error-cannot-run-compiler-clang-output/5 |
|