VMware – 12.5.6 Released – OK with Kernel 4.11, Still Not with 4.12

VMware version 12.5.6 is out, and (brief) details are here: http://pubs.vmware.com/Release_Notes/en/workstation/12/workstation-1256-release-notes.html

In the release notes, it would be helpful if a bit more detail than just ” Bug fixes and security updates ” were given…

This version now works OK with Kernel 4.11 without any patches (tested with 4.11.1), but still fails (vmmon) with 4.12 (tested with 4.12-rc1):

...............................
/usr/lib/vmware/modules/source/vmmon-only/./include/pgtbl.h: In function ‘PgtblPGD2PTELocked’:
/usr/lib/vmware/modules/source/vmmon-only/./include/pgtbl.h:125:28: error: passing argument 1 of ‘pud_offset’ from incompatible pointer type [-Werror=incompatible-pointer-types]
 pud = compat_pud_offset(pgd, addr);
 ^
/usr/lib/vmware/modules/source/vmmon-only/./include/compat_pgtable.h:72:56: note: in definition of macro ‘compat_pud_offset’
 # define compat_pud_offset(pgd, address) pud_offset(pgd, address)
 ^~~
In file included from ./include/linux/mm.h:70:0,
 from /usr/lib/vmware/modules/source/vmmon-only/./include/compat_page.h:23,
 from /usr/lib/vmware/modules/source/vmmon-only/linux/hostif.c:32:
./arch/x86/include/asm/pgtable.h:826:22: note: expected ‘p4d_t * {aka struct <anonymous> *}’ but argument is of type ‘compat_pgd_t * {aka struct <anonymous> *}’
 static inline pud_t *pud_offset(p4d_t *p4d, unsigned long address)
 ^~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:303: /usr/lib/vmware/modules/source/vmmon-only/linux/hostif.o] Error 1
make[1]: *** [Makefile:1512: _module_/usr/lib/vmware/modules/source/vmmon-only] Error 2
make[1]: Leaving directory '/usr/src/linux-4.12-rc1'
make: *** [Makefile:120: vmmon.ko] Error 2

A similar compile failure also occurs with VirtualBox and Kernel 4.12: https://www.virtualbox.org/ticket/16725 , but there is no solution mentioned there – so far..

The rather messy workarounds are still needed for GCC 7 (Fedora 26 etc.) and details are here: http://rglinuxtech.com/?p=1939 , but remember that the library version numbers will now be different from the examples shown..

Robert Gadsdon.   May 18, 2017.

Kernel – 4.11.1 released – NVIDIA OK Now..

Kernel 4.11.1 has been released, and the changelog is here:  https://cdn.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.11.1

This does include the licence ‘revert’ for refcount.c, and so the latest NVIDIA drivers now compile/load OK..

 ............................
Building modules, stage 2.
 MODPOST 4 modules
 CC /home/rgadsdon/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm.mod.o
 LD [M] /home/rgadsdon/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm.ko
 CC /home/rgadsdon/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset.mod.o
 LD [M] /home/rgadsdon/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset.ko
 CC /home/rgadsdon/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm.mod.o
 LD [M] /home/rgadsdon/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm.ko
 CC /home/rgadsdon/NVIDIA-Linux-x86_64-381.22/kernel/nvidia.mod.o
 LD [M] /home/rgadsdon/NVIDIA-Linux-x86_64-381.22/kernel/nvidia.ko
make[2]: Leaving directory '/usr/src/linux-4.11.1'
make[1]: Leaving directory '/usr/src/linux-4.11.1'

Robert Gadsdon.  May14, 2017.

Kernel – 4.12-rc1 Released – NVIDIA OK, VMware Not..

Kernel 4.12-rc1 is out – one day early – and brief details are here:  http://lkml.iu.edu/hypermail/linux/kernel/1705.1/03964.html

The release includes the reverted GPL/MIT licence changes in refcount.c, and the latest NVIDIA drivers compile/load OK, now:

 ...........................
Building modules, stage 2.
 MODPOST 4 modules
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia.ko
make[2]: Leaving directory '/usr/src/linux-4.12-rc1'
make[1]: Leaving directory '/usr/src/linux-4.12-rc1'

4.11-patched VMware 12.5.5 fails to compile..   vmnet is OK, but vmmon fails:

............................
In file included from /usr/lib/vmware/modules/source/vmmon-only/./include/pgtbl.h:25:0,
 from /usr/lib/vmware/modules/source/vmmon-only/linux/hostif.c:99:
/usr/lib/vmware/modules/source/vmmon-only/./include/pgtbl.h: In function ‘PgtblPGD2PTELocked’:
/usr/lib/vmware/modules/source/vmmon-only/./include/pgtbl.h:125:28: error: passing argument 1 of ‘pud_offset’ from incompatible pointer type [-Werror=incompatible-pointer-types]
 pud = compat_pud_offset(pgd, addr);
 ^
/usr/lib/vmware/modules/source/vmmon-only/./include/compat_pgtable.h:72:56: note: in definition of macro ‘compat_pud_offset’
 # define compat_pud_offset(pgd, address) pud_offset(pgd, address)
 ^~~
