intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Biên dịch nhân Linux part 2

Chia sẻ: Ashfjshd Askfaj | Ngày: | Loại File: PDF | Số trang:5

177
lượt xem
46
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'biên dịch nhân linux part 2', công nghệ thông tin, hệ điều hành phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Biên dịch nhân Linux part 2

  1. Lưu ý: đ i v i lo t nhân 2.6.x, b n có th dùng các bư c như trên. Tuy nhiên bư c "make dep" không c n thi t n a. Bài vi t này bao g m cho c phiên b n 2.4.x và 2.6.x nên có m t s chi ti t không c n thi t cho kernel 2.6.x. Tuy v y, nh ng chi ti t này s không nh hư ng đ n s thành công c a quy trình biên d ch nhân. 2 T i sao c n biên d ch l i nhân Linux? Đ i v i ngư i dùng đã quen v i nh ng h đi u hành "đóng" thì khái ni m biên d ch l i nhân là m t khái ni m h t s c l l m. Đi u này cũng d hi u vì kernel c a các h đi u hành "đóng" hi n nhiên là "đóng" và ngư i dùng bình thư ng không th có cơ h i ti p c n v i mã ngu n c a nhân đ có th biên d ch l i nhân n u mu n. Trong khi đó, mã ngu n c a nhân Linux hoàn toàn "m " và đây là đi u ki n r t thu n l i cho v n đ biên d ch l i nhân. Câu h i đư c đ t ra là t i sao l i c n ph i biên d ch l i nhân Linux ? Câu tr l i ng n: không c n n u như không c n và c n n u như c n :) Câu tr l i dài: có vô s lý do khi n cho ngư i dùng c n ph i biên d ch l i nhân Linux. Sau đây là m t s trư ng h p thư ng g p nh t: a. tái biên d ch kernel đ ch a l i c a nhân. N u các l i này thu c v lõi c a nhân thì ph i vá ngu n c a nhân và biên d ch l i nó đ s a ch a các l i đư c công b . b. biên d ch l i nhân đ nâng cao hi u năng c a nhân. Theo m c đ nh, các b n phân ph i Linux thư ng kèm m t phiên b n nhân đư c biên d ch v i h u h t nh ng thành ph n có s n đ có th đáp ng r ng rãi c u hình ph n c ng (có th hi n di n trên các máy). Đây là đi m l i t ng quát lúc kh i đi m. Tuy nhiên, sau khi đã cài thành công và n m ch c máy có nh ng thi t b gì (sound card, graphic card, network cards, SCSI card..... ) và bi t rõ c n nh ng thành ph n nào cho c u hình c a máy thì không có lý do gì ph i bao g m tr n b các th không c n thi t và không dùng. Đ i v i nhân 2.4.x, m c đ nâng cao hi u năng không rõ r t (ngo i tr dùng phương pháp test load đ đo). Tuy nhiên, t phiên b n 2.6.x tr đi, vi c biên d ch l i và đi u ch nh "driver" cho nhân t o hi u xu t rõ r t, nh t là trong vi c đi u ch nh "th i bi u" (scheduling) c a các công tác mà h th ng ph i đ m nhi m. c. biên d ch l i nhân đ lo i b nh ng "drivers" không đư c dùng và có th gây "hi u l m" cho nhân, t o ra trư ng h p máy có nh ng tri u ch ng ho t đ ng thi u n đ nh và hay gây l i. d. biên d ch l i nhân đ th nghi m m t ch c năng ho c m t module mình v a t o ra. Trư ng h p này không nhi u như các trư ng h p trên nhưng cũng n m trong các lý do ph bi n. –5–
  2. 3 C u trúc và quy ư c s hi u phiên b n c a nhân Linux Phiên b n c a nhân Linux có quy ư c r t đơn gi n và d nh . V n đ này c n n m rõ trư c khi ch n m t phiên b n nào đó c a nhân Linux đ vá và biên d ch. Phiên b n c a nhân Linux bao g m ba nhóm s tách ra b i các d u ch m. Ví d : 2.4.26 S th nh t: 2 là s hi u phiên b n chính S th nhì: 4 là ch đ nh cho tình tr ng phiên b n. N u s này là s ch n, nó ch đ nh cho phiên b n n đ nh (stable), có th dùng cho môi trư ng production. N u s này là s l , nó ch đ nh cho phiên b n không n đ nh, nó thư ng dùng trong môi trư ng đang phát tri n (development). Các kernel thu c d ng này thư ng có nhi u l i và không n đ nh. N u dùng các phiên b n này đ tìm l i và thông báo cho nhóm phát tri n nhân Linux thì đây là đi u r t t t. Không nên dùng phiên b n phát tri n cho môi trư ng production. S th ba: 26 là ch đ nh cho s hi u phát hành c a m t phiên b n nhân Linux. M t phiên b n n đ nh c a m t nhân Linux có th có nhi u s hi u phát hành khác nhau. Đây là các quy ư c chung cho d ng nhân Linux "vanilla" có nghĩa là ng d ng cho các phiên b n nhân t http://www.kernel.org, các phiên b n nhân đư c đi u ch nh b i m i b n phân ph i có nh ng đi m d bi t. Có nhi u b n Linux x d ng s hi u con 2 cho phiên b n nhân h đã đi u ch nh. Ví d RedHat có nh ng c p nh t ph cho các kernel như: 2.4.20-8 ch ng h n. Đi u c n n m đây là ch nên x d ng phiên b n n đ nh (stable) c a nhân Linux (s ch n gi a) cho môi trư ng production và dùng phiên b n th nghi m 3 c a nhân Linux (s l ) cho môi trư ng th nghi m và phát tri n. 4 Đòi h i t i thi u trong vi c biên d ch l i nhân Linux Trư c khi b t tay vào vi c biên d ch l i nhân Linux, đi u c n thi t là ph i có đ ch ch a trên đĩa. Ít nh t là ph i đ ch ch a cho mã ngu n (trư c và sau khi x nén), ch ch a đ cài kernel và các modules m i sau khi biên d ch. Đòi h i quan tr ng khác là ph i có m t b công c c n thi t và đúng phiên b n. Không th biên d ch đư c nhân n u không tho mãn yêu c u này. Phiên b n cho b công c v i m i phiên b n nhân khác nhau. Nên nh , nhóm phát tri n nhân yêu c u b n ph i có đúng phiên b n c a các công c đ đ m b o vi c biên d ch nhân thành công. 2 extra-version 3 development –6–
  3. 4.1 Đòi h i cho nhân Linux 2.4.x Công c Phiên b n t i thi u Cách xác đ nh phiên b n Gnu C 2.91.66 gcc --version Gnu make 3.77 make –version binutils 2.9.1.0.25 ld -v util-linux 2.10o fdformat --version modutils 2.4.2 insmod -V e2fsprogs 1.19 tune2fs reiserfsprogs 3.x.0b reiserfsck 2>&1| grep reiserfsprogs pcmcia-cs 3.1.21 cardmgr -V PPP 2.4.0 pppd --version isdn4k-utils 3.1pre1 isdnctrl 2>&1| grep version Tham kh o thêm chi ti t các công c này và đ a ch đ t i các công c cho đúng (ít nh t ph i cùng phiên b n đã cung c p trên ho c m i hơn) trong h sơ Documenta- tion/changes c a mã ngu n nhân mà b n đang d tính biên d ch. –7–
  4. 4.2 Đòi h i cho nhân Linux 2.6.x Công c Phiên b n t i thi u Cách xác đ nh phiên b n Gnu C 2.95.3 gcc --version Gnu make 3.78 make --version binutils 2.12 ld -v util-linux 2.10o fdformat --version module-init-tools 0.9.10 depmod -V e2fsprogs 1.29 tune2fs jfsutils 1.1.3 fsck.jfs -V reiserfsprogs 3.6.3 reiserfsck -V 2>&1| grep reiserfsprogs xfsprogs 2.1.0 xfs_db -V pcmcia-cs 3.1.21 cardmgr -V quota-tools 3.09 quota -V PPP 2.4.0 pppd --version isdn4k-utils 3.1pre1 isdnctrl 2>&1| grep version nfs-utils 1.0.5 showmount –version procps 3.1.13 ps --version oprofile 0.5.3 oprofiled --version Tham kh o thêm chi ti t các công c này và đ a ch đ t i các công c cho đúng (ít nh t ph i cùng phiên b n đã cung c p trên ho c m i hơn) trong h sơ Documenta- tion/changes c a mã ngu n nhân b n đang d tính biên d ch. N u phiên b n c a các công c trên máy cũ hơn các phiên b n đưa ra trên, b n c n ph i t i phiên b n m i (đã biên d ch) t website c a b n phân ph i nào b n đang dùng. B n cũng có th ch n cách t i mã ngu n c a t ng công c v biên d ch l i. Cách này m t th i gian hơn r t nhi u và ch thích h p cho nh ng ai đã quen thu c v i v n đ biên d ch mã ngu n trên Linux. L i đi m c a cách này là b n t o cho mình m t b công c r t "s ch" vì đã biên d ch theo ý, thích h p v i môi trư ng c a máy (và v a đ ). Đ i v i ph n c ng IA64, b n c n phiên b n GCC cho 64bit, nên tham kh o chi ti t http://gcc.gnu.org/install/specific.html (n u b n may m n có m t con IA64 đ th ) –8–
  5. 5 Xác đ nh c u hình (hardware) c a máy Ph n l n ngư i dùng bình thư ng ít khi quan tâm đ n c u hình c a máy ngo i tr có nhu c u c th . Ngay c nh ng ai dùng Linux đã lâu và không c n ph i biên d ch l i nhân, cũng ít khi quan tâm đ n c u hình ph n c ng c a máy. Dù có bi t nhi u hay ít v c u hình ph n c ng c a máy mình dùng, b n v n ph i thu th p thông tin chính xác c a c u hình trư c khi b t tay vào vi c đi u ch nh c u hình cho vi c biên d ch nhân. Gi đ nh m i ch nh lý đã n đ nh và làm vi c t t đ p (do trình cài đ t t dò tìm (detect) trong khi cài Linux hay do b n ph i đi u ch nh l i), b n c n biên d ch l i nhân Linux và c n thâu th p thông tin v c u hình c a máy, hai l nh sau cung c p các chi ti t ph n c ng có trên máy: # /sbin/lspci L nh này li t kê tr n b các "card" đang tr c ti p làm vi c trên máy, phiên b n ph n c ng và ki u 4 c a chúng. # cat /proc/cpuinfo đ xem chi ti t b x lý trung tâm (CPU) c a máy là lo i gì. N u b n Linux mà b n dùng không có /proc filesystem thì b n có th dùng l nh dmesg đ thu th p thông tin v ph n c ng trên máy c a mình. Ngoài ra, l nh lsmod cũng ít nhi u giúp b n xác đ nh các modules đang đư c dùng trên máy và tên c a các modules này. Nh ng thông tin thâu th p đư c đây h t s c quan tr ng trong giai đo n đi u ch nh c u hình cho vi c biên d ch nhân. Nó giúp b n xác đ nh các ch n l a đúng cho c u hình máy, tránh đi nh ng tr ng i có th r t m t th i gian sau này. 6 Các bư c chu n b 6.1 T o m t đĩa m m kh i đ ng cho nhân đang dùng Đây là m t bư c c n thi t đ phòng s c gì đó khi n b n không th kh i đ ng vào h th ng Linux sau khi cài nhân m i. Trư ng h p này hi m khi x y ra trong quá trình biên d ch nhân và cài nhân m i n u b n th c hi n và đi u ch nh đúng. Nh ng s c v i trình kh i đ ng 5 ít th y x y ra vì trình kh i đ ng đã đư c thi t l p hoàn ch nh trư c khi c p nh t nhân. Ph n l n giai đo n đi u ch nh l i c u hình c a LILO ho c GRUB không chính xác t o tr ng i. V n đ này s đư c đ c p sau. Trư c m t chúng ta c n t o m t đĩa m m kh i đ ng. 4 model 5 bootloader, LILO ho c GRUB –9–
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2