2018年9月13日木曜日

Solaris 11.4 でスクリーンセーバーを無効にする

Solaris 11.4 でスクリーンセーバーを無効にする

ネットで見つけた解 [gnome3 disable screensaver]。 「設定」→「プライバシー」→「画面ロック」は無効。

$ gsettings set org.gnome.desktop.session idle-delay 0

dconf-editor でも設定できる。

2018年9月11日火曜日

Solairs 11.4 を軽くさわってみた

Solairs 11.4 を軽くさわってみた

Live CD が提供されなくなった

インストールはテキストインストーラで行う。 操作は直線的。

デスクトップ環境は後から追加

テキストインストーラにはデスクトップ環境が含まれていない。 同時に配布されている IPS パッケージリポジトリイメージから追加する。

GNOME-Shell が使いづらい

gnome-tweak-tool を使って設定する。 標準でいくつかの拡張機能がインストールされている。

https://extensions.gnome.org にある 拡張機能を試してみようとしたが、いずれもインストールに失敗。 理由は不明。

動画の再生で GNOME-shell の CPU 負荷が高い

firefox、ffplay、mpv 等で動画を再生すると、 gnome-shell プロセスと Xorg プロセスの CPU% 値が跳ね上がる。 コンテキストスイッチの数値も10倍以上になる(500前後→10000超)。 gnome-shell の代わりに twm を使用した場合は、この問題は起きない。

Firefox ESR 52.9.0 (32bit)

YouTube は視聴可能だが、ニコニコ、Twitter、Facebook 系の動画は不可。

Solaris 11.3 上で構築した ffmpeg 3.2.2 をインストールすれば、 後者も可能に。

ffmpeg と libvdpau.so

Solaris 11.3 で構築した ffmpeg 3.2.2 は libvdpau.so に依存している。 libvdpau.so は Solaris 11.3 では pkg:/driver/graphics/nvidia に含まれているが、 Solaris 11.4 では pkg:/library/graphics/libvdpau に含まれている。

mpv と liblua.so

Solaris 11.3 で構築した mpv 0.29.0 は liblua.so に依存している。 liblua.so (pkg:/runtime/lua) は Solaris 11.3 と 11.4 の間で互換性が無く、 Solaris 11.3 上で構築した mpv は Solaris 11.4 上で動作しない。

symbol lua_cpcall: referenced symbol not found

ライブラリそのものを Solaris 11.3 から持ってくれば動作する。 また、mpv のソースコードにこの非互換性を伴う変更への対応が含まれているので、 再構築でも動作すると思われる。

最大音量が小さい

audioctl で変更可能。永続的。

$ audioctl set-control line-out 100:100

IME が一切無い

ATOK だけではなく、anthy なども廃止されている。

Solaris 11.3 の IME がらみのパッケージは、インストール不可に設定されている。 ibus は入っている。

動くかどうか試してみた

以下のパッケージに含まれるファイルを Solaris 11.4 上に持っていくと、 ATOK が使えるようになった。(簡単な動作確認のみ)

  • system/input-method/iiim
  • system/input-method/iiim-xim
  • system/input-method/iiim/atok
  • library/medialib

自動起動

/etc/X11/xinit/xinitrc.d/0210.im を Solaris 11.3 から持ってくる。

XI18N_OBJS を編集

/usr/share/X11/locale/ja_JP.UTF-8/XI18N_OBJS を編集。 スクリプト的にはこう。

# gsed --in-place=~ -e '/common\/ximcp/i XIM\tcommon/xiiimp\t_IIIMP_OpenIM\t\t# XIM_open' \
 /usr/share/X11/locale/ja_JP.UTF-8/XI18N_OBJS

この変更を行わなくても日本語の入力は出来るが、 文字パレットなどは動作しない。 また、トリガーキーの変更にも支障が出る。

トリガーキーの変更

$ gconftool-2 --type string \
 --set /desktop/input_methods/trigger_keys "Control_L+grave"

iiim-properties を使うには

iiim-properties は以下のライブラリに依存している。 これらを Solaris 11.3 から持ってくれば、一応動作する模様。

  • /usr/lib/libORBit-2.so*
  • /usr/lib/libORBit-imodule-2.so*
  • /usr/lib/libORBitCosNaming-2.so*
  • /usr/lib/libart_lgpl_2.so*
  • /usr/lib/libbonobo-2.so*
  • /usr/lib/libbonobo-activation.so*
  • /usr/lib/libbonoboui-2.so*
  • /usr/lib/libgnome-2.so*
  • /usr/lib/libgnome-keyring.so*
  • /usr/lib/libgnomecanvas-2.so*
  • /usr/lib/libgnomeui-2.so*
  • /usr/lib/libgnomevfs-2.so*

インストールの流れ

今回は Solaris 11.3 上の VirtualBox 5.2.18 を使用。

  1. Solaris 11.3 上で IPS パッケージリポジトリを展開
  2. VirtualBox で Solaris 11.4 用に VM を作成・構成
    CPU数、ファイル共有(展開したパッケージリポジトリ)、ネットワーク設定など。
  3. Solaris 11.4 をインストール
  4. Solaris 11.4 上で、VirtualBox Guest Additions をインストール
    # pkgadd -d /media/VBOXADDITIONS_5.2.18_124319/VBoxSolarisAdditions.pkg
  5. Solaris 11.4 上で、IPS パッケージリポジトリをマウント
    # mount -o ro -F vboxfs IPSpkgrepos /path/to/IPSpkgrepos
  6. デスクトップ環境をインストール
    ドキュメント に従ってデスクトップ環境を追加。

    # beadm create be-name
    # beadm mount be-name /mnt
    # pkg -R /mnt install -g /path/to/IPSpkgrepos group/system/solaris-desktop
    # bootadm update-archive -R /mnt
    # beadm umount be-name
    # beadm activate be-name

    BE を作成せずに直接デスクトップ環境を追加すると、 コンソールでログインしている状態で GUI ログイン画面が表示されるという困った状況に。 というか、困った。

  7. Solaris 11.4 を再起動
  8. VirtualBox Guest Additions を一旦削除し、再インストール

    これを行わないと Shared Clipboard の機能が動作しない模様。

    # pkgrm SUNWvboxguest
    # pkgadd -d /media/VBOXADDITIONS_5.2.18_124319/VBoxSolarisAdditions.pkg
  9. /etc/vfstab に IPSpkgrepos を追加、マウント
  10. ローカルパッケージリポジトリを構成
    # pkg set-publisher -G '*' -M '*' -g /path/to/IPSpkgrepos solaris
    # pkg refresh --full solaris 
  11. 必要に応じてパッケージを追加
    # pkg install group/feature/developer-gnu

    こんな感じ。

2014年6月10日火曜日

gpg で pgp2.6.2i で作成した鍵を使う

きっかけは、Google が Chrome で OpenPGP をサポートするという話題。 pgp2.6.2i の時代に鍵を生成したことがあったので、それを GnuPG でも使用できるか気になった。

結論としては、Solaris 11.1 で提供される GnuPG 2.0.17 では不可。 以下のメッセージが表示される。

gpg: 保護アルゴリズム1 (IDEA)はサポートしていません

実際には GnuPG ではなく、 依存している libgcrypt 1.4.5 が特許の関係で IDEA をサポートしていない。 IDEA の特許は既に切れており、最新の libgcrypt は IDEA をサポートしている。

最新の GnuPG と依存パッケージ群をインストールしたところ、 gpg2.6.2i の時代に作成した鍵を使用できた。 使用したコンパイラは GCC 4.8.0。

PGP のソースコードは以下から入手。

GnuPG と依存パッケージ群のソースコードは以下から入手 。

PGP の構築

ソースコード展開後、ソースコードを修正し、make を実行。
  • getline() がシステム標準関数と衝突。機能が違うので、関数名を変更することで回避。
  • remove() がシステム標準関数と衝突。同じ機能なので、コードの削除で対応。
