2013年3月24日日曜日

乱数をつかってみる



唐突だが私のマシンの起動時のログをdmesgでみるとこんなログが出てる
intel_rng: Firmware space is locked read-only. If you can't or
intel_rng: don't want to disable this in firmware setup, and if
intel_rng: you are certain that your system has a functional
intel_rng: RNG, try using the 'no_fwh_detect' option.
このintel_rngというのは乱数を作る装置らしい。

そこでこれについて調べると
起動時のカーネルのパラメータに
 intel_rng.no_fwh_detect=1
を入れるといいらしい。ってことがすぐ分かった
http://forum.tinycorelinux.net/index.php?topic=12575.0

実際に入れて再起動するとと上記メッセージが
Intel 82802 RNG detected
に変わるのがわかる。
またlsmodでモジュールを見ると
intel_rng
がロードされているのがわかり
デバイス/dev/hwrng ができているのが分かる。

そこで/dev/hwrngの使い道だが
rng-tools
をインストールしてカーネルの疑似乱数とリンクさせて使うらしい

さっそくインストール
sudo apt-get install rng-tools
がインストールするだけでは動かなかった(rngdの起動に失敗する)
Starting Hardware RNG entropy gatherer daemon: fail.
となる。

そこで設定を見直す
sudo vi /etc/default/rng-tools
で設定を見ると
# Configuration for the rng-tools initscript
# $Id: rng-tools.default,v 1.1.2.5 2008-06-10 19:51:37 hmh Exp $

# This is a POSIX shell fragment

# Set to the input source for random data, leave undefined
# for the initscript to attempt auto-detection.  Set to /dev/null
# for the viapadlock and tpm drivers.
#HRNGDEVICE=/dev/hwrng
#HRNGDEVICE=/dev/null

# Additional options to send to rngd. See the rngd(8) manpage for
# more information.  Do not specify -r/--rng-device here, use
# HRNGDEVICE for that instead.
#RNGDOPTIONS="--hrng=intelfwh --fill-watermark=90% --feed-interval=1"
#RNGDOPTIONS="--hrng=viakernel --fill-watermark=90% --feed-interval=1"
#RNGDOPTIONS="--hrng=viapadlock --fill-watermark=90% --feed-interval=1"
#RNGDOPTIONS="--hrng=tpm --fill-watermark=90% --feed-interval=1"
となっているのが分かる。

最初の選択肢
#HRNGDEVICE=/dev/hwrng
#HRNGDEVICE=/dev/null
は/dev/hwrng に決まっているからいいとして二個目の選択肢
#RNGDOPTIONS="--hrng=intelfwh --fill-watermark=90% --feed-interval=1"
#RNGDOPTIONS="--hrng=viakernel --fill-watermark=90% --feed-interval=1"
#RNGDOPTIONS="--hrng=viapadlock --fill-watermark=90% --feed-interval=1"
#RNGDOPTIONS="--hrng=tpm --fill-watermark=90% --feed-interval=1"
はtpmを使うことにする
なぜか?このマシンはTPMがあるのを知っているからだ。

このマシンのdmesgを見ると
tpm_tis 00:0b: 1.2 TPM (device-id 0x1002, rev-id 2)
というログがある。これがTPMのモジュールだ
(TPMについてはWikipediaとか見てください)
この使い道だが
tpm-tools
をインストールするといいらしい。

さっそくインストール
sudo apt-get install tpm-tools
詳しい設定のしかたはこことか参照
http://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux
手順としては
BIOSの設定
そのあと
sudo tpm_createek
sudo tpm_takeownership
でうまくいった。
うまくできたかどうかは
sudo tpm_getpubek
で鍵を表示するかどうかですぐに分かる

であらためてintel-rngの話にもどると
設定ファイルを
# Configuration for the rng-tools initscript
# $Id: rng-tools.default,v 1.1.2.5 2008-06-10 19:51:37 hmh Exp $

# This is a POSIX shell fragment

# Set to the input source for random data, leave undefined
# for the initscript to attempt auto-detection.  Set to /dev/null
# for the viapadlock and tpm drivers.
HRNGDEVICE=/dev/hwrng
#HRNGDEVICE=/dev/null

