Linux Kernel nach Maß bauen

root@linux

Lt. Junior Grade
Registriert
Apr. 2018
Beiträge
393
Hallo
da ich mir vor kurzen den Linux Kernel kompilieren musste, um mein Laptop zum laufen zu bekommen (siehe hier: Alternativer Grafik-Treiber für AMD auf ubuntu 16.04), habe ich mich dazu entschieden, mir eine Linux-Kernel nach Maß, für meinen Laptop zu bauen. Ich habe da keine Erfahrung mit und hoffe auf eure Hilfe.
Ich möchte alle Funktionen, die meine Hardware unterstütz, zum laufen bekommen, in dem ich die passenden Treiber für die jeweilige Hardware im Kernel implementiere. Und alles was mein Laptop nicht unterstütz, erst gar nicht in den Kernel aufnehmen, wie z.B. Intel Funktionen oder Treiber für Hardware die mein Laptop gar nicht hat (Module).
Ich möchte einen schönen, schlanken und schnellen Kernel bauen.

openSUSE hat eine nette Funktion, man kann sich die Hardware-Liste als Datei speichern, und damit wollte ich mir die Treiber zusammen stellen. Aber, ich habe keine Ahnung wie ich diese liste verwenden soll: hwinfo.out.zip
Kann ich die Liste irgenwie in die .config importieren :confused_alt:
Habe zurzeit den Linux Kernel 4.20.5-1-default am laufen und möchte bei dieser Version bleiben, bin soweit zufrieden, jedoch ist mir da zuviel zeug drinnen, das meine Maschine nicht braucht.
Der Linux Kernel soll auf Ubuntu mit der KDE Plasma GUI (Graphical User Interface / Grafische Benutzer Oberfläche) laufen. Also möchte ich den Kernel für Ubuntu und KDE-Plasma optimieren (wenn möglich).

Hier noch meine Hardware:
Laptop: ACER Aspire 3 (A315-41-R001)
lspci
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15d0
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Device 15d1
00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe Dummy Host Bridge
00:01.6 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 15d3
00:01.7 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 15d3
00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe Dummy Host Bridge
00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 15db
00:08.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 15dc
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 61)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15e8
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15e9
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15ea
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15eb
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15ec
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15ed
00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15ee
00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15ef
01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTL8411B PCI Express Card Reader (rev 01)
01:00.1 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 12)
02:00.0 Network controller: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter (rev 31)
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Vega [Radeon Vega 8 Mobile] (rev c4)
03:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device 15de
03:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] Device 15df
03:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Device 15e0
03:00.4 USB controller: Advanced Micro Devices, Inc. [AMD] Device 15e1
03:00.6 Audio device: Advanced Micro Devices, Inc. [AMD] Device 15e3
04:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 61)

Wo fange ich am besten an?
Klar in der make menuconfig


Wenn jemand mitmachen will und sich auch eine Kernel mach Maß bauen möchte, der lade sich erst einmal diese Pakete herunter:
Command-line (Terminal, Konsole, "Strg+Alt+T"...) öffnen und diese Befehle eingeben:

Code:
sudo apt-get install build-essential
sudo apt-get install gcc
sudo apt-get install make
sudo apt-get install ld
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install fdformat
sudo apt-get install depmod
sudo apt-get install e2fsck
sudo apt-get install fsck.jfs
sudo apt-get install reiserfsck
sudo apt-get install xfs_db
sudo apt-get install mksquashfs
sudo apt-get install btrfsck
sudo apt-get install pccardctl
sudo apt-get install quota
sudo apt-get install pppd
sudo apt-get install isdnctrl
sudo apt-get install showmount
sudo apt-get install ps
sudo apt-get install oprofiled
sudo apt-get install udevd
sudo apt-get install grub
sudo apt-get install mcelog
sudo apt-get install iptables
sudo apt-get install openssl
sudo apt-get install bc
sudo apt-get install sphinx-build
sudo apt-get install libncurses5-dev
sudo apt-get install libelf-dev
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install libssl-dev
sudo apt-get update
sudo apt-get full-upgrade
sudo apt-get autoremove
sudo apt-get autoclean

