|
|
|
@ -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):
|
|
|
|
|
"""Производитель видеокарты"""
|
|
|
|
|