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_datavars import glob_attr
from os.path import exists as pathexists
class clLocale:
lang = {
@ -765,22 +766,28 @@ class fillVars(glob_attr):
xorg_conf = '/etc/X11/xorg.conf'
# Try analize Xorg.{DISPLAY}.log
display = os.environ.get('DISPLAY')
if display and os.path.exists(xorg_modules_dir):
list_avialable_drivers = os.listdir(xorg_modules_dir)
if list_avialable_drivers:
reDriver = re.compile('|'.join(list_avialable_drivers))
display_number = re.search(r':(\d+)\..*', display)
if display_number:
xorg_log_file = '/var/log/Xorg.%s.log' % \
display_number.group(1)
if os.path.exists(xorg_log_file):
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)
if pathexists(xorg_modules_dir):
list_avialable_drivers = \
map(lambda x: x[:-7],
filter(lambda x: x.endswith('_drv.so'),
os.listdir(xorg_modules_dir)))
else:
list_avialable_drivers = []
if display and list_avialable_drivers:
reDriver = re.compile('|'.join(map(lambda x: "%s_drv.so"%x,
list_avialable_drivers)))
display_number = re.search(r':(\d+)\..*', display)
if display_number:
xorg_log_file = '/var/log/Xorg.%s.log' % \
display_number.group(1)
if os.path.exists(xorg_log_file):
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
if os.path.exists(xorg_conf):
@ -791,7 +798,19 @@ class fillVars(glob_attr):
matchSect.group(0),re.S)
if resDriver:
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):
"""Производитель видеокарты"""

Loading…
Cancel
Save