#author("2021-11-14T16:10:10+00:00","","")
#author("2021-11-14T17:48:51+00:00","","")
#contents

* 情報ページ [#ge41e047]
- 公式Wiki
-- https://wiki.seeedstudio.com/reTerminal/
- SEEEDエンジニアBlog
-- https://lab.seeed.co.jp/archive/category/reTerminal
- 購入先
-- スイッチサイエンス
-- 秋月電子通商
-- マルツ
-- 共立エレショップ
-- Physical Computing Lab

* RaspberryPi reTERMINALにOSをインストールし直して出荷状態に戻す [#i2f56811]

- 作業概要
-- 母艦となるPCが必要~
Windowsで作業するのが楽ですが、MacとUbuntuのコマンドラインでも作業可能です。~
MacとUbuntuでの作業手順はここではなく[[公式Wiki>https://wiki.seeedstudio.com/reTerminal/]]を参照のこと。
-- 手順としては、1)reTERMINALの起動モードを切り替えて、2)ツールを使ってeMMCを母艦にマウント、3)RasPi Image Writerで書く

** reTERMINAL側 [#d8593492]
+ 裏蓋を開ける(すごく堅いので爪を折らないように慎重に)
++ゴム足4個を外して、中にあるネジを外す
++拡張コネクタのゴムカバーを外す
++裏蓋を剥がす(拡張コネクタ付近の爪が堅い)
+ ヒートシンクを外す
+ モジュール横のスイッチを内側にスライドさせる
+ ヒートシンクを戻す(仮止めで良い)
+ [[母艦側の作業>#w256f1ea]]へ
+ 母艦側の作業が終わったら
++ 電源を外す
++ ヒートシンクを外す
++ スイッチを外側に元に戻す
++ ヒートシンクを戻す
++ 裏蓋を付けてネジとゴム足を付ける

** 母艦側(Windows10) [#w256f1ea]
+ RasPi boot toolをダウンロードしてインストールする~
https://github.com/raspberrypi/usbboot/raw/master/win32/rpiboot_setup.exe
+ USB-CケーブルでPCとreTERMINALを繋ぐ
+ rpibootを起動する~
eMMCがマウントされる~
Windowsにマウントされると「初期化が必要です」やエクスプローラが開くので、何もせず全て右上の×でウインドウを閉じます。
+ RaspberryPi Imagerをインストールする~
https://www.raspberrypi.org/software/
+ OSイメージを取得する~
64bit版は時期尚早な感じがするので、出荷時と同じ32bit版を使うことを推奨。~
https://wiki.seeedstudio.com/reTerminal-FAQ/#q2-how-can-i-flash-raspberry-pi-os-which-is-originally-shipped-with-reterminal~
32bit https://files.seeedstudio.com/wiki/ReTerminal/RPiOS_Images/2021-09-14-Raspbian-reTerminal/image_2021-09-14-Raspbian-reTerminal.zip~
64bit https://files.seeedstudio.com/wiki/ReTerminal/RPiOS_Images/2021-09-14-Raspbian-reTerminal-arm64/image_2021-09-14-Raspbian-reTerminal-arm64.zip
+ OSイメージのZIPを解凍する~
解凍しないでZIPのままでもOKでした。
+ RaspberryPi Imagerを起動する~
SHIFT+CTRL+Xでアドバンスメニューを開き、set hostnameにチェック、Enable SSHにチェックし、パスワードを設定する~
+ イメージの書き込み
Choose OS → Use custom~
イメージを選択
+ Choose Strage~
RPi-MSD-001を選択
+ WRITEを実行

* 正しい初期セットアップ手順 [#dea515b8]
https://lab.seeed.co.jp/entry/2021/10/19/183618

重要なのは「OS Updateを行わない(Skipする)」事。

その後、OSアップデートをターミナルコマンドで行う。(公式記載通り)
 $ sudo apt update
 $ sudo apt full-upgrade

* 電源ボタンにシャットダウン機能を追加する [#a2ab91f9]
本体左上のボタンは、電源を繋いだままシャットダウンした後、このボタンを押すと起動できます。~
このボタンは内部でGPIO-13にも繋がっているので、/boot/config.txtに1行追加することでシャットダウンとしても機能させられます。

/boot/config.txt
 dtoverlay=gpio-shutdown,gpio_pin=13,debounce=3000

この設定で、電源ボタンを長押し(3000ms=3秒)するとシャットダウン処理が開始されて安全に電源が切れます。~
メニューからシャットダウンを実行したのと同じです。

ただし、&color(red){Fキー3個と輝度センサーが使えなくなる};という弊害が確認されています(報告済み)

** 他の方法 [#p729e23b]
- GPIOにスイッチを付ける定番~
https://qiita.com/clses/items/e701c1cb6490751a6040~
電源ボタンのGPIO=13にしてみたら動かなかった。エラーが出る。GPIO=13はエッジ検出の割り込みが使えないっぽい。

- 緑の○ボタンでシャットダウン~
https://github.com/mnltake/reTerminal-util~
長押し処理をしていないので、押した瞬間にシャットダウン動作に入る

* 時間が経つと画面が消えるのを抑止する [#y07f1252]
- XScreenSaverをインストール 
 sudo apt-get install xscreensaver
- 設定>スクリーンセーバー~
モードタブの右のタブ(ランダムなセーバーを用いる)で「セーバーを無効にする」を選択
- ファイル>デーモンの再起動
- /etc/lightdm/lightdm.conf に次の記述を追加~
 [SeatDefaults]
 xserver-command=X -s 0 -dpms
- このへんを読むと良い(外部サイト)~
[[Raspberry Pi のデスクトップ画面を無操作状態でもブランクにさせない方法>https://lunaticsol.wordpress.com/2018/01/09/raspberry-pi-%E3%81%AE%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E7%94%BB%E9%9D%A2%E3%82%92%E7%84%A1%E6%93%8D%E4%BD%9C%E7%8A%B6%E6%85%8B%E3%81%A7%E3%82%82%E3%83%96%E3%83%A9%E3%83%B3/]]

* USER-KEY(F1/F2/F3/○)を無効にする [#xdf491ab]
デフォルトではキーボードのASDFにアサインされているが、これが結構邪魔くさい。~
自由にアサインしてPythonとかから扱えるようになるまでは無効にしておいた方が無難。~
/boot/config.txt に記述する
 dtoverlay=reTerminal,key0=0x0,key1=0x0,key2=0x0,key3=0x0
dtoverlay=reTerminalという記述が既にあるが、それに続いて,key0=...を追記する~
ただし、これを行うとFキーのイベントを取り込めなくなるようで、○キーでシャットダウンはできなくなる

* swapを無効にする [#k6e46f78]
ストレージがeMMCなのでMicroSDよりは摩耗特性は良いはずですが、そもそも4GBもDRAM積んでいるならSWAPは不要でしょう。
 $ sudo systemctl stop dphys-swapfile.service
 $ sudo  systemctl disable dphys-swapfile.service
 $ sudo rm /var/swap

*コマンドラインでBluetoothをペアリングする [#wc42f4a9]
参考としたサイト: https://qiita.com/takashi53/items/f6a866f0081609dbb8d6

reTERMINALを日本語でセットアップすると、Bluetoothでデバイスを追加を実行したときにペアリング先のリストが表示されなくなる。~
Bluetooth自身は生きているので、コマンドでペアリングを実行してやる必要がある。~
英語(イギリス英語のデフォルト設定)だと表示されるみたい。~

$ bluetoothctl

scan on でペアリングしたデバイスを探す

ターゲットがみつかったらscan offしてスキャンを止める

pair [MAC_ADDRESS] でペアリングを実行

デスクトップのメニューバーにあるBluetoothアイコンに接続先が追加されているので、そこで繋ぎに行けば繋がる。


* 起動時にモニタに何も表示させず、Splash画面だけ出すcmdline.txt [#i20c9820]
 console=serial0,115200 console=tty1 root=PARTUUID=5371387f-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet fbcon=map:10 splash plymouth.ignore-serial-consoles logo.nologo vt.global_cursor_default=0 console=tty3 loglevel=0

* 起動画面(Splash画面)の変更 [#ca894fb7]
標準のテーマは「seeed」になってる。~
テーマは次のディレクトに入っている~
 /usr/share/plymouth/themes
テーマの切り替えは次のコマンドで行う
 sudo plymouth-set-default-theme [THEME名]
 sudo update-initramfs -u
 sudo reboot
一番単純なテーマは「pix」で、splash.pngを表示するだけのもの。~

初期状態に戻したければ、
 sudo plymouth-set-default-theme seeed
 sudo update-initramfs -u
 sudo reboot

ここに沢山のテーマが公開されている~
https://www.gnome-look.org/browse?cat=108&ord=latest

私が気に入ってるのはこれ~
https://www.gnome-look.org/p/1507457~
ただし、起動が10秒ほど長くなる感じ。

* MicroSDカードは使用できない [#vf9a9fc3]
SDカードスロットがあるのでカードを入れてみたが、自動マウントどころか認識すらされなかった。~
CM4はeMMCとMicroSDは排他という記述を見つけた。~
よって、reTERMINALの内部SDカードスロットは機能しない。

このMicroSDカードスロットは、CM4モジュールを「eMMC無し」に交換した場合に使用する物らしい。

* 電源関係 [#rfb62217]

** 本体のUSB-Cポート [#ae4ca03a]
- 基本的に電源供給の機能しか無く、ホストになることはできない
- 内部のスイッチを切り替えたときだけ、外部PCからeMMCにアクセスするためのポートになる
- 電源は5V専用で、USB-PDでの最大供給は3Aまで。従って、reTERMINALのUSB-Aポートに繋げられる機器は電力的に限られる。

** 本体のUSB-Aポート(2個ある) [#p6325f2f]
- ここから取得できる電源は各ポート500mAまでのリミッターが入っている
- 2ポートを限界まで使おうとすると1Aになるため、本体動作に追加して電源供給が必要になる(4A要求の理由だと思う)

** 安定した動作でリッチに使用したい場合の電源 [#ed1199c2]
- 側面のGPIOポートに5Vを給電する
- 5VとGNDをそれぞれ2本づつ(合計4本)使う
- 5V 4A以上を供給できる電源を繋ぐ

* eMMCをいじる [#m1656dd7]
- UbuntuやMacOSに繋ぐ~
https://github.com/raspberrypi/usbboot

**  下準備 [#k4f328af]
- VMWare Workstation Player 16にUbuntu MATEをインストール
- そのままでは開発環境が入っていなくてmake出来ないので追加~
 $ sudo apt install build-essential.
- gitをインストール~
 $ sudo apt install git

** usbbootを取得してmake [#rda9b885]
 $ git clone --depth=1 https://github.com/raspberrypi/usbboot
 $ cd usbboot
 $ sudo apt install libusb-1.0-0-dev
 $ make

** DFUモードにしたreTERMINALをUSBケーブルで繋いでrpibootを実行 [#z3aac952]
 $ sudo /.rpiboot

** アクセサリー > ディスク を使ってパーティションを操作する [#n15b0d92]

 $ sudo ./rpiboot

* GPIO [#w8f55750]
&ref(pinout-v2.jpg);

* 経験したトラブル [#q68a60dc]
- 初めて電源を入れたときの初期設定で、OS UpdateをSkipしなかったため画面表示しなくなった~
eMMCへOSの書き直しで復旧させました

- OS焼き直し後の起動でスプラッシュが一瞬出てそのあと真っ黒画面のまま~
電源が重要。USB-C PDの5V/3A出せるACアダプタと100W対応ケーブルだと超安定した。~
PCのUSB-A 3.0ポートでの起動は無理。ACアダプタも瞬発力がある物じゃ無いと起動に失敗するっぽい。

- 64bit OS(2021-09-14版)
-- WiFiデバイスが存在しなくなり復旧できなくなった~
/etc/wpa_supplicant/wpa_supplicant.confをいじったあたりから~
→これを削除してもダメだった~
eMMCにOSを書き直して治りました(ハード故障では無い)
-- Bluetoothデバイスがペアリング出来ない(ペアリング待ちリストに出てこない)~
eMMC書き直し直後から異常なのを確認した~
32bit OSでも同じ状態。ただし、コマンドラインでペアリングは出来たのでハードはOK。~
GUI系がBUGってる?
初めての起動時に初期設定のダイアローグが出て、そこで言語を設定するのだが、ここで日本語を指定すると再起動後の日本語環境になったところでBTペアリングのリストが真っ白になってしまうことがわかった。英語環境なら問題ない。一度こうなってしまうとロケールを英語に切り替えても戻らない。フォントの関係なのかわからないが、GUI系がBUGっているのは確か。BTはコマンド(bluetoothctl)使えばペアリング出来る。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS