Tài liệu này chứa các câu hỏi thường gặp về hạt nhân Android, còn gọi là hạt nhân Hình ảnh hạt nhân chung (GKI). Nếu bạn chưa quen với các thuật ngữ về hạt nhân GKI và GKI, hãy tham khảo phần Tổng quan về hạt nhân.
Có thể thay đổi danh sách biểu tượng Giao diện mô-đun hạt nhân (KMI) trong một hạt nhân ổn định không?
Bạn có thể thêm các thay đổi không ảnh hưởng đến KMI hiện có vào các hạt nhân bị đóng băng. Những thay đổi này bao gồm các hàm mới được xuất và mục nhập danh sách biểu tượng. Để biết thông tin chi tiết, hãy xem phần Quản lý danh sách ký hiệu.
Tôi có thể thay đổi cấu trúc mà các mô-đun của nhà cung cấp sử dụng trong một hạt nhân ổn định không?
Bạn không thể thay đổi các cấu trúc thuộc giao diện KMI trong các hạt nhân có KMI bị đóng băng. Trước khi KMI bị khoá, bạn có thể thay đổi các cấu trúc này.
Tôi có thể thay đổi nhân miễn là không làm hỏng khả năng tương thích của tệp nhị phân hoặc nguồn không?
Bạn có thể thực hiện các thay đổi không ảnh hưởng đến KMI như mô tả trong các bản vá dành riêng cho Android.
GKI xử lý cấu hình hạt nhân như thế nào?
Để biết thông tin về cấu hình hạt nhân, hãy tham khảo phần Thay đổi đối với gki_defconfig.
Làm cách nào để xử lý các bản sửa lỗi ngược dòng cho các bản ghi đè vào các mô-đun GKI hiện có?
Nếu bạn tạo một mô-đun nhà cung cấp dựa trên trình điều khiển trong Hạt nhân Android phổ biến (ACK), bạn có thể đảm bảo rằng các bản sửa lỗi từ nguồn cấp trên và ACK được truyền đến mô-đun của bạn. Nhìn chung, bạn nên sử dụng hạt nhân GKI và các mô-đun GKI mà không sửa đổi để Google cung cấp các bản cập nhật này một cách nhất quán.
Có kiểm thử cụ thể nào cho GKI không?
Có các bài kiểm thử Bộ kiểm thử nhà cung cấp (VTS) xác minh rằng bản dựng GKI được chứng nhận đã được cài đặt và cũng để thực thi các yêu cầu GKI theo bản phát hành. Ví dụ: có các kiểm thử VTS Android 12 cho tiêu đề khởi động v3 và để xác minh sự tồn tại của các phân vùng bắt buộc trong một thiết bị chạy hạt nhân 5.10.
Làm cách nào để tạo tệp mảnh defconfig của dự án cho các bản dựng thiết bị?
Ngoài gki_defconfig
, nhiều thiết bị tuân thủ GKI sử dụng một mảnh cấu hình để mô tả các tuỳ chọn cấu hình cần thiết nhằm tạo các mô-đun của nhà cung cấp.
Ví dụ về các phần trong cơ sở mã ACK bao gồm Cuttlefish và DB845c.
Không có cách nào để tránh việc kiểm tra một số tuỳ chọn cấu hình theo cách thủ công để tối ưu hoá mảnh, nhưng scripts/diffconfig
từ các nguồn hạt nhân sẽ hữu ích cho việc so sánh kết quả của gki_defconfig
và gki_defconfig+device.fragment
.
Có giải pháp nào để modprobe coi - và _ là tương đương không?
Trang man modprobe chứa nội dung mô tả sau: "modprobe
thêm hoặc xoá một mô-đun khỏi hạt nhân Linux một cách thông minh: xin lưu ý rằng để thuận tiện, không có sự khác biệt giữa _ và - trong tên mô-đun (tự động chuyển đổi dấu gạch dưới)." Nhóm GKI tuân thủ quy ước truyền tải chuẩn, vì vậy, các công cụ của nhà cung cấp hoặc quy ước đặt tên mô-đun phải tính đến việc tuân thủ quy ước này.
Làm cách nào để bật debugfs cho mục đích sử dụng nội bộ?
Để biết thông tin chi tiết về cách bật debugfs, hãy xem các tính năng gỡ lỗi xuống dòng xâm nhập.
Làm cách nào để giải quyết các ABI không khớp giữa hạt nhân GKI với một cấu hình mô-đun cụ thể được bật?
Các ABI không khớp giữa cấu hình mô-đun và hạt nhân GKI đại diện cho một phần phụ thuộc cấu hình mô-đun ngầm ẩn, trong đó việc bật một mô-đun sẽ khiến cấu hình nhị phân được tạo vào hình ảnh hạt nhân thu được. Hãy liên hệ với nhóm nhân kernel Android (kernel-team@android.com) để xác định hướng đi tiếp theo. Sau khi xác định danh sách biểu tượng, hãy tạo một lỗi trong Công cụ theo dõi lỗi và tải nội dung thay đổi lên danh sách biểu tượng.