[Eisfair] [e1] eiskernel 3.17.0 (Status 'testing') verfügbar - 3.16er Kernel für eisfair-1
Thomas Bork
tom at eisfair.org
Fr Jul 13 23:41:14 CEST 2018
Hi @all,
es ist eine Version 3.17.0 von eiskernel mit dem Status 'testing' für
eisfair-1 verfügbar.
Intern wird hierfür der Kernel 3.16.57 aus der Kernel-Serie 3.16
verwendet, die zur Zeit als longterm-Variante die längst mögliche
Unterstützung bietet.
Siehe dazu:
https://www.kernel.org/category/releases.html
Obwohl der Kernel die KPTI-Patches enthält, werden diese bei uns nicht
aktiv, da die bisherige Implementation nicht bei 32-Bit-Kerneln greift.
https://de.wikipedia.org/wiki/Kernel_page-table_isolation
Aber es wird die Verwundbarkeit durch Spectre (v1/v2) in dieser
Kernel-Version vermindert.
https://de.wikipedia.org/wiki/Spectre_(Sicherheitsl%C3%BCcke)
Das sieht dann mit meiner CPU unter 32 Bit so aus:
kernel316 # dmesg | grep -i spectre
[ 0.003702] Spectre V2 : Vulnerable: Minimal generic ASM retpoline
[ 0.003704] Spectre V2 : Filling RSB on context switch
kernel316 # ls -l /sys/devices/system/cpu/vulnerabilities/
total 0
-r--r--r-- 1 root root 4096 Mar 23 12:58 meltdown
-r--r--r-- 1 root root 4096 Mar 23 12:58 spectre_v1
-r--r--r-- 1 root root 4096 Mar 23 12:58 spectre_v2
kernel316 # cat /sys/devices/system/cpu/vulnerabilities/meltdown
Vulnerable
Es gibt noch keine KPTI für 32 Bit in unserem Kernel 3.16.57.
Wir sind verwundbar.
kernel316 # cat /sys/devices/system/cpu/vulnerabilities/spectre_v1
Mitigation: __user pointer sanitization
Unterstützung ist im Kernel. Die Gefahr wird abgemildert.
kernel316 # cat /sys/devices/system/cpu/vulnerabilities/spectre_v2
Vulnerable: Minimal generic ASM retpoline
Wir haben noch keinen gcc mit retpoline-Support. Wir sind verwundbar und
nur minimal geschützt durch eine generische Unterstützung im Kernel.
Dieser Kernel wird in 3 Varianten angeboten (alle 32-Bit):
1. SMP
2. PAE
3. VIRT
Der SMP-Kernel unterstützt Systeme mit einem oder mehreren Prozessoren
und Prozessoren mit einem oder mehreren physikalischen oder virtuellen
Kernen.
Der PAE-Kernel ist der SMP-Kernel plus PAE und Sparse-Memory-Model. Die
CPU muss die Features cmov und pae unterstützen - das wird bei der
Installation überprüft.
Ein emulierter mathematischer Co-Prozessor (CONFIG_MATH_EMULATION) ist
nur noch bei SMP gesetzt (um auch alte 486 ohne Co-Prozessor zu
unterstützen). Ab PAE ist sowieso immer ein solcher Co-Prozessor
vorhanden, PAE und VIRT bringen die Emulation deswegen bei uns nicht mit
- das spart Platz.
Ab PAE ist das NX-Bit gesetzt, PAE und VIRT sind somit sicherer als SMP.
Ab PAE ist ausserdem CONFIG_TRANSPARENT_HUGEPAGE gesetzt.
Wenn man einen Prozessor verwendet, der cmov und pae unterstützt und
wenn man noch dazu mehr als 4GB RAM ansprechen möchte, sollte man also
die PAE-Variante installieren.
Der VIRT-Kernel sollte alle notwendigen Features mitbringen (die die
verwendete Kernel-Version anbietet), um als Gast-Kernel auf
Virtualisierungs-Systemen zu laufen. Er ist der PAE-Kernel, erweitert um
Funktionen für Xen, KVM und Hyper-V.
Diese Kernel-Pakete lassen sich auf allen Systemen mit laufendem Kernel
3.2.xx-eisfair-1 und 3.16.xx-eisfair-1 installieren.
Beim Update von einem älteren Kernel als 3.16.57-eisfair-1 aus wird *bei
genügend Platz in /boot* ein lilo-Start-Eintrag für diesen Kernel
erzeugt, wenn noch kein Backup unter /boot existiert, um problemlos
diesen alten stabilen Kernel booten zu können. Beim Update von
3.16.57-eisfair-1 aus werden alle alten Kernel samt der Fallbacks noch
nicht gelöscht - das passiert erst, wenn dieser Kernel hier den stabilen
Status erreicht.
Zu den angegebenen eiskernel-Namen (z.B. 3.16.57-eisfair-1) und den
darin enthaltenen Versionen siehe [1].
Denkt daran, eventuell bei Euch installierte kernel-abhängige Treiber
(z.B. die AVM- und Dahdi-Module) für diesen Kernel vorher zu
installieren, da der Name sich geändert hat!
Änderungen zum stabilen eiskernel 3.16.0:
=========================================
- Name auf 3.16.57-eisfair-1 geändert (war 3.16.56-eisfair-1).
- Alle Patches bis zu 3.16.57 integriert (war 3.16.56).
usbip basiert auf einer älteren angepassten Version.
- e1000e 3.4.0.2 -> 3.4.1.1
- Konfiguration geändert, um das frühe Laden von Microcode-
Updates zu ermöglichen:
+CONFIG_MICROCODE=y
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_MICROCODE_INTEL_EARLY=y
+CONFIG_MICROCODE_AMD_EARLY=y
+CONFIG_MICROCODE_EARLY=y
- Konfiguration geändert, um hamradio zu unterstützen:
+CONFIG_HAMRADIO=y
+
+#
+# Packet Radio protocols
+#
+CONFIG_AX25=m
+# CONFIG_AX25_DAMA_SLAVE is not set
+CONFIG_NETROM=m
+# CONFIG_ROSE is not set
+
+#
+# AX.25 network device drivers
+#
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+# CONFIG_SCC is not set
+# CONFIG_BAYCOM_SER_FDX is not set
+CONFIG_BAYCOM_SER_HDX=m
+# CONFIG_BAYCOM_PAR is not set
+# CONFIG_BAYCOM_EPP is not set
+# CONFIG_YAM is not set
- Es wurde eine Datei /var/install/initrd/intel-ucode.img in das System
integriert, die ein mit iucode_tool erstelltes cpio-Archiv der Intel-
Microcode-Updates aus microcode-20180425.tgz enthält.
Die Umgehung bestimmter Prozessorlücken erfordert das Zusammenspiel
eines neuen Microcodes für den Prozessor und des Betriebssystems. Wenn
man nicht das Glück hat, für sein altes Board neue BIOS-Varianten mit
aktuellem Microcode zu bekommen, ist man auf einen alternativen
Mechanismus angewiesen, diesen Microcode in den Prozessor zu laden.
Wie oben zu sehen ist, liefere ich alle Intel-Microcode-Updates aus
microcode-20180425.tgz in einem Image unter
/var/install/initrd/intel-ucode.img mit. Die Veränderungen in diesem
Kernel erlauben das frühe Laden dieser Microcodes.
Bei einem Update wird die erzeugte normale initrd.gz unter
/var/install/initrd/initrd.gz.without.iucode abgelegt und es wird eine
initrd.gz aus /var/install/initrd/intel-ucode.img und
/var/install/initrd/initrd.gz.without.iucode erzeugt und unter
/var/install/initrd/initrd.gz.with.iucode abgelegt. Die alte
unveränderte initramfs ohne intel-ucode wird wie bisher als
/boot/initrd.gz nach einem Neustart verwendet.
Dieses Verfahren erlaubt es...
1.
...die Datei /var/install/initrd/initrd.gz.with.iucode nach
/boot/initrd.gz zu kopieren, lilo aufzurufen und nach einem Reboot zu
überprüfen, ob ein neuer Microcode geladen wurde. Ich rufe hiermit alle
User mit Intel-Prozessoren und nicht-virtualisierten Systemen zu diesem
Test auf. Bitte postet nach dem Booten die Ausgabe von
dmesg | grep micro
Dort sollten Meldungen wie
[ 0.000000] CPU0 microcode updated early to revision 0x1b, date =
2014-05-29
[ 0.221951] CPU1 microcode updated early to revision 0x1b, date =
2014-05-29
[ 0.242064] CPU2 microcode updated early to revision 0x1b, date =
2014-05-29
[ 0.262349] CPU3 microcode updated early to revision 0x1b, date =
2014-05-29
[ 0.507267] microcode: CPU0 sig=0x306a9, pf=0x2, revision=0x1b
[ 0.507272] microcode: CPU1 sig=0x306a9, pf=0x2, revision=0x1b
[ 0.507276] microcode: CPU2 sig=0x306a9, pf=0x2, revision=0x1b
[ 0.507281] microcode: CPU3 sig=0x306a9, pf=0x2, revision=0x1b
[ 0.507286] microcode: CPU4 sig=0x306a9, pf=0x2, revision=0x1b
[ 0.507292] microcode: CPU5 sig=0x306a9, pf=0x2, revision=0x1b
[ 0.507296] microcode: CPU6 sig=0x306a9, pf=0x2, revision=0x1b
[ 0.507300] microcode: CPU7 sig=0x306a9, pf=0x2, revision=0x1b
[ 0.507335] microcode: Microcode Update Driver: v2.00
<tigran at aivazian.fsnet.co.uk>, Peter Oruba
auftauchen, wenn man einen Prozessor besitzt, für den eine neuere
Microcode-Version als im BIOS hinterlegt geladen wurde. Das funktioniert
nur auf nicht-virtualisierten Systemen!
Auf den alten Stand zurück kommt man durch das Kopieren von
/var/install/initrd/initrd.gz.without.iucode nach /boot/initrd.gz,
Aufruf von 'lilo' und Reboot.
2.
...die alte unveränderte initramfs ohne intel-ucode zu behalten und auch
später noch zu manipulieren. Die alte unveränderte initramfs ohne
intel-ucode ist /var/install/initrd/initrd.gz.without.iucode. Die kann
man wie bisher manipulieren, nach Bearbeitung nach
/var/install/initrd/initrd.gz.self kopieren und nach folgendem Muster eine
/var/install/initrd/initrd.gz.with.iucode erzeugen:
cat /var/install/initrd/intel-ucode.img \
/var/install/initrd/initrd.gz.self \
>/var/install/initrd/initrd.gz.with.iucode
Nun kann man wahlweise
/var/install/initrd/initrd.gz.self
(das ist das bearbeitete Original ohne Microcode)
oder
/var/install/initrd/initrd.gz.with.iucode
(das ist das bearbeitete Original plus Microcode)
nach /boot/initrd.gz kopieren.
Dieses Paket bei https://pack-eis.de:
=====================================
PAE : https://www.pack-eis.de/index.php?p=24987
SMP : https://www.pack-eis.de/index.php?p=24988
VIRT: https://www.pack-eis.de/index.php?p=24989
Gleichzeitig wird wie gewohnt auch das Paket eiskernel-dev (Version
3.17.0) mit den Quellen passend zu diesem Kernel freigegeben.
Änderungen zum vorherigen stabilen eiskernel-dev 3.16.0:
========================================================
- Basiert auf 3.16.57 (war 3.16.56).
- Setzt installierten eiskernel 3.17.0 voraus.
- Lädt 3.16.57 herunter (war 3.16.56).
- e1000e 3.4.0.2 -> 3.4.1.1.
- require developer 2.8.0 (was 2.6.1)
- require gcc5 2.8.2
- check for activated gcc 5.5.0
Dieses Paket bei https://pack-eis.de:
=====================================
https://www.pack-eis.de/index.php?p=24990
Der Kernel 3.16.57:
===================
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?id=refs/tags/v3.16.57
[1]
Übersicht der 3.16er eiskernel-1-Pakete:
========================================
eiskernel-Vers.| eiskernel-Name | Patchlevel Vanilla
_______________________________________________________
3.17.0 | 3.16.57-eisfair-1 | 3.16.57
3.16.0 | 3.16.56-eisfair-1 | 3.16.56
3.15.0 | 3.16.56-eisfair-1 | 3.16.56
3.14.1 | 3.16.54-eisfair-1 | 3.16.54
3.14.0 | 3.16.54-eisfair-1 | 3.16.54
3.13.0 | 3.16.54-eisfair-1 | 3.16.54
3.12.0 | 3.16.52-eisfair-1 | 3.16.52
3.11.0 | 3.16.52-eisfair-1 | 3.16.52
3.10.0 | 3.16.50-eisfair-1 | 3.16.50
3.9.0 | 3.16.50-eisfair-1 | 3.16.50
3.8.0 | 3.16.47-eisfair-1 | 3.16.47
3.7.0 | 3.16.47-eisfair-1 | 3.16.47
3.6.0 | 3.16.46-eisfair-1 | 3.16.46
3.5.0 | 3.16.46-eisfair-1 | 3.16.46
3.4.1 | 3.16.44-eisfair-1 | 3.16.45
3.4.0 | 3.16.44-eisfair-1 | 3.16.44
3.3.1 | 3.16.44-eisfair-1 | 3.16.44
3.3.0 | 3.16.44-eisfair-1 | 3.16.44
3.2.0 | 3.16.42-eisfair-1 | 3.16.43
3.1.2 | 3.16.42-eisfair-1 | 3.16.43
3.1.1 | 3.16.42-eisfair-1 | 3.16.43
3.1.0 | 3.16.42-eisfair-1 | 3.16.42
Ich danke allen Mitgliedern des Teams für Tests und Unterstützung und
wünsche allen Anwendern weiterhin viel Spass mit eisfair!
Das Posting geht parallel an spline.eisfair und spline.eisfair.dev.
Produktive Rückmeldungen bitte an spline.eisfair.dev.
--
der tom
[eisfair-team]
Mehr Informationen über die Mailingliste Eisfair