Linux cuối cùng cũng khắc phục được lỗi ghi hình 4K 60 FPS qua USB: Bản vá nhân hệ điều hành gỡ bỏ giới hạn băng thông

VNZ-TECHS
Trong nhiều năm qua, việc sử dụng card capture USB để ghi hình hoặc phát trực tiếp ở độ phân giải 4K 60 FPS trên Linux luôn là một vấn đề gây không ít khó chịu. Các card capture giao tiếp PCIe thường hoạt động thiếu ổn định, nhiều thiết bị không có trình điều khiển dành cho Linux hoặc phải phụ thuộc vào các dự án reverse engineering. Trong khi đó, các thiết bị USB tuy hỗ trợ chuẩn UVC (USB Video Class) và có thể sử dụng ngay, nhưng khi chuyển sang chế độ 4K 60 FPS thì lại phát sinh lỗi.

Linux-4K-stream.webp

Nguyên nhân được xác định nằm ở quá trình khởi tạo thiết bị. Một số card capture USB bị treo khi hệ điều hành gửi yêu cầu đọc BOS Descriptor (Binary Object Store Descriptor).

Cụ thể, thiết bị ban đầu sẽ thiết lập kết nối ở chế độ USB SuperSpeed Plus 10 Gbps. Sau đó, nhân Linux gửi yêu cầu lấy BOS Descriptor nhưng thiết bị không phản hồi. Sau vài giây thử lại không thành công, hệ thống sẽ hủy quá trình, kết nối lại ở tốc độ USB 3.0 SuperSpeed 5 Gbps và đồng thời chuyển sang một Product ID khác.

Vấn đề là băng thông 5 Gbps chỉ đủ để truyền tải video 4K 30 FPS, còn chế độ 4K 60 FPS chỉ khả dụng khi kết nối duy trì ở tốc độ 10 Gbps.

Ngay từ phiên bản Linux 6.19, nhà phát triển Brüderl đã đóng góp bản vá USB_QUIRK_NO_BOS dành cho thiết bị Elgato 4K X. Bản vá này sẽ bỏ qua bước yêu cầu BOS Descriptor đối với các thiết bị bị ảnh hưởng, giúp card capture tiếp tục hoạt động ở chế độ SuperSpeed Plus 10 Gbps.

Nhờ đó, thiết bị có thể hoạt động bình thường thông qua trình điều khiển uvcvideo có sẵn trong nhân Linux và người dùng có thể ghi hình 4K 60 FPS trực tiếp trong OBS Studio mà không cần cài đặt thêm bất kỳ driver hay phần mềm bổ sung nào.

Sau khi bản vá được giới thiệu, các nhà phát triển tiếp tục phát hiện thêm nhiều mẫu card capture khác cũng gặp lỗi tương tự. Danh sách thiết bị đã được xác nhận hiện bao gồm:
  • AVerMedia Live Gamer Ultra 2.1
  • ASUS TUF 4K PRO
  • UGREEN 35871
  • EZXCAP401
Nếu các mẫu card capture khác cũng gặp hiện tượng tương tự, nhà phát triển vẫn cần bổ sung Device ID của chúng vào danh sách trong nhân Linux để bản vá có hiệu lực.
Hiện bản sửa lỗi dành cho Elgato 4K X đã được tích hợp chính thức vào Linux 6.19 và cũng đã được backport sang các nhánh nhân ổn định.

Người dùng sử dụng Linux 7.1 hoặc các bản kernel mới hơn có thể tận dụng ngay bản vá này. Đối với các streamer, nhà sáng tạo nội dung và game thủ thường xuyên ghi hình gameplay, đây là một cải tiến đáng giá khi Linux cuối cùng cũng khắc phục được trở ngại kéo dài nhiều năm trong việc ghi hình 4K 60 FPS qua USB.

Trong khi trải nghiệm phát trực tiếp 4K trên Windows đã trở nên phổ biến từ lâu, thì giờ đây người dùng Linux cũng có thể tận hưởng khả năng cắm là chạy (plug-and-play) mà không còn phải lo giới hạn băng thông hay cài đặt các giải pháp phức tạp.