Ubuntu 11.10

11.04のアップデートマネージャからサクっとアップグレード。

環境的には余り変化が無い。

Skypeがタスクバーに入らなくなるとか、conky のcoretempのパラメータを書き換えないと動かないとか、日本語フォントが見にくいとかあるけど、今までとほぼ変わりなく使えている。

kernel が 3.0 になったので、dkms 関係をキッチリしとかないといけない。

noizumi@purplecat:~$ dkms status
bcmwl, 5.100.82.38+bdcom, 2.6.38-11-generic, x86_64: installed
bcmwl, 5.100.82.38+bdcom, 3.0.0-12-generic, x86_64: installed
cdc-acm, 2.6.38-8, 2.6.38-11-generic, x86_64: installed
cdc-acm, 2.6.38-8, 3.0.0-12-generic, x86_64: installed
fglrx, 8.881, 2.6.38-11-generic, x86_64: installed
fglrx, 8.881, 3.0.0-12-generic, x86_64: installed
vboxhost, 4.1.4, 2.6.38-11-generic, x86_64: installed
vboxhost, 4.1.4, 3.0.0-12-generic, x86_64: installed

cdc-acm はFOMAの携帯電話を繋ぐドライバで、このあたりのネタをdkmsで設定して、カーネルがアップデートされても自動的にドライバを再構築するようにしてあるのだが、kernel 3.0 でもドライバが勝手に入ってるな。

しかし、元ソースがkernel 2.6.38-8から取ってきたcdc-acmなのと、diff 取ってみたら2.6.38と3.0.0の cdc-acm.c は変更されているので、3.0.0のcdc-acmにする。

kernel 3.0に入ったカーネルドライバを削除
# dkms remove -m cdc-acm -v 2.6.38-8 -k 3.0.0-12-generic

——– Uninstall Beginning ——–
Module:  cdc-acm
Version: 2.6.38-8
Kernel:  3.0.0-12-generic (x86_64)
————————————-

Status: Before uninstall, this module version was ACTIVE on this kernel.

cdc-acm.ko:
– Uninstallation
– Deleting from: /lib/modules/3.0.0-12-generic/updates/dkms/
– Original module
– No original module was found for this module on this kernel.
– Use the dkms install command to reinstall any previous module version.

depmod………..

DKMS: uninstall Completed.

前の環境でlinux-sourceパッケージをインストールしてあったので、アップグレードしたら、 /usr/src/linux-source-3.0.0.tar.bz2 が既にあった。

$ sudo su –
# cd /usr/src
# sudo tar xvjf linux-source-3.0.0.tar.bz2

で、もりっと展開。

応用開発さんのドライバを取ってくる
# wget “http://sourceforge.jp/frs/redir.php?m=osdn&f=%2Fcdc-acm%2F33631%2Fcdc-acm-v026.zip” -O cdc-acm-v026.zip
# unzip cdc-acm-v026.zip -d cdc-acm-3.0.0-12
Archive:  cdc-acm-v026.zip
inflating: cdc-acm-3.0.0-12/cdc-acm.h
inflating: cdc-acm-3.0.0-12/cdc-acm.c
inflating: cdc-acm-3.0.0-12/Makefile
inflating: cdc-acm-3.0.0-12/readme.txt

さっき展開したソースから、cdc-acm.c cdc-acm.h をコピー
# cp linux-source-3.0.0/drivers/usb/class/cdc-acm.* cdc-acm-3.0.0-12

cdc-acm.c.patch
cdc-acm.h.patch

このファイルをそれぞれ適用
# cd cdc-acm-3.0.0-12
# patch <cdc-acm.c.patch.txt
patching file cdc-acm.c
Hunk #1 succeeded at 66 with fuzz 1 (offset -35 lines).
Hunk #2 succeeded at 876 (offset -93 lines).
Hunk #3 succeeded at 886 (offset -93 lines).
Hunk #4 succeeded at 933 (offset -93 lines).
Hunk #5 succeeded at 999 (offset -89 lines).
Hunk #6 succeeded at 1277 with fuzz 2 (offset -77 lines).
Hunk #7 succeeded at 1632 (offset -76 lines).
# patch <cdc-acm.h.patch.txt
patching file cdc-acm.h
Hunk #2 succeeded at 147 (offset -11 lines).

Makefile の先頭行をコメントアウト
#KERNEL_VERSION  := uname -r

dkms.conf を用意してやる
PACKAGE_NAME=”cdc-acm”
PACKAGE_VERSION=”3.0.0-12″
CLEAN=”make clean”
MAKE[0]=”cd ${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build; make KERNEL_VERSION=${kernelver}”
BUILT_MODULE_NAME[0]=”cdc-acm”
BUILT_MODULE_LOCATION[0]=””
DEST_MODULE_LOCATION[0]=”/kernel/drivers/usb/class”

DKMSに追加
# dkms add -m cdc-acm -v 3.0.0-12 -k 3.0.0-12-generic

Creating symlink /var/lib/dkms/cdc-acm/3.0.0-12/source ->
/usr/src/cdc-acm-3.0.0-12

DKMS: add Completed.

buildしてみる

# dkms build -m cdc-acm -v 3.0.0-12 -k 3.0.0-12-generic

Kernel preparation unnecessary for this kernel.  Skipping…

Building module:
cleaning build area….
cd /var/lib/dkms/cdc-acm/3.0.0-12/build; make KERNEL_VERSION=3.0.0-12-generic….
cleaning build area….

DKMS: build Completed.

install してみる
# dkms install -m cdc-acm -v 3.0.0-12 -k 3.0.0-12-generic

cdc-acm:
Running module version sanity check.
– Original module
– Installation
– Installing to /lib/modules/3.0.0-12-generic/updates/dkms/

depmod….

DKMS: install Completed.

# dkms status
bcmwl, 5.100.82.38+bdcom, 2.6.38-11-generic, x86_64: installed
bcmwl, 5.100.82.38+bdcom, 3.0.0-12-generic, x86_64: installed
cdc-acm, 2.6.38-8, 2.6.38-11-generic, x86_64: installed
cdc-acm, 3.0.0-12, 3.0.0-12-generic, x86_64: installed
fglrx, 8.881, 2.6.38-11-generic, x86_64: installed
fglrx, 8.881, 3.0.0-12-generic, x86_64: installed
vboxhost, 4.1.4, 2.6.38-11-generic, x86_64: installed
vboxhost, 4.1.4, 3.0.0-12-generic, x86_64: installed

2.6.38のカーネル使う時は2.6.38用、3.0.0のカーネル使う時は3.0.0用のcdc-acm.koが使われるので運用はこれで良いが、よく考えたら、カーネルアップデートが掛かったら、両方共 cdc-acm.ko だからマズいなあ…

3.0.0 カーネルはわしの使用用途では特に問題は出てないし、2.6.38カーネル消すか。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください