Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
PeterW
Beiträge: 49
Registriert: 28.01.2020 19:38:02

Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von PeterW » 28.01.2020 20:06:40

Hallo zusammen,

ich nutze Debian 8 und versuche einen Kernel zu kompilieren. Habe verschiedenen Anleitungen gelesen und in jeder muss eine Kernel-Quelle besorgt werden, die dann kompieliert wird und den aktuellen Kernel ersetzt.

Ist es möglich den aktuellen Kernel zu kompilieren? Ich will eigentlich nur eine Funktion deaktivieren.

Hintergrund: Ich will einen Live-USB-Stick ohne Netzwerk und Festplattentreiber (ähnlich Discreete Linux oder UPR). Mit dem "Linux Live Kit" gelingt es mir einen Live-USB-Stick zu erstellen aber immer nur bevor ich den Kernel kompiliere. Nachdem ich den Kernel kompiliert habe, sind verschiedene Dateien in /boot und wo auch immer (bin kein Linux-Profi) und "Linux Live Kit" läuft zwar durch, erstelle einen bootfähingn Stick der auch bootet aber dann auch mit einen Fatal Error abbricht weil irgendwelche Daten nicht gefunden werden.

Mein Plan B ist also den aktuellen Kernel zu ändern ...

Grüße
Peter

Benutzeravatar
Tintom
Moderator
Beiträge: 3033
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von Tintom » 28.01.2020 22:04:05

Ich kenne weder "Linux Live Kit" noch habe ich ein Verständnis davon, warum du das genau machen willst.

Bedenke aber: Auch dein USB-Stick ist eine "Festplatte", die vom Kernel angesprochen werden will.

PeterW
Beiträge: 49
Registriert: 28.01.2020 19:38:02

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von PeterW » 29.01.2020 07:32:25

Meine Frage ist einfach: Ist es möglich den laufenden Kernel zu kompilieren ohne einen neuen Kernel herunter zu laden und den zu kompilieren? Ich finde keine Anleitung dazu.

Danke
Peter

Benutzeravatar
towo
Beiträge: 4405
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von towo » 29.01.2020 07:39:22

Ohne Sourcen kannst Du nichts kompilieren!
Und die Sourcen vom laufenden Kernel, kann man einfahc per apt installieren.
Was $User dann damit macht, ist selbigen selbst überlassen.
Und was genau Dein Problem ist, erschließt sich mir auch nicht, hat vermutlich mit Debian auch nicht wirklich was zu tun.

PeterW
Beiträge: 49
Registriert: 28.01.2020 19:38:02

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von PeterW » 29.01.2020 11:21:53

Mein Problem ist kein Debian-Problem. Aber weil ich Debian nutze habe ich mich eben an ein Debian Forum gewand.

Ich will einen Kernel, der auf interne Festplatten keinen Zugriff hat und den ich von CD oder Stick booten kann.

Lassen sich mit apt die Treiber für SATA, SCSI, IDE ... aus dem laufenden Kernel entfernen?

Benutzeravatar
Tintom
Moderator
Beiträge: 3033
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von Tintom » 29.01.2020 11:33:29

PeterW hat geschrieben: ↑ zum Beitrag ↑
29.01.2020 11:21:53
Lassen sich mit apt die Treiber für SATA, SCSI, IDE ... aus dem laufenden Kernel entfernen?
Nein.

Benutzeravatar
towo
Beiträge: 4405
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von towo » 29.01.2020 11:39:34

Und wenn Du SCSI und SATA rausschmeisst, dann isses auch essig mit USB und vermutlich auch mit CD.

PeterW
Beiträge: 49
Registriert: 28.01.2020 19:38:02

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von PeterW » 29.01.2020 11:54:20

Es ist möglich von CD und USB zu booten auch wenn interne Festplatten deaktiviert sind. Definitiv.

Ich habe es ob schon erwähnt: Es gibt verschiedenen Live-CDs, die auch von USB gebootet werden können. Lange Zeit war Ubunt Privacy Remix (UPR) beliebt und wurde dann von Discreete Linux abgelöst. Diese Distributionen installiert man auf eine CD/Stick und bootet. Aus Sicherheitsgründen werden bei diesen Distros interne Datenträger nicht erkannt bzw. eingebunden und können überhaupt nicht gemountet werden.

