2016年11月11日金曜日

なんだか画面が固まっている。マウスも受け付けない。キーボードも死んでる。

それ固まってますから


記憶の限り、6年ぐらいこんなかんじなのですが、次のように設定して回避してます。たぶんいちばんカンタンな方法だから採用しています。(AMD RADEONだから?!)



新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T
inxi -Sz
System:    Host: phantom Kernel: 4.4.0-47-generic x86_64 (64 bit) Desktop: Cinnamon 3.0.7        Distro: Linux Mint 18 Sarah


#dconf-editorをインストールして起動

sudo apt install dconf-editor
dconf-editor

起動後(図のように)

org > gnome > desktop > lockdown で
disable-lock-screen をチェック(スクリーンロックしない)

これで固まらない。当方では目覚ましがスペースバー。それで起こせるようになります。
リビングPCなのでまぁいいかです。外にもっていくノートPCだとあまりよろしくないかもですね。

●追記:その後の設定

新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T
●その数日後
$ inxi -Sz
System:    Host: phantom Kernel: 4.4.0-47-generic x86_64 (64 bit) Desktop: Cinnamon 3.0.7
           Distro: Linux Mint 18 Sarah

カーネルは同じなのですが、うまく寝ないし起きなくなってます。よくわからないけれど、次の設定にして様子をみることにしました。


太字部分のチェックを外して様子見。根拠レス。





2016年10月27日木曜日

Windows起動後に、ubuntu/MINTが起動しなくなった場合の復活の呪文

復活の呪文:事実上Windows10の場合。NTFSがらみで一般ユーザーでのXが起動しなくなった場合。

単純にXの起動までできるようにする場合の簡単対応。ルート権限の場合は、sudoは不要ですがあっても問題ないです。

症状としては、Xが起動しないでコンソールで止まってしまう。

対応としては、/etc/fstabから/(root)と/home以外のntfsマウント行を削除(rem)すると起動するってことになります。



コンソールで、fstabを編集し再起動します。その前にオリジナルをバックアップしておきます。
cd /etc ; sudo cp fstab fstab.original
sudo nano /etc/fstab
#コメントアウトしない行は、/と/homeのみ、大抵のひとはそれ以外は一旦remってだいじょうぶなはず。オリジナルに書き戻すので、2行残してあとは削除ってかんじでばんばん、と。

復活の呪文:ntfsfix

ストレージを6台接続している場合、自己責任でてきとーに済ませたい私の場合は、以下をまとめて実行。一旦Xで再起動する場合です。しない場合は、上記のコンソールで一括発行でもよいです。無駄な部分がありますね。aと数字は各自調整してください。間違えても何もしないだけです。NTFSに対してのみ効果があるわけで。

末尾に「NTFSをリストアップしたうえで、必要なコマンドを表示する」っておまけを記述しました。

どうなっているか見てみよう。
sudo fdisk -l | grep -P 'NTFS|Microsoft'

#以下、治してみよう。理解したうえで発行してください。
sudo ntfsfix /dev/sda1
sudo ntfsfix /dev/sda2
sudo ntfsfix /dev/sda3
sudo ntfsfix /dev/sda4
sudo ntfsfix /dev/sdb1
sudo ntfsfix /dev/sdb2
sudo ntfsfix /dev/sdb3
sudo ntfsfix /dev/sdb4
sudo ntfsfix /dev/sdc1
sudo ntfsfix /dev/sdc2
sudo ntfsfix /dev/sdc3
sudo ntfsfix /dev/sdc4
sudo ntfsfix /dev/sdd1
sudo ntfsfix /dev/sdd2
sudo ntfsfix /dev/sdd3
sudo ntfsfix /dev/sdc4
sudo ntfsfix /dev/sde1
sudo ntfsfix /dev/sde2
sudo ntfsfix /dev/sde3
sudo ntfsfix /dev/sde4
sudo ntfsfix /dev/sdf1
sudo ntfsfix /dev/sdf2
sudo ntfsfix /dev/sdf3
sudo ntfsfix /dev/sdf4

HDD/SSDを1台1区画パーティション分けなしって状態でつかっている人なら(わりと最近ではそういう人が多いと思いますが)、 sdX1 みたいにするだけですね。

■覚えておくといいのは以下ぐらいかも。



新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T

#再起動せずに、修正したfstab記述通りにストレージをマウントする
#sudo mount -a

#fstabを任意のエディターで編集(最低一つのコンソールエディターは使えないと困る)
#sudo nano /etc/fstab
#sudo emacs /etc/fstab
#sudo vi /etc/fstab

#今PCに接続されているNTFSパーテションをリストアップする。必要なsdx1はこれでわかります。
sudo fdisk -l | grep -P 'NTFS|Microsoft'

試しにぺったんして、一度発行してみておくといいです。表示するだけです。MBRとGPTの両方がこれでリストアップできます。

#続き:リストアップしたうえで、必要なコマンドを表示する。
sudo fdisk -l | grep -P 'NTFS|Microsoft' | perl -pe 's|^(/dev/sd.\d\s).*?$|sudo ntfsfix $1|' | cat
#最後のcatはあえての蛇足。catをshに変えると実行できます。このコマンド行を/home/sos.txtなんかに書き込んでおくと困ったときに参照できますね。すぐに忘れるひと向け(自分向け)。

下記を斜め読みした範囲でいえば、Windows側のハイバネ切ったり、ディスク周りのデフォ設定を見直すといいんでしょうかね。W10の、それもこの夏以降のアップグレードで基本仕様が変わったのでしょう。以前はまったくこの症状は自分はでたことがないのですが、報告によれば以前からありますね。


http://askubuntu.com/questions/462381/cant-mount-ntfs-drive-the-disk-contains-an-unclean-file-system

#同じ試練が立ちはだかったので、試しに自分の実環境で実行した結果。
sudo fdisk -l | grep -P 'NTFS|Microsoft' | perl -pe 's|^(/dev/sd.\d\s).*?$|sudo ntfsfix $1|' | sh
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sda1 was processed successfully.
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdb1 was processed successfully.
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdb2 was processed successfully.
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdc1 was processed successfully.
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdd1 was processed successfully.



 

2016年8月17日水曜日

Linux Mint 18 へのアップグレードは、2つの方法があります。17.xから18へ。

大事なことなので、書いておきます。大雑把にいえば表の通り。オプションは2つです。アップグレードしない(=17.xのまま使う)を含めると3つです。

5ヶ月後のまとめ:何度かインストールをしてみて:



やはりB:が良いと思います。 めんどうなようですが.bashrc、.profileなどを編集しつつひとつひとつ書き戻していくほうがいいかと。/config 配下なども同様に作業します。


A:17.3 OS起動状態から、直接アップグレードする。コマンドを複数叩く。

 △
時間長い。USB/DVD不要。推奨度低い。ISOダウンロード不要。ほぼ全ファイル置換の勢い。17.3のカーネルも残る(不要なら削除)。推奨度低い。


B:DVD/USBでブート。クリーンインストールして、必要な情報、設定を書き戻す。

 ○
結果的に時間短い。基本的にクリーンインストールなので美しい。DVD/USBメディア作成が必要。ISOダウンロード必要。どちらかといえば推奨。細部にこだわったカストマイズをするには時間が必要だが美しいのでよしとする。

※好みは「私の好み」です。アップグレードしないことも含めて、検討されますように。私は前にしか進まない性格なので、迷わず18ですけれど。

このふたつです。前者はあまり推奨されていないようです。先日、A:を実行してみました。

更新作業中に、動画を複数同時再生しながらチェックしていたせいもあるんですが、3時間位かかりました。


  • B:の ほうが良かったかなと思います。B:はインストールできるのは確認できますので、バックアップと書き戻し作業(ソフトウェアセレクション含め)だけが問題になりますね。そのうち細部を確認してみます。
  • 追記:B:やってみました。よく考えてみればこれは普通の方法ですね。皆さん実施している方法のような気がします。ドットファイルを書き戻したりしながら、元のカスタマイズ環境までもっていくというわけです。
  • A:をやってみてから、うまくなければ、B:でもいいかも。安定したクリーンな環境を手に入れるには、B:ですよね。どう考えても。 いずれにせよ。A:でもB:でもうまくいっています。
  • パッケージの類は限りなく共通なのですが、A:(実質クリーンインストール)ではサムネイルがほぼ完璧に生成されているけれど、B:ではうまくないです。ひととおりチェックしてみたんですがお手上げ。  thumbnailという名前のパッケージをひとつづつ入れていったら、治りました。名前は忘れました。^^;

問題点、覚えているもの。

  • AMD fglrx が残ってしまった(Cinnamonがソフトウェアレンダリングでしか起動しなかった)。⇒apt remove fglrx* で削除。この問題は解決。
  • その他幾つか手動で直したのですが、覚えていません。イメージしていたものはパーフェクトな移行だったので、アレ、これならB:の方が時間も短くて済んでよかっただろうな、と考えたのは覚えています。

以下のリンクは必ず読んで実施したほうがいいと思います。めんどくさがらずに。

How to upgrade to Linux Mint 18

https://community.linuxmint.com/tutorial/view/2
https://community.linuxmint.com/tutorial/view/2316

SSDに関していえば、データ、全OS、複数世代のバックアップを常にとっていますので、仮に失敗してもすぐにもどせばいいんです。バックアップはしっかりとりましょう。

2016年7月13日水曜日

自然言語処理、かぼちゃ、めかぶ。楽しい。

日本語形態素解析


日本語形態素解析。いま、とても幸せです。実に楽しいです。子供の頃の自分の前にあったらと思います。笑)、せめて大学の時。16.04にはうまくcabochaが入らなかったので、ほぼ素の14.04にいれてみました。懲りずにリブートしてみたら、すんなりcabochaもmakeが通りましたね。特に何をしたというわけではないんですが。16.04LTSで使います。

導入したのは、以下の3つでそれぞれ2016-07-13時点最新版です。

  • mecab
  • cabocha
  • crf++

かぼちゃ。最高です。



インストール完了後の出発点でこのレベルなので、楽しくって仕方がないです。やりたいことは山ほどあるので。
         桜の-D      
            樹の-D    
            下には-----D
                屍体-D |
          《したい》が-D
          埋まっている!
EOS
                 -----D                                                          
              これは---D                                                          
            信じていい-D                                                          
          ことなんだよ。-----------------D                                        
                      何故---------------D                                        
              《なぜ》って、-------------D                                        
                          桜の-D         |                                        
                            花が-----D   |                                        
                        あんなにも---D   |                                        
                              見事に-D   |                                        
                            咲くなんて-D |                                        
                            信じられない-D                                        
                          ことじゃないか。

めかぶの場合

自分のやりたいことに対してはローレベル向けなので、かぼちゃのほうが使いやすいかも。 「なんだよ」が全部区切られてしまう。

