Contenu | Rechercher | Menus

Annonce

T-shirt Seiche Cosmic, Série limitée

L'équipe des administrateurs et modérateurs du forum vous invite à prendre connaissance des nouvelles règles.
En cas de besoin, vous pouvez intervenir dans cette discussion.

Ubuntu 18.10
T-shirt Ubuntu-FR « Seiche Cosmique » en série limitée ! Prix spécial pré-vente (15€) jusqu'au 4 novembre 2018.

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.

Heure d'hiver: N'oubliez pas de décochez l'heure d'été dans votre profil.

#1 Le 31/05/2018, à 12:12

Bob36180

Récupérer infos système dans script

Bonjour à tous !!

Le titre n'est pas très explicatif, c'est pourquoi je vous le développe :
Admettons que j'aie un logiciel d'installation de drivers Wifi par exemple... Il faut indiquer au script, pour que tout soit automatique, le chipset qu'utilise le périphérique Wifi du système courant pour qu'il puisse l'installer.
comment récupérer cette info ?

Merci de vos réponses !


La différence entre Linux et Windows, c'est que Linux c'est comme une belle fille, il faut l'apprivoiser, la comprendre, la séduire. Windows, c'est comme une prostituée, il faut payer et surtout bien se protéger...

Hors ligne

#2 Le 01/06/2018, à 08:13

J5012

Re : Récupérer infos système dans script

souvent la commande :

lspci | grep Wireless

mais pas toujours , ca va dependre du materiel disponible ...

Hors ligne

#3 Le 01/06/2018, à 18:59

Bob36180

Re : Récupérer infos système dans script

Merci !!

Mais n'y a-t-il pas moyen de cibler le driver et ce qu'il soit USB ou PCI ?? pour que j'écrive quelquechose comme :

echo "Vous utilisez le driver `commandepourletrouver`"

Et que ça sorte

Vous utilisez le driver rtl8812au

Dernière modification par Bob36180 (Le 01/06/2018, à 18:59)


La différence entre Linux et Windows, c'est que Linux c'est comme une belle fille, il faut l'apprivoiser, la comprendre, la séduire. Windows, c'est comme une prostituée, il faut payer et surtout bien se protéger...

Hors ligne

#4 Le 01/06/2018, à 20:08

moko138

Re : Récupérer infos système dans script

Attention !

En #1, tu voulais identifier la puce en vue d'installer son pilote :

Bob36180 a écrit :

Il faut indiquer au script, pour que tout soit automatique, le chipset qu'utilise le périphérique Wifi du système courant pour qu'il puisse l'installer.
comment récupérer cette info ?

Mais en #3 tu parles d'identifier le pilote en service (donc déjà installé) :

que ça sorte

Vous utilisez le driver rtl8812au

Peux-tu dire clairement ce que tu veux ? Voire, ce que tu ne veux pas ?


%NOINDEX%
Un utilitaire méconnu : ncdu

En ligne

#5 Le 03/06/2018, à 12:09

J5012

Re : Récupérer infos système dans script

je pense que bob a une vision windowsienne de l'install des pilotes de peripheriques , mais sous gnulinux l'install des pilotes ne depend pas du logiciel installateur de pilotes (à vrai dire il n'y en a pas) :

- la detection va signaler au systeme à quel type de peripherique il a affaire
- ensuite ca va dependre de l'ouverture du materiel ou de la participation de son constructeur (nvidia sur certains modeles et pas d'autres, idem epson, idem hp, idem oem-etc)
- en general, si le materiel a suffisamment de specificités generiques connues, il sera pris en compte par le noyau des le boot ... ou plus tard lors de l'ouverture de session ...

Hors ligne

#6 Le 04/06/2018, à 13:11

Bob36180

Re : Récupérer infos système dans script

Oui, de fait je beugue un peu en ce moment, désolé... smile
En fait il faudrait que je réussisse à identifier le modèle du périphérique wifi et de pouvoir y associer directement son chipset, qu'il soit déjà installé ou non...


La différence entre Linux et Windows, c'est que Linux c'est comme une belle fille, il faut l'apprivoiser, la comprendre, la séduire. Windows, c'est comme une prostituée, il faut payer et surtout bien se protéger...

Hors ligne

#7 Le 05/06/2018, à 12:23

J5012

Re : Récupérer infos système dans script

les messages de detection sont donnés au systeme via la commande dmesg :

- par exemple tu peux utiliser la commande pour voir toutes les detections emanant du bus pci lors du boot

dmesg | grep pci

- ou pour voir les 30 derniers evenements systeme, valable aussi lors du branchement d'une cle usb ...

dmesg | tail -n 30

Hors ligne

#8 Le 05/06/2018, à 19:43

maxire

Re : Récupérer infos système dans script

Salut,

Je n'ai pas bien compris ce que tu cherches à réaliser, en tout cas si tu veux obtenir toutes les informations disponibles sur toutes les interfaces réseau wifi tu peux faire;

$ while read dev; do sudo lspci -s $dev -v; done < <(iw dev | awk 'BEGIN { lshw="sudo lshw -businfo"} /^\t?Interface/ { while ((lshw | getline text) > 0) {split(text,mot); if (mot[2] == $2) {dev=substr(mot[1],5); print dev}} ; close(lshw); }');
02:00.0 Network controller: Qualcomm Atheros AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
	Subsystem: AzureWave AW-NE785 / AW-NE785H 802.11bgn Wireless Full or Half-size Mini PCIe Card
	Physical Slot: 1
	Flags: bus master, fast devsel, latency 0, IRQ 17
	Memory at d1800000 (64-bit, non-prefetchable) [size=64K]
	Capabilities: [40] Power Management version 3
	Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit-
	Capabilities: [60] Express Legacy Endpoint, MSI 00
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [140] Virtual Channel
	Capabilities: [160] Device Serial Number 00-15-17-ff-ff-24-14-12
	Capabilities: [170] Power Budgeting <?>
	Kernel driver in use: ath9k
	Kernel modules: ath9k

$ 

Détail de la commande:

while read dev; do sudo lspci -s $dev -v; done < <(iw dev | awk 'BEGIN { lshw="sudo lshw -businfo"} /^\t?Interface/ { while ((lshw | getline text) > 0) {split(text,mot); if (mot[2] == $2) {dev=substr(mot[1],5); print dev}} ; close(lshw); }');

iw dev donne en entrée de la commande awk la liste des périphériques wifi.
Le nom du périphérique est le deuxième champ de la ligne comportant le mot interface précédé de quelques caractères de tabulation horizontale.
La commande lshw -businfo extraie les numéros de bus utilisés par tous les périphériques, elle est exécutée par awk
Le numéro de bus est en 5ème position du premier mot de la ligne retournée par lshw avec sélection ce celle-ci via le 2ème mot qui indique le nom de périphérique.
Enfin les résulats retournés par awk sont exploités dans une boucle exécutant lspci pour cahcun des périphériques trouvés.

Cette question m'a donné l'ocasion d'un petit exercice d'application de awk.

Pour plus de détails, consultez les pages man de lspci et lshw + info awk qui n'est pas mal fichu du tout.


Maxire
Archlinux/Mate + Debian Stretch/Gnome sur portable -- Archlinux/Mate sur poste de travail

Hors ligne

#9 Le 07/06/2018, à 23:07

J5012

Re : Récupérer infos système dans script

oui j'avais completement zappé l'option -businfo de lshw qui est plus precise : elle englobe aussi bien les divers pci que les usb ... mais un simple grep est plus "facile" qu'un awk wink

sudo lshw -businfo | grep network

ca te donnera tous les peripheriques internes ou externes ayant pour classe "network" , et tu auras aussi l'appellation que le systeme gnulinux leur donne (ce n'est pas forcement wlan pour le wifi)

ex sur mon ordi :

user@ordi:~$ sudo lshw -businfo | grep network
pci@0000:02:00.0  enp2s0          network        AR8151 v2.0 Gigabit Ethernet
pci@0000:03:00.0  wlp3s0          network        AR9287 Wireless Network Adapter (PCI-Express)
user@ordi:~$ 

Hors ligne

#10 Le 08/06/2018, à 09:23

maxire

Re : Récupérer infos système dans script

@j5012, même pas besoin de grep!

lshw -businfo -C network
ATTENTION: ce programme devrait être lancé en tant que super-utilisateur.
Bus info          Périphérique  Classe         Description
============================================================
pci@0000:02:00.0  wls1            network        AR9285 Wireless Network Adapter
pci@0000:03:00.0  ens5            network        AR8131 Gigabit Ethernet
ATTENTION: les informations sont potentiellement incomplètes ou erronées, vous devriez lancer ce programme en tant que super-utilisateur.
[aspire7730z@asus-arch ~]$ 

J'ai juste écrit ce mini script pour me faire la main avec awk, je suis bien conscient que d'autres solutions sont certainement disponibles pour...
Pour quoi faire d'ailleurs?
Je n'ai pas très bien compris l'objectif de Bob36180.

Si tu lis bien mon script, il lit les numéros de BUS de toutes les interfaces wifi via lshw puis lspci les utilise pour cracher toutes les informations disponibles  en utilisant son option -v (ou -vv, ou -vvv).
Donc j'obtiens un peu plus d'information que via lshw -businfo et cette information est mieux ciblée.

J'avoue que je ne saisis pas bien la différence entre lspci et lshw quant à leurs finalités, j'aurais peut-être pu me passer de lspci mais comme je n'ai pas trouvé comment utiliser lshw via les numéros de bus, j'ai couplé lspci et lshw.


Maxire
Archlinux/Mate + Debian Stretch/Gnome sur portable -- Archlinux/Mate sur poste de travail

Hors ligne

#11 Le 08/06/2018, à 14:34

moko138

Re : Récupérer infos système dans script

L'objectif de Bob36180, je crois, est :
  - d'identifier d'abord le matériel (puce wifi, dans son exemple)
  - pour automatiser ensuite l'installation de chaque pilote ad hoc.

  - -

Bob36180,
  Ta distribution GNU/Linux sait, comme Windows, détecter le matériel.
Mais en plus, Linux, qui est le noyau de ta distribution GNU/Linux, contient la plupart des pilotes libres connus. Et s'en sert automatiquement !
  Voilà pourquoi une distribution live (ou bien tout juste installée) fonctionne souvent parfaitement d'emblée.

  Les problèmes viennent avec le matériel très ancien ou très récent, et avec le matériel pour lequel n'existent que des pilotes propriétaires.
  Si tu ne l'as pas déjà fait, je t'invite à regarder dans la section wifi quelques wificheck.log, où tu retrouveras à peu près :

lspci -nnk | grep -iA3 net   # pour cartes réseau pci
lsusb  [pour carte wifi usb]
sudo lshw -C network

mais aussi

uname -mrs  #   décrit le noyau
ifconfig     # configure une interface réseau   up / down  -a
iwconfig   # configure une interface réseau sans-fil   
cat /etc/network/interfaces
nm-tool    # (pour 14.04) report NetworkManager state and devices

et son équivalent postérieur :

maxire a écrit :

la commande nm-tool a disparu de[puis] Ubuntu 15.04. (...) Pour connaître les connexions réseau utilisables par Network Manager:

nmcli connection show   # maxire
nmcli dev wifi          # Ludovic, pour connaître les réseaux 
# disponibles, leur débit, leur signal, leur chiffrement etc.
lsmod    # liste les modules utilisés
sudo rfkill list     # tool for enabling and disabling wireless devices
sudo rfkill unblock all   
sudo iwlist scan

%NOINDEX%
Un utilitaire méconnu : ncdu

En ligne

#12 Le 08/06/2018, à 15:36

maxire

Re : Récupérer infos système dans script

Salut Moko,

moko138 a écrit :

pour automatiser ensuite l'installation de chaque pilote ad hoc.

Oui c'était certainement ce qu'il aurait voulu faire sauf que en cas de pilote non disponible je ne vois pas comment automatiser une installation de celui-ci simplement.
D'où ma question sur son objectif!

Ou bien le pilote est disponible et il n'y a rien à faire, le noyau le chargera automatiquement avec dans quelques cas la nécessité de positionner quelques options de chargement du pilote.
Ou bien il n'est pas disponible et tous les cas de figures sont possibles de l'écriture du pilote à l'installation d'un paquet Debian le fournissant mais toujours après quelques recherches sur le net!

Les forums Linux sont envahis de discussions du type, mon pilote ne fonctionne pas que puis-je faire?
N'oubliez pas les galères pour faire tourner les Modems intenes 56k voici quelques années et maintenant les dongles wifi!


Maxire
Archlinux/Mate + Debian Stretch/Gnome sur portable -- Archlinux/Mate sur poste de travail

Hors ligne

#13 Le 08/06/2018, à 15:43

xubu1957

Re : Récupérer infos système dans script

Bonjour,

maxire a écrit :

...et maintenant les dongles wifi!

Comme celui de Bob36180 > Pas de chargement en Wifi. tongue


Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Xubuntu 16.04.1 LTS : Lenovo T410 - Toshiba Satellite A300  Membre de Linux-Azur

En ligne

#14 Le 15/06/2018, à 09:20

Bob36180

Re : Récupérer infos système dans script

