Skip to content

Commit 87c695e

Browse files
author
mirkobrombin
committed
feat: support new nvidia images
1 parent 62c79b5 commit 87c695e

2 files changed

Lines changed: 39 additions & 7 deletions

File tree

vanilla_installer/defaults/nvidia.py

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616

1717
from gi.repository import Adw, Gtk
1818

19+
import subprocess
20+
21+
1922
@Gtk.Template(resource_path="/org/vanillaos/Installer/gtk/default-nvidia.ui")
2023
class VanillaDefaultNvidia(Adw.Bin):
2124
__gtype_name__ = "VanillaDefaultNvidia"
@@ -27,6 +30,8 @@ class VanillaDefaultNvidia(Adw.Bin):
2730
info_popover = Gtk.Template.Child()
2831

2932
use_proprietary = None
33+
use_open = None
34+
suggested_drivers = None
3035

3136
def __init__(self, window, distro_info, key, step, **kwargs):
3237
super().__init__(**kwargs)
@@ -36,24 +41,49 @@ def __init__(self, window, distro_info, key, step, **kwargs):
3641
self.__step = step
3742
self.delta = False
3843

39-
self.btn_yes.connect("clicked", self.use_proprietary_drivers)
40-
self.btn_no.connect("clicked", self.use_open_drivers)
44+
self.suggested_drivers = self.get_suggested_drivers()
45+
46+
if self.suggested_drivers == "open":
47+
self.info_popover.set_visible(False)
48+
49+
self.btn_yes.connect("clicked", self.use_drivers)
50+
self.btn_no.connect("clicked", self.no_drivers)
4151
self.btn_info.connect("clicked", self.show_info_popover)
4252

4353
def get_finals(self):
4454
return {
4555
"nvidia": {
4656
"use-proprietary": self.use_proprietary,
57+
"use-open": self.use_open,
4758
}
4859
}
4960

50-
def use_open_drivers(self, _):
51-
self.use_proprietary = False
61+
def use_drivers(self, _):
62+
self.use_open = self.suggested_drivers == "open"
63+
self.use_proprietary = self.suggested_drivers == "proprietary"
64+
5265
self.__window.next()
5366

54-
def use_proprietary_drivers(self, _):
55-
self.use_proprietary = True
67+
def no_drivers(self, _):
68+
self.use_proprietary = False
69+
self.use_open = False
5670
self.__window.next()
5771

5872
def show_info_popover(self, _):
5973
self.info_popover.popup()
74+
75+
def get_suggested_drivers(self):
76+
"""
77+
lspci | grep -E 'NVIDIA.*(GeForce [4-8][0-9]{2}|GeForce GTX [6-9]..)' && exit 0 || exit 1
78+
0 is legacy, 1 is non-legacy
79+
"""
80+
res = subprocess.run(
81+
"lspci | grep -E 'NVIDIA.*(GeForce [4-8][0-9]{2}|GeForce GTX [6-9]..)' && exit 0 || exit 1",
82+
shell=True,
83+
stdout=subprocess.PIPE,
84+
stderr=subprocess.PIPE,
85+
)
86+
if res.returncode == 0:
87+
return "proprietary"
88+
89+
return "open"

vanilla_installer/utils/processor.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,8 @@ def gen_install_recipe(log_path, finals, sys_recipe):
487487
oci_image = final["custom_image"]
488488
elif "nvidia" in final.keys():
489489
if final["nvidia"]["use-proprietary"]:
490+
oci_image = images["nvidia-propietary"]
491+
if final["nvidia"]["use-open"]:
490492
oci_image = images["nvidia"]
491493
elif "vm" in final.keys():
492494
if final["vm"]["use-vm-tools"]:
@@ -722,7 +724,7 @@ def gen_install_recipe(log_path, finals, sys_recipe):
722724
[
723725
"mkdir -p /etc/abroot",
724726
'echo "$(head -n-1 /usr/share/abroot/abroot.json),\n \\"PartCryptVar\\": \\"/dev/mapper/vos--var-var\\",\n \\"thinProvisioning\\": true,\n \\"thinInitVolume\\": \\"vos-init\\"\n}" > /etc/abroot/abroot.json',
725-
'cp /etc/abroot/abroot.json /usr/share/abroot/abroot.json',
727+
"cp /etc/abroot/abroot.json /usr/share/abroot/abroot.json",
726728
],
727729
chroot=True,
728730
)

0 commit comments

Comments
 (0)