Ý nghĩ về việc biên dịch kernel của riêng mình khiến những người dùng Linux mới cảm thấy sợ hãi. Việc xây dựng phần quan trọng nhất trong hệ thống từ đầu nghe có vẻ đáng sợ. Tuy nhiên, sự thật là việc xây dựng Linux kernel trong Ubuntu thực sự dễ dàng.
- Cách kích hoạt chế độ tự động cập nhật hệ thống trên Ubuntu
- Hiển thị địa chỉ IP trên khay hệ thống trên Ubuntu
- Mới sử dụng Linux nên dùng distro nào?
Xây dựng 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 trên thế giới đã viết tất cả code. Bạn chỉ cần chọn các tính năng mà mình muốn và kết hợp tất cả lại với nhau. Trong bài viết hôm nay, Quantrimang.com sẽ hướng dẫn bạn cách xây dựng và cài đặt một kernel tùy chỉnh trên Ubuntu.
Tải các dependency
Trước khi động tới kernel, bạn cần có công cụ phù hợp để xây dựng nó. Sử dụng lệnh bên dưới để tải chúng xuống từ các kho lưu trữ của Ubuntu.
sudo apt install wget build-essential bison flex libncurses-dev libssl-dev libelf-dev
Lấy nguồn kernel cho Ubuntu
Bây giờ, 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 từ các kho lưu trữ chính thức của Linux. Bạn có thể xem qua các bản phát hành mới nhất trong kho cdn của chúng. Tại thời điểm của bài viết này, phiên bản mới nhất là 5.16. Bạn có thể tải xuống bằng các lệnh:
cd /home/$USER/
mkdir kernelbuild
cd kernelbuild
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.16.19.tar.xz
Sẽ mất một lúc để tải xuống kernel, vì vậy hãy kiên nhẫn.
Thiết lập cho bản build
Bắt đầu thiết lập bằng cách giải nén file tar kernel. Sau đó, sao chép cấu hình của kernel hiện có vào đó.
tar xavf linux-5.16.19.tar.xz && cd ./linux-5.16.19
cp /boot/config-`uname -r` .config
Bây giờ, bạn phải điều chỉnh cấu hình cũ sang kernel mới.
make oldconfig
Script này sẽ hỏi bạn phải làm gì với mọi tính năng mới. Nếu bạn muốn sử dụng các giá trị mặc định, hãy sử dụng make olddefconfig
để thay thế.
Cấu hình Ubuntu kernel
Bạn có thể để nguyên cấu hình của mình. Tuy nhiên, chẳng ích gì khi xây dựng một kernel tùy chỉnh nếu bạn không tùy chỉnh nó.
Để tùy chỉnh cấu hình của bạn, hãy chạy
make menuconfig
Một menu màu xanh lam sẽ mở ra với list các danh mục. Các danh mục đó chứa những tính năng mà bạn có thể chọn để xây dựng trong kernel.
Ví dụ, nếu bạn thực sự muốn xây dựng hỗ trợ cho hệ thống file BTRFS trực tiếp vào kernel và kích hoạt các tính năng khác, bạn phải chuyển đến File systems. Sau đó, cuộn xuống phần “Btrfs filesystem support”. Chọn tùy chọn bạn muốn và nhấn dấu cách. Dấu cách xoay vòng giữa “M”, “*” và trống.
- “M” biểu thị rằng tính năng sẽ được xây dựng dưới dạng một mô-đun, sẽ được load nếu cần khi Ubuntu khởi động.
- “*” có nghĩa là tính năng này sẽ được tích hợp trong kernel và luôn được load.
Script không bao gồm các tùy chọn trống trong sản phẩm cuối cùng. Khi bạn thiết lập xong mọi thứ, hãy dọn dẹp thư mục.
make clean
Bây giờ, kernel của bạn đã sẵn sàng để xây dựng.
Xây dựng gói kernel cho Ubuntu
Có một phương pháp để xây dựng kernel trong Ubuntu, nhưng nó buộc bạn phải sử dụng các script được viết cho những phiên bản cũ. Tuy nhiên, tốt hơn là chỉ nên sử dụng phương pháp Linux chung với GNU make.
make -j `getconf _NPROCESSORS_ONLN`
make deb-pkg LOCALVERSION=-custom
Tất cả những gì dòng này làm là biên dịch kernel thành các gói .deb bằng cách sử dụng số lượng lõi CPU trên hệ thống cộng với một. Nó cũng thêm "custom" vào cuối phiên bản gói để phân biệt kernel tùy chỉnh của bạn với những thứ khác.
Lưu ý: Có thể mất hàng giờ để biên dịch kernel. Hãy kiên nhẫn!
Cài đặt kernel
Bạn sẽ tìm thấy các gói kernel mới của mình trên một thư mục. Chúng sẽ có thể dễ dàng nhận dạng bằng số phiên bản. Bạn có thể sử dụng dpkg để cài đặt chúng.
cd ./../
sudo dpkg -i linux-firmware-image-5.16.19-custom_5.16.19-custom-1_amd64.deb
sudo dpkg -i linux-libc-dev_5.16.19-custom-1_amd64.deb
sudo dpkg -i linux-headers-5.16.19-custom_5.16.19-custom-1_amd64.deb
sudo dpkg -i linux-image-5.16.19-custom-dbg_5.16.19-custom-1_amd64.deb
sudo dpkg -i linux-image-5.16.19-custom_5.16.19-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. Ubuntu sẽ tự động khởi động vào kernel mới. Bạn có thể kiểm tra lại xem nó đã hoạt động chưa bằng cách chạy uname -r trong một terminal khi nó khởi động.
Cài đặt kernel nhị phân tùy chỉnh
Một cách khác để sử dụng Linux kernel tùy chỉnh trong Ubuntu là cài đặt phiên bản nhị phân được biên dịch trước của nó. Không giống như phiên bản dựa trên nguồn, đây là các bản sao của kernel đã được biên dịch cho hệ thống và kiến trúc mà bạn đang chạy.
Hơn nữa, các kernel nhị phân tùy chỉnh cũng có thể cung cấp cho bạn sự linh hoạt khi chuyển qua các phiên bản kernel cho cài đặt Ubuntu của bạn. Điều này có thể đặc biệt hữu ích nếu bạn đang chạy một máy có vấn đề về tương thích phần cứng và bạn không muốn xử lý việc biên dịch kernel của riêng mình.
Cách phổ biến nhất để cài đặt các kernel nhị phân tùy chỉnh là thông qua Mainline. Đây là một chương trình GUI được phát triển bởi bkw777 nhằm mục đích hợp lý hóa quá trình cài đặt Linux kernel.
Trong đó, chương trình này kết hợp tất cả các bước mà bạn cần thực hiện để tải xuống và cấu hình kernel đúng cách. Ví dụ, Mainline cho phép bạn dễ dàng chọn file nhị phân kernel và header mà bạn muốn cài đặt. Sau đó, nó sẽ giữ phiên bản này trong bộ nhớ cache để bạn có thể dễ dàng load bất cứ khi nào cần.
Cài đặt Mainline trong Ubuntu
Cùng với đó, việc cài đặt Mainline tương đối dễ dàng. Trước tiên, bạn cần yêu cầu apt đưa vào kho lưu trữ gói của Mainline. Để làm điều đó, bạn có thể chạy lệnh sau từ Terminal:
sudo add-apt-repository ppa:cappelikan/ppa
Từ đây, bạn cần cập nhật thư mục gói của Ubuntu. Điều này sẽ cho phép apt đọc từ kho lưu trữ mà bạn vừa thêm vào và cho phép bạn tải xuống Mainline thông qua nó:
sudo apt update
Sau đó, điều duy nhất cần làm là cài đặt Mainline:
sudo apt install mainline
Sử dụng Mainline
Sau khi hoàn tất, bây giờ bạn có thể tải Mainline bằng cách vào Application Menu và tìm kiếm nó. Sau đó, chương trình Mainline sẽ load và hiển thị tất cả các gói kernel mà bạn có thể cài đặt cho hệ thống của mình.
Từ đó, bạn có thể chọn và cài đặt phiên bản kernel mà bạn muốn sử dụng cho hệ thống của mình. Ví dụ, bạn có thể chọn “Linux 5.16.19” và nhấp vào Install trên thanh bên phải để load đầy đủ phiên bản kernel này vào máy.
Mặt khác, bạn cũng có thể sử dụng Mainline để loại bỏ các kernel không muốn sử dụng nữa. Ví dụ, bạn có thể chọn “Linux 5.15” và nhấp vào Remove trên cùng một thanh bên bên phải để xóa kernel này khỏi hệ thống.
Làm theo cách này cho phép bạn thêm hoặc xóa sạch bất kỳ file và file nhị phân nào được liên kết với phiên bản kernel đó. Điều này là do một file nhị phân kernel cũng bao gồm các thư viện, header và firmware cho phép nó hoạt động bình thường.