Turbo Linuxでカーネル2.6のモジュールを有効にする方法

このQ&Aのポイント
  • Turbo Linuxでカーネル2.6のモジュールを有効にする方法を教えてください
  • モジュールをコンパイルしようとした際にエラーメッセージが表示されました。'make config'を変更してモジュールを有効にする必要があるようです。具体的にはどこを変更すればいいのでしょうか?
  • モジュールを有効にするためには、Turbo Linuxのカーネル2.6で'make config'を変更する必要があります。具体的にはどの部分を変更すればいいのか教えてください。
回答を見る
  • ベストアンサー

モジュールんの有効(?)に関する質問

ディストリビューションはTurbo Linuxでカーネルは2.6です。 モジュールを以下のコマンドでコンパイルでコンパイルしようとした所 make -C ~/linux-2.6.5/linux-2.6.5 M='pwd' modules The present kernel configuration has modules disabled. Type 'make config' and enable loadable module support. Then build a kernel with module support enabled. というエラーメッセージ(?)がでました。 意味としては、「'make config'変更してをモジュールを有効にしてください」 という意味だと思いますが、何処を変更すれば良いのでしょうか

  • tukai
  • お礼率57% (102/177)

質問者が選んだベストアンサー

  • ベストアンサー
noname#243622
noname#243622
回答No.1

エラーメッセージに関してはおっしゃるとおりです。 コンパイルの指示を出したモジュール自体がカーネルで有効になってないようですね。(モジュールloadableにもなっていない) カーネルのモジュール変更は、カーネルツリーのルート(この場合だと、~/linux-2.6.5/linux-2.6.5かな?)で、make menuconfig で指定してください。 該当のドライバを探してみてください。 これよりも後は長くなるので、わからなければ返答してください。

tukai
質問者

お礼

ありがとうございました。 make-configを変更してみます。