$ gmake sysv_386_gcc

libgpg-error の構築

$ ./configure --prefix=<prefix>
$ gmake
$ gmake check
$ gmake install

libgcryp の構築

AMD E-450 を使用しているので、未サポート機能を無効化。 無効化しない場合は次のエラーが発生。

libgcrypt.so.20 => <prefix>/lib/libgcrypt.so.20 - hardware capability (CA_SUNW_HW_1) unsupported: 0x18000000 [ XSAVE PCLMULQDQ ]

$ ./configure --prefix=<prefix> \
 --with-libgpg-error-prefix=<prefix> \
 --disable-pclmul-support \
 --disable-avx-support \
 --disable-avx2-support
$ gmake
$ gmake check
$ gmake install

libksba の構築

$ ./configure --prefix=<prefix> \
 --with-libgpg-error-prefix=<prefix>
$ gmake
$ gmake check
$ gmake install

libassuan の構築

$ ./configure --prefix=<prefix> \
 --with-libgpg-error-prefix=<prefix>
$ gmake
$ gmake check
$ gmake install

GnuPG の構築

$ ./configure --prefix=<prefix> \
 --with-pinentry-pgm=<prefix>/libexec/pinentry-gtk-2 \
 --with-libgpg-error-prefix=<prefix> \
 --with-libgcrypt-prefix=<prefix> \
 --with-libassuan-prefix=<prefix> \
 --with-ksba-prefix=<prefix>
$ gmake
$ gmake check
$ gmake install
$ sudo chown root <prefix>/bin/gpg2 
$ sudo chmod u+s <prefix>/bin/gpg2

ncurses の構築

Solaris 11.1 に含まれている pinentry には、 警告メッセージが表示されたり端末版で表示が乱れるなど、致命的ではない問題がある。 最新版の pinentry を普通に構築すると、 端末版でメッセージが表示されないなど、実用水準に達しないバイナリが生成される。 最新版の ncurses を構築し利用すると、 端末版の見栄えが比較的良好なバイナリが生成される。

--without-cxx-binding を指定しないと、構築に失敗する。

$ ./configure --prefix=<prefix> \
 --enable-widec \
 --with-shared \
 --with-terminfo-dirs=/usr/share/lib/terminfo \
 --with-default-terminfo-dir=/usr/share/lib/terminfo \
 --without-cxx-binding \
 --without-ada \
 --without-manpages \
 --without-progs 
$ gmake
$ gmake install.libs
$ gmake install.includes

pinentry の構築

$ ./configure --prefix=<prefix> \
 --bindir=<prefix>/libexec \
 --with-ncurses-include-dir=<prefix>/include/ncursesw
$ gmake INCLUDES=-I<prefix>/include/ncursesw
$ gmake install
$ sudo chown root <prefix>/libexec/pinentry-{gtk-2,curses}
$ sudo chmod u+s <prefix>/libexec/pinentry-{gtk-2,curses}

鍵の移行

GnuPG で新たに鍵を生成。

$ gpg2 --gen-key

PGP 2.6.2i で作成した鍵の署名状況を確認。 三つのIDが関係付けられており、そのうち一つが自分と二名の友人によって署名されていた。 他の二つのIDは未署名。

$ pgp -kv ~/.pgp/secring.pgp
...略...
鍵束: '<home>/.pgp/secring.pgp'
Type Bits/KeyID    Date       User ID
sec  1024/XXXXXXXX YYYY/MM/DD mypgpuid0
                              mypgpuid1
                              mypgpuid2
1つの対応した鍵を見つけました.
$ pgp -kvv 0xXXXXXXXX ~/.pgp/pubring.pgp
...略...
Type Bits/KeyID    Date       User ID
pub  1024/XXXXXXXX YYYY/MM/DD mypgpuid0
                              mypgpuid2
sig       XXXXXXXX             mypgpuid0
sig       YYYYYYYY             friend0uid
sig       ZZZZZZZZ             friend1uid
                              mypgpuid1
1つの対応した鍵を見つけました.