# Additional options to send to rngd. See the rngd(8) manpage for
# more information.  Do not specify -r/--rng-device here, use
# HRNGDEVICE for that instead.
#RNGDOPTIONS="--hrng=intelfwh --fill-watermark=90% --feed-interval=1"
#RNGDOPTIONS="--hrng=viakernel --fill-watermark=90% --feed-interval=1"
#RNGDOPTIONS="--hrng=viapadlock --fill-watermark=90% --feed-interval=1"
RNGDOPTIONS="--hrng=tpm --fill-watermark=90% --feed-interval=1"
と書き換えて
デーモン起動
sudo /etc/init.d/rng-tools start
こんどはあっさり成功します
Starting Hardware RNG entropy gatherer daemon: rngd.
でrngdが起動します。

これでマシンが疑似乱数から真の乱数(TRNG)に変わったのでとりあえずエントロピーをチェック
cat /proc/sys/kernel/random/entropy_avail
3190
妥当な数値では?
http://backslash.ddo.jp/wordpress/archives/620
http://field-notes.hatenablog.jp/entry/20101218/1292644497

2013年3月19日火曜日

OpenSUSE 12.2 を12.3 にアップグレード

OpenSUSE 12.2 を12.3 にアップグレードした。
なんかMySQLとかやめてすげーよくなったといううわさが流れているからだ。

以下はそのやり方
情報元はこれ
http://opensuse-man-ja.berlios.de/opensuse-html/cha.update.html
YaSTを使う方法とzypperを使う方法と2種類あるようだが、
今回はzypperを使うやり方でやった。CUIの方が失敗しないと思うからだ
結局一晩かかった。

  まず
    zypper dup
  で現状を最新にした

①リポジトリの更新
  まず以下のコマンドで現状の確認
    zypper lr -u
  次に2個リポジトリ追加
    server=http://download.opensuse.org
    new_ver=12.3
    zypper ar $server/distribution/$new_ver/repo/oss/ openSUSE-$new_ver-Oss
    zypper ar $server/update/$new_ver/ openSUSE-$new_ver-Update
  旧リポジトリ削除
    old_ver=12.2
    zypper rr openSUSE-$old_ver-Oss
    zypper rr openSUSE-$old_ver-Update
  以下
    zypper lr -uで状況を見ながら同様にして全て更新
  最後に
    zypper lr -d で確認

②サーバーアクセスしてリポジトリ内容更新
    zypper ref
  うまくいくのを確認。うまくいかないのはURLをチェック、ダメなのは削除

③zipper自身の更新
    zypper up zypper
  私の場合このとき選択肢がでた
     1、ダウングレードして更新を選ぶ とできた

④アップグレード
    zypper dup
  このときライセンス確認が出る yesを選んだ

⑤再起動
    shutdown -r now


2013年3月5日火曜日

Ubuntu用LibreOffice4.0が来てた

LibreOfiice4.0がUbuntuのPPAに来てたので入れてみた。
情報元はこれ
http://www.webupd8.org/2013/03/install-libreoffice-40-in-ubuntu-1204.html

入れ方は書いてあるとおり
sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
sudo apt-get dist-upgrade
でうまく行きました 

あと日本語拡張も入れときました
http://sourceforge.jp/projects/openoffice-docj/
から 
DefaultSettingsForJapanese.oxt 
を入手してクリックするだけ
いい感じで動いてます。 

2013年3月3日日曜日

ubuntuでnvidiaを使うとflashが落ちたり色がおかしくなる件について

ubuntu 12.04以降でnvidiaのプロプライエタリなドライバーを使って動画(youtube)を再生すると色が青に変わるという謎バグがずっとこのマシンにあった。

このバグ
sudo mkdir /etc/adobe
echo -e "EnableLinuxHWVideoDecode=1\nOverrideGPUValidation=true" | sudo tee /etc/adobe/mms.cfg > /dev/null
 
で解決するのだがそのかわり今度は動画再生で落ちやすくなっていた。
 
そこで前回の改修を見直しmms.cfgから 
EnableLinuxHWVideoDecode=1を削除、ドライバーを
https://launchpad.net/~ubuntu-x-swat/+archive/x-updates
に変えてみたところ落ちにくくなったので とりあえずこれで行きます