1 điểm bởi GN⁺ 2024-01-01 | 1 bình luận | Chia sẻ qua WhatsApp

Cách fork SteamOS tùy biến

  • SteamOS 3 ("Holo") là một bản phân phối Linux dựa trên Arch được tạo ra cho Steam Deck, thiết bị chơi game PC cầm tay của Valve Software.
  • SteamOS thực hiện cập nhật theo kiểu nguyên tử bằng cách tải hệ thống tệp gốc chỉ đọc mới xuống phân vùng không hoạt động.
  • Người dùng có thể chạy steamos-devmode để mở khóa hệ thống tệp gốc và dọn dẹp cơ sở dữ liệu pacman nhằm có được một bản phân phối Linux hoạt động với trình quản lý gói thông thường.

Cấu trúc hệ thống SteamOS

  • Hệ thống SteamOS gồm 8 phân vùng, trong đó phân vùng hệ thống EFI lưu trữ bootloader giai đoạn 1 và các tệp siêu dữ liệu.
  • Hai bộ phân vùng A/B chứa bootloader giai đoạn 2 (GRUB), hệ thống tệp gốc và phân vùng /var.
  • Có một phân vùng home duy nhất chiếm toàn bộ phần dung lượng đĩa còn lại.

Cách vá kernel

  • Valve sử dụng một kernel Linux đã được chỉnh sửa rất nhiều trong SteamOS.
  • Mã nguồn kernel có thể được tìm thấy trong mirror pacman của Valve, và mã nguồn kernel của bản image ổn định hiện tại có thể được tải trực tuyến.
  • Tarball mã nguồn có kích thước 2.9 GiB vì nó bao gồm toàn bộ cây Git Linux.

Đóng gói lại hệ thống tệp gốc

  • Có thể sửa đổi hệ thống tệp gốc để "đóng gói lại" theo nhu cầu của người dùng.
  • Image hệ thống tệp gốc có thể lấy bằng cách mua Steam Deck hoặc tải image khôi phục SteamOS.
  • Có thể tải image bằng cách dùng casync để tải các mảnh image cần thiết từ kho .castr và ghi chúng vào phân vùng hệ thống tệp gốc không hoạt động.

Tạo bundle RAUC

  • Sau khi tạo kho casync và chỉ mục blob, có thể tạo bundle RAUC.
  • RAUC thiết lập độ tin cậy bằng chứng chỉ X.509, và cần cài chứng chỉ mới vào hệ thống tệp gốc.
  • Bundle RAUC phải bao gồm các tệp rootfs.img.raucb và rootfs.img.caibx, và chúng phải được tải lên máy chủ web.

Thiết lập máy chủ cập nhật

  • Máy chủ cập nhật phải cung cấp một tệp JSON, và tệp này phải khớp với manifest.json của image.
  • Có thể dùng cấu hình Caddy để chuyển hướng các yêu cầu mà steamos-atomupd tạo ra bằng QueryUrl và MetaUrl sang live.json.

Ý kiến của GN⁺

  • Tầm quan trọng của OS tùy biến: Bài viết này cho thấy cách người dùng có thể tùy biến hệ điều hành theo nhu cầu của mình. Điều này quan trọng trong việc cung cấp các giải pháp được thiết kế riêng cho các nhà phát triển phần mềm.
  • Giá trị như tài liệu học tập: Thông qua quá trình này, các kỹ sư phần mềm mới vào nghề có thể học cách hoạt động của bản phân phối Linux và cách tùy biến nó.
  • Đóng góp cho cộng đồng: Việc chia sẻ kiến thức như vậy góp phần cho cộng đồng mã nguồn mở và có thể giúp những người dùng khác khi bắt đầu các dự án tương tự.

1 bình luận

 
GN⁺ 2024-01-01
Ý kiến trên Hacker News
  • Đam mê khám phá sâu việc tùy biến phần mềm/HĐH theo ý người dùng

    • Thật may là Steam Deck không gây lo ngại về Tivoization (việc nhà sản xuất phần cứng giới hạn chỉ cho chạy một phần mềm nhất định)
    • Phần thú vị nhất trong bài là việc Steam Deck hỗ trợ nixpkgs (không được cài sẵn theo mặc định, nhưng có thể cài lên thiết bị mà không cần fork toàn bộ HĐH)
  • Đánh giá kỹ lưỡng và thú vị về bài viết

    • Cá nhân tôi sẽ không làm kiểu này
    • Lần tôi vọc Linux nhiều nhất là vào thời RaspberryPi, mà cũng chỉ đến mức 1%
    • Xin gửi lời khen cho tác giả
  • Bày tỏ sự nhớ nhung với favicon trận mưa sao băng của Netscape

  • Đang đặt mua GPU cho máy chủ NAS unRaid để triển khai Steam Headless qua Docker image

    • Dự định dùng Moonlight client trên laptop Windows
    • Vì NAS hầu như nhàn rỗi trong phần lớn thời gian nên thấy hợp lý hơn so với việc mua phần cứng desktop mới
    • Cần giữ thiết lập điện năng của card Nvidia ở trạng thái idle (có lẽ gọi nvidia-persistenced là được)
  • Đã có sẵn các bản phân phối dựa trên SteamOS

    • ChimeraOS phù hợp với PC và cách dùng thiên về tay cầm, hoạt động hoàn chỉnh và có kèm các tiện ích bổ sung của Steam Deck
  • Ý kiến về nâng cấp A/B

    • Có thể đơn giản hơn nếu dùng bản phân phối live hoặc cài hệ thống khôi phục của phiên bản cũ trên phân vùng
    • Tác giả chia sẻ trải nghiệm gần đây chuyển sang Arch Linux và tin Arch hơn Valve
    • Chất lượng gói của Arch, việc cập nhật nhanh ở repo chính và các gói AUR hữu ích là lý do họ rời NixOS
  • Chia sẻ trải nghiệm dùng máy chơi game cầm tay (Legion Go) để tăng kinh nghiệm với Linux

    • Trước đây tránh Linux vì thấy khả năng tương thích hạn chế và cần tinh chỉnh liên tục
    • Tò mò về hệ thống tệp bất biến và việc Linux truyền thống dễ dàng cấp quyền root cho phần mềm
    • Chia sẻ trải nghiệm dùng NixOS: có thể dễ dàng thử nhiều thành phần khác nhau và nếu không muốn thì gỡ bỏ hoàn toàn
    • Cộng đồng Jovian tái dựng tarball SteamOS của Valve thành các commit có gắn thẻ trên GitHub, giúp có thể duyệt mã nguồn như nhân viên Valve
    • Thông qua Jovian, có thể cài bản sao SteamOS của riêng mình trên NixOS
  • Chia sẻ trải nghiệm thử nghiệm alpha hỗ trợ 120hz VRR và HDR trên phần cứng AMD của bazzite.gg

  • Phát hiện thú vị rằng SteamOS dựa trên Arch Linux

  • Nếu quan tâm đến việc chạy SteamOS trên PC Linux thì nên thử HoloISO