Nvidia drivers arent installing on pureos

I was considering their laptops but the GPU seemed very weak while the rest of the specs were good. Also, I need desktop. I have a laptop but always prefer desktop. I’m not exactly rolling in cash so I think I might setup a trade with my 1070 for a rx580 but not certain if they really want to accept as they use qubes as their main driver.

you can point your middle finger at the nVidia gods for their driver embargo … and go for something more last gen in terms of AMD dGPU like an > https://www.amd.com/en/products/graphics/radeon-rx-vega-56

The new Navi series are excellent, I’d look at the 5600XT or similar, rather than a R56 or rx580 or similar.

As for what distro to use, I found LinuxMint (Debian) about the best polished, newbie friendly choice. Like PureOS, it mirrors Debian upstream, but doesn’t cut out the non-free repos. It also is a bit easier to install, and slightly more stable than Debian testing (while having more recent packages than Debian stable).

1 Like

If you insist on open source and purity - and these are good things to want - then your nVidia experience may well be unpleasant.

I have a laptop with an nVidia graphics card, running Ubuntu, and using the proprietary driver - and it is stable and functions correctly - and has done for many years through many updates and version changes. Maybe that is an option that would work better for @user1.

As other people have commented, it doesn’t really make a lot of sense to choose a specialist distro that intentionally excludes closed source software, and thereby hardware that requires closed source software, and then install an nVidia graphics card.

In my own experience, if you want purity then the Intel integrated graphics work pretty well and that is reflected in Purism’s current offerings. So you wouldn’t look beyond that unless you really need graphics grunt.

The only problem I had with nVidia graphics + Ubuntu is that on Ubuntu version changes (e.g. 18.04 to 18.10 or 18.10 to 19.04) it will seemingly drop the proprietary driver (and revert to a default driver) - and so it helps if you know how to reinstate the proprietary driver from the command line. If that bugs you, you can limit Ubuntu version changes to once every 2 years i.e. only use the LTS versions. But then it will be self-fulfilling that you will forget how to reinstate the proprietary driver. :slight_smile:

1 Like

People should be free to use the software and their computer for whatever reason and however they want. I choose PureOS because I like the defaults? Should I not be allowed to run some GPU intense task like training a neural network or cracking a password? I want to study the stuff!

I too have this problem and I don’t want to stop using PureOS because of it.

Adding more to the conversation:

  • I blacklisted nouveau
  • Ran update-initramfs -u
  • Stopped gdm and gdm3 with service stop gdm and service stop gdm3
  • Ran the installer.

I noticed in the error message there were some warnings about not being able to detect if secure boot/UEFI are enabled. Also some warning messages complaining about missing keys and kernel tainting.

You have omitted a lot of information.

What make and model (spec) of computer are you attempting to install on?

What version of PureOS are you using?

What exact commands are you doing and have you done?

What version of the proprietary driver are you attempting to install?

What exact messages are you getting?

Wouldn’t worry about that. I think that is normal with the proprietary nVidia driver.

Absolutely. Noone is telling you otherwise or stopping you.

However that freedom includes attempting to install combinations of software that have not been tested together and don’t necessarily work well or at all together - and that includes the freedom to debug it yourself. :slight_smile:

In no way do I speak for Purism but I hope you can see that Purism might not consider it a high priority to devote resources to getting intentionally proprietary, closed, blackbox software to work. If it works, great. If it doesn’t, members of the community may try to help and we may or may not succeed.

1 Like

Kind of a late response and I am put off from using their OS. Very plain, boring, doesn’t perform well on my laptop either. Rather stick to arch over deb. I cannot remember what version I had used of pureos but it was of whatever version at the time of my post. I cannot remember what commands I had used since it has been a while. Oh well. I hope the OS on the librem 5 will be better though it isn’t looking so great so far.

Yes.

My questions were for @opaqueotter. I assumed that you had long given up.

Oh ok. Sorry about that.

1 Like

In no way do I speak for Purism but I hope you can see that Purism might not consider it a high priority to devote resources to getting intentionally proprietary, closed, blackbox software to work. If it works, great. If it doesn’t, members of the community may try to help and we may or may not succeed.

Ah yes, absolutely. I don’t expect them at all to help with stuff like this and I hope PureOS doesn’t change its ethos and stays focused on security.

You have omitted a lot of information.

Right, here it is.

Device:

  • Dell Inspiron 3542 upgraded to 8GB ram + 500Gb SSD
  • Processor: Intel® Core™ i7-4510U CPU @ 2.00GHz
  • Running the latest PureOS 9.0:
$ lsb_release -a
No LSB modules are available.
Distributor ID:	PureOS
Description:	PureOS
Release:	9.0
Codename:	amber
  • Video: See output of lshw below
