Kompilując jądro Linuksa, jaki rozmiar jest potrzebny?


13

Pobrałem najnowsze, najbardziej stabilne jądro Linuksa, 2.6.33.2.

Myślałem, że przetestuję to za pomocą VirtualBox. Tworzę więc dysk twardy o dynamicznej wielkości 4 GB. I zainstalowałem CentOS 5.3 z minimalnymi pakietami.

Konfiguruję make menuconfigtylko z ustawieniami domyślnymi.

Następnie pobiegłem makei otrzymałem następujący błąd:

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

Pozostało mi miejsca:

# 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

Mój wirtualny rozmiar to 4 GB, ale rzeczywisty rozmiar to 3,5 GB.

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

Ile powinienem podać podczas kompilacji i instalacji jądra Linux? Czy są jakieś wytyczne, których należy przestrzegać? To mój pierwszy raz, więc po prostu eksperymentuję z tym.

Odpowiedzi:


1

Jądro Linuksa z kwietnia 2010 r. Zawiera około 60 MB archiwum bzip2, które po rozpakowaniu i kompilacji zajmuje około 400-500 MB.

Możesz sprawdzić rozmiar katalogu za pomocą du -hs:

/mnt/storage/linux-2.6.33$ du -hs                               
437M    .

1
Cześć, jeśli tak jest, to dlaczego całe moje miejsce na dysku jest zajęte. Przydzieliłem dysk twardy 4 GB i zainstalowałem CentOS tylko z narzędziami programistycznymi i bibliotekami. Nie powinien zajmować tak dużo miejsca na dysku. Po zainstalowaniu CentSO po prostu konfiguruję 1 partycję dla roota i nic więcej. Masz z tym jakiś problem?
ant2009

Możesz sprawdzić, co zjada twoje miejsce, du -h --max-depth=1uruchamiając je w swoim katalogu głównym (/). Weź największy katalog, wejdź do niego, powtórz. Rób to, dopóki nie znajdziesz świń na dysku.
Ivan Petrushev

1
Aby wyświetlić listę plików w bieżącym katalogu posortowanym według rozmiaru, użyj ls -lhSi zobacz 10 największych plików w bieżącym użyciu katalogu ls -lhS|head -10.
Ivan Petrushev

4
Problem polega na tym, że miejsce jest używane podczas kompilacji, a nie rozpakowywania, metinków.
Nikana Reklawyks

Potwierdzając, większość miejsca jest używana podczas kompilacji.
lethalman

4

W mojej najnowszej wersji AMD64 4.4.0-57 na Ubuntu 16.04 potrzebowałem około 14,5 GB miejsca na wyniki kompilacji.

To wydaje się dużo i wydaje się, że są to najczęściej przejściowo potrzebne pliki (np. .oPliki wynikające z kompilacji .cpliku).


3

Zobacz ten link >> https://ubuntuforums.org/showthread.php?t=2266609

Skompilowałem / stworzyłem jądro Linuksa 4.0.0-rc1 na moim HP Stream 13 (2GB RAM, dwurdzeniowy Intel Celeron N2840) w oparciu o jasną instrukcję na https://wiki.ubuntu.com/KernelTeam/GitKernelBuild , i to jest moje doświadczenie:

Po „git clone git: //git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git” dysk używany w osobnym katalogu jądra: 1691 MB

Podczas make / compile używane miejsce na dysku wzrosło do 15674 MB. A więc: ponad 15 GB ...

Całkowity czas kompilacji wyniósł: 299 minut lub 5 godzin. Dość długi, prawdopodobnie spowodowany moim wolnym procesorem i wolnym dyskiem.


Git to zupełnie inna bestia. Zwykle pobierałeś migawkę. Repozytorium git zawiera całą historię rozwoju jądra. Kompilacja nigdy nie potrwa tak długo, gdy odznaczone zostaną niepotrzebne opcje.
Daniel B

2

Z przewodnika,

UWAGA: Jeśli nie masz dużo miejsca na dysku w / usr / src, możesz rozpakować pakiet źródłowy jądra na dowolnej partycji, na której masz wolne miejsce na dysku (jak / home). Ponieważ kompilacja jądra wymaga dużo miejsca na dysku dla plików obiektowych takich jak * .o. Z tego powodu / usr / src / linux MUSI być miękkim linkiem do twojego katalogu źródłowego.


W tej odpowiedzi brakuje również ilości wolnego miejsca na dysku (w GB) wymaganej do skompilowania jądra: 1,7 GB ani 5,4 GB nie wystarczą do zbudowania jądra amd64-3.11.0 na Ubuntu 13.10.
Pro Backup
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.