Tóm tắt nhanh
- Lập trình viên mkopec sửa firmware hub Cable Matters để Switch 2 nhận thiết bị như dock chính hãng và bật TV mode.
- Khoảng 540 byte mã xử lý phần bắt tay USB-PD; bản vá 108 byte khác sửa màu HDR trên HDMI.
- HDR qua DisplayPort vẫn nhạt màu, VRR không hoạt động; cổng USB và Ethernet chưa được tác giả kiểm tra kỹ.
- Đây là một thử nghiệm trên phần cứng cụ thể, chưa phải công thức thay dock cho mọi hub USB-C.
Một hub USB-C giá khoảng 40 euro đã xuất được hình từ Nintendo Switch 2 sau khi được sửa firmware, theo bài công bố kỹ thuật của lập trình viên mkopec. Chi tiết đáng chú ý nằm ở lượng mã bổ sung: khoảng 540 byte trong bộ điều khiển cấp nguồn đủ để vượt qua bước nhận dạng dock, còn việc hiển thị đúng màu HDR cần một bản sửa riêng ở chip xử lý hình ảnh.
Kết quả này giúp tách hai vấn đề vốn dễ bị đánh đồng khi chọn phụ kiện: hub có đường truyền hình ảnh phù hợp và máy chơi game có chịu kích hoạt đường truyền ấy hay không. Một chiếc hub sạc được Switch 2, thậm chí thương lượng được chế độ DisplayPort, vẫn có thể không đưa được hình lên TV.
Đủ đường truyền DisplayPort vẫn chưa đủ để Switch 2 bật TV mode
Rào cản đầu tiên nằm ở cách hub tự giới thiệu với máy, thay vì việc thiếu cổng xuất hình. Theo mô tả phần cứng của mkopec, mẫu Cable Matters 7-in-1 có các đầu ra DisplayPort, HDMI và VGA, hỗ trợ cấp nguồn tới 60 W; bên trong, VIA VL103 quản lý USB-PD, VL817 phụ trách hub USB, còn Realtek RTD2142 xử lý DisplayPort MST và chuyển tín hiệu sang HDMI.
Với firmware nguyên bản, Switch 2 đã thương lượng nguồn, vào DisplayPort Alt Mode và cấu hình cách sử dụng các chân tín hiệu. Hub xác nhận những bước đó, nhưng máy vẫn không bật TV mode. Vì vậy, mua hub chỉ dựa trên dòng chữ hỗ trợ xuất hình DisplayPort chưa giải quyết được phần điều kiện riêng của Nintendo.
USB-PD còn mang các bản tin do nhà sản xuất định nghĩa, gọi là Vendor-Defined Messages. Trong bản ghi giao tiếp dock chính hãng, mkopec xác định mã SVID của Nintendo là 0x057E, bên cạnh mã DisplayPort 0xFF01. Máy đi vào chế độ riêng của Nintendo trước chế độ DisplayPort, rồi tiếp tục gửi một chuỗi lệnh mà dock phải phản hồi.
Phần sửa trên VL103 chèn khoảng 540 byte mã 8051 vào vùng trống của firmware, móc nối với bộ xử lý USB-PD sẵn có để trả lời các bản tin này. Nó không thay toàn bộ chương trình điều khiển hub: những chức năng ngoài phạm vi bản vá vẫn do mã gốc xử lý. Đây cũng là lý do số byte nhỏ không phản ánh toàn bộ độ phức tạp của quá trình tìm hiểu giao thức.
Các lần sửa kế tiếp cho thấy điều kiện mở TV mode hẹp hơn việc chỉ đổi tên hãng. Những bản đầu phản hồi được bước khám phá và vào chế độ Nintendo, nhưng chưa có hình; việc đổi cấu hình nguồn sang 15 V, 2,8 A như dock gốc, thay cho 2,53 A của hub, cũng chưa đủ. Đổi riêng mã nhà sản xuất từ VIA sang Nintendo vẫn không giải quyết được.
TV mode chỉ hoạt động khi hub trả về đầy đủ thông tin nhận dạng của dock chính hãng. Sau đó, bổ sung các phản hồi về phiên bản giúp bỏ được khoảng chờ gần ba giây trong quá trình kết nối, theo mkopec. Những số phiên bản ấy được sao chép từ dock, không phải phiên bản thật của linh kiện trong hub; lệnh chưa biết vẫn nhận phản hồi không được hỗ trợ.
Điều thử nghiệm chứng minh là các phản hồi cố định và thông tin nhận dạng đã đủ cho chuỗi bắt tay được quan sát. Chưa thể từ đó kết luận mọi phiên bản Switch 2 đều chấp nhận cùng cách làm, hay toàn bộ cơ chế của dock không có kiểm tra nào khác. Nhưng ít nhất trên cấu hình này, một hub phổ thông đã kích hoạt được TV mode mà không cần bổ sung phần cứng mã hóa chuyên dụng.
HDR sai màu là lỗi nhãn tín hiệu, không phải phần bắt tay USB-PD

