Nhiều người trong số các bạn dường như đã gặp sự cố khi cài đặt Kernel được biên dịch trước với bản vá 200 dòng trên máy của bạn, điều này được mong đợi, vì vậy tốt hơn là bạn nên có Hạt nhân được biên dịch trực tiếp trong máy của chúng tôi hơn là trong máy nước ngoài, để nó lấy chính xác kiến trúc của máy của chúng tôi và cấu hình chung của phần cứng.
Vì lý do này, ở đây tôi dạy cách biên dịch Kernel (2.6.36.2) của riêng họ trong Ubuntu (đã được thử nghiệm trong Ubuntu 10.10) với bản vá 200 dòng được bao gồm trong đó. Hãy nhớ rằng quá trình này nên được thực hiện với rủi ro của riêng bạn, nó yêu cầu một số lượng lớn các gói để tải xuống và thời gian biên dịch khá dài.
Để bắt đầu, điều đầu tiên chúng ta phải làm là cài đặt các phụ thuộc cần thiết cho quá trình biên dịch hạt nhân bằng cách thực hiện dòng sau trong terminal:
sudo apt-get install fakeroot build-Essential crash kexec-tools makedumpfile kernel-wedge kernel-package
Bây giờ, hãy thực hiện dòng sau trong terminal, dòng này cần thiết để biên dịch Kernel (từ Gan dạ)
sudo apt-get build-dep linux
Chúng tôi kết thúc bước đầu tiên này với việc cài đặt các gói khác cần thiết cho quá trình biên dịch
sudo apt-get cài đặt libncurses5 libncurses5-dev libelf-dev asciidoc binutils-dev
Để tiếp tục quá trình cài đặt hạt nhân, chúng ta phải tải xuống các nguồn của hạt nhân ổn định mới nhất (2.6.36.2) và bản vá của Mike galbraith và định vị chúng trong thư mục cá nhân của chúng tôi.
Hãy tạo một thư mục cho quá trình biên dịch hạt nhân, chúng ta vào đó và tải xuống các nguồn hạt nhân từ kernel.org:
mkdir kernel-2.6.36.2 cd kernel-2.6.36.2 wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.2.tar.gz
Bây giờ chúng tôi tạo một tệp văn bản mới và chúng tôi sẽ sao chép mã mà chúng tôi sẽ tìm thấy trong bài đăng của Mike Galbraith hoặc chúng tôi có thể tải xuống từ MediaFire, lưu và đóng tệp:
gedit ~ / autogroup.patch
Bài đăng chính thức của Mike Galbraith
Mike Galbraith Patch từ MediaFire
Bây giờ chúng ta sẽ giải nén Kernel mà chúng ta vừa tải xuống từ kernel.org:
tar xzvf linux-2.6.36.2.tar.gz cd linux-2.6.36.2 patch -p1 <~ / autogroup.patch
Tại thời điểm này, mọi thứ sẽ diễn ra tốt đẹp và không có lỗi, trong trường hợp có lỗi, cần phải khởi động lại quá trình.
Tiếp theo, chúng ta sẽ tải cấu hình hiện tại của Kernel, điều này để Kernel mới lấy cấu hình trực tiếp từ hệ thống của chúng ta và chúng ta không gặp bất kỳ vấn đề gì khi biên dịch nó. Mặc dù vậy, nếu bạn có đủ kiến thức, bạn có thể tùy chỉnh cấu hình Kernel để có được một hệ thống phù hợp hơn với nhu cầu của bạn.
Nếu bạn không biết mình đang làm gì, tốt hơn là không nên sửa đổi cấu hình hạt nhân theo cách thủ công.
Chúng tôi sao chép cấu hình bằng cách thực hiện lệnh sau trong thiết bị đầu cuối và sau đó chúng tôi thực thi
lsmod
để tất cả các mô-đun được tải trong hệ thống của chúng tôi được thực thi và chúng tôi đảm bảo rằng tất cả phần cứng của chúng tôi đều được công nhận.
cp -vi / boot / config-`uname -r` .config make localmodconfig
Tại thời điểm này, quá trình biên dịch sẽ hỏi bạn một số câu hỏi về các mô-đun, hãy tiếp tục chấp nhận tất cả các câu hỏi được đặt ra bằng cách nhấn đăng ký hạng mục thi cho đến khi quá trình thiết lập hoàn tất.
Chúng tôi tiếp tục biên dịch hạt nhân bằng cách thực hiện dòng sau trong thiết bị đầu cuối để mở menu cấu hình hạt nhân:
cp / boot / config - $ (uname -r) .config && yes "" | làm cho oldconfig làm cho menuconfig
Bây giờ chúng ta có thể chọn các bản vá mà chúng ta muốn kích hoạt trong Kernel của mình, vì chúng ta quan tâm đến bản vá 200 dòng.
Để làm điều này, chúng tôi điều hướng qua menu cấu hình hạt nhân xuất hiện, cho đến khi
General Setup
và chúng tôi tìm dòng có tên
Automatic process group scheduling
, chúng tôi bật tính năng này bằng cách nhấn phím cách trên bàn phím, chúng tôi tự định vị tùy chọn
Exit
sử dụng các phím mũi tên trên bàn phím và nhấn phím đăng ký hạng mục thi từ bàn phím của chúng tôi để thoát khỏi menu
General Setup
.
Bây giờ chúng ta điều hướng đến menu
Kernel hacking
và chúng tôi nhập bằng cách nhấn phím đăng ký hạng mục thi, chúng tôi tìm kiếm tùy chọn
Compile the kernel with debug info
và chúng tôi bỏ chọn nó bằng cách nhấn phím cách trên bàn phím, một lần nữa chúng tôi chuyển đến tùy chọn
Exit
và chúng tôi nhấn đăng ký hạng mục thi để thoát khỏi menu chính.
Chúng tôi đã hoàn thành cấu hình hạt nhân, vì vậy chúng tôi chỉ cần quay lại
Exit
trong menu chính và nhấn đăng ký hạng mục thi để kết thúc cấu hình hạt nhân. Chúng tôi chấp nhận khi nó hỏi chúng tôi nếu chúng tôi muốn lưu các thay đổi được thực hiện đối với cấu hình hạt nhân bằng cách nhấn Enter trên tùy chọn Yes.
Bây giờ, chúng ta sẽ biên dịch hạt nhân bằng cách thực hiện dòng sau trong terminal:
fakeroot make-kpkg --initrd --append-to-version = -20101209 kernel-image kernel-headers
Xin lưu ý rằng quá trình xây dựng có thể khác nhau tùy thuộc vào phần cứng của bạn
Thao tác này sẽ tạo ra hai gói .deb bên trong thư mục kernel-2.6.36.2, mà chúng tôi sẽ sử dụng để cài đặt Kernel mới trong Ubuntu của chúng tôi, cho phép chúng có thể được theo dõi bằng cách Synaptic và dễ dàng tháo lắp.
Chúng ta đến với phần cuối cùng của hướng dẫn này, nơi chúng ta sẽ cài đặt và kiểm tra hoạt động bình thường của Kernel mới mà chúng ta vừa cài đặt.
Để cài đặt hai gói .deb mà chúng ta vừa tạo, chúng ta phải thực hiện lệnh sau trong terminal:
cd .. sudo dpkg -i * .deb
Nếu mọi thứ suôn sẻ, chúng tôi khởi động lại máy của mình và trong danh sách Grub, chúng tôi chọn Kernel mới (2.6.36.2) và nhấn đăng ký hạng mục thi để khởi động hệ thống.
Khi chúng tôi quay lại màn hình, chúng tôi sẽ xác minh rằng bản vá 200 dòng được áp dụng chính xác và hoạt động bằng cách thực hiện dòng sau trong một thiết bị đầu cuối:
mèo /usr/src/linux-headers-2.6.36.2-20101219/.config | grep -i AUTOGROUP
Và nó phải trả về một dòng như thế này:
CONFIG_SCHED_AUTOGROUP = y
Nếu vậy, chúng tôi có hệ thống của mình đang chạy với nó. Hạt nhân 2.36.6.2 và "Lập lịch nhóm quy trình tự động" đã được kích hoạt.
Chúng tôi đã có thể nhấn mạnh Ubuntu ở mức tối đa ...
Sổ tay hướng dẫn này đến với bạn nhờ nỗ lực của FRANCOBEP.
Chào David
câu hỏi của tôi là:
Tôi thường sử dụng các hạt nhân của ubuntu ppa (https://launchpad.net/~kernel-ppa/+archive/ppa)
Chúng không còn đi kèm với bản vá 200 dòng?
cảm ơn
Thấy chưa, tôi vẫn đang kiểm tra xem hạt nhân PPA của Ubuntu có bản vá hay không, nhưng điều này rất dễ tự tìm hiểu, chỉ cần chạy lệnh
cat /usr/src/[versión del último kernel]/.config | grep -i AUTOGROUP
, nơi bạn sẽ thay đổi văn bản bên trong dấu ngoặc cho phiên bản của hạt nhân mới nhất trên máy của bạn.Nếu bạn nhận được một tin nhắn trả lời như thế này
CONFIG_SCHED_AUTOGROUP=y
, thì bạn đã cài đặt xong bản vá.Lưu ý: để biết phiên bản của tất cả các hạt nhân được cài đặt trên máy tính của bạn, bạn chỉ cần thực hiện lệnh
ls /usr/src/
Trong thiết bị đầu cuối.Horacio, Nhân PPA Ubuntu hiện có bản vá V4 của Mike glabraith theo lời của chính anh ấy Tim người làm vườn (Nhà phát triển Canonical).
Vâng, tôi đã biên dịch nó và nó đã được cài đặt,…. ít nhất hệ thống đã không chết bây giờ để hoạt động để xem nó hoạt động như thế nào
Hướng dẫn xuất sắc. Tôi đã làm theo các bước của lá thư và mọi thứ hoạt động hoàn hảo. Tôi có nhân mới của mình.
Lưu ý: Tôi chỉ thực hiện một thay đổi có vẻ hợp lý đối với tôi và nó ở đây:
cp -vi / boot / config-`uname -r` .config
tạo localmodconfig
Tôi đã làm nó như thế này:
cp -vi / boot / config-`uname -r` .config
lsmod
tạo localmodconfig
bây giờ tôi nhận ra mình đã mắc một lỗi nhỏ nên tôi sẽ cài đặt lại nó ... và thêm sửa đổi không thể sửa chữa
Tôi ở đầu:
init: tiến trình chính chưa đọc (362) đã kết thúc với trạng thái 5
Chà, nó có vẻ hoạt động tốt, nó có thể là gì ??? '
Hướng dẫn sử dụng rất tốt, họ cũng đã đăng nó trên taringa, tại thời điểm này nó đang biên dịch hạt nhân. Tôi hy vọng nó đã diễn ra tốt đẹp. Tôi chỉ thay đổi loại bộ xử lý trong menuconfig. Tôi hy vọng bạn đã chọn tốt bằng cách chọn Intel core / mới hơn xeon vì tôi có bộ vi xử lý intel core i3, xin chào và cảm ơn vì đã đóng góp ý kiến
Xin chào, tốt, lệnh có vẻ tốt hơn đối với tôi
cp / boot / config-`uname –kernel-release` ./.config
vì nó sử dụng cấu hình hạt nhân gần đây nhất được cài đặt
Xin chào, bạn có khỏe không? Tôi chỉ hơi nghi ngờ… trong tệp hạt nhân có cả phiên bản 32-bit và 64-bit? hay để có được phiên bản amd64, tôi có cần tải xuống một phiên bản khác không?… Suy ra, cả hai phiên bản phải giống nhau đúng không?… giải thích rất hay!
Cảm ơn bạn!