.. SPDX-License-Identifier: GPL-2.0
.. include:: ../../disclaimer-vi.rst
:Original: Documentation/process/changes.rst
:Translator: Google Translate (machine translation)
:Upstream-at: 8541d8f725c6
.. warning::
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/.
.. _changes:
Yêu cầu tối thiểu để biên dịch Kernel
++++++++++++++++++++++++++++++++++++++++++
giới thiệu
==========
Tài liệu này được thiết kế để cung cấp danh sách các mức độ tối thiểu của
phần mềm cần thiết để chạy phiên bản kernel hiện tại.
Tài liệu này ban đầu dựa trên tệp "Thay đổi" của tôi dành cho hạt nhân 2.0.x
và do đó mang ơn những người giống như hồ sơ đó (Jared Mauch,
Axel Boldt, Alessandro Sigala và vô số người dùng khác trên khắp thế giới
'mạng).
Yêu cầu tối thiểu hiện tại
****************************
Hãy nâng cấp lên ZZ0000ZZ những bản sửa đổi phần mềm này trước khi nghĩ rằng bạn đã
gặp phải một lỗi! Nếu bạn không chắc chắn mình đang sử dụng phiên bản nào
đang chạy, lệnh được đề xuất sẽ cho bạn biết. Để biết danh sách các chương trình
trên hệ thống của bạn bao gồm cả phiên bản của họ thực thi ./scripts/ver_linux
Một lần nữa, hãy nhớ rằng danh sách này giả định rằng bạn đã sẵn sàng
chạy nhân Linux. Ngoài ra, không phải tất cả các công cụ đều cần thiết trên tất cả
hệ thống; rõ ràng là nếu bạn không có bất kỳ phần cứng PC Card nào, chẳng hạn,
bạn có thể không cần phải lo lắng về pcmciautils.
======================= ============================================================
Chương trình Phiên bản tối thiểu Lệnh kiểm tra phiên bản
======================= ============================================================
bash 4.2 bash --version
bc 1.06.95 bc --version
bindgen (tùy chọn) 0.71.1 bindgen --version
binutils 2.30 ld -v
bò rừng bison 2.0 bò rừng --version
btrfs-progs 0,18 btrfs --version
Clang/LLVM (tùy chọn) 15.0.0 clang --version
e2fsprogs 1.41.4 e2fsck -V
flex 2.5.35 flex --version
gdb 7.2 gdb --version
GNU awk (tùy chọn) 5.1.0 gawk --version
GNU C 8.1 gcc --phiên bản
GNU tạo phiên bản 4.0 --version
GNU tar 1.28 tar --version
GRUB 0.93 grub --version || cài đặt grub --version
gtags (tùy chọn) 6.6.5 gtags --version
iptables 1.4.2 iptables -V
jfsutils 1.1.3 fsck.jfs -V
kmod 13 kmod -V
mcelog 0.6 mcelog --version
mkimage (tùy chọn) 2017.01 mkimage --version
nfs-utils 1.0.5 showmount --version
phiên bản openssl & libcrypto 1.0.0 openssl
pahole 1.22 pahole --version
pcmciautils 004 pccardctl -V
PPP 2.4.0 pppd --phiên bản
Procps 3.2.0 ps --version
Python 3.9.x python3 --version
hạn ngạch công cụ 3.09 hạn ngạch -V
Rust (tùy chọn) 1.85.0 Rustc --version
Sphinx\ [#f1]_ 3.4.3 sphinx-build --version
công cụ bí đao 4.0 mksquashfs -version
udev 081 udevadm --version
util-linux 2.10o mount --version
xfsprogs 2.6.0 xfs_db -V
======================= ============================================================
.. [#f1] Sphinx is needed only to build the Kernel documentation
Biên dịch hạt nhân
******************
GCC
---
Yêu cầu về phiên bản gcc có thể khác nhau tùy thuộc vào loại CPU trong
máy tính.
Kêu vang/LLVM (tùy chọn)
------------------------
Bản phát hành chính thức mới nhất của các tiện ích clang và LLVM (theo
ZZ0001ZZ) được hỗ trợ để xây dựng
hạt nhân. Các bản phát hành cũ hơn không được đảm bảo sẽ hoạt động và chúng tôi có thể loại bỏ các giải pháp thay thế
từ kernel được sử dụng để hỗ trợ các phiên bản cũ hơn. Vui lòng xem thêm
tài liệu trên ZZ0000ZZ.
Rỉ sét (tùy chọn)
-----------------
Cần có phiên bản mới nhất của trình biên dịch Rust.
Vui lòng xem Documentation/rust/quick-start.rst để biết hướng dẫn về cách
đáp ứng các yêu cầu xây dựng của hỗ trợ Rust. Đặc biệt, ZZ0000ZZ
target ZZ0001ZZ rất hữu ích để kiểm tra lý do tại sao chuỗi công cụ Rust có thể không
được phát hiện.
bindgen (tùy chọn)
------------------
ZZ0000ZZ được sử dụng để tạo các liên kết Rust với phía C của kernel.
Nó phụ thuộc vào ZZ0001ZZ.
Làm
----
Bạn sẽ cần GNU make 4.0 trở lên để xây dựng kernel.
đánh
----
Một số tập lệnh bash được sử dụng để xây dựng kernel.
Cần có Bash 4.2 hoặc mới hơn.
Binutils
--------
Cần có Binutils 2.30 hoặc mới hơn để xây dựng kernel.
pkg-config
----------
Hệ thống xây dựng, kể từ phiên bản 4.18, yêu cầu pkg-config để kiểm tra xem đã cài đặt chưa
công cụ kconfig và xác định cài đặt cờ để sử dụng trong
'tạo {g,x}cấu hình'. Trước đây pkg-config đã được sử dụng nhưng không
được xác minh hoặc ghi lại.
Uốn cong
--------
Kể từ Linux 4.16, hệ thống xây dựng tạo ra các bộ phân tích từ vựng
trong quá trình xây dựng. Điều này yêu cầu flex 2.5.35 trở lên.
Bò rừng
-------
Kể từ Linux 4.16, hệ thống xây dựng tạo ra các trình phân tích cú pháp
trong quá trình xây dựng. Điều này yêu cầu bison 2.0 trở lên.
hố nước
-------
Kể từ Linux 5.2, nếu CONFIG_DEBUG_INFO_BTF được chọn, hệ thống xây dựng
tạo BTF (Định dạng loại BPF) từ DWARF trong vmlinux, muộn hơn một chút từ kernel
các mô-đun là tốt. Điều này yêu cầu pahole v1.22 trở lên.
Nó được tìm thấy trong các gói phân phối 'dwarves' hoặc 'pahole' hoặc từ
ZZ0000ZZ
Perl
----
Bạn sẽ cần Perl 5 và các mô-đun sau: ZZ0000ZZ,
ZZ0001ZZ, ZZ0002ZZ và ZZ0003ZZ để xây dựng kernel.
Python
------
Một số tùy chọn cấu hình yêu cầu nó: nó được yêu cầu cho arm/arm64
cấu hình mặc định, CONFIG_LTO_CLANG, một số cấu hình tùy chọn DRM,
công cụ kernel-doc và công cụ xây dựng tài liệu (Sphinx), cùng nhiều công cụ khác.
BC
--
Bạn sẽ cần bc để xây dựng kernel 3.10 trở lên
OpenSSL
-------
Ký mô-đun và xử lý chứng chỉ bên ngoài sử dụng chương trình OpenSSL và
thư viện mật mã để thực hiện việc tạo khóa và tạo chữ ký.
Bạn sẽ cần openssl để xây dựng hạt nhân 3.7 trở lên nếu việc ký mô-đun được thực hiện
đã bật. Bạn cũng sẽ cần các gói phát triển openssl để xây dựng hạt nhân 4.3
và cao hơn.
hắc ín
------
Cần có tar GNU nếu bạn muốn cho phép truy cập vào các tiêu đề kernel thông qua sysfs
(CONFIG_IKHEADERS).
gtags / GNU GLOBAL (tùy chọn)
-----------------------------
Bản dựng kernel yêu cầu GNU GLOBAL phiên bản 6.6.5 trở lên để tạo
gắn thẻ các tập tin thông qua ZZ0000ZZ. Điều này là do nó sử dụng gtags
Cờ ZZ0001ZZ.
hình ảnh mk
-----------
Công cụ này được sử dụng khi xây dựng Flat Image Tree (FIT), thường được sử dụng trên ARM
nền tảng. Công cụ này có sẵn thông qua gói ZZ0000ZZ hoặc có thể
được xây dựng từ mã nguồn U-Boot. Xem hướng dẫn tại
ZZ0001ZZ
GNU AWK
-------
GNU AWK là cần thiết nếu bạn muốn các bản dựng kernel tạo dữ liệu dải địa chỉ cho
mô-đun dựng sẵn (CONFIG_BUILTIN_MODULE_RANGES).
Tiện ích hệ thống
*****************
Thay đổi kiến trúc
---------------------
DevFS đã lỗi thời nhường chỗ cho udev
(ZZ0000ZZ
Hiện đã có hỗ trợ UID 32 bit. Chúc vui vẻ!
Tài liệu Linux cho các hàm đang chuyển sang nội tuyến
tài liệu thông qua các nhận xét được định dạng đặc biệt gần
định nghĩa trong nguồn. Những ý kiến này có thể được kết hợp với ReST
các tập tin trong thư mục Documentation/ để tạo ra tài liệu phong phú, có thể
sau đó được chuyển đổi sang các tệp PostScript, HTML, LaTex, ePUB và PDF.
Để chuyển đổi từ định dạng ReST sang định dạng bạn chọn, bạn sẽ cần
Nhân sư.
Sử dụng linux
-------------
Các phiên bản mới của util-linux cung cấp hỗ trợ ZZ0000ZZ cho các ổ đĩa lớn hơn,
hỗ trợ các tùy chọn mới để gắn kết, nhận biết nhiều phân vùng được hỗ trợ hơn
các loại và những món quà tương tự.
Có thể bạn sẽ muốn nâng cấp.
Ksymoops
--------
Nếu điều không thể tưởng tượng được xảy ra và kernel của bạn bị lỗi, bạn có thể cần
ksymoops để giải mã nó, nhưng trong hầu hết các trường hợp thì không.
Nói chung, việc xây dựng kernel bằng ZZ0000ZZ thường được ưu tiên hơn
rằng nó tạo ra các kết xuất có thể đọc được và có thể được sử dụng nguyên trạng (điều này cũng
tạo ra đầu ra tốt hơn ksymoops). Nếu vì lý do nào đó kernel của bạn
không được xây dựng bằng ZZ0001ZZ và bạn không có cách nào để xây dựng lại và
tái tạo Rất tiếc bằng tùy chọn đó, thì bạn vẫn có thể giải mã Rất tiếc đó
với ksymoops.
Mkinitrd
--------
Những thay đổi này đối với bố cục cây tệp ZZ0000ZZ cũng yêu cầu
mkinitrd được nâng cấp.
E2fsprogs
---------
Phiên bản mới nhất của ZZ0000ZZ sửa một số lỗi trong fsck và
debugfs. Rõ ràng, đó là một ý tưởng tốt để nâng cấp.
JFSutils
--------
Gói ZZ0000ZZ chứa các tiện ích cho hệ thống tệp.
Các tiện ích sau đây có sẵn:
- ZZ0000ZZ - bắt đầu phát lại nhật ký giao dịch và kiểm tra
và sửa chữa phân vùng được định dạng JFS.
- ZZ0000ZZ - tạo phân vùng có định dạng JFS.
- các tiện ích hệ thống tập tin khác cũng có sẵn trong gói này.
Xfsprogs
--------
Phiên bản mới nhất của ZZ0000ZZ chứa ZZ0001ZZ, ZZ0002ZZ và
Các tiện ích ZZ0003ZZ, trong số những tiện ích khác, dành cho hệ thống tệp XFS. Đó là
kiến trúc độc lập và mọi phiên bản từ 2.0.0 trở đi đều phải
hoạt động chính xác với phiên bản mã hạt nhân XFS này (2.6.0 hoặc
được khuyến khích sử dụng sau do có một số cải tiến đáng kể).
PCMCIAutils
-----------
PCMCIAutils thay thế ZZ0000ZZ. Nó thiết lập đúng
Ổ cắm PCMCIA khi khởi động hệ thống và tải các mô-đun thích hợp
đối với các thiết bị PCMCIA 16 bit nếu hạt nhân được mô-đun hóa và trình cắm nóng
hệ thống con được sử dụng.
Công cụ hạn ngạch
-----------------
Cần hỗ trợ uid và gid 32 bit nếu bạn muốn sử dụng
định dạng hạn ngạch phiên bản 2 mới hơn. Công cụ hạn ngạch phiên bản 3.07 và
mới hơn có hỗ trợ này. Sử dụng phiên bản được đề xuất hoặc mới hơn
từ bảng trên.
Mã vi Intel IA32
--------------------
Một trình điều khiển đã được thêm vào để cho phép cập nhật vi mã Intel IA32,
có thể truy cập như một thiết bị ký tự (linh tinh) bình thường. Nếu bạn không sử dụng
udev bạn có thể cần::
mkdir/dev/cpu
mknod /dev/cpu/microcode c 10 184
chmod 0644/dev/cpu/microcode
là root trước khi bạn có thể sử dụng cái này. Có lẽ bạn cũng sẽ muốn
lấy tiện ích microcode_ctl trong không gian người dùng để sử dụng với tiện ích này.
udev
----
ZZ0000ZZ là một ứng dụng không gian người dùng để điền động ZZ0001ZZ với
chỉ các mục dành cho các thiết bị thực sự có mặt. ZZ0002ZZ thay thế cơ bản
chức năng của devfs, đồng thời cho phép đặt tên thiết bị liên tục cho
thiết bị.
FUSE
----
Cần libfuse 2.4.0 trở lên. Tối thiểu tuyệt đối là 2.3.0 nhưng gắn kết
tùy chọn ZZ0000ZZ và ZZ0001ZZ sẽ không hoạt động.
Mạng
**********
Những thay đổi chung
--------------------
Nếu bạn có nhu cầu cấu hình mạng nâng cao, có lẽ bạn nên
hãy cân nhắc sử dụng các công cụ mạng từ ip-route2.
Bộ lọc gói / NAT
-------------------
Việc lọc gói và mã NAT sử dụng các công cụ tương tự như 2.4.x trước đó
loạt hạt nhân (iptables). Nó vẫn bao gồm các mô-đun tương thích ngược
dành cho ipchains kiểu 2.2.x và ipfwadm kiểu 2.0.x.
PPP
---
Trình điều khiển PPP đã được cơ cấu lại để hỗ trợ đa liên kết và
cho phép nó hoạt động trên các lớp phương tiện đa dạng. Nếu bạn sử dụng PPP,
nâng cấp pppd lên ít nhất 2.4.0.
Nếu bạn không sử dụng udev, bạn phải có tệp thiết bị /dev/ppp
có thể được thực hiện bởi::
mknod /dev/ppp c 108 0
như gốc.
NFS-utils
---------
Trong các hạt nhân cổ (2.4 trở về trước), máy chủ nfs cần biết
về bất kỳ ứng dụng khách nào dự kiến có thể truy cập tệp qua NFS. Cái này
thông tin sẽ được ZZ0000ZZ cung cấp cho kernel khi máy khách
gắn hệ thống tập tin hoặc bằng ZZ0001ZZ khi khởi động hệ thống. xuất khẩu
sẽ lấy thông tin về các khách hàng đang hoạt động từ ZZ0002ZZ.
Cách tiếp cận này khá mong manh vì nó phụ thuộc vào rmtab là chính xác
điều này không phải lúc nào cũng dễ dàng, đặc biệt khi cố gắng thực hiện
thất bại. Ngay cả khi hệ thống hoạt động tốt, ZZ0000ZZ vẫn gặp phải vấn đề
nhận được rất nhiều mục cũ mà không bao giờ bị xóa.
Với các hạt nhân hiện đại, chúng ta có tùy chọn để hạt nhân thông báo cho mountd
khi nó nhận được yêu cầu từ một máy chủ không xác định và mountd có thể đưa ra
xuất thông tin thích hợp vào kernel. Điều này loại bỏ
phụ thuộc vào ZZ0000ZZ và có nghĩa là kernel chỉ cần biết về
khách hàng hiện đang hoạt động.
Để kích hoạt chức năng mới này, bạn cần::
mount -t nfsd nfsd /proc/fs/nfsd
trước khi chạy importfs hoặc mountd. Chúng tôi đề nghị tất cả NFS
các dịch vụ được bảo vệ khỏi mạng Internet nói chung bằng tường lửa nơi
điều đó là có thể.
mcelog
------
Trên nhân x86, cần có tiện ích mcelog để xử lý và ghi nhật ký kiểm tra máy
sự kiện khi ZZ0000ZZ được kích hoạt. Sự kiện kiểm tra máy bị lỗi
được báo cáo bởi CPU. Việc xử lý chúng được khuyến khích mạnh mẽ.
Tài liệu hạt nhân
********************
Nhân sư
-------
Vui lòng xem ZZ0000ZZ trong Tài liệu/doc-guide/sphinx.rst
để biết chi tiết về các yêu cầu của Sphinx.
bác sĩ rỉ sét
-------------
ZZ0000ZZ được sử dụng để tạo tài liệu cho mã Rust. Xin vui lòng xem
Tài liệu/rust/general-information.rst để biết thêm thông tin.
Đang cập nhật phần mềm
========================
Biên dịch hạt nhân
******************
gcc
---
-
Tiếng kêu/LLVM
--------------
-ZZ0000ZZ.
rỉ sét
------
- Tài liệu/rust/quick-start.rst.
chất kết dính
-------------
- Tài liệu/rust/quick-start.rst.
Làm
----
-
đánh
----
-
Binutils
--------
-
OpenSSL
-------
-