桜      名詞,一般,*,*,*,*,桜,サクラ,サクラ,,
の      助詞,連体化,*,*,*,*,の,ノ,ノ,,
樹      名詞,一般,*,*,*,*,樹,キ,キ,,
の      助詞,連体化,*,*,*,*,の,ノ,ノ,,
下      名詞,一般,*,*,*,*,下,シタ,シタ,,
に      助詞,格助詞,一般,*,*,*,に,ニ,ニ,,
は      助詞,係助詞,*,*,*,*,は,ハ,ワ,,
屍体    名詞,一般,*,*,*,*,屍体,シタイ,シタイ,,
が      助詞,格助詞,一般,*,*,*,が,ガ,ガ,,
埋まっ  動詞,自立,*,*,五段・ラ行,連用タ接続,埋まる,ウマッ,ウマッ,うまっ/埋っ/埋まっ,
て      助詞,接続助詞,*,*,*,*,て,テ,テ,,
いる    動詞,非自立,*,*,一段,基本形,いる,イル,イル,,
!      記号,一般,*,*,*,*,!,!,!,,
EOS
       記号,空白,*,*,*,*, , , ,,
これ    名詞,代名詞,一般,*,*,*,これ,コレ,コレ,,
は      助詞,係助詞,*,*,*,*,は,ハ,ワ,,
信じ    動詞,自立,*,*,一段,連用形,信じる,シンジ,シンジ,しんじ/信/信じ,
て      助詞,接続助詞,*,*,*,*,て,テ,テ,,
いい    動詞,自立,*,*,五段・ワ行促音便,連用形,いう,イイ,イイ,いい/云い/言い/謂い,
こと    名詞,非自立,一般,*,*,*,こと,コト,コト,,
な      助動詞,*,*,*,特殊・ダ,体言接続,だ,ナ,ナ,,
ん      名詞,非自立,一般,*,*,*,ん,ン,ン,,
だ      助動詞,*,*,*,特殊・ダ,基本形,だ,ダ,ダ,,
よ      助詞,終助詞,*,*,*,*,よ,ヨ,ヨ,,
。      記号,句点,*,*,*,*,。,。,。,,
何故    副詞,助詞類接続,*,*,*,*,何故,ナゼ,ナゼ,,
って    助詞,格助詞,連語,*,*,*,って,ッテ,ッテ,,
、      記号,読点,*,*,*,*,、,、,、,,
桜      名詞,一般,*,*,*,*,桜,サクラ,サクラ,,
の      助詞,連体化,*,*,*,*,の,ノ,ノ,,
花      名詞,一般,*,*,*,*,花,ハナ,ハナ,,
が      助詞,格助詞,一般,*,*,*,が,ガ,ガ,,
あんなに        副詞,一般,*,*,*,*,あんなに,アンナニ,アンナニ,,

桜の樹の下には/梶井基次郎 青空文庫から貼り付けてみました。 

インストールメモ


UTF-8オプション明示指定で./configure 

http://kumagonjp2.blog.fc2.com/blog-entry-82.html 

makeした順番は、mecab 、crf++ 、cabocha


2016年7月7日木曜日

Grub2をめぐるあれこれ。テーマ、背景、フォントなどを考えてみる

Grubと戯れるという意味のない日常

追記:最近急にアクセスが増えだした頁です。おそらく4Kモニターを導入して、メニューの文字が小さすぎるから、ここにたどり着いているのはないかと思っています。もし、そうならあまりおすすめはしませんが、grub-customizer がカンタンでよろしいかと思います。



さて、話は戻って、だらだら、とLinux運用上、[不必要なこと]を述べていきます。まず、Debian/ubuntuなどのデフォルトブートメニューの「四角の罫を抜きたい」、そう思い立ちました。


こういう風に、素朴にしたかっただけなんですが、シンプルな方法に至るまでが思いの外めんどくさかったという記録です。わかってしまえば簡単でした。現在はこのように表示されます。
たとえば、moebuntuさん、TOYさんの絵を使わせてもらってイメージを作ります。だいたいこんな風になるというのを下に示します。(ピースサインの女の子の壁紙 イラストの作者:TOY さん http://moebuntu.blog48.fc2.com/)

手抜きなので、実際のブートメニューの絵ではありませんが、こんなかんじです。下にヘルプ。自作テーマを利用すれば絵の中心オブジェクト(たとえば人物)の位置に応じて、メニュー位置(文字)を調整したりができるようになります。私は壁紙は原則使わない #000233 な生活25年ですが、ブートメニューの一瞬だけはまぁまぁ印象的にしたい派です。

枠線がはいらないのでシンプルで、地のイラストが引き立つというのがミソです。また可能な限りシステムファイルをいじらないのでカスタマイズに起因するgrubの不調可能性を極力排除します。

本論:14.04LTS及び16.04LTSで検証済み


昨日失敗して気を取り直して、Grubが生成に使うもとになるフォントを再生成しました。今日は、14.04LTSです。うまく行きました。フォント名を間違えていたのかもしれないですね。ともかく、狙いどおりです。目標は、

  • 基本的に、/etc配下のファイルは可能な限り書き換えない。
  • できれば自作テーマも使いたくない。
  • デフォルト表示から文字だけのシンプルなものに。罫線消したい
  • 日本語の文字列表示も化けさせたくない。
  • 日本語の文字の表示間隔もずらしたくない。適正なものに。
  • 背景画像は自由に設定するので、置き場所は、/home配下に。
です。これらの条件は、すべてクリアできました。今日は目視しつつ作業。

ただ新たな問題がひとつ。空グリフになっただけなのでレイアウトは変わらないと思ったのですが何か微妙に、ほんと微妙に変わっている気がする。気のせいかも。

結果、ほぼ、理想的なブートメニュー及びその更新環境が完成しました。 メンテナー提供ファイルが変わっても基本的に常にそれを受け入れてもだいじょうぶ。あまり凝ったことをしても仕方ない。管理がめんどうになるだけです。

特に、moebuntuな方々におすすめします。debian系のデフォルトから罫線抜いたほうが、絵が引き立つと思いませんか。

キャプチャイメージは、 これです。

背景画像のフォーマット種類と色数など

3年前は覚えていませんが、現在Grub2はメジャーフォーマットにはフルに対応している気がします。表示できなかった絵はありません。といっても、GIMPで通常オプションで出力したフォーマットのみしか使っていませんが。それで間に合うので自分の中ではフルです。

サイズは、10MBを超えていても特に問題なし。習慣的には256色に減色したりもしますが、現代では意味ないですね。たぶん。 GIMPでPNGってのが最近のお決まりの生成コースです。だいたいFHD全色で2MB程度。10MBというのは、4K用に作成したものでチート(システムリクエストでリブートする手順のメモ行とか、SOS時に思い出したいメモなど)を書き込んだ「絵」です。その絵を表示させることで知らないうちに刷り込むというわけで。わはは。

Grub用フォントを生成する

まず、Grub用フォントをアンダーコントロールに。
新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T

サンプル=UbuntuMonoからサイズ24のフォントを作る場合
grub-mkfont --verbose --range=0x0-0x7f --size=24 --output=./ubuntumono-b24.pf2 /usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-B.ttf

ubuntu/mintなら、フォントの配置、フォント名がこれで合致しますので、
たとえば、デスクトップでこのコマンドを発行すると、

ubuntumono-b24.pf2

という、Grub用フォントができます。指定しているオリジナルはおおざっぱにいえば日本語部分を含んでいないフォントです。いい忘れましたが、GrubのフォントはTTFやOTFではないのです。それが前提になります。

上記コマンドを発行する上でのポイント、方針は、

  • アスキー文字だけにして、それ以外は空にします。結果、罫線が化けないし、既存テーマのままでよい。半分嘘です。この作戦はフォントサイズを選ぶ上、ロケールが日本語だとうまくないです。結局、自分のウォンツから、この段階でThemeそのものをあらたに作成しました。笑)*1
  • フォントはモノ(MONO)を選んだほううがいいと思います。いわゆる等幅アルファベットです。罫がずれようが何しようが気にならないひとは、いろいろ試してみてください。今、最終的に自分が使っているのは、Takaoから一部グリフを抜いたGrub用に特化したフォントです。日本語も表示できます。
余談:注*1)デフォルトのテーマのメニューエリアがボックスになっていまして、そこが文字罫線だったりしますね。 この存在がばけなくても私の美意識上許せないので消したい。デフォルトはあまり弄りたくない。そこで

  • 既存フォントそのものから、グリフを削除して、それから生成。--->フォント存在しない印がでる
  • 既存フォントそのもののグリフを空白に置き換えて、それから生成。--->これも意図通りにならず。※指定フォント名を間違えていただけで考えた手順に間違えはなかったです。
よって、めんどくさいので、安直にGrub2テーマそのものを作成しました。罫線/Boxの抑止。文字と背景画像のみ。メニュー配置が右側へ65%ふってある、程度です。いうほどわがままさんじゃありません。
Grubをいじって思うことは、gfxmode 24bitだろうがなんだろうが、フォントのレンダリングが汚いことには代わりはないので、こだわっても仕方ないな、ということですかね。4K導入後にgrubのアップデートがあったので都合設定ファイルをいじってみたのですが、超綺麗!! WindowsのブートマネジャーはXGAなんですがGrubでは3840*2160でフォントも十分綺麗です。 Windowsのブートマネージャでも同じだし、「絵」は十分綺麗に表示されるので、ま、いいか。デフォルトでよいならそれが一番です。  いいたいことは、Grubは美しかったです。

テーマ作り終えてから画像検索でググッて気がついたのですが、ディストリビューションによってはデフォルトのブートメニュでお気に入りになりそうなのがありました。そこから流用すれば速かったかも。Fedra系ですが。

また、Gnome-lookあたりのテーマにしても、けっきょくただ背景画像を変えた「だけ」、フォントを変えた「だけ」が「大半」なのでちょっとおもしろくないです。burgなら設定も含め自由度が少し高いので使っていたのですが、実質ディスコンなのであれ。カスタム支援としての、Grub-Customizerは昔はお世話になったけれど、今は不要。むしろないほうがいいかもです。一時よりエラーが減ったもののまだエラーが多いので信頼に欠ける気が若干します。そんなかんじ。仲のいい友達になら、使うな、と助言します。友達以外なら紹介はする、2枚舌。もっともPPAですしね。そのあたり注意が必要です。

フォント生成;一括の呪文

#結論追記:一括の呪文 bash

mkdir fonts4grub  ; cd fonts4grub

for i in {8..144}; do grub-mkfont --verbose --range=0x0-0x7f --size="$i" --output=./ubuntumono-b"$i".pf2 /usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-B.ttf ; done ;

緑のフォントファイル名をお好みに。outputファイル名も適宜。
これを実行すると1秒後ぐらいには137個のgrub用フォントができます。
サイズは8Kモニターでも満足できると思いますが、16K時代に備えて、なんなら512ぐらいまで生成しておくといいかもしれません。必要なものだけ残してあとは捨てればよいです。

このテストファイルで、 3,342,336バイトです。実際にはくみ込んでいません。使わないフォントなので。