PGP 2.6.2i で作成した鍵を取り出す。自分の公開鍵に対しては、事前に自己署名を施す。 GnuPG の実装の関係で、主uidとしたい方を後で署名する必要がある。

$ cp ~/.pgp/pubring.pgp pubring.pgp
$ pgp -kx mypgpuid0 private.pgp ~/.pgp/secring.pgp
$ pgp -ks mypgpuid1 -u 0xXXXXXXXX pubring.pgp
$ pgp -ks mypgpuid0 -u 0xXXXXXXXX pubring.pgp
$ pgp -kvv 0xXXXXXXXX pubring.pgp
...略...
Type Bits/KeyID    Date       User ID
pub  1024/XXXXXXXX YYYY/MM/DD mypgpuid0
sig       XXXXXXXX             mypgpuid0
                              mypgpuid2
sig       XXXXXXXX             mypgpuid0
sig       YYYYYYYY             friend0uid
sig       ZZZZZZZZ             friend1uid
                              mypgpuid1
sig       XXXXXXXX             mypgpuid0
1つの対応した鍵を見つけました.
$ pgp -kx mypgpuid0 public.pgp pubring.pgp
$ pgp -kx friend0 public-friend.pgp
$ pgp -kx friend1 public-friend.pgp

GnuPG で、取り出した鍵を取り込む。

$ gpg2 --allow-weak-digest-algos --import private.pgp
gpg: 鍵XXXXXXXX: 秘密鍵をインポートしました
gpg: 鍵XXXXXXXX: 有効なユーザIDがありません
gpg: これはおそらく自己署名のないせいでしょう
gpg:         処理数の合計: 1
gpg:         ユーザIDなし: 1
gpg:     秘密鍵の読み込み: 1
gpg:   秘密鍵のインポート: 1
$ gpg2 --allow-weak-digest-algos --import public.pgp
gpg: 鍵XXXXXXXX: 公開鍵"<mypgpuid1>"をインポートしました
gpg:         処理数の合計: 1
gpg:           インポート: 1  (RSA: 1)
gpg: 「まぁまぁの信用」3、「全面的信用」1、PGP信用モデル
gpg: 深さ: 0  有効性:   1  署名:   0  信用: 0-, 0q, 0n, 0m, 0f, 1u
$ gpg2 --allow-weak-digest-algos \
 --allow-non-selfsigned-uid \
 --import public-friend.pgp
gpg: 鍵YYYYYYYY: 受理した未自己署名のユーザID"<friend0uid1>"
gpg: 鍵YYYYYYYY: 受理した未自己署名のユーザID"<friend0uid2>"
gpg: 鍵YYYYYYYY: 受理した未自己署名のユーザID"<friend0uid3>"
gpg: 鍵YYYYYYYY: 公開鍵"<friend0uid0>"をインポートしました
gpg: 鍵ZZZZZZZZ: 公開鍵"<friend1uid0>"をインポートしました
gpg:         処理数の合計: 2
gpg:           インポート: 2  (RSA: 2)
gpg: 「まぁまぁの信用」3、「全面的信用」1、PGP信用モデル
gpg: 深さ: 0  有効性:   1  署名:   0  信用: 0-, 0q, 0n, 0m, 0f, 1u

信用度を変更。trust サブコマンドを使用し、5 を指定。

$ gpg2 --edit-key mypgpuid0

移行した鍵の確認

鍵を表示。

$ pgp -kv
$ pgp -kvc
$ gpg2 --list-secret-keys
$ gpg2 --list-keys
$ gpg2 --fingerprint

PGP で平文に署名、GnuPG で確認。

$ pgp -s <file> -o <file>-s.pgp
$ gpg2 --pgp2 <file>-s.pgp

PGP で平文に平文のまま署名、GnuPG で確認。

$ pgp -sta <file> -o <file>-sta.asc
$ gpg2 --pgp2 <file>-sta.asc

PGP で平文に署名、受信者(自分)の公開鍵で暗号化、GnuPG で復号、確認。

