2011-05-05

CentOS エラッタ (更新情報)

CentOS のエラッタはメーリングリストで入手可能なのですが, これをウェブページに変換したサイトを作成しました.

http://centoserrata.nagater.net/

I-O DATA GV-USB2 を Linux で使いたい

I-O DATA GV-USB2Fedora 14 のマシンに接続してみた.

snd-usb-audio としては認識されたが, 映像は取りこめなさそう. これに労力をつぎ込みたくはないので諦めた.

dmesg の結果:

[ 3438.892061] usb 2-1.2: new high speed USB device using ehci_hcd and address 3
[ 3439.008484] usb 2-1.2: New USB device found, idVendor=04bb, idProduct=0532
[ 3439.008491] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=10
[ 3439.008496] usb 2-1.2: Product: I-O DATA GV-USB2
[ 3439.008499] usb 2-1.2: Manufacturer: I-O DATA
[ 3439.008502] usb 2-1.2: SerialNumber: 000000000000001
[ 3439.510572] ALSA sound/usb/clock.c:219: 3:2:1: endpoint lacks sample rate attribute bit, cannot set.
[ 3439.511184] usbcore: registered new interface driver snd-usb-audio

/proc/bus/usb/devicesの一部:

T:  Bus=02 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#=  3 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=04bb ProdID=0532 Rev= 0.05
S:  Manufacturer=I-O DATA
S:  Product=I-O DATA GV-USB2
S:  SerialNumber=000000000000001
C:* #Ifs= 3 Cfg#= 1 Atr=80 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=   0 Ivl=2ms
E:  Ad=82(I) Atr=01(Isoc) MxPS=   0 Ivl=125us
I:  If#= 0 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=2ms
E:  Ad=82(I) Atr=01(Isoc) MxPS= 768 Ivl=125us
I:  If#= 0 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=2ms
E:  Ad=82(I) Atr=01(Isoc) MxPS=1020 Ivl=125us
I:  If#= 0 Alt= 3 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=2ms
E:  Ad=82(I) Atr=01(Isoc) MxPS=1024 Ivl=125us
I:  If#= 0 Alt= 4 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=2ms
E:  Ad=82(I) Atr=01(Isoc) MxPS=2048 Ivl=125us
I:  If#= 0 Alt= 5 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=2ms
E:  Ad=82(I) Atr=01(Isoc) MxPS=3072 Ivl=125us
I:* If#= 1 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=snd-usb-audio
I:* If#= 2 Alt= 0 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E:  Ad=84(I) Atr=05(Isoc) MxPS=   0 Ivl=125us
I:  If#= 2 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E:  Ad=84(I) Atr=05(Isoc) MxPS= 256 Ivl=1ms

2011-04-24

LVM 上の EXT3 パーティションを縮小

EXT3 の縮小の方法などを紹介する.

ここでは, いろいろと理由があって, /dev/sda 上にある /dev/VolGroup00/LogVol00 を 縮小して /dev/sdb 上に移動させる必要がでてきた. ext3 でフォーマットしてルートにマウントしているので, とりあえず runlevel 1 でスナップショット /dev/VolGroup00/snap1 を取ってから, パーティションを縮小, 新しいパーティションに dd でコピーする. やや複雑な手順になってしまった.

ファイルシステムのチェックと, ジャーナルの削除を行う. (ジャーナルの削除は不要かもしれない.)

# fsck /dev/VolGroup00/snap1
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
/dev/VolGroup00/snap1: clean, 502353/134217728 files, 18419731/134217728 blocks

# fsck -n /dev/VolGroup00/snap1
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
/dev/VolGroup00/snap1: clean, 502353/134217728 files, 18419731/134217728 blocks

# tune2fs -O ^has_journal /dev/VolGroup00/snap1

# e2fsck -f /dev/VolGroup00/snap1
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/VolGroup00/snap1: 502353/134217728 files (0.6% non-contiguous), 18386929/134217728 blocks

ファイルシステムの縮小. 操作が完了したら, 何ブロックになったか出力されるので, この数値を確認する. この例では, ちょうど 50331648 × 4096 = 192 × 10243 なので OK.

# resize2fs /dev/VolGroup00/snap1  192G
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/VolGroup00/snap1 to 50331648 (4k) blocks.
sudo tune2fs -O has_journal /dev/VolGroup00/snap1 
The filesystem on /dev/VolGroup00/snap1 is now 50331648 blocks long.

ジャーナルを戻す.

# tune2fs -O has_journal /dev/VolGroup00/snap1
tune2fs 1.39 (29-May-2006)
Creating journal inode: done
This filesystem will be automatically checked every -1 mounts or
0 days, whichever comes first.  Use tune2fs -c or -i to override.

縮小した領域を別のパーティションにコピーする.

# lvcreate -L 192G -n root1 VolGroup00 /dev/sdb2

# dd if=/dev/VolGroup00/snap1 of=/dev/VolGroup00/root1 bs=4096 count=50331648
(全てのブロックが書き込まれたか確認する.)

この操作中 (とくに resize2fs の間に), スナップボリュームの COW テーブルはかなりたくさん使用された. (もともとの /dev/VolGroup00/LogVol00 は 496GB 中 55 GB だけが使用されていた.)

  --- Logical volume ---
  LV Name                /dev/VolGroup00/snap1
  VG Name                VolGroup00
  LV UUID                ZBrQlU-Xhut-Efbu-uDmV-VG3n-yobg-tC0l9Y
  LV Write Access        read/write
  LV snapshot status     active destination for /dev/VolGroup00/LogVol00
  LV Status              available
  # open                 0
  LV Size                512.00 GB
  Current LE             16384
  COW-table size         64.00 GB
  COW-table LE           2048
  Allocated to snapshot  28.12% 
  Snapshot chunk size    4.00 KB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3

2011-04-23

LVM 論理ボリュームを別の物理ボリュームへ移動

複数のハードディスクドライブを使用して LVM のボリュームグループ (VG) を構成した場合, VG 上の論理ボリューム (LV) は内部では物理ボリューム (PV) 上に割り当てられる. どの PV が割り当てられているかは
$ lvdisplay -m 
で知ることができる.

通常は1つの PV から順に確保されてゆくため, アクセスの多い LV が 1 台の HDD へ偏ってしまうことが起こりうる. このような状況になった場合でも, LV を使用中に使用する PV を変更することができる.

この手順は以下のようになる.

  • 別の PV へ複製 (ミラー) を作成する.
  • 元の PV の割り当てを削除する.

例えば, VG VolGroup00 上の LV LogVol01/dev/sda2 上に割り当てられている時に /dev/sdb2 へ移動する場合は, 以下のコマンドになる.

# lvconvert -m 1 --alloc anywhere /dev/VolGroup00/LogVol01 /dev/sdb2
# lvconvert -m 0 /dev/VolGroup00/LogVol01 /dev/sda2

2011-04-08

HDP2 Gold を Linux から使用したい

SKNETMonster TV HD シリーズ の一部の機種では, コピー制御機能を破る方法が発見された. Linux からでもディジタルテレビを視聴することできるようだ.

暗号チップ ASIE5606 の暗号は復号方法が公開された. (有志による解読が成功したのか, メーカから情報がもれたのか, 経路は不明.)
しかし, HDP2 Gold と呼ばれるボードからは ASIE5607 に交換され, まだ復号方法が公開されていない.
だた, ASIE5607 は TSSOP なので, ピンまわりにジャンパーを設ければ TS を取り出せるだろう. そのために必要な情報をまとめた.

HDP2 Gold ジャンパ

まず, チューナの出力ピン配置を以下のように番号づける. (背面から見た図)
+-----+
|    4|
|    3|
|    2|
|  1  |
+-----+

チューナ, ASIE5607, 5211 の対応するピン番号は以下のようになる.

Tuner5607入力5607出力5211 (1)5211 (2)
349306212
450296311
15128913
252316110

ASIE5607 の出力と 5211 の入力との間をカットし, チュナーの出力と 5211 の入力とをジャンパすればよい. ビットレートは 23Mbps 程度なので, 綺麗にジャンパする必要はないが, パターン幅が細い部分もあるので, 注意してほしい. ポリウレタン線 (直径 0.26mm) などでジャンパすれば問題ないだろう.

Linux ドライバ

Linux では,
  • v4l-dvb とそのパッチ + dvbstream
  • recfriio
のいずれかによって Monster TV HD シリーズからディジタルテレビの TS を取りこめる. v4l-dvb を使用すると, ダブルチューナにも対応できる. しかし, ASIE5607 には対応していない.

リンク

  1. MonsterTV HDUS改造 その2: ASIE5606のジャンパー方法
  2. ボクにもわかる地上デジタル - 地デジ資料編 - チャンネル表
  3. DVB Tools
  4. Linuxで『24時間ワンセグ野郎』と同等の環境を作る方法 ~ ドライバのコンパイルから dvbstream でのストリームキャプチャまで

2011-03-14

昇圧 DC-DC コンバータ付き LED ドライバ

乾電池 4 本で, 3.6V の LED 直列 4 個を駆動する回路です.
インダクタと MOSFET によって昇圧し, LED を駆動します. 0.33 オームの抵抗で電流をモニタし, 非反転増幅器で増幅した電圧を, シュミットトリガ回路へ入力します. 最大電流がおよそ 30mA となるように設計しています.
LED は OSPW5111A-Z3 を4個直列.