- def detectWlanModule(self):
- self.wlanmodule = None
- rt73_dir = "/sys/bus/usb/drivers/rt73/"
- zd1211b_dir = "/sys/bus/usb/drivers/zd1211b/"
- madwifi_dir = "/sys/bus/pci/drivers/ath_pci/"
- if os_path.exists(madwifi_dir):
- files = listdir(madwifi_dir)
- if len(files) >= 1:
- self.wlanmodule = 'madwifi'
- if os_path.exists(rt73_dir):
- rtfiles = listdir(rt73_dir)
- if len(rtfiles) == 2:
- self.wlanmodule = 'ralink'
- if os_path.exists(zd1211b_dir):
- zdfiles = listdir(zd1211b_dir)
- if len(zdfiles) == 1:
- self.wlanmodule = 'zydas'
- return self.wlanmodule
+ def activateInterface(self,iface,callback = None):
+ if iface == 'eth0' and self.onRemoteRootFS():
+ if callback is not None:
+ callback(True)
+ return
+ if not self.activateInterfaceConsole:
+ self.activateInterfaceConsole = Console()
+ commands = []
+ commands.append("ifup " + iface)
+ self.deactivateInterfaceConsole.eBatch(commands, self.activateInterfaceFinished, callback, debug=True)
+
+ def activateInterfaceFinished(self,extra_args):
+ callback = extra_args
+ if self.activateInterfaceConsole:
+ if len(self.activateInterfaceConsole.appContainers) == 0:
+ if callback is not None:
+ callback(True)
+
+ def sysfsPath(self, iface):
+ return '/sys/class/net/' + iface
+
+ def isWirelessInterface(self, iface):
+ if os_path.isdir(self.sysfsPath(iface) + '/wireless'):
+ return True
+ else:
+ ifaces = file('/proc/net/wireless').read().strip()
+ if iface in ifaces:
+ return True
+ else:
+ return False
+
+ def getWlanModuleDir(self, iface = None):
+ devicedir = self.sysfsPath(iface) + '/device'
+ moduledir = devicedir + '/driver/module'
+ if not os_path.isdir(moduledir):
+ tmpfiles = listdir(devicedir)
+ moduledir_found = False
+ for x in tmpfiles:
+ if x.startswith("1-"):
+ moduledir_found = True
+ moduledir = devicedir + '/' + x + '/driver/module'
+ if not moduledir_found:
+ moduledir_found = True
+ if os_path.isdir(devicedir + '/driver'):
+ moduledir = devicedir + '/driver'
+
+ return moduledir
+
+ def detectWlanModule(self, iface = None):
+ if not self.isWirelessInterface(iface):
+ return None
+
+ devicedir = self.sysfsPath(iface) + '/device'
+ if os_path.isdir(devicedir + '/ieee80211'):
+ return 'nl80211'
+
+ moduledir = self.getWlanModuleDir(iface)
+ if os_path.isdir(moduledir):
+ module = os_path.basename(os_path.realpath(moduledir))
+ if module in ('ath_pci','ath5k'):
+ return 'madwifi'
+ if module in ('rt73','rt73'):
+ return 'ralink'
+ if module == 'zd1211b':
+ return 'zydas'
+ return 'wext'