In file included from ./include/linux/mm.h:70:0,
 from /usr/lib/vmware/modules/source/vmmon-only/./include/compat_page.h:23,
 from /usr/lib/vmware/modules/source/vmmon-only/linux/hostif.c:32:
./arch/x86/include/asm/pgtable.h:826:22: note: expected ‘p4d_t * {aka struct <anonymous> *}’ but argument is of type ‘compat_pgd_t * {aka struct <anonymous> *}’
 static inline pud_t *pud_offset(p4d_t *p4d, unsigned long address)
 ^~~~~~~~~~

Robert Gadsdon.    May 13, 2017.

NVIDIA – Another New Driver – 4.11 Fix Still Needed – May be ‘Fixed’ in Kernel, Soon..

New NVIDIA driver 381.22 has been released, and details are here:  http://www.nvidia.com/Download/driverResults.aspx/118524/en-us

The 4.11 ‘workaround’ still applies (see http://rglinuxtech.com/?p=1970 ).

It seems now that the reason the fix was – still – not made by NVIDIA, is that the problem may well be ‘fixed’ in a future Kernel release..

Changes to ‘revert’ the licensing have been proposed, as mentioned in a comment from this post: https://devtalk.nvidia.com/default/topic/1008121/linux/nvidia-drivers-381-22-linux-4-11-patch-is-still-required-really-nvidia-/  The comment mentions ”4.12 kernel should work” but I hope the patch will be applied to a later release of 4.11.x..

The proposed Kernel patch can be found at:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d557d1b58b3546bab2c5bc2d624c5709840e6b10

The comment with the patch includes “….. changing api markings isn’t considered “nice”, so let’s fix this up.

I applied the patch to Kernel 4.11.0 (with quite a lot of ‘fuzz’..) and can confirm that it does – as expected – fix the licensing issue, for 375.66 and 381.22:

..................
/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset/nvidia-modeset-linux.o
 Building modules, stage 2.
 MODPOST 4 modules
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-381.22/kernel/nvidia.ko
make[2]: Leaving directory '/usr/src/linux-4.11'
make[1]: Leaving directory '/usr/src/linux-4.11'

Robert Gadsdon.  May 10, 2017.

 

NVIDIA – New Driver With 4.11 Workaround, Not a Fix…

NVIDIA have released driver 375.66, and the details are here:  http://www.nvidia.com/Download/driverResults.aspx/118290/en-us

The details include the following:

Installation of the nvidia-drm kernel module is now optional. The new ‘- -no-drm’ option can be used to prevent nvidia-installer from building and installing nvidia-drm, on systems where this kernel module fails to build and/or load.”

This does not mention Kernel 4.11 and GPL issues specifically, but this is what this ‘new feature’ is actually designed for..     This is a workaround, but not a solution..

Using the new option – -no-drm when executing NVIDIA-Linux-x86_64-375.66.run, the nvidia-drm modules are simply ignored..

To use this feature when just compiling the kernel modules themselves, from ~/NVIDIA-Linux-x86_64-375.66/kernel, do the following:

# export NV_EXCLUDE_KERNEL_MODULES=nvidia-drm
# make

– and the compile will ignore the troublesome nvidia-drm modules, and complete successfully, without them:

.............
 Building modules, stage 2.
 MODPOST 3 modules
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-375.66/kernel/nvidia-modeset.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-375.66/kernel/nvidia-modeset.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-375.66/kernel/nvidia-uvm.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-375.66/kernel/nvidia-uvm.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-375.66/kernel/nvidia.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-375.66/kernel/nvidia.ko
make[2]: Leaving directory '/usr/src/linux-4.11'
make[1]: Leaving directory '/usr/src/linux-4.11'

I have tested this on 4.11, and it all seems to work as advertised…

It would seem that NVIDIA is having difficulty in re-writing the offending code in nvidia-drm to embrace the changes to licensing enforcement, and it may be – from initial correspondence on the kernel mailing list – that they were counting on the Kernel code changes being reverted, which they were not..

Robert Gadsdon.  May 5, 2017.  (reformatted to show two-dashes correctly..)

Hardware – Inexpensive Small Linux Laptop..

After some research, I decided to use an Intel-powered ex-Chromebook for my portable Linux project..    I settled on an Acer Chromebook c720p, as this could be ‘converted’ to run Linux natively, rather than in emulation via Crouton..    There are several articles on this, but I found useful info (and a chassis/mobo diagram) here:  https://ankitrasto.wordpress.com/2015/02/06/clean-installing-linux-on-the-acer-c720pc720-chromebook-a-complete-guide/

C720 Fedora KDE/Plasma

C720 Fedora KDE/Plasma

If you are going to do this, remember that the c720 disk can be upgraded, but the memory is soldered-on, so get one with 4GB memory!     I found one on eBay with the disk already upgraded to 128GB..

I started by installing Fedora 25, via a USB stick, but found – as usual – that the install was a bit hit-and-miss..    On the first attempt, the install failed as the bootloader failed to install, but on the second attempt, it all worked OK!    The existing Chrome OS installation took up around 11 separate partitions of odd sizes on the disk, and these all needed to be deleted, before the Linux install continued….

As I had been testing Fedora 26, I soon updated the C720 to this, and also found that KDE/Plasma ran quite well, and even the touchscreen worked – although I don’t have much use for it..

The C720 is now running Kernel 4.11, and I have an Ethernet connection via USB (AX88179 Gigabit Ethernet).

[rgadsdon@rg720 ~]$ uname -a
Linux rg720 4.11.0 #1 SMP Sun Apr 30 20:46:23 PDT 2017 x86_64 x86_64 x86_64 GNU/Linux

My only gripe, is the mousepad..  It is really an Apple-clone, and functions as a single button, although scrolling is possible (like a Mac) by using two fingers side-by-side..    As I did not want to tie up a USB port, I used a Bluetooth mouse, and this seems to be working quite well, and even functions in console mode..

Robert Gadsdon   May 3, 2017.

Kernel – 4.11 released, Patched VMware OK, NVIDIA Still Not OK..

Kernel 4.11 Final is out, a week later than planned, and brief details of changes from -rc8 are here:  http://lkml.iu.edu/hypermail/linux/kernel/1704.3/04608.html

As expected, VMware 12.5.5 with the 4.11 patches is still OK (see http://rglinuxtech.com/?p=1932 ), but there is still no ‘legal’ solution for the latest NVIDIA driver – 381.09 (see https://devtalk.nvidia.com/default/topic/1002820/linux/-patch-381-09-kernel-4-11-rc5/ ):

.................
 Building modules, stage 2.
 MODPOST 4 modules
FATAL: modpost: GPL-incompatible module nvidia-drm.ko uses GPL-only symbol 'refcount_inc'
/usr/src/linux-4.11/scripts/Makefile.modpost:91: recipe for target '__modpost' failed
make[3]: *** [__modpost] Error 1
/usr/src/linux-4.11/Makefile:1495: recipe for target 'modules' failed
.........................

See previous article for more background on this: http://rglinuxtech.com/?p=1935

The NVIDIA ftp site has been down for the last 48 hours or so, and I cannot find any mention of any more recent driver version, so far..

If this goes on much longer, I may be tempted to try nouveau on my main system again..

Robert Gadsdon.   April 30, 2017.

X86_64 – UP Board – Updated to 4.11-rc8 – Sound Supported..

After a bit of a hiatus, I updated the UP Board to Kernel 4.11-rc8, and HDMI sound is now supported..

In the kernel config, under ‘ALSA for SoC audio support‘, select ‘X86 sound devices‘, and ‘HDMI audio without HDaudio on Intel Atom platforms

After (re)boot to 4.11-rc8:

[rgadsdon@rgup ~]$ ll /dev/snd
total 0
drwxr-xr-x 2 root root 60 Apr 24 22:18 by-path
crw-rw---- 1 root audio 116, 2 Apr 24 22:18 controlC0
crw-rw---- 1 root audio 116, 3 Apr 24 22:18 pcmC0D0p
crw-rw---- 1 root audio 116, 1 Apr 24 22:18 seq
crw-rw---- 1 root audio 116, 33 Apr 24 22:18 timer

My next ‘Intel’ project is a low-cost small laptop, based on a Chromebook, running Linux/Fedora25 natively, and more details will be coming soon..

Robert Gadsdon.   April 26, 2017..

NVIDIA – Still no 4.11 Solution, but a ‘Good’ Patch for Old Version..

Kernel 4.11 ‘final’ has been delayed for a week, and -rc8 has been released..     4.11-patched VMware 12.5.5 is OK, but there is still only a ‘Bad’ (illegal licence modification) patch for the latest NVIDIA driver..   (see https://devtalk.nvidia.com/default/topic/1002820/linux/-patch-381-09-kernel-4-11-rc5/ )

But, if you have an older card, there is a valid patch for driver 340.102 – which does not include the controversially-licensed code..

Details can be found here:    https://devtalk.nvidia.com/default/topic/1005209/linux/fully-working-patch-for-nvidia-driver-340-102-compiler-installer-file-and-linux-kernel-4-11/

I can confirm that this compiles OK with Kernel 4.11-rc8, but cannot test any further, as it does not support my – fairly new – card.

Robert Gadsdon.   April 23, 2017.

 

NVIDIA – New Driver, Finally OK with Kernel 4.10..

NVIDIA have released a new ‘beta’ driver – 381.09 – and release notes etc. are here: http://www.nvidia.com/download/driverResults.aspx/117002/en-us

The driver compiles OK with Kernel 4.10 (tested with 4.10.8) but still requires an ‘illegal’ patch for 4.11, due to ongoing code licensing issues..    There is a patch available, and details are here:   https://devtalk.nvidia.com/default/topic/1002820/linux/-patch-381-09-kernel-4-11-rc5/

Robert Gadsdon.   April 6, 2017.