2006-12-01 曇り,事務所は暑いから激寒いへ [長年日記]
_1 年末
もう今年も残すところあと1ヶ月.早いもんだ.
_2 IDカード
入社から丸3年経って,ICチップの有効期限切れが近づいてきたので.
それにしても自分でやっておいて何だが,IDカードの写真が金髪ってヒドいな.はたして3年後の更新時はこの写真を見てどう思うんだろうか.
そうそう,新カードになって磁気テープ部も復活.これで食堂での精算が苦じゃなくなる.
_3 室温
今日事務所内での引っ越しをしたんだが,信じられんくらいの温度差.
午前中は半袖Tシャツだったのに,午後はトレーナ.前の場所は暑いと感じていたが,今の場所はエアコンの風の出口にあたるのでものすごく寒い.っていうかこの時期に26度の冷房がかかっているってどんな環境やねん.
ということで,めちゃくちゃ寒いので膝掛けでも用意しようかと.
_4 「休止状態」ボタンをデスクトップに置く方法
「電源を切る」ボタンをデスクトップに置く方法にインスパイアされたので試してみる.
コマンドラインから電源オフや休止を実行する − @ITを参考に,コントロールパネルから休止状態を有効にするをチェック.
項目の場所を入力してくださいの質問には
rundll32.exe powrprof.dll,SetSuspendState
と入力.
名前の指定にはお好きな文字列を.私は
休止状態
と入力.
アイコンはお好きなものを.私はpop*popと同じく電源を切るボタンを選択.
これで完成.「電源を切る」と同じく何も聞かれずにいきなり休止状態になります.
電源を切ると,スタートアップに登録されているアプリの起動やら何やらで時間を空ので,通常は休止状態にするようにしています.
追記(20061205): ワンクリックで素早くパソコンを休止状態にする / デジタルARENAを発見.この記事1年半近く前のもの.
_5 Re: libataでhdXからsXXへ
昨日に引き続きlibata(PATA)について.
まずは標準設定がどうなっているのかについて.configファイルを確認.
$ find arch -type f -name '*config*' | xargs grep -H CONFIG_IDE= arch/x86_64/defconfig:CONFIG_IDE=y arch/ia64/defconfig:CONFIG_IDE=y arch/i386/defconfig:CONFIG_IDE=y arch/sparc64/defconfig:CONFIG_IDE=y
となっていて,多くのアーキでは旧インターフェイスを使用.ppc,mips,arm,sh,frvなどIDEのデバイスを利用しない組み込み系ではCONFIG_IDEは設定されていないものが多い.
$ find arch -type f -name '*config*' | xargs grep -H "CONFIG_PATA.*=" arch/mips/configs/tb0287_defconfig:CONFIG_PATA_SIL680=y $ find arch -type f -name '*config*' | xargs grep -H "CONFIG_ATA_GENE" arch/mips/configs/tb0287_defconfig:# CONFIG_ATA_GENERIC is not set arch/x86_64/defconfig:# CONFIG_ATA_GENERIC is not set arch/sh/configs/r7780rp_defconfig:# CONFIG_ATA_GENERIC is not set arch/ia64/configs/sn2_defconfig:# CONFIG_ATA_GENERIC is not set arch/i386/defconfig:# CONFIG_ATA_GENERIC is not set
なので標準サポートはしていない.基本はこれまで通り/dev/hdXが使われる.
次に,標準のコンフィグファイルであるarch/i386/defconfigをベースにコンパイル.編集項目はIDEのサポートOFFとlibata+CONFIG_PATA_SERVERWORKS.
-CONFIG_IDE +CONFIG_ATA_GENERIC +CONFIG_PATA_SERVERWORKS
このコンフィグで作成したカーネルであげたシステムの/dev配下を確認.hdX,sdXなどを探す.
$ ll /dev/[hs][cdr]* brw-rw---- 1 root disk 11, 0 Dec 1 20:19 /dev/scd0 brw-rw---- 1 root disk 8, 0 Dec 1 20:19 /dev/sda brw-rw---- 1 root disk 8, 1 Dec 1 20:19 /dev/sda1 brw-rw---- 1 root disk 8, 2 Dec 1 20:19 /dev/sda2 brw-rw---- 1 root disk 8, 3 Dec 1 20:19 /dev/sda3 brw-rw---- 1 root disk 8, 4 Dec 1 20:19 /dev/sda4 brw-rw---- 1 root disk 8, 5 Dec 1 20:19 /dev/sda5 brw-rw---- 1 root disk 8, 6 Dec 1 20:19 /dev/sda6 brw------- 1 root root 11, 0 Dec 1 20:19 /dev/sr0
hdX はない.
$ ls -lR /dev | grep scd0 lrwxrwxrwx 1 root root 4 Dec 1 20:19 cdrom -> scd0 brw-rw---- 1 root disk 11, 0 Dec 1 20:19 scd0
cdrom のリンク先は scd0 となる.
udev のルールを確認.
$ grep "\"s[dr]" /etc/udev/rules.d/50-udev.rules
KERNEL="sr[0-9]*", SYMLINK="cdrom%e"
KERNEL="sr[0-9]*", BUS="scsi", PROGRAM="/etc/udev/scripts/check-cdrom.sh %k DVD",
SYMLINK="dvd%e"
KERNEL="sr[0-9]*", BUS="scsi", PROGRAM="/etc/udev/scripts/check-cdrom.sh %k CD-R",
SYMLINK="cdwriter%e"
KERNEL="sr[0-9]*", BUS="scsi", PROGRAM="/etc/udev/scripts/check-cdrom.sh %k DVD-R",
SYMLINK="dvdwriter%e"
KERNEL="sr[0-9]*", BUS="scsi", NAME="scd%n" ☆
☆に注目.そのあたりを見ると
# rename sr* to scd*
KERNEL="sr[0-9]*", BUS="scsi", NAME="scd%n"
KERNEL="hd[a-z]*", BUS="ide", SYSFS{removable}="1", NOREMOVE="1"
なので,基本はsrX.それに対応するsdcXを作っている.
$ grep "SYMLINK=\"cdrom" /etc/udev/rules.d/50-udev.rules
KERNEL="sr[0-9]*", SYMLINK="cdrom%e"
KERNEL="scd[0-9]*", SYMLINK="cdrom%e" ☆
KERNEL="pcd[0-9]*", SYMLINK="cdrom%e"
KERNEL="hd[a-z]", BUS="ide", SYSFS{removable}="1", RESULT="cdrom", SYMLINK="cdrom%e"
じゃぁなぜcdromのリンク先はscd0となっているのかというと,ルールの記述順でscdXがsrXよりも後ろにかかれているので,udevはcdrom -> srXを作った後cdrom -> scdXをつくる.結果,srXが上書きされている.なんでこんな変なルールなんだろう.バグってるな.
本丸である sysfs へ.
$ ls /sys/block/ | grep "^[sh]" sda sr0
$ ls -l /sys/block/s*/device
lrwxrwxrwx 1 root root 0 Dec 1 20:19 /sys/block/sda/device ->
../../devices/pci0000:02/0000:02:08.0/host0/target0:0:0/0:0:0:0
lrwxrwxrwx 1 root root 0 Dec 1 20:19 /sys/block/sr0/device ->
../../devices/pci0000:00/0000:00:0f.1/host3/target3:0:0/3:0:0:0
完全にscsiにしか見えない.
$ ll /sys/devices/pci0000\:02/0000\:02\:08.0/host0/target0\:0\:0/0\:0\:0\:0/
total 0
lrwxrwxrwx 1 root root 0 Dec 1 20:19 block:sda -> ../../../../../../block/sda
lrwxrwxrwx 1 root root 0 Dec 1 20:19 bus -> ../../../../../../bus/scsi
--w------- 1 root root 4096 Dec 1 20:19 delete
-r--r--r-- 1 root root 4096 Dec 1 20:19 device_blocked
lrwxrwxrwx 1 root root 0 Dec 1 20:19 driver -> ../../../../../../bus/scsi/drivers/sd
lrwxrwxrwx 1 root root 0 Dec 1 20:19 generic ->
../../../../../../class/scsi_generic/sg0
-r--r--r-- 1 root root 4096 Dec 1 20:19 iocounterbits
-r--r--r-- 1 root root 4096 Dec 1 20:19 iodone_cnt
-r--r--r-- 1 root root 4096 Dec 1 20:19 ioerr_cnt
-r--r--r-- 1 root root 4096 Dec 1 20:19 iorequest_cnt
-r--r--r-- 1 root root 4096 Dec 1 20:19 model
drwxr-xr-x 2 root root 0 Dec 1 20:19 power
-r--r--r-- 1 root root 4096 Dec 1 20:19 queue_depth
-r--r--r-- 1 root root 4096 Dec 1 20:19 queue_type
--w------- 1 root root 4096 Dec 1 20:19 rescan
-r--r--r-- 1 root root 4096 Dec 1 20:19 rev
lrwxrwxrwx 1 root root 0 Dec 1 20:19 scsi_device:0:0:0:0 ->
../../../../../../class/scsi_device/0:0:0:0
lrwxrwxrwx 1 root root 0 Dec 1 20:19 scsi_disk:0:0:0:0 ->
../../../../../../class/scsi_disk/0:0:0:0
lrwxrwxrwx 1 root root 0 Dec 1 20:19 scsi_generic:sg0 ->
../../../../../../class/scsi_generic/sg0
-r--r--r-- 1 root root 4096 Dec 1 20:19 scsi_level
-rw-r--r-- 1 root root 4096 Dec 1 20:19 state
lrwxrwxrwx 1 root root 0 Dec 1 20:19 subsystem ->
../../../../../../bus/scsi
-rw-r--r-- 1 root root 4096 Dec 1 20:19 timeout
-r--r--r-- 1 root root 4096 Dec 1 20:19 type
--w------- 1 root root 4096 Dec 1 20:19 uevent
-r--r--r-- 1 root root 4096 Dec 1 20:19 vendor
ちなみにlibataではなく旧インターフェイスを使った場合./dev 配下を確認.hdX, sdXなどを探す.
$ ll /dev/[hs][cdr]* brw-rw---- 1 root disk 22, 0 Dec 1 20:41 /dev/hdc brw-rw---- 1 root disk 8, 0 Dec 1 20:42 /dev/sda brw-rw---- 1 root disk 8, 1 Dec 1 20:42 /dev/sda1 brw-rw---- 1 root disk 8, 2 Dec 1 20:42 /dev/sda2 brw-rw---- 1 root disk 8, 3 Dec 1 20:42 /dev/sda3 brw-rw---- 1 root disk 8, 4 Dec 1 20:42 /dev/sda4 brw-rw---- 1 root disk 8, 5 Dec 1 20:42 /dev/sda5 brw-rw---- 1 root disk 8, 6 Dec 1 20:42 /dev/sda6
hdc がある.
$ ls -lR /dev | grep hdc lrwxrwxrwx 1 root root 3 Dec 1 20:42 cdrom -> hdc brw-rw---- 1 root disk 22, 0 Dec 1 20:41 hdc lrwxrwxrwx 1 root root 9 Dec 1 20:42 pci-0000:00:0f.1-ide-0:0 -> ../../hdc
cdromへのリンクは当然 hdc
本丸である sysfs へ.
$ ls /sys/block/ | grep "^[sh]" hdc sda
$ ls -l /sys/block/[hs]*
/sys/block/hdc:
total 0
-r--r--r-- 1 root root 4096 Dec 1 20:42 dev
lrwxrwxrwx 1 root root 0 Dec 1 20:42 device ->
../../devices/pci0000:00/0000:00:0f.1/ide1/1.0
drwxr-xr-x 3 root root 0 Dec 1 20:41 queue
-r--r--r-- 1 root root 4096 Dec 1 20:42 range
-r--r--r-- 1 root root 4096 Dec 1 20:42 removable
-r--r--r-- 1 root root 4096 Dec 1 20:42 size
-r--r--r-- 1 root root 4096 Dec 1 20:42 stat
/sys/block/sda:
total 0
-r--r--r-- 1 root root 4096 Dec 1 20:42 dev
lrwxrwxrwx 1 root root 0 Dec 1 20:42 device ->
../../devices/pci0000:02/0000:02:08.0/host0/target0:0:0/0:0:0:0
drwxr-xr-x 3 root root 0 Dec 1 20:42 queue
-r--r--r-- 1 root root 4096 Dec 1 20:42 range
-r--r--r-- 1 root root 4096 Dec 1 20:42 removable
drwxr-xr-x 2 root root 0 Dec 1 20:42 sda1
drwxr-xr-x 2 root root 0 Dec 1 20:42 sda2
drwxr-xr-x 2 root root 0 Dec 1 20:42 sda3
drwxr-xr-x 2 root root 0 Dec 1 20:42 sda4
drwxr-xr-x 2 root root 0 Dec 1 20:42 sda5
drwxr-xr-x 2 root root 0 Dec 1 20:42 sda6
-r--r--r-- 1 root root 4096 Dec 1 20:42 size
-r--r--r-- 1 root root 4096 Dec 1 20:42 stat
hdcはIDE.
/var/log/messagesを見ると以下のログを見つけた.
Dec 1 20:19:29 HOSTNAME scsi.agent[1656]: cdrom at
/devices/pci0000:00/0000:00:0f.1/host3/target3:0:0/3:0:0:0
Dec 1 20:19:29 HOSTNAME scsi.agent[1688]: disk at
/devices/pci0000:02/0000:02:08.0/host0/target0:0:0/0:0:0:0
Dec 1 20:19:29 HOSTNAME scsi.agent[1710]: processor at
/devices/pci0000:02/0000:02:08.0/host0/target0:0:8/0:0:8:0
Dec 1 20:19:29 HOSTNAME scsi.agent[1738]: processor at
/devices/pci0000:02/0000:02:08.1/host1/target1:0:8/1:0:8:0
Dec 1 20:42:37 HOSTNAME scsi.agent[1148]: disk at
/devices/pci0000:02/0000:02:08.0/host0/target0:0:0/0:0:0:0
Dec 1 20:42:37 HOSTNAME scsi.agent[1170]: processor at
/devices/pci0000:02/0000:02:08.0/host0/target0:0:8/0:0:8:0
Dec 1 20:42:37 HOSTNAME scsi.agent[1250]: processor at
/devices/pci0000:02/0000:02:08.1/host1/target1:0:8/1:0:8:0
前者(2.6.19)のみcdromに対しscsi.agentが動いている.ここでもIDEのcdromがSCSIに見えていることがわかる.
長くなったけど以上.
_6
ピタゴラ装置DVDブック1(佐藤雅彦/内野真澄)
届いたので早速見てみる.
20分近く,延々ピタゴラ装置.なんとマニアックな.結構見たことあったけど初見のものもいくつか.
お気に入りは
- 装置No. 8 我が道を行く
- 装置No.30 トランポリン
あと,下から上に動く装置が見てて面白い.やはり重力に反した動きをするからなのかな.
せっかくなので花子にも見せてみよう.なんて反応をするのか非常に楽しみだ.

