Fletch

New Member

Download miễn phí Ebook Biên dịch nhân Linux





Mục lục
1 Tổng quan về nhân Linux trên phương
diện biên dịch lại 3
1.1 Nhân Linux và việc biên dịch lại nhân 3
1.2 Tóm tắt các bước biên dịch (dành cho những ai thiếu kiên nhẫn) 3
2 Tại sao cần biên dịch lại nhân Linux? 5
3 Cấu trúc và quy ước số hiệu phiên bản
của nhân Linux 6
4 Đòi hỏi tối thiểu trong việc biên dịch lại
nhân Linux 6
4.1 Đòi hỏi cho nhân Linux 2.4.x 7
4.2 Đòi hỏi cho nhân Linux 2.6.x 8
5 Xác định cấu hình (hardware) của máy 9
6 Các bước chuẩn bị 9
6.1 Tạo một đĩa mềm khởi động cho nhân đang dùng 9
6.2 Tải mã nguồn 10
6.3 Kiểm tra thực tính của mã nguồn 11
6.4 Xả nén mã nguồn 12
6.5 Dùng "config" nào thì thích hợp? 14
7 Chỉnh cấu hình biên dịch nhân Linux 14
7.1 Thành phần của cấu hình biên dịch nhân Linux 14
7.1.1 Thành phần cấu hình biên dịch nhân Linux phiên bản 2.4.x 14
7.1.2 Thành phần cấu hình nhân Linux cho loạt nhân 2.6.x 17
7.2 Điều chỉnh cấu hình biên dịch nhân Linux 18
7.2.1 Các công cụ để xác lập cấu hình 19
7.2.2 Một số điểm cần chú ý trong giai đoạn hình thành cấu hình
biên dịch nhân 20
8 Các bước biên dịch 22
8.1 Bước tạo dependency, dọn dẹp và tạo nhân 22
8.2 Bước tạo modules và cài modules 24
8.3 Tách rời mã nguồn và hồ sơ output trên loạt nhân 2.6.x 25
8.3.1 "make help", một tiện ích mới trên loạt nhân 2.6.x 26
8.3.2 Tách rời mã nguồn và output files 27
9 Cài đặt nhân 27
9.1 Cài đặt với "make install" 28
9.1.1 Đối với GRUB 28
9.1.2 Đối với LILO 29
9.2 Các bước cài đặt bằng tay 31
9.2.1 Tạo initrd 31
9.2.2 Copy nhân và System.map 32
9.2.3 Chỉnh cấu hình của bootloader config 33
10 Khởi động lại máy và chỉnh lý nếu gặp
trục trặc 35
10.1 Bị treo khi khởi động vào linux 35
10.2 Bị treo trong quá trình nhân được load 36
11 Vá và biên dịch nhân 37
11.1 Các điểm quan trọng trước khi vá 37
11.2 Tải, xả và vá 38



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

