[Awesome]Script non fonctionnel depuis màj kernel (en cours)

Xorg, Compiz, KDE / Gnome / Xfce / Fluxbox / e17 / fvwm ... GDM/KDM/XDM...
Alex
Hankyu
Messages : 26
Inscription : mer. 29 juil. 2009, 22:37

[Awesome]Script non fonctionnel depuis màj kernel (en cours)

Message par Alex »

Bonjour,

J'ai mis à jour mon kernel manuellement (comme j'ai toujours l'habitude de faire) par la compilation, et je me suis rendu compte qu'une option avait été supprimée car marquée comme dépréciée. Il s'agit de "WIRELESS_EXT_SYSFS", qui créeait une arborescence dans sys/call/.../net/wlan/wireless avec plusieurs informations comme la qualité du signal wifi.

J'utilise donc un script pour afficher cette valeur dans ma wibox, et vu que cette valeur n'existe plus, mon script ne fonctionne donc plus.

J'aimerais donc savoir si cette arborescence a été remplacée ou simplement supprimée.

Par avance merci à ceux qui m'aideront,

Le script :

Code : Tout sélectionner

-- WLAN widget
function wifistatus()
	local wifion, wifistrength, f

	f = io.input("/sys/class/net/wlan0/carrier")
	wifion = io.read("*number")
	f:close()

	if wifion == 1 then
		f = io.input("/sys/class/net/wlan0/wireless/link")
		wifistrength = io.read("*number")
		f:close()

		if wifistrength > 49 then
			return '<span color = "green">' .. wifistrength .. '</span>%'
		elseif wifistrength > 39 then
			return '<span color = "yellow">' .. wifistrength .. '</span>%'
		elseif wifistrength > 29 then
			return '<span color = "orange">' .. wifistrength .. '</span>%'
		else
			return '<span color = "red">' .. wifistrength .. '</span>%'
		end
		
		return '<span color = "red">off</span>'
	end
end

wifiinfo = widget({ type = "textbox" , name = "wifiinfo" })

-- Assign a hook to update info
wifistatus__timer = timer({timeout = 1})
wifistatus__timer:add_signal("timeout", function() wifiinfo.text = "| WLAN: " .. wifistatus() .. " " end)
wifistatus__timer:start()
Dernière modification par Alex le mer. 17 oct. 2012, 17:42, modifié 1 fois.
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

Re: [Awesome] Script Wibox non fonctionnel depuis màj kernel

Message par oktoberfest »

Salut,

par hasard est ce que /proc/net/wireless te convient ?
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
Alex
Hankyu
Messages : 26
Inscription : mer. 29 juil. 2009, 22:37

Re: [Awesome] Script Wibox non fonctionnel depuis màj kernel

Message par Alex »

Merci de ton aide,

/proc/net/wireless contient l'information que je veut.

Par contre dans ce fichier le contenu est présenté sous forme de table. J'ai réussi à extraire la valeur qui m'intéresse à l'aide de grep et cut :

/proc/net/wireless | grep wlan0 | cut -d" " -f6 | cut -d"." -f1

Le soucis c'est que le script n'accepte pas cette fonction, j'ai droit à un beau message d'erreur :

Code : Tout sélectionner

error loading module widgets.wlan from file '/home/username/.config/awesome/widgets/wlan.lua':
/home/username/.config/awesome/widgets/wlan.lua:11: ')' expected near '" -f6 | cut -d"'
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

Re: [Awesome] Script Wibox non fonctionnel depuis màj kernel

Message par oktoberfest »

Je n'y connais rien en lua, mais ça me parait normal qu'il ne comprenne pas une ligne de commande !
Il te faut lire le fichier /proc/net/wireless puis ensuite, via du code lua, découper les lignes pour en extraire les éléments qui te conviennent.
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
Alex
Hankyu
Messages : 26
Inscription : mer. 29 juil. 2009, 22:37

Re: [Awesome] Script Wibox non fonctionnel depuis màj kernel

Message par Alex »

Bon, je n'ai plus qu'à me plonger dans le lua pour coder tout ça.

Merci de ton aide.
Avatar de l’utilisateur
vlamy
yeomen
Messages : 268
Inscription : ven. 20 juil. 2012, 15:19
Localisation : Grenoble

Re: [Awesome] Script Wibox non fonctionnel depuis màj kernel

Message par vlamy »

oktoberfest a écrit :Je n'y connais rien en lua, mais ça me parait normal qu'il ne comprenne pas une ligne de commande !
Il te faut lire le fichier /proc/net/wireless puis ensuite, via du code lua, découper les lignes pour en extraire les éléments qui te conviennent.
Je confirme ça se fait bien en lua. Je pense que tu devrais pouvoir t'en sortir avec un "string.match(..)". Le manuel ici.
Avatar de l’utilisateur
Roultabie
newbie
Messages : 4
Inscription : ven. 27 juil. 2012, 08:50

