2020/08/11

Chromebook 311 C721-N14NのLinux環境の更新

システムの更新によると思いますが、Chromebook 311 C721-N14NのLinux環境でのGUIアプリケーションの状況が少し良くなりましたので、現時点の情報をまとめます。

GUIアプリケーション・現時点できちんと起動するもの
  • mpv:動画ビューワ→引き続き十分に使える
  • easytag:音楽ファイルのタグ情報の編集→引き続き十分に使える(日本語入力できないが問題なし)
  • audacious:音楽プレイヤー→きちんと起動するようになったが、日本語入力できないので使いにくい
  • XScavenger:ロードランナーに似たゲーム→きちんと起動し十分に使えるようになった

GUIアプリケーション・現時点できちんと起動しないもの
  • mcomix:漫画ビューワ
  • Kazam:動画が使えるスクリーンキャプチャ

<環境>
・chromebookのLinux(ベータ版)環境
Chromebook 311 / C721-N14N / Acer
Chrome OS バージョン: 84.0.4147.110(Official Build) (64 ビット)
chromebookのLinux(ベータ版)環境 / Debian 9: 9.12 (Stretch)

chromebook 311 C721-N14Nを購入した理由


Chromebookの使いやすいタッチパッド

Chromebookのタッチパッドは使いやすいので、わざわざマウスを使う必要がありません。
ちょっとその理由を考えてみました。

マウスポインタを動かすことと、左クリックは、他のタッチパッドと同じです。
左クリックはchromebookでも通常はタッチパッドをタップします。
ダブルクリックは二回タップします。

右クリックに相当するは、指二本のタップです。
これが一番のポイントと思われ、片手で操作が完結するので便利です。

中クリックに相当するのは、指三本のタップです。
ウェブブラウザChromeのリンクをこのタップで開くと、新しいタブで開かれます。
この操作もとてもよく使いますので、片手で手軽に操作できるので便利です。

このようによく使う操作が片手で完結するので、マウスを繋げたりせずに、タッチパッドのみで便利に使えるのだと思います。

よく使う操作の中では、テキストを選択するときだけ、左手の指でタッチパッドの下部を押さえながら、右手の指でタッチパッドをなぞりますので、このときだけ両手の操作になります。

他にも便利なタッチパッドの使い方がありますので、下方のリンクを参考にしてみてください。

<環境>
・chromebookのLinux(ベータ版)環境
Chromebook 311 / C721-N14N / Acer
Chrome OS バージョン: 84.0.4147.110(Official Build) (64 ビット)
chromebookのLinux(ベータ版)環境 / Debian 9: 9.12 (Stretch)
・crouton環境
Chromebook 11 / C740-F34N / Acer
Chrome OS バージョン: 84.0.4147.110(Official Build) (64 ビット)
crouton環境 / Ubuntu 18.04.4 LTS (Bionic Beaver)




2020/08/02

odの使用例

XScavengerというゲームのマップがバイナリーデータだったので、Linuxでファイルダンプをするodを使って表示させました。
これを例にodの使い方を説明します。

マップは各面につき、横24、縦15のサイズであり、このデータのファイルを16進数1バイト単位で横12バイト、縦15行で表示させると、横24文字、縦15行となってこのマップに対応しました。

第1面のデータは以下のように表示させました。
一番左のカラムはファイル中のアドレスで、マップの対応には直接関係しません。

$ od -v -tx1 -w12 -j2720 ./xscavenger-1.4.5/data/levels.scl | tail -n +$((15*1)) | head -n 15
0005510 00 00 00 00 00 00 00 00 60 00 00 00
0005524 00 00 00 00 00 00 00 00 60 70 00 00
0005540 00 00 00 00 00 00 00 00 11 11 30 00
0005554 00 77 00 00 00 00 00 78 07 00 30 00
0005570 03 11 13 00 00 00 31 11 11 11 30 00
0005604 03 00 03 00 00 00 30 00 00 00 00 00
0005620 03 00 03 b0 07 00 30 00 00 00 00 00
0005634 03 03 11 11 11 11 11 11 11 30 00 00
0005650 03 03 00 00 00 00 00 00 00 30 00 00
0005664 03 03 00 00 00 0b 87 00 00 30 00 00
0005700 03 01 11 13 00 31 1a 00 70 30 00 00
0005714 03 00 00 03 00 30 00 00 11 11 11 30
0005730 03 00 00 03 00 30 00 00 00 00 00 30
0005744 93 00 70 03 80 30 00 00 00 00 b0 30
0005760 a1 11 11 11 11 11 11 11 11 11 11 1a