$ sudo lshw -C video
  *-display                 
       description: VGA compatible controller
       product: Haswell-ULT Integrated Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 0b
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:43 memory:f7400000-f77fffff memory:d0000000-dfffffff ioport:f000(size=64) memory:c0000-dffff
  *-display
       description: 3D controller
       product: GM108M [GeForce 840M]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:08:00.0
       version: a2
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list rom
       configuration: driver=nouveau latency=0

So, nouveau is the current driver.

I’m trying to install the latest nvidia driver for 64 bit systems:

  • NVIDIA-Linux-x86_64-440.64.

What I’ve done:

sudo vim /etc/modprobe.d/blacklist.conf

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

:wq

Then I also created another file with

 echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf

After that: sudo update-initramfs -u which gave a warning because of my encrypted disk, but I believe its not a problem:

$ sudo update-initramfs -u 
update-initramfs: Generating /boot/initrd.img-4.19.0-5-amd64
cryptsetup: WARNING: Resume target luks-e63b950b-0b20-4cc1-bf50-43de0c5ae378 
    uses a key file
setupcon: The keyboard model is unknown, assuming 'pc105'. Keyboard may be configured incorrectly.

I rebooted, went to directly to the terminal with Ctrl+Alt+F2, logged in and killed gdm and gdm3 services with:

sudo service gdm stop
sudo service gdm3 stop

Lastly I executed the installer with sudo ./NVIDIA-Linux-x86_64-440.64.run. I had already given the file execution permissions with sudo chmod +x NVIDIA-Linux-x86_64-440.64.run.

Here are the last lines of the installation log, starting from where we begin to see errors:

 make[1]: Leaving directory '/usr/src/linux-headers-4.19.0-5-common'
-> done.
-> Kernel module compilation complete.
-> Unable to determine if Secure Boot is enabled: No such file or directory
ERROR: Unable to load the kernel module 'nvidia.ko'.  This happens most frequently when this kernel module was built against the wrong or improperly configured kernel sources, with a version of gcc that differs from the one used to build the target kernel, or if another driver, such as nouveau, is present and prevents the NVIDIA kernel module from obtaining ownership of the NVIDIA GPU(s), or no NVIDIA GPU installed in this system is supported by this NVIDIA Linux graphics driver release.

Please see the log entries 'Kernel module load error' and 'Kernel messages' at the end of the file '/var/log/nvidia-installer.log' for more information.
-> Kernel module load error: Exec format error
-> Kernel messages:
[   45.434067] device virbr0-nic entered promiscuous mode
[   45.596971] virbr0: port 1(virbr0-nic) entered blocking state
[   45.596974] virbr0: port 1(virbr0-nic) entered listening state
[   45.649227] virbr0: port 1(virbr0-nic) entered disabled state
[   45.992370] IPv6: ADDRCONF(NETDEV_UP): wlp6s0: link is not ready
[   46.011622] fuse init (API version 7.27)
[   47.101122] wlp6s0: authenticate with ac:c6:62:d6:73:d0
[   47.117752] wlp6s0: send auth to ac:c6:62:d6:73:d0 (try 1/3)
[   47.136812] wlp6s0: authenticated
[   47.140157] wlp6s0: associate with ac:c6:62:d6:73:d0 (try 1/3)
[   47.151008] wlp6s0: RX AssocResp from ac:c6:62:d6:73:d0 (capab=0x1411 status=0 aid=2)
[   47.151104] wlp6s0: associated
[   47.766311] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   47.766313] Bluetooth: BNEP filters: protocol multicast
[   47.766317] Bluetooth: BNEP socket layer initialized
[   49.184350] rfkill: input handler disabled
[   49.617288] IPv6: ADDRCONF(NETDEV_CHANGE): wlp6s0: link becomes ready
[   61.425427] rfkill: input handler enabled
[  358.406025] version 39.2
[  358.408000] ipmi device interface
[  358.417950] nvidia: loading out-of-tree module taints kernel.
[  358.417958] nvidia: module license 'NVIDIA' taints kernel.
[  358.417958] Disabling lock debugging due to kernel taint
[  358.424853] nvidia: module verification failed: signature and/or required key missing - tainting kernel
[  358.428122] module: x86/modules: Skipping invalid relocation target, existing value is nonzero for type 1, loc 000000005799fa54, val ffffffffc1bbe68a
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.

Help is very welcome

As that is a fairly old graphics card, you might want to confirm that the latest driver supports your card.

I recently reinstalled on a computer that has an even slightly older graphics card and neither nVidia driver 435 nor 440 would accept my card. I had to use 390.

However there are some important other differences between your setup and mine: I was installing under Ubuntu, which means a normal package install from the repo. Recent versions of Ubuntu have better support for the proprietary nVidia driver but the support doesn’t seem completely mature. It is a good idea to watch carefully as it builds the driver for your kernel version.

