Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/10/2007, à 23:18

lesauc

Script installation Livebox

Bonjour ,

Chers amis développeurs, je suis tombé il y a peu de temps sur 2 scripts de la distribution française Kaella qui permettent apparement d'installer le wifi sur livebox plus facilement, étant donné les difficultées rencontrées par de nombreux utilisateurs (moi même , franchement j'ai galéré ( et j'y serais toujours si un certain safe93 ne m'avait pas filé un sérieux coup de main))

Voici donc les scripts tels quels :

le 1er

echo "========================================================================="
echo "Lancement du script de connexion à l'ADSL par Livebox en Wifi."
echo "Suivez les instructions, et la connexion sera établie."
echo "========================================================================="
sudo /usr/share/kaella/drivers/box.py
echo -e "Appuyez sur Entrée pour terminer\c" ; read toto

le 2nd :

#! /usr/bin/env python
# -*- coding: iso-8859-1 -*-

###############################################################
# Ce programme est distribué sous licence GPL
# Vous êtes libre de le modifier et/ou de le distribuer
# Une copie de la licence GPL est disponible sur votre système
# dans /usr/share/common-licenses/GPL
#
# CE PROGRAMME EST DISTRIBUÉ "TEL QUEL" AUCUNE GARANTIE DE
# QUELQUE NATURE QUE CE SOIT NE PEUT ÊTRE ACCORDÉE 
#
# Auteur Dominique Müller (zhorglub CHEZ wanadoo POINT fr)
#
# N'oubliez pas de 'tomber' les interfaces inutilisées AVANT
# d'exécuter le script (par ex.: ~# ifconfig eth0 down, si vous comptez
# vous connecter à l'Internet avec une autre interface)
# puis ~# python box.py (en root) pour lancer le script
#
##############################################################

import pygtk
pygtk.require('2.0')
import gtk
import os
import os.path
import string

class App:
	def __init__(self):
		self.wnd = gtk.Window(gtk.WINDOW_TOPLEVEL)
		self.wnd.set_title("Configurer une passerelle domestique")
		self.wnd.set_border_width(2)
		
		self.basebox = gtk.VBox(False, 0)
		self.radiobox = gtk.VBox(False,0)
		self.wnd.add(self.basebox)
		self.toetc = False
		
		
		
		if self.check_user():
		
			self.l1 = gtk.Label("""		1. Selectionnez le type de connexion que vous souhaitez utiliser			""")
			self.basebox.pack_start(self.l1, True, False, 0)
			self.l1.show()
		
			self.basebox.pack_start(self.radiobox, False, False, 15)
		
			self.radio = gtk.RadioButton(None, """Connexion par cable ethernet ou
configuration reseau""")
			self.radio.connect("toggled", self.res_set, 0)
			self.radio.set_active(True)
			self.radiobox.pack_start(self.radio, False, False, 5)
			self.radio.show()
		
			self.resolution = 0
		
			self.radio = gtk.RadioButton(self.radio, "Connexion par cable USB")
			self.radio.connect("toggled", self.res_set, 1)
			self.radiobox.pack_start(self.radio, False, False, 5)
			self.radio.show()
		
			self.radio = gtk.RadioButton(self.radio, "Connexion WIFI (Ndiswrapper)")
			self.radio.connect("toggled", self.res_set, 2)
			self.radiobox.pack_start(self.radio, False, False, 5)
			self.radio.show()
		
			self.radiobox.show()
	
			self.l2 = gtk.Label("  ")
			self.basebox.pack_start(self.l2, True, True, 0)
			self.l2.show()
		
			self.separator1 = gtk.HSeparator()
			self.basebox.pack_start(self.separator1, False, True, 5)
			self.separator1.show()
		
			self.btn1 = gtk.Button("  Annuler  ")
			self.basebox.pack_end(self.btn1, True, False, 0)
			self.btn1.connect("clicked", gtk.main_quit, None)
			self.btn1.show()
		
			self.btn0 = gtk.Button("  Etape suivante  >>  ")
			self.basebox.pack_end(self.btn0, True, False, 0)
			self.btn0.connect("clicked", self.next_1, None)
			self.btn0.show()
		
			self.basebox.show()
		self.wnd.show()	
		return
	
	def res_set(self, w, data):
		self.resolution = data
		if data == 1:
			os.system('modprobe usbnet')
		return
	
	def dhcp_set(self, w, data):
		self.dhcp = data
		return

	def next_1(self, w, data):
		# Détection des cartes réseaux (portage: idem netcardconfig)
		self.NETDEVICES = []
		s = None
		i,o = os.popen2("cat /proc/net/dev | awk -F: '/eth.:|tr.:|wlan.:/{print $1}'")
		i.close()
		while s != '':
			s = o.readline()
			tmp = ''
			for c in s:
				if c >= '0':
					tmp = tmp + c
			s = tmp
			self.NETDEVICES = self.NETDEVICES + [s]
		o.close()
		
		self.l1.destroy()
		self.radiobox.destroy()
		self.l2.destroy()
		self.btn0.destroy()
		self.separator1.destroy()
		
		self.l1 = gtk.Label("""		2. Selectionnez le type d'adresse IP a configurer (statique/dynamique)		""")
		self.basebox.pack_start(self.l1, True, True, 0)
		self.l1.show()
		
		self.radiobox = gtk.VBox(False,0)
		self.basebox.pack_start(self.radiobox, False, False, 15)

		self.radio = gtk.RadioButton(None, "Attribuer automatiquement une adresse (DHCP)")
		self.radio.connect("toggled", self.dhcp_set, True)
		self.radio.set_active(True)
		self.radiobox.pack_start(self.radio, False, True, 5)
		self.radio.show()
		
		self.dhcp = True
		
		self.radio = gtk.RadioButton(self.radio, "Configuration manuelle (IP statique)")
		self.radio.connect("toggled", self.dhcp_set, False)
		self.radiobox.pack_start(self.radio, False, True, 5)
		self.radio.show()
		
		self.radiobox7 = gtk.HBox(False, 0)
		self.radiobox.pack_start(self.radiobox7, False, False, 5)
		self.sauver = gtk.CheckButton(" Sauver vers /etc/network/interfaces")
		self.radiobox7.pack_end(self.sauver, False, True, 5)
		self.sauver.show()
		infobulles = gtk.Tooltips()
		infobulles.set_tip(self.sauver, "Cochez cette case pour sauvegarder la configuration\nVotre interface reseau sera alors disponible au demarrage sans passer par un script ou une suite de commandes.")
		self.sauver.connect("toggled", self.fsavetoetc, None)
		self.radiobox7.show()
		self.radiobox.show()
		
		self.l2 = gtk.Label("  ")
		self.basebox.pack_start(self.l2, True, True, 0)
		self.l2.show()

		self.btn0 = gtk.Button("  Etape suivante  >>  ")
		self.basebox.pack_end(self.btn0, True, False, 0)
		self.btn0.connect("clicked", self.next_2, None)
		self.btn0.show()
		
		self.separator1 = gtk.HSeparator()
		self.basebox.pack_end(self.separator1, False, True, 5)
		self.separator1.show()


		return

	def next_2(self, w, data):
		if self.dhcp:
			self.next_3(w, data)
		else:
			self.l1.destroy()
			self.radiobox.destroy()
			self.l2.destroy()
			self.btn0.destroy()
			self.separator1.destroy()
			
			self.l1 = gtk.Label("""	Veuillez indiquer dans les champs suivants les valeurs
	de configuration de votre reseau.
	
	Pour la Livebox d'Orange, les valeurs par defaut conviennent dans la plupart des cas.
	
	Ajustez alors le parametre 'Adresse IP' en fonction de vos besoins		""")
			self.basebox.pack_start(self.l1, True, True, 0)
			self.l1.show()
		
			self.radiobox = gtk.VBox(False,0)
			self.basebox.pack_start(self.radiobox, False, False, 15)
			
			self.radiobox1 = gtk.HBox(False, 0)
			self.radiobox.pack_start(self.radiobox1, False, False, 5)
			lbl = gtk.Label("Adresse IP ")
			self.radiobox1.pack_start(lbl, False, False, 5)
			lbl.show()
			self.ip = gtk.Entry(max=0)
			self.radiobox1.pack_end(self.ip, False, False, 5)
			self.ip.set_text("192.168.1.51")
			self.ip.show()
			self.radiobox1.show()
			
			
			self.radiobox2 = gtk.HBox(False, 0)
			self.radiobox.pack_start(self.radiobox2, False, False, 5)
			lbl = gtk.Label(" Masque de sous-reseau ")
			self.radiobox2.pack_start(lbl, False, False, 0)
			lbl.show()
			self.netmask = gtk.Entry(max=0)
			self.radiobox2.pack_end(self.netmask, False, True, 5)
			self.netmask.set_text("255.255.255.0")
			self.netmask.show()
			self.radiobox2.show()
			
			
			self.radiobox3 = gtk.HBox(False, 0)
			self.radiobox.pack_start(self.radiobox3, False, False, 5)
			lbl = gtk.Label(" Masque de diffusion reseau")
			self.radiobox3.pack_start(lbl, False, False, 0)
			lbl.show()
			self.broadcast = gtk.Entry(max=0)
			self.radiobox3.pack_end(self.broadcast, False, True, 5)
			self.broadcast.set_text("192.168.1.255")
			self.broadcast.show()
			self.radiobox3.show()
			
			
			self.radiobox4 = gtk.HBox(False, 0)
			self.radiobox.pack_start(self.radiobox4, False, False, 5)
			lbl = gtk.Label(" Adresse de la passerelle ")
			self.radiobox4.pack_start(lbl, False, False, 0)
			lbl.show()
			self.gateway = gtk.Entry(max=0)
			self.radiobox4.pack_end(self.gateway, False, True, 5)
			self.gateway.set_text("192.168.1.1")
			self.gateway.show()
			self.radiobox4.show()
			
			self.radiobox5 = gtk.HBox(False, 0)
			self.radiobox.pack_start(self.radiobox5, False, False, 5)
			lbl = gtk.Label(" Serveur DNS primaire")
			self.radiobox5.pack_start(lbl, False, False, 0)
			lbl.show()
			self.dns = gtk.Entry(max=0)
			self.radiobox5.pack_end(self.dns, False, True, 5)
			self.dns.set_text("80.10.246.130")
			self.dns.show()
			self.radiobox5.show()
			
			self.radiobox6 = gtk.HBox(False, 0)
			self.radiobox.pack_start(self.radiobox6, False, False, 5)
			lbl = gtk.Label(" Serveur DNS secondaire")
			self.radiobox6.pack_start(lbl, False, False, 0)
			lbl.show()
			self.dns2 = gtk.Entry(max=0)
			self.radiobox6.pack_end(self.dns2, False, True, 5)
			self.dns2.set_text("80.10.246.3")
			self.dns2.show()
			self.radiobox6.show()
			
			self.radiobox.show()
			
			self.l2 = gtk.Label("  ")
			self.basebox.pack_start(self.l2, True, True, 0)
			self.l2.show()

			self.btn0 = gtk.Button("  Etape suivante  >>  ")
			self.basebox.pack_end(self.btn0, True, False, 0)
			self.btn0.connect("clicked", self.next_3, None)
			self.btn0.show()
		
			self.separator1 = gtk.HSeparator()
			self.basebox.pack_end(self.separator1, False, True, 5)
			self.separator1.show()
		return
	
	def next_3(self, w, data):
		if self.dhcp == False:
			self.IP = self.ip.get_text()
			self.NETMASK = self.netmask.get_text()
			self.BROADCAST = self.broadcast.get_text()
			self.GATEWAY = self.gateway.get_text()
			self.DNS = self.dns.get_text()
			self.DNS2 = self.dns2.get_text()
			
		self.l1.destroy()
		self.radiobox.destroy()
		self.l2.destroy()
		self.btn0.destroy()
		self.separator1.destroy()
		if self.resolution == 2:
			self.l1 = gtk.Label("""	Renseignez les champs suivants pour configurer
	le dongle Wifi fourni avec votre passerelle a l'aide de NdisWrapper
	NdisWrapper utilise les pilotes Windows(TM) pour votre materiel wifi, il lui
	faut connaitre leur emplacement pour les assimiler, toute resistance serait futile.		
	Il est possible que cela ne puisse pas fonctionner avec votre materiel
			
	Si la Force est avec vous, tout se passera bien	""")
			self.basebox.pack_start(self.l1, True, True, 0)
			self.l1.show()
			
			
			self.radiobox = gtk.VBox(False,0)
			self.basebox.pack_start(self.radiobox, False, False, 15)
			
			self.radiobox1 = gtk.HBox(False, 0)
			self.radiobox.pack_start(self.radiobox1, False, False, 5)
			lbl = gtk.Label(" Emplacement des pilotes Ndis/Windows (*.inf) ")
			self.radiobox1.pack_start(lbl, False, False, 5)
			lbl.show()
			self.choix_ndis = gtk.Button(" Parcourir ")
			self.choix_ndis.connect("clicked", self.select_ndis, None)
			self.choix_ndis.show()
			self.radiobox1.pack_end(self.choix_ndis, True, True, 0)
			self.choix_ndis.show()
			self.ndis_path = gtk.Entry(max=0)
			self.radiobox1.pack_end(self.ndis_path, False, False, 5)
			self.ndis_path.show()
			self.radiobox1.show()
			
			self.radiobox2 = gtk.HBox(False, 0)
			self.radiobox.pack_start(self.radiobox2, False, False, 5)
			lbl = gtk.Label(" Votre ESSID ")
			self.radiobox2.pack_start(lbl, False, False, 0)
			lbl.show()
			
			self.essid = gtk.Entry(max=0)
			self.radiobox2.pack_end(self.essid, False, True, 5)
			self.essid.set_text("Wanadoo_xxxx")
			self.essid.show()
			scan = gtk.Button(' Scanner  les reseaux ')
			self.radiobox2.pack_end(scan, False, False, 0)
			scan.show()
			scan.connect("clicked", self.scan_ntwk, None)
			self.radiobox2.show()
			
			self.radiobox3 = gtk.HBox(False, 0)
			self.radiobox.pack_start(self.radiobox3, False, False, 5)
			lbl = gtk.Label(" Clef WEP (avec les tirets) ")
			self.radiobox3.pack_start(lbl, False, False, 0)
			lbl.show()
			self.wep = gtk.Entry(max=0)
			self.radiobox3.pack_end(self.wep, False, True, 5)
			self.wep.show()
			self.radiobox3.show()
			
			self.radiobox4 = gtk.HBox(False, 0)
			self.radiobox.pack_start(self.radiobox4, False, False, 5)
			lbl = gtk.Label("""	 IMPORTANT: N'oubliez pas de mettre votre passerelle en association
	 et d'ajouter l'adresse MAC de votre peripherique a la liste de filtrage
	 a l'aide de l'interface web (http://192.168.1.1 depuis votre navigateur)
 """)
			self.radiobox4.pack_start(lbl, False, False, 0)
			lbl.show()
			self.radiobox4.show()
			
			self.radiobox.show()
			
			self.l2 = gtk.Label("  ")
			self.basebox.pack_start(self.l2, True, True, 0)
			self.l2.show()
			
			self.btn0 = gtk.Button("  Configurer !  ")
			self.basebox.pack_end(self.btn0, True, False, 0)
			self.btn0.connect("clicked", self.next_4, None)
			self.btn0.show()
		
			self.separator1 = gtk.HSeparator()
			self.basebox.pack_end(self.separator1, False, True, 5)
			self.separator1.show()
			
		elif self.resolution == 1:
			self.l1 = gtk.Label("""	Assurez-vous que le cable USB est bien connecte a votre machine
	et a la passerelle	
	Il est possible que cela ne puisse pas fonctionner avec votre materiel
			
	Si la Force est avec vous, tout se passera bien	""")
			self.basebox.pack_start(self.l1, True, True, 0)
			self.l1.show()
			
			self.radiobox = gtk.VBox(False,0)
			self.basebox.pack_start(self.radiobox, False, False, 15)
			
			self.radiobox1 = gtk.HBox(False, 0)
			self.radiobox.pack_start(self.radiobox1, False, False, 5)
			lbl = gtk.Label(" Interface reseau ")
			self.radiobox1.pack_start(lbl, False, False, 5)
			lbl.show()
			
			self.iface = self.netliste()
								
			self.radiobox1.pack_end(self.iface, False, False, 5)
			self.iface.show()
			self.radiobox1.show()
			
			self.radiobox.show()
			
			self.l2 = gtk.Label("  ")
			self.basebox.pack_start(self.l2, True, True, 0)
			self.l2.show()
			
			self.btn0 = gtk.Button("  Configurer !  ")
			self.basebox.pack_end(self.btn0, True, False, 0)
			self.btn0.connect("clicked", self.next_4, None)
			self.btn0.show()
		
			self.separator1 = gtk.HSeparator()
			self.basebox.pack_end(self.separator1, False, True, 5)
			self.separator1.show()
		
		elif self.resolution == 0:
			self.l1 = gtk.Label("""	Assurez-vous que le cable Ethernet est bien connecte a votre machine
	et a la passerelle
	C'est le mode de connexion recommande avec Debian GNU/Linux, tant pour la simplicite		
	que pour la rapidite des transferts	
	Il est possible que cela ne puisse pas fonctionner avec votre materiel si vous avez souscrit	
	certaines options comme la Visiophonie ou le service de television, ces fonctionnalites 
	empechant l'utilisation des ports Ethernet (rouge et jaune sur le cote de la passerelle)
	Il vous faudra alors passer par l'interface web pour les desactiver ou choisir un autre
	mode de connexion.
	
	Si la Force est avec vous, tout se passera bien	""")
			self.basebox.pack_start(self.l1, True, True, 0)
			self.l1.show()
			
			self.radiobox = gtk.VBox(False,0)
			self.basebox.pack_start(self.radiobox, False, False, 15)
			
			self.radiobox1 = gtk.HBox(False, 0)
			self.radiobox.pack_start(self.radiobox1, False, False, 5)
			lbl = gtk.Label(" Interface reseau ")
			self.radiobox1.pack_start(lbl, False, False, 5)
			lbl.show()
			
			
			self.iface = self.netliste()	
			self.radiobox1.pack_end(self.iface, False, False, 5)
			self.iface.show()
			self.radiobox1.show()
			
			self.radiobox.show()
			
			self.l2 = gtk.Label("  ")
			self.basebox.pack_start(self.l2, True, True, 0)
			self.l2.show()
			
			self.btn0 = gtk.Button("  Configurer !  ")
			self.basebox.pack_end(self.btn0, True, False, 0)
			self.btn0.connect("clicked", self.next_4, None)
			self.btn0.show()
		
			self.separator1 = gtk.HSeparator()
			self.basebox.pack_end(self.separator1, False, True, 5)
			self.separator1.show()
		return
	
	def get_active_text(self, combobox):
		model = combobox.get_model()
		active = combobox.get_active()
		if active < 0:
			return None
		return model[active][0]
	
	def scan_ntwk(self, w, d):
		i,o = os.popen2("cat /proc/net/dev | grep 'wlan0'")
		i.close()
		s = o.read()
		o.close()
		if s != '': # Le périf existe déjà
			print "iwlist wlan0 scanning effectue a partir du peripherique deja configure existant"
			essid_list = self.iwlist_exec()
			if essid_list != False:
				self.essid.destroy()
				self.essid = essid_list
				self.radiobox2.pack_end(self.essid, False, True, 5)
				self.essid.show()
				
		elif self.ndis_path.get_text() != '' and s == '': # Un path ndis existe
			print "ndis_path ok --> Installation du pilote et execution de iwlist wlan0 scanning\n"
			print "Installation du pilote situe dans " + self.ndis_path.get_text() + "\n"
			ccmd = "ndiswrapper -i " + self.ndis_path.get_text() + "\n"
			os.system(ccmd)
			print "Insertion du module, croisez les doigts...\n"
			os.system('modprobe ndiswrapper')
			print "Recherche des reseaux sans fil...\n"
			os.system('sleep 3')
			essid_list = self.iwlist_exec()
			if essid_list != False:
				self.essid.destroy()
				self.essid = essid_list
				self.radiobox2.pack_end(self.essid, False, True, 5)
				self.essid.show()
				
		else: # Sinon --> Message d'information
			self.dialog = gtk.Dialog("Information: Scan impossible !", self.wnd, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, None)
		
			string = """
	Erreur: Vous n'avez pas indique de chemin pour les pilotes ndis		
	et aucun peripherique wifi n'est actuellement disponible !
	 
		 """
			label = gtk.Label(string)
			self.dialog.vbox.pack_start(label, False, True, 10)
			label.show()
			sep = gtk.HSeparator()
			self.dialog.vbox.pack_start(sep, False, True, 10)
			sep.show()
			val = gtk.Button(None, gtk.STOCK_OK)
			self.dialog.vbox.pack_end(val, False, True, 10)
			val.show()
			val.connect("clicked", self.dialogdestroy)
			self.dialog.show()
		return
	
	def dialogdestroy(self, w):
		self.dialog.destroy()
		return
	
	def iwlist_exec(self):
		i,o = os.popen2('iwlist wlan0 scanning')
		i.close()
		
		essids = []
		s = None
		i = 0
		while s !='':
			s = o.readline()
			
			p = string.find(s, 'ESSID:"')
			if p != -1:
				i = i + 1
				essids = essids + [s[p+6:-1]]
		o.close()
		print essids
		if i > 1:
			print str(i) + " reseaux sans fil ont ete trouves"
		elif i == 0:
			print "Aucun reseau sans fil detecte"
		else:
			print "1 reseau sans fil a ete trouve"
		if i != 0:	
			list_essids = gtk.combo_box_new_text()
			for item in essids:
				if item != '':
					list_essids.append_text(item)
					list_essids.set_active(0)
		else:
			list_essids = False	
		return list_essids
	
	def netliste(self):
		iface = gtk.combo_box_new_text()
		for line in self.NETDEVICES:
			if line != '':
				iface.append_text(line)
				iface.set_active(0)
		return iface
	
	def next_4(self, w, data):
			
		if (self.resolution == 0) or (self.resolution == 1):
			self.IFACE = self.iface.get_active_text()
			
			self.l1.destroy()
			self.radiobox.destroy()
			self.l2.destroy()
			self.btn0.destroy()
			self.separator1.destroy()
			
			if self.dhcp:
				self.l1 = gtk.Label("""	Configuration de l'interface reseau: """ + self.IFACE + """
	Adresse IP automatique par DHCP		""")
				os.system("pump -k -i " + self.IFACE)
				os.system("ifconfig " + self.IFACE + " down")
				os.system("pump -i " + self.IFACE)
				self.writeToEtc()
			else:
				self.l1 = gtk.Label("""	Configuration de l'interface reseau: """ + self.IFACE + """
	selon vos parametres personnels (IP statique)		""")
				os.system("pump -k -i " + self.IFACE)
				ccmd = self.static_ip_config()
				os.system(ccmd)
				
			self.basebox.pack_start(self.l1, True, True, 0)
			self.l1.show()
			
			self.btn1.destroy()
			self.btn0 = gtk.Button("  Fin de la configuration  ")
			self.basebox.pack_end(self.btn0, True, False, 0)
			self.btn0.connect("clicked", gtk.main_quit, None)
			self.btn0.show()
			
			self.separator1 = gtk.HSeparator()
			self.basebox.pack_end(self.separator1, False, True, 5)
			self.separator1.show()
			
		elif self.resolution == 2:
			self.NDIS_PATH = self.ndis_path.get_text()
			try:
				self.ESSID = self.essid.get_text()
			except:
				self.ESSID = self.essid.get_active_text()
			if self.ESSID[0] == '"':
				self.ESSID = self.ESSID[1:-1]
			self.WEP = self.wep.get_text()
			self.IFACE = "wlan0"
			
			self.l1.destroy()
			self.radiobox.destroy()
			self.l2.destroy()
			self.btn0.destroy()
			self.separator1.destroy()
			
			ccmd = "ndiswrapper -i " + self.NDIS_PATH + "\n"
			os.system(ccmd)
			
			i,o = os.popen2("ndiswrapper -l", "t")
			i.close()
			s = ""
			s = s + "	" + o.readline()
			r = o.readline()
			s = s + "	" + r
			s = s + "	" + o.readline()
			# ça, c'est du boulot à l'arrache :D !
			# 3 lignes et bonsoir !
			o.close()
			
			l = len(r[:-36])
			print r[l:]
			self.l1 = gtk.Label("""	Si la ligne ci-dessous affiche le message:
			
	     driver installed, hardware present
		
	Souriez, votre dongle est reconnu, sinon, ce script n'est pas la solution.
		
		
		
	Resultat: 	""" + r[l:])
			
			self.basebox.pack_start(self.l1, True, True, 0)
			self.l1.show()
			r = r[l:-2]
			if string.find(r, "hardware present") != -1:
				self.l2 = gtk.Label("""	 
	Il semblerait que vous ayez de la chance, le module noyau est insere (modprobe ndiswrapper)
	Votre connexion est (enfin devrait etre ;)) operationnelle	
		""")
			
				self.basebox.pack_start(self.l2, True, True, 0)
				self.l2.show()
				ccmd = "ndiswrapper -m \n"
				ccmd = ccmd + "modprobe ndiswrapper \n"
				ccmd = ccmd + "iwconfig wlan0 essid " + self.ESSID + " \n"
				if self.WEP != "":
					ccmd = ccmd + "iwconfig wlan0 key " + self.WEP + " \n"
				ccmd = ccmd + "ifconfig wlan0 up\n"
				
				os.system(ccmd)
				
				if self.dhcp:
					os.system("pump -k -i " + self.IFACE)
					os.system("ifconfig " + self.IFACE + " down")
					os.system("pump -i " + self.IFACE)
					self.writeToEtc()
				else:
					os.system("pump -k -i " + self.IFACE)
					ccmd = self.static_ip_config()
					os.system(ccmd)
			
				self.btn0 = gtk.Button("  Fin de la configuration  ")
				self.basebox.pack_end(self.btn0, True, False, 0)
				self.btn0.connect("clicked", gtk.main_quit, None)
				self.btn0.show()
				self.btn1.destroy()
				self.separator1 = gtk.HSeparator()
				self.basebox.pack_end(self.separator1, False, True, 5)
				self.separator1.show()
			else:
				self.l2 = gtk.Label("""	 
	Ooops! Le peripherique n'est pas reconnu (ou pas branche)
	      Desole, il faudra essayer autre chose...	""")
			
				self.basebox.pack_start(self.l2, True, True, 0)
				self.l2.show()
				self.l2 = gtk.Label("  ")
				self.basebox.pack_start(self.l2, True, True, 0)
				self.l2.show()
			
				self.btn0 = gtk.Button("  Quitter  ")
				self.basebox.pack_end(self.btn0, True, False, 0)
				self.btn0.connect("clicked", gtk.main_quit, None)
				self.btn0.show()
				self.btn1.destroy()
				self.separator1 = gtk.HSeparator()
				self.basebox.pack_end(self.separator1, False, True, 5)
				self.separator1.show()
		return
			
	def fsavetoetc(self, w, d):
		if w.get_active():
			self.toetc = True
		else:
			self.toetc = False
		return
	
	def static_ip_config(self):
		ccmd = "ifconfig " + self.IFACE + " " + self.IP + " netmask " + self.NETMASK + " broadcast " + self.BROADCAST + " up\n"
		ccmd = ccmd + "route add default gw " + self.GATEWAY + "\n"
		
		if self.DNS != '':
			f=open('/etc/resolv.conf', 'w')
			f.write('nameserver ' + self.DNS + "\n")
			if self.DNS2 != '':
				f.write('nameserver ' + self.DNS2 + "\n")
			else:
				f.write("nameserver 0.0.0.0\n")
			f.close()
		self.writeToEtc()

		return ccmd
				
	def writeToEtc(self):
		if self.toetc:
			g=open('/etc/network/interfaces','r')
			s=g.read()
			s2 = s
			g.close()
			f=open('/etc/network/interfaces.old', 'w')
			f.write(s)
			f.close()
			p=string.find(s, 'auto ')
			if p != -1:
				p = p + 5
				p2 = p + string.find(s[p:], "\n")
				rp = string.find(s[p:p2], self.IFACE)
				if rp == -1:
					s2 = s[:p2] + ' ' + self.IFACE + s[p2:]
					p3 = p2 + len(self.IFACE) + 1
					s = s2
				else:
					p3 = p2
			else:
				p3 = 0
				
			p=string.find(s[p3:], 'iface ' + self.IFACE)
			if p == -1:
				if not self.dhcp:
					s2 = s + "\niface " + self.IFACE + " inet static\n"
					s2 = s2 + "	address " + self.IP + "\n"
					s2 = s2 + "	netmask " + self.NETMASK + "\n"
					s2 = s2 + "	network " + self.IP[:10] + "0\n"
					s2 = s2 + "	broadcast " + self.BROADCAST + "\n"
					s2 = s2 + "	gateway " + self.GATEWAY + "\n"
					if self.resolution == 2:
						s2 = s2 + "	wireless-essid " + self.ESSID + "\n"
						if self.WEP != '':
							s2 = s2 + "	wireless-key " + self.WEP + "\n"
				else:
					s2 = s + "\niface " + self.IFACE + " inet dhcp\n"
			else:
				if not self.dhcp:
					s2 = s[:p+p3] + "iface " + self.IFACE + " inet static\n"
					s2 = s2 + "	address " + self.IP + "\n"
					s2 = s2 + "	netmask " + self.NETMASK + "\n"
					s2 = s2 + "	network " + self.IP[:10] + "0\n"
					s2 = s2 + "	broadcast " + self.BROADCAST + "\n"
					s2 = s2 + "	gateway " + self.GATEWAY + "\n"
					if self.resolution == 2:
						s2 = s2 + "	wireless-essid " + self.ESSID + "\n"
						if self.WEP != '':
							s2 = s2 + "	wireless-key " + self.WEP + "\n"
					p4 = string.find(s[p+p3+6:], 'iface ')
					if p4 != -1:
						s2 = s2 + "\n" + s[p+p3+6+p4:]
				else:
					s2 = s[:p+p3] + "iface " + self.IFACE + " inet dhcp\n"
					p4 = string.find(s[p+p3+6:], 'iface ')
					if p4 != -1:
						s2 = s2 + "\n" + s[p+p3+6+p4:]
				
			f=open('/etc/network/interfaces', 'w')
			f.write(s2)
			f.close()
			print s2
		return
	
	def select_ndis(self, w, d):
		self.filew = gtk.FileSelection("Choisir le pilote Ndis/Windows")
		self.filew.ok_button.connect("clicked", self.file_ok_sel)
		self.filew.cancel_button.connect("clicked", self.file_cn_sel)
		self.filew.show()
		return
	
	def file_ok_sel(self, w):
		self.ndis_path.set_text(self.filew.get_filename())
		self.filew.destroy()
		return
	
	def file_cn_sel(self, w):
		self.filew.destroy()
		return
	
	def check_user(self):
		os.system('whoami > /tmp/livebscript.tmp')
		f = open('/tmp/livebscript.tmp', 'r')
		l = f.readline()
		f.close()
		os.system('rm -f /tmp/livebscript.tmp')
		if l[:4] != 'root':
			self.l1 = gtk.Label("""	Vous devez avoir les privileges du super-utilisateur (root)
	pour utiliser ce script !		""")
			self.basebox.pack_start(self.l1, True, False, 0)
			self.l1.show()
			
			self.separator1 = gtk.HSeparator()
			self.basebox.pack_start(self.separator1, False, True, 5)
			self.separator1.show()
		
			self.btn1 = gtk.Button("  Quitter  ")
			self.basebox.pack_end(self.btn1, True, False, 0)
			self.btn1.connect("clicked", gtk.main_quit, None)
			self.btn1.show()
			self.basebox.show()
			return False
		return True

def main():
	gtk.main()

if __name__ == "__main__":
	
	root = App()
	main()

Voilà, peut on l'adapter à Ubuntu et s oui est-ce que cela fonctionne ?Merci

Sur ce : à tantôt...


Depuis Ubuntu 11.04
Espérez le meilleur, envisagez le pire, et prenez ce qui vient !

Hors ligne