setup_gpu.sh 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/bin/bash
  2. # GPU Setup Script for YouTube Predownloader
  3. # This script sets up Intel GPU hardware acceleration
  4. echo "🚀 Setting up Intel GPU hardware acceleration..."
  5. # Check if user is in video and render groups
  6. if ! groups "$USER" | grep -q "\bvideo\b"; then
  7. echo "Adding $USER to video group..."
  8. sudo usermod -a -G video "$USER"
  9. NEED_RELOGIN=true
  10. fi
  11. if ! groups "$USER" | grep -q "\brender\b"; then
  12. echo "Adding $USER to render group..."
  13. sudo usermod -a -G render "$USER"
  14. NEED_RELOGIN=true
  15. fi
  16. # Fix GPU device permissions
  17. echo "Setting GPU device permissions..."
  18. sudo chmod 666 /dev/dri/renderD128
  19. sudo chmod 666 /dev/dri/card1
  20. # Create udev rule for persistent permissions
  21. echo "Creating udev rule for persistent GPU permissions..."
  22. sudo tee /etc/udev/rules.d/99-gpu-permissions.rules > /dev/null << 'EOF'
  23. # Intel GPU permissions for hardware acceleration
  24. SUBSYSTEM=="drm", KERNEL=="renderD*", GROUP="render", MODE="0666"
  25. SUBSYSTEM=="drm", KERNEL=="card*", GROUP="video", MODE="0666"
  26. EOF
  27. # Reload udev rules
  28. sudo udevadm control --reload-rules
  29. sudo udevadm trigger
  30. # Test hardware acceleration
  31. echo "Testing hardware acceleration..."
  32. if vainfo --display drm --device /dev/dri/renderD128 > /dev/null 2>&1; then
  33. echo "✅ Intel VAAPI hardware acceleration is working!"
  34. else
  35. echo "❌ Hardware acceleration test failed"
  36. fi
  37. # Test FFmpeg VAAPI
  38. echo "Testing FFmpeg VAAPI support..."
  39. if ffmpeg -hide_banner -f lavfi -i testsrc=duration=1:size=320x240:rate=1 \
  40. -vaapi_device /dev/dri/renderD128 -vf 'format=nv12,hwupload' \
  41. -c:v h264_vaapi -frames:v 1 -f null - > /dev/null 2>&1; then
  42. echo "✅ FFmpeg VAAPI H.264 encoding is working!"
  43. else
  44. echo "❌ FFmpeg VAAPI test failed"
  45. fi
  46. if [[ "$NEED_RELOGIN" == "true" ]]; then
  47. echo ""
  48. echo "⚠️ Group membership changes require a logout/login to take effect."
  49. echo " Either logout and login again, or restart your session."
  50. fi
  51. echo ""
  52. echo "🎬 GPU acceleration setup complete!"
  53. echo " Your OptiPlex with Intel HD Graphics 630 is ready for fast video conversions!"