Change fill method of video driver

develop
Mike Hiretsky 14 years ago
parent eb4406704d
commit 2881a51155

@ -23,6 +23,7 @@ import cl_overriding
from cl_ldap import ldapUser from cl_ldap import ldapUser
from cl_datavars import glob_attr from cl_datavars import glob_attr
from os.path import exists as pathexists
class clLocale: class clLocale:
lang = { lang = {
@ -765,22 +766,28 @@ class fillVars(glob_attr):
xorg_conf = '/etc/X11/xorg.conf' xorg_conf = '/etc/X11/xorg.conf'
# Try analize Xorg.{DISPLAY}.log # Try analize Xorg.{DISPLAY}.log
display = os.environ.get('DISPLAY') display = os.environ.get('DISPLAY')
if display and os.path.exists(xorg_modules_dir): if pathexists(xorg_modules_dir):
list_avialable_drivers = os.listdir(xorg_modules_dir) list_avialable_drivers = \
if list_avialable_drivers: map(lambda x: x[:-7],
reDriver = re.compile('|'.join(list_avialable_drivers)) filter(lambda x: x.endswith('_drv.so'),
display_number = re.search(r':(\d+)\..*', display) os.listdir(xorg_modules_dir)))
if display_number: else:
xorg_log_file = '/var/log/Xorg.%s.log' % \ list_avialable_drivers = []
display_number.group(1) if display and list_avialable_drivers:
if os.path.exists(xorg_log_file): reDriver = re.compile('|'.join(map(lambda x: "%s_drv.so"%x,
matchStrs = [i for i in open(xorg_log_file) list_avialable_drivers)))
if "drv" in i and reDriver.search(i)] display_number = re.search(r':(\d+)\..*', display)
if matchStrs: if display_number:
resDriver = re.search(r'([^/]+)_drv.so', xorg_log_file = '/var/log/Xorg.%s.log' % \
matchStrs[-1]) display_number.group(1)
if resDriver: if os.path.exists(xorg_log_file):
return resDriver.group(1) matchStrs = [i for i in open(xorg_log_file)
if "drv" in i and reDriver.search(i)]
if matchStrs:
resDriver = re.search(r'([^/]+)_drv.so',
matchStrs[-1])
if resDriver:
return resDriver.group(1)
# analize /etc/X11/xorg.conf # analize /etc/X11/xorg.conf
if os.path.exists(xorg_conf): if os.path.exists(xorg_conf):
@ -791,7 +798,19 @@ class fillVars(glob_attr):
matchSect.group(0),re.S) matchSect.group(0),re.S)
if resDriver: if resDriver:
return resDriver.group(1) return resDriver.group(1)
return "vesa" defaultDriver = {
'vesa':'vesa',
'nvidia':'nvidia' if "nvidia" in list_avialable_drivers else "nv",
'ati':'fglrx' if "fglrx" in list_avialable_drivers else "radeon",
'intel':'intel',
'via':'via',
'vmware':'vmware'}
hr_video = self.Get('hr_video')
if hr_video in defaultDriver and \
defaultDriver[hr_video] in list_avialable_drivers:
return defaultDriver[hr_video]
else:
return "vesa"
def get_hr_video(self): def get_hr_video(self):
"""Производитель видеокарты""" """Производитель видеокарты"""

Loading…
Cancel
Save