ポッドキャスティングを普通の人達に

kurosakaさめんち経由
http://www.yamdas.org/column/technique/podcastingj.html
Podcastに期待するのは、商用にならないクリエイティブな活動って、もっとあってもいいと思うってことだな。商用とアマチュアの間をもっと不明確にしてくれるといい。

PythonSidebar-ja

http://www.python.jp/Zope/download/pythonsidebar

tracを作っているEdgewallSoftwareが配布しているPythonSidebarを元にしています(ライセンスはGPLなので再配布については問題ないはずです)。ドキュメント翻訳プロジェクトの翻訳版標準ドキュメント(2.4)を内蔵し,オフラインでドキュメントを閲覧できるようになっています。Mozilla/Firefox用です。

エディタに内蔵のほうが便利のような。

CD入れるとフルオートリッピングしてejectする環境 その1

なんかエンジンかからないので、コンパイルさせつつ、以前から気になっている事を1つ片付けてしまおう。
 
以前調べた、コンソールベースでCDリッピングをする環境の続き。
http://d.hatena.ne.jp/kinneko/20050915/p1

1. CDDAを自動認識
1.1 hotplugでUSBCDをマウント。
1.2 autofsでスクリプトをフックして起動
1.3 CD-DAかどうか調べる
1.4 そうならマウント
2. WAVに落とす
3. OggもしくはMP3に変換
4. ID3TAGをCDDBから落として挿入
5. アルバム名/アーティスト名のフォルダを作成して格納
ファイルのパーミッションも変更
6. mt-daapd管理下のディレクトリに移動
7. アンマウントして、CDをeject

可能なら、shell script もしくは python で実装

  • 1. CDDAを自動認識

う、すでに、CDを入れることを検知する方法で詰まりそう。
hotplugだけではダメだね。
なんか、常駐監視を使わないと。
autofsがいいかな。
マウントポイントは、/etc/auto.masterと/etc/auto.miscに書かれている。
autofsを使うには、kernel コンパイルオプションで以下が設定されている必要がある。
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
autofsでは、マウント時の操作が指定できないみたいだな...
 
AMDって、まだメンテナンスされているのかな...
こっちはユーザー空間で動くんだけど。でも、デバイスからの割り込みはどうやって受け取るんだろう。
AMDって、今は Am-utils っていうのね。
http://www.am-utils.org/
am-utils 6.1 最新は、June 11, 2005。
kernel側のautofsにも対応しているのね。まだテスタ募集って感じみたいだけど。
起動指定するmapファイルには、Executable mapsって仕組みがあるから、これに追加すればスクリプト起動はできるかも。
http://www.am-utils.org/docs/am-utils/am-utils_8.html#SEC30
ブロックされてなければだけど。
参考書はこれか。
http://www.seshop.com/detail.asp?pid=3848&mode=spec
拡張されているから、以前のように、限定的なファイルシステムしかサポートしないということはないと思うけど、そのへんはどうなんだろう。
 

  • 2. WAVに落とす, 3. OggもしくはMP3に変換, 4. ID3TAGをCDDBから落として挿入

以前調べた、コンソールベースでCDリッピングをする環境。
http://d.hatena.ne.jp/kinneko/20050915/p1

シェルスクリプト。cdparanoiaのフロントエンドになり、一連の作業は音量調整以外はできるようだ。確実にメンテされている。有望。

Perlスクリプト。cdparanoiaとcdda2wavのフロントエンドになり、一連の作業は音量調整以外はできるようだ。1年以上メンテされていないが、古くからあるので枯れているのではないだろうか。Perlモジュールがいろいろと必要になる。

debianパッケージがあるな。notmalizeも自動で使うみたい。Oggもつかえるし。これやってみやう。
 

音量の最適化には、以下の2つがある。

normalize のほうがよさそう。adcdeでも自動的に使うようだし。
debianでのパッケージ名は、normalize-audio のようだ。
http://packages.debian.org/stable/sound/normalize-audio
MADを使うのだけど、このあたりのMP3特許部分が問題になりそう。
libaudiofileだけ使っていれば問題なさそうなので、変換はWAVの間にやってしまうか。重そうだけど。
それなら、Wavnormでも同じだけど。Wavnormは今はパッケージがないからね。

  • 5,6,7

こいつらは、どうにでもなるか。

CD入れるとフルオートリッピングしてejectする環境 その2

ベース環境としては、rapunzelを使おう。まず、環境を作っておく。
CDからインストールした白箱ファームをベースに、rapunzelへ移行する。
そこに、海老原版のリポジトリからdebootstrapを行う。
kernelは、2.4でパッケージ化したものを使う... ってのもなんなので、rapunzelもkogiidena版2.6にしてしまうか。
 
シリアルケーブルがないとどうのという人がいるので、今回はtelnetのみを使って作業をやってみる。
ドライブは DiamondMax10 250G(6B250R0) を1つだけ。
シングルドライブモードで設定を行う。
telnetポートを空けて接続。
まず、hda3を開放して、rootfsをこちらにする。1ドライブなので、mdにはしない。
hda1はほとんど/bootという感じか。
外部に出られるようなネットワーク設定は済ませておく。