関連するQ&A

  • Linuxのカーネルモジュールについて

    LinuxのLKM(Loadable Kernel Module)でパケットの送受信機能の実装を検討しています。 こういった機能は実現可能でしょうか。

  • ubuntu上でVMware server

    make: Entering directory `/tmp/vmware-config5/vmmon-only' make -C /lib/modules/3.0.0-19-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules make[1]: Entering directory `/usr/src/linux-headers-3.0.0-19-generic' CC [M] /tmp/vmware-config5/vmmon-only/linux/driver.o /tmp/vmware-config5/vmmon-only/linux/driver.c:39:28: fatal error: linux/smp_lock.h: No such file or directory compilation terminated. make[2]: *** [/tmp/vmware-config5/vmmon-only/linux/driver.o] Error 1 make[1]: *** [_module_/tmp/vmware-config5/vmmon-only] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-3.0.0-19-generic' make: *** [vmmon.ko] Error 2 make: Leaving directory `/tmp/vmware-config5/vmmon-only' Unable to build the vmmon module. といわれ、コンパイルがうまくいきません。 どのようにしたらこの先に進むことができるでしょうか? ご教授お願い致します。

  • LaVie G 内蔵ワイヤレスLAN + madwifi

    こんにちわ、いつもお世話になっております。 自分のノートLaVie G RXにFedora Core 1をインストール しました。ノートの内蔵無線LANは UGJZ 10a/b/g MiniPCI Network Adapter madwifiをダウンロードし、 makeしたいですが、以下の エラーメッセージがあります、 [root@d191pool28 madwifi]# make for i in ./ath_hal ./wlan ./driver; do \ (cd $i; make); \ done make[1]: Entering directory `/root/madwifi/ath_hal' make -C /lib/modules/2.4.22-1.2115.nptl/build SUBDIRS=/root/madwifi/ath_hal modules make[2]: Entering directory `/usr/src/linux-2.4.22-1.2115.nptl' . . (省略) . make[2]: *** [modules] Error 1 make[2]: Leaving directory `/usr/src/linux-2.4.22-1.2115.nptl' make[1]: *** [all] Error 2 make[1]: Leaving directory `/root/madwifi/wlan' make[1]: Entering directory `/root/madwifi/driver' make -C /lib/modules/2.4.22-1.2115.nptl/build SUBDIRS=/root/madwifi/driver modules make[2]: Entering directory `/usr/src/linux-2.4.22-1.2115.nptl' The present kernel configuration has modules disabled. Type 'make config' and enable loadable module support. Then build a kernel with module support enabled. make[2]: *** [modules] Error 1 make[2]: Leaving directory `/usr/src/linux-2.4.22-1.2115.nptl' make[1]: *** [all] Error 2 make[1]: Leaving directory `/root/madwifi/driver' make: *** [all] エラー 2 [root@d191pool28 madwifi]# そのエラーはFedora Core 1のカーネル2.4.22-1に関係 するものでしょうか。カーネルの新しい設定を教えて、 お願い致します。

  • VMwareの設定が上手くいかない

    VMware4.5.2をRedHatLinux Enterprise3にインストールしました。 「vmware-config.pl」を実行したところ、以下のようなエラーが出てきて、先に進めません。リンク先のページを見てもどう対処すればいいかさっぱり分かりませんでした。どなたか対処法および関係ありそうなwebを教えてください。 make[2]: *** [driver.o] Error 1 make[2]: Leaving directory `/tmp/vmware-config0/vmmon-only/driver-2.4.21-15.0.3.ELsmp' make[1]: *** [driver] Error 2 make[1]: Leaving directory `/tmp/vmware-config0/vmmon-only' make: *** [auto-build] Error 2 make: Leaving directory `/tmp/vmware-config0/vmmon-only' Unable to build the vmmon module. For more information on how to troubleshoot module-related problems, please visit our Web site at "http://www.vmware.com/download/modules/modules.html" and "http://www.vmware.com/support/reference/linux/prebuilt_modules_linux.html". Execution aborted. 当方の環境は Dell Precision 650-n Intel Xeon 3.2GHz*2 RedHat Linux 3 (kernel-2.4.21-15.0.3-ELsmp) です。

  • 自作モジュールを組み込む

    以下に何もしない何もしないカーネルモジュールを組み込みたいのですが、うまくいきません。 以下のソースをコンパイルします。 #define MODULE #include <linux/module.h> #include <linux/kernel.h> int init_module(void) { printk("my module installed\n"); return 0; } void cleanup_module(void) { printk("my module removed\n"); } そして、コンパイル $gcc -c sample.c #insmod sample.o とすると、 insmod: error inserting 'sample.o': -1 Invalid module format と怒られてしまいます。 モジュールフォーマットが無効と言われますが、ソースが間違っているのでしょうか。 カーネルのメッセージを調べると、 $dmesg ... No module found in object と、やっぱり組み込まれていません。 何がいけないのか、御知恵をくださいお願いします。 追記: 自分の環境を以下に記載させていただきます。 Linux localhost.localdomain 2.6.11-1.1369_FC4 #1 Thu Jun 2 22:55:56 EDT 2005 i686 athlon i386 GNU/Linux

  • カーネル再構築にて、現在の値を引き継ぐ

    Redhat9のカーネル再構築を行いたいです。 DISCからインストールした状態(カーネル再構築を行おうとしているカーネルの状態)を全て引き継ぎ、  SCSI SupportのProbe all LUNs on each SCSI device を Y にする という1点だけ変更を加えて、実行したいです。 これを目標に、以下の流れでコマンドを実行しました。 cd /usr/src/linux-2.4.**/ make mrproper cp ./configs/kernel-2.4.20-i686.config .config sudo make xconfig  ・[SCSI support]→[Probe all LUNs on each SCSI device]をオンにする。  ・セーブ&exitで終わる。 make bzImage && make modules make modules_install installkernel 2.4.20-8-LUNs arch/i386/boot/bzImage System.map ここで、 参考したサイトの手順を鵜呑みにして cp ./configs/kernel-2.4.20-i686.config .config というコマンドを実行して.configを書き換えているのですが、 これは「DISCからインストールした状態」を引き継いでいないですよね? 「DISCからインストールした状態」を引き継ぐには、 インストールした時点で/usr/src/linux-2.4.**/に存在している.configが、/usr/src/linux-2.4.**/にある状態で、 make xconfig を実行すれば良いのでしょうか。 make oldconfigというコマンドが現在の値を引き継いでいるらしいのですが、 実行後に聞かれるいくつかの選択肢の意味がよくわかりません。

  • ubuntu上でVMware serverのインストール

    ubuntu8.10 カーネル Linux 2.6.27-11-generic この環境でVMware server 1.0.8をインストールしようと苦戦しております。 VMware-server-1.0.8-126538.tar.gzをダウンロードして、解凍し vmware-server-distribフォルダに移動し、vmware-install.plを実行しました。 その後ほとんどの設定にデフォルトで答え、使用許諾を受け入れると None of the pre-built vmmon modules for VMware Server is suitable for your running kernel. Do you want this program to try to build the vmmon module for your system (you need to have a C compiler installed on your system)? [yes] といわれ、コンパイルをはじめます。 その後もデフォルトで答えていき、いざコンパイルがはじまると、、、 Extracting the sources of the vmmon module. Building the vmmon module. Using 2.6.x kernel build system. make: ディレクトリ `/tmp/vmware-config7/vmmon-only' に入ります make -C /lib/modules/2.6.27-11-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules make[1]: ディレクトリ `/usr/src/linux-headers-2.6.27-11-generic' に入ります CC [M] /tmp/vmware-config7/vmmon-only/linux/driver.o In file included from /tmp/vmware-config7/vmmon-only/./include/machine.h:24, from /tmp/vmware-config7/vmmon-only/linux/driver.h:15, from /tmp/vmware-config7/vmmon-only/linux/driver.c:49: /tmp/vmware-config7/vmmon-only/./include/x86.h:830:1: warning: "PTE_PFN_MASK" redefined In file included from include/asm/paravirt.h:7, from include/asm/irqflags.h:55, from include/linux/irqflags.h:57, from include/asm/system.h:11, from include/asm/processor.h:17, from include/linux/prefetch.h:14, from include/linux/list.h:6, from include/linux/module.h:9, from /tmp/vmware-config7/vmmon-only/linux/driver.c:12: include/asm/page.h:22:1: warning: this is the location of the previous definition In file included from /tmp/vmware-config7/vmmon-only/linux/vmhost.h:13, from /tmp/vmware-config7/vmmon-only/linux/driver.c:71: /tmp/vmware-config7/vmmon-only/./include/compat_semaphore.h:5:27: error: asm/semaphore.h: No such file or directory /tmp/vmware-config7/vmmon-only/linux/driver.c:146: error: unknown field ‘nopage’ specified in initializer /tmp/vmware-config7/vmmon-only/linux/driver.c:147: 警告: initialization from incompatible pointer type /tmp/vmware-config7/vmmon-only/linux/driver.c:150: error: unknown field ‘nopage’ specified in initializer /tmp/vmware-config7/vmmon-only/linux/driver.c:151: 警告: initialization from incompatible pointer type /tmp/vmware-config7/vmmon-only/linux/driver.c: In function ‘LinuxDriver_Ioctl’: /tmp/vmware-config7/vmmon-only/linux/driver.c:1670: error: too many arguments to function ‘smp_call_function’ make[2]: *** [/tmp/vmware-config7/vmmon-only/linux/driver.o] エラー 1 make[1]: *** [_module_/tmp/vmware-config7/vmmon-only] エラー 2 make[1]: ディレクトリ `/usr/src/linux-headers-2.6.27-11-generic' から出ます make: *** [vmmon.ko] エラー 2 make: ディレクトリ `/tmp/vmware-config7/vmmon-only' から出ます Unable to build the vmmon module. For more information on how to troubleshoot module-related problems, please visit our Web site at "http://www.vmware.com/download/modules/modules.html" and "http://www.vmware.com/support/reference/linux/prebuilt_modules_linux.html". Execution aborted. といわれ、コンパイルがうまくいきません。 どのようにしたらこの先に進むことができるでしょうか? ご教授お願い致します。

  • LKMを用いたカーネル2.6でのシステムコールのフック

    度々すみません。 LKMを使ったシステムコールのフックに挑戦しているのですがうまくいかずに悩んでいます。 お力を貸していただけたら嬉しいです。 ディストリビューション: Debian 4.0r4 カーネル: 2.6.24 以前2.6.18のカーネルを使っていたのですが、使用するカーネルのバージョンを上げました。 開発前にやったことをすべて書いておきます。 ・ linux-source-2.6.24_2.6.24-6~etchnhalf.7_all.deb ・ linux-headers-2.6.24-etchnhalf.1-686_2.6.24-6~etchnhalf.7_i386.deb ・ linux-kbuild-2.6.24-1~etchnhalf.1_i386.deb をダウンロードし、dpkg -i *.deb で展開。 /usr/src/linux-source-2.6.24/arch/x86/kernel/i386_ksyms_32.c の末尾に以下の2行を追加 extern void *sys_call_table[]; EXPORT_SYMBOL(sys_call_table); 変更後以下の手順でカーネルコンパイル cp /boot/config-2.6.18-6-686 .config make menuconfig (Enterを押しっぱなしにして設定終了) make-kpkg --initrd kernel_image dpkg -i (kernel_image).deb 書いたプログラムは以下です。 #include <linux/module.h> #include <linux/init.h> #include <linux/syscalls.h> #include <linux/utsname.h> #include <asm-x86/unistd_32.h> MODULE_LICENSE("GPL"); extern void *sys_call_table[]; static char *msg = "[message.o]:"; asmlinkage int (*orig_open)(const char *pathname, int flags); asmlinkage static int hook_open(const char *pathname, int flags) { printk(KERN_INFO "hook_open(\"%s\", %d)\n", pathname, flags); return orig_open(pathname, flags); } static int message_module(void) { printk(KERN_INFO "%s loaded\n",msg); printk(KERN_INFO "%s hook_init\n", msg); orig_open = sys_call_table[__NR_open]; sys_call_table[__NR_open] = hook_open; return 0; } static void message_remove(void) { printk(KERN_INFO "%s removed\n", msg); printk(KERN_INFO "%s hook_exit\n", msg); sys_call_table[__NR_open] = orig_open; } module_init(message_module); module_exit(message_remove); コンパイルすると以下のようなエラーが出ます。 user@debian:~/lkm/message$ make make -C /lib/modules/2.6.24/build M=/home/user/lkm/message modules make[1]: ディレクトリ `/usr/src/linux-source-2.6.24' に入ります Building modules, stage 2. MODPOST 1 modules WARNING: "sys_call_table" [/home/user/lkm/message/message.ko] undefined! make[1]: ディレクトリ `/usr/src/linux-source-2.6.24' から出ます 長文で申し訳ありませんが、お力をお貸しください。 宜しくお願いします。

  • linux/module.h インクルードできない

    もう自力ではわからず、検索しても解決できなかったので、わかる方、力を貸してください。 まず環境は Ubuntu 12.10 をVirtualBoxで動かしています。 そして、以下のパッケージをインストールしました。 linux-source-3.5.0 linux-header-3.5.0-19-generic その後、以下のソースをコンパイルしようとしました。 1 #include <linux/module.h> /* module 作成には必須 */ 2 #include <linux/kernel.h> /* printk */ 3 4 MODULE_LICENSE( "GPL" ); 5 6 static char* msg = "module [message.o]"; 7 8 9 /* 10 * モジュールの初期処理 11 * insmod 時に呼ばれる 12 */ 13 int 14 init_module( void ) 15 { 16 printk( KERN_INFO "%s : loaded into kernel\n", msg ); 17 18 /* モジュール初期化に成功したので 0 を返す 19 0 以外の値を返せば初期化失敗とみなされモジュールは 20 カーネルには組み込まれない */ 21 return 0; 22 } 23 24 25 /* 26 * モジュールの解放処理 27 * モジュールの参照数が 0 であれば、rmmod 時に呼ばれる 28 */ 29 void 30 cleanup_module( void ) 31 { 32 printk( KERN_INFO "%s : removed from kernel\n", msg ); 33 } 34 35 36 /* End of message.c */ このソース自体はネットで公開されていたもののコピペです。 これを解説を読んで、いざコンパイルというときに、 linux/module.h そのようなファイルやディレクトリはありません 上のエラーが出ます。 でも、/usr/src/linux-source-3.5.0/include/linuxの中に、module.hは確かにありました。 あったのにもかかわらず、そのようなファイルやディレクトリがありませんというのは、いったいどのような原因が考えられるのでしょうか。 自力では解決できなかったので、わかるかた教えてください。

  • Debian squeezeのカーネルソースの場所

    現在、Debian squueze(kernel:2.6.32-5-amd64)を入れたPCに 無線LAN(RaLink RT2860)のドライバをインストール(コンパイル)するため、 付属のReadmeを読みながらMakefileの設定を行っています。 しかし、肝心のカーネルソースが自分のPCのどこにあるか分からず、 Makefile内のカーネルソース(LINUX_SRC)をどう指定すればよいのか分かりません。 どのように設定、もしくはどのようにして調べたら良いのでしょうか? Makefile内の該当箇所を以下に抜粋します。 (このままmakeを実行してもエラーが出ます。) =================================================== ifeq ($(PLATFORM),PC) # Linux 2.6 LINUX_SRC = /lib/modules/$(shell uname -r)/kernel/build # Linux 2.4 Change to your local setting #LINUX_SRC = /usr/src/linux-2.4 LINUX_SRC_MODULE = /lib/modules/$(shell uname -r)/kernel/drivers/net/wireless/ CROSS_COMPILE = endif =================================================== Linuxを始めてまだ一週間程度で右も左も分からないので、 変な質問の仕方をしているかもしれませんが、 是非ご教授、アドバイス等を頂きたいと思います。 よろしくお願いします。