linuxconf
よく忘れがちな自分用のメモ.環境はDebian GNU/Linux sarge,etch.でも基本的にはmanとかinfoで調べるクセをつけないとね・・・.
- CPUのパワーマネージメント機能を使う
- thinkfingerによるLinux上での指紋認証
- ThinkPad 560XでALSAを有効にする(PnP非対応なISA接続のサウンドカードを認識させる)
- scimをログイン時に有効にする
- debian etchのデフォルトロケールを変更する
- 内蔵メモリカードスロットを使う - dynabookSS MX/27A
- VMware Server Console for linux でアンダースコア・バックスラッシュが入力できない
- フォントを追加する
- Adobe Flash Player Pluginをetch/AMD64環境で使えるようにする
CPUのパワーマネージメント機能を使う
環境
CPUのクロックを負荷に応じて動的に変化させようと言う話.IntelならEIST(Intel Enhanced Speedstep Technology),AMDならPowerNow!がそれにあたる.debian GNU/Linux 4.0 etch i386.カーネルはkernel.orgから自分でソースを取ってきて再構築した2.6.21.Intel Core2Duo T5500 + i945GMExpress(dynabook SS MX/27A)と,AMD Athlon64 X2 EE 3800+ + GeForce 6100で動作を確認している.
CPU固有のモジュール組み込み
まずCPU固有のモジュールを組み込む.
Core2Duo,PentiumM等のIntelプラットフォームの場合:
# cd /lib/modules/`uname -r`/kernel/arch/i386/kernel/cpu/cpufreq
# modprobe speedstep-centrino
AMDプラットフォームの場合:
# cd /lib/modules/`uname -r`/kernel/arch/i386/kernel/cpu/cpufreq
# modprobe powernow-k8
cpufreq_*モジュール組み込み
デーモンでクロックを動的に変化させたいので,cpufreq_ondemandとcpufreq_userspaceを組み込む.
# cd /lib/modules/`uname -r`/kernel/drivers/cpufreq
# modprobe cpufreq_ondemand cpufreq_userspace
モジュールが正しく組み込まれると,/sys/devices/system/cpu/cpu*/cpufreq/scaling_governorというファイルが出来る.ここに,クロックをどのように制御するかを指定する文字列を書き込むことで,動作モードを決定することができる.
なお,同じディレクトリには,利用可能なモード一覧が書かれたscaling_availaable_governors,指定できる周波数一覧が書かれたscaling_availaable_frequenciesがある.
cpudynでクロックを動的に制御する
cpudynをインストールする.CPUクロック制御を行う場合は,特に設定ファイル( /etc/default/cpudyn/ ) を編集する必要は無いはず.
# apt-get install cpudyn
最後に,CPUのクロックを動的に変化させる ondemand モードに設定して終了.Core2Duoの場合,2つのコアがあるので,各コアに対して設定を行う.設定は/etc/rc.localにでも書いておくと良い.
echo -n ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo -n ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
thinkfingerによるLinux上での指紋認証
Debianでの対応状況
今のところthinkfingerはTesting(lenny)以降のリポジトリにのみ含まれているようで,etchでは自分でコンパイルしなければならない.「コンパイルはちょっと・・・」という人は,Ubuntuに乗り換えることをお勧めする.
対応するデバイスについて
このネタに関する顛末は日記の記事で少し触れてるので,こちらも参考に.
名前からも判るとおり,本来はIBM ThinkPad X60シリーズに内蔵されている指紋リーダーをLinuxのPAM認証で使おうというのが,thinkfingerというライブラリ・ユーティリティ.現在のバージョン0.3では,サポートするデバイスが,SGS Thomson Microelectronics社のデバイスのみの模様.これはチップセットに945GMExpressを搭載している世代のPCでの採用例が多く,現在俺が使用中の,dynabookSS MX/27Aにも搭載されている.ていうかトップページの画像がどうみてもdynabookなんですが・・・
このデバイスは内部バス接続にUSBを利用する少々風変わりなやつなので,何もUSBデバイスを接続しない状態でlsusbすれば直ぐに判る.当然VMware等からも認識できるので,いきなり本番環境で試すのが怖いという人は,仮想マシン上で十分に検証を行ってから運用する,あるいはいろいろ遊んでみるというのもいいと思う.
$ lsusb
$ Bus 005 Device 001: ID 0000:0000
$ Bus 001 Device 001: ID 0000:0000
$ Bus 002 Device 004: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader
(以下略)
"Could not claim USB device."と出て指紋登録できない
日記の場合は,wdmがユーザ認証に成功してセッションを開始した後も,pam_thinkfinger.soが指紋リーダー(/dev/input/uinput)を握ったまま放さないことが原因だった.lsofコマンドなどで調べることができるので,同様の問題に悩んでいる人は調べてみるといいかもしれぬ.
従って,現状はwdmとかのグラフィカルログインマネージャで,pam_thinkfinger.soを使わない方が得策だと思う.少なくとも,etchで提供されるwdm 1.28-2.2ではダメだった.
# ちなみにこれより新しいバージョンのwdmだとOKらしいが,試してみてないので何ともいえない.
じゃあ何に使うんだよ
「rootのパスワードをパスフレーズ認証と指紋認証の二段構えにすれば,より強固になっていいよね」というのはどうだろうか.でも,指紋情報を保存している PREFIX/etc/thinkfinger/* のパーミッション設定などはくれぐれも慎重に.
ThinkPad 560XでALSAを有効にする(PnP非対応なISA接続のサウンドカードを認識させる)
サウンドチップはISA接続のCS4232.ただし,alsaconfではISAの自動検出が正しくできなかったので,/etc/modprobe.d/soundを以下のように書き換えてみた.optionsはモジュールに渡すリソースの値なので,このまま丸写ししてもダメな場合もある.Windows上から調べるなり試行錯誤するなりして,適切な値を探ってくださいな.
# ダメならUSB-Audioに逃げるって手もある.
alias snd-card-0 snd-cs4232
options snd-cs4232 index=0 port=0x530 cport=0x538 isapnp=0 dma1=1 dma2=0 irq=5
これでモジュールをリロードすることでALSAで認識した.ALSA経由でxmmsを利用するには,サウンドデバイスにplug:dmixを指定する.
scimをログイン時に有効にする
scimを起動させるだけでなく環境変数の追加が必要.これらの手順を特定のユーザについて適用したい場合は ~/.xsession に追記する.俺はwdmが好きなので/etc/X11/wdm/Xsessionに書いた.
# typeコマンドでscimが存在することを確認したら,ブロック内の処理を実行
if type scim &> /dev/null; then
# 動作に必要な環境変数を設定(詳細はSCIMのマニュアルを参照)
export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE=scim
# scimをデーモンとして実行
scim -d &
fi
debian etchのデフォルトロケールを変更する
Debian GNU/Linux 4.0 "etch"からはデフォルトロケールが UTF-8 となっているが,既存環境との連携上の問題や,宗教上の理由などでEUC-JP等に変更したい場合も考えられる.ネットインストールによって最小構成でセットアップを行った場合に変更すべきファイルは,/etc/locale.gen , /etc/default/locale.必要ならばこれも;/etc/environment .あとはlocale-genを忘れないように.
SDメモリカードスロットを使う - dynabookSS MX27/A
dynabookSS MX27/Aは,SD,メモリースティック,xD-picture,SDIOに対応したメモリカードスロットを搭載しているので,これをリムーバブルドライブとして使ってみる.なお,xDピクチャは認識されなかったので,別のブロックデバイスを使う必要があると思われるが,デバイスさえ判れば同様の手順で利用できるはず.
まずdmesgからデバイスの様子を確認してみる.
$ dmesg | grep mmc
sr0: scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda tray
mmc0: SDHCI at 0xff9fe700 irq 225 DMA
mmcblk0: mmc0:3e8d S016B 14560KiB
mmcblk0: p1
VFS: Can't find a valid FAT filesystem on dev mmcblk0.
mmcblk0: mmc0:bffc SU02G 1985024KiB
mmcblk0: p1
それらしいものが認識されていることが判ったので,とりあえず手動でmountしてみる.
# mkdir /media/mmc
# mount -t vfat /dev/mmcblk0p1 /media/mmc
# ls -la /media/mmc
dcim misc private
# df -h | grep /media/mmc
/dev/mmcblk0p1 15M 320K 14M 3% /media/mmc
mountできることを確認したら,/etc/fstabにエントリを追記しておけば少し幸せになれる.なお,OS起動時にSDカードが挿入されていないと,udevがデバイスファイルを作ってくれないし,挿入しても作成されない.
VMware Server Console for linux でアンダースコア・バックスラッシュが入力できない
106日本語キーボードを利用している環境では,VMware Server Console,VMware Playerにおいてアンダースコアおよびバックスラッシュを入力するキーが使用できないことがある.この場合は~/.vmware/preferencesに次のエントリを追加する.
xkeymap.keycode.211 = 0x073
フォントを追加する
Xで利用するフォントの場合./usr/share/fonts または ~/.fonts 以下にフォントファイルを置き,次にfc-cacheコマンドでフォントキャッシュを生成する.あとはXを再起動させればフォントが利用可能となる.
なお,ディレクトリがある場合は,そこ以下を再帰的に検索してくれるので,整理のためにもディレクトリを作って管理することをおすすめ.
Adobe Flash Player Plugin を etch/AMD64 環境で使えるようにする
引用元の手順をそのまま実行するだけです.aptを公開されている dipconsultants.com様に感謝致します.そして,他力本願のヘタレでごめんなさい
引用元の手順
aptのリポジトリを追加して,apt-get updateする
# echo "deb http://www.dipconsultants.com/debian etch main" >> /etc/apt/sources.list
# apt-get update
署名エラーで警告が出るので,署名・認証用のツールを導入してから,もう一回apt-get update.
# apt-get install markybob-keyring
# apt-get update
nspluginwrapperとGTKライブラリのIA32版をインストールする.
# apt-get install ia32-libs-gtk nspluginwrapper
あとは,nspluginwrapper -i PLUGIN-PATH で登録すれば完了.