Có hình chưa đồng nghĩa có hình đúng. Sau khi TV mode hoạt động, màu HDR qua hub vẫn nhạt hơn dock gốc trên cùng màn hình và cùng trò chơi, trong khi kết nối máy tính Linux qua chính hub đó lại hiển thị HDR bình thường. Sửa thêm phản hồi nhận dạng Nintendo không phải lời giải cho lỗi này.
Điểm cần phân biệt là dữ liệu hình ảnh và thông tin mô tả cách màn hình phải hiểu dữ liệu ấy. Theo phân tích firmware của mkopec, đầu ra HDMI dùng gói AVI InfoFrame để báo không gian màu, nhưng hub lại gắn nhãn BT.709 trong trường hợp tín hiệu cần được diễn giải theo BT.2020. Siêu dữ liệu độ sáng HDR đi qua gói riêng, nên TV vẫn có thể báo đang bật HDR dù màu hiển thị không đúng.
Bộ điều khiển USB-PD không nằm trên đường xử lý hình ảnh này; tín hiệu DisplayPort đi tới RTD2142. Bởi vậy, phần sửa thứ hai phải can thiệp vào firmware Realtek, tách biệt với đoạn mã giúp máy chấp nhận hub như một dock.
Bản vá 108 byte kiểm tra siêu dữ liệu HDR: khi có siêu dữ liệu và hàm truyền là PQ hoặc HLG, nó đánh dấu AVI InfoFrame là BT.2020 rồi sửa checksum tương ứng. Gói thông tin cũng được dựng lại khi bật hoặc tắt HDR, thay vì chỉ cập nhật lúc khởi tạo đầu ra. Các điểm ảnh không bị đổi, còn đường xử lý SDR được giữ nguyên.
Cách sửa này nhắm vào lỗi diễn giải màu chứ không làm hub tạo thêm dải màu từ tín hiệu vốn không có. Nó cũng cho thấy vì sao đèn báo HDR trên TV chưa đủ để xác nhận chuỗi kết nối hoạt động đúng: màn hình có thể nhận được thông tin độ sáng nhưng vẫn hiểu sai không gian màu của hình ảnh.
Giới hạn quan trọng là bản vá chỉ xử lý đường HDMI. Đầu ra DisplayPort của hub dùng đường khác chưa được sửa, nên HDR ở cổng đó vẫn nhạt màu. Không nên gộp kết quả thành một tuyên bố chung rằng hub đã hỗ trợ HDR hoàn chỉnh trên mọi đầu ra.
VRR còn vướng sâu hơn. Theo thử nghiệm của mkopec, bật tính năng này làm hình qua DisplayPort bị đứng, còn HDMI vẫn giữ ở 60 Hz. Firmware RTD2142 không triển khai phần hỗ trợ VRR cần thiết; thử cho hub quảng bá Adaptive-Sync và cấp tín hiệu biến thiên từ Linux cũng khiến màn hình đen khi nhịp khung hình thực sự thay đổi.
Nhận dạng giống dock gốc vì thế có mặt trái: máy có thể đưa ra một lựa chọn mà đường xử lý hình ảnh của hub không thực hiện được. Với bản sửa cuối cùng, tác giả quay lại cấu hình chỉ sửa HDR và tắt VRR khi dùng hub này. Đó là giới hạn tương thích cần tính đến, không phải một lỗi nhỏ có thể bỏ qua khi đánh giá khả năng thay dock.
Một bản sửa thành công chưa biến hub phổ thông thành lựa chọn thay dock

Giá trị lớn nhất của thử nghiệm nằm ở việc giải thích vì sao phụ kiện đúng đầu cắm vẫn không dùng được, chứ chưa nằm ở lời khuyên mua một chiếc hub rẻ rồi nạp bản vá. Kết quả gắn với các chip và firmware cụ thể; cùng mang tên hub USB-C, thiết bị khác có thể có bộ điều khiển, đường xuất hình và cách cập nhật hoàn toàn khác.
Quá trình sửa cũng không chỉ là tải một tệp rồi bấm cập nhật. mkopec dùng thiết bị theo dõi lưu lượng USB-PD, công cụ phân tích mã 8051 và mô phỏng firmware để đối chiếu phản hồi với dock thật. Firmware VL103 được đọc và ghi qua công cụ fwupd, còn RTD2142 cần một đường truy cập khác qua kênh phụ DisplayPort; tác giả còn chuẩn bị phương án tiếp cận chip nhớ trực tiếp nếu cần khôi phục.
Với người chơi tại Việt Nam, tiêu chí chọn dock du lịch nên bắt đầu từ bằng chứng tương thích đúng mẫu máy và khả năng khôi phục firmware khi có lỗi. Một thông số như công suất cấp nguồn tối đa không thay thế được những điều đó. Giá khoảng 40 euro trong thử nghiệm cũng là giá của chiếc hub trước khi sửa, không phải báo giá một dock Switch 2 đã hoàn thiện hay giá bán lẻ tại Việt Nam.
Không có cơ sở để coi mọi hub dùng VL103 đều áp dụng được nguyên bản sửa này. Ngay trong thử nghiệm, chỉ thay mã nhà sản xuất đã không đủ; máy còn kiểm tra phần thông tin nhận dạng rộng hơn, còn lỗi HDR lại nằm ở chip khác. Sao chép một phần của giải pháp có thể chỉ tạo ra thiết bị nhận diện được nhưng vẫn không xuất hình đúng.
Khả năng tiếp tục hoạt động sau cập nhật của Nintendo cũng chưa được bảo đảm. Vì bản sửa trả về các dữ liệu cố định để khớp chuỗi lệnh đã quan sát, một thay đổi trong cách máy truy vấn dock có thể khiến các phản hồi ấy không còn đủ. Đây là rủi ro suy ra từ cách triển khai, không phải bằng chứng Nintendo đã chặn bản sửa này.
Kết quả đã đạt được là TV mode, HDR qua HDMI và sạc đồng thời trên bộ thiết bị của tác giả. USB và Ethernet chưa được kiểm tra kỹ, còn VRR không hoạt động. Nếu cần dock để mang đi chơi ổn định, danh sách chức năng đã xác nhận và cách nhà sản xuất hỗ trợ cập nhật vẫn đáng quan tâm hơn số byte mã cần để mở được hình lần đầu.
Nguồn tham khảo: mkopec — phân tích và bản sửa firmware hub Switch 2; Tom’s Hardware; Hackaday.