So etwas will ich machen aber mit aktueller Software.

Linux Live Kit ist ein Linux Customization Kit mit dem man aus dem nach eigenen Bedürfnissen angepassten und laufenden System eine Live-CD erstellen kann (früher gab es dafür Systemback und Andere).

So weit so gut ... Ich kann aus einem angepassten und laufenden System eine Live CD (Stick) estellen. Bootet und funktioniert. Aber sobald ich den Kernel kompiliert habe und Treiber für SATA, SCSI, IDE entfernt habe und dann mit dem Linux Live Kit die Live CD erstelle, kann ich booten aber dann bricht der Vorgang mit einem Fehler ab. Also versuche ich jetzt zu improvisieren ...

Benutzeravatar
Tintom
Moderator
Beiträge: 3033
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von Tintom » 29.01.2020 17:12:25

PeterW hat geschrieben: ↑ zum Beitrag ↑
29.01.2020 11:54:20
Aus Sicherheitsgründen werden bei diesen Distros interne Datenträger nicht erkannt bzw. eingebunden und können überhaupt nicht gemountet werden.
Das von dir erwähnt Discrete Linux verwendet einen gepatchten Kernel, bei dem alles außer CD-ROM deaktiviert wird: https://github.com/Discreete-Linux/liba ... bata.patch

Warum der Kernel danach noch von USB bootbar ist verstehe ich allerdings nicht. Besagte LiveCD verwendet Debian als Basis und hat auf der Webseite eine ausführliche Bauanleitung, vielleicht probierst du es damit?

PeterW
Beiträge: 49
Registriert: 28.01.2020 19:38:02

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von PeterW » 30.01.2020 09:34:26

Auf die libata.h bin ich zwischenzeitich auch gestoßen:

https://www.heise.de/forum/c-t/Kommenta ... 7862/show/

Ich verstehe die Syntax nicht so recht. Habe diese Zeile

return ata_class_enabled(dev->class);

durch diese Zeile

return dev->class == ATA_DEV_ATAPI; /* optical drives only (mid) */

ersetzt. Ohen Erfolg bzw. Auswirkung.

Die Minus- und Pluszeichen stehen in der echten libata.h nicht. Steht minus für Zeile entfernen und plus für Zeile hinzufügen?

pferdefreund
Beiträge: 3791
Registriert: 26.02.2009 14:35:56

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von pferdefreund » 31.01.2020 11:34:46

Genau so isses - das ist quasi ein diff. Da wird mit + angezeigt, was neu ist und mit - was rausflog. Macht git genauso und andere Tools sicherlich auch.

PeterW
Beiträge: 49
Registriert: 28.01.2020 19:38:02

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von PeterW » 31.01.2020 12:25:34

Ok, danke für die Info.

Ich hab die Zeile von Hand geändert. Nach dem Neustart war die libata.h auch so, wie ich sie geändert hatte aber die interne SATA-HD war trotzdem da.

Hast du eine Idee weshalb das Ändern der Zeile keine Wirkung hatte?

Benutzeravatar
Tintom
Moderator
Beiträge: 3033
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von Tintom » 31.01.2020 13:29:55

PeterW hat geschrieben: ↑ zum Beitrag ↑
31.01.2020 12:25:34
Ok, danke für die Info.

Ich hab die Zeile von Hand geändert. Nach dem Neustart war die libata.h auch so, wie ich sie geändert hatte aber die interne SATA-HD war trotzdem da.

Hast du eine Idee weshalb das Ändern der Zeile keine Wirkung hatte?
Hast du den Kernel nach der Änderung neu kompiliert und den neu kompilierten Kernel danach gestartet?

PeterW
Beiträge: 49
Registriert: 28.01.2020 19:38:02

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von PeterW » 31.01.2020 14:50:53

Ich habe den Kernel nicht neu kompiliert.

Muss der Kernel nach Änderungen in der libata.h kompiliert werden?

Habe ewig gesucht aber keine Anleitung, How To oder ähnlich zur libata.h in diesem gefunden. Auch hier steht nichts:
https://www.kernel.org/doc/html/v4.14/d ... ibata.html

PeterW
Beiträge: 49
Registriert: 28.01.2020 19:38:02

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von PeterW » 31.01.2020 14:51:22

