Wie viel Größe wird beim Kompilieren des Linux-Kernels benötigt?

13

Ich habe den neuesten stabilsten Linux-Kernel heruntergeladen, 2.6.33.2.

Ich dachte, ich würde dies mit VirtualBox testen. Also erstelle ich eine dynamisch dimensionierte Festplatte mit 4 GB. Und CentOS 5.3 mit nur den minimalen Paketen installiert.

Ich richte das make menuconfignur mit den Standardeinstellungen ein.

Danach lief ich makeund bekam folgenden Fehler:

net/bluetooth/hci_sysfs.o: final close failed: No space left on device
make[2]: *** [net/bluetooth/hci_sysfs.o] Error 1
make[1]: *** [net/bluetooth] Error 2
make: *** [net] Error 2

Der verbleibende Platz ist:

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      3.3G  3.3G     0 100% /
/dev/hda1              99M   12M   82M  13% /boot
tmpfs                 125M     0  125M   0% /dev/shm

Meine virtuelle Größe beträgt 4 GB, aber die tatsächliche Größe beträgt 3,5 GB.

$ ls -hl
total 7.5G
-rw-------. 1 root root 3.5G 2010-04-13 14:08 LFS.vdi

Wie viel Größe sollte ich beim Kompilieren und Installieren eines Linux-Kernels angeben? Gibt es dabei Richtlinien, die befolgt werden müssen? Dies ist mein erstes Mal, also experimentiere ich einfach damit.

ant2009
quelle

Antworten:

1

Ein Linux-Kernel für April 2010 umfasst ca. 60 MB bzip2-Archiv, das nach dem Entpacken und Kompilieren ca. 400-500 MB benötigt.

Sie können Ihre Verzeichnisgröße du -hswie folgt überprüfen :

/mnt/storage/linux-2.6.33$ du -hs                               
437M    .
Ivan Petrushev
quelle
1
Hallo, wenn dies der Fall ist, warum wird dann mein gesamter Speicherplatz belegt? Ich habe eine 4-GB-Festplatte zugewiesen und CentOS nur mit den Entwicklungstools und Bibliotheken installiert. Sollte nicht so viel Speicherplatz beanspruchen. Bei der Installation von CentSO habe ich nur 1 Partition für root eingerichtet und sonst nichts. Irgendein Problem damit?
Ameise 2009
Sie können untersuchen, was Ihren Speicherplatz verschlingt, indem Sie du -h --max-depth=1in Ihrem Stammverzeichnis (/) ausführen. Nehmen Sie das größte Verzeichnis, gehen Sie hinein, wiederholen Sie. Tun Sie dies, bis Sie Ihre Scheibenfresser finden.
Ivan Petrushev
1
Zum Auflisten von Dateien im aktuellen Verzeichnis, sortiert nach Größe ls -lhS, und zum Anzeigen der 10 größten Dateien im aktuellen Verzeichnis ls -lhS|head -10.
Ivan Petrushev
4
Das Problem ist, dass der Speicherplatz beim Kompilieren und nicht beim Entpacken verwendet wird.
Nikana Reklawyks
Bestätigen Sie, dass beim Kompilieren der meiste Speicherplatz verwendet wird.
Lethalman
4

Bei meinem letzten AMD64-Build von 4.4.0-57 unter Ubuntu 16.04 benötigte ich ungefähr 14,5 GB Speicherplatz für die Build-Ausgaben.

Das scheint viel zu sein und es scheint, dass meistens vorübergehend Dateien benötigt werden (z. B. .oDateien, die aus dem Kompilieren einer .cDatei resultieren ).

BeeOnRope
quelle
3

Siehe diesen Link >> https://ubuntuforums.org/showthread.php?t=2266609

Ich kompiliert / gemacht Linux - Kernel 4.0.0-rc1 auf meinem HP Strom 13 (2 GB RAM, Dual - Core Intel Celeron N2840) basiert auf der klaren Anweisung auf https://wiki.ubuntu.com/KernelTeam/GitKernelBuild , und das ist mein Erfahrung:

Nach dem "git clone git: //git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git" wird die Festplatte im separaten Kernelverzeichnis verwendet: 1691 MB

Während des Erstellens / Kompilierens stieg der verwendete Speicherplatz auf 15674 MB. Also: mehr als 15 GB ...

Die gesamte Kompilierungszeit betrug: 299 Minuten oder 5 Stunden. Ziemlich lange, wahrscheinlich verursacht durch meine langsame CPU und langsame Festplatte.

Deeksha Varshney
quelle
Git ist ein ganz anderes Biest. Normalerweise laden Sie einen Schnappschuss herunter. Das Git-Respository enthält den gesamten Verlauf der Kernel-Entwicklung. Außerdem wird das Kompilieren nie so lange dauern, wenn irrelevante Optionen abgewählt werden.
Daniel B
2

Aus Guide,

ANMERKUNG: Wenn Sie in / usr / src nicht viel Speicherplatz haben, können Sie das Kernel-Quellpaket auf jeder Partition entpacken, auf der Sie freien Speicherplatz haben (wie / home). Da die Kernelkompilierung viel Speicherplatz für Objektdateien wie * .o benötigt. Aus diesem Grund MUSS / usr / src / linux ein Softlink sein, der auf Ihr Quellverzeichnis verweist.

Ukanth
quelle
Dieser Antwort fehlt auch die Menge an freiem Speicherplatz (in GB), die zum Kompilieren des Kernels erforderlich ist: 1,7 GB und 5,4 GB reichen nicht aus, um einen amd64-3.11.0-Kernel unter Ubuntu 13.10 zu erstellen.
Pro Backup