8 Linux ネルコンフてみた

松 信

PIC
____________________________________________________________________

8.1 はじめに

2008 年末2.6.28 ましたがみなさんコンパイルしていますか 23 名ほどは朝昼Linus ツリから git pull して コンパイルされているといますがDebian しているネル使ているといます使ている由は ですがコンフグレがめんどうくさいとかどこをえていいのかわからないなどが由だといます *8

またLinux ネルくなりドライバモジにしておくとある程度動的に必要モジ してくれるようになたのも由のつかもしれません立場からネルれる ようにする方法つとしてDebian しているネルからモジみにするための クリプトりましたこれによどこを有効にすればいいのかわからないなどのがすべて ます

8.2 なぜらはネルリコンパイルするのか

Debian ネルリコンパイルしないようですたようにリコンパイルしているネルハカ さんぐらいでしらがネルコンパイルコンパイルているからには由があるといます ネルリコンパイルする由として以下えられます

ネルリコンパイルすることはメリだけではなくデメリもあります

たぶんこの文章んでいるたちは予備なのでデメリにせずにんでいけると ます

8.3 プログラム

プログラムシステムシステム必要ネルモジされたネルコン グフイルするというものです

8.3.1 システム方法

キモはどのようにしてシステムするかにかかています動いているネルからられる以下 のものがえられます




コマンド




dmidecode BIOS からシステムする
lspci PCI する
lsusb USB する
dmesg ネルデバグメする
lsmod してるモジする

1: 動しているネルからられる

これらのできて単にえるものは lsmod でし由はしているモジ現在Linux システ 必要なものなのでわかりやすいためですlsmod 利用することにしました *9

8.3.2 単な流れ

以下単な流れをします

  1. としてネルソスコへのパス動作しているネルコンフグフイルlsmod する
  2. lsmod からしているドライバモジする

    lsmod すると以下のようなされます

    $ lsmod
    Module                  Size  Used by
    i915                   25280  2
    drm                    65256  3 i915
    ipv6                  235300  10
    rfcomm                 28272  2
    l2cap                  17248  9 rfcomm
    ........
  3. ドライバモジ名と modinfo コマンドからドライバモジパスする

    modinfo コマンド使うとしたドライバモジ名のすることができます-n オプシ使うと ドライバオブジクトフイルパスされます

    $ modinfo -n i915
    /lib/modules/2.6.26-1-amd64/kernel/drivers/char/drm/i915.ko

    にすると/lib/modules/2.6.26-1-amd64/kernel/ 以下ネルソスコパス造は同じ なためドライバモジi915 Makefile のあるパスdrivers/char/drm/Makefile になりますまた ライバオブジクトフイルi915.ko であることが分かります

  4. した Makefile へのパスドライバオブジクトフイル名よりになるドライバコンフ名を する

    ドライバオブジクトフイル (i915.ko) ドライバモジ(i915) 必ずしも るとはらないのでドライバモジ名を使ドライバコンフ名をします *10

    .....
    obj-$(CONFIG_DRM_I830)  += i830.o
    obj-$(CONFIG_DRM_I915)  += i915.o <-  これ
    obj-$(CONFIG_DRM_SIS)   += sis.o
    .....
  5. したドライバコンフ名を存する
  6. 動作しているネルコンフグフイルドライバコンフえる

    表現使えると以下のようになりますm モジ味しy みを味し ます

    ....
    CONFIG_DRM_I830=m
    CONFIG_DRM_I915=m
    CONFIG_DRM_MGA=m
    ....

    更後

    ....
    CONFIG_DRM_I830=m
    CONFIG_DRM_I915=y <- 
    CONFIG_DRM_MGA=m
    ....
  7. したものをイルする
8.3.3 使てみる

したソフトウ以下のように使いますちなみにlsmod イルしないプログラム 動的にします

$ moge -h
moge - Script to Kernel Module Enabler from lsmod command output

Copyright (C) 2008,2009 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Usage: moge [options]
-c, --configfile <file>   Kernel config file name
-k, --kernel              Kernel source path
-o, --output <file>       outout file
-l, --lsmod               lsmod command output file
-h, --help                display this help screen and exit
-v, --version             show the version and exit