rình chọn Y, N hay M cho các modules vẫn
như nhau. Bước chọn lựa và chỉnh liệu cấu hình biên dịch nhân Linux là một bước mất
nhiều thời gian nhất, nó cũng là một bước gây nhiều trở ngại nhất nếu chỉnh sửa không
hợp lý hay thiếu sót.
7.1.1 Thành phần cấu hình biên dịch nhân Linux phiên bản 2.4.x
7.1.1.1 Code Maturity Level Options
Chọn lựa của mục này cho phép dùng các modules/drivers còn ở trạng thái "alpha" (thử
nghiệm). Nếu hệ thống làm việc là một máy production, cần tính ổn định cao thì nên tắt
bỏ chọn lựa của phần này. Làm như thế sẽ tắt bỏ rất nhiều modules/drivers thuộc dạng
– 15 –
"alpha" trong những phần bên dưới. Nếu muốn thử dùng một số modules/drivers ở dạng
alpha thì nên cho phép phần này (Y) và cẩn thận khi lựa chọn các modules được biên
dịch sau này. Việc chọn lựa các "alpha" drivers ở chế độ mặc định của các nhân Linux
trong nhiều bản phân phối Linux là một trong những nguyên nhân chính tạo nên tình
trạng bất ổn định trên một số hệ thống Linux. Nếu chọn lựa các driver này một cách cẩn
thận, cơ hội va phải tình trạng bất ổn định sẽ giảm thiểu rõ rệt.
7.1.1.2 Loadable Module Support
Đây là chức năng nòng cốt của nhân Linux (loadable module). Như đã đề cập ở phần
tổng quan (phần 1), các module có thể tải (loadable modules) là tiện dụng và linh động,
cho nên bạn gần như sẽ chọn Y trong trường hợp này. Trong trường hợp bạn cần dùng
module được viết thêm bên ngoài nhân chính thức (3rd party modules), bạn phải chọn
"enable set phiên bản information on all modules symbols" trong mục này. Nếu bạn cần
biên dịch trọn bộ các drivers thẳng vào nhân và không dùng modules (vì lý do bảo mật
chẳng hạn), bạn có thể chọn N ở đây. Bạn cũng phải chọn "Y" cho trọn bộ các drivers
trong cấu hình biên dịch nhân để thích hợp với chọn lựa "N" cho phần Loadable Module
Support này.
7.1.1.3 Processor Type and Features
Phần này có lẽ là phần tối quan trọng trong cấu hình biên dịch nhân Linux. Đây là nơi
để chọn đúng CPU đang dùng trên máy. Ngoài ra còn rất nhiều chọn lựa khác nhau cho
vấn đền system scheduling, SMP (symetrical multi-processing) nếu máy có nhiều CPU,
hỗ trợ bộ nhớ lớn,.... Nếu bạn chọn CPU là i386 thì có lẽ sẽ không có sự cố vì i386 là
architecture chung nhất (cả Intel và AMD CPU đều chạy với chọn lựa i386). Tuy nhiên,
chọn lựa này sẽ không đạt hiệu năng tối đa và thích hợp cho từng loại CPU cụ thể. Nên
chọn đúng CPU để bảo đảm hiệu năng của máy và nhất là để tránh trường hợp không thể
khởi động vào Linux sau khi cài nhân mới (vì loại CPU chỉnh định cho nhân không đúng
với CPU có trên máy hay nói một cách kỹ thuật, instructions giữa nhân và máy không
đồng bộ).
7.1.1.4 General Setup
Mục này cho phép chọn lựa các ứng dụng hỗ trợ cho những thiết bị (cards) trên máy
như ISA, PCI, PCMCIA và các chức năng thuộc về vấn đề quản trị năng lượng cao cấp
(Advanced Power Management).
7.1.1.5 Memory Technology Devices
Phần này cho phép lựa chọn những ứng dụng thiết bị liên quan đến bộ nhớ. Nếu bạn dùng
các thiết bị như máy ảnh số hay các loại compact flash thì bạn nên chỉnh lý phần này
cho thích hợp.
– 16 –
7.1.1.6 Block Devices
Đây là một phần rất quan trọng trong cấu hình biên dịch nhân Linux. Nó bao gồm các
chọn lựa cho những thiết bị thông thường và cần thiết như đĩa cứng, đĩa mềm, băng lưu
trữ cũng như các thiết bị điều tác (controllers) cho các cổng song song6 và RAID. Hầu
như các chọn lựa trong mục này đều cần thiết; đặc biệt là chức năng hỗ trợ initrd cần
thiết để tải sẵn các drivers cần thiết ở dạng module trong quá trình khởi động máy.
7.1.1.7 Multi-Device support (RAID and LVM)
Phần này chuyên chú đến các chức năng cần thiết cho hệ thống ở cấp độ máy chủ. Các
chọn lựa ở đây hỗ trợ những thiết bị như RAID và LVM. Nếu máy của bạn hiện đang
dùng RAID và LVM thì không thể bỏ qua phần này trong quá trình xác lập cấu hình biên
dịch nhân Linux. Chọn lựa trong phần này đòi hỏi phải hiểu rõ nhu cầu dùng những công
nghệ thuộc dạng này trên máy. Nếu máy không dùng đến những công nghệ này, bạn có
thể an toàn tắt bỏ chúng (dùng N). Nên nhớ, nếu tắt bỏ RAID trong phần này thì phải tắt
bỏ chọn lựa RAID trong phần "block devices" ở trên để tránh gặp phải lỗi biên dịch sau
này.
7.1.1.8 ATA/IDE/MFM/RLL support
Phần này bao gồm các chọn lựa và hỗ trợ cho IDE và ATAPI dùng trên các thiết bị tương
thich với PC7 (và trên nhiều architecture khác hiện có trên thị trường). Hầu hết các hệ
thống cần các chức năng hỗ trợ trong phần này.
7.1.1.9 Cryptography Support (CryptoAPI)
Đây là một phần khá mới và lý thú trong mã nguồn của nhân Linux 2.4.x (chỉ được giới
thiệu và công bố trong các phiên bản sau này của 2.4.x). Phần này có những lựa chọn
thuộc về vấn đề "mã hoá" cho filesystem. Bạn có thể biên dịch các chọn lựa trong mục
này và xử dụng (hay không) trên máy tùy ý.
7.1.1.10 Networking Options
Đây là một phần rất quan trọng trong cấu hình biên dịch nhân Linux nếu bạn muốn
máy của mình kết nối với mạng. Nó bao gồm các chọn lựa cho cả hai chuẩn IPv4 và
IPv6. Đây cũng là một phần hết sức phức tạp, cho nên, để có thể hiểu rõ và chọn lựa
đúng cho hiệu năng tối đa của máy về mặt networking, bạn nên tham khảo các tài liệu
về mạng Linux, ít nhất là nên đọc các tài liệu kèm theo trong mã nguồn nhân Linux ở
/Documentation/networking/ (thường là /usr/src/linux-2.x.xx/Documentation/networking/).
parallel ports6
pc-compatible7
– 17 –
7.1.1.11 SCSI Support
Phần chọn lựa cho SCSI ít được những người dùng bình thường quan tâm đến vì không
mấy ai dùng SCSI cho máy con. Tuy nhiên nếu bạn dùng SCSI card (hay SCSI built-in
trên bo mạch chủ (motherboard)) hay dùng CDR/W qua IDE nhưng chạy ở dạng mô
phỏng SCSI thì phải điều chỉnh các chọn lựa trong mục này. Điều quan trọng cần nhớ,
nếu không dùng tiện dụng initrd, khi chọn lựa SCSI cho một filesystem chạy trên đĩa
SCSI bạn phải biên dịch trực tiếp các tùy chọn cho SCSI vào nhân thay vì dùng dưới
dạng module. Nếu không, nhân sẽ treo trong giai đoạn khởi động vì module hỗ trợ SCSI
chưa được tải lên trong giai đoạn này.
7.1.1.12 Character Devices
Trong mục này có khá nhiều lựa chọn tập trung vào các thiết bị như nối tiếp8 và song
song9, thiết bị chuột10, joysticks (để chơi games). Tắt hay mở các lựa chọn trong mục
này thường ít tạo ảnh hưởng nghiêm trọng.
7.1.1.13 File Systems
Mục này chứa trọn bộ các chọn lựa liên quan đến hệ thồng file (file system) và các loại
file system được hỗ trợ trên Linux (bao gồm FAT, FAT32, NTFS, ISO cho CD-ROM....).
Các file system phụ trợ như NTFS, FAT... có thể được biên dịch như một module cho
nhân. Không nên biên dịch các modules cho file system dùng để "mount" trong giai đoạn
khởi động như ext3, jbd mà nên biên dịch thẳng vào nhân (Lý do tương tự như đã đề cập
trong phần "SCSI Support" ở trên). Cách này sẽ làm kích thước nhân lớn hơn nhưng sẽ
an toàn và đơn giản hơn. Chức năng hỗ trợ initrd có thể dùng để tải các modules cần
thiết trong quá trình khởi động nhân Linux nhưng phải nhớ bật chức năng này lên trong
phần thiết bị dạng block11. Đây là vấn đề tùy chọn của từng cá nhân.
7.1.2 Thành phần cấu hình nh...
 
Top