長い割り込みでしたが、話はフォント生成にもどります。
テストする場合は、黄色の3箇所だけ書き換えて試してみてください(冒頭に戻る)。この段階ではGrubに組み込むわけではありません。生成だけですからブートしなくなるなんてことはないです。一旦生成したら、あとはお好きなように。著しく小さなサイズのフォントです。アルファベットプラスアルファ以外は表示できないです。逆にみればそれらは空白なのでいいのです。(困ることもあります。)

サイズは、16、20、24と3種類ぐらいあるといいかも。まとめて作っておけばいいので、数字をかえてみるとよいです。そして、

などといいつつ自分用は、これだけ説明的には用意しています。わはは。
ubuntumono-b16.pf2  ubuntumono-b24.pf2 ubuntumono-b30.pf2  ubuntumono-b48.pf2 ubuntumono-b20.pf2  ubuntumono-b26.pf2 ubuntumono-b32.pf2  ubuntumono-b64.pf2
/boot/grub/fonts にでもコピーしておくといいかも。自分はそうしています。パーミッションは644。

#実行例 ひとつづつフォント作成する場合
grub-mkfont --verbose --range=0x0-0x7f --size=24 --output=./ubuntumono-b24.pf2 /usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-B.ttf 
Unknown gsub font feature 0x61667263 (afrc)
 
Font name: Ubuntu Mono Bold 24
Max width: 12
Max height: 21
Font ascent: 17
Font descent: 4
Number of glyph: 100


2016年7月6日水曜日

ハードウェアアクセラレーションを有効にする。 Linux MINT 18 ubuntu 16.04LTS

Linux MINT 18、ubuntu 16.04LTS でVDPAU(ハードウェア再生支援)を有効にする:3日後削除

さらに追記;2017/02/10

本日付のGPUドライバの刷新で、動作が非常によくなりました。VDPAUなどは有効にしています。

追記の追記:2017/01

4Kモニターに変更してからいろいろテストしました。結論をいえば、ハードウェアアクセラレーションを無効にしてソフトウェアデコードしたほうがよい。ドライバそのものが遅すぎる気がします。RADEONの話です。他のGPUの方は違う印象だと思います。
もどしました。

当方の今日の環境:AMD RADEON R7 360

末尾参照。VA-APIとの比較(以下、過去稿、記録のため削除せず)


試した範囲でいえば、VDPAU>VA-APIです。後者は厳しい処理で目視でわかる程度にコマ落ちします。したがって、当面、mesa-vdpau ドライバを導入します。HW支援が選べるアプリケーションでは、VDPAUを明示的に指定して用いることにしました。

追記:削除しました。テストしている範囲ではうまくいっていました。
mint 18で試して、メインのubuntu16.04にも導入し、 メインから結局削除。mint18には残しておきます。


当方の環境ではデフォルト状態がベストということなのかなと。悔しくなんかないんだからね。テストしたのはmpvのみです。多少のCPU負荷に目をつぶれば、HWアクセラレーションを効かせない設定にしておけばいいだけともいいますね。


これまで通り、HW支援を効かせたい場合はデフォルトでVA-APIを選択することにしました。実験環境のmint18の方ではVDPAUでしばらく試行錯誤しながら様子をみてみることにしました。よくよく考えてみれば、VDPAUの必要性はとりあえずないので、デフォルトの状態が一番なのかな、と。

ただし、ffmpegでは「Supported hwaccels: vdpau」なのが少々。

ドライバを導入します。

新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T

sudo apt-get install mesa-vdpau-drivers vdpauinfo


再起動

※ドライバの削除は次のコマンドでよいと思います(私は結局削除しました)

sudo apt remove mesa-vdpau-drivers vdpau-driver-all vdpauinfo
テストします。
mpv --vo=vaapi *OP*
mpv --vo=vdpau *OP*
mpv --vo=opengl *OP*
mpv --vo=opengl-hq *OP*
mpv --vo=xv *OP*

*OP*というのは、x264ファイルです。数秒動画だとCPU負荷がわからないので1分以上のファイルを選んだほうがいいですね。いろいろな種類のファイルも試したほうがいいかもしれません。コンテナ、コーデックなど変えてみたりしながら。
mpvのconfigの設定は済ませていることが前提です。リンク先サンプルはHW支援をオフにしています。hwdec=vdpauなどに書き換えて使ってみてください。


定義ファイル作成がうざったいなら、コマンドラインで指定してテストでもよいです。こんなかんじ。1行です。

mpv --vo=opengl --hwdec=vdpau --hwdec-codecs=h264,vc1,wmv3,mpeg1video,mpeg2video *OP*

H.264のテストなので、以下がシンプルで等価。たぶん。
mpv --vo=opengl --hwdec=vdpau --hwdec-codecs=h264 *OP*



テストします。 (configに設定を書いています)
mpv *OP*
   cplayer: Auto-loading profile 'vo.opengl-hq'
   cplayer: Playing: DOPx264.mp4
   cplayer:  (+) Video --vid=1 (*) (h264)
   cplayer:  (+) Audio --aid=1 --alang=jpn (*) (flac)
   cplayer: AO: [alsa] 48000Hz stereo 2ch s32
        vd: Using hardware decoding (vdpau).
   cplayer: VO: [opengl-hq] 1920x1080 vdpau
  term-msg: FPS: 23.976
statusline: AV: 00:01:31.000 / 00:01:31.009 (99%) A-V:  0.000 Cache:  0s+0KB
[-----------------------------------------------------------------------------------------------+-]
   cplayer:
   cplayer:
   cplayer: Exiting... (End of file)

目視レベルで、支援なしと比較して、CPU稼働率はけっこう少なくなります。効果あり。いまのところ安定しています。

サポートされているコーデックをいまさら確認します。グラフィックカードにも依存します。以前のubuntuであればもう少し設定がめんどうでした。サポートdecodeerが表示されている=vdpauが有効。(有効でない場合は、数行のエラーメッセージで終わりです。昔と違って何も設定はいらないのでしょう。)

vdpauinfo

display: :0   screen: 0
API version: 1
Information string: G3DVL VDPAU Driver Shared Library version 1.0

Video surface:

name   width height types
-------------------------------------------
420    16384 16384  NV12 YV12
422    16384 16384  UYVY YUYV
444    16384 16384  Y8U8V8A8 V8U8Y8A8

Decoder capabilities:

name                        level macbs width height
----------------------------------------------------
MPEG1                          --- not supported ---
MPEG2_SIMPLE                    3  9216  2048  1152
MPEG2_MAIN                      3  9216  2048  1152
H264_BASELINE                  41  9216  2048  1152
H264_MAIN                      41  9216  2048  1152
H264_HIGH                      41  9216  2048  1152
VC1_SIMPLE                      1  9216  2048  1152
VC1_MAIN                        2  9216  2048  1152
VC1_ADVANCED                    4  9216  2048  1152
MPEG4_PART2_SP                  3  9216  2048  1152
MPEG4_PART2_ASP                 5  9216  2048  1152

DIVX4_QMOBILE                  --- not supported ---
DIVX4_MOBILE                   --- not supported ---
DIVX4_HOME_THEATER             --- not supported ---
DIVX4_HD_1080P                 --- not supported ---
DIVX5_QMOBILE                  --- not supported ---
DIVX5_MOBILE                   --- not supported ---
DIVX5_HOME_THEATER             --- not supported ---
DIVX5_HD_1080P                 --- not supported ---
H264_CONSTRAINED_BASELINE      --- not supported ---
H264_EXTENDED                  --- not supported ---
H264_PROGRESSIVE_HIGH          --- not supported ---
H264_CONSTRAINED_HIGH          --- not supported ---
H264_HIGH_444_PREDICTIVE       --- not supported ---
HEVC_MAIN                      --- not supported ---
HEVC_MAIN_10                   --- not supported ---
HEVC_MAIN_STILL                --- not supported ---
HEVC_MAIN_12                   --- not supported ---
HEVC_MAIN_444                  --- not supported ---

Output surface:

name              width height nat types
----------------------------------------------------
B8G8R8A8         16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A8I8 I8A8
R8G8B8A8         16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A8I8 I8A8
R10G10B10A2      16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A8I8 I8A8
B10G10R10A2      16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A8I8 I8A8

Bitmap surface:

name              width height
------------------------------
B8G8R8A8         16384 16384
R8G8B8A8         16384 16384
R10G10B10A2      16384 16384
B10G10R10A2      16384 16384
A8               16384 16384

Video mixer:

feature name                    sup
------------------------------------
DEINTERLACE_TEMPORAL             y
DEINTERLACE_TEMPORAL_SPATIAL     -
INVERSE_TELECINE                 -
NOISE_REDUCTION                  y
SHARPNESS                        y
LUMA_KEY                         -
HIGH QUALITY SCALING - L1        -
HIGH QUALITY SCALING - L2        -
HIGH QUALITY SCALING - L3        -
HIGH QUALITY SCALING - L4        -
HIGH QUALITY SCALING - L5        -
HIGH QUALITY SCALING - L6        -
HIGH QUALITY SCALING - L7        -
HIGH QUALITY SCALING - L8        -
HIGH QUALITY SCALING - L9        -

parameter name                  sup      min      max
-----------------------------------------------------
VIDEO_SURFACE_WIDTH              y        48     2048
VIDEO_SURFACE_HEIGHT             y        48     1152
CHROMA_TYPE                      y
LAYERS                           y         0        4

attribute name                  sup      min      max
-----------------------------------------------------
BACKGROUND_COLOR                 y
CSC_MATRIX                       y
NOISE_REDUCTION_LEVEL            y      0.00     1.00
SHARPNESS_LEVEL                  y     -1.00     1.00
LUMA_KEY_MIN_LUMA                y
LUMA_KEY_MAX_LUMA                y

AMD RADEON R7 360

(2016-06-01)。今回のドライバ(VDPAU MESA)を組み込まないデフォルト状態では、次のようになっていました。VA-APIです。ubuntu16.04LTSです。 mint18がリリースされる前ですから、厳密な比較ではありません。
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
   cplayer: AO: [pulse] 48000Hz 5.1 6ch s32
        vd: Using hardware decoding (vaapi).
   cplayer: VO: [opengl-hq] 1920x1080 vaapi
  term-msg: FPS: 23.976
VDPAU関連を組み込まない状態:VAAPIが有効でHWアクセルが効いているかんじがします。ffmpegでは効かない(ffmpegはvdpau必須)。
-sudo apt install libvdpau-va-gl1

2016年6月30日木曜日

emacs:ターミナルがちゃんと色が使える状態になっているのか。

emacsをターミナルでつかいはじめたので色が気になる……

なんちゃってemacs(emacs互換のあれこれ)から、本物に少しだけ移行をはじめました。
最初の疑問。――256色ちゃんと使えているのだろうか?!

使えています。



新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T

8色以上がつかえているかどうかを検査するプログラムをダウンロードします。Perlのスクリプトです。256色のチェックです。