# vi /etc/network/interfaces
# vi /etc/resolv.conf
# /etc/init.d/networking restart
# vi /etc/apt/sources.list
# apt-get update
# ntpdate ntp.ring.gr.jp
# hwclock --systohc

作業にかかる。

# /etc/init.d/akadavsvr stop
# killall mt-daapd
# killall thttpd
# killall wizd
# umount /share
# raidstop /dev/md0
# fdisk /dev/hda
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 83
Changed system type of partition 3 to 83 (Linux)
Command (m for help): w
# mkfs.ext3 /dev/hda3
# mount /dev/hda3 /mnt/
# cd /mnt/
# rm -r lost+found/
# tune2fs -m 1 /dev/hda3
tune2fs 1.35 (28-Feb-2004)
Setting reserved blocks percentage to 1 (607417 blocks)

 
もぞもぞ操作してみたけど、海老原版のdebootstrapはうまく動かないようだ。
baseを取得して、使うことにする。

# rm -r usr var
# wget http://www.si-linux.co.jp/pub/debian-sh/base/base-sarge-20051003-sh4.tgz
# tar zxvf base-sarge-20051003-sh4.tgz
# chroot ./
# mount -t proc proc /proc
# vi /etc/inittab
1:2345:respawn:/sbin/getty 38400 ttySC1
# vi /etc/network/interfaces
# vi /etc/resolv.conf
# vi /etc/hostname
# vi /etc/hosts
# vi /etc/fstab
#
proc /proc proc defaults 0 0
/dev/hda1 /boot ext3 defaults,errors=remount-ro 0 1
/dev/hda2 none swap sw 0 0
/dev/hda3 / ext3 defaults,errors=remount-ro 0 1
# vi /etc/apt/sources.list
# apt-get update
# apt-get install telnetd
# passwd <- 適当な管理者パスワードを選んで設定してね
# adduser someone <- 適当なユーザー名をご自身で選んでね
# exit

kogiidena版のkernelを用意、切り替えてMBRに書き込みを行う。

# mkdir /boot/tmp
# cd /boot/tmp
# wget http://iohack.sourceforge.jp/kogiidena/debian26/base/base26-sh4-20050912.tgz
# tar zxvf base26-sh4-20050912.tgz
# cp debian26/boot/vmlinuz-2.6.13-sh /boot/
# rm -r base26-sh4-20050912.tgz debian26
# cd /
# cp /etc/lilo.cross /etc/lilo.conf
linear
boot=/dev/hda
disk=/dev/hda
bios=0x80
timeout=3
default=rapunzel
install=/boot/boot-sel.b-v214
image=/boot/vmlinuz-2.6.13-sh
label=rapunzel
read-only
append="mem=64M root=/dev/hda3 console=ttySC1,38400"
# lilo -v
LILO version 21, Copyright 1992-1998 Werner Almesberger

Reading boot sector from /dev/hda
Merging with /boot/boot-sel.b-v214
Boot image: /boot/vmlinuz-2.6.13-sh
Added rapunzel *
Backup copy of boot sector in /boot/boot.0300
Writing boot sector.
# shutdown -r now

 
ちゃんと起動してきた。起動は十分に高速だ。
telnetでの接続も成功。
先ほど作ったユーザーにてログインして、root になる。
時間が狂っているので、そのへんを調整。

# apt-get install ntpdate
# ntpdate ntp.ring.gr.jp
# hwclock --systohc
Cannot access the Hardware Clock via any known method.
Use the --debug option to see the details of our search for an access method.

hwclockは予想通りダメだね。

# hwclock --debug
hwclock from util-linux-2.12p
hwclock: Open of /dev/rtc failed, errno=19: No such device.
No usable clock interface found.
Cannot access the Hardware Clock via any known method.
# ls -l /dev/rtc
crw-rw---- 1 root root 10, 135 Aug 25 15:37 /dev/rtc

バイスファイルはあるが、ちゃんとRTCにアタッチできないようだ。
 
LEDと電源スイッチの処理を追加する。/直下で作業を行う。

# apt-get install psmisc
# wget http://iohack.sourceforge.jp/kogiidena/debian26/base/landisk-tools-20050828.tgz
# tar zxvf landisk-tools-20050828.tgz
# /usr/local/sbin/landisk-tools.setup
update-rc.d: /etc/init.d/landiskpoff exists during rc.d purge (continuing)
Removing any system startup links for /etc/init.d/landiskpoff ...
update-rc.d: /etc/init.d/btnctrl exists during rc.d purge (continuing)
Removing any system startup links for /etc/init.d/btnctrl ...
Adding system startup for /etc/init.d/btnctrl ...
/etc/rc0.d/K00btnctrl -> ../init.d/btnctrl
/etc/rc1.d/K00btnctrl -> ../init.d/btnctrl
/etc/rc6.d/K00btnctrl -> ../init.d/btnctrl
/etc/rc2.d/S99btnctrl -> ../init.d/btnctrl
/etc/rc3.d/S99btnctrl -> ../init.d/btnctrl
/etc/rc4.d/S99btnctrl -> ../init.d/btnctrl
/etc/rc5.d/S99btnctrl -> ../init.d/btnctrl
Starting btnctrl.

