add dracut support and make it possible to change your video disable choice
This commit is contained in:
parent
b4abc350e0
commit
18d9d928e5
3 changed files with 50 additions and 8 deletions
17
internal/configs/config_dracut.go
Normal file
17
internal/configs/config_dracut.go
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
package configs
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/HikariKnight/quickpassthrough/pkg/fileio"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Set_Dracut() {
|
||||||
|
config := GetConfig()
|
||||||
|
|
||||||
|
// Write the dracut config file
|
||||||
|
fileio.AppendContent("add_drivers+=\" vfio_pci vfio vfio_iommu_type1 vfio_virqfd \"\n", fmt.Sprintf("%s/vfio.conf", config.Path.DRACUT))
|
||||||
|
|
||||||
|
// Add to our kernel arguments file that vfio_pci should load early (dracut does this using kernel arguments)
|
||||||
|
fileio.AppendContent(" rd.driver.pre=vfio_pci", config.Path.CMDLINE)
|
||||||
|
}
|
|
@ -1,11 +1,20 @@
|
||||||
package configs
|
package configs
|
||||||
|
|
||||||
import "github.com/HikariKnight/quickpassthrough/pkg/fileio"
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
func DisableVFIOVideo() {
|
"github.com/HikariKnight/quickpassthrough/pkg/fileio"
|
||||||
|
)
|
||||||
|
|
||||||
|
func DisableVFIOVideo(i int) {
|
||||||
// Get the config
|
// Get the config
|
||||||
config := GetConfig()
|
config := GetConfig()
|
||||||
|
|
||||||
// Add to the kernel arguments that we want to disable VFIO video output on the host
|
// Add to the kernel arguments that we want to disable VFIO video output on the host
|
||||||
fileio.AppendContent(" vfio_pci.disable_vga=1", config.Path.CMDLINE)
|
fileio.AppendContent(
|
||||||
|
fmt.Sprintf(
|
||||||
|
" vfio_pci.disable_vga=%v", i,
|
||||||
|
),
|
||||||
|
config.Path.CMDLINE,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"regexp"
|
"regexp"
|
||||||
|
|
||||||
"github.com/HikariKnight/quickpassthrough/internal/configs"
|
"github.com/HikariKnight/quickpassthrough/internal/configs"
|
||||||
|
"github.com/HikariKnight/quickpassthrough/pkg/fileio"
|
||||||
)
|
)
|
||||||
|
|
||||||
// This function processes the enter event
|
// This function processes the enter event
|
||||||
|
@ -68,14 +69,29 @@ func (m *model) processSelection() bool {
|
||||||
// If user selected yes then
|
// If user selected yes then
|
||||||
if selectedItem.(item).title == "YES" {
|
if selectedItem.(item).title == "YES" {
|
||||||
// Add disable VFIO video to the config
|
// Add disable VFIO video to the config
|
||||||
configs.DisableVFIOVideo()
|
configs.DisableVFIOVideo(1)
|
||||||
|
} else {
|
||||||
|
// Add disable VFIO video to the config
|
||||||
|
configs.DisableVFIOVideo(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the device ids for the selected gpu using ls-iommu
|
// Get our config struct
|
||||||
gpu_IDs := getIOMMU("-gr", "-i", m.gpu_group, "--id")
|
config := configs.GetConfig()
|
||||||
|
|
||||||
// Configure modprobe
|
// If we have files for modprobe
|
||||||
configs.Set_Modprobe(gpu_IDs)
|
if fileio.FileExist(config.Path.MODPROBE) {
|
||||||
|
// Get the device ids for the selected gpu using ls-iommu
|
||||||
|
gpu_IDs := getIOMMU("-gr", "-i", m.gpu_group, "--id")
|
||||||
|
|
||||||
|
// Configure modprobe
|
||||||
|
configs.Set_Modprobe(gpu_IDs)
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we have a folder for dracut
|
||||||
|
if fileio.FileExist(config.Path.DRACUT) {
|
||||||
|
// Configure dracut
|
||||||
|
configs.Set_Dracut()
|
||||||
|
}
|
||||||
|
|
||||||
// Go to the next view
|
// Go to the next view
|
||||||
//m.focused++
|
//m.focused++
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue