diff --git a/install/variables/audio.py b/install/variables/audio.py index 0243ec3..5dc7a1c 100644 --- a/install/variables/audio.py +++ b/install/variables/audio.py @@ -33,13 +33,12 @@ class VariableOsAudioData(ReadonlyTableVariable): 'os_audio_name'] def get(self,hr=False): - alsaInfo = getProgPath('/usr/bin/alsa-info') - if not alsaInfo: + data = readFile('/proc/asound/cards') + cards = re.findall('^\s*(\d+).*\n\s+(\S.*) at .*$',data,re.M) + if cards: + return map(list, cards) + else: return [[]] - entry = re.compile('^Card hw:(\d+)\s*[^/]+/\'(.*?) at .*$') - return tuple(map(lambda x:x.groups(), - filter(None,map(entry.search, - process(alsaInfo,'--stdout',envdict=os.environ))))) setValue = Variable.setValue diff --git a/install/variables/kernel.py b/install/variables/kernel.py index 42ee87a..6fa1bd7 100644 --- a/install/variables/kernel.py +++ b/install/variables/kernel.py @@ -139,7 +139,9 @@ class KernelHelper: """Get files from "pathname" has "descr" in descriptions""" filelist = map(lambda x:path.join(pathname,x),os.listdir(pathname)) ftype = typeFile(magic=MAGIC_COMPRESS|MAGIC_SYMLINK).getMType - filesWithType = map(lambda x:(x,ftype(x)), filelist) + filesWithType = map(lambda x:(x,ftype(x)), + filter(path.exists, + filelist)) return filter(lambda x:descr in x[1],filesWithType) def getInitrd(self,arch,shortname,chroot,kernel,suffix="",notsuffix=""): diff --git a/install/variables/net.py b/install/variables/net.py index d8d22f6..e9e400d 100644 --- a/install/variables/net.py +++ b/install/variables/net.py @@ -107,11 +107,18 @@ class VariableOsInstallNetInterfacesOrig(NetHelper,ReadonlyVariable): return self.Get('os_install_net_interfaces') def getOrig(x): try: - nameParam = filter(lambda x:x.startswith("ID_NET_NAME_PATH="), - process("udevadm","test-builtin","net_id", - "/sys/class/net/%s"%x)) + nameParam = \ + map(lambda x:x.partition('=')[::2], + filter(lambda x:x.startswith("ID_NET_NAME_PATH=") or + x.startswith("ID_NET_NAME_ONBOARD="), + process("udevadm","test-builtin","net_id", + "/sys/class/net/%s"%x))) if nameParam: - return nameParam[0].partition('=')[2].strip() or x + sortOrder = {'ID_NET_NAME_PATH':0, + 'ID_NET_NAME_ONBOARD':1} + nameParam = sorted(nameParam, + key=lambda x:sortOrder.get(x[0],-1)) + return nameParam[-1][1].strip() or x except Exception as e: print str(e) return x