Oui en fait mon but est de mettre au point un utilitaire très complet d'installation/désinstallation-réinstallation de pilotes Wifi... et pour avoir un utilitaire indépendant au maximum, je désirerai pouvoir récupérer des infos extérieures demandées par le script (nom du chipset, fabricant...) et les ajouter à ce script pour qu'il sache quoi installer/désinstaller... big_smile tout ça pour éviter à l'utilisateur de rentrer le nom de son chipset (qu'il ne connaît pas forcément)...
Quelque chose comme :

bob@bobE202SA:/home# lsusb
...
Bus 001 Device 009: ID 0bda:8812 $FABRICANT Semiconductor Corp. $CHIPSET 802.11a/b/...
...

Et en récupérant plus loin dans le script les valeurs de $FABRICANT et de $CHIPSET... Pareil pour

lspci

si pas de carte USB. Est-ce possible ??
Si non, ce n'est pas grave, j'utiliserai la méthode citée ci-dessus où l'utilisateur entre le nom de son chipset...


La différence entre Linux et Windows, c'est que Linux c'est comme une belle fille, il faut l'apprivoiser, la comprendre, la séduire. Windows, c'est comme une prostituée, il faut payer et surtout bien se protéger...

Hors ligne

#15 Le 15/06/2018, à 14:32

moko138

Re : Récupérer infos système dans script

Il y a sept jours, bibi a écrit :

Si tu ne l'as pas déjà fait, je t'invite à regarder dans la section wifi quelques wificheck.log

Les infos que tu cherches y sont...


%NOINDEX%
Un utilitaire méconnu : ncdu

En ligne

#16 Le 16/06/2018, à 09:08

Bob36180

Re : Récupérer infos système dans script

Ok, bonne idée le wificheck, ça m'en a donné une autre... Si on simplifie le wificheck.log juste avec les retours de

lspci && lsusb

Peut-on demander au script de nous renvoyer tout ce qu'il trouvera comme valeur dans notre "wificheck réduit" commençant par rtl* ??
Avec read ? echo ?
Merci de vos réponses...


La différence entre Linux et Windows, c'est que Linux c'est comme une belle fille, il faut l'apprivoiser, la comprendre, la séduire. Windows, c'est comme une prostituée, il faut payer et surtout bien se protéger...

Hors ligne

#17 Le 16/06/2018, à 10:48

maxire

Re : Récupérer infos système dans script

Salut,

Je pense qu'il faudrait que tu te fasses la main avec les outils disponibles via les scripts shells avant de te lancer dans un projet aussi ambitieux car au vu de tes questions tu sembles découvrir les langages shells scripts.
Un forum sert d'abord à aider ponctuellement à la résolution d'un problème pas à donner des cours de programmation.

Nous sommes plusieurs à avoir livrer des pistes de solutions à ta demande, en gros tout tourne autour de lspci/lshw/lsusb/iw à toi d'écrire un script afin d'exploiter au mieux les résultats donnés par ces commandes.

Tu peux installer les paquets Debian des documentations de Bash/gawk/sed... et tu auras accès à tout ce qu'il est nécessaire de connaître via la commande info.
Ces documentations ne remplacent pas des cours disponibles dans le web ou mieux en consultant les versions électroniques des livres publiés par les éditions O'Reilly (éditeur de référence pour Linux/Unix) qui sont parfois disponibles gratuitement.

Cours de programmation bash en français: Guide avancé d'écriture des scipts Bash
Sed, le wiki Ubuntu-fr donne des liens intéressants: wiki sed Ubuntu-fr
Grep tu dois pouvoir te débrouiller avec info
En ce qui concerne gawk (awk), la documentation info est très bien écrite et  compréhensible pour ceux qui lisent bien l'anglais, je ne connais malheureusement pas d'équivalent en français.
J'oublie d'autres utilitaires comme tee, que je n'utilise pas, de toute manière tu te heurteras au mur des expressions régulières qui sont des méthodes de sélection de chaînes de caractères particulièrement absconses mais efficaces une fois comprises (et ce n'est pas de la tarte!).
Bon courage!

Note: Recherche des paquets logiciels disponibles via la commande :

apt-cache search ???

???=un critère de recherche.
Elle devrait te permettre de trouver les noms des paquets des documentations et de les installer.

Je conclus par un man et info sont tes amis!

Ce qui n'empêche pas de demander de l'aide à  ce forum mais avec des questions autant que possible précises.


Maxire
Archlinux/Mate + Debian Stretch/Gnome sur portable -- Archlinux/Mate sur poste de travail

Hors ligne