Cấu hình phần cứng Orange Pi: Kernel Legacy và Mainline

Cấu hình phần cứng Orange Pi: Kernel Legacy và Mainline

Việc hệ điều hành có thể nhận diện và sử dụng hiệu quả các thành phần phần cứng (CPU, GPU, GPIO, USB, Ethernet, WiFi, Bluetooth, HDMI, RCA…) là yếu tố then chốt cho mọi thiết bị nhúng như Orange Pi. Để đạt được điều này, một phương pháp rõ ràng phải được thiết lập để hệ thống hiểu được không chỉ sự hiện diện của các thành phần mà còn cả cấu hình và giới hạn của chúng – từ dải tần số hoạt động, mức điện áp, số lượng cổng USB, đến khả năng kết nối mạng và các giao diện GPIO (UART, I2C, SPI).

Để làm rõ cách hệ thống quản lý phần cứng, chúng ta cần tìm hiểu về quá trình khởi động và vai trò của Kernel.

Quá trình khởi động và nhận diện phần cứng trên Orange Pi

Khi Orange Pi được cấp nguồn, SoC (System on Chip) tích hợp sẽ tự động thực thi một đoạn mã nội bộ để tìm kiếm Bootloader (hệ thống khởi động). Nó sẽ ưu tiên tìm trên thẻ SD, và nếu không tìm thấy, sẽ chuyển sang bộ nhớ eMMC (nếu có). Sau khi Bootloader (thường là U-Boot trên Orange Pi) được định vị và tải, nó sẽ khởi động Kernel của hệ thống.

Kernel chính là thành phần trung tâm chịu trách nhiệm xác định toàn bộ phần cứng có sẵn, tự cấu hình phù hợp với các thiết bị này, và cuối cùng là gắn kết hệ thống tệp gốc. Quá trình này hoàn tất giai đoạn khởi động, cho phép hệ điều hành tương tác đầy đủ với các thành phần vật lý.

Hai phương pháp chính để Kernel nhận diện phần cứng

Có hai phương pháp chính để Kernel nhận biết và cấu hình phần cứng của Orange Pi, tùy thuộc vào phiên bản Kernel đang được sử dụng:

  • Kernel Legacy (Kernel 3.4): Được Allwinner hỗ trợ chính thức cho các SoC như H2/H3 trên Orange Pi. Phương pháp này dựa trên việc sử dụng một tệp đặc biệt có tên là script.bin.
  • Kernel Mainline (Kernel 4.10 trở lên): Được phát triển bởi các lập trình viên độc lập và cộng đồng (như nhóm Armbian) cho các SoC Allwinner hiện đại. Với Kernel này, hệ thống sử dụng Device Tree (cây thiết bị) thông qua một tệp có định dạng .dtb.

Cấu hình phần cứng với Kernel Legacy (script.bin)

Đối với nhiều bản phân phối sử dụng Kernel 3.4 được cung cấp bởi Allwinner, các thông số liên quan đến phần cứng của hệ thống được lưu trữ trong tệp script.bin, nằm trong thư mục khởi động /boot.

Tệp script.bin là một tệp nhị phân. Nó được tạo ra từ một tệp văn bản đơn giản có định dạng .fex bằng cách sử dụng các công cụ chuyên dụng như fex2bin (do nhóm phát triển linux-sunxi tạo ra). Tệp .fex này mô tả chi tiết sự tồn tại của các thành phần phần cứng, giới hạn hoạt động (ví dụ: dải tần số tối đa/tối thiểu của CPU/GPU) và các cấu hình cụ thể.

Khi Bootloader tải Kernel, Kernel sẽ đọc nội dung của tệp script.bin để xác định và thực hiện các cấu hình phần cứng cần thiết. Điều này đảm bảo hệ điều hành biết được phần cứng nào có sẵn và có thể truy cập chúng.

Các cấu hình phần cứng có thể thực hiện thông qua việc sửa đổi tệp script.bin bao gồm:

  • Thay đổi tần số hoạt động của CPU/GPU.
  • Bật/tắt đầu ra âm thanh và video (RCA hoặc HDMI).
  • Điều chỉnh độ phân giải video.
  • Thiết lập âm lượng đầu ra.
  • Cấu hình các chân GPIO (kích hoạt các giao diện như UART, I2C, SPI…).

Để tìm hiểu sâu hơn về tệp script.bin và phương pháp sửa đổi chung, bạn có thể tham khảo bài viết: Cấu hình phần cứng: Tệp script.bin.

Nếu bạn muốn cấu hình các khía cạnh cụ thể của phần cứng Orange Pi thông qua tệp script.bin, hãy xem các hướng dẫn chi tiết sau:

Cấu hình phần cứng với Kernel Mainline (Device Tree)

Tương tự như Kernel Legacy, Kernel Mainline sử dụng hệ thống cấu hình phần cứng dựa trên Device Tree để quản lý các thành phần. Thông tin về phần cứng được chứa trong một tệp .dtb (Device Tree Blob), cũng nằm trong thư mục khởi động /boot.

Tệp .dtb là một tệp nhị phân, được tạo ra từ một tệp văn bản đơn giản có định dạng .dts (Device Tree Source). Việc chuyển đổi từ .dts sang .dtb được thực hiện bằng công cụ biên dịch Device Tree (DTC – Device Tree Compiler). Tệp .dts mô tả chi tiết sự tồn tại, giới hạn và cấu hình của các thành phần phần cứng một cách rõ ràng bằng văn bản.

Để tìm hiểu sâu hơn về Device Tree và tệp .dtb, bạn có thể tham khảo bài viết: Cấu hình phần cứng: Device Tree, tệp DTB.

Lưu ý quan trọng về Kernel Mainline:

  • Sự hỗ trợ cho Kernel Mainline trên Orange Pi chủ yếu đến từ cộng đồng như Linux-sunxi và các nhà phát triển Armbian. Do đó, Kernel này thường được tìm thấy trong các bản phân phối Armbian.
  • Hiện tại, một trong những khía cạnh còn thiếu sót là khả năng tăng tốc phần cứng video, khiến các bản cài đặt Armbian với Kernel Mainline thường tập trung vào môi trường máy chủ (không có giao diện đồ họa).
  • Các bản phân phối cho Orange Pi PC 2, đặc biệt là với SoC H5 64-bit, cũng đang sử dụng Kernel này. Điều này có thể liên quan đến kiến trúc 64-bit của hệ thống hoặc các yếu tố cụ thể của SoC H5 từ Allwinner.
  • Thông tin chi tiết về việc cấu hình sâu phần cứng bằng Kernel Mainline vẫn đang được cộng đồng phát triển và cập nhật liên tục.

Keywords: #CấuHình #PhầnCứng #Kernel #Scriptbin #Script.bin #DeviceTree #DTS #OrangePi #Allwinner

Leave a Comment

👈 Vuốt để chuyển bài 👉

KIỂM TRA PORT

IPv6 của bạn: Đang lấy...