Linuxホストでマイコンボードと接続するときに、 シリアルコンソールが必要になる場合がある。
GtkTermやcuなどが思い浮かぶが、私はminicomを使うことが多い。
ただ、このminicom キーバインディングに少しだけ癖があり、Ctrl+Aがminicomのメニュー表示のためのショートカットとして割り当てられている。
minicomでCtrl+Aの問題点
ターゲット側にLinuxが乗っていてシェルがbashだったりする場合、カーソルを行の先頭に移動させるためのCtrl+Aと被ってしまう。 この場合はminicomのショートカットの方が優先されるので、キー操作によっては意図せずにローカルエコーがONになったり、なによりもカーソルが意図したところに移動しないのでイラッとする。
解決策
実はminicomのショートカットは割り当てが自由に変更できるようになっている。 これでCtrl+A以外の普段使わないようなところにショートカットを割り当てれば、先述のストレスから開放される。
次回以降のminicomの起動時に反映されるようにdflに設定を保存する手順を示す。
$ sudo minicom -s +-----[設定]------+ | ファイル名とパス名 | | ファイル転送プロトコル | | シリアルポート | | モデムとダイヤル | | 画面とキーボード | | "dfl" に設定を保存 | | 新規に設定を保存 | | 終了 | | Minicom を終了 | +---------------+
このメニューで「画面とキーボード」を選択する。
+----------------------[画面とキーボード]-----------------------+ | A - コマンドのためのキー : ^A | | B - BS キーが送るコード : BS | | C - ステータスライン表示 : 許可 | | D - 警告音 : はい | | E - 前景色 (メニュー) : 白 | | F - 背景色 (メニュー) : 黒 | | G - 前景色 (ターミナル) : 白 | +-| H - 背景色 (ターミナル) : 黒 | | | I - 前景色 (状態) : 白 | | | J - 背景色 (状態) : 黒 | | | K - ヒストリ領域サイズ : 2000 | | | L - マクロファイル : .macros | | | M - マクロ編集 | | | N - マクロを使うか : はい | | | O - 文字変換 : | | | P - linefeedを追加 : いいえ | | | Q - ローカルエコー : いいえ | +-| R - 行末折り返し : いいえ | | S - 16進表示 : いいえ | | T - Carriage Returnの追加 : いいえ | | どの設定を変更しますか (Esc で終了) +-------------------------------------------------------+
ここでAキーを押す。
+----------------------[画面とキーボード]-----------------------+ | A - コマンドのためのキー : ^A | | B - BS キーが送るコード : BS | | C - ステータスライン表示 : 許可 | | D - 警告音 : はい | | E - 前景色 (メニュー) : 白 | +-------------------------[コマンド起動キーの設定]-------------------------+ | | | | Press the new command key. If you want to use | | | the META or ALT key enter: | | | | | | o SPACE if your meta key sets the 8th bit high | | | o ESC if your meta key sends the ESCAPE prefix (standard) | | | || | | | | Press new command key: | | | | +---------------------------------------------------------------+ | +-| R - 行末折り返し : いいえ | | S - 16進表示 : いいえ | | T - Carriage Returnの追加 : いいえ | | どの設定を変更しますか (Esc で終了) +-------------------------------------------------------+
この状態で割り当てたいショートカットを入力する。 例えば「Ctrl+@」に割り当てたい場合は、Ctrlキーと@キーを同時押しする。
すると下記の画面に戻るので、Escキーを押す。
+----------------------[画面とキーボード]-----------------------+ | A - コマンドのため ^@ | | B - BS キーが送るコード : BS | | C - ステータスライン表示 : 許可 | | D - 警告音 : はい | | E - 前景色 (メニュー) : 白 | | F - 背景色 (メニュー) : 黒 | | G - 前景色 (ターミナル) : 白 | +-| H - 背景色 (ターミナル) : 黒 | | | I - 前景色 (状態) : 白 | | | J - 背景色 (状態) : 黒 | | | K - ヒストリ領域サイズ : 2000 | | | L - マクロファイル : .macros | | | M - マクロ編集 | | | N - マクロを使うか : はい | | | O - 文字変換 : | | | P - linefeedを追加 : いいえ | | | Q - ローカルエコー : いいえ | +-| R - 行末折り返し : いいえ | | S - 16進表示 : いいえ | | T - Carriage Returnの追加 : いいえ | | どの設定を変更しますか (Esc で終了) +-------------------------------------------------------+
次に、以下のメニューに戻るので、「"dfl"に設定を保存」を選択する。
+-----[設定]------+ | ファイル名とパス名 | | ファイル転送プロトコル | | シリアルポート | | モデムとダイヤル | | 画面とキーボード | | "dfl" に設定を保存 | | 新規に設定を保存 | | 終了 | | Minicom を終了 | +---------------+
これで一旦minicomを終了すると、次回以降、minicomのメニューは「Ctrl+@」で起動されるようになる。
引用中のminicomの画面が崩れているのは、実際にminicomを使用したことがある人ならその雰囲気を理解できると思う。