Изменен выбор видеодрайверов, изменено сообщение о bios_grub

master3.3 3.2.0_alpha10
Mike khiretskiy 10 years ago
parent a46fe8e072
commit 10380e2555

@ -36,6 +36,14 @@ class VideoVariable(Variable):
Video variables not using for flash installation Video variables not using for flash installation
""" """
xorg_need = True xorg_need = True
default_video = "default"
driver_names = {'nvidia': _("Nvidia proprietary video driver"),
'fglrx': _("Ati proprietary video driver"),
'intel': _("Intel video driver"),
'radeon': _("Ati open source video driver"),
'nouveau': _("Nvidia open source video driver"),
'default': _("X.Org Server auto-detect")
}
def uncompatible(self): def uncompatible(self):
""" """
@ -103,8 +111,7 @@ class VariableOsInstallX11VideoAvailable(VideoVariable):
Get available (already installed or installable drivers Get available (already installed or installable drivers
""" """
type = "list" type = "list"
supported = ["nvidia","vboxvideo","sis","nv", supported = ["nvidia", "fglrx", "nouveau", "intel", "radeon"]
"fglrx","nouveau","intel","ati","radeon"]
def get(self): def get(self):
image = self.Get('cl_image') image = self.Get('cl_image')
@ -113,20 +120,26 @@ class VariableOsInstallX11VideoAvailable(VideoVariable):
try: try:
distrPath = image.getDirectory() distrPath = image.getDirectory()
if isPkgInstalled('xorg-server',prefix=distrPath): if isPkgInstalled('xorg-server',prefix=distrPath):
return sorted(filter(self.supported.__contains__, return (sorted(filter(self.supported.__contains__,
getAvailableVideo(prefix=distrPath)))+['other'] getAvailableVideo(prefix=distrPath))) +
[self.default_video])
except DistributiveError as e: except DistributiveError as e:
pass pass
return [] return []
def humanReadable(self):
return map(lambda x: self.driver_names.get(x, x), self.Get())
class VariableOsX11KmsVideoDrv(ReadonlyVariable): class VariableOsX11KmsVideoDrv(ReadonlyVariable):
""" """
Список KMS драйверов Список KMS драйверов
""" """
type = "list" type = "list"
value = ["radeon","i915","intel","nouveau","ati"] value = ["radeon", "intel", "nouveau"]
class VariableOsInstallX11VideoDrv(Variable): class VariableOsInstallX11VideoDrv(VideoVariable):
""" """
Video driver used by xorg Video driver used by xorg
""" """
@ -141,16 +154,17 @@ class VariableOsInstallX11VideoDrv(Variable):
def choice(self): def choice(self):
"""Get available (already installed or installable drivers""" """Get available (already installed or installable drivers"""
if self.Get('os_install_x11_server_set') == 'on': if self.Get('os_install_x11_server_set') == 'on':
return self.Get('os_install_x11_video_available') values = self.Get('os_install_x11_video_available')
else: else:
return self.Get('os_x11_kms_video_drv') + ["other"] values = self.Get('os_x11_kms_video_drv') + [self.default_video]
return map(lambda x: (x, self.driver_names.get(x, x)), values)
def get(self): def get(self):
if self.Get('os_install_x11_server_set') == 'on': if self.Get('os_install_x11_server_set') == 'on':
# get available videodriver list from install or configure distributive # get available videodriver list from install or configure distributive
list_video = self.Choice('os_install_x11_video_drv') list_video = self.Choice('os_install_x11_video_drv')
if not list_video: if not list_video:
return "other" return self.default_video
# if type system is usb-hdd then get detect video driver # if type system is usb-hdd then get detect video driver
if self.Get('os_install_root_type') == 'usb-hdd': if self.Get('os_install_root_type') == 'usb-hdd':
methods = ((getVideoFromModules,()), methods = ((getVideoFromModules,()),
@ -167,7 +181,7 @@ class VariableOsInstallX11VideoDrv(Variable):
drv = func(*args) drv = func(*args)
if drv in list_video: if drv in list_video:
return drv return drv
return "other" return self.default_video
else: else:
for drv in self.choice(): for drv in self.choice():
videoSysPath = path.join("/sys/module",drv,"refcnt") videoSysPath = path.join("/sys/module",drv,"refcnt")
@ -175,7 +189,7 @@ class VariableOsInstallX11VideoDrv(Variable):
if refcnt.isdigit() and int(refcnt) > 0: if refcnt.isdigit() and int(refcnt) > 0:
return {'i915':'intel'}.get(drv,drv) return {'i915':'intel'}.get(drv,drv)
else: else:
return "other" return self.default_video
pkgDrvMap = {'nvidia':('NVidia','x11-drivers/nvidia-drivers'), pkgDrvMap = {'nvidia':('NVidia','x11-drivers/nvidia-drivers'),
'fglrx':('ATI','x11-drivers/ati-drivers'), 'fglrx':('ATI','x11-drivers/ati-drivers'),
@ -190,7 +204,7 @@ class VariableOsInstallX11VideoDrv(Variable):
",".join(availDrvs)) ",".join(availDrvs))
else: else:
if not value in getInstalledVideo(prefix="/") and \ if not value in getInstalledVideo(prefix="/") and \
not value in ("auto","other"): not value in ("auto",self.default_video):
error =_("video driver %s is unavailable")%value error =_("video driver %s is unavailable")%value
if value in self.pkgDrvMap: if value in self.pkgDrvMap:
error += ". " + (_("Install driver %s with:") error += ". " + (_("Install driver %s with:")
@ -198,7 +212,7 @@ class VariableOsInstallX11VideoDrv(Variable):
error += "\n" + ("emerge %s"%self.pkgDrvMap[value][1]) error += "\n" + ("emerge %s"%self.pkgDrvMap[value][1])
raise VariableError(error) raise VariableError(error)
else: else:
availDrivers = self.Get('os_x11_kms_video_drv') + ["other"] availDrivers = self.Get('os_x11_kms_video_drv') + [self.default_video]
if not value in availDrivers: if not value in availDrivers:
raise VariableError("Only %s drivers are available" % raise VariableError("Only %s drivers are available" %
",".join(availDrivers)) ",".join(availDrivers))

@ -1733,18 +1733,19 @@ class VariableOsInstallMbr(LocationHelper,Variable):
func=lambda os_disk_id,os_disk_parent:( func=lambda os_disk_id,os_disk_parent:(
os_disk_id == 'EF02' and os_disk_parent == mbrDisk), os_disk_id == 'EF02' and os_disk_parent == mbrDisk),
limit=1) limit=1)
bios_grub_size = self.Get('cl_autopartition_bios_grub_size')
minsize = "%dMb" % (int(bios_grub_size) / Sizes.M)
if not efisize: if not efisize:
raise VariableError( raise VariableError(
_("Disk %s must have a 'bios_grub' partition")%mbrDisk) _("Boot device must have BIOS Boot "
"partition ({minsize})").format(minsize=minsize))
# проверка размера EF02 при установке на btrfs # проверка размера EF02 при установке на btrfs
elif useBtrfs: elif useBtrfs:
bios_grub_size = self.Get('cl_autopartition_bios_grub_size') if (efisize.isdigit() and bios_grub_size.isdigit() and
if (efisize.isdigit() and bios_grub_size.isdigit() and
int(efisize) < int(bios_grub_size)): int(efisize) < int(bios_grub_size)):
raise VariableError( raise VariableError(
_("Disk {diskname} must have a 'bios_grub' " _("Boot device must have BIOS Boot partition "
"partition with size at least {size}Mb").format( "({minsize})").format(minsize=minsize))
diskname=mbrDisk,size=int(bios_grub_size)/Sizes.M))
if value: if value:
if self.Get('os_grub2_path'): if self.Get('os_grub2_path'):
self.checkForGrub2() self.checkForGrub2()

Loading…
Cancel
Save