Corellium công bố cổng chuyển từ Linux sang chip M1

Corellium đã trình bày một phiên bản Linux thích ứng để chạy trên các máy tính Apple mới hơn được trang bị chip M1, biến thể nhân Linux tương thích với chip Apple M1 được phát hành theo giấy phép GPLv2 và các bản vá lỗi đã được đệ trình để đưa vào nhân chính.

Corellium có nhiều kinh nghiệm trong việc chuyển từ Linux sang chip Apple được sử dụng trên các thiết bị di động như iPhone. Trong giai đoạn đầu của quá trình di chuyển, những người thử nghiệm được khuyến khích rằng nhiều thành phần của Apple M1 dựa trên công nghệ đã được Apple sử dụng trong các SoC khác.

Nhưng trong quá trình viết trình điều khiển, rõ ràng là không phải mọi thứ đều đơn giản như vậy và chip Apple M1 bao gồm nhiều giải pháp phi tiêu chuẩn. Hỗ trợ Linux cho ARM 64-bit SoC dựa trên các khối xây dựng chung và các giao diện phần sụn, nhưng Apple M1 hầu như không sử dụng các giải pháp thông thường.

Ví dụ: trong các SoC ARM thông thường, việc kích hoạt các lõi CPU được thực hiện thông qua PSCI (Giao diện Điều phối Trạng thái Nguồn) được cung cấp bởi phần sụn và trên Apple M1, nó yêu cầu thao tác đăng ký MMIO.

Trong giai đoạn này, Các nhà phát triển Corellium đã đi trước dự án Asahi Linux, được thành lập bởi Héctor Martin để chuyển Linux sang các hệ thống có chip Apple M1, cho đến nay vẫn bị giới hạn trong việc thiết kế ngược và thử nghiệm với bộ nạp khởi động. Tuy nhiên, mục tiêu chính của Asahi Linux không chỉ là khởi động Linux mà là cung cấp hỗ trợ đầy đủ cho các cơ chế quản lý năng lượng và sử dụng các khả năng của GPU Apple M1, sử dụng một bộ hướng dẫn cụ thể.

Các bản vá lỗi Corellium được giới hạn trong việc cung cấp khả năng khởi động và hỗ trợ cho các tính năng cụ thể của các chip M1 liên quan đến chế độ SMP, bộ định thời, ngắt, xử lý và khởi tạo trạng thái nhàn rỗi.

Các Đại diện của Asahi Linux hoan nghênh việc phát hành các bản vá lỗi Corellium và họ bày tỏ sẵn sàng cung cấp hỗ trợ đánh giá ngang hàng để đẩy nhanh việc áp dụng chính thống nhân Linux.

Ngoài ra, Alyssa Rosenzweig (từ Collabora, người phát triển trình điều khiển Panfrost GPU Mali) cũng đã được cho là đã xuất bản báo cáo thứ hai về kỹ thuật đảo ngược và phát triển trình điều khiển mã nguồn mở cho GPU Apple M1.

Ở giai đoạn hiện tại, một nguyên mẫu ban đầu của bộ điều khiển đã được chuẩn bị, có thể vẽ hình tam giác bằng cách sử dụng GPU. Đối với GPU M1, đỉnh đầu tiên và trình tạo bóng phân mảnh cũng được mã hóa thủ công. Trình điều khiển nhân IOKit được sử dụng để tương tác với GPU.

Apple M1 cũng sử dụng bộ điều khiển ngắt AIC của riêng mình (Bộ điều khiển ngắt của Apple), phần lớn nó không tương thích với ARM GIC tiêu chuẩn và một cơ chế khác để ràng buộc các ngắt từ bộ hẹn giờ. Ngoài ra, để tổ chức sự tương tác giữa nhiều bộ xử lý, các thanh ghi riêng biệt được sử dụng để điều khiển IPI (ngắt giữa các bộ xử lý).

Để khởi động vào máy tính Mac Mini M1 với chip Apple M1, một hình ảnh rootfs sẵn sàng sử dụng được chuẩn bị, được xây dựng trên cơ sở bản dựng Ubuntu cho Raspberry Pi.

Để cài đặt, hình ảnh phải được sao chép vào ổ đĩa USB, kết nối thiết bị này với cổng USB-C và khởi động máy tính ở chế độ 1TR (Recovery OS) bằng cách nhấn và giữ nút Nguồn trong khi khởi động. Sau khi dòng lệnh xuất hiện, bạn cần chạy tập lệnh linuxsetup.sh, tập lệnh này sẽ cài đặt hạt nhân và cấu hình môi trường.

Đây là lúc Linux sẽ bắt đầu chạy, trong khi để trả về macOS, bạn phải chạy lệnh "bputil -n" ở chế độ 1TR.

Bản dựng sẵn sàng hỗ trợ USB, I2C và DART, bạn nên sử dụng bộ điều hợp USB bên ngoài cho mạng, trong khi khả năng tăng tốc phần cứng đồ họa và thiết bị ngoại vi mở rộng chưa được hỗ trợ. Hỗ trợ Bluetooth yêu cầu viết trình điều khiển mới do sử dụng giao thức dựa trên PCIe không chuẩn.

Fuente: https://corellium.com


Thêm vào danh sách nguồn ưu tiên trên Google.