VMware – New Driver 12.5.0 – OK with Kernel 4.7, and 4.8..

Updated to the latest VMware Workstation Pro version – 12.5.0, and it compiles OK with kernel.org kernel 4.7 (4.7.3) and also with 4.8 (4.8-rc6).

Release notes here:   http://pubs.vmware.com/Release_Notes/en/workstation/12pro/workstation-125-release-notes.html

Nice to see that they have actually fixed quite a lot of Linux-related ‘issues’, this time..

Robert Gadsdon.  September 14, 2016

ARM64 – Odroid C2 – Boots with Latest ‘Linux-Next’..

I tried the latest ‘Linux-Next’ version, from https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/log/?id=refs/tags/next-20160913 and the C2 booted OK, but the Ethernet problem still persists..

.........
eth0: device MAC address 00:1e:06:33:13:6e
meson6-dwmac c9410000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx

Fedora 24 (Workstation Edition)
Kernel 4.8.0-rc6-next-20160913 on an aarch64 (ttyAML0)
.....................
# uname -a
Linux rgc2 4.8.0-rc6-next-20160913 #2 SMP PREEMPT Tue Sep 13 22:35:01 PDT 2016 aarch64 aarch64 aarch64 GNU/Linux

I had tried all the latest patched versions of 4.8-rc4/5/6 for the C2, and all of them still suffer from this problem..   ETH0 is present, and there are no errors shown, but network traffic stops after a short time..   Dropping the link to 100Mbps gives slightly better results, with a longer delay before traffic stops..

Now that this code is in the mainline tree, there is a better chance that this can be fixed..      I have read some reports that the C2 Ethernet link was OK with a certain patched kernel, but I have tried over eight different patch versions, and none of them worked correctly, on my system..

Robert Gadsdon.   September 13, 2016.

NVIDIA – New Driver – OK with 4.8..

NVIDIA have release driver version 370.28, and it compiles OK with Kernel 4.8, without any patches..   Tested with 4.8-rc5:

 .......................
Building modules, stage 2.
 MODPOST 4 modules
 CC /home/rgadsdon/kernel/rgtest_kernel-sept2016/kernel/NVIDIA-Linux-x86_64-370.28/kernel/nvidia-drm.mod.o
 LD [M] /home/rgadsdon/kernel/rgtest_kernel-sept2016/kernel/NVIDIA-Linux-x86_64-370.28/kernel/nvidia-drm.ko
 CC /home/rgadsdon/kernel/rgtest_kernel-sept2016/kernel/NVIDIA-Linux-x86_64-370.28/kernel/nvidia-modeset.mod.o
 LD [M] /home/rgadsdon/kernel/rgtest_kernel-sept2016/kernel/NVIDIA-Linux-x86_64-370.28/kernel/nvidia-modeset.ko
 CC /home/rgadsdon/kernel/rgtest_kernel-sept2016/kernel/NVIDIA-Linux-x86_64-370.28/kernel/nvidia-uvm.mod.o
 LD [M] /home/rgadsdon/kernel/rgtest_kernel-sept2016/kernel/NVIDIA-Linux-x86_64-370.28/kernel/nvidia-uvm.ko
 CC /home/rgadsdon/kernel/rgtest_kernel-sept2016/kernel/NVIDIA-Linux-x86_64-370.28/kernel/nvidia.mod.o
 LD [M] /home/rgadsdon/kernel/rgtest_kernel-sept2016/kernel/NVIDIA-Linux-x86_64-370.28/kernel/nvidia.ko
make[2]: Leaving directory '/usr/src/linux-4.8-rc5'
make[1]: Leaving directory '/usr/src/linux-4.8-rc5'
[rgadsdon@rglinux kernel]$ uname -a
Linux rglinux 4.8.0-rc5 #1 SMP Tue Sep 6 13:27:47 PDT 2016 x86_64 x86_64 x86_64 GNU/Linux

Robert Gadsdon.   September 9, 2016.

ARM64 – Odroid C2 – Boots with Patched 4.8-rc4 – Ethernet Issues..

Decided to try the Odroid C2 with the latest Kernel, and recently-released patches for MMC support..