wget ftp://ftp.fau.de/netbsd/NetBSD-release-6/xsrc/external/mit/xterm/dist/vttests/256colors2.pl
 
githubのほうがいいかも。 
wget https://github.com/zhengkai/config/raw/master/script/256colors2.pl
実行します。上の見本キャプチャのようになればOKです。
perl ./256colors2.pl

ターミナル上のemacsでの確認 : スクロールしたら最後が256番。

emacs -nw

M-x list-colors-display

ubuntu/Linux固有ではありません。

2016年6月15日水曜日

Gnomeのキー操作をグローバルにEmacs風にする

キーバインド研究シリーズ

Gnomeのキー操作をグローバルにEmacs風にする。

https://askubuntu.com/questions/124815/how-do-i-enable-emacs-keybindings-in-apps-such-as-google-chrome/233539

デスクトップ環境全体をemacs 風味にするキーバインディング
当方にはちょっと使いにくいかも。適用と戻し方を記述します。

CTRL+ALT+T

gnome
gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"

#デフォルトに戻す。
gsettings set org.gnome.desktop.interface gtk-key-theme "Default"


一部のCinnamon(mint本家)ではこれだった?!みたい。
gsettings set org.cinnamon.desktop.interface gtk-key-theme "Emacs"
# use emacs Emacs風にする。

gsettings set org.cinnamon.desktop.interface gtk-key-theme "Default"
# use default デフォルトに戻す

想像するに MATEはこうなるはず。
gsettings set org.mate.desktop.interface gtk-key-theme "Emacs"
# use emacs Emacs風にする。

gsettings set org.mate.desktop.interface gtk-key-theme "Default"
# use default デフォルトに戻す


結局戻しました。emacs好きすぎる人にはいいかもしれません。
スクショのキーまで変わってしまうのはいまさらきついです。 想定外でした。


gedit のキーバインドのカストマイズだけにとどめておきます。

http://d.hatena.ne.jp/msh_trumpet/20061217/1166366465

2016年6月12日日曜日

Perl5からPerl6に移行。たまにマルチバイト文字

Perl5からPerl6に既存資産を移行しようとしてはまったところ。

既存資産といってもへなちょこ、へっぽこスクリプトの類です。

echo あいうえお | perl6 -ne 's/^(.**0..3).*$/$0/, print $0 '
#3文字分行頭から取得 substrのほうが楽ですね。そういう話じゃなくて。
#
これに限らず、これまで{1,9}みたいに指定し量指定子を書くと、「..」にしろとかいろいろ怒られるので、そうしますが、まさか、{}そのものを使わない書き方とは思ってもみなかったです。
長年にわたって、(.{1,5})みたいにしていたので。

まとめると、短いperl5スクリプトでも影響は大きいですね。

1)後方参照の番号が変わった。これまで$1としていたのは、$0になる。ずれます。
2)範囲指定はだいたい[..]みたい。[A-Z]が[A..Z]になる。他でも同様に、「..」になった。たぶん一律。
3)これまでと同じ正規表現では通らないことがあるので、新しい仕様は読むべき。(読まないけど)
4)量指定子を使う時、{}は使えない。使わない。Perl6は別物と考えたほうがいいと実感する。

※perl5で文字数カウントを間違えないようするには(自分の場合UTF-8文字で数えるためには)、入力文字がUTF-8だよと教える必要があった。
Perl6は無自覚に使ってもUTF-8で扱ってくれる。つまりデフォルトで3バイトの1文字を3つに分解しようとして自滅したりはしない。たぶん空気のようにUTF-8の文字列が扱える(自分の使っている範囲。たぶんですよ)。

導入バージョン rakudo
This is perl6 version 2015.11 built on MoarVM version 2015.11

ls | perl6 -ne 's/^(.**0..7).*$/$0/, say $0 '

デスクトップあたりで端末開いて、上の一行を実行してみるといいかも。何もファイルは変更しません。
下記はperl5でマルチバイト(日本語)含めて数える場合

ls | perl -Mutf8::all -ne 's/^(.{0,7}).*$/$1/, print "$1\n" '

perl5でマルチバイト文字を扱う場合の劇的推奨。

このモジュールに全幅の信頼をおいています。なんか日本人でこれに言及しているのは自分だけの気がするんですけどね。笑) 便利ですよ。組み込むのも簡単だし。メリットは構文が簡素になるので、さくっと使い捨
てが書けます。「perl "utf8::all"」で検索しても2000件しかないし、ディストリのパッケージそのもののダウンロードだったりするので、ほとんど知られていないのかもしれません。わたしは、数年前UTF-8というキーワードでひっかるcpanパッケージは全部(ほんとうに全部)チェックしたので見つけました。以来ハッピーです。
現在、ubuntuの標準パッケージに含まれています。

以下ディスっているわけではありません!! 職業プログラマーが集まるサイトなどで、えんこーどして、でこーどして、ばいんもーどにして。。。とかよく見かけるんですが。うーん。ややこしいから仕事で間違えているんじゃないの?!

単純にUTF-8の入出力だけするのなら簡単です。その文字列を、区切る、数える、置換する、抜き出すなどなら、このモジュールひとつで、簡素に書けます。ほんとにびっくりです。大好きです。めんどくさいことは大嫌いです。




2016年5月27日金曜日

Zip の憂鬱。(2)そして、解決した。Xarchiver

【朗報】Xarchiver では、CP932なzipも自然に扱える

追記:必ずしもうまくいくとは限りませんね。申し訳ないです。結局、Zipはコマンドラインで操作することにしました。マウスでできるように右クリックメニューに組み込みました。

以前、自分用にパッチをあててシフトJIS対策してみたXarchiverですが、またあててみるかなとソースを落としてきて、まずmake(makeしてからdebainパッケージを作り、dpkgで導入)しました。(この段階ではソースはオリジナルのまま。自分のcp932パッチをあてる前です)。

あれ、問題ない。\(^o^)/ 今makeしたのを削除して(dpkg -r)

パッケージシステムから再導入。今度も問題ない。

これで多くの人がzipの憂鬱から開放されるかも



新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T
sudo apt install xarchiver
もしくは、
sudo apt-get install  xarchiver

その他方法、パッケージマネジャーsynapticなどで、xarchiver を選択して導入してみてください。

Xarchiverが好みでないのでメインのアーカイバーにはしたくないという場合も、zipに対する関連付けリストにいれておけば捗るかもしれません。めったにないんですけどね。

Zip文字化けを確認するためのテストファイル

たとえば、「ブラックジャックによろしく」http://www.hosino-kanata.com/kakusi/bjy/bjy.zip 。300MB。手持ちに文字化けするZipファイルがあればそれで確認してみればよいです。

Xarchiverとそれ以外(標準のファイルローラー、書庫マネージャとか言われる類のもの)で比較してみるとよいでしょう。

CPANでPerlモジュールを導入する。半自動=手作業での場合。

CPANコマンドでPerlモジュールを導入という場面は、年に一度もないので忘れちゃいます。年々頻度が減ってきている。perl でmakeのほうがわかりやすくていいのかな、自分の場合。パッケージ候補以外はできるだけいれないので。


それでもまれに必要に迫られることがあります。という場面。


CPANサイトで試してみようというモジュールを見つけました。
  1. AAA.tar.gz などの形式であろうがなかろうがソースをダウンロードします。右側。
  2. それを解凍・展開します。 
  3. 解凍ディレクトリに cdします。


新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T


#rootになるか。sudo付きでコマンドを発行します。
# perl Makefile.PL
# make
# make test
# make instal

今試したモジュールは、できあがるコマンドと衝突するperl コマンドが既にある(/usr/bin)ので、make install は発行していません。気がついてよかった。manも上書きされそうだし、パッケージ管理でまためんどくさそう。

2016年5月23日月曜日

日本語文字列ファイルを日本人としてソートする sort order

実験中です。

日本語文字列ファイルを日本人に違和感のない形でソートするために週末潰しました。
工程は、漢数字、ひらがな、カタカナのオーダーを恣意的にいじってみた段階です。準備作業として数値参照と実体のそれとの相互の変換スクリプトをPerlで作ったりした時間が90%(16進表記を変換したことがなかったので、そこから調べた。熟練ユーザーなら10分位でできちゃうと思います)。

表意文字を使っている僕たちですが、EUCやShiftJISの順番では使いにくい人も少なくないと思います。別に、ユニコードなどが表意文字に敬意を払ってないのはケシカランというつもりはないです。


[かなチーム]>〇 >一>二>三>四>五>六>七>八>九>[漢字その他チーム]

と評価されるようになっています。やりながら後追いで文献調べてこの手順でいいはずだなんて検査をしていました。一日触ってみて予想外に快適なので、表意文字のうち、漢数字以外の上、下などを変えます。ファイル名に使う文字で一般的に、位置関係を示す文字でやりすぎない程度にするには何が適切かを考えています。


$ export LANG="ja_JP.UTF-8" ;ls 試作段階での並び、表意文字の通り(改訂ja_JP)
一  二  三  四  五  六  七  八  九  十

$ export LANG="ja_JA.UTF-8" ;ls デフォルトはShiftJIS/EUC-JPと同じ。素敵な並び
一  九  五  三  四  七  十  二  八  六 

※ ja_JAロケール(内容はデフォルトja_JPと同じ)は作業の便宜上コンパイルしたものです。そんなもんありません。末尾に生成に用いたコマンド記してます。

WindowsやMAC OS Xを利用していても困惑する、漢数字まじりの問題はたとえばこんなかんじでしょうか。一般的な回避方法は知っていても気持ち悪いのは致し方ありませんね。
※作品世界では算用数字の9課ですが、たとえばこんなかんじ。 一太郎、三香子、二郎でもいいし、二頭身、九頭身とか、でもいいけれど。会社の部局などで、漢字が正規表記という場合もあります。アラビア数字でいいじゃん?! 自社ならいざ知らず、他社あて文書でそれをやってはまずいですね。たぶん。
$ export LANG="ja_JA.UTF-8" ;ls
公安一課  公安九課  公安五課  公安三課  公安四課  公安七課  公安二課  公安八課  公安六課

$ export LANG="ja_JP.UTF-8" ;ls
公安一課  公安二課  公安三課  公安四課  公安五課  公安六課  公安七課  公安八課  公安九課

初期変更

並び=ソートを画像で示すような状態にしました。まだテストなのですが、長年の鬱憤とおさらばできるかも。コマンドラインでも同等です。コマンドラインのsort Programでも同じです。

nemo


リストは、Wikipediaの2010年代アニメ一覧ページから「ががー」と生成。2015年まで。
このソートを見て不自然さを感じない人が多ければ嬉しいです。当たり前だと思うのが普通の気もしないではないですが。どうなんでしょう。エンティティは処理していませんのでガルパンがあれか。

ちなみに、caja でも同じです。nautilusでも同じでしょう。

作業メモ

