concerti.tsukubaのブログ

つくば・土浦・牛久近辺のコンサート情報のほか、個人的なメモなど

WSLでシリアルポートアクセス

はじめに

WSL環境が便利で積極的に使用中。今回はシリアルポートへのアクセスについて調査した。参考にした記事は Serial Support on the Windows Subsystem for Linux ? だったが、後で日本語の記事もあることに気づいた。 WSLでシリアル通信をする - /*ぶろぐ/

WSLでやったことは、こちらの記事と全く同じなので特に新しい情報は無いが、備忘録を兼ねてメモ。

やりたいことは、Raspberry Pi のシリアルポートに接続してコンソールログインすること。HDMIにつながなくてもブートメッセージを見ることができれば望ましい。特にブートしなくなったり、問題が起きた時のデバッグ用に使えれば便利だろう。

USB-シリアル変換ケーブルの入手

安価なものからケーブルまで、いろいろある。お勧めはFTDI社のチップを使っているモノが確実。 例えばDIPパッケージならFT231X USBシリアル変換モジュール: 秋月電子通商とか、ケーブルならばFTDI・USBシリアル変換ケーブル(3.3V)とか。

VCP (Virtual Com Port Driver)のインストール

FTDI社の VCP ダウンロードページにアクセスして、Windows 64bit 用のドライバーをダウンロードする。zipファイルでも良いが、右のコメント欄にある"setup executable"をダウンロードしてインストールするのがお手軽。

ポート番号確認

バイスマネージャーを起動し、シリアルポートを確認。今回は f:id:concerti:20180207212111p:plain に示すように COM4 だった。

Raspberry Pi と接続

GPIOピンを使ってUART経由でアクセス。ピンアサインは elinuxの説明にまとまっている。 これを使って RX, TX, GND の3本を接続(当然クロスで)。

GNU Screen で接続

他にも cu とか minicom とかありますが、GNU Screen が簡単。ポート番号とボーレートを指定して

~ $ sudo screen /dev/ttyS4 115200

として、Raspberry Pi の電源を入れる。しばらく待つとログインプロンプトが出る。 最後に抜けるには 「Control-a を押したあと、k (kill)」コマンドを送るれば良い。

使っているのはRasPi 2 modelB + Raspbian GNU/Linux 8 (jessie) だが、ブート中のメッセージは見えなかった。 これを表示するには /boot/cmdline.txt ファイルを編集して、その中にある "quiet" を削除すれば良い。ついでに "splash" も削除。 現状では以下の通り:

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=5c87e609--
02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait plymouth.ignore-see
rial-consoles

ブート時のメッセージ表示は以下のようになった

[    0.000000] Booting Linux on physical CPU 0xf00
[    0.000000] Linux version 4.9.24-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g84
60611) ) #993 SMP Wed Apr 26 18:01:23 BST 2017
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt:Machine model: Raspberry Pi 2 Model B Rev 1.1
--------------------
[    3.591353] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    3.962644] fuse init (API version 7.26)
[    3.994109] i2c /dev entries driver

Raspbian GNU/Linux 8 raspberrypi ttyAMA0

raspberrypi login:

GNU Screen は今まで主に端末上で仮想スクリーンの切り替えに使ってきたが、実際に/dev/ttyS* にアクセスできるとは知らなかった。これがあるならば、いよいよ TeraTerm をインストールする必要もなくなる日がくるかも。

今後

WSLからSDカードへのアクセスができるようになれば良いが、これはまだ先の話か。

WSLのバックアップを検討する

はじめに

前の記事(WSL上のVimでの日本語入力を快適にする - concerti.tsukubaのブログ)に書いたように、最近WSL+Vim環境を常用しはじめた。そうすると不安になるのは、いずれ再インストールしたり、別環境に移行したくなったときにどうするかという問題。そこでWSLのバックアップ・リストアについて検討する。2017 Windows 10 Fall Creators Update を前提。VMだとスナップショット機能があるが、現状では WSL にはそのような機能は無く、すべてアンインストールするしかない。

現状の確認

まずWSLのシステム全体が保存されているフォルダはWindowsでみると

C:\Users\[Username]\AppData\Local
        \packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc

に保存されている。プロパティをみたところ、約 3.5 GB 程度だった。

どのようにバックアップをとるか

もっとも簡単には、ルートディレクトリから tar で圧縮するやりかた。今回の場合、ファイルの保存先は /mnt/c 以下に適当なディレクトリをつくってそこに入れれば良いだろう。とりあえず日付のフォルダをつくって、 /mnt/c/bkup/WSL/20180206/ とする。

tar + bzip2 で圧縮するとして、/mnt/c 等は除外したい。そこで除外ファイルリストを作っておき、 -X オプションで指定する(このファイルは日付に依存するものではないので、1つ上のフォルダに置く)。

~$ cat /mnt/c/bkup/WSL/exclude_list.txt
/mnt
/dev
/proc
/tmp
/sys
/run
/var/log

圧縮実行

~$ sudo tar -cvpjf /mnt/c/bkup/WSL/20180206/backup.tar.bz2 -X /mnt/c/bkup/WSL/exclude_list.txt /

原理的にはこのファイルのみで良いが、記録としてパッケージリストをテキストファイルに保存しておく。最悪でもこのリストを元に再インストールも可能となる。また、PythonTeXについては apt-get で入れていないので pip のリスト、tlmgrのパッケージリストも保存する。

~ $ dpkg-query -f '${binary:Package}\n' -W >   /mnt/c/bkup/WSL/20180206/list_pkg.txt
~ $ pip list --format=columns > /mnt/c/bkup/WSL/20180206/list_pip.txt
~ $ tlmgr list --only-installed > /mnt/c/bkup/WSL/20180206/list_tex.txt

WSLのアンインストールと、再インストール

以前は lxrun コマンドでインストール・アンインストールを行っていたが、現在はWindows標準である「アプリと機能」からアンインストールする。アンインストールした後、念のためフォルダを確認したところ、

C:\Users\[Username]\AppData\Local\packages

Canonical.... ディレクトリが削除されていた。

ここで再起動する必要は全く無いが、気分的にWindows再起動したあとで、ストアから Ubuntu を再インストールした。その後、Canonical... ディレクトリのサイズを確認したところ、約600 MB だった。

リストア実行

root directory に移動。念のため -t オプションでテストし、解凍先を確認。その後でファイルをすべて展開する

~$ cd /
/$ sudo tar -tvjf /mnt/c/bkup/WSL/20180206/backup.tar.bz2 | more <-- 確認
/$ sudo tar -xvjf /mnt/c/bkup/WSL/20180206/backup.tar.bz2 <-- 展開実行
drwxr-xr-x root/root         0 1970-01-01 09:00 ./
drwxr-xr-x root/root         0 2017-09-23 01:15 bin/
-rwxr-xr-x root/root   1037528 2017-05-16 21:49 bin/bash
-rwxr-xr-x root/root    520992 2017-06-16 08:46 bin/btrfs
-rwxr-xr-x root/root    249464 2017-06-16 08:46 bin/btrfs-calc-size
.....

特にエラー無く終了。展開後に全体のサイズを確認したところ、ほぼ元と同じ容量だった。

念のため、パッケージリストやpipのリストなどを再取得して、前に保存しておいたファイルと diff をとってきちんと再インストールされているかどうかを検証したところ、特に問題なかった。 あとはいくつか TeXとかpythonとか動かしてきちんと動作することを確認した。

結論

これがベストの方法かどうかはともかく、スナップショットをとる代わりとしては十分。 元のフォルダは 3.5 GB程度だったが、今回バックアップしたファイルは bzip2 圧縮で 1.3 GB 程度だった。試しに xz 圧縮 (-J オプション) してみたところ 900 MB 程度になった。ただし、bzip2にくらべると圧縮・展開に時間がかかるのでよほどディスク残量に困らない限りは bzip2 にするつもり。

過去の記事

concerti.hatenablog.com

WSL上のVimでの日本語入力を快適にする

WSL(Windows Subsystem for Linux) とは

WSLとは、Windows 10 の上でLinuxのバイナリを動かすことができるという環境。2017年の Fall Creators Update 以降は正式サービスとなり、インストールも運用も、とても簡単になりました。普段からLinuxを触っている人や、いままでWindows上の仮想マシン(VM)を使っていた人からすると、これを使わない理由は無いと思う。

具体的な仕組みやインストール方法、設定方法などは検索すると先人のドキュメントがたくさん出てくるので、ここでは省略。

 

何が気に入っているのか?

特にVimWindowsで普通に使えるのが個人的には一番うれしいポイントかもしれない。とはいえ、ここで問題になるのが日本語入力を使うとき。特に、入力モードから抜けてノーマルモードに移行したときに、移動コマンドを打ったつもりなのに日本語変換窓が出てしまって怒りを覚えたことがある人は多いのではないでしょうか?

 

この問題はWSLに限った話ではないので、以前から繰り返し話題に上っていて、いろいろな対策があります。ただし、ちょっと調べて試した限りでは WSL でまともに動かすことが出来ず、決定的な解にたどり着けませんでした(私のやりかたがまずいだけかもしれませんが)。

 

結局どのようにしたのか

結論から書くと、「Escキーに"IMEオフ"機能を割りあてる」という方法に行き着いた。
現実的な解として(いまのところ)これがいちばんストレスなく使えている。Vimに関わらず日本語入力オフとなるが、むしろ望ましいキー割り当てとさえ感じており、Windowsのデフォルトになっていても良いのではないかとさえ思っている。

具体的な設定手順は以下の通り:

 

タスクバーのIME表示の上で右クリック→プロパティ で「Microsoft IMEの設定」パネルを表示する

f:id:concerti:20180204165946p:plain → f:id:concerti:20180204170154p:plain

 


「詳細設定」クリック

f:id:concerti:20180204170406p:plain


「全般」タブの中ほどにある「編集操作」のキー設定で「変更」ボタンを押す

f:id:concerti:20180204170438p:plain


左列のキー定義で「Esc」を探し、「入力/変換済み文字なし」の列を「-」 → 「IME-オフ」に変更する。ダブルクリックすると候補一覧が出てくるので、一覧から選べばよい。

f:id:concerti:20180204170515p:plain

 

f:id:concerti:20180204170621p:plain

 

後は、OK(or 適用)して戻れば良い。

 

注意

試していただくとわかるが、Vimから抜ける場合にはEscを2回押すことになる。つまり、1回目で日本語入力オフとなり2回目で入力モードからノーマルモードへ移行するのだ。キーを余分に押すことがストレスになるかと思っていたが、2回以上Escキーをたたけば必ず抜けてコマンドが入れられるので予想以上にストレスが無く、今までに比べればかなりマシである。「現実的な解」と書いたのはこれが理由。普段からこのキーアサインにしていると「Escを押すと英数字入力になる」のが当たり前になって、今では全くストレスが無い。

 

もう一歩進めると

いままでなんとなく使って来たが、むしろ初期設定である"IMEオン/オフをトグルする"という方が不自然に感じるよになってきた。いちいち「現在の状態」を意識しないといけないというのは、実はストレスになっていたらしい。

「半/全(漢字)キーは"IMEオン"に割り当てる.」

「ESCキーは"IMEオフ"に割り当てる」

これでほぼ完璧だと....個人的には思っている。これでもうしばらく使ってみよう。

 

KORG製チューナーアプリ Cortosia (コルトシア) への要望

これまでに3回ほど記事を書いていますが、本日はそれとは別に今後への期待を。

 

例によって結論から:

  1. 現在の機能はそのままに
  2. 練習の録音・再生機能を追加して、「楽器練習支援アプリ」に進化
  3. 贅沢をいえば、スケール(音階)練習への対応
  4. でも、あまり機能を追加しすぎないように(矛盾)

 

 

アプリのレビューやブログ記事などをみていると、値段が高いという感想をみかけますがなぜでしょうか。おそらく、単なる「楽器用のチューナー・メトロノームアプリ」としては無料や数100円程度のもっと安価モノがあるので、それらと比較すると1,200円という価格は躊躇してしまうのかもしれません(ときどき半額セールとかやっていたりするらしいですが)。

「音質向上」と言われても、なにをもって「良い音」と判断するのか、万人が認める普遍的な基準は難しいでしょうからこの機能に懐疑的な人が多いのも仕方のないことでしょう。これはまだまだ研究中ということで将来に期待です。

 

せっかく自分の演奏を自動的に録音開始・停止する機能がついているのですから、これを活かして「点数判定無しで、単に自分の練習を記録・再生する」モードが欲しいです。現在は無音状態になるか、適当な時間が過ぎると勝手に録音をやめて点数判定をしますが、これだと曲を弾いているとファイルが細切れになってしまいます。想像するに、今の録音終了判定時間を甘くするだけでも実現できそうです。あるいは自動録音モード以外に、録音開始・停止ボタンをつけても良いかもしれません。

ちょっとしたフレーズを練習するときに「自分の音を録音して、聞く」のはとても重要です。特に私のような下手くそは。自分の演奏を聴くと思っていたよりも微妙にずれていることがあからさまになって悲しくなります。が、修正するためには自分の頭に描いている音やニュアンスと、実際の演奏との「差に気づく」ことが肝心だと思うのです。

 

録音用に別のアプリを使うのではなく、Cortosia が「楽器練習支援アプリ」として発展していけば、1つのアプリ内で完結することになりとても魅力的です。

 

 

以前の記事へのリンクは以下の通り:

 

ノバホール等、催事案内のWeb 追記

ずいぶん前(2016年5月)に書いた記事 (ノバホール等、催事案内のWeb - こんちぇる亭Blog )ではいろいろと不満を書きましたが、ずいぶん慣れましたし、色々と改善されている感じがするので気づいたことを記載。

 

・イベント、ポスターへのリンクが固定になり、参照しやすくなった

・各イベントごとの情報量が増えた

・情報の更新が以前のよりも頻繁になったかも(?)

・以前の形式と似たような一覧表pdfも掲載。大・小ホールの区別が分かりやすくなっている。

 

今後も期待しています。

 

Cortosiaの使い方その3

バージョンが上がって色々と修正されていたので追記。

 

まず約1年前の記事

Cortosiaの使い方(その2) - こんちぇる亭Blog

で記載していた不満はほぼ解決している。とてもありがたい。

 

その後のアップデート内容は

  • v1.4リリース。トロンボーンに対応しました。(2016.02.05)
  • v1.5リリース。ユーフォニアムに対応しました。(2016.4.23)
  • v1.6リリース。Game Centerに対応しました。(2017.1.26) 

となっていて、v1.4, 1.5 は楽器の追加がメイン。そしてv1.6ではどうでもでも良い Game Center対応....だけかと思ったら、実はgood-sound.org へのアップロード機能が削除されていた。

 

https://good-sounds.org/ にアクセスすると「サービス終了のお知らせ」が出ており、2017/1/31で終了とのこと。このサービスを特に使っていたわけではないので問題は無いのだが、説明を読むと共同研究の意義は達成し、Cortosiaの改善と、チューナー(TM-50TR)も発売したので成果としては区切りがついたということなのだろうか。

ユーザーがアップロードしたデータは Freesound.org - Freesound.org へ各自が移行してほしいとのことだが、そんな面倒なことをやる人はどれだけいるのだろうか....とはいえ他に良い案も無さそうだし、仕方ないのかもしれない。

 

コルトシア自体は割と気に入っているので買って損はないアプリだと思う。TM-50TRを買うより安いし。今後はスケールの練習に対応してもらえると嬉しいと思う。

 

このほか、今後への期待・要望を次の記事に書きました。

KORG製チューナーアプリ Cortosia (コルトシア) への要望 - こんちぇる亭Blog

 

ノバホール等、催事案内のWeb

4月になってから情報が更新されないと思っていたら、公益財団法人つくば文化振興財団のページが新しいサイトに移行していたらしい。

www.tcf.or.jp

 

しかし、それならそれで古いページからリンクを張っておくのは常識だと思っていたが、ほとんど情報が無い。下のサイトには移転のお知らせはあるものの、「移転先については電話で問い合わせてください」との記載が...もう、何も言えません。

www.novahall.tsukubacity.or.jp

 

新しいサイトのデザインも、使いにくい。どこに何の情報があるのかよくわからない。カレンダーも日付をクリックしないと何があるか分からないし、月別の一覧にたどりつくまでが直観的ではない。

イベント情報から「全て」を選ぶと、日付順ではなく、よくわからない順番で表示される。(ホールごとに選択すれば日付順に並ぶようだ)

 

慣れるしかないのか....

 

その後、追記した記事を

http://concerti.hatenablog.com/entry/2017/02/04/233422

に書きました。