Used the (patched) version of 4.8-rc4 from here:  https://github.com/ioft/linux/tree/c2    Thanks to umiddelb for producing this, which incorporates the (e)MMC support patches, and also includes patches providing the latest version of the dwmac_meson8b Ethernet driver, and associated mods to the device tree files, etc..    More details in the Odroid Forum discussions: http://forum.odroid.com/viewtopic.php?f=135&t=22717#p157817

The C2 booted OK, once I had modified the boot parameters and /etc/fstab to take account of the fact that the eMMC module (which I use) is /dev/mmcblk1, and not (as previously) /dev/mmcblk0..   An SDCard would now be /dev/mmcblk0..

............
Fedora 24 (Workstation Edition)
Kernel 4.8.0-rc4-c2 on an aarch64 (ttyAML0)
............
[root@rgc2 ~]# uname -a
Linux rgc2 4.8.0-rc4-c2 #1 SMP PREEMPT Wed Aug 31 02:20:44 EDT 2016 aarch64 aarch64
.........

I soon encountered a problem with the Ethernet connection, and although eth0 was present, and there were no errors logged, network traffic stopped after a short time, and could only be re-started by removing and reinstalling the dwmac_meson8b driver module – and then traffic stopped again after a short time…..

The Ethernet driver patches for the C2 are still very much a work-in-progress, and I would hope that this is fixed in a later release..      More details here:   http://www.mail-archive.com/netdev@vger.kernel.org/msg123923.html

Robert Gadsdon.   August 31, 2016.

X86_64 – UP Board – ‘Cherry Trail’ – Sound – Working..

The only missing OS component on the new UP Board (x5-Z8350) was that sound (HDMI) was not present..    After a bit of digging, I found some patches for Kernel 4.5, and a later patched kernel version that was supposed to work..

I tried the patched version of 4.7.0 from here:  https://github.com/plbossart/sound/tree/byt-cht-hdmi-v4.7  but found that the compile failed:

 ...............................
CC [M] sound/hdmi_audio/intel_mid_hdmi_audio_if.o
In file included from sound/hdmi_audio/intel_mid_hdmi_audio_if.c:31:0:
sound/hdmi_audio/intel_mid_hdmi_audio_if.c: In function ‘had_chk_intrmiss’:
sound/hdmi_audio/intel_mid_hdmi_audio.h:730:12: error: inlining failed in call to always_inline ‘snd_intelhad_read_len’: function body not available
 inline int snd_intelhad_read_len(struct snd_intelhad *intelhaddata);
 ^~~~~~~~~~~~~~~~~~~~~
sound/hdmi_audio/intel_mid_hdmi_audio_if.c:203:13: note: called from here
 intr_count = snd_intelhad_read_len(intelhaddata);
 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from sound/hdmi_audio/intel_mid_hdmi_audio_if.c:31:0:
sound/hdmi_audio/intel_mid_hdmi_audio.h:738:12: error: inlining failed in call to always_inline ‘had_write_register’: function body not available
 inline int had_write_register(uint32_t reg_addr, uint32_t data);
 ^~~~~~~~~~~~~~~~~~
.................................

After more ‘research’, it seemed that this might possibly be due to the ‘later’ gcc compiler provided with Fedora 24 (6.1.1)..?     I found some older articles that referenced this particular error, and these suggested that the fix was simply to remove references to ”inline” in the affected code..    So, I modified ~/sound/hdmi_audio/intel_mid_hdmi_audio.h and removed references to ‘inline‘ from the code, and re-compiled the kernel, and it compiled OK, and when booted, sound (via HDMI) actually worked..

[rgadsdon@rgup ~]$ uname -a
Linux rgup 4.7.0-up #2 SMP Thu Aug 25 18:28:44 PDT 2016 x86_64 x86_64 x86_64 GNU/Linux
............
[rgadsdon@rgup ~]$ ll /dev/snd
total 0
drwxr-xr-x 2 root root 60 Aug 25 18:54 by-path
crw-rw----+ 1 root audio 116, 2 Aug 25 18:54 controlC0
crw-rw----+ 1 root audio 116, 3 Aug 25 19:02 pcmC0D0p
crw-rw----+ 1 root audio 116, 1 Aug 25 18:54 seq
crw-rw----+ 1 root audio 116, 33 Aug 25 18:54 timer

Not sure when this will all be incorporated in mainline kernel code, and the patches still include at least one #Fixme..

Robert Gadsdon.    August 25, 2016.

NVIDIA – Driver for Kernel 4.7.. Patch for 4.8 Still Works

NVIDIA have released their latest driver – 370.23 – which (finally!) works with Kernel 4.7, without any patches..

The driver fails to compile with Kernel 4.8, but the previous 367.35 patch fixes this (See article here: http://rglinuxtech.com/?p=1788).
Tested with 4.8-rc2:

..............
ld -r -o /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia-modeset/nv-modeset-interface.o /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia-modeset/nvidia-modeset-linux.o
 Building modules, stage 2.
 MODPOST 4 modules
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia-drm.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia-drm.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia-modeset.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia-modeset.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia-uvm.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia-uvm.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-370.23-patched/kernel/nvidia.ko
make[2]: Leaving directory '/usr/src/linux-4.8-rc2'
make[1]: Leaving directory '/usr/src/linux-4.8-rc2'

Robert Gadsdon.   August 16, 2016.

X86_64 – Up Board – New Pi-Sized System, with Intel Acorn SoC..

Just taken delivery of the Up Board – an Intel Acorn powered SoC system, with the same form factor as a Pi..

UP Board Intel SoC

UP Board Intel SoC

It was quite a novelty to be able to plug a Fedora 24 Live USB stick in, and install directly to the device..      I booted the Live system first, and then used the ‘install to hard drive’ option..     For some reason, the install only worked if I unmounted the main eMMC partition (/dev/mmcblk0p2) first..

When it came to partitioning, the on-board eMMC (32GB) already had a 128MB partition as ‘Microsoft hidden’ and the other 29GB partition as NTFS, so I just changed the 128MB partition to ‘EFI System’ and mounted it as /boot/efi, and made the 29GB partition the standard EXT4-formatted rootfs..

It even has a real bios interface, from another blast-from-the-past – American Megatrends..      In case you were wondering – I left the OS IMAGE ID parameter at ‘Windows 8.1’, as it was working fine, and I didn’t want to mess with anything that worked OK!   Interesting that it had – apparently – detected the Boot Option #1 as ‘Fedora’?

UP Board BIOS

UP Board BIOS

The install completed OK, and even the standard Fedora 24 kernel sort-of worked, although the display was a bit quirky, and attempts to switch out of the HDMI monitor connection caused the system to die..     I decided to try an upgrade to a compiled Kernel 4.8-rc2, and this was much better, with stable display, and ability to operate ‘headless’ if needed..

....
Fedora 24 (Workstation Edition)
Kernel 4.8.0-rc2 on an x86_64 (tty1)
.....
$ uname -a
Linux rgup 4.8.0-rc2 #1 SMP Mon Aug 15 15:16:23 PDT 2016 x86_64 x86_64 x86_64 GNU/Linux

My only real mistake was not ordering the rather proprietary micro-ten-pin UART+USB combo connector at the same time as the rest of the system..   I thought I could modify an existing USB/UART connector, but the on-board connection is really tiny, and the ten-pin connector itself seems very hard to find…   I ended up ordering the combo connector separately, but shipping costs to the USA are rather steep for such an inexpensive item!

The device seems – so far – to be quite powerful, but runs a bit hot, although it is capable of running a full multi-cpu kernel compile onboard, so hopefully the main heatsink – and metal plate attached under the board, will be sufficient..

Robert Gadsdon.    August 15, 2016

KERNEL – 4.8-rc1 Out – Breaks VMware and NVIDIA – and Fixes..

Kernel 4.8-rc1 is out, and brief details are here:   http://lkml.iu.edu/hypermail/linux/kernel/1608.0/04804.html

VMware 12.1.1 – with the previous 4.6/4.7 patches, fails to compile vmmon:

/tmp/modconfig-gfkQLR/vmmon-only/linux/hostif.c: In function ‘HostIF_EstimateLockedPageLimit’:
/tmp/modconfig-gfkQLR/vmmon-only/linux/hostif.c:1597:47: error: ‘NR_ANON_PAGES’ undeclared (first use in this function)

Further research revealed that NR_ANON_PAGES has been changed to NR_ANON_MAPPED in 4.8, and so the fix is quite simple..

In ~/vmmon-only/linux/hostif.c, around line 1594, change
unsigned int anonPages = global_page_state(NR_ANON_PAGES);
to
unsigned int anonPages = global_page_state(NR_ANON_MAPPED);

With this change, vmmon compiles OK again..

For NVIDIA driver 367.35 – with the 4.7 patches – the compilation fails with 4.8-rc1:

/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-367.35-patched/kernel/nvidia-drm/nvidia-drm-drv.c: In function ‘nvidia_drm_migrate_modeset_ownership’:
/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-367.35-patched/kernel/nvidia-drm/nvidia-drm-drv.c:455:26: error: ‘struct drm_minor’ has no member named ‘master’
 !file_priv->minor->master)
 ^~
