Thiết lập Gaming Station trên Fedora với Steam, Proton-GE và MangoHud: Chơi game Windows trên Linux hiệu quả

Fedora tutorial - IT technology blog
Fedora tutorial - IT technology blog

Linux gaming không còn là “không thể”

Vài năm trước, nói muốn chơi game trên Linux là bị cười. Câu trả lời mặc định luôn là: “Thôi cài Windows đi.” Giờ thì khác rồi. Valve rót tiền vào Proton từ 2018, và đến nay hơn 70% game Steam chạy được trên Linux theo thống kê từ ProtonDB — bao gồm cả những tựa nặng như Cyberpunk 2077 hay Elden Ring.

Mình dùng Fedora làm máy development chính đã 2 năm. Ban đầu chỉ nghĩ dùng để code, nhưng rồi thử chơi game cuối tuần và bất ngờ: nhiều game chạy tốt hơn cả trên Windows. Vấn đề không phải Linux không chạy được — mà hầu hết hướng dẫn dừng ở mức “cài Steam xong chạy thôi”, bỏ qua phần hay nhất: tối ưu hiệu năng và xử lý khi game không chịu khởi động.

Bài này đi thẳng vào quy trình thực tế: driver đúng cách, Proton-GE thay vì Proton mặc định, và MangoHud để theo dõi FPS/GPU/CPU ngay trong game.

Proton, Proton-GE và Wine: khác nhau ở chỗ nào?

Nhầm lẫn ở đây dẫn đến cài sai tool, debug sai hướng — mất thời gian kinh khủng.

  • Wine: Lớp tương thích cấp thấp, dịch Windows API sang Linux. Không được tối ưu cho gaming, FPS thấp, nhiều game crash.
  • Proton: Valve fork từ Wine. Tích hợp DXVK (DirectX 9/10/11 → Vulkan), VKD3D-Proton (DX12 → Vulkan), cùng hàng chục patch gaming-specific. Đây là Proton chính thức trong Steam.
  • Proton-GE: Community build do GloriousEggroll duy trì. Cập nhật nhanh hơn Proton chính thức 2–4 tuần, tích hợp thêm patch cho game cụ thể như media codec cho cutscene, fix một số game chống gian lận. Nhiều game chạy được với Proton-GE nhưng văng với Proton mặc định.

Chiến lược thực tế: dùng Proton-GE làm mặc định. Chỉ fallback về Proton chính thức khi GE gây ra vấn đề.

Bước đầu tiên: Driver và Vulkan

Gaming trên Linux phụ thuộc nặng vào Vulkan. Đây là API đồ họa hiệu năng cao, thay thế OpenGL trong hầu hết game hiện đại. Driver hoặc Vulkan sai → game crash hoặc chạy ở 20 FPS dù cài đủ tool.

GPU AMD (lựa chọn tốt hơn cho Linux gaming)

Driver AMD (AMDGPU) đã có sẵn trong kernel Linux từ kernel 4.2. Chỉ cần cài phần userspace:

# Bật RPM Fusion nếu chưa có
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

# Cài Vulkan và Mesa (cần cả gói i686 cho game 32-bit)
sudo dnf install vulkan-tools mesa-vulkan-drivers mesa-vulkan-drivers.i686

# Kiểm tra Vulkan nhận GPU chưa
vulkaninfo --summary

GPU NVIDIA

# Driver NVIDIA qua RPM Fusion
sudo dnf install akmod-nvidia xorg-x11-drv-nvidia-cuda

# Vulkan cho NVIDIA
sudo dnf install vulkan-loader vulkan-loader.i686

# Reboot rồi kiểm tra
nvidia-smi
vulkaninfo --summary

Cạm bẫy phổ biến với NVIDIA trên Fedora: Fedora bật Secure Boot mặc định. Nếu sau reboot driver không load (lệnh nvidia-smi báo lỗi), có hai hướng: ký module kernel thủ công hoặc tắt Secure Boot trong BIOS. Cách sau nhanh hơn nhưng giảm bảo mật — tùy bạn chọn.

Cài Steam và bật Steam Play

Cài Steam từ RPM Fusion

# Steam cần thư viện 32-bit — RPM Fusion lo phần này
sudo dnf install steam

# Hoặc Flatpak nếu muốn sandbox tốt hơn
flatpak install flathub com.valvesoftware.Steam

Mình chọn Steam native thay vì Flatpak vì tích hợp Proton-GE đơn giản hơn. Flatpak sandbox tốt, nhưng cần thêm bước cấp quyền filesystem — dễ gây nhầm khi mới bắt đầu.

Bật Steam Play cho tất cả game

Mở Steam → Settings → Compatibility → Enable Steam Play for all other titles → chọn Proton version mới nhất. Bước này cho phép chạy game Windows qua Proton, kể cả game không có native Linux build.

Cài Proton-GE — bước tạo ra sự khác biệt

Hai cách: thủ công hoặc dùng ProtonUp-Qt. Bắt đầu bằng cách dễ.

Cách 1: ProtonUp-Qt (khuyến nghị)

flatpak install flathub net.davidotek.pupgui2
flatpak run net.davidotek.pupgui2