$ pgp -es <file> <myname> 
$ pgp -es <file> -o <file>-es.pgp <myname> 
$ gpg2 --pgp2 <file>-es.pgp

PGP で慣用暗号だけを使用して暗号化、GnuPG で復号。

$ pgp -c <file> -o <file>-c.pgp
$ gpg2 <file>-c.pgp

2012年2月1日水曜日

fi-6140Z の圧縮率と画質

fi-6140Z で圧縮率を決めるために画像(JPEG)を採取したので記録。

次の表は、fi-6140Z で輪郭強調を適用しなかった場合の画像(一部を切り出し)。

機種 解像度 圧縮率 輪郭強調 画像 レベル補正 サイズ
fi-6140Z300dpi4無効
367005
fi-6140Z300dpi5無効
495482
fi-6140Z300dpi6無効
927102
fi-6140Z300dpi7無効
1294695
fi-6140Z600dpi1無効
635112
fi-6140Z600dpi2無効
688801
fi-6140Z600dpi3無効
792883
fi-6140Z600dpi4無効
1023928
fi-6140Z600dpi5無効
1275038
fi-6140Z600dpi6無効
1866023
fi-6140Z600dpi7無効
2460278
ScanSnap S1500300dpi2無効
  414252
DR-2510C300dpi2中央
  507601
DR-2510C600dpi2中央
  1279042
GT S630300dpi  
  959709

次の表は、fi-6140Z で輪郭強調を適用した場合の画像。

機種 解像度 圧縮率 輪郭強調 画像 レベル補正 サイズ
fi-6140Z300dpi5無効
495482
fi-6140Z300dpi5
563933
fi-6140Z300dpi5
671347
fi-6140Z300dpi5
724185
fi-6140Z600dpi5無効
1275038
fi-6140Z600dpi5
1460641
fi-6140Z600dpi5
1695673
fi-6140Z600dpi5
1770682
  • 原稿の印刷は薄目
  • 各画像は、GIMP を使用して手動で切り出し
  • 300dpi の画像は、convert -scale 200% で拡大
  • 600dpi の画像は、拡大無し
  • レベル補正は、convert -level 20%,95%
  • サイズは、ページ全体のファイルサイズ(バイト)
  • fi-6140Z JPEG 保存の圧縮率は 1 から 7 で指定し、7 が低圧縮(高画質)
  • 追記:fi-6140Z PDF 保存の圧縮率は 1 から 5 で指定し、1 が低圧縮(高画質)
  • ScanSnap S1500 PDF 保存の圧縮率は 1 から 5 で指定し、1 が低圧縮(高画質)
  • DR-2510C JPEG 保存圧縮率は 1 から 5 で指定し、1 が低圧縮(高画質)
  • ScanSnap S1500 の輪郭強調は、読み取りモードオプションの「文字をくっきりします」
  • DR-2510C の輪郭強調は「エッジ強調」、無効に出来なかったので中央に設定

以下はこれらの画像を眺めて考えたこと。

  • ScanSnap S1500 や DR-2510C と同等のサイズにする場合、fi-6140Z では 300dpi 圧縮率 5となる
  • 輪郭強調を無効にしていると、DR-2510C に比べてぼやけている
  • レベル補正を行ったり、輪郭強調弱を適用すれば、ほぼ同等の画像になる。
  • DR-2510C は補正がかかっている?
  • 300dpi 圧縮率 5 と 6 の間で画質の差がかなりあるが、ファイルサイズを見ると、300dpi 圧縮率 6 は 600dpi 圧縮率 4 に近くなる
  • 300dpi 600dpi 共に、圧縮率 4 5 6 間で目に見える画質の差があるが、圧縮率 6 と 7 の差はさほど感じない

2011年12月20日火曜日

fi-6410Z の縦線の曲がり具合

自炊界隈ではADFスキャナの縦線の曲がり具合が話題になることが多々あるので、 手元にある三機種で比較。

原稿はA4、余白は上下左右10mm、10mm間隔で縦横の線。最下部のみ、7mmで点線。

fi-6140Z