第2面以降第180面まで、tailの*1となっている部分を*2〜*180に書き換えて、同様に表示させました。

odのオプションは以下のとおりです。

  • -v: 重複行の表示が「*」となるのを抑制する。これをしないとtailで指定する行数が面が進むのに伴いずれていった。
  • -t: フォーマット。ここではx1を指定し、16進数1バイト単位で表示するよう指定した。
  • -w: 1行に表示するバイト数。ここでは12バイトを指定した。
  • -j: 最初にスキップするバイト数。ここでは試行錯誤で2720バイトとすればいいことが分かった。

各行24文字の対応は以下のとおりです。

  • 0: Empty
  • 1: brick
  • 2: cement
  • 3: Ladder
  • 4: Rail
  • 5: Fakebrick
  • 6: exitladder
  • 7: Object
  • 8: Enemy
  • 9: Hero
  • a: Hidden
  • b: Flashing

<環境>
・chromebookのLinux(ベータ版)環境
Chromebook 311 / C721-N14N / Acer
Chrome OS バージョン: 84.0.4147.94(Official Build) (64 ビット)
chromebookのLinux(ベータ版)環境 / Debian 9: 9.12 (Stretch)
・crouton環境
Chromebook 11 / C740-F34N / Acer
Chrome OS バージョン: 84.0.4147.94(Official Build) (64 ビット)
crouton環境 / Ubuntu 18.04.4 LTS (Bionic Beaver)


head、tailを組み合わせて行を表示させる

linuxコマンドラインでテキストファイルの指定した行(XX)から指定した行数(YY)を表示させるには、他にもやり方はありますが、ここでは次のようにします。

$ cat ZZZ.txt | tail -n +XX | head -n YY

例えばlevels.txtファイルの30行目から始まる15行を表示するには、次のようにします。

$ cat levels.txt | tail -n + 30 | head -n 15

以下、headとtailの動作を少し詳しく説明します。

headはファイルの先頭から表示させる機能を持ちます。
オプションの-nに続けて指定する数値が、先頭から数えた行数を意味し、先頭からその行数を表示させることができます。
数値には+(プラス文字)を付けて指定することもできますが、動作は変わりません。
しかし数値に-(マイナス文字)をつけると末尾までのその行数を除いて表示という意味に変わります。

例示すると次のとおりです。

$ seq 10 | head -n 3   # 「head -n +3」、「head -3」でも同様
1
2
3

$ seq 10 | head -n -3
1
2
3
4
5
6
7

オプションの-nを使わずに-(マイナス文字)に直接数値を続けてオプション指定することもできます。
その場合、先頭からその行数を表示させることができます。
オプションの-nを使わずに、マイナス文字を付けなかった場合と、+(プラス文字)から直接数値を続けた場合には、エラーか予期しない動作になります。

要約すると次のとおりです。

-n -[数値] -n [数値] -n +[数値]
head 先頭から表示、末尾までのその行数を除く 先頭からその行数を表示

-[数値] [数値] +[数値]
head 先頭からその行数を表示 エラーか予期しない動作

tailはファイルの末尾まで表示させる機能を持ちます。
オプションの-nに続けて指定する数値が、その行数を表示するという意味であり、その行数だけを末尾まで表示させることができます。
数値には-(マイナス文字)を付けて指定することもできますが、動作は変わりません。
しかし数値に+(プラス文字)をつけると先頭から数えたその行から表示という意味に変わります。

例示すると次のとおりです。

$ seq 10 | tail -n 3 # 「tail -n -3」、「tail -3」でも同様
8
9
10

$ seq 10 | tail -n +3 # 「tail +3」でも同様
3
4
5
6
7
8
9
10

オプションの-nを使わずに-(マイナス文字)に直接数値を続けてオプション指定することもできます。
その場合、末尾までをその行数だけ表示させる意味になります。
また+(プラス文字)に直接数値を続けてオプション指定した場合、先頭から数えたその行から末尾までを表示できます。
オプションの-nを使わずに、マイナス文字もプラス文字も付けなかった場合、エラーか予期しない動作になります。

