* VirtualBoxのカーネルドライバがコンパイルできない [#d46b5938]

メッセージ

Out of the boxの状態だとカーネルソースがあっても、autoconf.h が無い、等のエラーで VirtualBoxのカーネルモジュールのコンパイルが失敗する。

/usr/src/linux で make prepare すると、上記のエラーは解決するが、scripts/mod/modpost コマンドが無い、とエラーになる

modpost コマンドを作成するには /usr/src/linux で make scripts を実行する必要がある。

多分、/usr/src/linux で make prepare && make scripts しておけば OK


  make prepare scripts
  cp include/linux/{autoconf,bounds,version,utsrelease}.h \
      $P/usr/src/$src/include/linux
  cp scripts/mod/{elfconfig.h,mk_elfconfig,modpost} \
      $P/usr/src/$src/scripts/mod

Plamo-4.7ツリーに反映済みです。 -- tamu 2010-08-28 (土) 17:17:27

 VirtualBox 3.2.8 r64453 installer, built 2010-08-05T11:57:18Z.

 Testing system setup...
 System setup appears correct.

 Installing VirtualBox to /opt/VirtualBox

 Output from the module build process (the Linux kernel build system) follows:

 make KBUILD_VERBOSE=1 -C /lib/modules/2.6.32.16-plamoSMP/build SUBDIRS=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 modules
 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)

   ERROR: Kernel configuration is invalid.
          include/linux/autoconf.h or include/config/auto.conf are missing.
          Run 'make oldconfig && make prepare' on kernel src to fix it.

 mkdir -p /tmp/vbox.0/.tmp_versions ; rm -f /tmp/vbox.0/.tmp_versions/*
 
   WARNING: Symbol version dump /usr/src/linux-2.6.32.16/Module.symvers
            is missing; modules will have no dependencies and modversions.
 
 make -f scripts/Makefile.build obj=/tmp/vbox.0
   gcc -Wp,-MD,/tmp/vbox.0/linux/.SUPDrv-linux.o.d  -nostdinc -isystem /usr/lib/gcc/i586-pc-linux/4.3.5/include
 -Iinclude  -I/usr/src/linux-2.6.32.16/arch/x86/include -include include/linux/autoconf.h -D__KERNEL__ 
-Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration
-Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mno-red-zone-mcmodel=kernel -maccumulate-outgoing-args
-DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -fomit-frame-pointer
-I/lib/modules/2.6.32.16-plamoSMP/build/include -I/tmp/vbox.0/ -I/tmp/vbox.0/include -I/tmp/vbox.0/r0drv/linux
-D__KERNEL__ -DMODULE -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -DVBOX_WITH_HARDENING
-DCONFIG_VBOXDRV_AS_MISC -DRT_ARCH_X86 -DVBOX_WITH_64_BITS_GUESTS  -DMODULE -D"KBUILD_STR(s)=#s"
-D"KBUILD_BASENAME=KBUILD_STR(SUPDrv_linux)"  -D"KBUILD_MODNAME=KBUILD_STR(vboxdrv)"  -c 
-o /tmp/vbox.0/linux/SUPDrv-linux.o /tmp/vbox.0/linux/SUPDrv-linux.c  
/tmp/vbox.0/linux/SUPDrv-linux.c:1: error: code model 'kernel' not supported in the 32 bit mode
/tmp/vbox.0/linux/SUPDrv-linux.c:1: sorry, unimplemented: 64-bit mode not compiled in
 make[2]: *** [/tmp/vbox.0/linux/SUPDrv-linux.o] エラー 1
 make[1]: *** [_module_/tmp/vbox.0] エラー 2
 make: *** [vboxdrv] エラー 2
 
 End of the output from the Linux kernel build system.
 Installation successful
 

make prepare で解決するので、解決した環境と差分を取ってみると、結構足りないのがあって、 多分、このあたりが影響しているような印象

 diff -uprN ./usr/src/linux/include/config/auto.conf /usr/src/linux/include/config/auto.conf
 --- ./usr/src/linux/include/config/auto.conf  1970-01-01 09:00:00.000000000 +0900
 +++ /usr/src/linux/include/config/auto.conf   2010-08-30 21:08:11.180502448 +0900
 @@ -0,0 +1,3091 @@
 +#
 +# Automatically generated make config: don't edit
 +# Linux kernel version: 2.6.32.16
 +# Mon Aug 30 21:08:11 2010
 +#
 +CONFIG_USB_SISUSBVGA=m
 +CONFIG_DVB_STV6110=m
 +CONFIG_VIDEO_V4L1_COMPAT=y
 +CONFIG_SENSORS_WM8350=m
 +CONFIG_PCMCIA_FMVJ18X=m
 +CONFIG_BLK_DEV_FD=m
 +CONFIG_ACPI_AC=m
 +CONFIG_ACPI_SYSFS_POWER=y
 +CONFIG_PM_STD_PARTITION=""
 +CONFIG_SQUASHFS_LZMA=y
 +CONFIG_RTC_DRV_M41T80=m
 +CONFIG_USB_LEGOTOWER=m
 +CONFIG_HID_CHERRY=m
....

まぁ、/usr/src/linux で make prepare すれば解決するし、Plamoを使おうという人に、そこまで手取り足取りしなくてもいいんじゃないか、 という気はするところ(笑 -- kojima 2010-08-30 (月) 21:50:27

--- old/PlamoBuild.kernelsrc-2.6.32.16_plamoSMP-20100828	2010-08-28 14:38:06.000000000 +0900
+++ PlamoBuild.kernelsrc-2.6.32.16_plamoSMP	2010-08-31 10:42:24.000000000 +0900
@@ -16,7 +16,7 @@
 pkgbase=kernelsrc
 vers=2.6.32.16_plamoSMP
 arch=noarch
-build=P2
+build=P3
 src=linux-2.6.32.16
 OPT_CONFIG=""
 DOCS=""
@@ -258,8 +258,11 @@
 if [ $opt_build -eq 1 ] ; then
   for i in `seq 0 $((${#B[@]} - 1))` ; do
     cd ${B[$i]}
-    false && if [ -f Makefile ] ; then
-      make
+    if [ -f Makefile ] ; then
+      make prepare scripts
+      mv include/linux/bounds.h $W
+      make clean
+      mv $W/bounds.h include/linux
     fi
   done
 fi
@@ -281,11 +284,6 @@
   done
   install -d $P/usr/src
   cp -dR . $P/usr/src/$src
-  make prepare scripts
-  cp include/linux/{autoconf,bounds,version,utsrelease}.h \
-      $P/usr/src/$src/include/linux
-  cp scripts/mod/{elfconfig.h,mk_elfconfig,modpost} \
-      $P/usr/src/$src/scripts/mod
   find $P/usr/src/$src \( -name ".gitignore" -o -name ".mailmap" \
       -o -name "*.orig" \) -exec rm {} \;
   ln -s $src $P/usr/src/linux
@@ -349,8 +347,8 @@
   done
   convert
   prune_symlink $P/usr/src
-  prune_symlink $P/usr/src/$src/arch/microblaze/boot/dts
   touch -t `date '+%m%d0900'` $P/usr/src/$src/arch/microblaze/boot/dts
+  touch -t `date '+%m%d0900'` $P/usr/src/$src/include
   tar cvpf $pkg.tar -C $P `cd $P ; find usr/src -maxdepth 1 | tail -n+2`
   tar rvpf $pkg.tar -C $P `cd $P ; find sbin | tail -n+2`
   tar rvpf $pkg.tar -C $P usr/share/doc/$src

これにより増えたファイルは以下です。

--- kernelsrc-2.6.32.16_plamoSMP-noarch-P2.txt	2010-08-31 09:00:00.000000000 +0900
+++ kernelsrc-2.6.32.16_plamoSMP-noarch-P3.txt	2010-08-31 09:00:00.000000000 +0900
@@ -29186,6 +29186,4308 @@
 -rw-r--r-- root/root       349 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/include/xen/xen-ops.h
 -rw-r--r-- root/root      8215 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/include/xen/xenbus.h
 -rw-r--r-- root/root      2609 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/include/xen/xencomm.h
+drwxr-xr-x root/root         0 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/include/config/
+-rw-r--r-- root/root     14363 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/include/config/auto.conf.cmd
+drwxr-xr-x root/root         0 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/include/config/usb/
(snip)
+-rw-r--r-- root/root         0 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/include/config/highmem.h
+-rw-r--r-- root/root     71839 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/include/config/auto.conf
+-rw-r--r-- root/root        19 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/include/config/kernel.release
+drwxr-xr-x root/root         0 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/include/asm-x86/
+-rw-r--r-- root/root         0 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/include/asm
 drwxr-xr-x root/root         0 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/init/
 -rw-r--r-- root/root     39239 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/init/Kconfig
 -rw-r--r-- root/root      1129 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/init/Makefile
@@ -30882,6 +35184,9 @@
 -rw-r--r-- root/root     11835 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/basic/docproc.c
 -rw-r--r-- root/root      9802 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/basic/fixdep.c
 -rw-r--r-- root/root      1104 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/basic/hash.c
+-rwxr-xr-x root/root      8363 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/basic/fixdep
+-rwxr-xr-x root/root     13065 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/basic/docproc
+-rwxr-xr-x root/root      4689 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/basic/hash
 -rw-r--r-- root/root       702 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/bin2c.c
 -rw-r--r-- root/root      4039 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/binoffset.c
 -rwxr-xr-x root/root      1711 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/bloat-o-meter
@@ -30991,6 +35296,10 @@
 -rw-r--r-- root/root      6540 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/kconfig/zconf.l
 -rw-r--r-- root/root     69973 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/kconfig/zconf.tab.c_shipped
 -rw-r--r-- root/root     14905 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/kconfig/zconf.y
+-rw-r--r-- root/root     69973 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/kconfig/zconf.tab.c
+-rw-r--r-- root/root     58454 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/kconfig/lex.zconf.c
+-rw-r--r-- root/root     10154 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/kconfig/zconf.hash.c
+-rwxr-xr-x root/root     75794 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/kconfig/conf
 -rwxr-xr-x root/root     62295 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/kernel-doc
 drwxr-xr-x root/root         0 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/ksymoops/
 -rw-r--r-- root/root       386 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/ksymoops/README
@@ -31054,6 +35363,10 @@
 -rw-r--r-- root/root      3560 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/tracing/draw_functrace.py
 -rw-r--r-- root/root     30196 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/unifdef.c
 -rwxr-xr-x root/root      3165 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/ver_linux
+-rwxr-xr-x root/root      8280 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/conmakehash
+-rwxr-xr-x root/root     12784 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/kallsyms
+-rwxr-xr-x root/root     12537 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/pnmtologo
+-rwxr-xr-x root/root      4819 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/scripts/bin2c
 drwxr-xr-x root/root         0 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/security/
 -rw-r--r-- root/root      6120 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/security/Kconfig
 -rw-r--r-- root/root       883 2010-08-31 09:00:00 usr/src/linux-2.6.32.16/security/Makefile
@@ -32421,5 +36734,5 @@
 -rw-r--r-- root/root         0 2010-08-31 09:00:00 usr/src/linux
 -rwxr-xr-x root/root       779 2010-08-31 09:00:00 sbin/installkernel
 drwxr-xr-x root/root         0 2010-07-06 03:14:00 usr/share/doc/linux-2.6.32.16/
--rwxr-xr-x root/root      3770 2010-08-31 09:00:00 usr/share/doc/linux-2.6.32.16/PlamoBuild.kernelsrc-2.6.32.16_plamoSMP.gz
--rw-r--r-- root/root       262 2010-08-31 09:00:00 install/doinst.sh
+-rwxr-xr-x root/root      3729 2010-08-31 09:00:00 usr/share/doc/linux-2.6.32.16/PlamoBuild.kernelsrc-2.6.32.16_plamoSMP.gz
+-rw-r--r-- root/root       374 2010-08-31 09:00:00 install/doinst.sh

パッケージは今晩あたり置く予定です。 -- tamu 2010-08-31 (火) 14:07:24



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-17 (金) 16:35:44