By Nobuhiro Iwamatsu <iwmatsu@nigauri.org>
$ moge -o sage -c config-2.6.26-1-686 -l lsmod.list -k /usr/src/linux-2.6-2.6.26/

*11

8.4 されたコンフグフイル使ネルコンパイルする

そくされたコンフグフイル使ネルコンパイルしてみましネルコンパイル方法以下 りです

$ sudo apt-get update
$ sudo apt-get install linux-source-2.6.26 kernel-package
$ cd /usr/src/linux-source-2.6.26
$ make oldconfig
$ fakeroot make-kpkg --revision=yourpc00 kernel_image kenrel_header
$ ls ../
linux-image-2.6.26_yourpc00_i386.deb
linux-headers-2.6.26_yourpc00_i386.deb
.......

8.5

8.5.1 lsmod

eeePC してみてどれぐらいたのか調べました

61 モジ

Module                  Size  Used by
i915                   25280  2
drm                    65256  3 i915
ipv6                  235300  10
rfcomm                 28272  2
l2cap                  17248  9 rfcomm
bluetooth              44900  4 rfcomm,l2cap
psmouse                32336  0
uvcvideo               45704  0
serio_raw               4740  0
compat_ioctl32          1312  1 uvcvideo
videodev               27520  1 uvcvideo
v4l1_compat            12260  2 uvcvideo,videodev
i2c_i801                7920  0
i2c_core               19828  1 i2c_i801
pcspkr                  2432  0
iTCO_wdt                9508  0
snd_hda_intel         324248  0
rng_core                3940  0
snd_pcm_oss            32800  0
snd_pcm                62596  2 snd_hda_intel,snd_pcm_oss
snd_mixer_oss          12320  1 snd_pcm_oss
video                  16432  0
output                  2912  1 video
battery                10180  0
ac                      4196  0
snd_seq_dummy           2660  0
eeepc_laptop            7440  0
button                  6096  0
atl2                   22872  0
snd_seq_oss            24992  0
snd_seq_midi_event      6432  1 snd_seq_oss
snd_seq                41456  5
 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_timer              17800  2 snd_pcm,snd_seq
snd_seq_device          6380  3 snd_seq_dummy,snd_seq_oss,
snd_seq
snd                    45604  8 snd_hda_intel,snd_pcm_oss,
snd_pcm,snd_mixer_oss,snd_seq_oss,snd_seq,snd_timer,
snd_seq_device
soundcore               6368  1 snd
snd_page_alloc          7816  2 snd_hda_intel,snd_pcm
intel_agp              22332  1
agpgart                28776  3 drm,intel_agp
evdev                   8000  6
ext3                  105512  1
jbd                    39444  1 ext3
mbcache                 7108  1 ext3
usb_storage            75936  0
sd_mod                 22200  3
ata_piix               14180  2
ahci                   23176  0
ata_generic             4676  0
libata                140384  3 ata_piix,ahci,ata_generic
scsi_mod              129356  3 usb_storage,sd_mod,libata
dock                    8304  1 libata
ide_pci_generic         3908  0 [permanent]
ide_core               96168  1 ide_pci_generic
ehci_hcd               28428  0
uhci_hcd               18672  0
usbcore               118160  5 uvcvideo,usb_storage,ehci_hcd,
uhci_hcd
thermal                15228  0
processor              32576  2 thermal
fan                     4164  0
thermal_sys            10856  4 video,thermal,processor,fan

更後 0 モジ

Module                  Size  Used by
8.5.2 bootchart

bootchart でどれぐらい動が速くなたか調べてみました


PIC

2: bootchart

PIC

3: 更後bootchart


動チより動時モジみがなくなりほど速くなていることが分かり ます

8.6 今後予定

このソフトウPerl のためにてみましたが今後展開としては以下のことをえています

  1. make-kpkg れる

    make-kpkg Perl られているのでれやすいかもしれません

  2. Debian するとぶかもしれません

  3. ネルコンパイル Web ビス

    lsmod 分かれば Debian ネルコンパイルなのでビスするとぶかもし れませんそれぐらい分でやれというじです

  4. ドライバオブジクトフイルドライバモジ名がしないやつを直す

    らないとハマるのでしておいたがいいとています

48 エリア Debian 2009 1
____________________________________________________________________________________________