2017年1月17日火曜日

AMD RADEON 4k 3840x2160 60Hz で表示。ubuntu/Mint

AMD RADEONでも4Kで60Hz表示ができます。

必須条件


4k60Hz対応モニターとRADEON R7360(DisplayPortで出力)と4K対応ケーブル
ケーブルはいまどき490円程度のでもふつうに使えますね。間違えると4Kにならないのでご注意ください。数年前のDPケーブルだとまず対応していないと思います。




プロプラなドライバでないとだめかなと思っていた上、askubuntuなどでもRADEONはだめっていう記事があったりしたので、ふーん、と思っていました。実際、やってみると普通にできたので方法を記載します。

流れは

  • 1)cvtコマンドで状況確認(以下のオレンジをメモ)
  • 2)xrandr --newmode
  • 3)xrandr --addmode
  • 4)xrandr --output
これだけです。

2-4は、~/.xprifile、profileに書くなりするといいですが、ノースクリーンになると困るのでいったん普通に起動して、コマンドで切り替えたほうがいいかもしれませんね。安定するようなら完全自動にすればいいと思います。


xrandrで今どうなっているか見てみる。以下、当方の現在例


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



$ xrandr
Screen 0: minimum 320 x 200, current 3840 x 2160, maximum 16384 x 16384
DisplayPort-0 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) xxx yyy
   3840x2160     30.00 +  25.00    24.00    29.97    23.98 
   1920x1080     60.00    50.00    59.94    24.00    23.98 
   1920x1080i    60.00    50.00    59.94 
   1680x1050     59.88 
   1280x1024     60.02 
   1280x960      60.00 
   1360x768      60.02 
   1280x800      59.91 
   1280x720      60.00    50.00    59.94 
   1024x768      60.00 
   800x600       60.32    56.25 
   720x576       50.00 
   720x576i      50.00 
   720x480       60.00    59.94 
   720x480i      60.00    59.94 
   640x480       60.00    59.94 
   720x400       70.08 
   3840x2160_60.00  59.98 
   3840x2160R    59.97*
   3840x2160_61.00  60.96 

HDMI-0 disconnected (normal left inverted right x axis y axis)
DVI-0 disconnected (normal left inverted right x axis y axis)

黄色は自分で登録した解像度、周波数です。

アスタリスクが末尾に付いている解像度で表示されています。


cvtコマンドで状況確認 必須作業


cvt 3840 2160
# 3840x2160 59.98 Hz (CVT 8.29M9) hsync: 134.18 kHz; pclk: 712.75 MHz
Modeline "3840x2160_60.00"  712.75  3840 4160 4576 5312  2160 2163 2168 2237 -hsync +vsync

cvt -r 3840 2160
# 3840x2160 59.97 Hz (CVT 8.29M9-R) hsync: 133.25 kHz; pclk: 533.00 MHz
Modeline "3840x2160R"  533.00  3840 3888 3920 4000  2160 2163 2168 2222 +hsync -vsync

オレンジが重要

#~/bin/4k 4Kを選択するスクリプト例 無駄な説明付き


結局は、青のxrandr行の3行を発行するだけです。


4k 引数

使い方

2 FHDにする
3 30Hzにする
6 60Hzにする。59.98Hz
R 60Hzにする。59.97Hz -0.01Hzで安定した。カーネルによるかもしれない。
なし Rと同じ。

-------------------------------------------------------------------------
#!/bin/bash
# -x
# 4k 60Hz
#
#
#
#Procedure


    RES=`xrandr | grep -oP '^(.*?\.\d\d)\*' | sed 's/\*//'` ; echo "$RES"


                 #   3840x2160_60.00  59.98 チラつく
if xrandr -q | grep -E '3840x2160_60.00' ; then
#if xrandr -q | grep -E '3840x2160_60.00  59.98' ; then
#if xrandr -q | grep -E '3840x2160R    59.97' ; then
        echo ready 60Hz mode.モード登録済み。省略。
    else
        echo entry 60Hz mode.モード登録する。作業。
    #Res.Ent: newmode
        xrandr --newmode "3840x2160_60.00"  712.75  3840 4160 4576 5312  2160 2163 2168 2237 -hsync +vsync
        xrandr --newmode "3840x2160R"  533.00  3840 3888 3920 4000  2160 2163 2168 2222 +hsync -vsync
        #NG!! xrandr --newmode "3840x2160_61.00"  725.00  3840 4160 4576 5312  2160 2163 2168 2239 -hsync +vsync
    #Res.Add: addmode
        xrandr --addmode DisplayPort-0 "3840x2160_60.00"
        # NG!! xrandr --addmode DisplayPort-0 "3840x2160_61.00"
        xrandr --addmode DisplayPort-0 "3840x2160R"
fi

    echo previous : `xrandr | grep '*' `

    case "$1" in
        "2"  | "2k" | "fhd" | "1080" )
            xrandr --output DisplayPort-0 --mode "1920x1080"    ;;
        "3"  | "30" | "4k" | "2160")
            xrandr --output DisplayPort-0 --mode "3840x2160"    ;;
        "6"  | "60" )
            xrandr --output DisplayPort-0 --mode "3840x2160_60.00"    ;;
        #"61"  | "i" )
        #    xrandr --output DisplayPort-0 --mode "3840x2160_61.00"    ;;
        "R" | "r" )
            xrandr --output DisplayPort-0 --mode "3840x2160R"    ;;
        * )
            #xrandr --output DisplayPort-0 --mode "3840x2160_60.00"    ;;
            xrandr --output DisplayPort-0 --mode "3840x2160R"    ;;

    esac

    echo and now! : `xrandr | grep '*' `
echo done
exit

<
#       1920x1080     60.00    50.00    59.94    24.00    23.98
#       3840x2160     30.00*+  25.00    24.00    29.97    23.98
memo
#

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つです。

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:ではうまくないです。ひととおりチェックしてみたんですがお手上げ。  thumnailという名前のパッケージをひとつづつ入れていったら、治りました。名前は忘れました。^^;

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

  • 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と戯れるという意味のない日常

だらだら、と。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日後削除


当方の今日の環境: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