Obviously running a random shell script without knowing what’s in it is questionable security and may not be reliable either.

contains anything helpful?

contains anything helpful?

That’s that very output I pasted, I don’t see anything super useful. Lines above just look like compiler normal compiler messages:

86_64-440.64/kernel/nvidia-drm/nvidia-drm-gem-user-memory.o
   ld -r -o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-interface.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-frontend.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-pci.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-acpi.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-cray.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-dma.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-i2c.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-mempool.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-mmap.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-p2p.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-pat.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-procfs.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-usermap.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-vm.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-vtophys.o /tmp/selfgz3760/NV
   IDIA-Linux-x86_64-440.64/kernel/nvidia/os-interface.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/os-mlock.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/os-pci.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/os-registry.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/os-usermap.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-modeset-interface.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-pci-table.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-kthread-q.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-memdbg.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-ibmnpu.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-report-err.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-rsync.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv-msi.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/nv_uvm_interface.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/
   nvidia/nvlink_linux.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia/linux_nvswitch.o
   ld -r -o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia-modeset/nv-modeset-interface.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia-modeset/nvidia-modeset-linux.o /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia-modeset/nv-kthread-q.o
     LD [M]  /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia.o
     LD [M]  /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia-uvm.o
     LD [M]  /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia-modeset.o
     LD [M]  /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia-drm.o
     Building modules, stage 2.
     MODPOST 4 modules
     CC      /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia-drm.mod.o
     CC      /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia-modeset.mod.o
     CC      /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia-uvm.mod.o
     CC      /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia.mod.o
     LD [M]  /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia-drm.ko
     LD [M]  /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia-modeset.ko
     LD [M]  /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia-uvm.ko
     LD [M]  /tmp/selfgz3760/NVIDIA-Linux-x86_64-440.64/kernel/nvidia.ko
   make[2]: Leaving directory '/usr/src/linux-headers-4.19.0-5-amd64'
   make[1]: Leaving directory '/usr/src/linux-headers-4.19.0-5-common'
-> done.
-> Kernel module compilation complete.
-> Unable to determine if Secure Boot is enabled: No such file or directory
ERROR: Unable to load the kernel module 'nvidia.ko'.  This happens most frequently when this kernel module was built against the wrong or improperly configured kernel sources, with a version of gcc that differs from the one used to build the target kernel, or if another driver, such as nouveau, is present and prevents the NVIDIA kernel module from obtaining ownership of the NVIDIA GPU(s), or no NVIDIA GPU installed in this system is supported by this NVIDIA Linux graphics driver release.

Please see the log entries 'Kernel module load error' and 'Kernel messages' at the end of the file '/var/log/nvidia-installer.log' for more information.
-> Kernel module load error: Exec format error
-> Kernel messages:
[   45.434067] device virbr0-nic entered promiscuous mode
[   45.596971] virbr0: port 1(virbr0-nic) entered blocking state
[   45.596974] virbr0: port 1(virbr0-nic) entered listening state
[   45.649227] virbr0: port 1(virbr0-nic) entered disabled state
[   45.992370] IPv6: ADDRCONF(NETDEV_UP): wlp6s0: link is not ready
[   46.011622] fuse init (API version 7.27)
[   47.101122] wlp6s0: authenticate with ac:c6:62:d6:73:d0
[   47.117752] wlp6s0: send auth to ac:c6:62:d6:73:d0 (try 1/3)
[   47.136812] wlp6s0: authenticated
[   47.140157] wlp6s0: associate with ac:c6:62:d6:73:d0 (try 1/3)
[   47.151008] wlp6s0: RX AssocResp from ac:c6:62:d6:73:d0 (capab=0x1411 status=0 aid=2)
[   47.151104] wlp6s0: associated
[   47.766311] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   47.766313] Bluetooth: BNEP filters: protocol multicast
[   47.766317] Bluetooth: BNEP socket layer initialized
[   49.184350] rfkill: input handler disabled
[   49.617288] IPv6: ADDRCONF(NETDEV_CHANGE): wlp6s0: link becomes ready
[   61.425427] rfkill: input handler enabled
[  358.406025] version 39.2
[  358.408000] ipmi device interface
[  358.417950] nvidia: loading out-of-tree module taints kernel.
[  358.417958] nvidia: module license 'NVIDIA' taints kernel.
[  358.417958] Disabling lock debugging due to kernel taint
[  358.424853] nvidia: module verification failed: signature and/or required key missing - tainting kernel
[  358.428122] module: x86/modules: Skipping invalid relocation target, existing value is nonzero for type 1, loc 000000005799fa54, val ffffffffc1bbe68a
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.

