Moinsen,
Seit kurzem findet man im Repository "Kernel:stable" Pakete mit Kernel 4.6.0.
Wer wie ich den proprietären Nvidia Treiber in der "Legacy" Version 340.96 verwendet, wird zum Bau der entsprechenden Kernelmodule (nvidia.ko und nvidia-uvm.ko) einen kleinen Patch anwenden müssen.
(Siehe auch Anhang, das unnötige ".txt" am Ende ist der Forensoftware geschuldet, die bestimmte Dateiendungen erwartet)
1) Den Patch als einfache Textdatei (z.B. unter dem Namen "nvidia-340.96-4.6.patch") abspeichern.
2) Danach kann er wie folgt angewendet werden:
oder an einem konkreten Beispiel für den Installer "NVIDIA-Linux-x86_64-340.96-no-compat32.run"
3) Nun kann man den neu gebauten Installer (hier "NVIDIA-Linux-x86_64-340.96-no-compat32-custom.run") wie gewohnt aufrufen, dann klappts auch mit dem Nachbarn 4.6er Kernel.
Greetz,
RM
Nachtrag:
Last but not least und (nicht nur) für unsere Nostalgiker, hier der Patch als base64-codierte Datei ("man uudecode" hilft weiter).
Seit kurzem findet man im Repository "Kernel:stable" Pakete mit Kernel 4.6.0.
Wer wie ich den proprietären Nvidia Treiber in der "Legacy" Version 340.96 verwendet, wird zum Bau der entsprechenden Kernelmodule (nvidia.ko und nvidia-uvm.ko) einen kleinen Patch anwenden müssen.
Code:
--- kernel/os-mlock.c.orig 2015-11-09 06:44:53.000000000 +0100
+++ kernel/os-mlock.c 2016-05-18 19:16:33.263103070 +0200
@@ -45,7 +45,11 @@
}
down_read(&mm->mmap_sem);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
ret = get_user_pages(current, mm, (unsigned long)address,
+#else
+ ret = get_user_pages((unsigned long)address,
+#endif
page_count, write, force, user_pages, NULL);
up_read(&mm->mmap_sem);
pinned = ret;
@@ -58,7 +62,11 @@
else if (pinned < page_count)
{
for (i = 0; i < pinned; i++)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
page_cache_release(user_pages[i]);
+#else
+ put_page(user_pages[i]);
+#endif
os_free_mem(user_pages);
return RM_ERR_INVALID_ADDRESS;
}
@@ -85,7 +93,11 @@
{
if (write)
set_page_dirty_lock(user_pages[i]);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
page_cache_release(user_pages[i]);
+#else
+ put_page(user_pages[i]);
+#endif
}
os_free_mem(user_pages);
--- kernel/uvm/nvidia_uvm_lite.c.orig 2015-11-09 06:44:53.000000000 +0100
+++ kernel/uvm/nvidia_uvm_lite.c 2016-05-18 19:16:33.263103070 +0200
@@ -785,7 +785,11 @@
// a reference so that the fault handling logic is correct:
//
get_page(pTracking->uvmPage);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
retValue = VM_FAULT_MINOR;
+#else
+ retValue = 0;
+#endif
}
pRecord->isMapped = NV_TRUE;
1) Den Patch als einfache Textdatei (z.B. unter dem Namen "nvidia-340.96-4.6.patch") abspeichern.
2) Danach kann er wie folgt angewendet werden:
Code:
./NVIDIA-Linux-<ARCH>-<VERSION>.run --apply-patch <NAME_DER_PATCHDATEI>
Code:
./NVIDIA-Linux-x86_64-340.96-no-compat32.run --apply-patch nvidia-340.96-4.6.patch
Verifying archive integrity... OK
Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 340.96.........................................................................................................................................................................................................
patching file kernel/os-mlock.c
patching file kernel/uvm/nvidia_uvm_lite.c
Adding files to archive named "NVIDIA-Linux-x86_64-340.96-no-compat32-custom.run"...
./.manifest
./html/
./html/xrandrextension.html
./html/xineramaglx.html
----------- snip -----------------
./pkg-history.txt
./LICENSE
./NVIDIA_Changelog
CRC: 3922802423
MD5: 198be0176f3e08cb0b1c0358a082186b
Self-extractible archive "NVIDIA-Linux-x86_64-340.96-no-compat32-custom.run" successfully created.
Greetz,
RM
Nachtrag:
Last but not least und (nicht nur) für unsere Nostalgiker, hier der Patch als base64-codierte Datei ("man uudecode" hilft weiter).
Code:
begin-base64 644 nvidia-340.96-4.6.patch
LS0tIGtlcm5lbC9vcy1tbG9jay5jLm9yaWcJMjAxNS0xMS0wOSAwNjo0NDo1
My4wMDAwMDAwMDAgKzAxMDAKKysrIGtlcm5lbC9vcy1tbG9jay5jCTIwMTYt
MDUtMTggMTk6MTY6MzMuMjYzMTAzMDcwICswMjAwCkBAIC00NSw3ICs0NSwx
MSBAQAogICAgIH0KIAogICAgIGRvd25fcmVhZCgmbW0tPm1tYXBfc2VtKTsK
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDYs
MCkKICAgICByZXQgPSBnZXRfdXNlcl9wYWdlcyhjdXJyZW50LCBtbSwgKHVu
c2lnbmVkIGxvbmcpYWRkcmVzcywKKyNlbHNlCisgICAgcmV0ID0gZ2V0X3Vz
ZXJfcGFnZXMoKHVuc2lnbmVkIGxvbmcpYWRkcmVzcywKKyNlbmRpZgogICAg
ICAgICAgICAgcGFnZV9jb3VudCwgd3JpdGUsIGZvcmNlLCB1c2VyX3BhZ2Vz
LCBOVUxMKTsKICAgICB1cF9yZWFkKCZtbS0+bW1hcF9zZW0pOwogICAgIHBp
bm5lZCA9IHJldDsKQEAgLTU4LDcgKzYyLDExIEBACiAgICAgZWxzZSBpZiAo
cGlubmVkIDwgcGFnZV9jb3VudCkKICAgICB7CiAgICAgICAgIGZvciAoaSA9
IDA7IGkgPCBwaW5uZWQ7IGkrKykKKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTig0LDYsMCkKICAgICAgICAgICAgIHBhZ2VfY2Fj
aGVfcmVsZWFzZSh1c2VyX3BhZ2VzW2ldKTsKKyNlbHNlCisgICAgICAgICAg
ICBwdXRfcGFnZSh1c2VyX3BhZ2VzW2ldKTsKKyNlbmRpZgogICAgICAgICBv
c19mcmVlX21lbSh1c2VyX3BhZ2VzKTsKICAgICAgICAgcmV0dXJuIFJNX0VS
Ul9JTlZBTElEX0FERFJFU1M7CiAgICAgfQpAQCAtODUsNyArOTMsMTEgQEAK
ICAgICB7CiAgICAgICAgIGlmICh3cml0ZSkKICAgICAgICAgICAgIHNldF9w
YWdlX2RpcnR5X2xvY2sodXNlcl9wYWdlc1tpXSk7CisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCw2LDApCiAgICAgICAgIHBh
Z2VfY2FjaGVfcmVsZWFzZSh1c2VyX3BhZ2VzW2ldKTsKKyNlbHNlCisgICAg
ICAgIHB1dF9wYWdlKHVzZXJfcGFnZXNbaV0pOworI2VuZGlmCiAgICAgfQog
CiAgICAgb3NfZnJlZV9tZW0odXNlcl9wYWdlcyk7Ci0tLSBrZXJuZWwvdXZt
L252aWRpYV91dm1fbGl0ZS5jLm9yaWcJMjAxNS0xMS0wOSAwNjo0NDo1My4w
MDAwMDAwMDAgKzAxMDAKKysrIGtlcm5lbC91dm0vbnZpZGlhX3V2bV9saXRl
LmMJMjAxNi0wNS0xOCAxOToxNjozMy4yNjMxMDMwNzAgKzAyMDAKQEAgLTc4
NSw3ICs3ODUsMTEgQEAKICAgICAgICAgLy8gYSByZWZlcmVuY2Ugc28gdGhh
dCB0aGUgZmF1bHQgaGFuZGxpbmcgbG9naWMgaXMgY29ycmVjdDoKICAgICAg
ICAgLy8KICAgICAgICAgZ2V0X3BhZ2UocFRyYWNraW5nLT51dm1QYWdlKTsK
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDYs
MCkKICAgICAgICAgcmV0VmFsdWUgPSBWTV9GQVVMVF9NSU5PUjsKKyNlbHNl
CisgICAgICAgIHJldFZhbHVlID0gMDsKKyNlbmRpZgogICAgIH0KIAogICAg
IHBSZWNvcmQtPmlzTWFwcGVkID0gTlZfVFJVRTsK
====