お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-11-05 02:44:06

op7
メンバ
登録日: 2008-09-12

コンパイルが出来ない

http://hg.honeyplanet.jp/pt1

コンパイル時に次のようなエラーが出ます。

コード:

make
make -C /lib/modules/`uname -r`/build M=`pwd` V=1 modules
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.24-25-generic' に入ります
test -e include/linux/autoconf.h -a -e include/config/auto.conf || (        \
    echo;                                \
    echo "  ERROR: Kernel configuration is invalid.";        \
    echo "         include/linux/autoconf.h or include/config/auto.conf are missing.";    \
    echo "         Run 'make oldconfig && make prepare' on kernel src to fix it.";    \
    echo;                                \
    /bin/false)
mkdir -p /home/am/pt1-28f25ec7f962/driver/.tmp_versions ; rm -f /home/am/pt1-28f25ec7f962/driver/.tmp_versions/*
make -f scripts/Makefile.build obj=/home/am/pt1-28f25ec7f962/driver
  gcc -m32 -Wp,-MD,/home/am/pt1-28f25ec7f962/driver/.pt1_pci.o.d  -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.2.4/include -D__KERNEL__  -Iinclude  -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -fno-delete-null-pointer-checks -O2 -pipe -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2  -march=i586 -mtune=generic -ffreestanding -maccumulate-outgoing-args   -Iinclude/asm-x86/mach-default -fomit-frame-pointer -g  -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign    -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(pt1_pci)"  -D"KBUILD_MODNAME=KBUILD_STR(pt1_drv)" -c -o /home/am/pt1-28f25ec7f962/driver/.tmp_pt1_pci.o /home/am/pt1-28f25ec7f962/driver/pt1_pci.c
  gcc -m32 -Wp,-MD,/home/am/pt1-28f25ec7f962/driver/.pt1_i2c.o.d  -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.2.4/include -D__KERNEL__  -Iinclude  -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -fno-delete-null-pointer-checks -O2 -pipe -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2  -march=i586 -mtune=generic -ffreestanding -maccumulate-outgoing-args   -Iinclude/asm-x86/mach-default -fomit-frame-pointer -g  -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign    -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(pt1_i2c)"  -D"KBUILD_MODNAME=KBUILD_STR(pt1_drv)" -c -o /home/am/pt1-28f25ec7f962/driver/.tmp_pt1_i2c.o /home/am/pt1-28f25ec7f962/driver/pt1_i2c.c
  gcc -m32 -Wp,-MD,/home/am/pt1-28f25ec7f962/driver/.pt1_tuner.o.d  -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.2.4/include -D__KERNEL__  -Iinclude  -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -fno-delete-null-pointer-checks -O2 -pipe -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2  -march=i586 -mtune=generic -ffreestanding -maccumulate-outgoing-args   -Iinclude/asm-x86/mach-default -fomit-frame-pointer -g  -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign    -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(pt1_tuner)"  -D"KBUILD_MODNAME=KBUILD_STR(pt1_drv)" -c -o /home/am/pt1-28f25ec7f962/driver/.tmp_pt1_tuner.o /home/am/pt1-28f25ec7f962/driver/pt1_tuner.c
  gcc -m32 -Wp,-MD,/home/am/pt1-28f25ec7f962/driver/.pt1_tuner_data.o.d  -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.2.4/include -D__KERNEL__  -Iinclude  -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -fno-delete-null-pointer-checks -O2 -pipe -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2  -march=i586 -mtune=generic -ffreestanding -maccumulate-outgoing-args   -Iinclude/asm-x86/mach-default -fomit-frame-pointer -g  -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign    -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(pt1_tuner_data)"  -D"KBUILD_MODNAME=KBUILD_STR(pt1_drv)" -c -o /home/am/pt1-28f25ec7f962/driver/.tmp_pt1_tuner_data.o /home/am/pt1-28f25ec7f962/driver/pt1_tuner_data.c
  ld -m elf_i386 -m elf_i386   -r -o /home/am/pt1-28f25ec7f962/driver/pt1_drv.o /home/am/pt1-28f25ec7f962/driver/pt1_pci.o /home/am/pt1-28f25ec7f962/driver/pt1_i2c.o /home/am/pt1-28f25ec7f962/driver/pt1_tuner.o /home/am/pt1-28f25ec7f962/driver/pt1_tuner_data.o
  Building modules, stage 2.
make -f /usr/src/linux-headers-2.6.24-25-generic/scripts/Makefile.modpost
  scripts/mod/modpost -m -a -i /usr/src/linux-headers-2.6.24-25-generic/Module.symvers -I /home/am/pt1-28f25ec7f962/driver/Module.symvers -o /home/am/pt1-28f25ec7f962/driver/Module.symvers -w  -s
  gcc -m32 -Wp,-MD,/home/am/pt1-28f25ec7f962/driver/.pt1_drv.mod.o.d  -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.2.4/include -D__KERNEL__  -Iinclude  -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -fno-delete-null-pointer-checks -O2 -pipe -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2  -march=i586 -mtune=generic -ffreestanding -maccumulate-outgoing-args   -Iinclude/asm-x86/mach-default -fomit-frame-pointer -g  -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(pt1_drv.mod)"  -D"KBUILD_MODNAME=KBUILD_STR(pt1_drv)" -DMODULE -c -o /home/am/pt1-28f25ec7f962/driver/pt1_drv.mod.o /home/am/pt1-28f25ec7f962/driver/pt1_drv.mod.c
  ld -m elf_i386 -r -m elf_i386  --build-id -o /home/am/pt1-28f25ec7f962/driver/pt1_drv.ko /home/am/pt1-28f25ec7f962/driver/pt1_drv.o /home/am/pt1-28f25ec7f962/driver/pt1_drv.mod.o
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.24-25-generic' から出ます

コンパイル自体はエラーもなく終了するのですが、チャンネルの制御が出来ません
make oldconfig && make prepareしろと言われたので
make oldconfig(長すぎて貼れません)

コード:

sudo make prepare
scripts/kconfig/conf -s arch/x86/Kconfig
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
make[1]: *** `arch/x86/kernel/asm-offsets.s' に必要なターゲット `arch/x86/kernel/asm-offsets.c' を make するルールがありません.  中止.
make: *** [prepare0] エラー 2

といった具合にエラーが発生します。
調べてみたところ/usr/src/linuxの/usr/src/linux-headers-2.6.24-25-genericへのシンボリックの張り直せと出て来たのでやってみたのですが特に変わりません

8.04だけでなく9.10でもやってみましたが同じでした。
原因が分かる方いらっしゃいましたら教えてください

オフライン

 

#2 2009-11-08 14:04:16

hmatsue
アドバイザ
登録日: 2009-03-10

Re: コンパイルが出来ない

カーネルソースのバージョンとヘッダのバージョンがあっていないのではないでしょうか。

オフライン

 

#3 2009-11-08 19:56:23

op7
メンバ
登録日: 2008-09-12

Re: コンパイルが出来ない

回答ありがとうございます
ソースとへッダーを確認してみましたがこんな感じです。

コード:

dpkg -l | grep linux-source
ii  linux-source-2.6.24                                                   2.6.24-25.63                                               Linux kernel source for version 2.6.24 with

コード:

dpkg -l | grep linux-headers
ii  linux-headers-2.6.24-16                                               2.6.24-16.30                                               Header files related to Linux kernel version
ii  linux-headers-2.6.24-16-generic                                       2.6.24-16.30                                               Linux kernel headers for version 2.6.24 on x
ii  linux-headers-2.6.24-25                                               2.6.24-25.63                                               Header files related to Linux kernel version
ii  linux-headers-2.6.24-25-generic                                       2.6.24-25.63                                               Linux kernel headers for version 2.6.24 on x
ii  linux-headers-generic                                                 2.6.24.25.27                                               Generic Linux kernel headers
ii  linux-headers-lum-2.6.24-25-generic                                   2.6.24-25.42                                               Header files related to linux-ubuntu-modules

試しに片っ端から-devのパッケージを突っ込んでみたのですが未だに動きません

オフライン

 

#4 2009-11-09 08:24:58

hmatsue
アドバイザ
登録日: 2009-03-10

Re: コンパイルが出来ない

もしかしたら下記のバグの件かも知れません。
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/233950

似たようなものをいろいろインストールするとややこしくなるので、必要なものだけにした方がよいですよ。
とりあえず、使いたいプログラムのコンパイル要件を確認し、それに合ったUbuntuシステムのバージョンを選んでやり直してみてはどうでしょう。

オフライン

 

#5 2009-11-11 23:35:59

op7
メンバ
登録日: 2008-09-12

Re: コンパイルが出来ない

バグですか・・・
ubuntu10.04がでたらまたチャレンジしてみたいと思います。
お付き合いいただき、ありがとうございました。

オフライン

 

#6 2009-11-12 07:45:50

hmatsue
アドバイザ
登録日: 2009-03-10

Re: コンパイルが出来ない

いや、あくまで可能性のひとつですよ。
コンパイルに必要な要件を確認し、
それにあった環境を準備し、
コンパイルできるかを試すのが最良と考えます。

オフライン

 

#7 2009-11-14 01:15:43

op7
メンバ
登録日: 2008-09-12

Re: コンパイルが出来ない

作者さんとコンタクトを取りました。
まずERROR:〜については
・エラーではなくautoconf.hとauto.confが無かったらエラーが出て終了するという意味なので問題ない
・なのでmake oldconfigやmake prepareは実行しなくよい
と言うことだそうです。
ただ、紛らわしいということで表示が出ないよう修正された新しいドライバが公開されました。

チャンネルの制御が出来なかったのはmodprobe pt1_drvコマンドの実行し忘れが原因でした。
新しいドライバですべてをきちんとやったところ、ちゃんと動作しました。
作者さんとhmatsueさんに深く感謝します。
お付き合いいただき有難うございました。

オフライン

 

Board footer

Powered by FluxBB