... in diesem Zusammenhang ...

Benutzeravatar
MSfree
Beiträge: 10759
Registriert: 25.09.2007 19:59:30

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von MSfree » 31.01.2020 15:05:31

PeterW hat geschrieben: ↑ zum Beitrag ↑
31.01.2020 14:50:53
Muss der Kernel nach Änderungen in der libata.h kompiliert werden?
Selbstverständlich muß der Kernel dann neu kompiliert werden.

Bei jeder Änderung am Quellcode des Kernels muß dieser wieder von der menschenlesbaren ASCII-Form in die maschinenausführbare Form übersetzt, also kompiliert werden.

PeterW
Beiträge: 49
Registriert: 28.01.2020 19:38:02

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von PeterW » 31.01.2020 15:52:13

Ok, danke!

Aber selbstverständlich finde ich das nicht. Ich finde Linux super und arbeite zusehends mehr mehr damit, komme aber aus der Windows-Welt. Da muss ich kein Betriebsystem neu kompilieren wenn ich Treiber hinzufüge, entferne oder an der Registry Änderungen vorgenommen habe.

Benutzeravatar
MSfree
Beiträge: 10759
Registriert: 25.09.2007 19:59:30

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von MSfree » 31.01.2020 16:34:30

PeterW hat geschrieben: ↑ zum Beitrag ↑
31.01.2020 15:52:13
komme aber aus der Windows-Welt. Da muss ich kein Betriebsystem neu kompilieren wenn ich Treiber hinzufüge
Das ist eine falsche Wahrnehmung. Unter Windows kannst du den Treiber gar nicht neu kompilieren, weil alles verschlossen und vernagelt ist. Dem SATA-Treiber das Ansprechen der Festplatten zu verbieten, wäre hier gar nicht erst möglich.

Unter Linux ist das Nichtansprechen von Platten im SATA-Treiber auch nicht vorgesehen. Hier hast du aber die Möglichkeit, das einzubauen, mußt dann aber den Quellcode (zumindest des Treibers) neu kompilieren.

PeterW
Beiträge: 49
Registriert: 28.01.2020 19:38:02

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von PeterW » 31.01.2020 17:30:26

Unter Windows müssen keine Treiber kompiliert werden. Sie werden installiert oder deinstalliert oder auch deaktiviert.

Installiere ich unter Windows die Sata-Treiber nicht, wird keine keine SATA-HD erkannt. Genauso kann ich die Treiber entfernen oder per Registry oder ausschalten.

Kaufe ein Motherbord und installiere Windows ohne Motherborad/Chipsatz-Treiber ... vieles funktioniert dann nicht. Bis Windows 7 mussten eine Menge Treiber gesondert installiert werden. Angefangen vom Treiber für den Onboard-NIC.

Benutzeravatar
Tintom
Moderator
Beiträge: 3033
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Kernel kompilieren aber ohne neue Kernelquelle (also den aktuellen Kernel)

Beitrag von Tintom » 02.02.2020 00:31:31

PeterW hat geschrieben: ↑ zum Beitrag ↑
31.01.2020 17:30:26
Unter Windows müssen keine Treiber kompiliert werden. Sie werden installiert oder deinstalliert oder auch deaktiviert.
Bevor ein Treiber installiert werden kann muss er auch kompiliert werden. Das übernimmt praktischerweise der Hersteller für dich, der gleichzeitig auch für dich festlegt, was die Software können sollte und was nicht. Das Resultat ist dann z.B. ein Stück Hardware, dass plötzlich nicht mehr funktioniert, weil der Hersteller nicht mehr unterstützen will. (viewtopic.php?f=25&t=175981)
PeterW hat geschrieben: ↑ zum Beitrag ↑
31.01.2020 17:30:26
Installiere ich unter Windows die Sata-Treiber nicht, wird keine keine SATA-HD erkannt. Genauso kann ich die Treiber entfernen oder per Registry oder ausschalten.

Kaufe ein Motherbord und installiere Windows ohne Motherborad/Chipsatz-Treiber ... vieles funktioniert dann nicht. Bis Windows 7 mussten eine Menge Treiber gesondert installiert werden. Angefangen vom Treiber für den Onboard-NIC.
Das stimmt. Aber wie hilft uns das bei dem vorhandenen Problem weiter?

Antworten