http://archive.linux.or.jp/JF/JFdocs/Japanese-Locale-Policy.txt 1999年12月15日 1.03
というのがありますが、現在の世界は実質UTF-8なディストリビューションで溢れている中、EUC基準で書かれているので、過去の遺物なんでしょうか?! 最新がどこかにあるのでしょうかね?!

4.2. LC_COLLATE

当面、文字の照合順序は文字コードの順番とする。

各文字コードは次の順序とする。

 1. ISO 646 IRV

 2. JIS X 0201 カタカナ

 3. JIS X 0208

 4. JIS X 0212

この項目は実装の進行状況に合わせてより実用的なものへと改訂される予定で
ある。
※下線強調は筆者。
とあります。みつけたこのファイルの時点(日本語ロケールはEUC推奨)でも、実用的なものへの改訂可能性は伺われます。いや、何がいいたいかというと、そのままだっただけってことかなと。他国・他言語のロケールを調べてみても、固定する必要はないってことがわかりました。 ドイツの憲法改正数と日本のそれを比較するとわかりやすいかも。だめではないが固定されている世界。(是非など私見はおいておいて)

とりたてて、偉い人たちが崇高な理念の元に決めたりしているわけではなさそうなので、ほっとします。この時期までの慣例的な定義が今も残っているだけじゃないかと。

http://manpages.ubuntu.com/manpages/precise/man8/locale-gen.8.html
SEE ALSOlocale(1), localedef(1), locale(5), locale.gen(5), locale(7)

やっていること、やったこと


COLLATEの定義がそのままではわたしの脳味噌では読めないので、19000字?!だし。
・数値参照を実体文字(ふつうに読める文字)になるスクリプトを書いた。
・ 上のリバーススクリプトを同時に作成した。
・評価順をテスト想定通りにした定義を作成した。反映させた。確認してみた。

余談:i18n,l10n

echo 'internationalization' | perl -pe '$nagasa=(length $_) -3 ; print ($nagasa);print "字 :: " '
で改行除外して、たしかに18文字か。長いです。
echo 'localization' | perl -pe '$nagasa=(length $_) -3 ; print ($nagasa);print "字 :: " '10字 :: localization
Hamletの名セリフなら、
39字 :: To be or not to be, that is the question. T39n.

参考


任意のロケールをシステムに認知させるには、ロケールファイルを設定してコンパイルします。フォーマットにミスがあると構文エラーがでます。重複もチェックしてくれます。 「ja_JA.UTF-8」がオリジナルのja_JPです。切り替えて検査するために作っています。
sudo locale-gen ja_JA.UTF-8
Generating locales (this might take a while)...
  ja_JA.UTF-8... done
Generation complete.

sudo dpkg-reconfigure locales
Generating locales (this might take a while)...
  en_AG.UTF-8... done
  en_AU.UTF-8... done
  en_BW.UTF-8... done
  en_CA.UTF-8... done
  en_DK.UTF-8... done
  en_GB.UTF-8... done
  en_HK.UTF-8... done
  en_IE.UTF-8... done
  en_IN.UTF-8... done
  en_NG.UTF-8... done
  en_NZ.UTF-8... done
  en_PH.UTF-8... done
  en_SG.UTF-8... done
  en_US.UTF-8... done
  en_ZA.UTF-8... done
  en_ZM.UTF-8... done
  en_ZW.UTF-8... done
  ja_JA.UTF-8... done
  ja_JP.UTF-8... done
Generation complete.

全部のロケール生成をしてみようなんて考えるとけっこう時間がかかりますし、おそらく使うことのない余計なファイルが生成されますのでご注意を。 だいたい340個ぐらい。intel i3クラスで540秒位もかかります。






2016年5月18日水曜日

fcitxでキーアサインがデフォルト値に戻るのを防ぐ。

fcitxでキーアサインがデフォルト値に戻るのを防ぐには、一番上の上書き可能にするのチェックなしで運用します。コマンドとスクリプトは空でいいです。試しにいろいろやってみていた時のキャプチャ。



これで、fcitxを再起動しても、 キーボードのキー入れ替え/キーアサイン、キーバインドがもどったりしなくなりますね。


参考情報を探していたら、以下が見つかりました。そうなのか。
* デフォルトだと勝手に ~/.Xmodmap をロードしてくれます.したくない場合
は「設定」-「アドオン」内で "X Keyboard Integration" の設定を開き,
「システムの XKB 設定を上書き可能にする」のチェックを外す
か,~/.Xmodmap をリネームするなどします.
* 逆に .xinitrc 内で xmodmap したりしてる場合は上書きされてしまうの
で,.Xmodmap に書いて上記設定を有効にしておきます


https://www.facebook.com/PlamoLinux/posts/550840061636745

2016年5月15日日曜日

ルートが作成したファイルをゴミ箱にいれてしまい削除できなくなった。

ファイルマネージャーでルート権限を取得し、ルートが生成したファイル類をゴミ箱にいれた結果。ゴミ箱がクリアできなくなくなりました。


新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T

