hito
hitoh****@gmail*****
2007年 4月 10日 (火) 19:12:04 JST
Ubuntu用のTOMOYO Linuxパッケージですが、Ubuntuオリジナルの 配布物と異なり、幾つかのrestricted binary(/lib/firmware/`uname -r`) が含まれていないようです。 # restrictedとは、「配布に制限はないが、修正が行えないもの」です。 これにより、TOMOYOカーネルを利用した際、一部の無線LAN, FC HBAなどの ドライバが動作しなくなっています。 なお、TOMOYO Linuxとしての機能には問題はありません。 これはTOMOYOカーネルを作成する際に用いるソースの問題で、具体的には、 apt-get install linux-sourceで得られる構成物には、debian/firmware/* と、debian/firmware/* をパッケージングするスクリプトが含まれて いないことが原因となっています。 これらは apt-get source linux-image で得られるソースには含まれます。 # なお、以前のメールで書いていた「パッケージングの際に面倒なこと」 # は上記とはまったく関係なく、今回のケースでは問題になりえませんでした。 こうやって作ったカーネルでも多分ほとんどは問題は起きないのですが (というか、過去に自分で作ってたカーネルパッケージもコレを踏んでいた)、 単純に置き換えて使えない、というのは敷居の点から問題になりそうです。 * * * * でもって、これでは困るケースもありそうなので、/lib/firmware/*を 含めることができる手順を (いいかげんに) まとめました。 まだぜんぜん洗練していません。もうちょっとマシな手順があるような 気がしますが、宙づりのままなのもアレなので、投げておきます。 以下の手順は Ubuntu 7.04 Beta でのものです。 1) build用パッケージの入手 $ sudo apt-get build-dep linux-image-2.6.20 $ sudo apt-get install fakeroot libncurses5-dev --- ここからは各ユーザの権限で行えます。 --- 2) ソースパッケージの入手 $ cd ~ $ apt-get source linux-image-debug-2.6.20-14-generic ※カレントディレクトリに linux-source-2.6.20-2.6.20/が 作成され、ソースが自動的に展開されます。 3) ソースパッケージの修正 3-0) TOMOYO Linux化します。 wget http://sourceforge.jp/tracker/download.php?group_id=1973&atid=7342&file_id=1814&aid=10246 3-1) Makefileに以下をパッチします。 ================================================================== --- linux-source-2.6.20-2.6.20/Makefile 2007-03-21 01:19:01.000000000 +0900 +++ linux-source-2.6.20-2.6.20ccs1.4/Makefile 2007-04-10 12:48:15.000000000 +0900 @@ -1,11 +1,12 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 20 -EXTRAVERSION = .3-ubuntu1 +EXTRAVERSION = .3-ccs1.4-ubuntu1 NAME = Homicidal Dwarf Hamster ifdef UBUNTUBUILD -EXTRAVERSION = +EXTRAVERSION =.3-ccs1.4-ubuntu1 endif # *DOCUMENTATION* ================================================================== 3-2) debian/controlに以下をパッチします。 ※要するに、デフォルトで作られるパッケージのセクションを まるまるコピーして、今回作ろうとするパッケージの名前に 置き換えるだけー。 ================================================================== --- linux-source-2.6.20-2.6.20/debian/control 2007-04-02 02:05:19.000000000 +0900 +++ linux-source-2.6.20-2.6.20ccs1.4/debian/control 2007-04-10 12:47:40.000000000 +0900 @@ -59,7 +59,7 @@ information about the problems, which may result by upgrading your kernel. -Package: linux-headers-2.6.20-14 +Package: linux-headers-2.6.20.3-ccs1.4-ubuntu1 Architecture: amd64 i386 powerpc sparc ia64 hppa Section: devel Priority: optional @@ -224,6 +224,20 @@ This is for sites that want the latest kernel headers. Please read /usr/share/doc/linux-headers-2.6.20-14/debian.README.gz for details. +Package: linux-image-debug-2.6.20.3-ccs1.4-ubuntu1 +Architecture: i386 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.20 on i386 + This package provides a kernel debug image for version 2.6.20 on + i386. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + Package: linux-image-debug-2.6.20-14-386 Architecture: i386 Section: devel @@ -654,6 +668,31 @@ The kernel image contained in this package is NOT meant to boot from. It is uncompressed, and unstripped. +Package: linux-image-2.6.20.3-ccs1.4-ubuntu1 +Architecture: i386 amd64 +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, ndiswrapper-modules-1.9, ivtv-modules, kvm-modules-2, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.20 | linux-source-2.6.20 +Description: Linux kernel image for version 2.6.20 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.20 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + Package: linux-image-2.6.20-14-generic Architecture: i386 amd64 Section: base ================================================================== 3-3) debian/changelogに以下をパッチします。 ※ 本当はもっと書かないと駄目ですが、とりあえずなので省略。 ================================================================== --- linux-source-2.6.20-2.6.20/debian/changelog 2007-04-02 02:03:31.000000000 +0900 +++ linux-source-2.6.20-2.6.20ccs1.4/debian/changelog 2007-04-10 10:14:30.000000000 +0900 @@ -1,4 +1,4 @@ -linux-source-2.6.20 (2.6.20-14.22) feisty; urgency=low +linux-source-2.6.20 (1) feisty; urgency=low ================================================================== 4) configをコピーし、menuconfigします。 $ cp /boot/config-hogehoge .config $ make -s menuconfig 5) 以下のコマンドでコンパイル&パッケージ作成を行います。 $ UBUNTUBUILD=1 DEBIAN_SRCTOP=~/kern/linux-source-2.6.20-2.6.20/ fakeroot make-kpkg -initrd kernel_image kernel_headers modules_image 6) しばらく待つと以下のパッケージが、~/に作成されます。 linux-image-2.6.20.3-ccs1.4-ubuntu1_1_i386.deb linux-headers-2.6.20.3-ccs1.4-ubuntu1_1_i386.deb linux-image-debug-2.6.20.3-ccs1.4-ubuntu1_1_i386.deb 以上。