パッケージを最新の状態に更新する。

# apt-get upgrade
Get:1 http://www.si-linux.co.jp sarge/main util-linux 2.12p-4 [313kB]
Get:2 http://www.si-linux.co.jp sarge/main libc6 2.3.5-6 [5468kB]
Get:3 http://www.si-linux.co.jp sarge/main libtasn1-2 0.2.10-3 [47.5kB]
# apt-get dist-upgrade
Get:1 http://www.si-linux.co.jp sarge/main libselinux1 1.22-1 [43.1kB]
Get:2 http://www.si-linux.co.jp sarge/main dpkg 1.13.11 [1827kB]
Get:3 http://www.si-linux.co.jp sarge/main dselect 1.13.11 [124kB]

libselinux1なんか入ってくるのか...
とりあえず、rapunzelの環境づくりはこれで終わり。
慣れた作業のはずなのに、予想外に時間がかかってしまったよ。

CD入れるとフルオートリッピングしてejectする環境 その3

必要なパッケージを入れる。

# apt-cache search am-utils
amd - Dummy package for upgrades
# apt-cache search autofs
lg-issue24 - Issue 24 of the Linux Gazette.
lg-issue42 - Issue 42 of the Linux Gazette.

わはは、ないってさ(^^;。
このへんは置いておくとして、先へ進む。

# apt-get install abcde eject distmp3 id3 id3v2 normalize-audio

しかし、id3v2 normalize-audioはパッケージ化されていないようだ。
vorbis-toolsがないので、distmp3もダメ。
とりあえず、いまのところ可能なものだけで構成することにした。

# apt-get install abcde eject id3 cdtool setcd
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
cd-discid cdparanoia libcdparanoia0 libogg0 libspeex1 speex
Suggested packages:
distmp3 id3v2 normalize-audio
The following NEW packages will be installed:
abcde cd-discid cdparanoia cdtool eject id3 libcdparanoia0 libogg0 libspeex1 setcd
speex
0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
Need to get 377kB of archives.
After unpacking 1417kB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://www.si-linux.co.jp sarge/main cd-discid 0.9-1 [7072B]
Get:2 http://www.si-linux.co.jp sarge/main libcdparanoia0 3a9.8-11 [59.6kB]
Get:3 http://www.si-linux.co.jp sarge/main cdparanoia 3a9.8-11 [19.8kB]
Get:4 http://www.si-linux.co.jp sarge/main libogg0 1.1.2-1 [11.7kB]
Get:5 http://www.si-linux.co.jp sarge/main libspeex1 1.1.6-2 [71.5kB]
Get:6 http://www.si-linux.co.jp sarge/main speex 1.1.6-2 [26.0kB]
Get:7 http://www.si-linux.co.jp sarge/main abcde 2.2.6-1 [76.8kB]
Get:8 http://www.si-linux.co.jp sarge/main cdtool 2.1.5-13 [49.6kB]
Get:9 http://www.si-linux.co.jp sarge/main eject 2.0.13deb-8sarge2 [31.8kB]
Get:10 http://www.si-linux.co.jp sarge/main id3 0.14-1 [10.4kB]
Get:11 http://www.si-linux.co.jp sarge/main setcd 1.5-3 [12.8kB]
Fetched 377kB in 5s (63.3kB/s)

USB-CDROMを自動認識させるためにhotplugが必要になる。

# apt-get install hotplug
Reading Package Lists... Done
Building Dependency Tree... Done
Suggested packages:
ifrename
Recommended packages:
usbutils pciutils
The following NEW packages will be installed:
hotplug
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 67.6kB of archives.
After unpacking 393kB of additional disk space will be used.
Get:1 http://www.si-linux.co.jp sarge/main hotplug 0.0.20040329-22 [67.6kB]
Fetched 67.6kB in 0s (137kB/s)

CDDBへの問い合わせツールって、それっぽい感じなのがないような気がするな。
どれかがやっているのか、どれもやらないのか...
~/.abcde.conf に CDDBURLという項目があるので、それで指定すればいいようだ。
id3でUTF-8変換はやれるのかな?
CDDBURL="http://freedbtest.dyndns.org/~cddb/cddbeuc.cgi"というようにeuc変換での取得はできるみたいだ。
日本から送っているデータはUTF-8のようだ。でも、サーバーから何で送られてくるのかわからない。
CDDBTOOLでcddb-toolを呼び出しているので、ここで何かラッパをかぶせて変換してやればいいのか。
 
さて、手元に CD-DA メディアと USB-CDROM がないので、これ以上の試験ができない。
どのみち、mt-daapdも、rapunzelで動くようにしないとダメなんだし。
今日のところは、このへんで終わっておくか。