WSL

ICOM IC-7610

井上さん、なかなかやるな。元気で宜しい。

上記サイトの IC-7610 Technical Report (Vol2,3)が必見かな。一瞬トラ伎をみてる気分になったよ。

A/Dコンバーター(16Bit)  LTC2208   130MHz
D/Aコンバーター(14Bit)  ISL5961

LTC2208 アナログデバイスのA/D

ISL5961 インターシルのD/A

WSLの理由

Windows10のemacsを使って、オイラーのHPの駄文を書いている。英語で書いたのをググル様の翻訳機にかけて、日本語にしてる訳ではなく、備え付けのIMEのお世話になってる訳だ。

所が7月になるかならないかぐらいから、IMEが発狂を始めた。梅雨が思わぬぐらい早くacetateた、申し訳ございません、発狂の結果です。

どう書きたかったかと言うと、『aketyatta monodakara, atusade kuruttaka』 です。

候補が勝手に確定しちゃうと言う、早とちり症候群とでも言う状態。気を抜くと、めちゃめちゃな文章が出来上がる。(それ以前に、読むに耐えないと言う、意見があるのは承知)

何とかしないとね。ぐぐっても症例は見つからず。難病・奇病なんですかね? 蚊に刺されて、日本脳炎にでも罹患した。涼しくなるまで、もしくは、自然回復するのを待て?

そう言えば、マウスの右クリックが効きにくいと言う症状は、いつの間にか治っているな。 それから、evenceで開いたPDFファイルが、どういう状態(配置とかページ)だったか覚えていて、再度開くと再現されるんだけど、これも健忘症にかかる事が有るんだ。これは、まだら模様で発症する。ああ、愚痴っちゃったな。

そんな唯著な事は言ってRAMられません。また化けた。察して読んでください。

もずくを喰ってみろ(天婦羅がお勧め)。でもね、日本語を書くのは、emacsの上だけなのよ。ぐぐる様への質問ワードは、英語の単語を並べるだけっていう偏向ぶりなんで、別段苦労しない。

だったら、WSLを入れて、その中でemacs専用のmozcを動かすって手もあるな。

WSLを入れてみる

WSL(Windows Subsystem for Linux)をインストールする(バージョン1803対応版)

Windowsの隠れた機能を生かすんだな。rebootしたら、構成を変えてますって言われて待たされた。FreeBSDにlinuxのエミュレーションを組み込み段階だな。

それから、M$のショッピングセンターへお出まし。世はUbuntuを入れるのが定番みたいだけど、 emacsでmozcに実績のあるdebianを選んでみた。海の向こうから来るので、到着まで少々時間がかかる。それに店の会員でもないんだけど、自由に引き出せる。お前は何処の誰よなんていう、アンケートさえも無し。太っ腹なんだか、販促にやっきなんだか。

到着して、使う準備が出来ると、M$得意の通知で、起動する、ピン留めするのボタンが出てくる。 オイラーは、起動を選んだ、ユーザー名とパスワードを叩いて、取り合えず儀式は終了。 それにしてもM$は貧弱なterminalを使い回そうとするのね。呆れてしまいますよ。

WSLのUbuntu環境を日本語化する

日本語化は、上の通りにやればいいんだろうけど、取り合えず無視。

emacs25-nox,emacs-mozc-bin,mozc-server,mozc-dataを入れた。mozc.elはdebian機から持ってきた。

鎮座した場所は、下記。ひたすらこっそりと入っていますって雰囲気だ。

C:\Users\sakae\AppData\Local\Packages\TheDebianProject.DebianGNULinux_beebee\LocalState\rootfs

600Mぐらいの容量だった。この中に、LocalState/rootfs が、有り、容量の大部分を占めている。

使ってみる

起動すると、無様に横に長い端末が出てくるけど、どんだけーー?

sakae@atom:~$ stty -a
speed 38400 baud; rows 30; columns 120; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = M-^?; start = ^Q; stop = ^S;
susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc

ウナギの寝床じゃないんだから、そんな横幅は要らない。横幅を縮めたら、それに相応してsttyの結果も変化した。端末制御は、真面目にやってるみたいだな。

日本語もちゃんと表示出来てたしね@emacs。ならば、tmuxとかlvとかw3mも入れておくか。おまけでnkfもね。