要約すると次のとおりです。

-n -[数値] -n [数値] -n +[数値]
tail 末尾までをその行数だけ表示 先頭から数えたその行から末尾までを表示

-[数値] [数値] +[数値]
tail 末尾までをその行数だけ表示 エラーか予期しない動作 先頭から数えたその行から末尾までを表示

headもtailもオプションとして-nの代わりに-cを用いることができ、その場合は行単位の操作ではなくバイト単位の操作が可能です。

またtailはオプションに-fを使うことができ、この場合はログファイルなど、次々に更新されていくファイルを、リアルタイムに更新して表示させることができます。

<環境>
・chromebookのLinux(ベータ版)環境
Chromebook 311 / C721-N14N / Acer
Chrome OS バージョン: 84.0.4147.94(Official Build) (64 ビット)
chromebookのLinux(ベータ版)環境 / Debian 9: 9.12 (Stretch)
・crouton環境
Chromebook 11 / C740-F34N / Acer
Chrome OS バージョン: 84.0.4147.94(Official Build) (64 ビット)
crouton環境 / Ubuntu 18.04.4 LTS (Bionic Beaver)

curl、wget、httrack、w3mの特徴について

LinuxコマンドラインからWebサイトの情報を得るときに使うコマンドの特徴を簡単に説明します。

まず、標準出力に情報を表示させる場合にはcurlが便利です。
もちろんwgetでもできますが、curlの方がひと手間少ないです。
通常はcurlは標準でインストールされていないと思います。
次のようにインストールします。

$ sudo apt update
$ sudo apt install curl

典型的な使い方は次のとおりです。

$ curl [リモートURL]

サポートしているプロトコル、HTTP認証などはcurlの方が多いため、curlの方が高機能と言えると思います。

wgetは、GNUプロジェクトに含まれ、ライセンスGPLv3+で提供され、通常は標準でインストールされています。
リモートURLで指定したファイルをダウンロードする際によく使われます。

$ wget [リモートURL]

curlのように標準出力に表示させる場合は次のようにしますが、この用途ではやはりcurlの方が便利です。

$ wget -O - [リモートURL]

wgetで特徴的なのは、再帰的なダウンロードであると言われていて、これはcurlではできません。
Webページをローカルに、再帰的にリンクをたどってダウンロードすることができます。

$ wget -r [リモートURL]

同様な再帰的なダウンロードではhttrackも便利だったと思いますので、興味があれば次のようにインストールして試してみてください。
wgetより取りこぼしが少ないと言われています。

$ sudo apt update
$ sudo apt install httrack

またHTMLコードを簡単に確認したい場合、w3mも便利です。
これはテキストベースのブラウザであり、次のようにインストールします。

$ sudo apt update
$ sudo apt install w3m

使い方は、まず次のようにして、リモートURLで示したページをテキストベースで表示させます。

$ w3m [リモートURL]

この状態で情報が画面に収まらなかった場合、スペースキーや上下矢印キーなどでスクロールさせることができ、tabキーとenterキーを使ってリンクをたどることができます。
そしてvを押下するとHTMLコードのソース表示となり、再度vキーを押すと元に戻ります。

<環境>
・chromebookのLinux(ベータ版)環境
Chromebook 311 / C721-N14N / Acer
Chrome OS バージョン: 84.0.4147.94(Official Build) (64 ビット)
chromebookのLinux(ベータ版)環境 / Debian 9: 9.12 (Stretch)
・crouton環境
Chromebook 11 / C740-F34N / Acer
Chrome OS バージョン: 84.0.4147.94(Official Build) (64 ビット)
crouton環境 / Ubuntu 18.04.4 LTS (Bionic Beaver)


linuxコマンドラインから自分のグローバルIPアドレスを取得する

linuxコマンドラインから自分のグローバルIPアドレスを取得するには、次のようにします。

$ curl ifconfig.io

シンプルに自分のグローバルIPアドレスが返ってきます。

標準出力に結果を表示させる場合はcurlが便利です。
しかし通常は標準ではインストールされていないようです。
たまに使うこともあるので、次のようにインストールします。

$ sudo apt update
$ sudo apt install curl

