中国Linux公社论坛's Archiver

haulm 发表于 2014-1-11 09:37

真的无法理解为什么各种闭源驱动不支持 kernel 3.10 难道...?

难道是我编译的内核有问题,头文件存放位置有问题?
之前 3.4 的内核至今的修补版本一直都不支持华硕某主板的网卡,所以只好升级到 3.10。
不过 3.10 内核至今没发现包括 AMD NVIDIA VBOX 在内的哪款闭源驱动能成功安装的。

jiangtao9999 发表于 2014-1-11 09:58

错误信息是什么敢说吗?

haulm 发表于 2014-1-11 11:01

有什么不敢说的。
我曾经有挖空心思去软链所有缺失的头文件,但最后还是没能通过,可以说闭源驱动似乎没有针对 3.10 去设计过,而 3.10 或许真的变化太大。[code]nvidia-installer log file '/var/log/nvidia-installer.log'
creation time: Sat Jan 11 18:53:51 2014
installer version: 331.20

PATH: /usr/lib64/qt4/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

nvidia-installer command line:
    ./nvidia-installer

Using: nvidia-installer ncurses user interface
-> License accepted.
-> Installing NVIDIA driver version 331.20.
-> There appears to already be a driver installed on your system (version: 331.20).  As part of installing this driver (version: 331.20), the existing driver will be uninstalled.  Are you sure you want to continue? ('no' will abort installation) (Answer: Yes)
-> Performing CC sanity check with CC="cc".
-> Kernel source path: '/lib/modules/3.10.17/source'
-> Kernel output path: '/lib/modules/3.10.17/build'
-> Performing rivafb check.
-> Performing nvidiafb check.
-> Performing Xen check.
-> Performing PREEMPT_RT check.
-> Cleaning kernel module build directory.
   executing: 'cd ./kernel; make clean'...
