| Welcome to Huynh's Collections. We hope you enjoy your visit. You're currently viewing our forum as a guest. This means you are limited to certain areas of the board and there are some features you can't use. If you join our community, you'll be able to access member-only sections, and use many member-only features such as customizing your profile, sending personal messages, and voting in polls. Registration is simple, fast, and completely free. Join our community! If you're already a member please log in to your account to access all of our features: |
| Cách biên dịch nhân (kernel) | |
|---|---|
| Tweet Topic Started: May 27 2006, 11:16 PM (554 Views) | |
| Huynhnb8x | May 27 2006, 11:16 PM Post #1 |
|
Th1nk
![]() ![]() ![]() ![]() ![]()
|
1. Lấy kernel về: Kernel source có thể tải về từ http://www.kernel.org . Bản stable hiện tại là 2.4.21 và developer là 2.5.73. Nếu bạn không muốn test những chức năng mới của kernel th́ nên sử dụng 2.4.21 cho công việc hàng ngày. 2. Bung nén và chuẩn bị kernel: giả sử bạn vừa tải về linux-2.4.21.tar.bz2, sau khi chạy các ḍng lệnh dưới bạn sẽ sắn sàng cho việc compile kernel 2a. $mv linux-2.4.21.tar.bz2 /usr/src/ 2b. $cd /usr/src && tar -xvjf linux-2.4.21.tar.bz2 2c. $ln -s linux-2.4.21 linux Đến đây bạn đă sẵn sàng cho việc compile nhưng đôi lúc có lẽ bạn sẽ cần apply một patch nào đó th́ có thể chạy lệnh sau trong thư mục /usr/src/linux $patch -p1 --dry-run < /địa điểm/và tên/của patch Lưu ư: --dry-run sẽ 'giả đ̣' apply cái patch nhưng thực sự chưa làm ǵ hết. Bạn nên xài --dry-run trước khi apply để pḥng hờ cái patch không phải cho kernel bạn đang xài hoặc patch c̣n bị lỗi. Sau khi chạy --dry-run và không thấy báo lỗi ǵ th́ bạn có thể thật sự apply patch bằng lệnh $patch -p1 < /địa điểm/và tên/của patch 3. Compile kernel: sẽ được thực hiện với các lệnh sau đây: 3a. $make menuconfig (hoặc make config, hoặc make xconfig) sẽ hỏi bạn một loạt câu hỏi cho kernel phù hợp với máy của bạn. Nếu bạn biết chắc ḿnh sẽ xài một chức năng nào đó th́ nên trả lời Y c̣n không th́ trả lời N, trả lời M (module) nếu bạn lưỡng lự không biết cái phần cứng của ḿnh sẽ xài driver này hay driver khác, nhất là phần cho network card hay sound card. Nếu bạn không rơ câu hỏi này hỏi cái ǵ th́ gơ h sẽ có phần giải thích khá rơ ràng. Bạn có thể tải về một bản config mẫu mà ḿnh xài cho máy Pentium3, Tekram SCSI card, SB Live! sound card, bt848 Haupauge TV card, ext2/ext3/reiserfs/jfs/tmpfs/iso9660/vfat/ntfs và ipsec VPN compiled vô kernel, tulip, intel, realtek modules cho network cards, iptables và wireless modules. Nếu bạn không cần cái nào th́ chỉ việc comment out (bỏ cái dấu # ở phía trước) cái hàng đó. Chẳng hạn máy bạn là Petium4 th́ nên thay đổi với giá trị tương ứng. Sau đó chạy lệnh $make oldconfig thay v́ $make menuconfig như ở trên. 3b. $make dep sẽ chuẩn bị các dependencies cần thiết 3c. $make clean sẽ dọn dẹp .o files mà developers để quên và tạo các source tree. 3d. $make bzImage sẽ bắt đầu thật sự compile kernel. Nếu mọi chuyện suôn sẽ bạn sẽ có bzImage nằm trong thư mục /usr/src/linux/arch/i386/boot 3e. $make modules sẽ compile các modules bạn chọn trong lúc chạy $make menuconfig ở trên. 3f. $make modules_install sẽ cài các modules vào thư mục /lib/modules/2.4.21 3g. $cp /usr/src/linux/arch/i386/boot/bzImage /boot/mykernel-2.4.21 sẽ cp kernel image bạn mới compile vô thư mục /boot. Nếu bạn có SCSI card và compile SCSI card hoặc filesystem (ext3, reiserfs,..v..) mà máy sử dụng dưới dạng module th́ bạn phải tạo initial ramdisk với lệnh $mkinitrd -o /boot/initrd-2.4.21.img /lib/modules/2.4.21. C̣n nếu bạn đă compile SCSI card và filesytem vô luôn kernel th́ bái bai initrd. : 4. Chuẩn bị boot loader 4a. Nếu bạn dùng GRUB: tạo hẳn một section mới cho kernel của bạn bằng cách sửa menu.lst với lệnh $vi /boot/grub/menu.lst giả sử / của bạn nằm trên /dev/hda3 và /boot nằm trên /dev/hda1, thêm vào những hàng sau: title MyKernel-2.4.21 kernel (hd0,0)/boot/mykernel-2.4.21 root=/dev/hda3 initrd (hd0,0)/boot/initrd-2.4.21.img Nếu bạn không xài initrd th́ không cần hàng cuối ở trên. 4b. Nếu bạn dùng LILO: tạo hẵn một section cho kernel của bạn bằng cách sửa file lilo.conf với lệnh $vi /etc/lilo.conf thêm vào những hàng sau: image=/boot/mykernel-2.4.21 label=MyKernel-2.4.21 root=/dev/hda3 initrd=/boot/initrd-2.4.21.img read-only Nhớ chạy lệnh $lilo nếu không bạn sẽ không thấy kernel mới của ḿnh khi reboot. Bạn nên giữ lại /usr/src/linux/.config để mai này nếu bạn muốn compile 2.4.22 chẳng hạn th́ có thể xài lại nó bằng cách chạy $make oldconfig thay v́ $make menuconfig. Lưu ư: $make mrproper sẽ xóa đi /usr/src/linux/.config file và dọn dẹp sạch sẽ các .o files và symlinks (ln -s command). Bạn sẽ không thể dùng config file của kernel 2.4 cho kernel 2.5 được. |
| Knowledge crawling | |
![]() |
|
| « Previous Topic · Tài liệu sưu tầm · Next Topic » |
| Track Topic · E-mail Topic |
9:00 AM Jul 11
|
Theme by James... of the ZBTZ and themeszetaboards.com





![]](http://z5.ifrm.com/static/1/pip_r.png)



9:00 AM Jul 11