sakae@atom:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          238G   88G  150G  37% /
none            238G   88G  150G  37% /dev
none            238G   88G  150G  37% /run
none            238G   88G  150G  37% /run/lock
none            238G   88G  150G  37% /run/shm
none            238G   88G  150G  37% /run/user
C:              238G   88G  150G  37% /mnt/c

Windows10が入っているSSDを、頑張れば全て使えますっていう事だな。余裕綽綽な使いっぷりだ。それから、Cドライブは、/mnt/c経由でアクセスしろって事だな。

sakae@atom:~$ ps awx
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:00 /init ro
    3 tty1     Ss     0:00 /init ro
    4 tty1     S      0:00 -bash
   19 tty1     S      0:00 tmux -u
   21 ?        Ss     0:00 tmux -u
   22 pts/0    Ss     0:00 -bash
   28 pts/1    Ss     0:00 -bash
   34 pts/1    S      0:00 emacs
   36 ?        Ss     0:00 /usr/bin/mozc_emacs_helper --suppress_stderr
   37 ?        Sl     0:00 /usr/lib/mozc/mozc_server
   43 pts/0    R      0:00 ps awx

こちらは、裏端末にemacsを上げて、日本語入力してる図。

sakae@atom:/$ cat /proc/cpuinfo
  :
processor       : 3
vendor_id       : GenuineIntel
cpu family      : 6
model           : 78
model name      : Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
stepping        : 3
microcode       : 0xffffffff
cpu MHz         : 2401.000
cache size      : 256 KB
physical id     : 0
siblings        : 4
core id         : 1
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 6
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov p
at pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtsc
p lm pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pci
d sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave osxsave avx f16c
 rdrand
bogomips        : 4802.00
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
sakae@atom:/$ dmesg
dmesg: read kernel buffer failed: Function not implemented

CPUはちゃんと4個認識してた。dmesgは、まだ、、、、って言ってるけど、本当に実装されるのかね? やる気のバロメーター測定に丁度良いな。

ip a で、Windows10が管理してるNICが全て確認出来るのね。inet6なんてのがちらほら出てるけど、apt installとかすると、IPv6でアクセスしてるんだよな。おかげで、ちょっと疎通まで時間がかかる。

sakae@atom:~$ cat /etc/apt/sources.list
deb http://deb.debian.org/debian stretch main
deb http://deb.debian.org/debian stretch-updates main
deb http://security.debian.org/debian-security/ stretch/updates main

本家もぐぐる様のご指導により、IPv6がデフォになったのか。日本のサイトへ行くように、捻じ曲げておこうかな。何、debian機からscpしてくるだけですからね。

C:\Users\sakae>
C:\Users\sakae>debian
sakae@atom:~$ ls -a
./   .bash_history  .bashrc    .ipython/  piki@     .ssh/     .tmux.conf
../  .bash_logout   .emacs.d/  .mozc/     .profile  test.doc  .w3m/

基本的な起動方法は勿論、スタートの所にあるdebianマークをダブルクリック。Windowsのターミナルからdebian君を呼び出すのも有りだ。この他にwslとかbashでも起動するけど、Windows側のファイルとWSL側の ファイルが混ざる可能性が有るので、お勧め出来ない。

それから、コンソールの色が醜いとか言われてるけど、それって lsの色付きの事だろう。 オイラーは、ls -F になるようにaliasを登録しといた。

ターミナルの文字サイズがデフォだと16だったので、少し大きく20にした。(端末のアイコンをクリックして設定を開き、同時に行と列数も変更。最後にOKを押す)

これでw3mを使って、スイスイとネットの海を泳ぎきる事が出来るぞ。昔はWindowsでw3mなんて、夢のまた夢だったんだけど、今はあっという間だ。まさか、夏の夜の夢じゃないだろうね。

再インストールとか

管理者のPowerShellで行うそうな。

PS> lxrun /uninstall /full /y
PS> lxrun /install

壊れてしまっても、安心かな?

管理者権限の端末を開くには、Win+R して、cmdまで入力。Ctl+Shift+Enter 脅しの文句が 出て来るけど、運を天に祈ってからOKを押す。これが、Windows版のsudo相当だな。

そりゃ、微妙に違うよ。普通のユーザーが開いている端末をroot権限にするには、タスクバーにある端末のアイコンをCtl+Shiftを押しながらクリック。タスクバーに盾が点滅して、運を天に 祈るか聞かれるよ。こちらの方がsudoっぽいな。

Windows 10のWSL環境を初期化してクリーンな状態に戻すなんて方法も有るのか。段々便利になっていくな。