結論からいうと、次の1行で削除できました。
sudo rm -rf ~/.local/share/Trash/*

なるほどそうか。

GUIなら、たぶんどれかで解決。
  • gksudo nemo /home/名前/.local/share/Trash
  • gksudo caja /home/名前/.local/share/Trash
  • gksudo nautilus /home/名前/.local/share/Trash
  • gksudo xdg-open /home/名前/.local/share/Trash

2016年5月13日金曜日

pulseaudio が見つからない。A2DP接続は完了するが音がでない。16.04LTS

追記(2016-06-05):調子はいいみたい。起動後、Windows10並みの接続性の時もあれば、数秒で接続、音出し完了する場合もある。(シンク切替はコマンド発行しています)

追記:これ16.04LTS固有の「現段階」のバグじゃないかな。時々にじゃなくて、100%。この儀式を行わないとA2DPがsinkで見えていても音がでない。A2DPヘッドフォンを装着して、電源オン、即座に正しく繋がる(❤)。ここで音がでないので、下記コマンドを発行。sinkを切り替える。プロファイルがハイファイか確認/切り替え。30秒はかかる。

いままで一度もこの類のトラブルには遭遇したことはないのです。はじめて。

当方の環境だとA2DPは(誰でもだけど)Pulseaudioがないと使えないので、不思議だなと思っていたら、その他のアプリケーションでも音がならない。設定を済ませたJACKでは再生できる。 Askubuntuにありました。A2DPの解決策ではなくて、Pulse audioの初期化ですね。

新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T
次の一行で解決。
rm -r ~/.config/pulse; pulseaudio -k


(余談) 
当方の環境の場合 
pactl list short sinks
0 alsa_output.pci-0000_01_00.1.hdmi-stereo module-alsa-card.c\
 s32le 2ch 96000Hz SUSPENDED
1 alsa_output.pci-0000_00_14.2.analog-stereo module-alsa-card.c\
 s32le 2ch 96000Hz SUSPENDED
2 bluez_sink.FA_FA_FA_FA_FA_FA module-bluez5-device.c\
 s16le 2ch 48000Hz RUNNING   <-- br="">
 
 
ちなみに、ざくっと消すのはこれら。tdbというファイルが怪しいかも。
 
ls ~/.config/pulse
1a56528fecef49cba11733e164703617-card-database.tdb
1a56528fecef49cba11733e164703617-default-sink
1a56528fecef49cba11733e164703617-default-source
1a56528fecef49cba11733e164703617-device-volumes.tdb
1a56528fecef49cba11733e164703617-stream-volumes.tdb
cookie 
 


~/.config/pulse 以下を削除する。pulseaudio を再起動する。これですね。
後者は何度も叩いたのですが改善されず、ググりました。
 
ちなみに、/etc/bluetooth/audio.conf はなくても、A2DP接続できるみたいですね
 
ubuntu MATE 16.04
 
追記、うっかりしていましたが、この環境は、ubuntu MATE 16.04 に Cinnamon3.0、Blueberryを導入した環境です。
Blueberry を削除したら、A2DPのつながりにくさが改善されました。
あまり考えずにCinnamon推奨?!のBlueberryいれてみたのが悪かったようです(仮説)。

(参考、今こうなっている)dpkg -l | grep bluetooth

ii blueman 2.0.4-1ubuntu2 amd64 Graphical bluetooth manager ii gir1.2-gnomebluetooth-1.0:amd64 3.18.2-1ubuntu2 amd64 Introspection data for GnomeBluetooth ii gnome-bluetooth 3.18.2-1ubuntu2 amd64 GNOME Bluetooth tools ii indicator-bluetooth 0.0.6+16.04.20160214-0ubuntu1 amd64 System bluetooth indicator. ii libbluetooth3:amd64 5.37-0ubuntu5 amd64 Library to use the BlueZ Linux Bluetooth stack ii libgnome-bluetooth13:amd64 3.18.2-1ubuntu2 amd64 GNOME Bluetooth tools - support library ii pulseaudio-module-bluetooth 1:8.0-0ubuntu3 amd64 Bluetooth module for PulseAudio sound server

cat /etc/bluetooth/audio.conf cat: /etc/bluetooth/audio.conf: そのようなファイルやディレクトリはありません
一度作ったaudio.conf もおいていません。
 

2016年5月10日火曜日

NTFS上のファイル名の不具合を修正する。ubuntuからWindowsのファイルを治す。

仮称「NTFS+Win32だめ文字、パターン」

ファイルシステムとしてのNTFSではOKだが、OSとしてのWindowsでは許容されずファイル名に使うとややこしくなる(消せない、見えないなど)文字、仮称「NTFS+Win32だめ文字、パターン」というのがあります。ディレクトリについても同じです。


  • 末尾がスペースで終わるファイル名。 "大阪Lover " 
  • 末尾がコロンで終わるファイル名。"大阪Lover."

当方の癖や意図で、作るパターンはこの2つ。後者はWindowsしか使ったことがない人には理解できないかもしれません。それはそれで幸せ。このふたつを代表例に対応を例示してみます。

以下、renamej というのは、自分がパッチをあてたものなので、標準ubuntuではrenameです。

新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T

findを使って一括処理するのが楽なので、find前提です。たった一つなら、ubuntuのファイルマネージャー(Windows用語、エクスプローラ)で、リネームすれば良いのです。

末尾空白

末尾がスペースで終わるファイルを列記する。ディレクトリ限定
find . -type d -name '*? ' -execdir echo \"{}\" \;
#
その余分なスペースを除去する。リネームする。

(リネームの変化を確認) -n
find . -type d -name '*? ' -execdir renamej -n 's|\s$||' {} \;
(リネームを実行) -v
find . -type d -name '*? ' -execdir renamej -v 's|\s$||' {} \;
#こっちが賢いかも。
find . -type d -name '*? ' -execdir renamej -v 's|(.*?)\s$|$1|' {} \;

末尾ドット

末尾がドットで終わるファイル名を列記する。(MS-DOS制限が伝統のWindows)
find . -type f -name '*?.' 
#
末尾ドットのみまとめて削除(つまりリネームする)
find . -type f -name '*?.' -execdir renamej -v 's|(.*?)\.$|$1|' {} \;

#
末尾ドットのみまとめて削除(リネームする)ドット連続も一度にリネームする。
find . -type f -name '*?.' -execdir renamej -v 's|(.*?)\.*?$|$1|' {} \;


自分の場合は正規表現的にもこれくらいで対応できます。Bash on Windows で実行できるかもしれませんが試していません。Windowsを起動することがあればやってみよう。そのうち16.04LTSベースのものがリリースされますね。

別の視点で考えます。積極的に考えると、末尾空白、末尾ドットなどを活用するとファイルが隠せます(エクスプローラーでは開けないよー、消せないよーなどの特性を活用するわけです)。先頭ドットなども組み合わせて、いろいろ頑張ってください。何のこっちゃ。初心者には理解できないからいいのですね。

根こそぎ、変換はしないほうがいい「:」

「:」に関しては、根こそぎはやめたほうがいいです。一般ユーザーには使わせませんが、WindowsOSは「:」の入ったシステムファイルを作ります。根こそぎやって、少し泣いた。笑) 慎重に条件指定してください。

メモ
\ < > : " / \ | ? *

AUX、CLOCK$
COM1 ~ COM9、CON、CONFIG$
LPT1 ~ LPT9、NUL、PRN

おまけ、fuseNTFSでクラッシュが置きた場合などに残るドットファイルを削除する。ubuntuなら /media/ 配下に通常できます。デフォルトでそこにマウントされるので。

find . -name '.fuse*'  で探す。
find . -name '.fuse*' -delete 探したリスト通りでよければ問答無用で削除する。削除したい場合。

2016年5月3日火曜日

AMD/ATI グラフィックドライバ ubuntu 16.04LTS

満を持して、グラフィックカードを差し替えました。ubuntu 16.04から、fglrxがなくった(つまり標準ドライバのみになった)わけですが、自分の結論からいうと次のようなかんじ。

追記2016-07-13:多くを望まなければ常用に差し支えないレベルにまで来ていると思います。 安心して使えます。多くを望む=VDAPUの完全なる動作を望むなど……。HD6500Dに関してはもはや枯れているってかんじだったので、R7 360についての言及です。

追記2016-05-17:17日にカーネル関係がアップデートされてから、妙に安定しています。R7 360。まだ24時間経過していませんが、いいかんじ。追記2016-05-19やっぱり微妙。このLTSは6月末ぐらいにならないと安定しないかも。自分の心象的には14.04の場合も2ヶ月かかったので。
  • Kernel: 4.4.0-22-generic x86_64 (64 bit) 
  • Desktop: Cinnamon 3.0.2 
  • Distro: Ubuntu 16.04 xenial

AMD/ATI RADEON HD6500D 


  • VDPAU(ハードウェア支援)有効でも使える。もともと遅いので効果は僅か。
  • 全体に安定している。安心して使えた。標準ドライバが安定しています。
  • fglrxはうまくない。わけでもないが、標準でいい。

AMD/ATI RADEON R7 360


  • VDPAU(ハードウェア支援)有効では使いものにならない。ハードウェアアクセル関連ドライバは削除すべき。削除しました。(標準ではインストールされていませんのでご安心を)
  • 安定しているかどうかは不明。(再評価開始したところ、14.04LTS系では使いものにならず、調達したもののもったいないけれど外していた)。
  • firefoxのクラッシュが頻発する。Windows10(32bit/64bit)でもこのGPUを使っていると似たかんじなので、AMDという会社(の製品)がためっぽいといいたくもなる。
自分の今日の結論はこうなりました。AMDは茨の道。今後に期待です。2年ぐらい待てばいいのかな。あはは。自虐的にならざるをえないですね。

いまんところ、16.04LTSは評価中のままなので壊れてもいいや。そういうわけで(どういうわけか追加した)、Cinnamonがまっとうに動作しなくなったので、数日前リリースされたばかりのCinnamon3.0に入れ替えてみました。MATEやGNOMEはうまく動いています。例によってunityだけは入れていません。

2016年4月30日土曜日

切り貼りして即使える、ffmpeg 加工例文集

ffmpeg :世界標準って感じがします

切り貼りして即使えるがコンセプト。
気が向いた時点で例文を書き足していこうかと思います。いくつかのパターンさえメモしておけばたいてい対応できるのではないでしょうか。

最小限知識:ffmpegの基本:ファイルを読んで、別のファイルに変換する

フォーマット=コンテナの変換は拡張子を変えるだけです。 flv をmp4 など。
ffmpegは拡張子を判別します。タイプがあるとしらんがなとエラーを吐きます。あらゆる形式に対応しているわけではありません。ほぼ必要と考えられる形式には対応しています。コンパイルオプションによるのかもしれません。

ffmpeg  -i infile.flv out.m4v
ffmpeg  -i infile.mov out.mp4

まとめ

ffmpeg  -i infile.ぐしゃ out.ほにゃ
 ... みたいな感じが基本。覚えるのはこれだけです。(本当)


変換が完了しても、カメラなどからひっぱったオリジナルファイルは残しておいたほうがいいです。 のちのち再生不良気味になった場合にオリジナルから、その時のffmpegなどで使いやすいフォーマットに変換すればいいからです。x264は枯れているといいきってもいいと思いますが、hevc対応ソースは発展途上といえるので特に注意が必要かなと思います。

ビデオとサウンドを無劣化コピーするか、変換/エンコードしてもいいのか。脳裏においておいたほうがいいかも。 

WindowsビデオのWMVをm2ts形式に

WindowsビデオのWMVをm2ts形式にしてみる。x264で音声はそのまま。ムービーメイカー(Win7の無料のアレ)などでうまくいかなければ、別コンテナで試してみるといいかも。

ビデオコーデックと音声のそれを別々にも指定できますし、劣化なしを望むならコピーでもいいわけで。ffmpegとコンテナが対応していれば次のように。

絵 は、x264/AVCでエンコード、サウンドはコピー。基本はこんなかんじ。


ffmpeg -i in.wmv -vcodec libx264 -acodec copy out.m2ts

HEVCで小さめのファイルにしたい場合

高圧縮(=サイズ小)でも粗が目立たない動画にする例。HEVCは画質が良いわけではないです。良くなるわけでもないです。サイズの割に高画質と私 は理解しています。

CPUが遅いとエンコードに笑えるほど時間がかかりますので、電気の無駄かもしれません。HEVCが正式名称ですが、あえてオプションは過去の経緯を 踏まえたものになっているのでしょうか。

ffmpeg -i in.mp4 -vcodec libx265 -acodec copy out.m4v

サイズ半分というか、40%圧縮ってかんじかもしれません。SDカードのないスマホを使っている場合にどうしても保存しておきたい動画があるんだ!! みたいな場合かな。今の時代、そこまでストレージに困窮することはないはずなので。Nexus6やiPhoneですね。

GPUハードウェア支援・アクセラレーションを有効にしてみる


エンコーディングをx264でやり直して、audioはそのままで、m4vコンテナにする。ついでにvdpau(unix/linuxのHWアクセル)を効かせる。WindowsならDXVA2か?! HW支援は推奨されていません(というメッセージがでます。そのうち正式対応されるかも)

ffmpeg -hwaccel vdpau -i in.file -vcodec libx264 -acodec copy outfile.m4v

範囲切り出し

45秒から10秒切り出し。
最初に切り出し開始のスタート地点を指定する、このオプションの順番がいいかも。範囲切り出し。例文はエンコ、デコードもしないで済むファイル内容・設定なので超速いです(単なるコピー)。必要ならlixb264などでどうぞ。GUIアプリより便利かも。

ffmpeg -ss 00:00:45 -i infile -t 10 -vcodec copy -acodec copy ./cut/cut.m4v

■BDAVフォーマットの「マイBlu-rayディスク」作成の準備作業

Windows7のムービーメーカーで作成したWMV形式のファイル。これを一括してビデオはH.264、音声はAC3に変換しながら、コンテナをm2ts形式にする。

たぶんですがBDAV作成でもっともトラブルがないコーデックがこの組み合わせなのではないかと思います。一時期凝ってみたがいまは飽きた。数が多い場合は、find を使うと効率的です。Windowsでは forfiles などでお願いします。

find . -name  "*.wmv" -exec ffmpeg -i {} -vcodec libx264 -acodec ac3 -ab 320k {}-x264-AC3.m2ts \; 

途中表示ではこんな風になります。

Stream mapping:
  Stream #0:2 -> #0:0 (wmv3 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (wmav2 (native) -> ac3 (native))

※テストに使ったファイルはWindows7ムービーメーカー出力です。音声、映像共にエンコードしますので、時間がかかります。市販BDのようなかっこいい メニューのあるBDディスクを作るわけではありません。BDMVの場合は素直に市販ソフトウェアを購入したほうが楽でいいかと思います。いずれにせよ。

はなからソースファイルがm2tsという人は高機能ビデオカメラ所有者は別としてそんなに多くない気がしますので、結局のところ、トランスコード(エンコード)するわけで、すっげー 時間がかかるわけですね。

※ 準備作業です。この生成されたファイルをそのままBDに焼いただけでBDAVディスクになるわけはありません。 BDAVの仕様に合わせたファイルを更に生成し、ディレクトリ構造を適正にして焼き込みます。めんどくさいです。ディレクトリ構造まで作成できるスクリプ トは組んでみましたが、とにかくフォーマットを合わせるのにCPU資源が必要なのでいまいちテンションがあがりません。

■音声をAACにする場合

少しだけオプションを書き足します。 WMV(などマイクロソフトのフォーマット)は個人的には世界から撲滅の方向で。AACが悪いわけではないですよ。
ffmpeg -i in.wmv -vcodec libx264 -acodec aac -strict -2 out.m4v

#
#

■音声のみ、または、映像のみ抜き出す場合

動画から音声だけを好きな形式で抜き出す。
ffmpeg -i 動画 -map 0:1 out.ogg
ffmpeg -i 動画 -map 0:1 out.flac
ffmpeg -i 動画 -map 0:1 out.ac3
ffmpeg -i 動画 -map 0:1 out.mp3

いろいろ試してみてください。コンテナにどんな音声フォーマットで格納されているのかは、mediainfoなどでも、ffmpeg -i ファイル とか……確認できます。 同等それ以下の音質にはなりますが、元以上の音にはなりません。当方のようにガソリンエンジン音を抜き出すみたいな用途は特殊かもしれない。

動画から映像だけを抜き出す。無劣化。無声映画・サイレントみたいな。

ffmpeg -i 動画 -map 0:0 -vcodec copy videoonly.mp4


#当たり前すぎるけど、音声ファイルの変換にも使えます。
#省略

find /for で一括変換(flac から ogg|mp3|m4a)する。

二重拡張子を後続コマンドでリネーム。手抜き書式。
find *flac -exec ffmpeg -i {} {}.ogg \; && rename 's|.flac.ogg|.ogg|' *flac.ogg

かっこわるい点:&&の前で処理したいのだけど、よい方法がわからない。{}を変数として扱う方法がわからない。目的に対しては単純な方法なのでこれでいいんだけど。 while read で処理はできるが打鍵数が多いので使い捨てとしてはいまいち。 -exec の連続もかっこ悪い。

ま、ぜんぶまとめての場合は、別に考えたほうがいいですね。
かっこわるいんじゃなくて、これでいいのか。 見通しもいいし。KISS!
 
シェルでカレント一括で処理したい場合はこんなかんじのワンライナーで。アルバム単位ディレクトリに音楽ファイルが複数あった場合に、一括で変換するってことです。


FLACから各種フォーマットに変換
oggに
for flac in *.flac ; do ffmpeg -i "$flac" "${flac//flac/}ogg" ; done
mp3に
for flac in *.flac ; do ffmpeg -i "$flac" "${flac//flac/}mp3" ; done
m4aに
for flac in *.flac ; do ffmpeg -i "$flac" "${flac//flac/}m4a" ; done

※たとえばこれらのコマンド行を1行づつファイルにして、スクリプトフォルダにおいておけば右クリックで一括変換です。 以下を右クリックメニューの拡張 scripts nemo caja参照してみてください。

HandBrakeCLI 加工例文集

新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T

ハンドブレーク:handbrake

handbrake で幅640の小さなファイルにする。縦は無指定でも自動でアスペクト維持してくれる手抜きが許される。年齢によるが640は粗すぎる。qの数値で顕著な変化がありますので一回テストファイルで実感してみるといいです。おもしろいです。
HandBrakeCLI -e x264 --deinterlace fast -q 20 -w 640 -m -O -i in.file -o out.m4v

(ちょっと発展系)
HandBrakeCLI -e x264 --deinterlace fast --x264-tune film -q 20 -w 640 -m -O -i in.file -o out.m4v

FHD対応スマホでみるとしたら、960*540にしておくと画質とサイズバランスでいいかも。

RF値による変化と効率
メモ RF値の関連 HandbrakeCLI

180秒 24.0MBのオリジナルテストファイルHEVC to x264


RF    時間  生成サイズ

10 4:55  115MB サイズがえらくでかくなった。
20    2:40    30.6MB 
25    2:15    19.2MB
30    2:49    12.9MB 許容(5インチ以下のスマホなら)
40    1:40      7.7MB うーん。
50    1:12      5.4MB    見るに耐えない。ありえない。表現としておもしろい。

だいぶ前にテストしたメモなのでごめんなさい。10-20の範囲を試してみるべきですね。18ぐらいでいいんじゃないかと思います。20がデフォルトのはずです。 処理時間からみれば、20ですかね。


あれ?! この位しか使ってなかった。というより、ffmpeg依存が強まっているようですね。
ffmpeg加工文例集は別稿に分けます。

2016年4月29日金曜日

右クリックメニューの拡張 scripts nemo caja コードページエラーZipの克服

Zip の憂鬱。文字化け、時々コードページエラー。そして、解決した。(2) Xarchiver おそらく、GUIでの解凍はおおむね解決。

参考:コマンドライン・ターミナルでの操作


などがおすすめです。

ときどき難儀なShiftJIS/CP932なZIPアーカイブ対策:マウス右クリックでその「難儀」なzipを展開できるようにします。概要版。一番上のリンクをみてください。そのほうがいい。以下は記録のため残しておきます。

スクリプトフォルダーに一括解凍スクリプトなどをおきます。
MATEは、: ~/.config/caja/scripts
Cinnamonは、:~/.local/share/nemo/scripts

がスクリプト定置場です。

解凍・展開には、unarとunpを準備します。冒頭参考記事をどうぞ。unpには決め打ちしたパッチをあてます。

1種類で良いですが、unar/unpのふたつの解凍スクリプトを作成します。

以下のふたつをエディターで切り貼りして、スクリプト定置場におきます。そして、ふたつのファイルに実行属性を付けます。

和名でスクリプト名をつけておくほうがいいかもしれません。

●万能解凍一括(unar)君 

#!/bin/bash
#@unarを信じて各種アーカイブを一括解凍
#ZiSH
# 一括可。
#
#
#
for arg
do
    unar "$arg"
done

exit 0

●万能解凍一括(unp)君
#!/bin/bash
#@unp(カスタム済み)を信じて各種アーカイブを一括解凍
#ZiSH
# 一括可。
#
#
#
for arg
do
    unp "$arg"
done

exit 0


これで完成です。20年位前に自分で作成した文字化けzipなどを解凍してみてください。処理過程が見えないので、当方はzenityで拡張していますが、シンプルな例題を提示します。
頻繁に発生する事態ではないと思いますが損はないと思います。ここでいう万能とは、おおむね万能です。

CinnamonとMATEで両方インストールしている場合に、scripts を共通化する

スクリプトフォルダーに簡単なプログラム/シェルスクリプトなどをおいておくと便利です。場合によっては、ターミナルオンリーより速い場合もありますね。図は当方の例ですが、たとえば、コードページで日本語が文字化けするzipを解凍するZenityスクリプトとか、一括して配下をリネームするスクリプトとか、そういうのをいれています。~/binにはアルファベットでファイル作成して、定置場所ではシンボリックリンクに和名を付けています。順序は文字コード順*1なので、並びにこだわるなら、旧字なども使ってみるといいかも。くさび形文字もいけます。カナダ先住民族文字も。もちろんです。



余談はさておき、

MATEは、: ~/.config/caja/scripts

Cinnamonは、:~/.local/share/nemo/scripts

です。どちらかがメインだと思うので、片方にリンクを張るだけ。

例: nemoの定置場所を基本に、cajaにはリンクを張る。

新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T
ln -s ~/.local/share/nemo/scripts ~/.config/caja/scripts


今、unityなubuntu本流はいれていないので、どこでしたっけ?! 読み替えてください。

余談
文字コード順*1=エンコードというか、ソートオーダーは、ubuntu、debianやFedora、redhat も全部、UTF-8で使っていて正しいロケール設定をしていても、SiftJIS/EUCと同じ並びの気がします。MAC OSXみたいなUTF-8の並びでもないです(これも美しいとはいえない)。気持ち悪いです。美意識の観点からも、漢数字の並びも変えたかったので、自分の環境は変えました。きれいです。MACよりも、Windowsよりも美しい並びになりました。デフォルトはちょっと滑稽ですね。何せShiftJIS嫌いなもので。(汗)

2016年4月23日土曜日

WINE explorer.exe 仮想デスクトップを使う。

最近のWINEの完成度にはホントびっくりしますね。ちょっとだけTIPS。といってもWIKIの通りです。仮想デスクトップでWINEのアプリケーションを使おう、という意図ですが、WINEの仮想デスクトップというとイメージが湧きにくいので実際コマンドを打ってみてください。ほとんどの場合必要性は感じないと思いますが、解像度が限定的なゲーム(720p)の起動などに使っています。



新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T
WINE 仮想デスクトップを使うとたまに便利なことがあります。サイズが固定したい。低解像度ゲームの利用時などかな。 旧型アプリで挙動がアレとか、などの理由....

次のコマンドでたいていのケースでテストできます。コピペ、エンター。

wine explorer /desktop=VD,400x400 notepad.exe

ややこしいオプションは、WINE HQの通りにすればだいじょうぶです。が、そんなに研究しても仕方ないので、以下の事例通りでいいんじゃないかと思います。

次のようなデスクトップオブジェクト(通称アイコン)を作成しておけば、
マウスクリックで起動します。

LastFM.desktopを作成しマウスクリック起動にします。

[Desktop Entry]
Name=ja
Exec=env WINEPREFIX="/home/mate/.wine" wine explorer /desktop=DJ,1920x1199 E:\\\\working\\\\lastfm.exe
Type=Application
StartupNotify=true
Path=/home/mate/.wine/dosdevices/e:/working
Icon=/usr/share/icons/Numix/64/apps/jabber.svg
Name[ja_JP]=LastFM
解説
VDという名前の仮想デスクトップで、
lastfm.exe という名前のWindowsアプリを
1920*1199で開く。1ドットあえて減らしています。これで期待通り。 発見しました。
大事なファイルなので編集せずに起動テストが終わったらそのまま終了しましょう。
wine explorer /desktop=VD,800x800 notepad.exe c:\\\\windows\\\\system.ini

OSXでも同じなんでしょうか。
https://wiki.winehq.org/Explorer

2016年4月16日土曜日

それ find で!! コマンド1つで、全圧縮形式を解凍する。混沌を求めて。unar unp

最強の解凍ツールを求めて。SJIS含むが気分的には除外したい。

簡単にいうと最強も何もあったもんじゃないんですが、シフトJISが撲滅されると楽ですね。


  • unp すべての形式へのフロントエンドスクリプト(展開にはスクリプト内部でunzipなどを使います)。一部書き換えてchcp932対応にするといい。
  • unar すべての形式を解凍する便利ツール。コードページを解する。賢い。間違えたことがあまりない。数回あるけれど。そういう場合は、unzip -Ocp932 *.zip。


※すべて=だいたい。

※bash

コンビニエンスなツール・unp unar の導入

sudo apt install unp unar
ふたつ入れときます。ファイルは小さい。

■RAR形式Zip形式

ふたつ以上のzip/rarがある場合です。一つしかない場合は*の扱いが変わるので。

ディレクトリのRAR形式のファイルを一括で解凍、展開する。unar。find は手抜き書式。
#一括なら次の2行覚えておけば、ほぼ全てに対応できます。
find *.rar -exec unar {} \;
find *.zip -exec unar {} \;  
同、unrar/unzip の場合 
find *.rar -exec unrar x {} \;

#WindowsでいまどきShiftJISなファイル名格納されたZIPは個別に扱う。

unzip -Ocp932 filename.zip

■多様な形式をひとつのコマンド、書式で。unpで楽勝。

unpの場合(拡張子を変えれば万能的に使えます。zipなどにも) 発見したんだが、*.*が気軽に使えるにのがこのスクリプトの便利さかも。混沌とするかもしれませんが。
unp *.zip
unp *.rar
unp *.* 

■つまり、最強の解凍ツールunpといってもいい、かも。そうでもないが。

(ただし、「コードページの憂鬱」のある日本語環境は除外。一行書き換えればいいです)


unp *.* 
find *.rar -exec unar {} \; 
find *.zip -exec unar {} \; 

まぁ、化けるアーカイブファイルがあったら、(だいたいWindowsのものだけど)、unzip -Ocp932 *.zip を個別にかけちゃえばいいわけです。個別にunarだとかなりいい線いきますね(間違える場合もある)。

まぁ、~/Downloadsで、*.*を発行すると混沌とするだけですよね。あはは。

■最終回答(私の結論)テキトーなのであまり信じないほうがいいかも。unpの日本語対応版を作る。


unp 227行目を
        [ "unzip" ]を [ "unar" ] に書き換える。unzipをunarです。

sudo gedit `which unp`

      [ "unzip", "zip|cbz|cbr|jar|war|ear|xpi|adf", "Zip.*archive", 0,
#      [ "unzip" ] 
      [ "unar" ]

書き換えた方を、unpjとして、保存しておくといいのかも。とはいえ、自分が使うとも思えないですね。使いませんね。


これで、ほぼ当社調べ99.9%(Shift_JIS含めて)日本語環境に対応した解凍環境ができました。
unarに頼り過ぎると、RARによってはうまくいかないので、unar万能というわけでもないのです。めんどくさいな。 rarもややこしいところがあります。たぶん、形式が違うのでunrarの種別に絡みますね。めんどくさい。

おまけ:unarにコードページを強制する:unar -e cp932

alias zipsjis="unar -e cp932" #codeページ強制 解凍

それ find で!! 楽曲ファイルのノーマライズとアップコンバート SoX


オーディオに関わることなので、意図や意味については議論しませんが、楽曲ファイルを音楽ファイルのアーミーナイフといわれるSoXというツールで、ノーマライズとアップコンバート(アップサンプリング)してみます。下ネタの伏せ字ではありません。

SoXは、音声ファイルに対してできない処理はありません。たぶんなんでもできます。万能ツールです。Win/Linux/OSXで使えるので一回覚えると一生モノかも。Audacityとあわせればほぼ一般ユーザーのしたいことはぜんぶカバーされていると思います。作曲は別だけど。音も鳴らせるので数秒のメロディとかコマンドで設定できますね。気力のある人なら作曲もできる。


  • 大きすぎる音を少し小さめに、
  • サンプリングレートを44.1kから96kに、
  • ビット深度を24bitに、
 してみます。 音割れがCD収録レベルで存在すると確信するCD、これクリッピング発生してるんじゃないのと思った場合などにどうぞ。主たる目的はそれです。この手のツールはWindowsにはいろいろありますね。いろいろ演算して「何か」を作り出すツールとか。※音割れが消えるわけではないですよ。

印象的にざらついた感じがするのなら、jack+低遅延カーネル+DeadBeefで聴いて見るのもおすすめです。プレイヤーでけっこう違いますよね。いかん、こういう話は禁句だった。

余談、14.04LTSにソース落としてきて最新バージョンをコンパイルしてみて、依存関係を無視して強制インストールしたらシステムが変になりました。(汗) やらないほうがいいです。メンテナーの皆さんのバージョンがいいと思います。

実験開始です。新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T

soxを使って楽曲ファイルをアップコンバートする。Windowsでも同じ。OSXでも同じ。以下、対象ファイルは仮に10.flacとしています。

sudo apt install sox (未導入なら)




sox -S -G --norm 10.flac -r 96000 -b 24 10.flac_96k24b.flac

----
こんなかんじでノーマライズとアップコンバートが進行していきます。

sox -S -G --norm ./10.flac -r 96000 -b 24 ./10_96k24bit.flac

Input File     : './10.flac'
Channels       : 2
Sample Rate    : 44100
Precision      : 16-bit
Duration       : 00:04:35.05 = 12129852 samples = 20629 CDDA sectors
File Size      : 30.1M
Bit Rate       : 876k
Sample Encoding: 16-bit FLAC
......
In:100%  00:04:35.05 [00:00:00.00] Out:26.4M [      |      ]        Clip:0   
Done.

-----------
だいたいこんなふうになります。例
Audio
Format                                   : FLAC
Format/Info                              : Free Lossless Audio Codec
Duration                                 : 5mn 9s
Bit rate mode                            : Variable
Bit rate                                 : 3 419 Kbps
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 96.0 KHz
Bit depth                                : 24 bits
Stream size                              : 126 MiB (98%)
Writing library                          : libFLAC 1.3.0 (UTC 2013-05-26)


効果については、個々人の心の中に。

ディレクトリまるごと。find で。全部のflacを処理。

 find . -name \*.flac -type f -exec sox.96k24bit {} \;

 sox.96k24bit は最後に示すスクリプトです。

ディレクトリ内flacまるごと。だけど、5番目の曲は変換しない。

find . -name \*.flac -not -name 5\* -type f -exec sox.96k24bit {} \;

※5でファイル名がはじまっている前提。"5 - わたしの愛のうたを聴いて❤.flac"みたいに。

楽曲管理ソフトの振り分け条件で違いますが、同一アーティストの同一アルバムなら同じディレクトリに全部あるのが普通なので、こういうのだけ覚えておけばいいかな、と。コンピアルバムとかけっこう面倒。検索すればいいだけですが。

Windows10は、2ヶ月後には、こうしたコマンドが使えるようになりますね(たぶん)。それまでは、forfiles でどうぞ。Win7/Win8は、forefilesで。 使いやすい良いコマンドです(本当の気持ち)。

sox.96k24bit いつもの適当スクリプト gedit ~/bin/sox.96k24bit


soxのオプションは英語のmanでは音関連の基礎知識がないと英語ができても厳しいと思うので、ググってみてください。いろいろ試した結果自分の場合こういうシンプルなオプションで落ち着きました。要はおまかせっていうことです。いろいろ考えても仕方がなかったです。世界ではいろんな試みがあるんだなと実感させられました。

#!/bin/bash
# -x
#@ sox でアップコンバートしてみる。ノーマライズ込。
#
#微妙な問題点、タグは引き継がれるが、カバーアートは埋め込みが必要。
#オリジナルからカバーを抜いて、格納するルーティンがあると楽かも。
#滅多に実行しないので、easyTAGでいいか。
#
#
#
#$1 の拡張子をとって変数に格納
if [ "$1" = "" ]; then echo nono; exit 0 ;fi #$1 が指定されてなかったら終了
basename=$1 ; targetname="${basename%.*}_96k24bit.flac" ; #echo "$filename"
if [ -f "$1" ]; then
# echo "$1 ファイルが存在します"
#echo "96k 24bit に変換。⇢ $targetname 生成。"
#echo soxsox変換するよ。
echo    sox -S -G --norm "$1" -r 96000 -b 24 "$targetname"
time    sox -S -G --norm "$1" -r 96000 -b 24 "$targetname"

else
  echo "ファイルが存在しません"
  exit 0

fi #$1 が存在してなかったら終了
echo genarated. ⇢ $targetname
echo "done"
echo "   "
exit 0
exit

前後のファイルをaudacityに読み込んでクリッピングチェック、スペクトラム表示を眺めてみるとよいです。

bit深度だけなら、SoX掛けなくても、deadbeef のオプションでリアルタイム変換してプレイできます。

余談ですが、EasyTAGであまりにでかいpngを埋め込むと再生不能ファイルになりました。以前はうまくいっていたんですけどね。

それ、マウス操作で:

複数指定ならこのスクリプトを一部書き換える必要がありますが、1曲づつならそのままでもscriptsにおけばいいでしょうね。nemo/nautilus/cajaで。

(日本に限らず、ヨーロッパの方(特に北のほうの国)とかもお好きだなぁという印象。アメリカ人はおおざっぱっぽい)


2016年4月15日金曜日

install linux-lowlatency on ubuntu16.04(低遅延カーネル)

低遅延カーネルを導入する。ubuntu16.04

sudo apt install linux-lowlatency


結論は以上です。たぶんLinuxMINT 18.0 でも同じになると思います。今回の導入理由は、通常のFLACでも音が荒れるかんじがする(聴感の話ではなくて、実際ノイズものる)ので、まずJACKをいれたのですが、コンパイルしながらだとまだ荒い。そこで低遅延カーネルもいれてみました。当方だと、ハイレゾフォーマット再生以外ではニーズはほぼないです。ローレイテンシーにすると目視ですが常時10%位CPU負荷が高い気がします。電気を喰っている?!



余談はさておき、Debian系列なら
synaptic(パッケージマネージャ:システム管理にある。名前はこんなかんじか)であれば、「linux-lowlatency」を検索して、インストールすれば、マウス操作で終わります(たぶん)。リブートしてください。


新規にターミナル(端末)を開きます。ubuntu系は以下を同時押し。CTRL+ALT+T
sudo apt install linux-lowlatency

依存関係含めて導入されます。
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています              
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  linux-headers-4.4.0-18-lowlatency linux-headers-lowlatency linux-image-4.4.0-18-lowlatency
  linux-image-lowlatency thermald

提案パッケージ:
  fdutils linux-doc-4.4.0 | linux-source-4.4.0 linux-tools
以下のパッケージが新たにインストールされます:
  linux-headers-4.4.0-18-lowlatency linux-headers-lowlatency linux-image-4.4.0-18-lowlatency
  linux-image-lowlatency linux-lowlatency thermald
アップグレード: 0 個、新規インストール: 6 個、削除: 0 個、保留: 0 個。
58.5 MB のアーカイブを取得する必要があります。

 ...

Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-18-lowlatency /boot/vmlinuz-4.4.0-18-lowlatency
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-18-lowlatency /boot/vmlinuz-4.4.0-18-lowlatency
update-initramfs: Generating /boot/initrd.img-4.4.0-18-lowlatency
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.4.0-18-lowlatency /boot/vmlinuz-4.4.0-18-lowlatency
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-18-lowlatency /boot/vmlinuz-4.4.0-18-lowlatency
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.4.0-18-lowlatency /boot/vmlinuz-4.4.0-18-lowlatency
Generating grub configuration file ...
using custom appearance settings
Found background image: /home/commons/image/haiyore-nyarukosan0063.jpg
Linux イメージを見つけました: /boot/vmlinuz-4.4.0-18-lowlatency
Found initrd image: /boot/initrd.img-4.4.0-18-lowlatency
Linux イメージを見つけました: /boot/vmlinuz-4.4.0-18-generic
Found initrd image: /boot/initrd.img-4.4.0-18-generic
Linux イメージを見つけました: /boot/vmlinuz-4.4.0-17-generic
Found initrd image: /boot/initrd.img-4.4.0-17-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 10 (loader) on /dev/sda1
Found Linux Mint 17.3 Rosa (17.3) on /dev/sda2
Found Linux Mint 17.3 Rosa (17.3) on /dev/sda3
完了
linux-image-lowlatency (4.4.0.18.19) を設定しています ...
linux-lowlatency (4.4.0.18.19) を設定しています ...
thermald (1.5-2) を設定しています ...
dbus (1.10.6-1ubuntu3) のトリガを処理しています ...
systemd (229-4ubuntu4) のトリガを処理しています ...
ureadahead (0.100.0-19) のトリガを処理しています ...

エラーがでずに終了したのを確認して、再起動します。
(grubの調整が必要な方は...そか、こんなもん読まずにいれてますね。略)
sudo reboot
Grubの選択
エントリーメニュー:上記例であれば、
linux-image-lowlatency (4.4.0.18.19) のカーネルから起動します。
※前回起動エントリーから自動起動する設定にしています。OSが7つ入っているので。