Clockworkpi DevTermA04のtips

# what is DevTerm

This is DevTerm.

- https://www.clockworkpi.com/devterm
- WiFiは技適通ってないので、対策をしましょう
    - 分からない人は手を出さない方が良い
- サーマルプリンタが使えるのがよい

いろいろハマるところがあるので、確認次第追記する。

# Tips

## OS image files

公式：[dl.clockworkpi.com](http://dl.clockworkpi.com/)
- このサイトは見た目は面白いが、使いづらい。
- A-04なら`Based on the Armbian 21.11.0 Trunk Hirsute ARM64 system`のものになる
- そして、2022/08/09時点の最新 `DevTerm_A04_v0.1a.img.bz2` は、Ubuntu自身がEOLのバージョンでアップデートできない
    - Ubuntu21.04でEOLあり、この時点で20.10である必要がある。
    - そしてupgrade pathは2022/07で終了している

***update***
- forumで、Armbian22 LTS(end at 2037)のイメージが作られてた。guuさんありがとう！
    - https://forum.clockworkpi.com/t/hirsute-went-offline-late-july-2022-how-to-manage/8770/21
    - 修正等が少しづつ行われているようなので、しばらくすると安定しそう

## OS update
`DevTerm_A04_v0.1a.img.bz2` の場合、updateができない。これは上述の通り、UbuntuがEOLを迎えているからである。
Forumにupgradeする方法が出てたので試す価値はある。そしてupgradeには「4時間かかった」という報告もある。設定ファイルは引き継がないと、キーボードが使えなくなったりする（試した）。

若しくは、頑張って"How to create DevTerm A04 OS image from scratch"を見ながら新しいarmbianから作るか。

- sources.listの変更
    - `/etc/apt/sources.list` のURLを、`ports.ubuntu.com`から`old-releases.ubuntu.com/ubuntu/` にすべて変更する
    - 後述 help.ubuntu のサイトを確認されたし
- armbian-zshの依存バグ対応
    - `$ sudo apt purge armbian-zsh && sudo apt install armbian-zsh`
- upgradeする
    - `$ sudo apt update ; sudo apt upgrade -y`
    - `$ sodu do-release-upgrade`
        - 必要に応じて、別ターミナルから `pkill xlock` や `pkill xscreensaver`などをする
        - 構成ファイルは、既存のものを使うようにする。対象はForumに書いてある物。
        - 基本的には、全ての設定ファイルを残す（N）と、動きはする
- 後処理
    - サードパーティーのソースを有効にする
        - /etc/apt/sources.list.d/(armbian.list|clockworkpi.list)のコメントアウトを外す
        - キーを更新する
            - `wget -O - https://raw.githubusercontent.com/clockworkpi/apt/main/debian/KEY.gpg | sudo apt-key add - `
            - `sudo apt-key del  57B7A98BBEBA8C10CA4458810DD08811478B1249`
    - 更新する
        - `$ sudo apt update ; sudo apt upgrade`

see also
- https://forum.clockworkpi.com/t/hirsute-went-offline-late-july-2022-how-to-manage/8770/3
- https://forum.clockworkpi.com/t/apt-update-trouble/8161/5
- https://help.ubuntu.com/community/EOLUpgrades


## OS settings

### japanese language

日本語を扱えるようにする。

- 日本語入力設定
    - `$ sudo apt install ibus-anthy`
    - `$ reboot`
    - Applications>設定>iBusPreferences
        - ImputMethod>Add>Japanese>Anthy>Add
        - General>KeyboardShortcuts>NextInputMethod
            - `<Super>Space`で言語切替なので、必要なら`<Shift>Space`などを追加
    - 何らかの文字入力画面を開く
        - 右上ENをクリックし`Japanese - Anthy`に変更
        - 再度同じ場所(多分`_EN`表示)をクリックし、`ImputMmode(あ)`>`Hiragana`を選択
        - 以降、NextImputMethodでAnthyが選ばられると、ローマ字入力になる        - 
- fonts
    - `$ sudo apt install fonts-ipafont fonts-ipaexfont fonts-vlgothic fonts-takao`
        - お好みで
- 日本語パックとロケール変更
    - `sudo apt install language-pack-ja`
    - `sudo update-locale LANG=ja_JP.UTF8`
    - rebootし、確認
        - `$locale` および `$ echo $LANG`で確認
- timezoneをJSTに変える
    - `$ sudo timedatectl set-timezone Asia/Tokyo`
    - `$ date`
        - `2022年  1月  1日 日曜日 01:02:03 JST`などのように`JST`となっている
- 日本語manの導入
    - `$ sudo apt install manpages-ja manpages-ja-dev`



### game pad

2つの方法があるようだ
- キーボード背面のスイッチで変更可能
    - ゲームパッドの出力を、ゲームパッドのままか 矢印キー/(j|k|u|i) に変更可能
- QJoyPadで定義する
    - `$ sudo apt install qjoypad`
    - Applications>game>qjoypad で起動し、右上のアイコンをクリックして設定
    - importで下記を入れると、キーでマウス移動, A/Yで左クリック, B/Xで右クリック、になる

```mouse.lyt
Jyostick 1 {
  Axis 1: gradient, maxSpeed 2, mouse+h
  Axis 2: gradient, maxSpeed 2, mouse+h
  Axis 3: mouse+v
  Axis 4: mouse+v
  Button 1: mouse 3
  Button 2: mouse 1
  Button 2: mouse 3
  Button 2: mouse 1
}
```

see also
- https://forum.clockworkpi.com/t/using-gamepad-arrows-and-buttons-in-command-line-apps/7059/2

### IPv6?

```
echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4
```

`apt-get update`した際に、一部がIPv6で名前解決されていた。環境により接続できない場合があるので、IPv4を強制した。


## update keyborad firmware

see [Forum:Thread](https://forum.clockworkpi.com/t/ive-rewritten-devterm-keyboard-trackball-firmware/7671/48)

```
$ sudo apt install dfu-util -y
$ wget https://github.com/clockworkpi/DevTerm/raw/main/Code/devterm_keyboard/bin/DevTerm_keyboard_firmware_v0.2_utils.sh
$ chmod +x  DevTerm_keyboard_firmware_v0.2_utils.sh
$ sudo ./DevTerm_keyboard_firmware_v0.2_utils.sh
```

[github](https://github.com/clockworkpi/DevTerm/tree/main/Code/devterm_keyboard/bin)を見ると複数のファームウェアが公開されているが、私の環境では `v0.2` 以外はあまりうまく動かなかった。

## SSH server enable

初回起動時に表示される手順

```
Welcome to ClockworkPi DevTerm A04!
...snip...
Note: The SSH server is disabled by default.
To enable the SSH server,plese execute the commands:
"sudo rm /etc/ssh/sshd_not_to_be_run"
"sudo systemctl enable sshd"
"sudo systemctl start sshd"
```

## Thermal printer

see [github:DevTerm/Code/thermal_printer](https://github.com/clockworkpi/DevTerm/tree/main/Code/thermal_printer)

Consoleからは `/tmp/DEVTERM_PRINTER_IN` に投げ込めばよい

```
echo "Hello DevTerm" > /tmp/DEVTERM_PRINTER_IN
echo -e "Hello DevTerm\n\n\n\n\n\n" > /tmp/DEVTERM_PRINTER_IN
cat file.txt > /tmp/DEVTERM_PRINTER_IN
ncal -hb | tee > /tmp/DEVTERM_PRINTER_IN
```

CPUS使えるので、例えばブラウザで印刷することも可能。

## 画面を広くする

画面が小さすぎてダイアログが見えない場合に、画面を広く使う
（ダイアログの上下サイズを変更できず、下の方にある"Apply"や"OK"が押せない場合などに有用）

- Application>設定>ディスプレイ
    - Scaleを`1.5`などに変更
    - 但し、文字等がかなり小さくなるので、常用は厳しいと思われる

## 画面を明るくする（輝度調整）

もしかしたらデフォルトで`devterm-backlight-rpi`パッケージが入っていれば、`Fn + <>` で変更可能。

そうでない場合は、`/sys/class/backlight/backlight@0/brightness`に数値を書き込むことで調整が可能

- 0:backlight OFF ～ 5:device default ～ 9:最大輝度
- ex) `$ echo 9 > /sys/class/backlight/backlight@0/brightness` で最大輝度
- （echo で書いた後は、Fn+<>で制御はできないっぽい？）
- 参考: https://forum.clockworkpi.com/t/changing-brightness-terminal/7070