調査

良く戦えるように、敵を知っておこう。まずは、大事なPATHから。

sakae@atom:~$ echo $PATH | sed 's#:#\n#g'
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
/mnt/c/Program Files (x86)/Intel/iCLS Client
/mnt/c/Program Files/Intel/iCLS Client
/mnt/c/Windows/System32
/mnt/c/Windows
/mnt/c/Windows/System32/wbem
/mnt/c/Windows/System32/WindowsPowerShell/v1.0
/mnt/c/Program Files (x86)/Intel/Intel(R) Management Engine Components/DAL
/mnt/c/Program Files/Intel/Intel(R) Management Engine Components/DAL
  :

ゲームエリアがPATHに入っているのは、ベル研からの伝統? /mnt/c/以下のWindowsに伝統的なエリアも、しょーがないから、許してやるかって事だな。

root@atom:/# umount /mnt/c
root@atom:/# find / -type f | wc
  20021   20021  851763
root@atom:/# find / -type d | wc
   2150    2150   64795

続いて、WSL内のファイルとディレクトリィーの数。計数に当たって、Windows側はのけ者にしてる。

root@atom:/# apt list --installed | wc

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

    274    1093   15999

ファイルの数なんて、入れるパッケージによって違ってくるだろう。ごもっともです。そこで、申し訳程度に入れているパッケージ数を計量しときました。この間お試しで入れたUbuntuなんだけど、取り合えず使いそうな物をどんどん入れたら、1849個も有ったよ。WSL側は、いかに慎ましいか分かると言うものだ。

aptはいまだに、インターフェースが固定化してない。これもそれも、GnomeだとかKDE陣営からの容赦ない改変依頼があるからでしょう。一体、何時になったら落ち着くの?

執筆環境

Windows10では、Cドライブ直下にUsersだかのdirが有り、その下に各ユーザーのhomeが割り当てられる。homeの中は、Windows流の管理がなされている。

ウブとかでGUIを入れると、home直下にDesktopだとかMusicとかが勝手に作られるのは、Windowsの真似だ。ああ、Windowsユーザーに違和感が無いようにっていう作戦か。

オイラーは、どうもこの本宅の配置が気に要らない。dir名ぐらいは、自分勝手にさせてよってスタンス。そこで、Cドライブ直下に別荘を建てて、普段はそこで暮らしている。本宅よりも妾宅の方が居心地が良いので、めったに本宅には帰らない。

Windows 10のWindows Subsystem for Linux(WSL)を日常的に活用する

こちらの方の経験だと、Windows側のアプリが、WSLのrootfs以下を触ると不幸な事が起こるそうだ。逆にWSL側のアプリがWindows側のファイルを触る場合、/mnt/c/ 経由ってのが鉄則。

既に妾宅内には、血圧診断室とか書斎とか、PDF用の棚とか金庫とか色々な物がオイラーの設計で配置されてる。WSL側から触るのは、書斎限定って事にしておこう。

sakae@atom:~$ ls -l piki
lrwxrwxrwx 1 sakae sakae 16 Jul 10 05:42 piki -> /mnt/c/mine/piki/

bashの補完でピーピーと五月蝿いので、/etc/inputrcのコメントを外す

# do not bell on tab-completion
set bell-style none
set bell-style visible

原稿が書けるようになったら、ついでに原稿をhtmlに変換してしまいたい。文法違反が有れば、その場で指摘してくれるしね。その為のMakefileを用意し、Windows上で今まで使っていた。 ちょいと、内容を変更すれば、WSL上からも使えるだろう。

aa:
        ./piki template.html aa.piki > aa.html

の中のpikiは、Windows10のアプリ。

aa:
        ./piki.exe template.html aa.piki > aa.html

exeを付けて、pikiはWindowsのアプリだからねと明示してあげる。これで佳いと思っていたら、肝心のmakeが無い。今までは、makeをWindows上のunix詰め合わせセットbusyboxにお願いしてたんだ。それにもちゃんとexeを付ければいいのかな。

将来的にはbusyboxを撤去するんで(だって本物のdebian君が居るからね)、debian内にmakeを用意しておこう。こうして、少しづつ拡張されてくのさ。

あっ、Debianな人が居た。

DebianをWindows10上で動かす その8: しばらく使った感想

