Thắc mắc về việc compile kernel trong ubuntu

Em có bài tập cái kernel, cụ thể là phiên bản 4.16.3. Nhưng em không hiểu phần “Visit http://kernel.org and download the source code of your current running kernel” vì theo em xem trên mạng, youtube thì muốn cài kernel nào thì chỉ cần download source code của kernel đó tức là chỉ cần thực hiện 2 dòng lệnh wget và tar bên dưới r tiến hành cài chứ đâu cần phải down source của kernel hiện hành làm gì ạ@@. Anh/chị có thể giải đáp cho em được không ạ?.

Bạn đang đọc sách nào vậy.
Mỗi Distro sẽ có những quá trình cập nhật kernel khác nhau, cùng thời điểm nhưng version giữa các distro sẽ khác nhau.
uname -r là lệnh định nghĩa trong posix, để lấy thông tin về kernel, kiến trúc của máy đang chạy.
Nếu viết driver thì phải xác định nó viết cho version nào của kernel, dù là viết dạng module hay tích hợp vào kernel.

2 Likes

Thường mỗi version của Linux distribution chỉ maintain giới hạn một series kernel được tested đầy đủ, và đảm bảo sẽ chạy ổn định với packages trong distribution đó.

Bạn có bao giờ lấy ntoskrnl.exe (kernel image) của Windows XP đắp vào Windows 10 không? Nó cũng tương tự như vậy thôi.

3 Likes

Mình không hiểu cái vấn đề của bạn ở đây là để cài hay compile cái kernel.
Nếu bạn chỉ cần cài, thì ubuntu có sẵn các PPA cho bạn cài, có thể bay thẳng theo mainline luôn (kernel mới nhất).
Còn bạn compile, rồi cài thì bạn phải download chung bản kernel bạn đang chạy, vì nó mới có sẵn các gói như headers (để giúp compile driver) và config (config kernel compile hoạt động bình thường giống như kernel bạn cài từ ubuntu). Nhưng cái việc này chỉ tốn thời gian và tốn điện thôi.
Nếu bạn chỉ compile, thì bạn lấy ver nào chả được? Compile như một chương trình C/hợp ngữ bình thường có makefile thôi.

2 Likes

Dám khẳng định chủ topic chưa có kiến thức nền, cụ thể là các cách cài đặt một phần mềm/ 1 driver trên hệ điều hành họ Linux nói chung.

Thường có các cách thông dụng:

  1. Cài từ file binary đã được compile sẵn thành .deb, .rpm hoặc .xyz gì đó tuỳ họ distro nào. Cách này là cách “mang tư tưởng từ Windows” sang, dân Linux ít thích cách này.
  2. Cài từ lệnh được cung cấp sẵn trên hệ điều hành như apt, yum: các lệnh này sẽ tải về các gói binary chính và các gói được yêu cầu kèm theo để có thể cài hoàn chỉnh. Cách này hiện nay dễ nhất.
  3. Cài từ source code: thì phải tải source về rồi compile ra binary bằng các lệnh configure, make, kết quả là có binary nằm trong thư mục chứ chưa đóng gói, muốn cài thì make install nó sẽ cài. Cách này khó, không dành cho người mới vọc Linux.
  4. Cài đặt bằng các công cụ hiện đại như snap, flatpak, appimage. Cách này có vẻ là cách tạo thêm ra nhiều vấn đề hơn là thực sự giải quyết vấn đề :smiley:

Như vậy, bài tập kia yêu cầu cụ thể là gì? Là cài đặt giống như (3) vừa đề cập hay gì khác. Túm lại: chưa rõ yêu cầu => không biết phải trả lời sao luôn.

Complile và install là hai việc khác nhau. Đề bài yêu cầu thế nào thì làm thế nấy, đừng có tự chế biến thêm mà lạc đề, ăn điểm kém.

Đề nghị chủ topic cho thêm thông tin, cái kernel hay cài kernel? (Em có bài tập cái kernel)

5 Likes

Em xin lỗi vì sự bất tiện ạ, cụ thể là cài đặt cái thứ 3. Nhưng em chưa gõ ý cô là có cần tìm đúng cái version của kernel hiện tại cài hay là cái version khác cũng được@@

Analogy: Bạn gái của bạn thân mình có nhờ mình đi mua giúp đôi giày, mà mình không biết size giày của bạn ấy. Theo bạn thì mình nên làm gì?

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?