Cách tạo Custom Kernel trên Ubuntu

Ý tưởng biên dịch kernel (nhân hệ điều hành) của riêng người dùng đã đánh đòn tâm lý cho những người mới sử dụng Linux. Việc xây dựng phần quan trọng nhất của hệ thống từ đầu nghe có vẻ đáng sợ. Tuy nhiên, thực tế việc xây dựng Linux kernel rất dễ.

Việc xây dựng các Linux kernel không yêu cầu lập trình. Một số lập trình viên giỏi nhất thế giới đã viết tất cả các code rồi. Bạn chỉ cần chọn những tính năng mà bạn muốn và ghép chúng lại với nhau.

Tải các Dependency

Trước khi dùng một kernel, bạn cần sử dụng các công cụ thích hợp để xây dựng nó. Sử dụng Apt để tải Dependency xuống từ các kho của Ubuntu.

sudo apt install install git build-essential kernel-package fakeroot libncurses5-dev libssl-dev ccache

Tải kernel source

Giờ thì bạn có thể lấy nguồn mà bạn muốn xây dựng. Tất cả các kernel đều có sẵn trên kho Linux chính thức. Bạn có thể xem các phiên bản ổn định mới nhất trong kho chứa git của chúng. Vào thời điểm này, phiên bản mới nhất là 4.11. Phiên bản này được liệt kê dưới dạng linux-4.11.y và nó sẽ được sao chép với lệnh dưới đây.

cd ~
mkdir kernelbuild
cd kernelbuild
git clone -b linux-4.11.y git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

Nhân bản Linux kernel Source từ Git

Sẽ mất một lúc để nhân bản kernel nên hãy kiên nhẫn nhé.

Thiết lập để xây dựng kernel

Bắt đầu thiết lập bằng cách thay đổi thư mục vào một thư mục nhân bản mới. Sau đó, coppy cấu hình kernel hiện tại vào đó.

cd linux-stable
cp /boot/config-'uname -r' .config

Bây giờ bạn cần điều chỉnh cấu hình cũ cho kernel mới.

yes '' | make oldconfig

Thông thường, tập lệnh sẽ hỏi bạn muốn làm gì với các tính năng mới thì hãy chấp nhận các mặc định nhé. Nếu bạn muốn được hỏi, chỉ cần sử dụng make oldconfig.

Cấu hình kernel

Bạn có thể để cấu hình mặc định. Tuy nhiên, nếu bạn không tùy chỉnh, sẽ không có điểm nào trong việc xây dựng custom kernel.

Để tùy chỉnh cấu hình, mở make menuconfig.

Menu cấu hình Linux kernel

Một menu màu xanh sẽ mở ra với một danh sách các đề mục. Những đề mục này chứa các tính năng mà bạn có thể chọn để xây dựng thành kernel riêng.

Cấu hình hệ thống tập tin của Linux kernel

Ví dụ, nếu bạn thực sự muốn xây dựng hỗ trợ trực tiếp cho hệ thống file BTRFS vào kernel và kích hoạt các tính năng khác, bạn có thể vào "File systems ->". Sau đó cuộn xuống tới khi thấy "Btrfs filesystem support". Chọn tùy chọn mà bạn muốn và nhấn phím Space. Thanh Space tuần hoàn giữa "M", "*" và tập rỗng. "M" biểu thị tính năng được xây dựng như một mô-đun sẽ được tải khi Ubuntu khởi động nếu cần thiết. "*" nghĩa là tính năng này sẽ được xây dựng thành kernel và luôn luôn được tải. Tập chọn không bao gồm các tùy chọn trống trong thành phẩm cuối cùng.

Khi đã hoàn thành thiết lập, hãy dọn dẹp thư mục

make clean

Giờ thì kernel của bạn đã sẵn sàng để dựng

Dựng các gói kernel

Ubuntu sử dụng một phương pháp để xây dựng các kernel của nó, tuy nhiên nó buộc người dùng phải sử dụng các tập chọn được viết cho các phiên bản cũ hơn. Vì vậy, tốt hơn hết là sử dụng các phương pháp Linux chung với GNU make.

make -j 'getconf _NPROCESSORS_ONLN' deb-pkg LOCALVERSION=-custom

Dòng in đậm bên trên là để biên dịch kernel thành các gói into .deb bằng cách sử dụng lượng lớn các lõi CPU trên hệ thống. Nó cũng thêm "custom" vào cuối phiên bản package để phân việt custom kernel của bạn với những cái khác.

Lưu ý: Sẽ mất hàng giờ để biên dịch một kernel. Vì thế hãy kiên nhẫn nhé.

Cài đặt kernel

Bạn sẽ tìm thấy các gói kernel trên một thư mục. Chúng rất dễ dàng nhận biết bằng số phiên bản. Bạn có thể sử dụng dpkg để cài đặt.

cd ..
sudo dpkg -i linux-firmware-image-4.11.1-custom_4.11.1-custom-1_amd64.deb
sudo dpkg -i linux-libc-dev_4.11.1-custom-1_amd64.deb
sudo dpkg -i linux-headers-4.11.1-custom_4.11.1-custom-1_amd64.deb
sudo dpkg -i linux-image-4.11.1-custom-dbg_4.11.1-custom-1_amd64.deb
sudo dpkg -i linux-image-4.11.1-custom_4.11.1-custom-1_amd64.deb

Khi quá trình cài đặt kết thúc, hãy khởi động lại máy tính của bạn. Ubuntu sẽ tự khởi động vào kernel mới của bạn. Bạn có thể kiểm tra lại xem nó đã hoạt động chưa bằng cách chạy trong một thiết bị đầu cuối khi nó khởi động. Nếu bạn đã thấy phiên bản của mình thì xin chúc mừng. Bạn đang chạy custom kernel của riêng mình rồi đấy.

Chúc các bạn thành công!

Thứ Sáu, 02/06/2017 16:36
52 👨 3.089
0 Bình luận
Sắp xếp theo