まとめを書いておられた。オイラーも書いておくか。FILEのI/Oは遅いという実感。apt installした時、展開と登録が肌で感じる程遅い(と思う)。がんがんコンパイルとかやるのは、止めた方が、精神衛生上良いと思うぞ。

せいぜい実用と思うのは、物書きみたいな、人間相手の仕事です。それぐらいにしておけば幸せになれると思う。

error

Windows10起動後、すぐにはWSLが起動しない事が有った。

C:\Users\sakae>debian
Installing, this may take a few minutes...
Installation Failed!
Error: 0x800703fa
Press any key to continue...

暫くすると、ちゃんと起動出来ると言う不思議な現象。ちょいと世界のみんなに聞いてみたら、

sc stop LxssManager
pause
sc start LxssManager
pause
sc queryex LxssManager
pause

これを確認してみってのが有ったぞ。これって、Windows用のダエモン君コントロールじゃないですか。こういうダエモン君が動いて、取次をしてくれてるんだな。

ならば、本家のシアトルだかに尋ねてみるか。

修正方法 0x800703fa (解決済み)

こんなのが上がってた。提示されてる修正アプリを使って診断するのは無料。でも修復するには、30ドル払って会員になれ。ヤクザな商売してるな。おまけに、ロゴが紛らわしい。

マルウェアと言うか、身代金払えと同列。日本にも有るよね。無料でシロアリ診断します。縁の下に潜ってから、おばーちゃん、ほらこんなに沢山シロアリが巣食ってました。駆除しないと、家が潰れちゃうよ。駆除代は、100万円です。マッチポンプ。

たまたま、タスクマネージャーを見たら、暴走してCPU資源を食いつぶしているアプリが有った。プロパティ(困った時の右クリックとかCtlキーとかとのコンビネーション)を見たら、正体判明。何とあの石屋さん製だった。

C:\Program Files\Intel\iCLS Client\IntelPTTEKRecertification.exe

御同友がいないかと、聞いて回ったら、 Intel(R)PTT EK Recertification ServiceによるCPU負荷が高かった件 いましたね。オイラーだけじゃなくて安心しました。(するなよ!)

これを見ると、 What is IntelPTTEKRecertification.exe? みんなウィルスかマルウェア認定してます。役立たずの大飯喰らい!!

取り合えず、削除して様子を見る事にする。Windows10の不調が治る事に期待しましょ。

今後の参考のために

Windows がなんか重いときにコマンドで調べる(WMIC PROCESS)

sakae@atom:~$ tasklist.exe /v /fo csv | head
"Image Name","PID","Session Name","Session#","Mem Usage","Status","User Name","CPU Time","Window Title"
"System Idle Process","0","Services","0","8 K","Unknown","NT AUTHORITY\SYSTEM","4:48:52","N/A"
"System","4","Services","0","1,392 K","Unknown","N/A","0:00:32","N/A"
"Registry","96","Services","0","5,872 K","Unknown","N/A","0:00:00","N/A"
"smss.exe","448","Services","0","1,188 K","Unknown","N/A","0:00:00","N/A"
"csrss.exe","596","Services","0","5,120 K","Unknown","N/A","0:00:01","N/A"
"wininit.exe","680","Services","0","6,296 K","Unknown","N/A","0:00:00","N/A"
"csrss.exe","688","Console","1","5,540 K","Running","N/A","0:00:08","N/A"
"winlogon.exe","776","Console","1","9,984 K","Unknown","N/A","0:00:00","N/A"
"services.exe","812","Services","0","9,908 K","Unknown","N/A","0:00:05","N/A"

加工は、ご自由に。

sakae@atom:~$ tasklist.exe /v /fo csv | head | cut -f1,2,5,8 -d','
"Image Name","PID","Mem Usage","CPU Time"
"System Idle Process","0","8 K","5:06:29"
"System","4","1,"N/A"
"Registry","96","6,"N/A"
"smss.exe","448","1,"N/A"
"csrss.exe","596","5,"N/A"
"wininit.exe","680","6,"N/A"
"csrss.exe","688","5,"N/A"
"winlogon.exe","776","9,"N/A"
"services.exe","812","9,"N/A"

並べ替えとかをちゃんとすれば、ps ぽくなるな。 ちゃんと作って、wpsとかで登録しておこうかな。それがunix屋の道だもの。

こんなのも有るな。

Windows 10のLinux互換環境WSLからコマンドプロンプトのプログラムを呼び出す

Windows 10のコマンドプロンプトからWSL上のLinuxコマンドを呼び出す