Biên dịch bộ nhân – kernel trên nền tảng Debian Etch
Số trang: 11
Loại file: pdf
Dung lượng: 547.53 KB
Lượt xem: 13
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Biên dịch bộ nhân – kernel trên nền tảng Debian EtchMỗi 1 nguồn phân phối - distribution đều có công cụ riêng biệt để xây dựng, tạo nhân từ các nguồn tương ứng. Trong bài viết sau, chúng tôi sẽ giới thiệu với các bạn phương pháp này trên hệ thống Debian Etch, cụ thể là phương pháp biên dịch kernel tùy chỉnh sử dụng bộ nhân nguyên bản tại đây, và từ đó ứng dụng lên hệ thống. Đồng thời, bài viết cũng chỉ ra phương pháp áp dụng các bản vá đối với các phiên bản kernel khác...
Nội dung trích xuất từ tài liệu:
Biên dịch bộ nhân – kernel trên nền tảng Debian Etch Biên dịch bộ nhân – kernel trên nền tảng Debian EtchMỗi 1 nguồn phân phối - distribution đều có công cụ riêng biệt để xâydựng, tạo nhân từ các nguồn tương ứng.Trong bài viết sau, chúng tôi sẽ giới thiệu với các bạn phương pháp này trênhệ thống Debian Etch, cụ thể là phương pháp biên dịch kernel tùy chỉnh sửdụng bộ nhân nguyên bản tại đây, và từ đó ứng dụng lên hệ thống. Đồngthời, bài viết cũng chỉ ra phương pháp áp dụng các bản vá đối với các phiênbản kernel khác nhau.Lưu ý sơ bộChúng ta sẽ thực hiện 2 cách biên dịch phổ biến, cách đầu tiên các bạn sẽ cógói *.deb sau khi hoàn thành. Cách thứ 2 là cách “truyền thông”, và kết quảthu được sẽ sử dụng trên tất cả các sản phẩm của Linux, nhưng không phảilà gói *.deb như cách thứ nhất.Xây dựng gói kernel *.debCài đặt các gói yêu cầu để biên dịch kernel:Trước tiên, chúng ta cần cập nhật package database:apt-get updateVà cài đặt các gói cần thiết như sau:apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essentialTải bộ mã nguồn của kernel:Bước tiếp theo, chúng ta phải tải bộ kernel tương ứng về thư mục /usr/src.Truy cập http://www.kernel.org/ và chọn bộ kernel cần biên dịch, ví dụlinux-2.6.21.3.tar.bz2 (toàn bộ nguồn kernel 2.6 tại đây):cd /usr/srcwget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.3.tar.bz2Giải nén các gói vừa tải về và tạo liên kết động tới thư mục nguồn:tar xjf linux-2.6.21.3.tar.bz2ln -s linux-2.6.21.3 linuxcd /usr/src/linuxÁp dụng các bản vá vào nguồn kernel (theo lựa chọn)Đôi khi, các bạn sẽ cần hệ thống driver mới nhất dành cho phần cứng, nhưnglại không được hỗ trợ bởi kernel mặc định, hoặc tính năng hỗ trợ công nghệảo hóa nhưng lại chưa được tích hợp vào bộ kernel này. Trong những trườnghợp này, bạn cần áp dụng những bản vá thích hợp (thường có sẵn trên cácnguồn cung cấp).Giả sử chúng ta đã tải những bản patch cần thiết (trong bài viết này làpatch.bz2) về thư mục /usr/src. Tại thư mục /usr/src/, gõ lệnh sau:bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-runbzip2 -dc /usr/src/patch.bz2 | patch -p1Câu lệnh đầu tiên chỉ là kiểm tra, nếu kết quả trả về không báo lỗi nào thìtiếp tục thực thi câu lệnh thứ 2. Không nên tiếp tục chạy câu lệnh 2 nếu câulệnh 1 có lỗi.Bên cạnh đó, chúng ta cũng có thể áp dụng phương pháp prepatche vào bộnguồn của kernel. Ví dụ, nếu bạn cần các tính năng chỉ có trong phiên bảnkernel 2.6.22-rc3, nhưng bộ nguồn đầy đủ vẫn chưa được công bố. Thay vàođó, bản patch-2.6.22-rc3.bz2 đã có sẵn, và bạn có thể áp dụng bản vá đó vàobản kernel 2.6.21, nhưng không phải bộ kernel bản 2.6.21.1 hoặc 2.6.21.2…Các bạn có thể tham khảo thêm tại đây.Phương pháp prepatch tương đương với phiên bản alpha dành cho Linux,chúng tồn tại trong các thư mục kiểm tra để lưu trữ.Do đó, nếu muốn biên dịch bộ kernel 2.6.22-rc3, bạn phải tải mã nguồn củakernel 2.6.21. Sử dụng câu lệnh sau để áp ụng bản vá 2.6.22-rc3 vào kernel2.6.21:cd /usr/srcwget http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.22-rc3.bz2cd /usr/src/linuxbzip2 -dc /usr/src/patch-2.6.22-rc3.bz2 | patch -p1 --dry-runbzip2 -dc /usr/src/patch-2.6.22-rc3.bz2 | patch -p1Thiết lập, tùy chỉnh kernelĐể làm việc này, copy file thiết lập sẵn có tới /usr/src/linux:make clean && make mrpropercp /boot/config-`uname -r` ./.configsau đó chạy lệnh sau:make menuconfigđể hiển thị bảng thiết lập. Chọn Load an Alternate Configuration File >.config:Sau đó tùy chọn các tính năng sẵn có và đi kèm trong menu, lựa chọn vàquyết định khi cảm thấy phù hợp với nhu cầu. Khi hoàn thành, chọn Exit vàYes khi được hỏi Do you wish to save your new kernel configuration?Xây dựng kernelĐể làm việc này, chúng ta sẽ sử dụng 2 câu lệnh sau:make-kpkg cleanfakeroot make-kpkg --initrd --append-to-version=-custom kernel_imagekernel_headersSau cú pháp --append-to-version= bạn có thể viết bất cứ chuỗi ký tự nào đểnhận diện bộ kernel này, nhưng phải bắt đầu bằng – và không có khoảngtrống trong chuỗi.Quá trình này sẽ diễn ra khá lâu, có thể lên đến hàng giờ tùy thuộc vàonhững yêu cầu thiết lập và tốc độ xử lý của hệ thống.Cài đặt bộ kernel mớiQuá trình xây dựng và biên dịch kết thúc, sẽ có 2 gói .deb trong thư mục/usr/src:cd /usr/srcls -lTrong cuộc kiểm tra này, chúng ta thu được 2 gói linux-image-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb (chứa file gốc nguyên bản)và linux-headers-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb(chứa file cần thiết để người sử dụng tự biên dịch sau này). Cài đặt các góinày như sau:dpkg -i linux-image-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.debdpkg -i linux-headers-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.debNếu muốn sử dụng trên hệ thống Debian Etch khác thì người dùng chỉ việccopy và lưu trữ trực tiếp, không cần phải biên dịch lại lần nữa.Đồng thời, file cấu hình GRUB bootloader /boot/grub/menu. ...
Nội dung trích xuất từ tài liệu:
Biên dịch bộ nhân – kernel trên nền tảng Debian Etch Biên dịch bộ nhân – kernel trên nền tảng Debian EtchMỗi 1 nguồn phân phối - distribution đều có công cụ riêng biệt để xâydựng, tạo nhân từ các nguồn tương ứng.Trong bài viết sau, chúng tôi sẽ giới thiệu với các bạn phương pháp này trênhệ thống Debian Etch, cụ thể là phương pháp biên dịch kernel tùy chỉnh sửdụng bộ nhân nguyên bản tại đây, và từ đó ứng dụng lên hệ thống. Đồngthời, bài viết cũng chỉ ra phương pháp áp dụng các bản vá đối với các phiênbản kernel khác nhau.Lưu ý sơ bộChúng ta sẽ thực hiện 2 cách biên dịch phổ biến, cách đầu tiên các bạn sẽ cógói *.deb sau khi hoàn thành. Cách thứ 2 là cách “truyền thông”, và kết quảthu được sẽ sử dụng trên tất cả các sản phẩm của Linux, nhưng không phảilà gói *.deb như cách thứ nhất.Xây dựng gói kernel *.debCài đặt các gói yêu cầu để biên dịch kernel:Trước tiên, chúng ta cần cập nhật package database:apt-get updateVà cài đặt các gói cần thiết như sau:apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essentialTải bộ mã nguồn của kernel:Bước tiếp theo, chúng ta phải tải bộ kernel tương ứng về thư mục /usr/src.Truy cập http://www.kernel.org/ và chọn bộ kernel cần biên dịch, ví dụlinux-2.6.21.3.tar.bz2 (toàn bộ nguồn kernel 2.6 tại đây):cd /usr/srcwget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.3.tar.bz2Giải nén các gói vừa tải về và tạo liên kết động tới thư mục nguồn:tar xjf linux-2.6.21.3.tar.bz2ln -s linux-2.6.21.3 linuxcd /usr/src/linuxÁp dụng các bản vá vào nguồn kernel (theo lựa chọn)Đôi khi, các bạn sẽ cần hệ thống driver mới nhất dành cho phần cứng, nhưnglại không được hỗ trợ bởi kernel mặc định, hoặc tính năng hỗ trợ công nghệảo hóa nhưng lại chưa được tích hợp vào bộ kernel này. Trong những trườnghợp này, bạn cần áp dụng những bản vá thích hợp (thường có sẵn trên cácnguồn cung cấp).Giả sử chúng ta đã tải những bản patch cần thiết (trong bài viết này làpatch.bz2) về thư mục /usr/src. Tại thư mục /usr/src/, gõ lệnh sau:bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-runbzip2 -dc /usr/src/patch.bz2 | patch -p1Câu lệnh đầu tiên chỉ là kiểm tra, nếu kết quả trả về không báo lỗi nào thìtiếp tục thực thi câu lệnh thứ 2. Không nên tiếp tục chạy câu lệnh 2 nếu câulệnh 1 có lỗi.Bên cạnh đó, chúng ta cũng có thể áp dụng phương pháp prepatche vào bộnguồn của kernel. Ví dụ, nếu bạn cần các tính năng chỉ có trong phiên bảnkernel 2.6.22-rc3, nhưng bộ nguồn đầy đủ vẫn chưa được công bố. Thay vàođó, bản patch-2.6.22-rc3.bz2 đã có sẵn, và bạn có thể áp dụng bản vá đó vàobản kernel 2.6.21, nhưng không phải bộ kernel bản 2.6.21.1 hoặc 2.6.21.2…Các bạn có thể tham khảo thêm tại đây.Phương pháp prepatch tương đương với phiên bản alpha dành cho Linux,chúng tồn tại trong các thư mục kiểm tra để lưu trữ.Do đó, nếu muốn biên dịch bộ kernel 2.6.22-rc3, bạn phải tải mã nguồn củakernel 2.6.21. Sử dụng câu lệnh sau để áp ụng bản vá 2.6.22-rc3 vào kernel2.6.21:cd /usr/srcwget http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.22-rc3.bz2cd /usr/src/linuxbzip2 -dc /usr/src/patch-2.6.22-rc3.bz2 | patch -p1 --dry-runbzip2 -dc /usr/src/patch-2.6.22-rc3.bz2 | patch -p1Thiết lập, tùy chỉnh kernelĐể làm việc này, copy file thiết lập sẵn có tới /usr/src/linux:make clean && make mrpropercp /boot/config-`uname -r` ./.configsau đó chạy lệnh sau:make menuconfigđể hiển thị bảng thiết lập. Chọn Load an Alternate Configuration File >.config:Sau đó tùy chọn các tính năng sẵn có và đi kèm trong menu, lựa chọn vàquyết định khi cảm thấy phù hợp với nhu cầu. Khi hoàn thành, chọn Exit vàYes khi được hỏi Do you wish to save your new kernel configuration?Xây dựng kernelĐể làm việc này, chúng ta sẽ sử dụng 2 câu lệnh sau:make-kpkg cleanfakeroot make-kpkg --initrd --append-to-version=-custom kernel_imagekernel_headersSau cú pháp --append-to-version= bạn có thể viết bất cứ chuỗi ký tự nào đểnhận diện bộ kernel này, nhưng phải bắt đầu bằng – và không có khoảngtrống trong chuỗi.Quá trình này sẽ diễn ra khá lâu, có thể lên đến hàng giờ tùy thuộc vàonhững yêu cầu thiết lập và tốc độ xử lý của hệ thống.Cài đặt bộ kernel mớiQuá trình xây dựng và biên dịch kết thúc, sẽ có 2 gói .deb trong thư mục/usr/src:cd /usr/srcls -lTrong cuộc kiểm tra này, chúng ta thu được 2 gói linux-image-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb (chứa file gốc nguyên bản)và linux-headers-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb(chứa file cần thiết để người sử dụng tự biên dịch sau này). Cài đặt các góinày như sau:dpkg -i linux-image-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.debdpkg -i linux-headers-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.debNếu muốn sử dụng trên hệ thống Debian Etch khác thì người dùng chỉ việccopy và lưu trữ trực tiếp, không cần phải biên dịch lại lần nữa.Đồng thời, file cấu hình GRUB bootloader /boot/grub/menu. ...
Tìm kiếm theo từ khóa liên quan:
thủ thuật máy tính công nghệ thông tin tin học hệ điều hành quản trị mạng computer networkTài liệu liên quan:
-
Giáo trình Lý thuyết hệ điều hành: Phần 1 - Nguyễn Kim Tuấn
110 trang 457 0 0 -
52 trang 433 1 0
-
24 trang 359 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 320 0 0 -
Làm việc với Read Only Domain Controllers
20 trang 310 0 0 -
74 trang 303 0 0
-
96 trang 298 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 291 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 286 0 0 -
173 trang 278 2 0