ifconfig.ioはアクセス元のさまざまな情報を返す小規模なWebサービスのようです。
ブラウザからアクセスするとこれら情報を確認することができますので、興味のある方は試してみてください。

<環境>
・chromebookのLinux(ベータ版)環境
Chromebook 311 / C721-N14N / Acer
Chrome OS バージョン: 84.0.4147.94(Official Build) (64 ビット)
chromebookのLinux(ベータ版)環境 / Debian 9: 9.12 (Stretch)
・crouton環境
Chromebook 11 / C740-F34N / Acer
Chrome OS バージョン: 84.0.4147.94(Official Build) (64 ビット)
crouton環境 / Ubuntu 18.04.4 LTS (Bionic Beaver)




2020/07/17

DAP Fiio M5での問題

中国Fiio Electronics社製のDAP、M5を使って音楽を聞くことがありますが、特有の問題がいくつかあるので、僕が気が付いた範囲で説明します。

1.アーティスト名の並び順
漢字、アルファベットが混在して、バラバラに並び、ソートできない。
おそらく漢字はピンインに変換され、アルファベットのものと混ざった上で、アルファベット順にソートされていると思われる。
解決方法はない。

2.曲順が乱れる
音楽ファイルのタグ情報によっては、アルバム内で曲順が乱れることがある。
以下の方針でタグ情報を整えることで解決する。
(1)mp3ファイルの場合、タグ情報をバージョンid3v2.3にして、アーティスト名、曲名、アルバム名が日本語の場合にエンコーディングがUTF16になるようにする。
(2)cuesheetファイルがある場合は削除する。
(3)flacファイルの場合、余分なタグ情報を削除する。

3.曲名が表示されない
曲名が表示されず、ファイル名が表示されるものがある。
解決方法はなく、ファイル名を「曲名+拡張子」にして、正しい表示に近づける。
UTF16で下位バイト0x00の漢字が、曲名の一文字目に使われている場合、この状況になると思われる。
該当する漢字は次のとおり。
伀倀儀刀匀吀唀嘀圀夀娀嬀尀崀帀开怀愀戀挀搀攀昀樀欀氀洀渀漀瀀焀爀猀琀甀瘀眀砀礀笀簀縀缀耀脀舀茀萀蔀蘀蜀蠀褀言謀谀贀踀輀退鄀鈀錀鐀销阀頀餀騀鬀鰀鴀鸀鼀」
(赤字は常用漢字+人名用漢字)
該当する曲をいくつか挙げる。
  • 曲名:葉にできない アーティスト:オフコース アルバム:over他
  • 曲名:愛 アーティスト:中島みゆき アルバム:御色なおし
  • 曲名:悪 アーティスト:中島みゆき アルバム:36.5℃他
  • 曲名:式(セレモニー) アーティスト:中島みゆき アルバム:回帰熱
  • 曲名:後の女神 アーティスト:中島みゆき アルバム:大吟醸他
  • 曲名:終電車 アーティスト:奥華子 アルバム:恋手紙他
  • 曲名:番星 アーティスト:奥華子 アルバム:BIRTHDAY他
  • 曲名:後の恋 アーティスト:奥華子 アルバム:BIRTHDAY他
  • 曲名:後の嘘 アーティスト:松任谷由実 アルバム:Cowgirl Dreamin'他

4.曲名が文字化けする
mp3ファイルで、文字コード0xd7「×」が使われていて、他の文字が全てアルファベットの場合に文字化けする。
DAP側の問題というより、この条件だと音楽ファイル側のエンコーディングをUTF16にすることが難しいという問題だと思われる。
解決方法は、
(1)タグ情報の曲名のこの文字の前後にスペースを入れる。
または、
(2)easytagで仮に曲名に日本語文字を入れて保存し、eyeD3で曲名だけを元に戻す(こうすると曲名のエンコーディングがLATIN1からUTF16に修正される)。
該当する曲をいくつか挙げる。
  • 曲名:ONE×TIME アーティスト:大塚愛 アルバム:LOVE LETTER他
  • 曲名:aisu×Time アーティスト:大塚愛 アルバム:LOVE is BEST
  • 曲名:CHU×CHU アーティスト:大塚愛 アルバム:LOVE FANTASTIC他
もし同種の問題と思われる現象があった場合にはmid3v2 --list-rawで調査する。