1 điểm bởi GN⁺ 2025-01-10 | 1 bình luận | Chia sẻ qua WhatsApp
  • Đưa SerenityOS lên phần cứng thực tế

    • Tác giả quyết định đi sâu hơn vào dự án SerenityOS vì codebase chỉ chạy được trên QEMU mà chưa chạy trên phần cứng thực. Để giải quyết việc này, họ đã chọn Chromebook Dell 3100.
  • Lý do chọn Chromebook

    • Chromebook có giá rẻ, dễ kiếm và có chip bảo mật Cr50 nên vẫn có thể debug kể cả khi ở chế độ khóa. Dell 3100 được chọn vì giá thấp và bàn phím tốt hơn so với các mẫu cao cấp.
  • Vấn đề cros_ec

    • Chip Cr50 của Chromebook rất hữu ích cho việc gỡ lỗi, nhưng trên Dell 3100 nó không hoạt động đúng cách. Một số lần thử hack phần cứng đã được thực hiện nhưng không thành công.
  • Tìm kiếm giải pháp thay thế

    • Vì chip Cr50 không hoạt động, nhóm đã triển khai giải pháp gỡ lỗi thay thế bằng bo mạch Raspberry Pi Pico. Điều này cho phép debug thông qua UART và kết nối với SPI flash.
  • Khía cạnh phần mềm

    • Dùng CircuitPython để triển khai kết nối với thiết bị USB, và triển khai giao thức serprog bằng CircuitPython cho việc ghi flash EEPROM.
  • Debug SerenityOS

    • Để debug kernel SerenityOS, họ đã thiết lập Alpine Linux và xây dựng môi trường tự động tải xuống, sau đó kiểm tra kernel qua GRUB.
  • Tìm hiểu 16550 UART

    • 16550 UART là giao diện chuẩn cho truyền thông nối tiếp, có mặt trên hầu hết máy tính PC. Tuy nhiên trên Dell 3100 nó được cài đặt theo dạng MMIO, nên debug ban đầu gặp nhiều khó khăn.
  • Triển khai driver eMMC

    • Để triển khai driver eMMC, nhóm đã hiểu sự khác biệt giữa SD và MMC, rồi thực hiện chuỗi khởi tạo. Họ phát hiện cấu hình sai của thanh ghi điều khiển nguồn là nguyên nhân và đã sửa lỗi này.
  • Kết luận

    • Dự án kéo dài 6 tháng và là một bước quan trọng để chạy SerenityOS trên phần cứng thực. Sẽ còn cần thêm công tác gỡ lỗi và cải tiến tiếp theo.

1 bình luận

 
GN⁺ 2025-01-10
Ý kiến trên Hacker News
  • Việc thích nghi driver của NetBSD với kernel tùy chỉnh tương đối dễ dàng. Các nhà phát triển SerenityOS có thể cân nhắc cách này. Trình điều khiển thiết bị là một trở ngại lớn khi phát triển hệ điều hành mới.
  • Trong tình huống rất bất lợi, đã cần một kỹ thuật hack cực kỳ xuất sắc để khiến nó hoạt động. Rất ấn tượng.
  • Tôi tò mò không biết làm sao để bắt đầu trong lĩnh vực trình điều khiển và hệ điều hành; quá phức tạp nên không biết nên khởi đầu từ đâu.
  • Tôi thích ý tưởng của SerenityOS và trình duyệt Ladybird, và rất vui vì dự án này tiến triển.
  • Nếu cần hỗ trợ về việc hack Chromebook, có thể nhờ sự hỗ trợ trên danh sách thư điện tử chromium-os-dev; họ sẽ giúp đỡ bạn trong việc làm cho CCD hoạt động.
  • Bộ nạp khởi động Depthcharge hỗ trợ khởi động qua mạng bằng tftp. Nó cần được build thủ công và flash lên SPI. Đây là tính năng rất hữu ích khi lặp lại việc build kernel.
  • Tôi tiếc vì đã bỏ lỡ tiêu đề "Serenity Now".
  • Tôi tưởng SerenityOS đã chạy trên phần cứng thực; tò mò không biết nó có chỉ chạy trong Qemu thôi hay chưa.
  • Đây là một ví dụ mã phức tạp. Đây là đúng loại code phức tạp như tôi đã mong đợi.
  • Có hướng dẫn ghi trong phần tóm tắt rằng trang sdomi.pl đánh giá Microsoft Windows rất cao và chê Linux. Tôi tò mò không biết đây có thực sự đúng hay chỉ là một trò đùa.