[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:03746] Re: userlink デバイスドライバー?



小島基靖と申します.

<m0xqtLT-0002fbC@xxxxxxxxxxxxxxx>の記事において
yosshy@xxxxxxxxxxxxxxxさんは書きました。

>> 
>> CC      = gcc -I/usr/src/linux/include
>> 
>> として下さい.
>>   カーネルのバージョンを /usr/include/linux/version.h でチェックします
>> ので,カーネルを再構築するか,Debain でパッケージ化された 
>> kernel-source or kernel-headers をインストールする必要があります.

# 以前に userlink のコンパイルがわからなかったときお世話になりました.
前回とはちょっと問題が違っていて,これだけだと

gcc -D__KERNEL__ -I/home/mkojima/Work/userlink/userlink-2.1/include  -DMODULE -O2 -fomit-frame-pointer -DMODVERSIONS -include /usr/include/linux/modversions.h -c userlink-suit.c -o userlink.o
cpp: /usr/include/linux/modversions.h: No such file or directory
make: *** [userlink.o] Error 1

で止まってしまいます.

少なくとも5つ問題点が あって,
1. userlink の configure で /usr/src/linux/ の Makefile と .config を
   参照する.(kernel version の判定と SMP の設定の確認のため)

2. Makefile 内で 直に /usr/include/linux/modversions.h を参照している.

3. kernel-source-2.0.29_2.0.29-7.deb は
     CONFIG_MODVERSIONS=y
   でパッケージされているが,
   /usr/src/linux/include/linux/modversions.h が パッケージに入ってない.
   (kernel-headers-2.0.29_2.0.29-7.deb に入っている.)
   これは パッケージ上の問題でしょうか?

4. パッケージを展開しただけでは,/usr/include/linux/* と
   /usr/src/include/linux は一致しない.
   カーネルを 2.0.29 に統一しても,include の中での modules の参照が
   回避しきれない.

5. できれば,カーネルの再コンパイルをしない方法が探したかった.
   せっかく FreeBSD から来た人のイメージが悪くなりそうだったから.   
   (FreeBSD では カーネル内に内蔵しているし)

1,2,4 は Debian の管理システムと userlink の configure の相性の問題.
3 は パッケージの問題?
個人的に 5. を考慮したのが混乱の元なのかもしれない.

Debian の管理システムを活かしながら userlink をコンパイルするには,
カーネル再コンパイルは避けて通れないのかなあ.
-----
    小島基靖    Private E-mail: mkojima@xxxxxxxxxxxx