I will try with an earlier driver, 390~ and report back.

Ok, it running the driver for 390 didn’t work either. Same error.

1 Like

Anyway, you should be aware of those things:

and what is published here, look at the Edit: part.

Sorry, @user1 that I cannot make things OSS nice if they aren’t. Maybe this helps: “We ain’t nothing but kids longing for the sunshine …” from Young Gun Silver Fox: “Kids” => https://youtu.be/KEYeHTMvUvw

2 Likes

This is the kind of error message that I hate. :slight_smile: It would be sooooo much easier if nVidia / whatever told you which of the four situations applies. (It could in theory be more than one.)

3 Likes

I’ve read the article from the Sway developer, and am aware of the proposed new allocator library. Follow the link to the library’s github page. Note that the last commit was from 2017… Maybe the parties at nvidia working on it had to quit, but were acting in good faith, maybe it was a publicity stunt by NVidia. Bottom line is it’s been almost 3 years and still crickets on getting GBM or something equivalent.

2 Likes

An update for future readers (and entertainment of others trying to help), I managed to get it working good enough for my purposes but that basically meant turning my PureOS into a frankensteinOS :robot:. :no_mouth:

Before explaining I will go ahead and give my usecase: I’m studying hashcat (a bruteforcing tool). I don’t need to actually run any games. I manage to use it now, but I’ve never tested this setup with any other case.

Ok on to the “solution”. Brace yourselves:

After removing everything nvidia related, I’ve:

Changed from boot mode from legacy to UEFI with secure boot disabled (this might not be necessary).

Edited /etc/apt/sources.list and commented out the default repos. Since PureOS 9 is based on Debian 10, I added their repositories such that it looks like this:

# Dropped purism in favor of Debian intirely
# deb https://repo.pureos.net/pureos/ amber main
# deb https://repo.pureos.net/pureos/ amber-security main
# deb https://repo.pureos.net/pureos/ amber-updates main


# Adding debian sources to install nvidia drivers
# See https://wiki.debian.org/SourcesList for more information.
deb http://deb.debian.org/debian buster main contrib non-free
deb-src http://deb.debian.org/debian buster main contrib non-free

deb http://deb.debian.org/debian buster-updates main contrib non-free
deb-src http://deb.debian.org/debian buster-updates main contrib non-free

deb http://security.debian.org/debian-security/ buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security/ buster/updates main contrib non-free

#buster backports
deb http://deb.debian.org/debian buster-backports main contrib non-free
deb-src http://deb.debian.org/debian buster-backports main contrib non-free

deb http://ftp.de.debian.org/debian buster main contrib non-free

Probably some redundant stuff there by I didn’t bother cleaning it.

With that in place, run apt update, apt upgrade and apt dist-upgrade. Yeah I know. Sorry

WARNING: This will rid of the beautiful PureOS boot icon and animation (if you tell the setup queries to do so, which I did). It will replace it with Debian’s.

Finally, I’ve installed nvidia legacy drivers with aptitude install nvidia-legacy-390xx-driver.

Note: My system was quite broken from so many different attempts and apt remove --purges that doing only this was not enough. I also had to install missing firmware but I believe that is off topic and I don’t quite remember the steps to document here so I’ll avoid it to not mislead future readers.

Thanks for the help everyone.

PS: If you know how to I could get the PureOS boot logo and animation back, I’d love to hear it.

1 Like

instead of going to all that trouble to MAIM a perfectly pure OS :slight_smile: you could have just used any of the pop-OS or ubuntu or manjaro-architect and be DONE with it …

if you have or are running last gen-ish non-open-hardware then it’s not worth it to install a pure OS directly on bare-metal … in a VM ? sure for playing around and testing but otherwise why torture yourself like that ?

but don’t mind me … i’m just here to speak my peace :mask:

2 Likes

This conversation is great for me since the PURITY thing is Philosophically great. But… I ain’t Stallman but really dig his obstinate ways and am grateful for his leadership model of knowingly being “inconvenienced” to be free. I don’t have his depth but…

The learning of the obvious, PureOS is Pure FOR THEE PURPOSE OF PURITY, is tough for folks of my ilk… I seem to need to “touch the stove” more than once to get the message of it hurts.

Thanks for asking this thread’s question and the very civil understanding guidance. Last night I was ready to sell my L13V4. But I want the convergence thing so much. Buying the L13V4 & two L5’s is my way to pull on the rope to convergence.

Thanks for the learning of what is so obvious to most, but NOT me. Angels you is, me thinks.

Just found this official link (explaining ‘modeset’ kernel module parameter):
https://download.nvidia.com/XFree86/Linux-x86_64/396.51/README/kms.html

@opaqueotter, might be above link helps, for Wayland (used by PureOS) and Mir.