Check out the rest of this story here, if you’re looking for the full tale of woe. This is the final article in my story regarding start to finish, getting my Dell Inspiron from a fresh install of Fedora 29, to a functional laptop. It wasn’t easy. Mostly thanks to the NVIDIA 960M that the laptop came with. A fine graphics adapter, if you’re running Windows. On linux.. not so much. See it has a low power mode, where the NVIDIA chip is just flat out turned off, and graphics are presented with an Intel chip. Which is fine for your standard desktop, but once you need 3d, or an external display, the NVIDIA chip needs to come in. I don’t do any 3d at all in Linux, I save the gaming for Windows, but an external monitor is a MUST for me. I’m typing this article right now on my external monitor.

There’s a few things to accomplish in order to get this working. First we need to connect to the network. Then enable the RPMFusion NonFree repo, which is where you can find the NVIDIA akmod rpms. Then we need to install them, and make sure they’re compiled. Then of course, start up X.

Connect to the Network

This is technically unrelated. However, in my case I had to fire up wireless from the command line. Which is something I’ve always depended on the gui for. This turned out to be pretty easy, but I did have to look it up. So I’ll include it here.

Fedora 29 uses NetworManager to connect to wireless networks. If you’re on a system that has already conencted to your WiFi, you should be able to tell NetworkManager to just connect to it, but in my case this was a new install, and I didn’t have the option of starting up the GUI (because.. that’s what we’re here to fix!).

nmcli makes this relatively easy. A quick google search for nmcli on my other laptop, found me the docs. I put together the following workflow.

Check on nmcli’s radios. This may be un-necesary, but I did it because it seemed important at the time.

[gangrif@meliodas ~]$ sudo nmcli radio
WIFI-HW  WIFI     WWAN-HW  WWAN    
enabled  enabled  enabled  enabled 

This basically tells me that nmcli sees my wireless card, and it’s totes enabled. I then asked nmcli to rescan, again, this may not be necessary, as I think NetworkManager was probably already actively scanning, but again.. I did it. There’s no output of this command.

[gangrif@meliodas ~]$ sudo nmcli device wifi rescan

And now we can list networks which we could join. I’ll abbreviate this. My SSID is “Get Off My Lawn”, and I have a mesh, so there are several, and then of course a guest network. I’m a tad paranoid.

[gangrif@meliodas ~]$ sudo nmcli device wifi list
IN-USE  SSID                   MODE   CHAN  RATE        SIGNAL  BARS  SECURITY>
        Get Off My Lawn        Infra  1     130 Mbit/s  100     ▂▄▆█  WPA2    >
        Get Off My Lawn-guest  Infra  1     130 Mbit/s  100     ▂▄▆█  WPA2    >
        Get Off My Lawn-guest  Infra  149   270 Mbit/s  100     ▂▄▆█  WPA2    >
*       Get Off My Lawn        Infra  149   270 Mbit/s  90      ▂▄▆█  WPA2    >
        Get Off My Lawn-guest  Infra  6     130 Mbit/s  50      ▂▄__  WPA2    >
        Get Off My Lawn        Infra  6     130 Mbit/s  49      ▂▄__  WPA2    >
        Get Off My Lawn-guest  Infra  11    130 Mbit/s  45      ▂▄__  WPA2    >
        Get Off My Lawn        Infra  11    130 Mbit/s  45      ▂▄__  WPA2    >
        Get Off My Lawn        Infra  149   270 Mbit/s  32      ▂▄__  WPA2    >
        Get Off My Lawn-guest  Infra  149   270 Mbit/s  32      ▂▄__  WPA2    >

What I found really cool here, was that nmcli was nice enough to show me lots of useful info. Even a nice little bar graph for signal strength! In this example, I’m already connected to the wifi, which is why there’s a * next to the one on channel 149.

Now we connect. Substitute your wifi password for the one I’ve omitted here:

$ sudo nmcli device wifi connect 'Get Off My Lawn' password 'some kinda wifi password'

I forget if there was output there, but using the list command again, or ‘ip a’ will tell you if you’re successfully connected.

Enable RPMFusion

First, credit where credit is due. I followed this article from Fedora Magazine, almost to a tee.

Enabling the repo is easy now. You used to have to go get the repo’s RPM and install it. Which you could still do, but DNF’s config manager let’s you enable it directly, which is cool.

$ sudo dnf install fedora-workstation-repositories
$ sudo dnf config-manager --set-enabled rpmfusion-nonfree-nvidia-driver

I gave the system a reboot after that, since that’s what the guide suggested. I’m not certain that it was strictly necessary.

This is where I diverged from the howto. I didn’t have a gui, and the howto said to just head on into the software install gui and pick up the nvidia drivers there. I can’t do that. And honestly, I probably wouldn’t anyway. It’s just how I am.

So I installed the akmod-nvidia package, which is a dynamically built nvidia driver. So if you update your kernel, it builds a new one, instead of installing a pre-built driver, which has to be updated along with your kernel.

$ sudo dnf install akmod-nvidia

I always run ‘akmods’ after installing the akmod. Which should happen automatically, but I’ve seen that not get triggered.

$ sudo akmods

This basically tells the system to build any pending akmod that’s hanging around waiting to be built.

And that’s it!

Reboot

After that, I just rebooted! I was still set to multi-user target (not a graphical login) so I got to a login prompt, and logged in. Started up X, and boom gui! After that I set my default target back to the graphical login, and we’re good to go!