Einige der Pakete werden schon installiert sein, andere nicht. make und gcc sind in dem Paket build-essential enthalten.
Danach bitte den Computer neustarten.
Code:
sudo reboot

Um sich als SuperUser "su" einloggen zu können, muss das root Passwort freigeschaltet werden. Wer das noch nicht gemacht hat, mach folgendes:
Code:
sudo passwd root
Dein Passwort eingeben, dann ein Passwort für den SuperUser ausdenken und zwei mal eingeben.
Jetzt noch das Passwort entsperren.
Code:
sudo passwd -u root
und dann mit dem befehl
Code:
su
einloggen.

!!! ACHTUNG !!! --> Pfad anpassen. Alle x gegen Versionsnummer und USER mit deinem User-namen austauschen.
Jetzt die kernel-x.x.x.tar.gz von Linux Kernel Organization, Inc. herunterladen, in den Ordner /usr/src/ mit dem Befehl
Code:
cd /usr/src/
wechseln und mit dem Befehl
Code:
xz -cd /home/USER/Downloads/linux-4.xx.x.tar.xz | tar xvf -
extrahieren.
Als nächstes in das neue Verzeichnis linux-4.xx.x.x mit dem Befehl
Code:
cd /usr/src/linux-4.xx.x.x
Jetzt:
Code:
make menuconfig
eingeben und die Konfiguration vornehme.
Und jetzt sind wir an dem Punkt, wo ich alleine nicht so gut klar komme.

make_menuconfig.png


Was ankreuzen und was nicht :confused_alt:

(SuperUser ausloggen, gebe den Befehl
Code:
exit
ein)

------------------------------ EDIT ------------------------------
Da ich gebeten wurde diesen beitrag fertig zu stellen
abcddcba schrieb:
Falls du so weit bist, dann vervollstaendige deinen Beitrag hier bitte.
Mache ich das jetzt.


Am besten man nimmt sich die Konfigurationsdatei eines Linux-Systems, das auf dem zu installierendem Computer, bereits installiert ist.
Das bedeutet, du hast Linux auf deinem PC und willst auf dem gleichen PC den Kernel modifizieren. Dann kopiere die config aus dem /boot/ Ordner und verwende diese als Grundlage. In dieser config sollten schon alle Treiber und was der Kernel sonst noch benötigt Konfiguriert sein.

Als erstes
Code:
cd /boot/
Code:
ls
Dann die config suchen Beispiel: config-4.13.0-45-generic und in das Verzeichnis des neuen Kernels Kopieren /usr/src/linux-4.20.5
Code:
cp /boot/config-4.13.0-45-generic /usr/src/linux-4.20.5
Jetzt in den Ordner /usr/src/linux-4.20.5 wechseln
Code:
cd /usr/src/linux-4.20.5
Mit dem Befehl
Code:
make menuconfig
rufst du das Konfigurationsprogramm auf.

make_menuconfig.png


Jetzt < Load > auswählen (mit der Taste L oder mit den Pfeiltasten) und die davor rüber kopierte config-4.13.0-45-generic laden. Um die config zu laden musst du in das Fenster, das aufgeht, den Namen der Konfigurationsdatei schreiben: config-4.13.0-45-generic
und < OK > drücken.
Jetzt sind die Einstellungen des bereits installierten Kernels, in dem Konfiguration Programm geladen und du kannst diese modifizieren.
Wenn du fertig bist, auf < Save > drücken, um die Änderung zu speichern.
Du musst aber keine Änderungen vornehmen und einfach mal testen ob der neue Kernel überhaupt auf deinem PC läuft. Load / Save musst du aber machen, auch wenn du nichts ändern willst, weil im neuen Kernel auch neu oder geänderte Funktionen enthalten sind.

Jetzt geht es zum kompilieren.
Als erstes den Computer neustarten, in den BIOS gehen und den Secure Boot --> Disable
Mit dem Befehl
Code:
make -jx
startest du den kompilier Prozess. Das x musst du wieder mal gegen die anzahl der CPU-Kerne, die du zum kompilieren verwenden möchtest, Ersätzen. Wenn du eine Quad-Core CPU hast, dann -j4 wenn du eine Octa-Core CPU hast (so wie ich), dann -j8 oder den ausführlichen Befehl --jobs=8.
Der nächste Befehl lautet
Code:
make -jx modules_install install
damit ist der Kernel installiert.
Jetzt noch aufräumen
Code:
make clean
und
Code:
reboot
im GRUB Menü den neuen Kernel auswählen und starten.

