カーネルを再構築してext3ファイルシステムが使えるようにして、ALSAでC-MEDIA CMI8738を鳴らす(debian woody編)

aptでカーネル関係のパッケージ、kernel-source-2.2.20, kernel-patch-ext3-2.2, kernel-packageと、ALSA関係のパッケージ、alsa-base, alsa-header(-0.5), alsa-source(-0.5), alsa-utils(-0.5), alsa-confを入れておきます。ALSAは2.2系のカーネルを使うので、0.5を入れました。
ついでにC-Media Sound Chip Driversから開発版ドライバももらってきてきました。(追記:C-MEDIA本家のほうがバージョンが新しかった)
カーネルコンパイル
/usr/src/にあるkernel-source-2.2.20.tar.bz2とalsa-driver-0.5.tar.gzを展開。カーネルソースにシンボリックリンクを張ります。
# cd /usr/src/
# tar xvfj kernel-source-2.2.20.tar.bz2
# tar xvfz alsa-driver-0.5.tar.gz
# ln -s kernel-source-2.2.20/ linux
展開したソースディレクトリに降りて、ext3パッチを当てます。
# cd linux
# ../kernel-patches/all/apply/ext3fs-2_2
CMI8738純正ドライバを展開してコピーします。(ALSAを入れるので本当はいらない)
# tar xvfz cmpci-5.64.tar.gz
# cp cmipci/* drivers/sound/
カーネル再構築の設定する。
ALSAを使うのでSound-->Sound card Supportはモジュールを選んでください。
# make mrproper
# make menuconfig[ config | xconfig ]
カーネルとモジュールのコンパイル。
カーネルパッケージのrevisionは、つけなくてもいいです。 make-kpkg modules_installでは、ALSAモジュールをコンパイルしています。
# make-kpkg clean
# make-kpkg --revision= binary
# make-kpkg modules_image
一つ上のディレクトリにkernel-[header,source,image].debとalsa-modules-.debパッケージができてるのでインストールします。
# cd ../
# dpkg -i ./*deb
ALSAの設定
dev/ディレクトリに降りて、サウンドデバイスファイルを作ります。
# cd /dev
# /usr/share/doc/alsa-base/examples/snddevices
alsaconfを起動して設定の雛型を作り、書き換えます。
alsaconfは適当にサウンドカードを選んで終了します。 /etc/modules.confと/etc/alsa/modutils/0.5に設定が追加されているので、CMI8738用の設定に書き換えます。
/etc/alsa/modutils/0.5
-----
# --- BEGIN: Generated by ALSACONF, do not edit. ---
# --- ALSACONF verion 0.4.3b ---
alias char-major-116 snd
alias snd-card-0 snd-card-cmipci ← snd-card-cmipciに変更
alias char-major-14 soundcore
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
options snd snd_major=116 snd_cards_limit=1 snd_device_mode=0660 snd_device_gid=29 snd_device_uid=0
options snd-card-cmipci snd_index=0 snd_id=CARD_0 snd_enable_midi=1 snd_enable_fm=1 ← ソースのREADMEを参考に必要なら追加
# --- END: Generated by ALSACONF, do not edit. ---
-----
/etc/modules.confも同じように部分が書き換えます。
/etc/alsa/alsa-base.confの startosslayer=false をtrueに変更して、サウンドを鳴らしたいユーザーをaudioグループに追加します /etc/groupと/etc/gshadowの audio: という部分があるので、コロンの後ろにユーザー名を書く。
/etc/init.d/alsa startでALSAを起動。
一旦ログアウトし、ユーザーでログインしなおして、 groups で自分がaudioグループに入ってるか確認。 alsamixerでボリュームをあげて音を鳴らしてみる。音がなれば成功。ならなければ、上の事を確認する。
ext3ファイルシステムの設定
- シングルユーザーで起動。
- 念のため、/(ルート)以外のパーティションをアンマウントする。
-
e2fsck (デバイス名) でパーティションのチェックをする。
-
tune2fs -j (デバイス名) でext3に変換する。
- 3〜4を変換したいパーティションに繰り返し、変換が終れば/etc/fstabのext2の部分をext3に変更する。
- 再起動。
_ nVIDIAのXFree86 4.x ドライバを使う
nVIDIAのドライバはwoody用のパッケージが古かったのでnVIDIAからもらってきました。(追記: もらってこなくても、sidには最新の物がある)
1. 適当な場所(今回は/usr/src/modules)に、NVIDIA_kernel-1.0-2313.tar.gzとNVIDIA_GLX-1.0-2313.tar.gzを展開。
2. NVIDIA_kernel-1.0-2313ディレクトリ、NVIDIA_GLX-1.0-2313ディレクトリそれぞれの場所で、make installする。
3. /usr/share/doc/NVIDIA_GLX-1.0/READMEのsec-03を参考に、/etc/X11/XF86Config-4を変更する。
Section "Module"
# Load "GLcore" ← コメントアウト
# Load "dri" ← コメントアウト
Load "glx" ← 追加
EndSection
Section "Device"
# Driver "nv" ← コメントアウト
Driver "nvidia" ← 追加
EndSection
4. Xを再起動する。
nVIDIAロゴが出れば成功。
_ Logitech QuickCam Express part #861037-00xxをつなぐ
姫路のあぷらいどでLogitechのUSBのQuickcamが2980円で売っていたので、買ってきました。 ぷらっとほーむの情報によると、つなげられるっぽいのでつないでみます。
うーん…
Logitech Quickcam Express USB Driverのdevelopment pageのリンクから行ったhttp://www.abo.fi/~jmunsin/hack.htmlのページによると、オレの買った(VenderId: 0x046d Logitech Inc. / ProductId: 0x0870)タイプは、どうやらDexxa Webcamというもので、ちょっとやっかいなものらしい。
- Logitech Quickcam Express USB Driver: http://qce-ga.sourceforge.net/
- Download page: http://sourceforge.net/project/showfiles.php?group_id=12924
- The dexxa webcam and New Quickcam expresses: http://qce-ga.sourceforge.net/dexxa.html
- Linux driver for Logitech Quickcam Express with HDCS1000/PB0100 image sensors: http://wwwbode.cs.tum.edu/~acher/quickcam/quickcam.html
ドライバをコンパイルしたりしたけど、ダメっぽい。
/dev/video*は存在するし、モジュールもあるのに。自分はvideoグループにいれてるのに。
# lsmod
Module Size Used by
mod_quickcam 29120 0 (unused)
usb-uhci 18252 0 (unused)
usbcore 49480 0 [mod_quickcam usb-uhci]
videodev 2720 0 [mod_quickcam]
NVdriver 819072 10 (autoclean)
snd-seq-midi 3296 0 (autoclean) (unused)
snd-seq-oss 26016 0 (unused)
snd-seq-midi-event 2944 0 [snd-seq-midi snd-seq-oss]
snd-seq 38672 0 [snd-seq-midi snd-seq-oss snd-seq-midi-event]
snd-pcm-oss 16792 0 (unused)
snd-pcm-plugin 14192 0 [snd-pcm-oss]
snd-mixer-oss 4384 0 [snd-pcm-oss]
snd-card-cmipci 15936 0
snd-mixer 23656 0 [snd-mixer-oss snd-card-cmipci]
snd-pcm 29792 0 [snd-pcm-oss snd-pcm-plugin snd-card-cmipci]
snd-timer 8288 0 [snd-seq snd-pcm]
snd-mpu401-uart 2432 0 [snd-card-cmipci]
snd-rawmidi 9792 0 [snd-seq-midi snd-mpu401-uart]
snd-seq-device 3860 0 [snd-seq-midi snd-seq-oss snd-seq snd-rawmidi]
snd 37024 1 [snd-seq-midi snd-seq-oss snd-seq-midi-event snd-seq snd-pcm-oss snd-pcm-plugin snd-mixer-oss snd-card-cmipci snd-mixer snd-pcm snd-timer snd-mpu401-uart snd-rawmidi snd-seq-device]
soundcore 2852 6 [snd]
nls_cp932 76480 0 (unused)
agpgart 23772 2
ide-scsi 7392 0
scsi_mod 58888 1 [ide-scsi]
8139too 13152 1
$ xawtv &
[1] 1132
jun@knucles:~$ This is xawtv-3.65, running on Linux/i686 (2.2.20ext3)
can't open /dev/video0: No such device
v4l-conf had some trouble, trying to continue anyway
v4l2: open /dev/video0: そのようなデバイスはありません
v4l: open /dev/video0: そのようなデバイスはありません
no video grabber device available
[1]+ Exit 1 xawtv
今日はヤメにするかぁ。