
Ubuntu日本語フォーラム

ログインしていません。
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でもやってみましたが同じでした。
原因が分かる方いらっしゃいましたら教えてください
オフライン
回答ありがとうございます
ソースとへッダーを確認してみましたがこんな感じです。
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のパッケージを突っ込んでみたのですが未だに動きません
オフライン
もしかしたら下記のバグの件かも知れません。
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/233950
似たようなものをいろいろインストールするとややこしくなるので、必要なものだけにした方がよいですよ。
とりあえず、使いたいプログラムのコンパイル要件を確認し、それに合ったUbuntuシステムのバージョンを選んでやり直してみてはどうでしょう。
オフライン
バグですか・・・
ubuntu10.04がでたらまたチャレンジしてみたいと思います。
お付き合いいただき、ありがとうございました。
オフライン
いや、あくまで可能性のひとつですよ。
コンパイルに必要な要件を確認し、
それにあった環境を準備し、
コンパイルできるかを試すのが最良と考えます。
オフライン
作者さんとコンタクトを取りました。
まずERROR:〜については
・エラーではなくautoconf.hとauto.confが無かったらエラーが出て終了するという意味なので問題ない
・なのでmake oldconfigやmake prepareは実行しなくよい
と言うことだそうです。
ただ、紛らわしいということで表示が出ないよう修正された新しいドライバが公開されました。
チャンネルの制御が出来なかったのはmodprobe pt1_drvコマンドの実行し忘れが原因でした。
新しいドライバですべてをきちんとやったところ、ちゃんと動作しました。
作者さんとhmatsueさんに深く感謝します。
お付き合いいただき有難うございました。
オフライン