Guest User

Untitled

a guest
Sep 27th, 2024
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. dvideo="$1"
  4. daudio="$2"
  5. mode="$3"
  6.  
  7.  
  8. case "$mode" in
  9. unbind)
  10. # ****************
  11. # * UNBIND BEGIN *
  12. # ****************
  13.  
  14. echo "mode: unbind driver and bind vfio"
  15.  
  16. # Unbind VTconsoles
  17. echo 0 > /sys/class/vtconsole/vtcon0/bind
  18. echo 0 > /sys/class/vtconsole/vtcon1/bind
  19.  
  20. # Unbind EFI-Framebuffer
  21. #echo efi-framebuffer.0 > /sys/bus/platform/drivers/efi-framebuffer/unbind
  22. #echo simple-framebuffer.0 > /sys/bus/platform/drivers/simple-framebuffer/unbind
  23.  
  24. # Avoid a Race condition by waiting 2 seconds. This can be calibrated to be shorter or longer if required for your system
  25. sleep 2
  26.  
  27. for d in "$dvideo" "$daudio"
  28. do
  29. id="$(lspci -n -s "$d" | cut -d' ' -f3 | tr ':' ' ')"
  30. echo "$d $id"
  31. echo "$id" > /sys/bus/pci/drivers/vfio-pci/new_id
  32. echo "$d" > /sys/bus/pci/devices/"$d"/driver/unbind
  33. echo "$d" > /sys/bus/pci/drivers/vfio-pci/bind
  34. echo "$id" > /sys/bus/pci/drivers/vfio-pci/remove_id
  35. done
  36.  
  37. # ****************
  38. # * UNBIND END *
  39. # ****************
  40. ;;
  41.  
  42. bind)
  43. # ****************
  44. # * REBIND BEGIN *
  45. # ****************
  46.  
  47. echo "mode: unbind vfio and bind driver"
  48.  
  49. echo 1 > /sys/bus/pci/devices/"$dvideo"/remove
  50. echo 1 > /sys/bus/pci/devices/"$daudio"/remove
  51. echo 1 > /sys/bus/pci/rescan
  52.  
  53. #echo "efi-framebuffer.0" > /sys/bus/platform/drivers/efi-framebuffer/bind
  54. #echo "simple-framebuffer.0" > /sys/bus/platform/drivers/simple-framebuffer/bind
  55.  
  56. # Rebind VT consoles
  57. echo 1 > /sys/class/vtconsole/vtcon0/bind
  58. # Some machines might have more than 1 virtual console. Add a line for each corresponding VTConsole
  59. echo 1 > /sys/class/vtconsole/vtcon1/bind
  60.  
  61. # ****************
  62. # * REBIND END *
  63. # ****************
  64. ;;
  65.  
  66. *)
  67. echo "error: unkown mode '$mode'"
  68. ;;
  69. esac
Advertisement
Add Comment
Please, Sign In to add comment