reTerminalの黒い画面問題のトラブルシューティング方法
reTerminalには必要なドライバーが最初から事前にインストールされているため、追加のドライバーをインストールする必要はありません。
ただし、画面が正しく表示されず黒いままの場合は、以下のトラブルシューティング手順に従って問題を特定し、段階的に解決してください。
ステップ1:LEDの点滅状態を確認する
PWRライトが点灯していない場合
電源供給に問題がある可能性があるため、電源の状態を確認する必要があります。さらに、ハードウェアの問題を除外するため、reTerminal内のCM4モジュールが適切に接続されていることを確認してください。
PWRライトは点灯しているがSYSライトが点灯していない場合
元の工場出荷時システムを再度フラッシュする必要があります。このセクションに直接進むことができます。
両方のライトが点灯している場合
この状況はLCD画面を制御するドライバーの問題により発生します。この時点で、2番目のステップで提供されているトラブルシューティング手順に従い、段階的に実行してください。
ステップ2:新しいシステムをインストールしたかどうかを確認する
-
自分で新しいOSをフラッシュしてLCD画面が正しく表示されない場合は、必要なreTerminalドライバーをインストールする必要があります。
-
独自のOSをフラッシュしていないが画面が黒いままの場合は、reTerminalに元々搭載されているRaspberry Pi OSをフラッシュに直接進んでください。
-
Raspbian OSをインストールしようとしている場合、テストを実施した結果、Bulleseyeの32ビットと64ビットの両方のバージョンがreTerminalで黒い画面問題に遭遇することなく正常に動作することがわかりました。さらに、新しいBookworm 64ビットバージョンもテストし、reTerminalで正常に機能することを確認しました。
新しいRaspberry Pi OS/ Ubuntu OSまたはその他のOSをフラッシュした後のreTerminalドライバーのインストール
ドライバーが必要なハードウェアには、5インチLCD、タッチパネル、加速度計、光センサー、ユーザーLED、ユーザーボタン、RTC、ブザー、暗号化コプロセッサーが含まれます。 したがって、このドライバーをインストールすることで、新しいRaspberry Pi OS/ Ubuntu OSまたはその他のOSを使用する際にLCD画面の適切な機能が有効になります。
- 1. 以下のリポジトリをクローンします
sudo apt install git -y
git clone --depth 1 https://github.com/Seeed-Studio/seeed-linux-dtoverlays
- 2. リポジトリに入ります
cd seeed-linux-dtoverlays
32ビットOSの場合、sudo ./scripts/reTerminal.sh
を実行する前に以下のステップを追加する必要があります。インストール完了後、変更を有効にするためにreTerminalを再起動することを忘れないでください。
echo arm_64bit=0 | sudo tee -a /boot/config.txt
sudo reboot
- 3. 以下を入力してドライバーをインストールします
sudo ./scripts/reTerminal.sh
ドライバーが正常にインストールされた場合、以下の出力が表示されます
- 4. reTerminalを再起動します
sudo reboot
最後に、新しいシステムでLCD画面を正常に使用できます。
reTerminalに元々搭載されているRaspberry Pi OSをフラッシュする
異なるOSにフラッシュしており、reTerminalに搭載されているデフォルトのRaspberry Pi OSに戻したい場合は、以下の手順に従ってください
reTerminalのCM4のeMMCストレージにRaspberry Pi OS / 64ビットUbuntu OSまたはその他のOSをフラッシュできます。以前にreTerminalでシステムをフラッシュしたことがない場合は、必要なドライバーのインストールを含むシステムフラッシュの準備として、eMMCに異なるOSをフラッシュに従うことを強くお勧めします。
必要なドライバーがインストールされたら、reTerminalのUSB Type-CポートをPCに接続するだけです。ファイルエクスプローラーを開いてCompute Module 4のeMMCがUSBマスストレージデバイスとして表示されたら、以下の手順を実行できます:
-
1. 以下のリンクにアクセスしてRaspberry Pi OSをダウンロードします
注意: reTerminalは元々32ビットOSで出荷されています。ただし、64ビット版もダウンロードできます
-
2. .zipファイルを展開します
-
3. Raspberry Pi Imagerソフトウェアを開きます
- 4. キーボードでCTRL + SHIFT + Xを押して詳細オプションウィンドウを開きます
ここでホスト名の設定、SSHの有効化、パスワードの設定、wifiの設定、ロケール設定などを行うことができます
- 5. CHOOSE OSをクリックしてUse customを選択します
-
6. 以前に展開したイメージに移動し、それを選択してopenをクリックします
-
7. CHOOSE STORAGEをクリックして接続されたeMMCドライブを選択します
-
8. 最後に、WRITEをクリックします
最後に、元のシステムでLCD画面を正常に使用できます。
ステップ1/2でも画面の問題が解決しない場合 - reTerminal LCD用のSTM32ファームウェアを更新する
2021年9月26日以降に製造されたreTerminalには、V1.8ファームウェアがプリインストールされたSTM32が搭載されています。
reTerminalのSTM32G030チップに最新のファームウェアがフラッシュされていることを確認することは非常に重要です。STM32G030はreTerminalのLCDを駆動する役割を担っています。STM32チップを最新バージョンに更新することで、reTerminal LCDで発生するほとんどの問題を解決するのに役立ちます。
STM32チップをフラッシュする方法は2つあります。
- 方法1: reTerminal上のCM4を使用してSTM32チップに直接接続し、ファームウェアをフラッシュする
- 方法2: STM32チップのピンをジャンパーワイヤーを使用してreTerminalの40ピンGPIOに物理的に接続し、OpenOCDを使用してファームウェアをフラッシュする
方法1は、reTerminalに新しいバージョン(v1.7以上)のSTM32ファームウェアがある場合に機能し、一方方法2は、ボードに**古いバージョン(v1.7未満)**のSTM32ファームウェアがある場合にのみ必要です。
使用するフラッシュ方法を決定する
次に、以下の手順に従って、どのバージョンのボードを持っているかを特定し、適切なフラッシュ方法を選択できるようにしましょう。
- 1. reTerminalのターミナルウィンドウに入り、以下を入力して設定ファイルを開きます
sudo nano /boot/config.txt
- 2. このファイルの最下部で、dtoverlay=reTerminalと書かれた行をコメントアウトします
#dtoverlay=reTerminal
注意: これによりすべてのreTerminalドライバーがアンロードされます。そのため、次回reTerminalを起動する際、ドライバーは一切ロードされません。
- 3. reTerminalを再起動します
sudo reboot
- 4. i2c-toolsを通じてSTM32をブートモードに入らせます
i2ctransfer -y 1 w2@0x45 0x9b 0x01
- 5. 接続されているI2Cデバイスをリストアップします
i2cdetect -y 1
以下の表のようにI2Cアドレス0x56が表示される場合、ボードには**新しいバージョン(v1.7以上)**のSTM32ファームウェアがあります。
しかし、以下の表のようにI2Cアドレス0x45が表示される場合、ボードには**古いバージョン(v1.7未満)**のSTM32ファームウェアがあります
- 6. 先ほど使用した設定ファイルを開きます
sudo nano /boot/config.txt
- 7. このファイルの最下部で、dtoverlay=reTerminalと書かれた行のコメントを外して、ドライバーを再度ロードします
dtoverlay=reTerminal
- 8. reTerminalの電源を切ります
sudo poweroff
注意: すでにSTM32 v1.8ファームウェアを実行している場合、i2c-toolsを通じてブートモードに入ると、ブートモードから抜け出す唯一の方法はSTM32ファームウェアをフラッシュすることです。
CM4を使用してSTM32に接続し、ファームウェアをフラッシュする
ボードに**新しいバージョン(v1.7以上)**のSTM32ファームウェアがある場合は、この方法に従ってください。
- 1. reTerminalのターミナルウィンドウに入り、以下を入力して設定ファイルを開きます
sudo nano /boot/config.txt
- 2. このファイルの最下部で、dtoverlay=reTerminalと書かれた行をコメントアウトします
#dtoverlay=reTerminal
- 3. reTerminalを再起動します
sudo reboot
- 4. reTerminal内に新しいディレクトリを作成し、そこに入ります。
mkdir STM32
cd STM32
- 5. stm32flashファイルとSTM32G030F6_R2.binをダウンロードします
wget https://sourceforge.net/projects/stm32flash/files/stm32flash-0.7.tar.gz
wget https://github.com/Seeed-Studio/seeed-linux-dtoverlays/releases/download/2022-05-29-reTerminal-V1.9/STM32G030F6_R2.bin
- 6. stm32flash-0.7.tar.gzを展開します
tar -xvf stm32flash-0.7.tar.gz
- 7. stm32flash-0.7という名前のフォルダに移動し、フラッシュツールを実行可能にします
cd stm32flash-0.7/
make
- 8. i2c-toolsを通じてSTM32をブートモードに入らせます
i2ctransfer -y 1 w2@0x45 0x9b 0x01
- 9. stm32flashツールを使用してSTM32チップのフラッシュを消去します
./stm32flash -a 0x56 -o /dev/i2c-1
- 10. stm32flashツールを使用してSTM32にファームウェアをフラッシュします
./stm32flash -a 0x56 -w ../STM32G030F6_R2.bin -v -g 0x0 /dev/i2c-1
注意: STM32G030F6_R2.binは新しいファームウェアのファイル名です
- 11. OPTRレジスタを以下のように変更します
i2ctransfer -y 1 w2@0x45 0x9b 0x00
- 12. 先ほど使用した設定ファイルを開きます
sudo nano /boot/config.txt
- 13. このファイルの最下部で、dtoverlay=reTerminalと書かれた行のコメントを外します
dtoverlay=reTerminal
- 14. reTerminalを再起動します
sudo reboot
これでSTM32へのファームウェアの書き込みが正常に完了しました!
ジャンパーワイヤーとOpenOCDを使用してSTM32に接続する
ボード上に 古いバージョン(v1.7未満) のSTM32ファームウェアがある場合は、この方法に従ってください。
- 1. reTerminalのターミナルウィンドウに入り、以下を入力してパッケージリストを更新します
sudo apt-get update
- 2. 以下のパッケージをインストールします
sudo apt-get install git autoconf libtool make pkg-config libusb-1.0-0 libusb-1.0-0-dev
- 3. 以下のリポジトリをクローンして移動します
git clone http://openocd.zylin.com/openocd
cd openocd
- 4. このリンクにアクセスし、最新リリースバージョンから STM32G030F6_R2.bin ファイルをダウンロードします。
注意: クリックするとダウンロードが開始されます
- 5. PC上でコマンドプロンプトを開き、以前にダウンロードしたファイルの場所に移動します
cd C:\Users\user\Downloads
- 6. ファイルを以前に作成したreTerminal上の openocd ディレクトリに転送します
scp -r .\STM32G030F6_R2.bin [email protected]:\home\pi\openocd
注意: pi はユーザー名で、192.168.x.xx はreTerminalのIPアドレスです。これをreTerminalのホスト名に置き換えることもできます。
- 7. reterminalのターミナルウィンドウに戻り、openocd ディレクトリ内で以下を入力します
./bootstrap
- 8. 以下を入力します
./configure --enable-sysfsgpio --enable-bcm2835gpio
- 9. コンパイルします
make
- 10. インストールします
sudo make install
- 11. 以下の接続に従って、STM32から40ピンGPIOにピンを接続します
注意: STM32ピンはreTerminal PCBAの背面に位置しています。
- 12. 接続を維持しながら、以下のコマンドを入力してSTM32にファームウェアを書き込みます
openocd -f interface/sysfsgpio-raspberrypi.cfg -c "transport select swd" -f target/stm32g0x.cfg -c "program STM32G030F6_R2.bin verify 0x08000000;shutdown"
注意: 通常、書き込み完了まで約3秒かかります。そのため、書き込みプロセスが完了するまで約3秒間上記の接続を保持する必要があります
以下のログが表示された場合、STM32ファームウェアの書き込みが正常に完了したことを意味します!
- 13. 接続を切断し、poweroff コマンドを使わずに電源コードを直接物理的に切断します
注意: 電源コードを物理的に抜かないと、STM32ファームウェアが正常にロードされません
これでSTM32へのファームウェアの書き込みが正常に完了しました!
インストールされたSTM32G030ファームウェアバージョンの確認
次に、インストールされたSTM32ファームウェアバージョンを確認しましょう
- 1. reTerminalのターミナルウィンドウに入り、以下を入力して設定ファイルを開きます
sudo nano /boot/config.txt
- 2. このファイルの最下部で、dtoverlay=reTerminal と書かれた行をコメントアウトします
#dtoverlay=reTerminal
-
3. reTerminalを再起動します
-
4. reTerminalのターミナルウィンドウ内で以下を入力してSTM32ファームウェアバージョンを確認します
i2ctransfer -y 1 w1@0x45 0x97 r2
出力が 0x01 0x07 のような場合、ファームウェアバージョン1.7を使用していることを意味します
- 5. 以前使用した設定ファイルを開きます
sudo nano /boot/config.txt
- 6. このファイルの最下部で、dtoverlay=reTerminal と書かれた行のコメントアウトを解除します
dtoverlay=reTerminal
- 7. reTerminalを再起動します
sudo reboot
最新バージョンのRaspberry Pi OS - Bookwormをフラッシュする
Raspberry Pi公式の最新リリースである最新のBookworm OSのイメージを準備しました。何らかの問題、特に上記で説明した問題が発生した場合は、よりスムーズな体験のためにこれらの手順に従うことを強くお勧めします。
続行する前に、ブートモードスイッチを下に倒すことを確認してください。次に、rpibootセットアップインストーラーを起動します。これらの手順を実行する方法の詳細な説明はこちらで提供されています。
-
1. 以下のリンクにアクセスしてRaspberry Pi OSをダウンロードします
バージョン | 説明 | TAG |
---|---|---|
2024-03-14-Raspbian-reTerminal-arm64 | 64bit Debian12(bookworm) Linux version 6.6.20 | lastest |
2024-03-14-Raspbian-reTerminal-armhf | 32bit Debian12(bookworm) Linux version 6.6.20 | lastest |
2023_11_15_bookworm_64.img.gz | 64bit Debian12(bookworm) Linux version 6.1 | release |
-
2. .zipファイルを展開します
-
3. Raspberry Pi Imagerソフトウェアを開きます
- 4. キーボードでCTRL + SHIFT + Xを押して詳細オプションウィンドウを開きます
ここでホスト名の設定、SSHの有効化、パスワードの設定、wifiの設定、ロケール設定などを行うことができます
- 5. CHOOSE OSをクリックし、Use customを選択します
-
6. 先ほど展開したイメージに移動し、それを選択してopenをクリックします
-
7. CHOOSE STORAGEをクリックし、接続されたeMMCドライブを選択します
-
8. 最後に、WRITEをクリックします
最後に、ブートモードスイッチを元の位置に戻し、reTerminalのシェルを組み立てます。その後、電源を入れます。元のシステムでLCDスクリーンを正常に使用できます。