Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Lớp phủ cây thiết bị

Cây thiết bị (DT) là cấu trúc dữ liệu của các nút và thuộc tính được đặt tên mô tả phần cứng không thể khám phá. Các hệ điều hành, chẳng hạn như nhân Linux được sử dụng trong Android, sử dụng DT để hỗ trợ một loạt các cấu hình phần cứng được sử dụng bởi các thiết bị hỗ trợ Android. Các nhà cung cấp phần cứng cung cấp tệp nguồn DT của riêng họ, sau đó Linux sẽ biên dịch thành tệp Device Tree Blob (DTB) được sử dụng bởi bootloader.

Một lớp phủ cây thiết bị (DTO) cho phép một trung tâm cây thiết bị blob (DTB) được che phủ trên cây thiết bị. Bộ nạp khởi động sử dụng DTO có thể duy trì DT hệ thống trên chip (SoC) và tự động phủ lên DT dành riêng cho thiết bị, thêm các nút vào cây và thực hiện các thay đổi đối với các thuộc tính trong cây hiện có.

Trang này trình bày chi tiết quy trình làm việc của bộ nạp khởi động điển hình để tải DT và cung cấp danh sách các thuật ngữ DT phổ biến. Các trang khác trong phần này mô tả làm thế nào để thực hiện bootloader hỗ trợ cho DTO , làm thế nào để biên dịch , xác minh, và tối ưu hóa thực hiện DTO của bạn , và làm thế nào để sử dụng nhiều DTS . Bạn cũng có thể nhận được thông tin chi tiết về cú pháp DTO và yêu cầu phân vùng DTO / DTBO định dạng .

Cập nhật trong bản phát hành Android 9

Trong Android 9, bộ nạp khởi động không được sửa đổi các thuộc tính được xác định trong lớp phủ cây thiết bị trước khi chuyển khối cây thiết bị hợp nhất vào hạt nhân.

Đang tải cây thiết bị

Việc tải cây thiết bị trong bộ nạp khởi động bao gồm việc xây dựng, phân vùng và chạy.

Hình 1. thực hiện tiêu biểu cho cây bốc thiết bị trong bootloader.
  1. Để xây dựng:
    • Sử dụng trình biên dịch cây thiết bị ( dtc ) để biên dịch mã nguồn cây thiết bị ( .dts ) vào một blob cây thiết bị ( .dtb ), được định dạng như một cây thiết bị dẹt.
    • Flash .dtb tập tin vào một vị trí bootloader runtime có thể truy cập (chi tiết bên dưới).
  2. Để phân vùng, xác định một thời gian chạy có thể truy cập và địa điểm tin cậy bootloader trong bộ nhớ flash để đưa .dtb . Vị trí ví dụ:
    Phân vùng khởi động
    Hình 2. Đặt .dtb trong phân vùng khởi động bằng cách thêm vào image.gz và đi qua là " kernel " để mkbootimg .
    Phân vùng duy nhất
    Hình 3. Đặt .dtb trong một phân vùng duy nhất (ví dụ dtb phân vùng).
  3. Chạy:
    • Tải .dtb từ lưu trữ vào bộ nhớ.
    • Khởi động hạt nhân với địa chỉ bộ nhớ của DT được tải.

Thuật ngữ

Phần này sử dụng các thuật ngữ cây thiết bị sau:

DT Cây thiết bị
DTB Cây thiết bị Blob
DTBO Khối cây thiết bị cho lớp phủ
DTC Trình biên dịch cây thiết bị
DTO Lớp phủ cây thiết bị
DTS Nguồn cây thiết bị
FDT Phẳng Device Tree, một định dạng nhị phân chứa trong một .dtb tập tin blob