Trong ProtonUp-Qt: click Add version → chọn GE-Proton → chọn version mới nhất → Install. Restart Steam sau khi xong.

Cách 2: Cài thủ công

mkdir -p ~/.steam/root/compatibilitytools.d

# Thay GE-Proton9-27 bằng version mới nhất trên GitHub
wget https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton9-27/GE-Proton9-27.tar.gz

tar -xf GE-Proton9-27.tar.gz -C ~/.steam/root/compatibilitytools.d/

killall steam && steam

Sau khi Steam khởi động lại: vào game trong Library → chuột phải → Properties → Compatibility → Force the use of a specific Steam Play compatibility tool → chọn GE-Proton.

MangoHud: overlay theo dõi FPS trong game

MangoHud hiển thị thông tin hệ thống ngay trên màn hình game — FPS, GPU temp, CPU usage, VRAM, frametime. Khi game chạy lag bất thường, MangoHud cho biết ngay vấn đề là GPU đang throttle hay CPU bị bottleneck.

Cài MangoHud

sudo dnf install mangohud mangohud.i686

# Thử luôn
mangohud glxgears

Cấu hình MangoHud

mkdir -p ~/.config/MangoHud
cat > ~/.config/MangoHud/MangoHud.conf << 'EOF'
# Vị trí overlay
position=top-left

# Thông tin hiển thị
gpu_stats
gpu_temp
gpu_power
cpu_stats
cpu_temp
ram
vram
fps
frametime
frame_timing

# 0 = không giới hạn FPS
fps_limit=0

text_color=FFFFFF
font_size=20
EOF

Kích hoạt MangoHud cho game Steam

Vào game → chuột phải → Properties → General → Launch Options, thêm:

MANGOHUD=1 %command%

Muốn bật cho tất cả game cùng lúc, thêm vào ~/.bashrc:

export MANGOHUD=1

Tối ưu thêm: GameMode và biến môi trường

GameMode của Feral Interactive

Tool nhỏ nhưng hiệu quả: tự động chuyển CPU governor sang performance khi game đang chạy, rồi trả về bình thường khi thoát. Trên một số máy, GameMode tăng FPS thêm 5–15%.

sudo dnf install gamemode

# Kiểm tra daemon chạy đúng chưa
gamemoded -t

Thêm vào Launch Options:

MANGOHUD=1 gamemoderun %command%

Biến môi trường hay dùng

# Hiển thị FPS overlay của DXVK (thay thế MangoHud nếu muốn nhẹ hơn)
DXVK_HUD=fps %command%

# Bật Proton log để debug — log lưu tại ~/steam-{AppID}.log
PROTON_LOG=1 %command%

Launch Options đầy đủ cho setup chuẩn:

MANGOHUD=1 gamemoderun %command%

Debug khi game không chạy

Đây là phần hầu hết hướng dẫn cắt bỏ. Thực tế, lần đầu chạy game mới thường có 30–40% khả năng gặp vấn đề — đặc biệt với game cũ hoặc game dùng anti-cheat.

Check ProtonDB trước khi mua

Vào ProtonDB.com, tìm tên game. Rating Platinum/Gold nghĩa là chạy ngon không cần chỉnh gì. Silver thì cần một vài tweaks nhỏ. Bronze/Borked — bỏ qua hoặc chờ update.

Quy trình debug từng bước

# Bật Proton log trong Launch Options
PROTON_LOG=1 %command%

# Sau khi game crash, tìm nguyên nhân
cat ~/steam-APPID.log | grep -i error

# Log Steam đầy đủ hơn
cat ~/.local/share/Steam/logs/content_log.txt

Lỗi hay gặp

  • Crash ngay khi khởi động: Thử đổi sang Proton-GE. Nếu game dùng DirectX 8/9 cũ, thêm PROTON_USE_WINED3D=1 để fallback sang renderer cũ hơn.
  • Anti-cheat block (EAC, BattlEye): Chỉ chạy được khi developer chủ động enable Linux support. Kiểm tra ProtonDB xem đã được enable chưa — không có workaround hợp lệ nào ở đây.
  • Màn hình đen nhưng nghe thấy âm thanh: Thường là Vulkan không khởi tạo đúng. Thêm PROTON_USE_WINED3D=1 %command% để dùng OpenGL thay thế.
  • FPS thấp bất thường dù GPU ổn: Mở MangoHud, xem CPU có bị throttle không. Với laptop, chạy powerprofilesctl set performance trước khi mở game.

Kết

Setup này đã chạy ổn định với mình hơn một năm: Fedora 40, RX 6700 XT, Steam native + Proton-GE 9.x, MangoHud luôn bật. Cyberpunk 2077 chạy ~85 FPS ở Ultra 1080p — không thua gì Windows.

Bộ công cụ cần nhớ theo thứ tự: driver Vulkan → Steam (RPM Fusion) → Proton-GE qua ProtonUp-Qt → MangoHud + GameMode. Và trước khi mua game mới, mở ProtonDB kiểm tra trước — tiết kiệm được nhiều phiền phức.

Giờ mình chỉ có một máy duy nhất. Vừa code, vừa chơi game cuối tuần. Dual boot là chuyện của quá khứ.

Share: