Here is the list of packages that broke after the switch to 4.14 (https://github.com/NixOS/nixpkgs/commit/bfe9c928c18583d3adfb5978a55b48c392649ef5), which was reverted back to 4.9 in eb85eb5c738701f7c2b0ce32250d09bf0ff00325. Probably the two legacy packages may be restricted to older kernels, and the others should be fixed.
nix-build nixos/tests/installer.nix -A zfsroot
after setting linuxPackages = linuxPackages_4_14
in all-packages.nix
(#32634, see #31615, #31729)I need help in #31037, that should take care of VirtualBox
I have been trying to get amdgpu-pro fixed for a little while now but I think it does require an update from AMD's side for kernel 4.14.x
Or it's because I don't know make too well, the build errors out like so:
CC [M] /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/amd/amdkfd/kfd_crat.o
CC [M] /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/amd/amdkfd/kfd_rdma.o
CC [M] /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/amd/amdkfd/kfd_peerdirect.o
CC [M] /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/amd/amdkfd/kfd_ipc.o
CC [M] /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/amd/amdkfd/kfd_debugfs.o
LD [M] /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/amd/amdkfd/amdkfd.o
make[2]: *** [/nix/store/prk1nwg5s1619jbrpp67v5jr3xpv7347-linux-4.14-dev/lib/modules/4.14.0/source/Makefile:1503: _module_/tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261] Error 2
make[1]: *** [Makefile:146: sub-make] Error 2
make: *** [Makefile:24: __sub-make] Error 2
make: Leaving directory '/nix/store/prk1nwg5s1619jbrpp67v5jr3xpv7347-linux-4.14-dev/lib/modules/4.14.0/build'
note: keeping build directory ‘/tmp/nix-build-amdgpu-pro-17.40-4.14.drv-1’
builder for ‘/nix/store/z5q0c0q0gqd02skgxh94wgiccpx3jsc8-amdgpu-pro-17.40-4.14.drv’ failed with exit code 2
error: build of ‘/nix/store/z5q0c0q0gqd02skgxh94wgiccpx3jsc8-amdgpu-pro-17.40-4.14.drv’ failed
Re. make you have posted Error 2
, a secondary error. The actual cause of the failure is Error 1
somewhere above.
Working on mwprocapture now, it compiles on my local tree but doesn't work yet, as vfs_write and vfs_read are no longer exported
Also, with PR #31148 nvidia_x11 builds and works successfully with kernel 4.14.0, on my end
@orivej Ah, I had to scroll WAY up :)
It looks bad (to the untrained eye :D)...
/tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/include/kcl/kcl_drm.h:271:29: error: incompatible type for argument 7 of 'drm_universal_plane_init'
formats, format_count, type, name);
^~~~
In file included from /nix/store/prk1nwg5s1619jbrpp67v5jr3xpv7347-linux-4.14-dev/lib/modules/4.14.0/source/include/drm/drm_crtc.h:45:0,
from /nix/store/prk1nwg5s1619jbrpp67v5jr3xpv7347-linux-4.14-dev/lib/modules/4.14.0/source/include/drm/drmP.h:69,
from /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/include/kcl/kcl_drm.h:6,
from /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/amd/amdkcl/kcl_drm.c:1:
/nix/store/prk1nwg5s1619jbrpp67v5jr3xpv7347-linux-4.14-dev/lib/modules/4.14.0/source/include/drm/drm_plane.h:548:5: note: expected 'const uint64_t * {aka const long long unsigned int *}' but argument is of type 'enum drm_plane_type'
int drm_universal_plane_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/amd/amdkcl/kcl_drm.c:1:0:
/tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/include/kcl/kcl_drm.h:271:35: error: incompatible type for argument 8 of 'drm_universal_plane_init'
formats, format_count, type, name);
^~~~
In file included from /nix/store/prk1nwg5s1619jbrpp67v5jr3xpv7347-linux-4.14-dev/lib/modules/4.14.0/source/include/drm/drm_crtc.h:45:0,
from /nix/store/prk1nwg5s1619jbrpp67v5jr3xpv7347-linux-4.14-dev/lib/modules/4.14.0/source/include/drm/drmP.h:69,
from /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/include/kcl/kcl_drm.h:6,
from /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/amd/amdkcl/kcl_drm.c:1:
/nix/store/prk1nwg5s1619jbrpp67v5jr3xpv7347-linux-4.14-dev/lib/modules/4.14.0/source/include/drm/drm_plane.h:548:5: note: expected 'enum drm_plane_type' but argument is of type 'const char *'
int drm_universal_plane_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/amd/amdkcl/kcl_drm.c:1:0:
/tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/include/kcl/kcl_drm.h:270:10: error: too few arguments to function 'drm_universal_plane_init'
return drm_universal_plane_init(dev, plane, possible_crtcs, funcs,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /nix/store/prk1nwg5s1619jbrpp67v5jr3xpv7347-linux-4.14-dev/lib/modules/4.14.0/source/include/drm/drm_crtc.h:45:0,
from /nix/store/prk1nwg5s1619jbrpp67v5jr3xpv7347-linux-4.14-dev/lib/modules/4.14.0/source/include/drm/drmP.h:69,
from /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/include/kcl/kcl_drm.h:6,
from /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/amd/amdkcl/kcl_drm.c:1:
/nix/store/prk1nwg5s1619jbrpp67v5jr3xpv7347-linux-4.14-dev/lib/modules/4.14.0/source/include/drm/drm_plane.h:548:5: note: declared here
int drm_universal_plane_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/amd/amdkcl/kcl_drm.c:1:0:
/tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/include/kcl/kcl_drm.h: In function 'kcl_drm_calc_vbltimestamp_from_scanoutpos':
/tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/include/kcl/kcl_drm.h:332:9: error: too many arguments to function 'drm_calc_vbltimestamp_from_scanoutpos'
return drm_calc_vbltimestamp_from_scanoutpos(dev, pipe, max_error, vblank_time,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /nix/store/prk1nwg5s1619jbrpp67v5jr3xpv7347-linux-4.14-dev/lib/modules/4.14.0/source/include/drm/drmP.h:83:0,
from /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/include/kcl/kcl_drm.h:6,
from /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/amd/amdkcl/kcl_drm.c:1:
/nix/store/prk1nwg5s1619jbrpp67v5jr3xpv7347-linux-4.14-dev/lib/modules/4.14.0/source/include/drm/drm_vblank.h:173:6: note: declared here
bool drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[4]: *** [/nix/store/prk1nwg5s1619jbrpp67v5jr3xpv7347-linux-4.14-dev/lib/modules/4.14.0/source/scripts/Makefile.build:314: /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/amd/amdkcl/kcl_drm.o] Error 1
make[3]: *** [/nix/store/prk1nwg5s1619jbrpp67v5jr3xpv7347-linux-4.14-dev/lib/modules/4.14.0/source/scripts/Makefile.build:573: /tmp/nix-build-amdgpu-pro-17.40-4.14.drv-0/amdgpu-pro-17.40-492261/root/usr/src/amdgpu-17.40-492261/amd/amdkcl] Error 2
All this "too many arguments", "too few arguments" sound like an API mismatch to me..
Maybe we should just undo declaring 4.14 the new default for the moment, so we unblock the channel?!
It's pretty late where I am, somebody please do so? :) thx!
Fixed mwprocapture as of ce8dea6bdd18846579d32d0bcec94717bf616b41 !
(Linking fully works, and I recorded video/did a quick test stream)
@NeQuissimus no problem, I will set the attribute back to version 4.9 and it can be set back when the dust settles a bit!
@MP2E This may or may not be quite correct, see what ZFS developers did: https://github.com/zfsonlinux/spl/pull/666/files#diff-fc21f15a0f248a8ac8af4d3a06d86a89
@NeQuissimus I think so, let's fix this issue and retry.
Thanks for the pointer, after looking through the source a lot more carefully, it seems that it works as-is, but I noticed that one of the types was wrong, so I fixed it and updated the patch
Virtualbox will work with 4.14 once 5.2.1 is out: https://www.virtualbox.org/ticket/17080
Worth noting that Linux 4.9 doesn't work properly with Threadripper CPUs, specifically throwing a lot of bus errors due to a problematic ASPM implementation.
4.13.11 seems to be fine. Maybe we could use that?
zfsUnstable
resolved in https://github.com/NixOS/nixpkgs/pull/31729
@Baughn: 4.13 is going away very soon. On the other hand, GKG will be maintaining 4.14 for years.
@vcunat Yeah, I didn't mean permanently. :)
For the moment I've pinned my workstation to 4.13, but I'll be tracking the latest kernel for a while anyway; there are hardware features that won't be supported until at least 4.15, such as the CPU temperature sensors.
I realize my use case isn't common. Luckily it's a single-line fix for me. :P
VirtualBox done in e5c24abf3b7f12232b7d2ae08415537d54d75c91.
This should fix nvidiaLegacy340.
Thanks, pushed.
@vcunat I have tested patch for linux 4.13 from this thread:
which works great without any other stuff.
The patch from the same thread for 4.14 fixes kernel/uvm/nvidia_uvm_lite.c and kernel/nv-drm.c
however the one you pushed in 6aa3f54 patches only the second file.
We probably need the one provided in this thread.
I could test it when 4.14 will be available in unstable.
btw.
I could successfully build NVIDIA-Linux-x86_64-340.104 on linux 4.13
$ uname -a
Linux nixOs 4.13.16 #1-NixOS SMP Fri Nov 24 07:35:59 UTC 2017 x86_64 GNU/Linux
$ nixos-version
17.09.git.7f6f0c4 (Hummingbird)
Someone ticked off the ZFS box, this is in fact not working yet.
Only zfsunstable
works on 4.14.
I expect a new ZFS release pretty soon.
Looking at the ArchLinux package for NVIDIA 304.137, it can be seen that they use the same patch for 304 as for 340.
Thanks, fixed up the build that way. I'm not sure if anyone uses 304 on NixOS anymore, as .settings
didn't (and still doesn't) link on x86_64-linux.
@yellowgh0st: right, patching nvidia_uvm_lite.c
it's not done yet, but curiously it builds with 4.14 without patching it. I hope I will look into it soon. nixos-unstable
doesn't yet contain the nvidia driver patches, but everything else should be there already.
Well, I patched the file anyway in e9550f290c.
@vcunat thank you for your work.
Do you think anything is blocking update of default to 4.14 (now)? For amdgpu-pro
we can add an assertion advising users to switch to 4.9 manually. Nixpkgs 18.03 is to be forked in about two weeks.
I've been running 4.14.x and 4.15.x for quite a while now, I have had no issues. (albeit Intel GPU)
For the record, during the last two weeks I've been using 4.14 only. It was mostly on a pure Intel system (Skylake-S) without any problems, and also on Ryzen + Nvidia with just those Ryzen bugs (probably).
We have not experienced problems with current 4.14 kernels on servers, VMs and laptops so far. As 4.14 also has long-term support, I also think we should default to that version for 18.03.
With 4.14
I have a boot-time kernel panic in ipmi_probe
module on quite a new Supermicro server.
It should be ok to change default to 4.14
as long as 4.9
and 4.4
are still around and it is possible to write
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_4_9
Yes, we keep all kernels supported upstream, i.e. six longterm branches now from which two are to be dropped soon. 4.14 is default in master now.
It should be ok to change default to 4.14 as long as 4.9 and 4.4 are still around
4.14
is supported until January 2019 and 4.4
until February 2022 so I see no reason we should drop these. :)
(triage) 4.14 is currently the default on 18.03, so I assume it has been for quite a while. If no issue has been reported… maybe this issue should be closed?
Yeah, we can close this. Just checked the remaining issues: the amdgpu PR was merged and the Intel 3D issues were fixed upstream.
amdgpu-pro bump was merged. It doesn't build _now_ with 4.14, but that's probably just a minor libelf issue. On the whole it seems like it has few users if any.
Hmm, no, the obvious fix isn't enough:
--- a/pkgs/os-specific/linux/amdgpu-pro/default.nix
+++ b/pkgs/os-specific/linux/amdgpu-pro/default.nix
@@ -164,7 +164,7 @@ in stdenv.mkDerivation rec {
done
'';
- buildInputs = [
+ nativeBuildInputs = kernel.moduleBuildDependencies ++ [
patchelf
perl
];
It fixes the ORC problem but fails later on some incompatibilities – it's apparently too new kernel (or libdrm or something) for that driver version.
Most helpful comment
Yes, we keep all kernels supported upstream, i.e. six longterm branches now from which two are to be dropped soon. 4.14 is default in master now.