/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-367.35-patched/kernel/nvidia-drm/nvidia-drm-drv.c:476:5: error: implicit declaration of function ‘drm_master_put’ [-Werror=implicit-function-declaration]
 drm_master_put(&file_priv->minor->master);
 ^~~~~~~~~~~~~~
/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-367.35-patched/kernel/nvidia-drm/nvidia-drm-drv.c:476:37: error: ‘struct drm_minor’ has no member named ‘master’
 drm_master_put(&file_priv->minor->master);

The fix is already documented, thanks to m00ster and andresu on the Devtalk forum, and details are here:  https://devtalk.nvidia.com/default/topic/954279/linux/nvidia-367-35-dkms-build-errors-for-a-4-7-0-kernel/

I have been running driver 367.35 without these particular patches on 4.7 Final, for some time..    I applied the changes – manually – and now 367.35, with the original 4.7 patches plus these patches, compiles OK on 4.8-rc1:

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

Robert Gadsdon.   August 8, 2016.

ARM64 – Hikey to Kernel 4.7 – and Polkitd Fix..

Managed to update the Hikey ARM64 SoC to the latest kernel – 4.7 Final.

Fedora 24 (Twenty Four)
Kernel 4.7.0 on an aarch64 (ttyAMA0)
............................
# uname -a
Linux rghikey 4.7.0 #1 SMP PREEMPT Sun Jul 24 19:53:54 EDT 2016 aarch64 aarch64 aarch64 GNU/Linux

On boot, and when the network initialised, polkitd segfaulted again, the same as when I booted a version of 4.7-next..http://rglinuxtech.com/?p=1767   After a bit of research, I found that this was a userland problem with mozjs17 on ARM64:    https://lists.fedoraproject.org/pipermail/arm/2015-July/009639.html

As this had not been fixed for over a year, I went ahead and applied the patch to the latest mozjs17 source rpm, and rebuilt/updated, and the problem has gone away..

So.. this is (so far..) the only ARM64 device I have that works (headless..) with the mainstream Linux kernel..

Robert Gadsdon.   July 25, 2016.

KERNEL – 4.7 Released – OK with Patched VMware and NVIDIA..

Kernel 4.7 has been released – slightly later than usual – and brief details are here:  http://lkml.iu.edu/hypermail/linux/kernel/1607.3/00150.html

$ uname -a
Linux rglinux-i7 4.7.0 #1 SMP Sun Jul 24 14:34:37 PDT 2016 x86_64 x86_64 x86_64 GNU/Linux

Neither VMware nor NVIDIA have drivers that work with this kernel version, but the 4.7-rc patched versions of VMware 12.1.1 and NVIDIA 367.35 both work OK with 4.7-Final..     For details on these patches, see earlier articles on 4.7-rc1..  http://rglinuxtech.com/?p=1746  http://rglinuxtech.com/?p=1750

I had already created a patched version of the NVIDIA installer (see previous article), and applied it to 4.7:

./NVIDIA-Linux-x86_64-367.35-custom.run -s --install-libglvnd --glvnd-glx-client

Robert Gadsdon.  July 24, 2016.