-> Building NVIDIA kernel module:
   executing: 'cd ./kernel; make module SYSSRC=/lib/modules/3.10.17/source SYSOUT=/lib/modules/3.10.17/build NV_BUILD_MODULE_INSTANCES='...
   NVIDIA: calling KBUILD...
   make[1]: 进入目录“/usr/lib/modules/3.10.17/build”
   make -C /lib/modules/3.10.17/build \
   KBUILD_SRC=/usr/lib/modules/3.10.17/build \
   KBUILD_EXTMOD="/tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel" -f /usr/lib/modules/3.10.17/build/Makefile \
   modules
   test -e include/generated/autoconf.h -a -e include/config/auto.conf || (                \
   echo >&2;                                                        \
   echo >&2 "  ERROR: Kernel configuration is invalid.";                \
   echo >&2 "         include/generated/autoconf.h or include/config/auto.conf are missing.";\
   echo >&2 "         Run 'make oldconfig && make prepare' on kernel src to fix it.";        \
   echo >&2 ;                                                        \
   /bin/false)
   mkdir -p /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/.tmp_versions ; rm -f /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/.tmp_versions/*
   make -f /usr/lib/modules/3.10.17/build/scripts/Makefile.build obj=/tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel
     cc -Wp,-MD,/tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/.nv.o.d  -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.8.0/include -I/usr/lib/modules/3.10.17/build/arch/x86/include -Iarch/x86/include/generated  -I/usr/lib/modules/3.10.17/build/include -Iinclude -I/usr/lib/modules/3.10.17/build/arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I/usr/lib/modules/3.10.17/build/include/uapi -Iinclude/generated/uapi -include /usr/lib/modules/3.10.17/build/include/linux/kconfig.h   -I/tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel -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-sse -mpreferred-stack-boundary=3 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -fstack-protector -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_
AVX2=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -Wframe-larger-
   than=1024 -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -DNV_MODULE_INSTANCE=0 -DNV_BUILD_MODULE_INSTANCES=0 -UDEBUG -U_DEBUG -DNDEBUG   -I/tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel -Wall -MD -Wsign-compare -Wno-cast-qual -Wno-error -D__KERNEL__ -DMODULE -DNVRM -DNV_VERSION_STRING=\"331.20\" -Wno-unused-function -Wuninitialized -mno-red-zone -mcmodel=kernel -DNV_UVM_ENABLE -D__linux__ -DNV_DEV_NAME=\"nvidia\"  -DMODULE  -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(nv)"  -D"KBUILD_MODNAME=KBUILD_STR(nvidia)" -c -o /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/.tmp_nv.o /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/nv.c
   In file included from /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/conftest.h:1:0,
                    from /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/nv-linux.h:15,
                    from /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/nv.c:13:
   /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/conftest/macros.h:1:2: 错误:#error INIT_WORK() conftest failed!
    #error INIT_WORK() conftest failed!
     ^
   In file included from /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/conftest.h:2:0,
                    from /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/nv-linux.h:15,
                    from /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/nv.c:13:
   /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/conftest/functions.h:1:2: 错误:#error remap_page_range() conftest failed!
    #error remap_page_range() conftest failed!
     ^
   /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/conftest/functions.h:3:2: 错误:#error vmap() conftest failed!
    #error vmap() conftest failed!
     ^
   /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/conftest/functions.h:12:2: 错误:#error kmem_cache_create() conftest failed!
    #error kmem_cache_create() conftest failed!
     ^
   /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/conftest/functions.h:13:2: 错误:#error on_each_cpu() conftest failed!
    #error on_each_cpu() conftest failed!
     ^
   /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/conftest/functions.h:14:2: 错误:#error smp_call_function() conftest failed!
    #error smp_call_function() conftest failed!
     ^
   /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/conftest/functions.h:19:2: 错误:#error acpi_walk_namespace() conftest failed!
    #error acpi_walk_namespace() conftest failed!
     ^
   /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/conftest/functions.h:20:2: 错误:#error acpi_os_wait_events_complete() conftest failed!
    #error acpi_os_wait_events_complete() conftest failed!
     ^
   /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/conftest/functions.h:22:2: 错误:#error pci_dma_mapping_error() conftest failed!
    #error pci_dma_mapping_error() conftest failed!
     ^
   In file included from /usr/lib/modules/3.10.17/build/include/linux/utsname.h:5:0,
                    from /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/nv-linux.h:44,
                    from /tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/nv.c:13:
   /usr/lib/modules/3.10.17/build/include/linux/sched.h:11:36: 致命错误:asm/param.h:没有那个文件或目录
    #include <asm/param.h> /* for HZ */
                                       ^
   编译中断。
   make[3]: *** [/tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel/nv.o] 错误 1
   make[2]: *** [_module_/tmp/selfgz9157/NVIDIA-Linux-x86_64-331.20/kernel] 错误 2
   make[1]: *** [sub-make] 错误 2
   make[1]: 离开目录“/usr/lib/modules/3.10.17/build”
   NVIDIA: left KBUILD.
    nvidia.ko failed to build!
   make: *** [nvidia.ko] 错误 1
-> Error.
ERROR: Unable to build the NVIDIA kernel module.
-> done.
ERROR: Installation has failed.  Please see the file '/var/log/nvidia-installer.log' for details.  You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com.
[/code]

jiangtao9999 发表于 2014-1-11 22:19

内核经常变接口,所以随时要用最新版的驱动。
nvidia 还不错的,更新一直比较快,只是需要用他的测试版。

haulm 发表于 2014-1-12 14:50

N 卡需要靠各对应不同版本驱动的补丁,这些补丁也很激进,或得你升最新的内核....,A 卡无解或者开源驱动。

haulm 发表于 2014-4-24 21:32

这次直接上 3.13 了,毛病出在 version.h 定义内核版本号的文件位置变化了,打包时就在原位置生成了个空文件,而闭源驱动在编译模块时仍然先从旧位置开始,于是就一直对不上内核版本号。

页: [1]

Powered by Discuz! Archiver 6.1.0F  © 2001-2007 Comsenz Inc.