Lưu ý
Mục đích của file này là để độc giả tiếng Việt có thể đọc và hiểu tài liệu nhân kernel dễ dàng hơn, không phải để tạo ra một nhánh tài liệu riêng. Nếu bạn có bất kỳ nhận xét hoặc cập nhật nào cho file này, vui lòng thử cập nhật file tiếng Anh gốc trước. Nếu bạn thấy có sự khác biệt giữa bản dịch và bản gốc, hoặc có vấn đề về bản dịch, vui lòng gửi góp ý hoặc patch cho người dịch của file này, hoặc nhờ người bảo trì và người review tài liệu tiếng Việt giúp đỡ.
- Bản gốc:
- Người dịch:
Google Translate (machine translation)
- Phiên bản gốc:
8541d8f725c6
Cảnh báo
Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/.
Kbuild¶
Tập tin đầu ra¶
module.order¶
Tệp này ghi lại thứ tự các mô-đun xuất hiện trong Makefiles. Cái này được modprobe sử dụng để giải quyết một cách xác định các bí danh phù hợp nhiều mô-đun.
mô-đun.buildin¶
Tệp này liệt kê tất cả các mô-đun được tích hợp vào kernel. Cái này được sử dụng bằng modprobe để không bị lỗi khi cố tải nội dung nào đó được tích hợp sẵn.
mô-đun.buildin.modinfo¶
Tệp này chứa modinfo từ tất cả các mô-đun được tích hợp vào kernel. Không giống như modinfo của một mô-đun riêng biệt, tất cả các trường đều có tiền tố là tên mô-đun.
mô-đun.buildin.ranges¶
Tệp này chứa các phạm vi bù địa chỉ (theo phần ELF) cho tất cả các mô-đun được tích hợp vào kernel. Cùng với System.map, nó có thể được sử dụng để liên kết tên mô-đun với các ký hiệu.
Biến môi trường¶
KCPPFLAGS¶
Các tùy chọn bổ sung cần chuyển khi xử lý trước. Các tùy chọn tiền xử lý sẽ được sử dụng trong mọi trường hợp kbuild thực hiện tiền xử lý bao gồm xây dựng các tập tin C và các tập tin biên dịch mã.
KAFLAGS¶
Các tùy chọn bổ sung cho trình biên dịch mã (đối với các mô-đun và phần mềm tích hợp).
AFLAGS_MODULE¶
Tùy chọn lắp ráp bổ sung cho các mô-đun.
AFLAGS_KERNEL¶
Tùy chọn lắp ráp bổ sung để tích hợp sẵn.
KCFLAGS¶
Các tùy chọn bổ sung cho trình biên dịch C (dành cho mô-đun và mô-đun tích hợp).
KRUSTFLAGS¶
Các tùy chọn bổ sung cho trình biên dịch Rust (dành cho mô-đun và mô-đun tích hợp).
CFLAGS_KERNEL¶
Các tùy chọn bổ sung cho $(CC) khi được sử dụng để biên dịch mã được biên dịch dưới dạng tích hợp.
CFLAGS_MODULE¶
Các tùy chọn cụ thể của mô-đun bổ sung để sử dụng cho $(CC).
RUSTFLAGS_KERNEL¶
Các tùy chọn bổ sung cho $(RUSTC) khi được sử dụng để biên dịch mã được biên dịch dưới dạng tích hợp.
RUSTFLAGS_MODULE¶
Các tùy chọn cụ thể của mô-đun bổ sung để sử dụng cho $(RUSTC).
LDFLAGS_MODULE¶
Các tùy chọn bổ sung được sử dụng cho $(LD) khi liên kết các mô-đun.
HOSTCFLAGS¶
Các cờ bổ sung được chuyển tới $(HOSTCC) khi xây dựng chương trình máy chủ.
HOSTCXXFLAGS¶
Các cờ bổ sung được chuyển tới $(HOSTCXX) khi xây dựng chương trình máy chủ.
HOSTRUSTFLAGS¶
Các cờ bổ sung được chuyển tới $(HOSTRUSTC) khi xây dựng chương trình máy chủ.
PROCMACROLDFLAGS¶
Cờ cần được chuyển khi liên kết macro Rust Proc. Vì macro proc được tải bởi Rustc tại thời điểm xây dựng, chúng phải được liên kết theo cách tương thích với chuỗi công cụ Rustc đang được sử dụng.
Ví dụ, nó có thể hữu ích khi Rustc sử dụng thư viện C khác với cái mà người dùng muốn sử dụng cho các chương trình máy chủ.
Nếu không được đặt, nó sẽ mặc định chuyển sang các cờ khi liên kết các chương trình lưu trữ.
HOSTLDFLAGS¶
Các cờ bổ sung cần được thông qua khi liên kết các chương trình lưu trữ.
HOSTLDLIBS¶
Thư viện bổ sung để liên kết khi xây dựng chương trình máy chủ.
USERCFLAGS¶
Các tùy chọn bổ sung được sử dụng cho $(CC) khi biên dịch userprogs.
USERLDFLAGS¶
Các tùy chọn bổ sung được sử dụng cho $(LD) khi liên kết các chương trình người dùng. chương trình người dùng được liên kết với CC, vì vậy $(USERLDFLAGS) phải bao gồm tiền tố “-Wl,” nếu có.
KBUILD_KCONFIG¶
Đặt tệp Kconfig cấp cao nhất thành giá trị của môi trường này biến. Tên mặc định là “Kconfig”.
KBUILD_VERBOSE¶
Đặt mức độ chi tiết của kbuild. Có thể được gán các giá trị giống như “V=...”.
Xem phần trợ giúp để có danh sách đầy đủ.
Cài đặt “V=...” được ưu tiên hơn KBUILD_VERBOSE.
KBUILD_EXTMOD¶
Đặt thư mục tìm nguồn kernel khi build bên ngoài mô-đun.
Cài đặt “M=...” được ưu tiên hơn KBUILD_EXTMOD.
KBUILD_OUTPUT¶
Chỉ định thư mục đầu ra khi xây dựng kernel.
Biến này cũng có thể được sử dụng để trỏ tới thư mục đầu ra của kernel khi xây dựng các mô-đun bên ngoài dựa trên hạt nhân dựng sẵn trong một bản dựng riêng thư mục. Xin lưu ý rằng điều này NOT chỉ định thư mục đầu ra cho bản thân các mô-đun bên ngoài. (Sử dụng KBUILD_EXTMOD_OUTPUT cho mục đích đó.)
Thư mục đầu ra cũng có thể được chỉ định bằng cách sử dụng “O=...”.
Cài đặt “O=...” được ưu tiên hơn KBUILD_OUTPUT.
KBUILD_EXTMOD_OUTPUT¶
Chỉ định thư mục đầu ra cho các mô-đun bên ngoài.
Cài đặt “MO=...” được ưu tiên hơn KBUILD_EXTMOD_OUTPUT.
KBUILD_EXTRA_WARN¶
Chỉ định các bước kiểm tra bản dựng bổ sung. Giá trị tương tự có thể được gán bằng cách chuyển W=... từ dòng lệnh.
Xem ZZ0000ZZ để biết danh sách các giá trị được hỗ trợ.
Cài đặt “W=...” được ưu tiên hơn KBUILD_EXTRA_WARN.
KBUILD_DEBARCH¶
Đối với mục tiêu deb-pkg, cho phép ghi đè các phương pháp phỏng đoán thông thường được triển khai bởi deb-pkg. Thông thường deb-pkg cố gắng đoán kiến trúc đúng dựa trên biến UTS_MACHINE và trên một số kiến trúc cũng có cấu hình kernel. Giá trị của KBUILD_DEBARCH được giả định (không được kiểm tra) là Debian hợp lệ kiến trúc.
KDOCFLAGS¶
Chỉ định các cờ bổ sung (cảnh báo/lỗi) để kiểm tra kernel-doc trong quá trình xây dựng, xem tools/docs/kernel-doc để biết cờ nào được hỗ trợ. Lưu ý rằng điều này không (hiện tại) áp dụng cho việc xây dựng tài liệu.
ARCH¶
Đặt ARCH cho kiến trúc sẽ được xây dựng.
Trong hầu hết các trường hợp, tên của kiến trúc giống như tên của tên thư mục được tìm thấy trong thư mục Arch/.
Nhưng một số kiến trúc như x86 và sparc có bí danh.
x86: i386 cho 32 bit, x86_64 cho 64 bit
parisc: parisc64 cho 64 bit
sparc: sparc32 cho 32 bit, sparc64 cho 64 bit
CROSS_COMPILE¶
Chỉ định một phần cố định tùy chọn của tên tệp binutils. CROSS_COMPILE có thể là một phần của tên tệp hoặc đường dẫn đầy đủ.
CROSS_COMPILE cũng được sử dụng cho ccache trong một số thiết lập.
CF¶
Tùy chọn bổ sung cho thưa thớt.
CF thường được sử dụng trên dòng lệnh như thế này
tạo CF=-Wbitwise C=2
INSTALL_PATH¶
INSTALL_PATH chỉ định nơi đặt bản đồ hệ thống và kernel đã cập nhật hình ảnh. Mặc định là /boot, nhưng bạn có thể đặt nó thành các giá trị khác.
INSTALLKERNEL¶
Tập lệnh cài đặt được gọi khi sử dụng “make install”. Tên mặc định là “installkernel”.
Tập lệnh sẽ được gọi với các đối số sau:
- $1 - phiên bản hạt nhân
$2 - tập tin ảnh hạt nhân
$3 - tệp bản đồ hạt nhân
$4 - đường dẫn cài đặt mặc định (sử dụng thư mục gốc nếu trống)
Việc triển khai “thực hiện cài đặt” là kiến trúc cụ thể và nó có thể khác với những điều trên.
INSTALLKERNEL được cung cấp để cho phép khả năng chỉ định trình cài đặt tùy chỉnh khi biên dịch chéo kernel.
MODLIB¶
Chỉ định nơi cài đặt các mô-đun. Giá trị mặc định là:
$(INSTALL_MOD_PATH)/lib/mô-đun/$(KERNELRELEASE)
Giá trị có thể bị ghi đè trong trường hợp giá trị mặc định bị bỏ qua.
INSTALL_MOD_PATH¶
INSTALL_MOD_PATH chỉ định tiền tố cho MODLIB cho thư mục mô-đun di dời theo yêu cầu của rễ xây dựng. Điều này không được xác định trong makefile nhưng đối số có thể được chuyển tới make nếu cần.
INSTALL_MOD_STRIP¶
INSTALL_MOD_STRIP, nếu được xác định, sẽ khiến các mô-đun bị bị tước bỏ sau khi chúng được cài đặt. Nếu INSTALL_MOD_STRIP là ‘1’ thì tùy chọn mặc định --strip-debug sẽ được sử dụng. Nếu không, Giá trị INSTALL_MOD_STRIP sẽ được sử dụng làm tùy chọn cho lệnh dải.
INSTALL_HDR_PATH¶
INSTALL_HDR_PATH chỉ định nơi cài đặt tiêu đề không gian người dùng khi thực thi “tạo tiêu đề_*”.
Giá trị mặc định là:
$(objtree)/usr
$(objtree) là thư mục lưu các tệp đầu ra. Thư mục đầu ra thường được đặt bằng cách sử dụng “O=...” trên dòng lệnh.
Giá trị có thể bị ghi đè trong trường hợp giá trị mặc định bị bỏ qua.
INSTALL_DTBS_PATH¶
INSTALL_DTBS_PATH chỉ định nơi cài đặt các đốm màu cây thiết bị cho di dời theo yêu cầu của rễ xây dựng. Điều này không được xác định trong makefile nhưng đối số có thể được chuyển tới make nếu cần.
KBUILD_ABS_SRCTREE¶
Kbuild sử dụng đường dẫn tương đối để trỏ tới cây khi có thể. Ví dụ, khi xây dựng trong cây nguồn, đường dẫn của cây nguồn là ‘.’
Đặt cờ này yêu cầu Kbuild sử dụng đường dẫn tuyệt đối đến cây nguồn. Có một số trường hợp hữu ích để làm như vậy, như khi tạo tệp thẻ bằng mục đường dẫn tuyệt đối, v.v.
KBUILD_SIGN_PIN¶
Biến này cho phép truyền cụm mật khẩu hoặc PIN vào tệp ký hiệu tiện ích khi ký các mô-đun hạt nhân, nếu khóa riêng yêu cầu như vậy.
KBUILD_MODPOST_WARN¶
KBUILD_MODPOST_WARN có thể được đặt để tránh lỗi trong trường hợp không xác định các ký hiệu trong giai đoạn liên kết mô-đun cuối cùng. Nó thay đổi những lỗi như vậy vào các cảnh báo.
KBUILD_MODPOST_NOFINAL¶
KBUILD_MODPOST_NOFINAL có thể được đặt để bỏ qua liên kết cuối cùng của các mô-đun. Điều này chỉ hữu ích để tăng tốc độ biên dịch thử nghiệm.
KBUILD_EXTRA_SYMBOLS¶
Đối với các mô-đun sử dụng ký hiệu từ các mô-đun khác. Xem thêm chi tiết trong module.rst.
ALLSOURCE_ARCHS¶
Đối với các mục tiêu thẻ/TAGS/cscope, bạn có thể chỉ định nhiều hơn một vòm được đưa vào cơ sở dữ liệu, cách nhau bằng khoảng trống. Ví dụ.:
$ make ALLSOURCE_ARCHS="x86 mips arm" thẻ
Để có được tất cả các vòm có sẵn, bạn cũng có thể chỉ định tất cả. Ví dụ.:
$ tạo ALLSOURCE_ARCHS=tất cả các thẻ
IGNORE_DIRS¶
Đối với các mục tiêu thẻ/TAGS/cscope, bạn có thể chọn thư mục nào sẽ không được đưa vào cơ sở dữ liệu, cách nhau bằng khoảng trống. Ví dụ.:
$ make IGNORE_DIRS="drivers/gpu/drm/radeon tools" cscope
KBUILD_BUILD_TIMESTAMP¶
Việc đặt giá trị này thành chuỗi ngày sẽ ghi đè dấu thời gian được sử dụng trong Định nghĩa UTS_VERSION (uname -v trong kernel đang chạy). Giá trị phải là một chuỗi có thể được chuyển đến ngày -d. Ví dụ.:
$ KBUILD_BUILD_TIMESTAMP="Thứ Hai ngày 13 tháng 10 00:00:00 UTC 2025" thực hiện
Giá trị mặc định là đầu ra của lệnh ngày tại một thời điểm trong xây dựng. Nếu được cung cấp, dấu thời gian này cũng sẽ được sử dụng cho các trường mtime trong bất kỳ kho lưu trữ initramfs nào. Thời gian initramfs là 32-bit, vì vậy ngày trước đó kỷ nguyên Unix 1970 hoặc sau 2106-02-07 06:28:15 UTC sẽ không thành công.
KBUILD_BUILD_USER, KBUILD_BUILD_HOST¶
Hai biến này cho phép ghi đè chuỗi user@host được hiển thị trong khởi động và trong /proc/version. Giá trị mặc định là đầu ra của lệnh whoami và máy chủ tương ứng.
LLVM¶
Nếu biến này được đặt thành 1, Kbuild sẽ sử dụng tiện ích Clang và LLVM thay thế các binutils GCC và GNU để xây dựng kernel.