Um den Kernel wieder zu entfernen, mache folgendes.
Eine anderen Kernel booten als den, den du entfernen willst.
Beispiel: Sagen wir mal du hast den Linux-Kernel: linux-4.20.5 installiert und willst ihn löschen.
Starte den Computer neu und wähle im GRUB Bootmanager eine andere Version aus, z.B. linux-4.15.xx und boote sie.
Dann als SuperUser einloggen
Code:
su
Code:
rm /boot/*4.20.5*
Code:
rm -r /lib/modules/*4.20.5*
Code:
rm -r /usr/src/*4.20.5*
Code:
grub-mkconfig
Code:
update-grub
Code:
reboot
und der Kernel ist weg.
 

Anhänge

Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Klanac und mutze13
Erst gute Ratschläge, am Schluss der gesuchte Hinweis..

Ich halte es ja für schlechten Stil root ein Passwort zu geben. Wenn du etwas als root ausführen willst, dann schreib halt sudo davor oder wenn du temporär eine rootshell brauchst einfach sudo su

Auch ist das Vorhaben einen Customkernel nur mit "benötigten" Modulen zu bauen nicht all zu sinnvoll. Der Kernel läd eh nur benötigte Module, entsprechend lässt sich da im Bedarf an CPU-Zeit und Arbeitespeicher nichts optimieren. Festspeicher sehe ich als vernachlässigbar an. Einen Nachteil hat es jedoch Module nicht mit zu konfigurieren, wenn du entsprechende Hardware steckst und die Module nicht vorliegen, wirst du die Hardware nicht ohne Mehraufwand nutzen können. Genauso wie dein System dann eben nicht mehr in beliebige andere x86 Rechner versetzt werden kann.

Was immer die Differenz zwischen SuSe und deiner Distro ist, ich würde ja versuchen anstatt einen Kernel komplett selber zu kompilieren (und damit Updates selber verwalten zu müssen) versuchen nur die Differenz in deiner Distro nachzurüsten. (Auf Verdacht würde ich sagen, dkms hilft an der Stelle)

Ansonsten schau dir mal localmodconfig an.Damit kannst du dir ne Config erstellen, die nur gerade geladene Module enthalten sollte.
 
  • Gefällt mir
Reaktionen: BeBur und aLca
root@linux schrieb:
Was ankreuzen und was nicht :confused_alt:
Aber für was denn dann diese Pseudo Anleitung? Jeder mit ein wenig Ahnung weiß was er in die Console zu hacken hat wenn man sowas angeht. Allein dein ganzer apt-get block reizt brechreiz bei mir aus wenn ich das so sehe. :(

Ohne Ahnung was von Kernel Optimieren für sein klicki bunti GUI daher faseln ist schon krass.
 
Der Sinn von einem "Leserartikel" ist eigentlich, dass er fertig ist ... ein Tutorial, Test, Benchmark, How To was auch immer, halt nur von einem CB User gemacht.

Ansonsten bin ich hier vor schon meine Vorredner echt skeptisch was bei dir der Sinn von einem custom Kernel sein wird ... klar es gibt durchaus Use-Cases wie
  • fuer eine Maschine mit begrenzten Ressourcen
  • du willst Patches testen
  • irgendwas an Hardware wird nicht supported, das willst du aendern und hinzufuegen
  • der umgekehrte Fall, etwas macht Probleme, du willst es deaktivieren
  • du bist Dev und willst am Kernel was verbessern
  • ...
Trifft irgendwas davon zu? Dann nur zu, Tutorials und ausfuehrliches Material gibt es zu Hauf im Netz.

Den einzigen sonstigen Vorteil fuer normale Nutzer sehe ich wohl eher beim Lerneffekt. Kann nie schaden, kostet aber Zeit. Wenn man die hat, dann kann man viel lesen, lernen und verstehen. Musst du abschaetzen ob Kosten/Nutzen im Verhaeltnis stehen. Sollte dies der Fall sein, dann kanst du aber auch gleich mit "Linux from Scratch" anfangen.

Falls du so weit bist, dann vervollstaendige deinen Beitrag hier bitte. Viel Erfolg.


Anmerkung zum aktuellen Stand: Wie schon vom Vorredner angemerkt, tu dir einen Gefallen und mach die ganzen Schritte vorher vernuenftig. Das geht schn bei simplen Sachen wie der installation von mehrerer Paketen mit Apt los. Jeder wuerde hier wohl eher statt apt-get install p1 apt-get install p2 ... wohl eher apt-get install p1 p2 ... machen
 
Wieso update und full-upgrade NACH der Installation der ganzen Pakete? Im dümmsten Fall wird einiges nochmal heruntergeladen und installiert, weil neue Versionen da sind...

Wieso ein Reboot?

Wieso unbedingt root ein Passwort zuordnen wenn sudo eingerichtet ist?

Was man genau in der kernelconfig auswählen sollte kannst eigentlich nur du wissen...

Wir können ja nicht wissen was du alles nutzen willst.. stell dich aber darauf ein, dass du SEHR oft neu anfangen musst... :evillol::rolleyes:..

Ich wage mal zu Behaupten, dass fast jeder hier sehr mit seinen ersten Kernelversuchen zu kämpfen hatte
 
Hi

Ich würde das Vorhaben nicht als sinnlos bezeichnen. Wenn man Spaß am Basteln hat, nur zu:daumen: Einen großen Unterschied wirst du aber wahrscheinlich nicht bemerken.

Ich finde make xconfig bequemer. Dann schaust du mit lspci -v nach welche Module tatsächlich von deiner Hardware benötigt werden und suchst diese nach und nach. Die generellen Einstellungen kannst du dir sicher leicht zusammenreimen. Ansonsten ist auch immer eine Beschreibung dabei.
Nachher beim Kompilieren nicht den Parameter -j vergessen, z.B. make -j8, damit du nicht nur auf einem Kern kompilierst.

mfg
aki
 
  • Gefällt mir
Reaktionen: root@linux und 9Strike
Verstehe jetzt auch nicht so ganz, warum ihr den TE direkt angeht. Nirgends steht, dass er einen vollständigen Artikel liefert, sondern dass er mit Hilfe der Community versuchen will, sich einen eigenen Kernel zu bauen.

Über Stil lässt sich (gut) streiten, insbesondere der erste Install Block, naja, aber hey, jeder fängt mal an.

@TE: ich habe das Thema damals auch lange durchgespielt und das erste, was dir klar werden wird ist, dass du sehr sehr viele versuche mit Trial'n'Error verbringen wirst bis es endlich läuft. Wenn du es dann irgendwann hinbekommst, dass Linux booted und die Standarddinge funktionieren, wirst du die nächsten Teile finden, die fehlen.
Der Vorteil eines eigenen Kernels ist eigentlich nur minimal, du musst halt bei jedem Kernel-Update neu bauen, hoffen, dass die Config noch passt usw. Aber klar, ein gewisser Bastelreiz geht damit schon einher, viel Erfolg!
 
  • Gefällt mir
Reaktionen: root@linux und Matunuctus
Linux Community @ its best! 5% sind konstruktiv, der Rest mault nur rum!
 
  • Gefällt mir
Reaktionen: new Account() und Matunuctus
Also wenn du eh schon alles selbst bastelt kannst du auch gleich auf Debian wechseln :D

Also als erstens ist es wichtig, dass du die Standardkonfig behält und dann anfängst abzuändern. Wichtig wäre auch, wenn du Ryzen hast mal am besten mindestens mit gcc8 und mit -O3 -march=zernv1 zu kompilieren. Das ist nicht ganz so trivial, google das mal.

Bei AMD GPUs würde ich dir auch empfehlen auf den 5.0 Kernel zu wechseln, da sind noch ein paar Optimierungen für AMDGPU drin.

Bzgl den Flags: es gibt ein GTK Tool, mit dem du die Flags besser auswählen kannst. Am besten nur bei der Treiber Sektion alles weg, was *offensichtlich* nicht deiner Hardware entspricht. Wenn du nicht weißt was die Option bedeutet, lass sie so wie sie ist. Eigentlich bringt es dir aber nichts, weil die Module eh nicht geladen werden, wenn die Hardware nicht da ist.
 
Zuletzt bearbeitet:
Piktogramm schrieb:
Erst gute Ratschläge, am Schluss der gesuchte Hinweis..
In ein paar Tagen wird der gesuchte Hinweis wohl auftauchen :-)

Piktogramm schrieb:
Ich halte es ja für schlechten Stil root ein Passwort zu geben. Wenn du etwas als root ausführen willst, dann schreib halt sudo davor oder wenn du temporär eine rootshell brauchst einfach sudo su
Man kann sich ja ausloggen mit
Code:
exit
und das Passwort wieder sperren mit
Code:
sudo passwd -l root

Piktogramm schrieb:
Auch ist das Vorhaben einen Customkernel nur mit "benötigten" Modulen zu bauen nicht all zu sinnvoll. Der Kernel läd eh nur benötigte Module, entsprechend lässt sich da im Bedarf an CPU-Zeit und Arbeitespeicher nichts optimieren. Festspeicher sehe ich als vernachlässigbar an.
Der Sinn eine Custom-Kernels ist ja der, dass er nur auf diesem eine Computer laufen soll und auf keinem anderen.
Außer USB-SpeicherSticks und SD-Karten in den SD-Kartenleser, kommt da sowieso nichts anderes rein.
Der Festspeicher ist bei mir jedoch ein großes Problem. Der Kernel im Ordner /usr/src/linux-4.20.5 belegt bei der jetzigen Konfiguration, 16,1GB Speicherplatz und der Ordner /lib/modules/4.20.5/ mit den Modulen auch noch mal als 308MB, was auf einer 40GB Partition sehr viel ist.
Löschen kommt auch nicht infrage.
Quelle: /usr/src/linux-4.20.5/Documentation/admin-guide/README.rst
Do NOT use the /usr/src/linux area! This area has a (usuallyincomplete) set of kernel headers that are used by the library header files. They should match the library, and not get messed up by whatever the kernel-du-jour happens to be.

Piktogramm schrieb:
Einen Nachteil hat es jedoch Module nicht mit zu konfigurieren, wenn du entsprechende Hardware steckst und die Module nicht vorliegen, wirst du die Hardware nicht ohne Mehraufwand nutzen können. Genauso wie dein System dann eben nicht mehr in beliebige andere x86 Rechner versetzt werden kann.
Wie gesagt, brauche nur USB-Sticks und SD-Karten. Diese Module würde ich gerne einbauen.

Piktogramm schrieb:
Was immer die Differenz zwischen SuSe und deiner Distro ist, ich würde ja versuchen anstatt einen Kernel komplett selber zu kompilieren (und damit Updates selber verwalten zu müssen)
Updates funktionieren mit dem neuen Kernel einwandfrei. Das Advanced Package Tool (APT) macht das schon :-)

Piktogramm schrieb:
versuchen nur die Differenz in deiner Distro nachzurüsten. (Auf Verdacht würde ich sagen, dkms hilft an der Stelle)
Da bräuchte ich eine Anleitung.
Ansonsten schau dir mal localmodconfig an.Damit kannst du dir ne Config erstellen, die nur gerade geladene Module enthalten sollte.
Habe einen kurzen blick drauf geworfen, muss mir das genauer ansehen.


abcddcba schrieb:
Der Sinn von einem "Leserartikel" ist eigentlich, dass er fertig ist ... ein Tutorial, Test, Benchmark, How To was auch immer, halt nur von einem CB User gemacht.
Sorry, kommt nicht mehr vor.
Piktogramm schrieb:
...Trifft irgendwas davon zu? Dann nur zu, Tutorials und ausfuehrliches Material gibt es zu Hauf im Netz.
Ja, das trifft so einiges zu und die Tutorials sind nicht besonders gute, habe einige gelesen.
Piktogramm schrieb:
Falls du so weit bist, dann vervollstaendige deinen Beitrag hier bitte. Viel Erfolg.
Werde ich. Danke

Piktogramm schrieb:
Anmerkung zum aktuellen Stand: Wie schon vom Vorredner angemerkt, tu dir einen Gefallen und mach die ganzen Schritte vorher vernuenftig. Das geht schn bei simplen Sachen wie der installation von mehrerer Paketen mit Apt los. Jeder wuerde hier wohl eher statt apt-get install p1 apt-get install p2 ... wohl eher apt-get install p1 p2 ... machen
apt-get install p1 p2 ... ergibt ERROR
Quelle: /usr/src/linux-4.20.5/Documentation/process/changes.rst

Current Minimal Requirements
****************************

Upgrade to at **least** these software revisions before thinking you've
encountered a bug! If you're unsure what version you're currently
running, the suggested command should tell you.


Again, keep in mind that this list assumes you are already functionally
running a Linux kernel. Also, not all tools are necessary on all
systems; obviously, if you don't have any ISDN hardware, for example,
you probably needn't concern yourself with isdn4k-utils.

====================== =============== ========================================
Program Minimal version Command to check the version
====================== =============== ========================================
GNU C 4.6 gcc --version
GNU make 3.81 make --version
binutils 2.20 ld -v
flex 2.5.35 flex --version
bison 2.0 bison --version
util-linux 2.10o fdformat --version
kmod 13 depmod -V
e2fsprogs 1.41.4 e2fsck -V
jfsutils 1.1.3 fsck.jfs -V
reiserfsprogs 3.6.3 reiserfsck -V
xfsprogs 2.6.0 xfs_db -V
squashfs-tools 4.0 mksquashfs -version
btrfs-progs 0.18 btrfsck
pcmciautils 004 pccardctl -V
quota-tools 3.09 quota -V
PPP 2.4.0 pppd --version
isdn4k-utils 3.1pre1 isdnctrl 2>&1|grep version
nfs-utils 1.0.5 showmount --version
procps 3.2.0 ps --version
oprofile 0.9 oprofiled --version
udev 081 udevd --version
grub 0.93 grub --version || grub-install --version
mcelog 0.6 mcelog --version
iptables 1.4.2 iptables -V
openssl & libcrypto 1.0.0 openssl version
bc 1.06.95 bc --version
Sphinx\ [#f1]_ 1.3sphinx-build --version
====================== =============== ========================================

.. [#f1] Sphinx is needed only to build the Kernel documentation
In der Dokumentation des Kernels wird ausdrücklich darauf hingewiesen, alle Pakete auf den neusten stand zu bringen. Deshalb
Code:
 apt update && apt full-upgrade
Der
Code:
reboot
ist dafür gut, das nichts beim kompilieren des Kernes schief geht. Nachdem man viele Pakete installiert/upgedatet/upgegradet hat, kann es ohne neustart, beim kompilieren zu Fehlern kommen, was niemand will, und mit nur einem neustart, ist man auf der sicheren Seite.

Danke für die Kritik und die nützlichen Tipps.
 
Zuletzt bearbeitet:
aLca schrieb:
Pro tip: make clean wenn du fertig bist. Aber das weißt du Tutorial Guru ja sicherlich.
Code:
make clean
Und der Ordner /usr/src/linux-4.20.5/ von 16,1GB auf nur 803,6MB geschrumpft.

Dafür habe ich diesen Artikel gemacht, um solche Pro Tipps zu bekommen.
Super Tipp, Danke!
 
root@linux schrieb:
apt-get install p1 p2 ... ergibt ERROR
Keine Ahnung was du da machst, aber ich bleibe bei meiner Aussage (dass du das als SU ausfuehrst und die Pakete richtige Namen haben setze ich mal voraus ...):
sudo apt-get install package1 package2 package3 ... packageN
 
Der Sinn eine Custom-Kernels ist ja der, dass er nur auf diesem eine Computer laufen soll und auf keinem anderen.

Der Sinn des Custom-Kernels ist eigentlich, dass man entweder Funktionen braucht, die nicht im Standard sind, oder einfach das letzte bisschen Leistung rausquetschen möcht...

Updates funktionieren mit dem neuen Kernel einwandfrei. Das Advanced Package Tool (APT) macht das schon :-)

Wieso sollten sie auch nicht?

apt-get install p1 p2 ... ergibt ERROR

Die Fehlermeldung ERROR gibts nicht und...

apt-get install $paket1 $paket2

funktioniert auf jedenfall, allerdings darf man sich natürlich nicht vertippen ;-)

In der Dokumentation des Kernels wird ausdrücklich darauf hingewiesen, alle Pakete auf den neusten stand zu bringen. Deshalb
Code:
 apt update && apt full-upgrade

mag ja sein...aber sinnvoller wäre es apt update && apt full-upgrade und DANN apt-get install, wie oben schon geschrieben machst du sonst einiges doppelt.

Der
Code:
reboot
ist dafür gut, das nichts beim kompilieren des Kernes schief geht. Nachdem man viele Pakete installiert/upgedatet/upgegradet hat, kann es ohne neustart, beim kompilieren zu Fehlern kommen, was niemand will, und mit nur einem neustart, ist man auf der sicheren Seite.

fürs kompilieren vom Kernel ists unnötig, solange der gcc findet, was er braucht...Ich hatte auf jeden Fall noch nie Probleme..allerdings hab ich auch seit bestimmt 5 Jahren keinen Kernel mehr selbst kompiliert..
 
@root@linux
Pass beim Zitieren bitte auf, dass du die richtigen Nutzer angibst!

Deine Erwiederung zu den Updates, mit einem selbst compiliertem Kernel musst du die Kernelupdates selbst leisten. Was in meinen Augen nicht sinnvoll ist. Dann lieber aktuelle Kernel aus den Repos der Distribution laden und Anpassungen via dkms automatisiert ausrollen.

Polishdynamite schrieb:
Linux Community @ its best! 5% sind konstruktiv, der Rest mault nur rum!
Wenn man in dieser Community ist bedankt man sich irgendwann für das Gemaule, da es recht lehrreich ist.
 
Pro Tipp: benutz lieber
Code:
apt
statt
Code:
apt-get
weil ist kürzer, außerdem hats ne progress bar.
Code:
apt install p1 p2 p3
klappt bei mir problemlos.

Statt jedes benötigte Paket manuell runterzuladen kannst du auch einfach
Code:
apt build-dep p1 p2 p3
verwenden, dass lädt dir alle Pakete runter, die du brauchst um p1, p2, p3 zu kompilen.

Btw hier das mit den optimierten compile Optionen: https://github.com/graysky2/kernel_gcc_patch

Und wenn dein Festplattenspeicher knapp ist: installier dir Debian. Ubuntu ist eh Debian-based, nur mit einem mMn unübersichtlicherem Repo, und hat viel mehr (mMn unnötige) Sachen vorinstalliert. Am besten einfach Debian Testing bzw im Moment Unstable da gerade Migrationsphase ist.
Mit Raven Ridge willst du auch auf jeden Fall einen aktuellen Kernel und aktuelles Mesa, dh jede Debain-basierte stable Distro fällt mMn eh raus. Btw tlp ist ein gutes Paket um etwas Akku zu sparen.

Wenn du dir den Code via git holst (vorher mit cd auf den gewünschten Download Ordner wechseln)
Code:
git clone https://github.com/torvalds/linux
kannst du auch einfach super auf ne externe Platte machen, direkt den neusten Upsteam ziehen und dann die neuen Kernel Updates verwenden
Code:
git pull
Wie gesagt, im AMDGPU Modul gibt es in letzter Zeit mit jeder neuen Version viele Verbesserung.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: root@linux
aLca schrieb:
Ich würde eher auf eine Arch Distro setzen. Oder lieber gleich Gentoo. ((:
Kann man machen, aber das macht halt kein Spaß wenn du Anfänger bist und dir deine Zeit ein bisschen lieb ist :D
Wenn Arch, dann richtig, an Manjaro und Konsorten sehe ich keinen Vorteil gegenüber Debian Testing.
Gentoo ist natürlich mega, aber das ist halt nochmal ne Schippe oben drauf.

Außerdem bin ich absoluter Debian Fanboy :D Debian, Arch, Gentoo, vllt noch Linux Minut oder Kubuntu (wobei ich lieber ein KDEbian hätte) für die Einsteiger, alle anderen Distros sind für mich doch sehr spezielle Spezialfälle, oder unnötige Debian Forks :p Warum etwas forken, was schon perfekt ist? :D
 
Zuletzt bearbeitet:
Zurück
Oben