%PDF- %PDF-
Direktori : /usr/share/ubuntu-drivers-common/detect/ |
Current File : //usr/share/ubuntu-drivers-common/detect/sl-modem.py |
# ubuntu-drivers-common custom detect plugin for sl-modem # # (C) 2012 Canonical Ltd. # Author: Martin Pitt <martin.pitt@ubuntu.com> import os import re import logging import subprocess modem_re = re.compile(r'^\s*\d+\s*\[Modem\s*\]') modem_as_subdevice_re = re.compile(r'^card [0-9].*[mM]odem') pkg = 'sl-modem-daemon' def detect(apt_cache): # Check in /proc/asound/cards try: with open('/proc/asound/cards') as fd: for line in fd: if modem_re.match(line): return [pkg] except IOError as e: logging.debug('could not open /proc/asound/cards: %s', e) # Check aplay -l try: env = os.environ.copy() try: del env['LANGUAGE'] except KeyError: pass env['LC_ALL'] = 'C' try: aplay = subprocess.Popen( ['aplay', '-l'], env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) (aplay_out, aplay_err) = aplay.communicate() if aplay.returncode != 0: logging.error('aplay -l failed with %i: %s' % (aplay.returncode, aplay_err)) return None except FileNotFoundError: logging.error('aplay command not found') return None except OSError: logging.debug('could not open aplay -l. Skipping sl-modem detection') return None for row in aplay_out.splitlines(): if modem_as_subdevice_re.match(row): return [pkg] return None