微妙に揺れはあるが、ScanSnap S1500 よりかなりマシ。 設定の方はまだ検討中

ScanSanp S1500

それなりに使い込んだ (40万枚以上スキャン) ScanSnap S1500。 個体差はあるにしても、下部の曲がりは顕著。

DR-2510C

線の真っ直ぐさに関しては一番。 遅さと色と濃淡ムラの問題さえなければ良い機種なんだけど。。。

2011年12月16日金曜日

fi-6140Z 納品

fi-6140Z イメージスキャナが納品されました。 接続するPCが準備できていないので、開梱して外観を眺めている状態。 (引退させていたノートPC -Windows Vista- で暫定運用予定。 更新プログラムが100ほどあって、現在適用中。)

シリアル番号は、まさかの二桁。

製造の日付は 2011-07。結構前に製造された模様。

添付されていた『スタートアップガイド』の日付は 2011年6月。

MADE IN INDONESIA。

主要ドキュメントは DVD-ROM 上 (富士通の Web サイトにも)。

2011年11月22日火曜日

Solaris 11 on AMD E-450

AMD E-450 システム上に Solaris 11 をインストールしたのでその防備録。

システム構成

システム構成 
    マザーボードASUS E45M1-I Deluxe
        CPUAMD E-450 (オンボード)
        GPUAMD Radeon HD 6320 (内蔵)
    メモリ8GB (4GB x 2)
    HDD500GB
インストール 
    インストーラsol-11-1111-live-x86.usb
    メディアUSB メモリ(8GB)

インストール

電源投入後、Delete で BIOS 画面に移行し、USB を指定して起動。 キーボードと言語を指定後、GUI が起動。 インストール完了まで、操作上の問題はなし。

問題

音が鳴らない

  • Rhythmbox で音が鳴らない
  • Flash (Firefox 上) で音が鳴らない
  • audiotest は二つの出力先を認識し、一つ目は OK としながら無音。 二つめの出力先は、問題なく音が出る
  • 音量コントロール (システム>設定>サウンド) のサウンドのテーマで指定した音は問題なし

Rhythmbox の問題は、gstreamer-properties で設定することで解決。

タブカテゴリキー既定値設定値
AudioDefault OutputPlugin自動検出OSS - Open Sound System Version 4
  Device(未サポート)audiohd#1
  Pipeline(autoaudiosink)oss4sink device="/dev/sound/audiohd:1dsp"

Flash の問題はきれいな解決策が見つからなかったため、/dev/dsp のシンボリックリンクを /dev/dsp0 から /dev/dsp1 に変更することで、無理矢理対応。

# rm /dev/dsp
# ln -s dsp1 /dev/dsp

ビデオが vgatext

  • デバイスドライバーユーティリティーを実行すると、vgatext と表示される
  • 実用上は問題なし

/var/log/Xorg.log を参照すると、Radeon HD 6320 には対応していない模様。 E-350 で内蔵されている Radeon HD 6310 は表示されているので、すぐに対応されるかも。 freedesktop.org にあるドライバのソースコードには、まだ含まれていない。 (2011-11-17 現在)

USB 3.0 が使えない

  • デバイスドライバーユーティリティーを実行すると、USB 3.0 のドライバが見つからない

対応されるまで、静かに待つしか。

日付が…

  • 希に、システム起動時に日付がおかしくなることがある (前世紀に設定)

どのみち調整の必要があるので、/etc/inet/ntp.conf を作成し、ntp サービスを有効化。

# cp /etc/inet/ntp.client /etc/inet/ntp.conf
(NTP 公開サーバを設定)
# svcs enable ntp

sendmail が maintenance に (いつものことですが)

  • システムの電源投入後、ログイン画面になるのが遅い
  • コンソールメッセージを見ると、sendmailががが
  • svcs -xv sendmail で見ると、maintenance 状態に

いつものことなので、/etc/inet/hosts を編集して、FQDN を追加。

# vi /etc/inet/hosts
# svcadm clear sendmail
# svcadm enable sendmail