Re: [Awesome]Script non fonctionnel depuis màj kernel (en co

Message par Roultabie »

Bonjour,

Je suis tombé sur ton topic en ayant en le même problème à la mise à jour de mon système.

Grâce à /proc/net/wireless tout est rentré dans l'ordre.

Si tu as toujours un souci, voici la ligne à mettre dans ton rc.lua pour récupérer la valeur link de /proc/net/wireless :

Code : Tout sélectionner

f = io.popen('cat /proc/net/wireless | grep wlan0 | cut -d" " -f6 | cut -d"." -f1')
signal = f:read()
ainsi tu récupère le signal dans la variable susnommée
Config: Asus U53SD, Intel Core i5-2410M, DDR3 4G, NVIDIA GeForce GT520M, Archlinux.
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

Re: [Awesome]Script non fonctionnel depuis màj kernel (en co

Message par oktoberfest »

On peut optimiser un chouia avec :

Code : Tout sélectionner

f = io.popen('grep wlan0 /proc/net/wireless | cut -d" " -f6 | cut -d"." -f1')
signal = f:read()
On lance un processus de moins, toujours ça de gagné.
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
Avatar de l’utilisateur
Ypnose
Maître du Kyudo
Messages : 1363
Inscription : sam. 01 mai 2010, 13:17

Re: [Awesome]Script non fonctionnel depuis màj kernel (en co

Message par Ypnose »

Je suis absolument sûr que tout cela est réalisable avec AWK et ça économiserai encore un processus.
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

Re: [Awesome]Script non fonctionnel depuis màj kernel (en co

Message par oktoberfest »

je pense aussi (peut-être que sed ferait aussi l'affaire), mais il faudrait que quelqu'un poste le contenu du fichier /proc/net/wireless, on aurait une base de travail.
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
Avatar de l’utilisateur
Ypnose
Maître du Kyudo
Messages : 1363
Inscription : sam. 01 mai 2010, 13:17

Re: [Awesome]Script non fonctionnel depuis màj kernel (en co

Message par Ypnose »

Voilà:

Code : Tout sélectionner

Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
 face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 22
 wlan0: 0000   46.  -64.  -256        0      0      0      0    327        0
La valeur recherché est 46 (dans mon cas)?
Avatar de l’utilisateur
Roultabie
newbie
Messages : 4
Inscription : ven. 27 juil. 2012, 08:50

Re: [Awesome]Script non fonctionnel depuis màj kernel (en co

Message par Roultabie »

C'est bien ça, tu m'a grillé, j'allai poster le résultat.

C'est la valeur link que l'on souhaite.
Config: Asus U53SD, Intel Core i5-2410M, DDR3 4G, NVIDIA GeForce GT520M, Archlinux.
Avatar de l’utilisateur
Ypnose
Maître du Kyudo
Messages : 1363
Inscription : sam. 01 mai 2010, 13:17

Re: [Awesome]Script non fonctionnel depuis màj kernel (en co

Message par Ypnose »

Bon bah voilà:

Code : Tout sélectionner

cat /proc/net/wireless | awk 'NR == 3 {print $3}'
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

Re: [Awesome]Script non fonctionnel depuis màj kernel (en co

Message par oktoberfest »

Code : Tout sélectionner

awk 'NR == 3 {print $3}' /proc/net/wireless
Note : il reste encore le '.' à la fin.
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
Avatar de l’utilisateur
Ypnose
Maître du Kyudo
Messages : 1363
Inscription : sam. 01 mai 2010, 13:17

Re: [Awesome]Script non fonctionnel depuis màj kernel (en co

Message par Ypnose »

Ah ouai passons un coup de sed:

Code : Tout sélectionner

awk 'NR == 3 {print $3}' /proc/net/wireless | sed 's/\.//'
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

Re: [Awesome]Script non fonctionnel depuis màj kernel (en co

Message par oktoberfest »

Ce serait bien d'avoir un seul processus (juste pour le côté élégant) mais à part faire un sed à la place de awk avec une horrible expression régulière, je ne vois pas comment faire autrement
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
Avatar de l’utilisateur
Ypnose
Maître du Kyudo
Messages : 1363
Inscription : sam. 01 mai 2010, 13:17

Re: [Awesome]Script non fonctionnel depuis màj kernel (en co

Message par Ypnose »

C'était hard mais j'ai réussi:

Code : Tout sélectionner

awk 'NR == 3 {sub (/\./,""); print $3}' /proc/net/wireless
Je mérite bien un "Bravo" :bravo:
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

Re: [Awesome]Script non fonctionnel depuis màj kernel (en co

Message par oktoberfest »

Excellent :bravo: On doit bien gagne 2ms de temps d'exécution maintenant :)

En tout cas bel exemple d'optimisation
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
Avatar de l’utilisateur
Roultabie
newbie
Messages : 4
Inscription : ven. 27 juil. 2012, 08:50

Re: [Awesome]Script non fonctionnel depuis màj kernel (en co

Message par Roultabie »

Arff, c'est moi ou vous êtes acharnés de l'expression régulière ?

En tous cas merci !

Je serai tenté de vous refiler tout mon rc.lua moi ;)
Config: Asus U53SD, Intel Core i5-2410M, DDR3 4G, NVIDIA GeForce GT520M, Archlinux.
Avatar de l’utilisateur
Ypnose
Maître du Kyudo
Messages : 1363
Inscription : sam. 01 mai 2010, 13:17

Re: [Awesome]Script non fonctionnel depuis màj kernel (en co

Message par Ypnose »

Effectivement, je suis un maniaque de la simplicité (et aussi un intégriste de awk). Je fais quasiment tout avec.
C'est vrai que dans la commande que tu as donné, il y a trop de processus (et puis je n'aime pas cut) :).
Répondre