# Nvidia Driver and New kernel build

## Phredus

Building a new kernel< I have a bunch of errors, I dont know enough to know how bad they are or what solutions to try.  Please help

```
minig ~ # genkernel --splash --install --no-clean --symlink --mountboot --menuc

* Gentoo Linux Genkernel; Version 3.4.49.2

* Running with options: --splash --install --no-clean --symlink --mountboot --men

* Using genkernel.conf from /etc/genkernel.conf

* Sourcing arch-specific config.sh from /usr/share/genkernel/arch/x86/config.sh .

* Sourcing arch-specific modules_load from /usr/share/genkernel/arch/x86/modules_

* Linux Kernel 3.12.21-gentoo-r1 for x86...

* .. with config file /etc/kernels/kernel-config-x86-3.12.21-gentoo-r1

* kernel: --mrproper is disabled; not running 'make mrproper'.

*         >> Running oldconfig...

* kernel: --clean is disabled; not running 'make clean'.

* kernel: >> Invoking menuconfig...

*** End of the configuration.

*** Execute 'make' to start the build or try 'make help'.

*         >> Compiling 3.12.21-gentoo-r1 bzImage...

*         >> Not installing firmware as it's included in the kernel already (CONFIG_FIRMWARE_IN_KERNEL=y)...

*         >> Compiling 3.12.21-gentoo-r1 modules...

*         >> Generating module dependency data...

depmod: WARNING: /lib/modules/3.12.21-gentoo-r1/video/nvidia.ko needs unknown symbol drm_open

depmod: WARNING: /lib/modules/3.12.21-gentoo-r1/video/nvidia.ko needs unknown symbol drm_poll

depmod: WARNING: /lib/modules/3.12.21-gentoo-r1/video/nvidia.ko needs unknown symbol drm_pci_init

depmod: WARNING: /lib/modules/3.12.21-gentoo-r1/video/nvidia.ko needs unknown symbol drm_gem_prime_handle_to_fd

depmod: WARNING: /lib/modules/3.12.21-gentoo-r1/video/nvidia.ko needs unknown symbol drm_gem_private_object_init

depmod: WARNING: /lib/modules/3.12.21-gentoo-r1/video/nvidia.ko needs unknown symbol drm_gem_mmap

depmod: WARNING: /lib/modules/3.12.21-gentoo-r1/video/nvidia.ko needs unknown symbol drm_ioctl

depmod: WARNING: /lib/modules/3.12.21-gentoo-r1/video/nvidia.ko needs unknown symbol drm_gem_object_free

depmod: WARNING: /lib/modules/3.12.21-gentoo-r1/video/nvidia.ko needs unknown symbol drm_read

depmod: WARNING: /lib/modules/3.12.21-gentoo-r1/video/nvidia.ko needs unknown symbol drm_gem_handle_create

depmod: WARNING: /lib/modules/3.12.21-gentoo-r1/video/nvidia.ko needs unknown symbol drm_prime_pages_to_sg

depmod: WARNING: /lib/modules/3.12.21-gentoo-r1/video/nvidia.ko needs unknown symbol drm_pci_exit

depmod: WARNING: /lib/modules/3.12.21-gentoo-r1/video/nvidia.ko needs unknown symbol drm_release

depmod: WARNING: /lib/modules/3.12.21-gentoo-r1/video/nvidia.ko needs unknown symbol drm_gem_prime_export

* Copying config for successful build to /etc/kernels/kernel-config-x86-3.12.21-gentoo-r1

* busybox: >> Using cache

* initramfs: >> Initializing...

*         >> Appending base_layout cpio data...

*         >> Appending auxilary cpio data...

*         >> Copying keymaps

*         >> Appending busybox cpio data...

*         >> Appending modules cpio data...

*         >> Appending blkid cpio data...

*         >> Appending splash cpio data...

*                >> No splash detected; skipping!

*         >> Appending modprobed cpio data...

*         >> Appending linker cpio data...

*         >> Finalizing cpio...

*         >> Compressing cpio data (.xz)...

* Adding kernel to /boot/grub/grub.conf...

awk: fatal: cannot open file `/var/tmp/genkernel/1694.4172.9812.12906/grub.map' for reading (No such file or directory)

* Error! /boot/grub/grub.conf does not exist and the correct settings can not be automatically detected.

* Please manually create your /boot/grub/grub.conf file.

*

* Kernel compiled successfully!

*

* Required Kernel Parameters:

*     root=/dev/$ROOT

*

*     Where $ROOT is the device node for your root partition as the

*     one specified in /etc/fstab

*

* If you require Genkernel's hardware detection features; you MUST

* tell your bootloader to use the provided INITRAMFS file.

* WARNING... WARNING... WARNING...

* Additional kernel cmdline arguments that *may* be required to boot properly...

* add "vga=791 splash=silent,theme:default console=tty1 quiet" if you use a splash framebuffer ]

* With support for several ext* filesystems available, it may be needed to

* add "rootfstype=ext3" or "rootfstype=ext4" to the list of boot parameters.

* Do NOT report kernel bugs as genkernel bugs unless your bug

* is about the default genkernel configuration...

*

* Make sure you have the latest ~arch genkernel before reporting bugs.

minig ~ #
```

Also I have this going on in dmsg

```

[    6.716194] qlogicfas: no cards were found, please specify I/O address and I$

[   15.440468] systemd-udevd[1858]: renamed network interface eth0 to enp0s10

[   15.546374] cfg80211: Calling CRDA to update world regulatory domain

[   15.779992] b43-phy0: Broadcom 4312 WLAN found (core revision 15)

[   15.880167] b43-phy0: Found PHY: Analog 6, Type 5 (LP), Revision 1

[   15.882802] ACPI: PCI Interrupt Link [AAZA] enabled at IRQ 21

[   15.882820] hda_intel: Disabling MSI

[   15.882878] snd_hda_intel 0000:00:08.0: setting latency timer to 64

[   15.940421] Broadcom 43xx driver loaded [ Features: PMNL ]

[   15.951199] b43-phy0 ERROR: Firmware file "b43/ucode15.fw" not found

[   15.951206] b43-phy0 ERROR: Firmware file "b43-open/ucode15.fw" not found

[   15.951213] b43-phy0 ERROR: You must go to http://wireless.kernel.org/en/use$

Broadcast message from root@minig (pts/1) (Wed Jun 11 21:34:59 2014):

[   16.133624] nvidia: module license 'NVIDIA' taints kernel.

The system is going down for reboot NOW!due to kernel taint

[   19.811688] ACPI: PCI Interrupt Link [APMU] enabled at IRQ 20

[   19.811772] pci 0000:00:10.0: setting latency timer to 64

[   19.812425] ACPI: PCI Interrupt Link [AIGP] enabled at IRQ 23

[   19.812446] nvidia 0000:02:00.0: setting latency timer to 64
```

----------

## dachschaden

Make sure that CONFIG_DRM is set in your kernel config, then recompile your kernel.

As far as I remember, the installer tries to modprobe the nvidia module into the kernel, which might fail depending on the ABI. So you maybe want to reboot before you reinstall the nvidia driver. Then the errors about unknown drm_* symbols should be gone.

Oh, and you should be doing something about your firmware issues and get the required firmware for your WiFi card. Install them in /lib/firmware or include them into the kernel, than this problem should be solved as well.

----------

## thriftee

The b43 errors are because you are missing the firmware for your wifi card.  I had the same errors and used files I found here...

http://www.omattos.com/sites/default/files/b43-all-fw.tar_.gz

I believe I extracted it in /lib/firmware

then do a:

modprobe -r b43

followed by:

modprobe b43

afterwards do:

iwconfig

and look to see if it now finds a wifi card

I also found another file that might have it, but I didn't try this one.  You might want to see which is newer.  I used the one above to install Gentoo from minimal install over wifi.

http://downloads.openwrt.org/sources/broadcom-wl-4.178.10.4.tar.bz2

I wouldn't know how to include them in the kernel.

Sorry, I'm no help with the other stuff...

----------

## dachschaden

 *thriftee wrote:*   

> 
> 
> I wouldn't know how to include them in the kernel.
> 
> 

 

That one is easy. Make sure that CONFIG_EXTRA_FIRMWARE_DIR is set properly (that is, the directory of the files you want to include), and then just set CONFIG_EXTRA_FIRMWARE to all files that you want to have in your kernel, space-separated.

Example:

I need to have external firmware for my intel WLAN card, iwlwifi-7260-8.ucode, to be precise. But since the 8. version is kinda buggy (and the driver will still first try to probe for it), I am going to use a little trick here.  :Smile: 

So note: the firmware file that I have on hard disk is iwlwifi-7260-7.ucode (7. version), the one I need is iwlwifi-7260-8.ucode (8. version). In /lib/firmware is my iwlwifi-7260-7.ucode file.

I have set CONFIG_EXTRA_FIRMWARE_DIR to "firmware". That will make the makefile search in /usr/bin/linux/firmware (or whereever you installed your kernel sources) rather than in /lib/firmware - the entry "firmware" just gets appended to the current working directory of the makefile.

Now, in /usr/src/linux/firmware I created a symlink for /lib/firmware/iwlwifi-7260-7.ucode, called iwlwifi-7260-8.ucode. The reason for this is that the WiFi driver is a bit stupid and wouldn't recognize the firmware included in the kernel because of the different name. It needs to be compiled with the name actually used.

```

$ ls -lah /usr/src/linux/firmware/iwlwifi-7260-8.ucode

lrwxrwxrwx 1 root root 34 27. Jun 22:19 /usr/src/linux/firmware/iwlwifi-7260-8.ucode -> /lib/firmware/iwlwifi-7260-7.ucode

```

And now you just need to set CONFIG_EXTRA_FIRMWARE to the name of that file, that is, "iwlwifi-7260-8.ucode" (without tags).

```

Intel(R) Wireless WiFi driver for Linux, in-tree:

Copyright(c) 2003- 2014 Intel Corporation

iwlwifi 0000:04:00.0: irq 43 for MSI/MSI-X

iwlwifi 0000:04:00.0: Firmware has old API version, expected v8 through v9, got v7. #OH QUIT WHINING, YOU!

iwlwifi 0000:04:00.0: New firmware can be obtained from http://www.intellinuxwireless.org/.

iwlwifi 0000:04:00.0: loaded firmware version 22.0.7.0 op_mode iwlmvm

iwlwifi 0000:04:00.0: Detected Intel(R) Dual Band Wireless N 7260, REV=0x144

iwlwifi 0000:04:00.0: L1 Enabled; Disabling L0S

iwlwifi 0000:04:00.0: L1 Enabled; Disabling L0S

ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs'

```

Works like a charm.

How I know that the firmware's not provided by user space? Well, the hard disk gets mounted half a second later ... it's pretty hard to read firmware from a hard disk when you haven't mounted it into your directory tree ...  :Wink: 

----------

