From 8a16d003a5e8d5c0c70dd6816a729f14a81d36ad Mon Sep 17 00:00:00 2001 From: Mike Hiretsky Date: Tue, 19 Apr 2011 17:34:49 +0400 Subject: [PATCH] Change detect video driver logic. --- pym/cl_fill.py | 20 ++++++-------------- pym/cl_vars_share.py | 26 ++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/pym/cl_fill.py b/pym/cl_fill.py index d67eb18..ec5bac0 100644 --- a/pym/cl_fill.py +++ b/pym/cl_fill.py @@ -472,23 +472,15 @@ class fillVars(varsShare): if resDriver and resDriver.group(1) in list_avialable_drivers: return resDriver.group(1) - videoVal = self.getValueFromCmdLine("calculate",4) + videoVal = self.getValueFromCmdLine("calculate","video") videoVal = {'i915':'intel'}.get(videoVal,videoVal) if videoVal in list_avialable_drivers: return videoVal - 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" + workedModules = map(lambda x:x[0], + filter(lambda x:x[1].isdigit() and int(x[1])>0, + map(lambda x:x.split()[:3:2], + open('/proc/modules','r')))) + return self.getVideoByDefault(list_avialable_drivers) def get_os_x11_height(self): """Get screen height in pixeles""" diff --git a/pym/cl_vars_share.py b/pym/cl_vars_share.py index 5e6f7ab..316193c 100644 --- a/pym/cl_vars_share.py +++ b/pym/cl_vars_share.py @@ -564,3 +564,29 @@ class varsShare: return progname else: return False + + def getVideoByDefault(self,drivers_list): + """Get video by default, or wrong specified""" + workedModules = map(lambda x:x[0], + filter(lambda x:x[1].isdigit() and int(x[1])>0, + map(lambda x:x.split()[:3:2], + open('/proc/modules','r')))) + if "nvidia" in drivers_list: + defaultNvidia = "nvidia" + elif "nouveau" in workedModules: + defaultNvidia = "nouveau" + else: + defaultNvidia = "nv" + defaultDriver = { + 'vesa':'vesa', + 'nvidia':defaultNvidia, + 'ati':'fglrx' if "fglrx" in drivers_list else "radeon", + 'intel':'intel', + 'via':'via', + 'vmware':'vmware'} + hr_video = self.Get('hr_video') + if hr_video in defaultDriver and \ + defaultDriver[hr_video] in drivers_list: + return defaultDriver[hr_video] + else: + return "vesa"