Biên dịch kernel Linux, cần bao nhiêu kích thước?


13

Tôi đã tải xuống hạt nhân Linux ổn định mới nhất, 2.6.33.2.

Tôi nghĩ rằng tôi sẽ kiểm tra điều này bằng VirtualBox. Vì vậy, tôi tạo ra một ổ cứng kích thước động 4 GB. Và cài đặt CentOS 5.3 chỉ với các gói tối thiểu.

Tôi thiết lập make menuconfigchỉ với các thiết lập mặc định.

Sau đó tôi chạy makevà gặp lỗi sau:

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

Lượng không gian tôi còn lại là:

# 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

Kích thước ảo của tôi là 4 GB, nhưng kích thước thực tế là 3,5 GB.

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

Tôi nên cung cấp kích thước bao nhiêu khi biên dịch và cài đặt kernel Linux? Có hướng dẫn nào để làm theo khi làm điều này? Đây là lần đầu tiên của tôi, vì vậy chỉ cần thử nghiệm điều này.

Câu trả lời:


1

Một hạt nhân linux tháng tư 2010 là khoảng 60 MB bzip2 lưu trữ, mà sau khi giải nén và biên dịch mất khoảng 400-500 MB.

Bạn có thể kiểm tra kích thước thư mục của bạn du -hsnhư sau:

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

1
Xin chào, nếu đó là trường hợp thì tại sao tất cả không gian đĩa của tôi đang được sử dụng hết. Tôi đã phân bổ ổ cứng 4gb và chỉ cài đặt CentOS chỉ với các công cụ và thư viện phát triển. Không nên chiếm nhiều dung lượng đĩa. Khi tôi cài đặt CentSO, tôi chỉ cần thiết lập 1 phân vùng cho root và không có gì khác. Bất kỳ vấn đề với điều đó?
ant2009

Bạn có thể điều tra những gì đang ăn không gian của bạn với du -h --max-depth=1chạy trong thư mục gốc (/). Lấy thư mục lớn nhất, đi vào nó, lặp lại. Làm điều này cho đến khi bạn tìm thấy ổ đĩa của bạn.
Ivan Petrushev

1
Để liệt kê các tệp trong thư mục hiện tại được sắp xếp theo kích thước sử dụng ls -lhSvà để xem 10 tệp lớn nhất trong sử dụng thư mục hiện tại ls -lhS|head -10.
Ivan Petrushev

4
Vấn đề là với không gian được sử dụng trong khi biên dịch, không giải nén, methinks.
Nikana Reklawyks

Xác nhận, hầu hết không gian được sử dụng trong khi biên dịch.
lethalman

4

Trên bản dựng AMD64 gần đây của tôi là 4.4.0-57 trên Ubuntu 16.04, tôi cần khoảng 14,5 GB dung lượng cho các bản dựng đầu ra.

Điều đó có vẻ rất nhiều và dường như hầu hết là các tệp cần thiết thoáng qua (ví dụ: .ocác tệp do biên dịch một .ctệp).


3

Tham khảo liên kết này >> https://ubuntuforums.org/showthread.php?t=2266609

Tôi đã biên dịch / tạo linux kernel 4.0.0-rc1 trên HP Stream 13 (RAM 2GB, Intel Celeron N2840 lõi kép) dựa trên hướng dẫn rõ ràng trên https: //wiki.ub Ubuntu.com/KernelTeam/GitKernelBuild và đây là kinh nghiệm:

Sau "git clone git: //git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git" đĩa được sử dụng trong thư mục kernel riêng: 1691 MB

Trong quá trình thực hiện / biên dịch, dung lượng đĩa được sử dụng lên tới 15674 MB. Vậy: hơn 15 GB ...

Tổng thời gian biên dịch là: 299 phút, hoặc 5 giờ. Khá lâu, có lẽ là do CPU chậm và đĩa chậm của tôi.


Git là con thú hoàn toàn khác nhau. Bạn thường tải về một ảnh chụp nhanh. Kho lưu trữ git chứa toàn bộ lịch sử phát triển Kernel. Ngoài ra, việc biên dịch sẽ không bao giờ mất nhiều thời gian khi các tùy chọn không liên quan được bỏ chọn.
Daniel B

2

Từ Hướng dẫn,

LƯU Ý: Nếu bạn không có nhiều dung lượng đĩa trong / usr / src thì bạn có thể giải nén gói nguồn kernel trên bất kỳ phân vùng nào có không gian đĩa trống (như / home). Bởi vì biên dịch kernel cần rất nhiều dung lượng đĩa cho các tệp đối tượng như * .o. Vì lý do này, / usr / src / linux PHẢI là một liên kết mềm trỏ đến thư mục nguồn của bạn.


Câu trả lời này cũng thiếu dung lượng đĩa trống (tính bằng GB) cần thiết để biên dịch kernel: 1.7GB không đủ 5.4GB không đủ để xây dựng kernel amd64-3.11.0 trên Ubuntu 13.10.
Sao lưu dự phòng
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.