Tagged: kernel 4.4.172

Kernel 4.4.172 on Slackware64 and VirtualBox

In my previous post, I mentioned that I had issues with NVIDIA after updating the kernel to 4.4.172 from Security Advisories. It appears that this kernel update is breaking some applications for many people. For me, it broke NVIDIA video driver and now I found that I can't run VirtualBox.

When I execute the virtualbox command, it complained about vboxdrv not running. Then, when I tried to start vboxdrv, it said vboxdrv not found! # /etc/rc.d/rc.vboxdrv start bash: /etc/rc.d/rc.vboxdrv: No such file or directory

After looking for a solution in linuxquestions.org and other sites, I ended up following the instruction from SlackBlogs.

The information in this site is the result of my researches in the Internet and of my experiences. This information below is solely used for my purpose and may not be suitable for others.

Download the virtualbox binary:

Download the source binary from VirtualBox site. Choose for All distributions, then execute it as root. The installation will fail but don't worry about it.# sh VirtualBox-6.0.4-128413-Linux_amd64.run ...

Update the source code:

Open the source code for /usr/src/vboxhost-6.0.4/vboxdrv/r0drv/linux/memobj-r0drv-linux.c with your favorite editor, look for below lines and update it with new KERNEL_VERSION(4, 4, 168). There are three locations you'd need to update.# nvim /usr/src/vboxhost-6.0.4/vboxdrv/r0drv/linux/memobj-r0drv-linux.c ... if GET_USER_PAGES_API >= KERNEL_VERSION(4, 9, 0) <-- Change the kernel version to KERNEL_VERSION(4, 4, 168) fWrite ? FOLL_WRITE | /* Write to memory. */ FOLL_FORCE /* force write access. */ : 0, /* Write to memory. */

Restart the setup process:

Now, execute the /sbin/vboxconfig as root to re-start the setup process:# /sbin/vboxconfig vboxdrv.sh: Stopping VirtualBox services. vboxdrv.sh: Starting VirtualBox services. vboxdrv.sh: Building VirtualBox kernel modules. vboxdrv.sh: Starting VirtualBox services. ... #

Run vboxdrv:

So far so good. It's now the moment of the truth. If I can get vboxdrv running, it's all set:# /etc/rc.d/rc.vboxdrv start Starting VirtualBox kernel modules ...done. #

Hooray! it's working. In fact, I can bring up VirtualBox. All I need to do is to update their Guest Addition images to the latest.

That's all!

Kernel 4.4.172 on Slackware64 and NVIDIA

Today, I noticed the kernel update to 4.4.172 from Security Advisories and updated my system. After rebooting the system, it couldn't start my X-Window system! It just failed. From the log file, I was able to determine that there was some kind of incompatibility with current NVIDIA driver.

After much of trial-and-error, I was able to install the correct NVIDIA driver for my system and got X-Window system running again. This is just a note to myself and others who might face the same issues, and hopefully they don't need to go through all the troubles.

The information in this site is the result of my researches in the Internet and of my experiences. This information below is solely used for my purpose and may not be suitable for others.

First of all, I just go though the ways to install package updates from the slackware website, just for a formality. The procedure was pretty simple and I followed the instruction in that page (well, most of the part). $ cd /tmp/patches $ wget ftp://ftp.slackware.com/pub/slackware/slackware64-14.2/patches/packages/*.txz # upgradepkg *.txz ... #

Now, download the kernel packages:$ wget ftp://ftp.slackware.com/pub/slackware/slackware64-14.2/patches/packages/linux-4.4.172/*.txz # upgradepkg kernel-*.txz ... # /usr/share/mkinitrd/mkinitrd_command_generator.sh -k 4.4.172 | bash ...

The instruction says to run the lilo command to reinstall lilo:# lilo Fatal: open /boot/vmlinuz-generic=4.4.xx: No such file or directory

Oops, it looks like I do need to update the lilo.conf file to reflect with new updated kernel image and version. To do this, open the /etc/lilo.conf file and point to the right image name and label:# nvim /etc/lilo.conf ... image = /boot/vmlinuz-generic-4.4.xx <-- Change this to /boot/vmlinuz-generic-4.4.172 initrd = /boot/initrd.gz root = /dev/sda2 label = 4.4.xx <-- Change this to 4.4.172 read-only ...

Then, re-run the lilo command:# lilo Added 4.4.172 + * # reboot

After rebooting and loging in, startx failed.

The log, /var/log/Xorg.0.log, indicates something about nvidia driver missing, so I figured there was an incompatibility with the updated kernel. Then, I google'ed for a solution and learned that SlackBuilds.org had NVIDIA driver packages (418.43).

I downloaded and installed. During the installation, it warned that this driver packages were not compatible with my NVIDIA card, GeForce GTS 450, and recommended to use 390.xx. Of course, installation of this packages didn't fix the problem.

Then, I searched the nvidia site for the correct driver for my card and found 390.87. But this driver always failed to build against the kernel 4.4.172. I desperately searched the Net for a solution but couldn't find any. So, I went back to the nvidia site for older drivers to try on. Under the Beta and older version link, I found the newer version 390.116, which was released a few weeks ago. This driver set does support my old card, GeForce GTS 450, so I gave it a shot.# sh NVIDIA-Linux-x86_64-390.116.run ...

The installation went successful without any issues. Moreover, startx was able to bring up the X-Window system!

That's all!