#51 Le 30/01/2024, à 17:10
- matrix-bx
Re : Nouvelle version de wifiCheck
Salut,
pour le mtr, rajouter éventuellement "-Z1" pour limiter l'attente, réduire à 1 ou 2 le -c et si c'est que le début qui nous intéresse, limiter à -m3 peut-être ?
Si 8.8.8.8 ne convient pas, éviter 1.1.1.1 ne serait-ce que pour les gens avec une Livebox et lui préférer 1.0.0.1 ou autre chose.
pour le firewall, ceci vous conviendrait-il ?
(which iptables >/dev/null && echo "Avec iptables" && sudo iptables -L -n ) || ( which nft >/dev/null && echo "Avec nft" && sudo nft list ruleset )
Bonne fin de journée.
Dernière modification par matrix-bx (Le 30/01/2024, à 17:14)
Utilisations des balises de mises en formes.
Hors ligne
#52 Le 30/01/2024, à 19:10
- Astrolivier
Re : Nouvelle version de wifiCheck
alors pour mtr et iptables, j'attends de voir les avis. tout ce que j'aimerai c'est être sûr qu'il y a ou pas un firewall (qu'il y ait pas une règle planquée quelque part), et si on accède ou pas au routeur, et au saut suivant. comment on fait ça, je n'ai rien de tranché.
pour sudo je sais pourquoi je ne veux pas le lancer en sudo, je suis content d'avoir mis xdg-open en dernier, c'est super pratique pour les débutants, et on ne va pas le lancer en sudo !
aussi j'ai lu un peu
https://askubuntu.com/questions/939583/ … ash-script
https://unix.stackexchange.com/question … t-practice
https://unix.stackexchange.com/question … at-need-it
je comprends bien la logique, serveur, script au démarrage, cron etc... auquel cas le sudo dans le script est une mauvaise idée.
mais là on est sur de l'aide forum, souvent avec des débutants. je privilégie le côté pratique. et je n'ai pas trouvé de risque particulier. le pire, ce serait un mauvais mot de passe, c'est pas la mer à boire, on relance. à moins qu'un truc m'échappe. je trouve les alternatives pires ou très complexes pour rien (à maintenir)
Dernière modification par Astrolivier (Le 30/01/2024, à 19:17)
S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)
Hors ligne
#53 Le 30/01/2024, à 19:23
- bruno
Re : Nouvelle version de wifiCheck
mais là on est sur de l'aide forum, souvent avec des débutants.
Le résultat est donc destiné à être publié ou copié sur le forum ? Dans ce cas hostnamectl, et mtr sont beaucoup trop intrusifs.
#54 Le 30/01/2024, à 20:11
- Astrolivier
Re : Nouvelle version de wifiCheck
oui
je me posais la question pour les uid de hostnamectl.
pour les autres, malheureusement si on veut, on passe notre temps à ça (ping, route, les hostnames sur le terminal, nom de connexion etc...),
S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)
Hors ligne
#55 Le 31/01/2024, à 07:40
- bruno
Re : Nouvelle version de wifiCheck
https://www.freedesktop.org/software/sy … ne-id.html
Extrait :
This ID uniquely identifies the host. It should be considered "confidential", and must not be exposed in untrusted environments, in particular on the network.
mtr (ou tracepath, traceroute) est susceptible de révéler l'IP publique ce qui revient à fournir une donnée personnelle.
De manière générale, tu devrais relire attentivement #22 où il ya beaucoup de remarques pertinentes.
#56 Le 31/01/2024, à 11:26
- geole
Re : Nouvelle version de wifiCheck
mtr (ou tracepath, traceroute) est susceptible de révéler l'IP publique ce qui revient à fournir une donnée personnelle.
Ah bon! Les données publiques seraient interdites au public? C est assez contradictoire.
D autre part, si la commande montre qu il faut 6 minutes pour répondre, cela vaut vaut le coup de le signaler me semble-t-il.
a@p:~$ time mtr 8.8.8.8 -rc1
Start: 2024-01-31T11:21:07+0100
HOST: p Loss% Snt Last Avg Best Wrst StDev
1.|-- _gateway 0.0% 1 2.2 2.2 2.2 2.2 0.0
2.|-- station13.multimania.isdn 0.0% 1 19.9 19.9 19.9 19.9 0.0
3.|-- 194.149.166.58 0.0% 1 19.9 19.9 19.9 19.9 0.0
4.|-- 72.14.211.26 0.0% 1 20.9 20.9 20.9 20.9 0.0
5.|-- 72.14.236.137 0.0% 1 22.1 22.1 22.1 22.1 0.0
6.|-- 142.251.49.137 0.0% 1 19.2 19.2 19.2 19.2 0.0
7.|-- dns.google 0.0% 1 19.1 19.1 19.1 19.1 0.0
real 0m6,145s
user 0m0,009s
sys 0m0,010s
a@p:~$
$
"la première chose à faire étant de confirmer que c'est la liaison WiFi qui est lente et pas autre chose".
et si cela peut empêcher l utilisateur de changer de disque dur inutilement,
Dernière modification par geole (Le 31/01/2024, à 11:32)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#57 Le 31/01/2024, à 11:35
- matrix-bx
Re : Nouvelle version de wifiCheck
Salut geole,
et si tu précises "--no-dns" c'est moins long ?
Utilisations des balises de mises en formes.
Hors ligne
#58 Le 31/01/2024, à 11:38
- bruno
Re : Nouvelle version de wifiCheck
Une adresse IP est considérée par la jurisprudence comme une donnée personnelle. Sa publication sans accord est donc interdite.
#59 Le 31/01/2024, à 11:47
- Astrolivier
Re : Nouvelle version de wifiCheck
je comprends que c'est pas top de montrer son ip, ni vraiment utile : si quelqu'un veut te faire chier : il peut.
je rebosse un peu le truc, plus de code, texte plus court, et une troisième option -v pour very long ! (scan wifi, iptables)
j'essaie de prendre en compte les autres remarques (dkms), j'ai aussi d'autres idées. et plein de peaufinage.
plus de hostnamectl et mtr :
##### Current kernel, release, desktop ######
Current Kernel : 5.15.0-91-generic
Release Description: Ubuntu 22.04.3 LTS
Current Desktop : KDE
################ ping ###################
ping gateway : ok
ping 8.8.8.8 : ok
edit : éventuellement je peux mettre
time mtr 8.8.8.8 -rc1
dans la version longue
Dernière modification par Astrolivier (Le 31/01/2024, à 12:10)
S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)
Hors ligne
#60 Le 31/01/2024, à 12:07
- geole
Re : Nouvelle version de wifiCheck
Salut geole,
et si tu précises "--no-dns" c'est moins long ?
Légèrement moins long
a@p:~$ time mtr 8.8.8.8 -rc1
Start: 2024-01-31T12:02:39+0100
HOST: p Loss% Snt Last Avg Best Wrst StDev
1.|-- _gateway 0.0% 1 1.3 1.3 1.3 1.3 0.0
2.|-- station13.multimania.isdn 0.0% 1 19.5 19.5 19.5 19.5 0.0
3.|-- 194.149.166.58 0.0% 1 22.0 22.0 22.0 22.0 0.0
4.|-- 72.14.211.26 0.0% 1 19.5 19.5 19.5 19.5 0.0
5.|-- 72.14.236.137 0.0% 1 22.8 22.8 22.8 22.8 0.0
6.|-- 142.251.49.137 0.0% 1 19.6 19.6 19.6 19.6 0.0
7.|-- dns.google 0.0% 1 19.7 19.7 19.7 19.7 0.0
real 0m6,180s
user 0m0,000s
sys 0m0,017s
a@p:~$
a@p:~$ time mtr 8.8.8.8 -rc1 --no-dns
Start: 2024-01-31T12:03:07+0100
HOST: p Loss% Snt Last Avg Best Wrst StDev
1.|-- 192.168.1.254 0.0% 1 2.2 2.2 2.2 2.2 0.0
2.|-- 194.149.174.110 0.0% 1 20.0 20.0 20.0 20.0 0.0
3.|-- 194.149.166.58 0.0% 1 20.0 20.0 20.0 20.0 0.0
4.|-- 72.14.211.26 0.0% 1 19.0 19.0 19.0 19.0 0.0
5.|-- 72.14.236.137 0.0% 1 21.6 21.6 21.6 21.6 0.0
6.|-- 142.251.49.137 0.0% 1 19.4 19.4 19.4 19.4 0.0
7.|-- 8.8.8.8 0.0% 1 20.0 20.0 20.0 20.0 0.0
real 0m5,960s
user 0m0,009s
sys 0m0,005s
a@p:~$
a@p:~$
a@p:~$ time mtr 8.8.8.8 -rc1
Start: 2024-01-31T12:03:24+0100
HOST: p Loss% Snt Last Avg Best Wrst StDev
1.|-- _gateway 0.0% 1 1.3 1.3 1.3 1.3 0.0
2.|-- station13.multimania.isdn 0.0% 1 20.5 20.5 20.5 20.5 0.0
3.|-- 194.149.166.58 0.0% 1 19.6 19.6 19.6 19.6 0.0
4.|-- 72.14.211.26 0.0% 1 20.0 20.0 20.0 20.0 0.0
5.|-- 72.14.236.137 0.0% 1 21.8 21.8 21.8 21.8 0.0
6.|-- 142.251.49.137 0.0% 1 21.0 21.0 21.0 21.0 0.0
7.|-- dns.google 0.0% 1 18.4 18.4 18.4 18.4 0.0
real 0m6,161s
user 0m0,000s
sys 0m0,017s
a@p:~$ time mtr 8.8.8.8 -rc1 --no-dns
Start: 2024-01-31T12:03:37+0100
HOST: p Loss% Snt Last Avg Best Wrst StDev
1.|-- 192.168.1.254 0.0% 1 2.2 2.2 2.2 2.2 0.0
2.|-- 194.149.174.110 0.0% 1 20.6 20.6 20.6 20.6 0.0
3.|-- 194.149.166.58 0.0% 1 19.5 19.5 19.5 19.5 0.0
4.|-- 72.14.211.26 0.0% 1 21.6 21.6 21.6 21.6 0.0
5.|-- 72.14.236.137 0.0% 1 20.9 20.9 20.9 20.9 0.0
6.|-- 142.251.49.137 0.0% 1 21.0 21.0 21.0 21.0 0.0
7.|-- 8.8.8.8 0.0% 1 19.6 19.6 19.6 19.6 0.0
real 0m5,960s
user 0m0,010s
sys 0m0,005s
a@p:~$
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#61 Le 31/01/2024, à 12:16
- bruno
Re : Nouvelle version de wifiCheck
Les utilisateurs de l'interpréteur bash doivent utiliser un chemin explicite pour lancer une commande time
externe, et non la variante de la commande interne à l'interpréteur.. Sur un système où time est installé dans
/usr/bin, le premier exemple deviendrait
/usr/bin/time wc /etc/hosts
#62 Le 31/01/2024, à 12:22
- Astrolivier
Re : Nouvelle version de wifiCheck
version courte (sans option) pour l'instant (150 lignes)
###############################################
########### Wifi Check ##################
###############################################
############ Date #####################
2024-01-31
##### Current kernel, release, desktop ######
Current Kernel : 5.15.0-91-generic
Release Description: Ubuntu 22.04.3 LTS
Current Desktop : KDE
####### lspci -k -nn | grep -A 3 -i net ######
02:00.0 Network controller [0280]: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter [168c:0042] (rev 31)
Subsystem: Dell QCA9377 802.11ac Wireless Network Adapter [1028:1810]
Kernel driver in use: ath10k_pci
Kernel modules: ath10k_pci
03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller [10ec:8136] (rev 07)
Subsystem: Dell RTL810xE PCI Express Fast Ethernet controller [1028:0a10]
Kernel driver in use: r8169
Kernel modules: r8169
######## sudo lshw -C network #########
*-network
description: Wireless interface
product: QCA9377 802.11ac Wireless Network Adapter
vendor: Qualcomm Atheros
physical id: 0
bus info: pci@0000:02:00.0
logical name: wlp2s0
version: 31
serial: c8:94:02:e1:cb:65
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=ath10k_pci driverversion=5.15.0-91-generic firmware=WLAN.TF.2.1-00021-QCARMSWP-1 ip=192.168.1.150 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:135 memory:a1000000-a11fffff
*-network
description: Ethernet interface
product: RTL810xE PCI Express Fast Ethernet controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:03:00.0
logical name: enp3s0
version: 07
serial: b4:45:06:7c:4b:14
capacity: 100Mbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.15.0-91-generic firmware=rtl8106e-1_0.0.1 06/29/12 latency=0 link=no multicast=yes port=twisted pair
resources: irq:23 ioport:e000(size=256) memory:a1300000-a1300fff memory:80100000-80103fff
################ lsusb ################
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0c45:671e Microdia Integrated_Webcam_HD
Bus 001 Device 002: ID 0cf3:e009 Qualcomm Atheros Communications
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
####### lsmod | grep -E '<modules>' #######
Module Size Used by
ath10k_pci 49152 0
ath10k_core 602112 1 ath10k_pci
ath 36864 1 ath10k_core
mac80211 1249280 1 ath10k_core
cfg80211 974848 3 ath,mac80211,ath10k_core
#### lsmod | grep -E '<unsupportedModules>' ###
################# dkms status ###############
le paquet dkms n'est pas présent
######### mokutil --sb-state #############
SecureBoot disabled
########## sudo rfkill list #############
0: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
################ ip a ###################
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether b4:45:06:7c:4b:14 brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether c8:94:02:e1:cb:65 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.150/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp2s0
valid_lft 79965sec preferred_lft 79965sec
inet6 fe80::4fed:f35d:4e5b:217c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
################ ping ###################
ping gateway : ok
ping 8.8.8.8 : ok
######### resolvectl | grep Server #########
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1
########### sudo ufw status #############
État : inactif
###### cat /etc/network/interfaces #######
# ce fichier est obsolète sauf si vous savez ce que vous faîtes#
cat: /etc/network/interfaces: Aucun fichier ou dossier de ce type
########### nmcli dev wifi ##############
IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY
* 6C:61:F4:3D:52:9E SFR_5298 Infra 1 130 Mbit/s 53 ▂▄__ WPA1 WPA2
6C:61:F4:3D:52:9D SFR_5298_5GHZ Infra 52 405 Mbit/s 44 ▂▄__ WPA1 WPA2
62:45:B6:BE:38:03 -- Infra 165 0 Mbit/s 27 ▂___ WEP
0E:6E:66:AC:6E:45 FreeWifi_secure Infra 1 270 Mbit/s 20 ▂___ WPA1 802.1X
Dernière modification par Astrolivier (Le 31/01/2024, à 12:24)
S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)
Hors ligne
#63 Le 31/01/2024, à 12:49
- matrix-bx
Re : Nouvelle version de wifiCheck
Re,
si on ne veux pas, au moins dans un 1er temps, afficher d'infos sensibles, ou pourrait par exemple :
ping -q -c1 -w1 1.0.0.1 >/dev/null && echo "Connectivité IPv4 OK." || echo "Connectivité IPv4 NOK !"
ping6 -q -c1 -w1 2600:: >/dev/null && echo "Connectivité IPv6 OK." || echo "Connectivité IPv6 NOK !"
ping -4 -q -c1 -w1 x.org >/dev/null && echo "Résolution DNS et connectivité IPv4 OK." || echo "Résolution DNS et/ou connectivité IPv4 NOK !"
ping -6 -q -c1 -w1 debian.org >/dev/null && echo "Résolution DNS et connectivité IPv6 OK." || echo "Résolution DNS et/ou connectivité IPv6 NOK !"
Qu'en dites vous ?
Utilisations des balises de mises en formes.
Hors ligne
#64 Le 31/01/2024, à 14:07
- Astrolivier
Re : Nouvelle version de wifiCheck
j'ai fait plus long !
find_my_gateway() {
ip route show | grep default | cut -d' ' -f 3
}
exit_status_of_ping_gateway() {
ping -c 4 $(find_my_gateway) &>/dev/null
}
exit_status_of_ping_google() {
ping -c 4 8.8.8.8 &>/dev/null
}
if exit_status_of_ping_gateway ; then
echo " ping gateway : ok"
else
echo " ping gateway : not ok"
fi
if exit_status_of_ping_google ; then
echo " ping 8.8.8.8 : ok"
else
echo " ping 8.8.8.8 : not ok"
fi
par contre je ne comprends pas la syntaxe
commande && succes || !success
c'est particulier à bash ?
ps : c'est plus long mais c'est aussi parce que je vais mettre un switchcase pour les langues (français, anglais chinois)
Dernière modification par Astrolivier (Le 31/01/2024, à 14:09)
S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)
Hors ligne
#65 Le 31/01/2024, à 14:26
- matrix-bx
Re : Nouvelle version de wifiCheck
Re Astrolivier
ip route show default | cut -d" " -f3
est suffisant (sauve un grep).
Pourquoi envoyer 4 pings ? un seul voir 2 ne suffirait pas ?
la syntaxe && (et) + || (ou) est classique, l’exécution dépend de la valeur de retour de la 1 ere cmde
$ ping -c1 -w1 toto.com > /dev/null ; echo $?
1
$ ping -c1 -w1 toto.com > /dev/null && echo "ok" || echo "nok"
nok
$
Utilisations des balises de mises en formes.
Hors ligne
#66 Le 01/02/2024, à 11:33
- Astrolivier
Re : Nouvelle version de wifiCheck
merci !
j'ai mis ça pour l'instant
find_my_gateway() {
ip route show default | cut -d" " -f3
}
ping -q -c1 -w1 $(find_my_gateway) &>/dev/null && echo "ping gateway ipv4 : ok" || echo "ping gateway ipv4 : mauvais !"
ping6 -q -c1 -w1 $(find_my_gateway) &>/dev/null && echo "ping gateway ipv6 : ok" || echo "ping gateway ipv6 : mauvais"
ping -4 -q -c1 -w1 1.0.0.1 &>/dev/null && echo "ping cloudflare ipv4 : ok" || echo "ping cloudflare ipv4 : mauvais"
ping -6 -q -c1 -w1 2606:4700:4700::1001 &>/dev/null && echo "ping cloudflare ipv6 : ok" || echo "ping cloudflare ipv6 : mauvais"
retour
ping gateway ipv4 : ok
ping gateway ipv6 : mauvais
ping cloudflare ipv4 : ok
ping cloudflare ipv6 : mauvais
je ne demande pas de résolution dns parce qu'à priori, la demande c'est "j'ai pas d'internet" et si on voit "ping ok" on comprend vite d'où ça vient
je me demande si -w1 est nécessaire, ou pas un peu juste (timeout de 1s)
j'ai pas compris à quoi correspondait 2600:: alors j'ai mis le dns cloudflare (a priori une bonne idée ; je me suis pas encore penché sur ipv6, pas l’utilité)
pas sûr que l'ipv6 cloudflare serve beaucoup, a priori dès que ça passe dans une box c'est empaqueté en ipv4
je sais pas si ma fonction renvoie le gateway ipv6 (je peux pas tester)
ps : ça fait bizarre quand même le coup du succes = 0 dans les tests bash
Dernière modification par Astrolivier (Le 01/02/2024, à 11:34)
S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)
Hors ligne
#67 Le 01/02/2024, à 11:49
- matrix-bx
Re : Nouvelle version de wifiCheck
Salut Astrolivier
"2600::" est juste une ipv6 valide, très courte, et facile à retenir
$ host 2600::
0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.6.2.ip6.arpa domain name pointer www.sprint.net.
$ ping6 -q -c1 2600::
PING 2600::(2600::) 56 data bytes
--- 2600:: ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 134.115/134.115/134.115/0.000 ms
$
Pour la gw ipv6 il faut spécifier "-6" (ip -6 r s default | cut -d" " -f3)
Utilisations des balises de mises en formes.
Hors ligne
#68 Le 05/02/2024, à 09:30
- Astrolivier
Re : Nouvelle version de wifiCheck
j'ai eu une idée hier au sujet du lsmod. j'étais parti sur l'idée de faire une liste de tous les modules wifi, pour faire un grep dessus, et n'avoir en retour que les modules wifi installés et pas toute la liste. ceci s'est avéré problématiques : il y en a trop, c'est le bordel. mais :
https://www.kernel.org/doc/html/v4.12/d … 80211.html
cfg80211 is the configuration API for 802.11 devices in Linux. It bridges userspace and drivers, and offers some utility functionality associated with 802.11. cfg80211 must, directly or indirectly via mac80211, be used by all modern wireless drivers in Linux, so that they offer a consistent API through nl80211. For backward compatibility, cfg80211 also offers wireless extensions to userspace, but hides them from drivers completely.
tous les modules wifi doivent passer par cfg80211 à un moment ou à un autre.
donc je cherche, s'il vous plaît, une commande qui à partir du résultat du
$ lsmod |grep cfg80211
cfg80211 974848 3 ath,mac80211,ath10k_core
me renvoie aussi
lsmod |grep -E 'ath|mac80211|ath10k_core'
le but est d'avoir un truc comme ça à la fin (sauf la ligne avec le #, quoi que idéalement ce serait bien de l'avoir aussi)
Module Size Used by
#ath10k_pci 49152 0
ath10k_core 602112 1 ath10k_pci
ath 36864 1 ath10k_core
mac80211 1249280 1 ath10k_core
cfg80211 974848 3 ath,mac80211,ath10k_core
je pourrais faire un truc pas très propre (j'ai commencé à regarder avec awk), mais je suis sûr que vous ferez mieux et que j'apprendrai des trucs
Dernière modification par Astrolivier (Le 05/02/2024, à 09:31)
S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)
Hors ligne
#69 Le 07/02/2024, à 02:33
- Astrolivier
Re : Nouvelle version de wifiCheck
man time a écrit :Les utilisateurs de l'interpréteur bash doivent utiliser un chemin explicite pour lancer une commande time
externe, et non la variante de la commande interne à l'interpréteur.. Sur un système où time est installé dans
/usr/bin, le premier exemple deviendrait
/usr/bin/time wc /etc/hosts
je comprends pas ce résultat !
$ /usr/bin/time mtr 8.8.8.8 -rc1
Start: 2024-02-07T02:24:52+0100
HOST: poney2204-inspiron Loss% Snt Last Avg Best Wrst StDev
1.|-- box 0.0% 1 6.3 6.3 6.3 6.3 0.0
2.|-- 1.179.194.77.rev.sfr.net 0.0% 1 21.8 21.8 21.8 21.8 0.0
3.|-- 217.169.223.213.rev.sfr.n 0.0% 1 21.4 21.4 21.4 21.4 0.0
4.|-- 14.233.65.86.rev.sfr.net 0.0% 1 22.4 22.4 22.4 22.4 0.0
5.|-- 25.213.96.84.rev.sfr.net 0.0% 1 22.2 22.2 22.2 22.2 0.0
6.|-- 17.213.96.84.rev.sfr.net 0.0% 1 21.6 21.6 21.6 21.6 0.0
7.|-- 59.145.6.194.rev.sfr.net 0.0% 1 23.1 23.1 23.1 23.1 0.0
8.|-- dns.google 0.0% 1 40.4 40.4 40.4 40.4 0.0
0.00user 0.01system 0:06.05elapsed 0%CPU (0avgtext+0avgdata 5256maxresident)k
0inputs+0outputs (0major+1023minor)pagefaults 0swaps
$ time mtr 8.8.8.8 -rc1
Start: 2024-02-07T02:25:10+0100
HOST: poney2204-inspiron Loss% Snt Last Avg Best Wrst StDev
1.|-- box 0.0% 1 5.8 5.8 5.8 5.8 0.0
2.|-- 1.179.194.77.rev.sfr.net 0.0% 1 21.2 21.2 21.2 21.2 0.0
3.|-- 217.169.223.213.rev.sfr.n 0.0% 1 21.8 21.8 21.8 21.8 0.0
4.|-- 14.233.65.86.rev.sfr.net 0.0% 1 22.1 22.1 22.1 22.1 0.0
5.|-- 25.213.96.84.rev.sfr.net 0.0% 1 28.6 28.6 28.6 28.6 0.0
6.|-- 17.213.96.84.rev.sfr.net 0.0% 1 23.8 23.8 23.8 23.8 0.0
7.|-- 59.145.6.194.rev.sfr.net 0.0% 1 23.7 23.7 23.7 23.7 0.0
8.|-- dns.google 0.0% 1 39.6 39.6 39.6 39.6 0.0
real 0m6,062s
user 0m0,008s
sys 0m0,016s
$ which time
/usr/bin/time
je voulais faire un grep -E "real|user|sys" , mais quand je passe par le chemin complet j'ai plus la même réponse
je vais peut être pas la mettre
et pour les modules j'ai mis ça (pas trouvé mieux mais j'ai le résultat que je veux en passant par cfg80211, normalement on loupe rien) :
declare -a modules_array
declare -a lsmod_line_array
readarray -t modules_array < <(lsmod | grep cfg80211 | awk '{split($4, a, ","); for (i in a) print a[i]}')
for i in $modules_array ; do
readarray -t -O"${#modules_array[@]}" modules_array < <(lsmod | grep ${modules_array[$i]} | awk '{split($4, a, ","); for (i in a) print a[i]}')
done
for i in $modules_array ; do
readarray -t -O"${#modules_array[@]}" modules_array < <(lsmod | grep ${modules_array[$i]} | awk '{split($4, a, ","); for (i in a) print a[i]}')
done
for i in $modules_array ; do
readarray -t lsmod_line_array < <(lsmod | grep ${modules_array[$i]} )
done
echo "Module Size Used by"
printf "%s \n" "${lsmod_line_array[@]}" |sort -u
résultat
####### lsmod | grep <wifi_modules> #######
Module Size Used by
ath10k_core 602112 1 ath10k_pci
ath10k_pci 49152 0
ath 36864 1 ath10k_core
cfg80211 974848 3 ath,mac80211,ath10k_core
mac80211 1249280 1 ath10k_core
résultat complet (version courte)
###############################################
########### Wifi Check ##################
###############################################
############ Date #####################
2024-02-07
##### Current kernel, release, desktop ######
Current Kernel : 5.15.0-92-generic
Release Description: Ubuntu 22.04.3 LTS
Current Desktop : KDE
####### lspci -k -nn | grep -A 3 -i net ######
02:00.0 Network controller [0280]: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter [168c:0042] (rev 31)
Subsystem: Dell QCA9377 802.11ac Wireless Network Adapter [1028:1810]
Kernel driver in use: ath10k_pci
Kernel modules: ath10k_pci
03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller [10ec:8136] (rev 07)
Subsystem: Dell RTL810xE PCI Express Fast Ethernet controller [1028:0a10]
Kernel driver in use: r8169
Kernel modules: r8169
######## sudo lshw -C network #########
*-network
description: Wireless interface
product: QCA9377 802.11ac Wireless Network Adapter
vendor: Qualcomm Atheros
physical id: 0
bus info: pci@0000:02:00.0
logical name: wlp2s0
version: 31
serial: c8:94:02:e1:cb:65
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=ath10k_pci driverversion=5.15.0-92-generic firmware=WLAN.TF.2.1-00021-QCARMSWP-1 ip=192.168.1.150 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:135 memory:a1000000-a11fffff
*-network
description: Ethernet interface
product: RTL810xE PCI Express Fast Ethernet controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:03:00.0
logical name: enp3s0
version: 07
serial: b4:45:06:7c:4b:14
capacity: 100Mbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.15.0-92-generic firmware=rtl8106e-1_0.0.1 06/29/12 latency=0 link=no multicast=yes port=twisted pair
resources: irq:23 ioport:e000(size=256) memory:a1300000-a1300fff memory:80100000-80103fff
################ lsusb ################
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0c45:671e Microdia Integrated_Webcam_HD
Bus 001 Device 002: ID 0cf3:e009 Qualcomm Atheros Communications
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
####### lsmod | grep <wifi_modules> #######
Module Size Used by
ath10k_core 602112 1 ath10k_pci
ath10k_pci 49152 0
ath 36864 1 ath10k_core
cfg80211 974848 3 ath,mac80211,ath10k_core
mac80211 1249280 1 ath10k_core
################# dkms status ###############
le paquet dkms n'est pas présent
######### mokutil --sb-state #############
SecureBoot disabled
########## sudo rfkill list #############
0: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
################ ip a ###################
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether b4:45:06:7c:4b:14 brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether c8:94:02:e1:cb:65 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.150/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp2s0
valid_lft 45311sec preferred_lft 45311sec
inet6 fe80::4fed:f35d:4e5b:217c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
################ ping no-DNS ###################
ping gateway ipv4 : ok
ping gateway ipv6 : mauvais
ping cloudflare ipv4 : ok
ping cloudflare ipv6 : mauvais
######### resolvectl | grep Server #########
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1
########### sudo ufw status #############
État : inactif
###### cat /etc/network/interfaces #######
# ce fichier est obsolète sauf si vous savez ce que vous faîtes #
cat: /etc/network/interfaces: Aucun fichier ou dossier de ce type
########### nmcli dev show ##############
DEVICE TYPE STATE CONNECTION
wlp2s0 wifi connecté SFR_5298
p2p-dev-wlp2s0 wifi-p2p déconnecté --
enp3s0 ethernet indisponible --
lo loopback non-géré --
########### nmcli dev wifi ##############
IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY
* 6C:61:F4:3D:52:9E SFR_5298 Infra 6 130 Mbit/s 100 ▂▄▆█ WPA1 WPA2
6C:61:F4:3D:52:9D SFR_5298_5GHZ Infra 52 405 Mbit/s 99 ▂▄▆█ WPA1 WPA2
62:45:B6:BE:38:03 -- Infra 165 0 Mbit/s 85 ▂▄▆█ WEP
Dernière modification par Astrolivier (Le 07/02/2024, à 02:44)
S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)
Hors ligne
#70 Le 08/02/2024, à 20:49
- Astrolivier
Re : Nouvelle version de wifiCheck
la dernière version (j'en ai chié pour le lsmod, mais finalement je suis assez satisfait enfin j'espère)
le code (mettre dans wificheck.sh, chmod 755, lancer avec ./ , comme d'hab' c'est juste une pêche aux infos, aucun changement sur le système)
#!/usr/bin/env bash
#############################################################################################################################################
# 2012 → 2022 - cracolinux
# 2020 - Mise à jour par j1v3_d4_v0m17 : https://github.com/j1v3/wificheck
# 2020 - Modification suite remarque par Watael : https://forum.ubuntu-fr.org/viewtopic.php?pid=22395338#p22395338
# 2022 - Modification suite à la proposition de Bruno : https://forum.ubuntu-fr.org/viewtopic.php?pid=22552050#p22552050
# 2023 - Ajout de la commande bootctl, remarque par NicoApi73 via xubu1957 : https://forum.ubuntu-fr.org/viewtopic.php?pid=22631234#p22631234
# 2024 - Refonte Astrolivier suppression des commandes obsolètes, ajout de iw, systemctl
#
# v2.1
#
# LICENCE:
#
# LICENCE PUBLIQUE RIEN À BRANLER
# Version 1, Mars 2009
# Copyright (C) 2009 Sam Hocevar
# 14 rue de Plaisance, 75014 Paris, France
#
# La copie et la distribution de copies exactes de cette licence sont
# autorisées, et toute modification est permise à condition de changer
# le nom de la licence.
#
# CONDITIONS DE COPIE, DISTRIBUTION ET MODIFICATION
# DE LA LICENCE PUBLIQUE RIEN À BRANLER
#
# 0. Faites ce que vous voulez, j’en ai RIEN À BRANLER.
#############################################################################################################################################
##uncomment for debug mode in file debug_output.txt in local repository
#exec 5> debug_output.txt
#BASH_XTRACEFD="5"
#PS4='$LINENO: '
#set -x
shopt -s nullglob
# Set language as enum : french = 0 ; english = 1 ; chinese = 2 . Default is french.
declare -i language
language=0
# Set as enum if wificheck prints the short output without iw commands
# or the long output with iw commands
# this mainly because iw is not installed by default, and is quite long as it adds 300 lines minimum.
# short = 0 ; long = 1 ; very long = 2
declare -i short_or_long_output
short_or_long_output=0
# set as enum to print bbcode for french forum
# with bbcode = 0 ; without bbcode = 1
declare -i print_bbcode_or_not
print_bbcode_or_not=0
#variables array for lsmod and modinfo
declare -a modules_array
declare lsmod_variable
# print help on stdout with -h or bad argument
help() {
echo ""
echo "wifiCheck is a program that prints wifi info, originally created to help in the French Ubuntu forum."
echo "French is the default language, and bbscode is the default output."
echo ""
echo "USAGE:"
echo " ./wificheck.sh [options]"
echo ""
echo " -l print long version with iw commands; if iw package is not present, switch to short version"
echo " -v print a very long version with a scan"
echo " -s print short version, default behavior"
echo " -e print english version"
echo " -c print chinese version"
echo " -n doesn't print bbcode"
echo " -h print help"
exit 0
}
# Main function
wificheck_function() {
echo "###############################################"
echo "########### Wifi Check ##################"
echo "###############################################"
echo -e "\n\n############ Date #####################\n"
printf '%(%Y-%m-%d)T\n' -1
echo -e "\n\n##### Current kernel, release, desktop ######\n"
local uname
uname=$(uname "-r")
echo -e " Current Kernel : ${uname} "
local release
release=$(lsb_release "-d")
echo -e " Release ${release} "
echo " Current Desktop : $XDG_CURRENT_DESKTOP"
echo -e "\n\n####### lspci -k -nn | grep -A 3 -i net ######\n"
lspci -k -nn | grep -A 3 -i net
echo -e "\n\n######## sudo lshw -C network #########\n"
sudo lshw -C network
echo -e "\n\n################ lsusb ################\n"
lsusb
echo -e "\n\n####### lsmod | grep <wifi_modules> #######\n"
lsmod_function
echo -e "\n\n################# dkms status ###############\n"
if [[ "$(which "dkms")" = "" ]]; then
case ${language} in
0)
echo "le paquet dkms n'est pas présent"
;;
1)
echo "dkms package is not available"
;;
2)
echo "dkms软件包不可用"
;;
esac
else
dkms status
fi
echo -e "\n\n######### mokutil --sb-state #############\n"
mokutil --sb-state
echo -e "\n\n########## sudo rfkill list #############\n"
sudo rfkill list
echo -e "\n\n################ ip a ###################\n"
ip a
echo -e "\n\n################ ping no-DNS ###################\n"
ping -q -c1 -w1 $(find_my_gateway) &>/dev/null && echo "ping gateway ipv4 : ok" || echo "ping gateway ipv4 : mauvais !"
ping6 -q -c1 -w1 $(find_my_gateway) &>/dev/null && echo "ping gateway ipv6 : ok" || echo "ping gateway ipv6 : mauvais"
ping -4 -q -c1 -w1 1.0.0.1 &>/dev/null && echo "ping cloudflare ipv4 : ok" || echo "ping cloudflare ipv4 : mauvais"
ping -6 -q -c1 -w1 2606:4700:4700::1001 &>/dev/null && echo "ping cloudflare ipv6 : ok" || echo "ping cloudflare ipv6 : mauvais"
echo -e "\n\n######### resolvectl | grep Server #########\n"
resolvectl | grep Server
echo -e "\n\n########### sudo ufw status #############\n"
sudo ufw status
echo -e "\n\n###### cat /etc/network/interfaces #######"
case ${language} in
0)
echo -e "# ce fichier est obsolète sauf si vous savez ce que vous faîtes #\n"
;;
1)
echo -e "## this file is deprecated except if you know what you're doing ##\n"
;;
2)
echo -e "###### 该文件已弃用,除非您知道自己在做什么 #######"
;;
esac
cat /etc/network/interfaces
echo -e "\n\n########### nmcli dev show ##############\n"
nmcli d s
echo -e "\n\n########### nmcli dev wifi ##############\n"
nmcli dev wifi
}
long_function() {
echo -e "\n\n####### modinfo <wifi_modules> |grep parm #######\n"
for module in ${modules_array[@]} ; do
echo -e "\n Modules parm for ${module} :"
modinfo ${module} |grep parm
done
echo -e "\n\n####### systemctl list network units #########\n"
systemctl list-units --type=service --all |grep -iE 'network|wpa'
echo -e "\n\n######## nmcli connection show ###########\n"
nmcli connection show 2>/dev/null
#echo -e "\n\n######### time mtr 8.8.8.8 -rc1 ###########\n"
#/usr/bin/env time mtr 8.8.8.8 -rc1 | grep -E "real|user|sys"
}
# For long argument. Adds iw commands
iw_long_function() {
echo -e "\n\n############## iw dev ####################\n"
iw dev
echo -e "\n\n######### iw dev $interface link #############\n"
iw dev $interface link
echo -e "\n\n######## iw dev $interface station dump ###########\n"
iw dev $interface station dump
}
### very long version
very_long_function() {
echo -e "\n\n#### iptables -vL -t filter|nat|mangle|raw|security #####\n"
echo "\n ### table filter ###"
sudo iptables -vL -t filter
echo "\n ### table nat ###"
sudo iptables -vL -t nat
echo "\n ### table mangle ###"
sudo iptables -vL -t mangle
echo "\n ### table raw ###"
sudo iptables -vL -t raw
echo "\n ### table security ###"
sudo iptables -vL -t security
}
iw_very_long_function() {
echo -e "\n\n######## iw list ###########\n"
iw list
echo -e "\n\n############ iw dev $interface scan ############\n"
sudo iw dev $interface scan
}
## find the modules that use cfg80211, find modules that use those modules,
## print the lsmod of all these modules, sort only one instace
lsmod_function() {
modules_array=("cfg80211")
lsmod_variable=$(lsmod)
readarray -t -O"${#modules_array[@]}" modules_array < <(echo "${lsmod_variable}" | grep "cfg80211" | awk '{split($4, a, ","); for (i in a) print a[i]}')
for i in ${!modules_array[@]} ; do
readarray -t -O"${#modules_array[@]}" modules_array < <(echo "${lsmod_variable}" | grep ${modules_array[$i]} | awk '{split($4, a, ","); for (i in a) print a[i]}')
done
readarray -t modules_array < <(printf "%s\n" "${modules_array[@]}" |sort -u)
for i in ${!modules_array[@]} ; do
readarray -t -O"${#modules_array[@]}" modules_array < <(echo "${lsmod_variable}" | grep "${modules_array[$i]}" | awk '{split($4, a, ","); for (i in a) print a[i]}')
done
readarray -t modules_array < <(printf "%s\n" "${modules_array[@]}" |sort -u)
echo "Module Size Used by"
for i in ${modules_array}; do
printf "%s\n" "$(echo "${lsmod_variable}" |grep "${modules_array[i]}" )"
done
}
### function for ping printing in wificheck_function
find_my_gateway() {
ip route show default | cut -d" " -f3
}
##### function to insert bbcode markup for french forum
bbcode_open_function() {
echo "[code]"
}
bbcode_close_fonction() {
echo "[/code]"
}
# put stdout and stderr in the file wificheck.log in your $HOME
exec_in_file() {
exec 3>&1
exec &>~/wificheck.log
}
# put back stdout on terminal
exec_in_stdout() {
exec >&3-
}
###### print on terminal at the end
french_terminal_output() {
echo "####################################################################"
echo "Le fichier wificheck.log a été crée dans "$HOME""
echo "Vous n'avez plus qu'à copier/coller son contenu entier sur le forum"
echo " accès →→ "$HOME"/wificheck.log"
echo "####################################################################"
}
english_terminal_output() {
echo "####################################################################"
echo "File wificheck.log has been created in "$HOME""
echo "You simply have to copy/paste the entire content on the forum"
echo "Markup is bbcode for french ubuntu forum"
echo " acces →→ "$HOME"/wificheck.log"
echo "####################################################################"
}
chinese_terminal_output() {
echo "####################################################################"
echo "wificheck.log 文件已创建在 "$HOME""
echo "你只需将整个内容复制/粘贴到论坛上"
echo "标记语言是法国Ubuntu论坛的BBCode"
echo " 访问 →→ "$HOME"/wificheck.log"
echo "####################################################################"
}
######################################################
################ main ############################
## check for arguments and set variable
while getopts "hslecnv" arg; do
case $arg in
l)
short_or_long_output=1
;;
s)
short_or_long_output=0
;;
v)
short_or_long_output=2
;;
e)
language=1
;;
c)
language=2
;;
n)
print_bbcode_or_not=1
;;
h)
help
;;
\?)
echo "Invalid option: -$OPTARG"
help
;;
# :)
# echo "Option -$OPTARG requires an argument."
# help
# ;;
esac
done
# check if iw is present, should be distro free
if [[ "$(which "iw")" = "" ]] && [[ ${short_or_long_output} -gt 1 ]] ; then
short_or_long_output=0
case ${language} in
0)
echo "le paquet iw n'est pas présent"
;;
1)
echo "iw package is not available"
;;
2)
echo "iw软件包不可用"
;;
esac
fi
exec_in_file
if [[ ${print_bbcode_or_not} -eq 0 ]]; then
bbcode_open_function
fi
wificheck_function
if [[ ${short_or_long_output} -eq 1 ]]; then
for interface in /sys/class/net/w[lw]*; do
interface=${interface##*/}
iw_long_function
done
long_function
fi
if [[ ${short_or_long_output} -eq 2 ]]; then
for interface in /sys/class/net/w[lw]*; do
interface=${interface##*/}
iw_long_function
iw_very_long_function
done
long_function
very_long_function
fi
if [[ ${print_bbcode_or_not} -eq 0 ]]; then
bbcode_close_fonction
fi
exec_in_stdout
case ${language} in
0)
french_terminal_output
;;
1)
english_terminal_output
;;
2)
chinese_terminal_output
;;
esac
## open graphical text editor and print nothing on terminal (otherwise terminal won't close)
xdg-open ~/wificheck.log 1>/dev/null 2>&1
./wificheck.sh -h
wifiCheck is a program that prints wifi info, originally created to help in the French Ubuntu forum.
French is the default language, and bbscode is the default output.
USAGE:
./wificheck.sh [options]
-l print long version with iw commands; if iw package is not present, switch to short version
-v print a very long version with a scan
-s print short version, default behavior
-e print english version
-c print chinese version
-n doesn't print bbcode
-h print help
chez moi la version courte fait 160 lignes, la longue 300, la très longue 1000 (mais on a toutes les commandes supportées par la carte wifi, les cannaux, fréquences, metriques et un scan wifi avec tous les détails... et encore, je capte que 4 réseaux wifi chez moi, je vous dis pas en appart !)
je vous mets la version longue, j'ai mis un séparateur entre la courte et la longue pour vous donner une idée (---------)
apparement ça peut prendre un certain temps, chez moi c'est assez rapide, je pense que c'est surtout le scan (nmcli dev wifi) et xdg-open qui prennent du temps (lshw aussi un peu)
###############################################
########### Wifi Check ##################
###############################################
############ Date #####################
2024-02-08
##### Current kernel, release, desktop ######
Current Kernel : 5.15.0-94-generic
Release Description: Ubuntu 22.04.3 LTS
Current Desktop : KDE
####### lspci -k -nn | grep -A 3 -i net ######
02:00.0 Network controller [0280]: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter [168c:0042] (rev 31)
Subsystem: Dell QCA9377 802.11ac Wireless Network Adapter [1028:1810]
Kernel driver in use: ath10k_pci
Kernel modules: ath10k_pci
03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller [10ec:8136] (rev 07)
Subsystem: Dell RTL810xE PCI Express Fast Ethernet controller [1028:0a10]
Kernel driver in use: r8169
Kernel modules: r8169
######## sudo lshw -C network #########
*-network
description: Wireless interface
product: QCA9377 802.11ac Wireless Network Adapter
vendor: Qualcomm Atheros
physical id: 0
bus info: pci@0000:02:00.0
logical name: wlp2s0
version: 31
serial: c8:94:02:e1:cb:65
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=ath10k_pci driverversion=5.15.0-94-generic firmware=WLAN.TF.2.1-00021-QCARMSWP-1 ip=192.168.1.150 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:135 memory:a1000000-a11fffff
*-network
description: Ethernet interface
product: RTL810xE PCI Express Fast Ethernet controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:03:00.0
logical name: enp3s0
version: 07
serial: b4:45:06:7c:4b:14
capacity: 100Mbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.15.0-94-generic firmware=rtl8106e-1_0.0.1 06/29/12 latency=0 link=no multicast=yes port=twisted pair
resources: irq:23 ioport:e000(size=256) memory:a1300000-a1300fff memory:80100000-80103fff
################ lsusb ################
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0c45:671e Microdia Integrated_Webcam_HD
Bus 001 Device 002: ID 0cf3:e009 Qualcomm Atheros Communications
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
####### lsmod | grep <wifi_modules> #######
Module Size Used by
ath10k_pci 49152 0
ath10k_core 602112 1 ath10k_pci
ath 36864 1 ath10k_core
mac80211 1249280 1 ath10k_core
cfg80211 974848 3 ath,mac80211,ath10k_core
################# dkms status ###############
le paquet dkms n'est pas présent
######### mokutil --sb-state #############
SecureBoot disabled
########## sudo rfkill list #############
0: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
################ ip a ###################
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether b4:45:06:7c:4b:14 brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether c8:94:02:e1:cb:65 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.150/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp2s0
valid_lft 73659sec preferred_lft 73659sec
inet6 fe80::4fed:f35d:4e5b:217c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
################ ping no-DNS ###################
ping gateway ipv4 : ok
ping gateway ipv6 : mauvais
ping cloudflare ipv4 : ok
ping cloudflare ipv6 : mauvais
######### resolvectl | grep Server #########
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1
########### sudo ufw status #############
État : inactif
###### cat /etc/network/interfaces #######
# ce fichier est obsolète sauf si vous savez ce que vous faîtes #
cat: /etc/network/interfaces: Aucun fichier ou dossier de ce type
########### nmcli dev show ##############
DEVICE TYPE STATE CONNECTION
wlp2s0 wifi connecté SFR_5298
p2p-dev-wlp2s0 wifi-p2p déconnecté --
enp3s0 ethernet indisponible --
lo loopback non-géré --
########### nmcli dev wifi ##############
IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY
6C:61:F4:3D:52:9D SFR_5298_5GHZ Infra 52 405 Mbit/s 97 ▂▄▆█ WPA1 WPA2
* 6C:61:F4:3D:52:9E SFR_5298 Infra 1 130 Mbit/s 92 ▂▄▆█ WPA1 WPA2
62:45:B6:BE:38:03 -- Infra 165 0 Mbit/s 80 ▂▄▆_ WEP
A0:1B:29:B6:D2:D0 -- Infra 11 130 Mbit/s 20 ▂___ WPA1 WPA2
8C:6D:50:92:2F:F4 CPL wifi 500_922FF4 Infra 1 270 Mbit/s 19 ▂___ WPA1 WPA2
A0:1B:29:B6:D2:D0 Bbox-66619CA1 Infra 11 130 Mbit/s 14 ▂___ WPA1 WPA2
----------------------------------------------------------------------------------------
############## iw dev ####################
phy#0
Unnamed/non-netdev interface
wdev 0x3
addr c8:94:02:e1:cb:65
type P2P-device
txpower 0.00 dBm
Interface wlp2s0
ifindex 3
wdev 0x1
addr c8:94:02:e1:cb:65
ssid SFR_5298
type managed
channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
txpower 20.00 dBm
multicast TXQ:
qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets
0 0 0 0 0 0 0 0 0
######### iw dev wlp2s0 link #############
Connected to 6c:61:f4:3d:52:9e (on wlp2s0)
SSID: SFR_5298
freq: 2412
RX: 121057472 bytes (144113 packets)
TX: 16094848 bytes (69405 packets)
signal: -45 dBm
rx bitrate: 65.0 MBit/s MCS 7
tx bitrate: 1.0 MBit/s
bss flags: short-preamble short-slot-time
dtim period: 3
beacon int: 100
######## iw dev wlp2s0 station dump ###########
Station 6c:61:f4:3d:52:9e (on wlp2s0)
inactive time: 1904 ms
rx bytes: 121057472
rx packets: 144113
tx bytes: 16094848
tx packets: 69405
tx retries: 0
tx failed: 0
beacon loss: 0
beacon rx: 16768
rx drop misc: 172
signal: -45 [-45, -73] dBm
signal avg: -46 [-46, -73] dBm
beacon signal avg: -46 dBm
tx bitrate: 1.0 MBit/s
tx duration: 31893635 us
rx bitrate: 65.0 MBit/s MCS 7
rx duration: 0 us
authorized: yes
authenticated: yes
associated: yes
preamble: long
WMM/WME: yes
MFP: no
TDLS peer: no
DTIM period: 3
beacon interval:100
short preamble: yes
short slot time:yes
connected time: 12751 seconds
associated at [boottime]: 24988.490s
associated at: 1707408785429 ms
current time: 1707421535924 ms
####### modinfo <wifi_modules> |grep parm #######
Modules parm for ath :
Modules parm for ath10k_core :
parm: debug_mask:Debugging mask (uint)
parm: uart_print:Uart target debugging (bool)
parm: skip_otp:Skip otp failure for calibration in testmode (bool)
parm: cryptmode:Crypto mode: 0-hardware, 1-software (uint)
parm: rawmode:Use raw 802.11 frame datapath (bool)
parm: coredump_mask:Bitfield of what to include in firmware crash file (ulong)
parm: fw_diag_log:Diag based fw log debugging (bool)
Modules parm for ath10k_pci :
parm: irq_mode:0: auto, 1: legacy, 2: msi (default: 0) (uint)
parm: reset_mode:0: auto, 1: warm only (default: 0) (uint)
Modules parm for cfg80211 :
parm: bss_entries_limit:limit to number of scan BSS entries (per wiphy, default 1000) (int)
parm: ieee80211_regdom:IEEE 802.11 regulatory domain code (charp)
parm: cfg80211_disable_40mhz_24ghz:Disable 40MHz support in the 2.4GHz band (bool)
Modules parm for mac80211 :
parm: minstrel_vht_only:Use only VHT rates when VHT is supported by sta. (bool)
parm: max_nullfunc_tries:Maximum nullfunc tx tries before disconnecting (reason 4). (int)
parm: max_probe_tries:Maximum probe tries before disconnecting (reason 4). (int)
parm: beacon_loss_count:Number of beacon intervals before we decide beacon was lost. (int)
parm: probe_wait_ms:Maximum time(ms) to wait for probe response before disconnecting (reason 4). (int)
parm: ieee80211_default_rc_algo:Default rate control algorithm for mac80211 to use (charp)
####### systemctl list network units #########
networkd-dispatcher.service loaded active running Dispatcher daemon for systemd-networkd
NetworkManager-wait-online.service loaded active exited Network Manager Wait Online
NetworkManager.service loaded active running Network Manager
systemd-networkd.service loaded inactive dead Network Configuration
systemd-resolved.service loaded active running Network Name Resolution
systemd-timesyncd.service loaded active running Network Time Synchronization
wpa_supplicant.service loaded active running WPA supplicant
######## nmcli connection show ###########
NAME UUID TYPE DEVICE
SFR_5298 56577409-b60c-405e-bd1a-1cf63ce4f0de wifi wlp2s0
Bbox-40140A7C 133f170f-37ec-404d-a443-1d7eb73228c1 wifi --
bts-snir f7352566-ffc9-467f-9eda-f2a58d049258 wifi --
Connexion filaire 1 1b6ed10a-d83a-3584-af22-c657226c44e8 ethernet --
FREEBOX KERLOUAN a64bfb36-463d-4716-a3b7-c8066a152da4 wifi --
LAPTOP-MAXIME 7505 ddd72023-93c5-4d2a-9571-7286582fced1 wifi --
Livebox-5FD6 fb880269-d8a1-4a4b-bb4c-bb8ca2123e9d wifi --
Livebox-7D8D 4e512446-8f8b-4e5e-a5c1-81d2eb2e34fa wifi --
SFR_5AB0 9530f514-c9ce-4834-89c3-d431704ce5da wifi --
SFR_7748 176b7f04-3a28-4725-b7e1-908932675b88 wifi --
_SNCF_WIFI_INOUI e85f25e7-f7ee-48d5-947d-01e337e782df wifi --
le retour de ligne de commande
$ ./wificheck.sh -l
[sudo] Mot de passe de poney2204 :
####################################################################
Le fichier wificheck.log a été crée dans /home/poney2204
Vous n'avez plus qu'à copier/coller son contenu entier sur le forum
accès →→ /home/poney2204/wificheck.log
####################################################################
mais normalement l'éditeur s'ouvre automatiquement
n'hésitez pas à me dire ce que vous en pensez !
Dernière modification par Astrolivier (Le 08/02/2024, à 21:02)
S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)
Hors ligne
#71 Le 10/02/2024, à 08:35
- bruno
Re : Nouvelle version de wifiCheck
Beaucoup trip de choses me semblent inutilement compliquées.
Exemple :
modules_array=("cfg80211")
lsmod_variable=$(lsmod)
readarray -t -O"${#modules_array[@]}" modules_array < <(echo "${lsmod_variable}" | grep "cfg80211" | awk '{split($4, a, ","); for (i in a) print a[i]}')
⇒
readarray -t -d "," modules_array <<< $(lsmod | awk '{if ($1 == "cfg80211") print $4}')
et encore il doit ya avoir plus simple ou plus élégant.
Et cici pourquoi utiliser des fonctions alors que de simples vriable explicites suffiraient :
### function for ping printing in wificheck_function
find_my_gateway() {
ip route show default | cut -d" " -f3
}
##### function to insert bbcode markup for french forum
bbcode_open_function() {
echo "[code]"
}
bbcode_close_fonction() {
echo "[/code]"
}
⇒
default_ipv4_gateway=$(ip route show default | cut -d" " -f3)
bbcode_open-tag="[code]"
bbcode_close_tag="[/code]"
et ces deux dernières sont de toute façon inutile puisqu'un simple echo suffit.
etc.
KISS
#72 Le 11/02/2024, à 12:21
- Astrolivier
Re : Nouvelle version de wifiCheck
alors je vais tâcher de faire mieux pour le readarray, mais je fais ce que je peux, c'est mon premier script !
par contre pour ta proposition, j'ai tout de même besoin de ma variable lsmod_variable parce que je m'en ressers après, justement pour pas avoir à faire plein de lsmod. le truc c'est que les modules qui utilisent cfg80211 ne sont pas tous les modules wifi, donc je cherche les modules qui utilisent cfg80211, puis les modules utilisant ces modules, et je refais tourner le truc une fois de plus pour être sûr
lsmod_function() {
modules_array=("cfg80211")
lsmod_variable=$(lsmod)
readarray -t -O"${#modules_array[@]}" modules_array < <(echo "${lsmod_variable}" | grep "cfg80211" | awk '{split($4, a, ","); for (i in a) print a[i]}')
for i in ${!modules_array[@]} ; do
readarray -t -O"${#modules_array[@]}" modules_array < <(echo "${lsmod_variable}" | grep ${modules_array[$i]} | awk '{split($4, a, ","); for (i in a) print a[i]}')
done
readarray -t modules_array < <(printf "%s\n" "${modules_array[@]}" |sort -u)
for i in ${!modules_array[@]} ; do
readarray -t -O"${#modules_array[@]}" modules_array < <(echo "${lsmod_variable}" | grep "${modules_array[$i]}" | awk '{split($4, a, ","); for (i in a) print a[i]}')
done
readarray -t modules_array < <(printf "%s\n" "${modules_array[@]}" |sort -u)
echo "Module Size Used by"
for i in ${modules_array}; do
printf "%s\n" "$(echo "${lsmod_variable}" |grep "${modules_array[i]}" )"
done
}
je n'ai aucun doute qu'on puisse faire plus élégant/mieux mais je fais ce que je peux (et puis work in progress !)
pourquoi des fonctions, écoute, j'aime bien les fonctions, j'avais mis ça au tout début, et en c++ tout le monde dit qu'il faut mettre des fonctions partout, et puis même si c'est pas super élégant (ou à tout goût ) normalement ça ne pose aucun problème d’efficacité (enfin en bash j'en sais trop rien). pareil work in progress, ça ne me dérange pas de mettre une variable ou un echo, mais l'un dans l'autre je ne trouve pas ce code moche dans le main.
if [[ ${print_bbcode_or_not} -eq 0 ]]; then
bbcode_open_function
fi
et mes noms de variables c'est quoi le soucis ? je les changerai peut être (pour le coup c'est 2s de boulot) mais elles sont explicites. j'y ai pas passer des heures non plus, comme le reste work in progress !
# Set language as enum : french = 0 ; english = 1 ; chinese = 2 . Default is french.
declare -i language
language=0
# Set as enum if wificheck prints the short output without iw commands
# or the long output with iw commands
# this mainly because iw is not installed by default, and is quite long as it adds 300 lines minimum.
# short = 0 ; long = 1 ; very long = 2
declare -i short_or_long_output
short_or_long_output=0
# set as enum to print bbcode for french forum
# with bbcode = 0 ; without bbcode = 1
declare -i print_bbcode_or_not
print_bbcode_or_not=0
#variables array for lsmod and modinfo
declare -a modules_array
declare lsmod_variable
plus intéressant, tu parlais des tests pour les commandes. j'avais juste vu pour iw parce que vous m'aviez dit que c'était pas dans l'install de base, je m'étais pas trop posé la question pour les autres (à part dkms) parce qu'elles sont toutes sur mon système. mais effectivement, la question est bonne.
if [[ "$(which "iw")" = "" ]]
est-ce que ça suffit (which) ou est ce qu'il y a un meilleur test ?
est-ce que je fais ça pour toutes les commandes ou juste celles qui sont dans "optional".
j'ai mis une liste des commandes et des paquets sur le readme github
pour les traductions, je veux bien faire un deuxième script special bruno sans traduction, mais pour le coup c'est déjà transparent pour l'utilisateur final francophone. si tu as des propositions pour faire une internationalisation dans les règles, je suis preneur, mais là j'ai pas cherché plus loin (et je tiens au fait que ça puisse servir à d'autres que ce forum ou en français), et ça reste un petit script, pas un projet kde.
voilà. Mais merci pour ces critiques constructives. je tâcherai de tout prendre en compte sur la durée
le github
https://github.com/olivierPrigent/wifiCheck/tree/main
S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)
Hors ligne
#73 Le 11/02/2024, à 13:34
- lynn
Re : Nouvelle version de wifiCheck
Bonjour,
Un test un peu plus simple... code de retour 0 = logiciel installé, 1 = non installé.
if command -v iw >/dev/null; then ...
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#74 Le 12/02/2024, à 18:28
- Astrolivier
Re : Nouvelle version de wifiCheck
merci !
j'ai mis toutes les commandes avec un "if command -v" du coup, ça se présente comme ça
declare -A command_array
command_array=([uname]="coreutils" [lsb_release]="lsb-release" [lspci]="pciutils" [lshw]="lshw" [lsusb]="usbutils" [lsmod]="kmod" [dkms]="dkms" [mokutil]="mokutil" [rfkill]="rfkill" [ip]="iproute2" [ping]="iputils-ping" [resolvectl]="systemd" [ufw]="ufw" [nmcli]="network-manager" [iw]="iw" [modinfo]="kmod" [systemctl]="systemd" [iptables]="iptables")
declare key
...
echo -e "\n\n################ nmcli #################\n"
key="nmcli"
if (command -v "$key") &>/dev/null ; then
nmcli | head -n -3
else
echo "command $key is not present you should install ${command_array[$key]} package"
fi
aussi j'ai retravaillé le truc, pour faire une version courte, plus courte, et parce que beaucoup d'info sont direct avec nmcli et iw (modules, gateway, RX, dns...)
donc je propose ça (c'est la version longue, mais j'ai mis un "=======" entre la courte et la longue) je pense qu'en 100 lignes, l'essentiel est là, et pour plus de détails, la longue fait 400 lignes (le très longue encore plus)
###############################################
########### Wifi Check ##################
########### 2024-02-12 ##################
###############################################
##### Current kernel, release, desktop ######
Current Kernel : 5.15.0-94-generic
Release Description: Ubuntu 22.04.3 LTS
Current Desktop : KDE
################ nmcli #################
wlp2s0: connecté à SFR_5298
"Qualcomm Atheros QCA9377"
wifi (ath10k_pci), C8:94:02:E1:CB:65, hw, mtu 1500
ip4 par défaut
inet4 192.168.1.150/24
route4 192.168.1.0/24 metric 600
route4 default via 192.168.1.1 metric 600
route4 169.254.0.0/16 metric 1000
inet6 fe80::4fed:f35d:4e5b:217c/64
route6 fe80::/64 metric 1024
p2p-dev-wlp2s0: déconnecté
"p2p-dev-wlp2s0"
wifi-p2p, hw
enp3s0: indisponible
"Realtek RTL810xE"
ethernet (r8169), B4:45:06:7C:4B:14, hw, mtu 1500
lo: non-géré
"lo"
loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
DNS configuration:
servers: 1.1.1.1 192.168.1.1
interface: wlp2s0
############## iw dev ####################
phy#0
Unnamed/non-netdev interface
wdev 0x4
addr c8:94:02:e1:cb:65
type P2P-device
txpower 0.00 dBm
Interface wlp2s0
ifindex 3
wdev 0x1
addr c8:94:02:e1:cb:65
ssid SFR_5298
type managed
channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
txpower 20.00 dBm
multicast TXQ:
qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets
0 0 0 0 0 0 0 0 0
################ lsusb ################
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0c45:671e Microdia Integrated_Webcam_HD
Bus 001 Device 002: ID 0cf3:e009 Qualcomm Atheros Communications
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
####### lsmod | grep <wifi_modules> #######
Module Size Used by
ath10k_pci 49152 0
ath10k_core 602112 1 ath10k_pci
ath 36864 1 ath10k_core
mac80211 1249280 1 ath10k_core
cfg80211 974848 3 ath,mac80211,ath10k_core
################# dkms status ###############
command dkms is not present you should install dkms package
######### mokutil --sb-state #############
SecureBoot disabled
########## sudo rfkill list #############
0: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
################ ping no-DNS ###################
ping gateway ipv4 : ok
ping gateway ipv6 : bad !
ping cloudflare ipv4 : ok
ping cloudflare ipv6 : bad !
########### sudo ufw status #############
État : inactif
=====================================================================
######### resolvectl | grep Server #########
Current DNS Server: 192.168.1.1
DNS Servers: 1.1.1.1 192.168.1.1
###### cat /etc/network/interfaces #######
# ce fichier est obsolète sauf si vous savez ce que vous faîtes #
cat: /etc/network/interfaces: Aucun fichier ou dossier de ce type
######## sudo lshw -C network #########
*-network
description: Wireless interface
product: QCA9377 802.11ac Wireless Network Adapter
vendor: Qualcomm Atheros
physical id: 0
bus info: pci@0000:02:00.0
logical name: wlp2s0
version: 31
serial: c8:94:02:e1:cb:65
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=ath10k_pci driverversion=5.15.0-94-generic firmware=WLAN.TF.2.1-00021-QCARMSWP-1 ip=192.168.1.150 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:135 memory:a1000000-a11fffff
*-network
description: Ethernet interface
product: RTL810xE PCI Express Fast Ethernet controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:03:00.0
logical name: enp3s0
version: 07
serial: b4:45:06:7c:4b:14
capacity: 100Mbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.15.0-94-generic firmware=rtl8106e-1_0.0.1 06/29/12 latency=0 link=no multicast=yes port=twisted pair
resources: irq:23 ioport:e000(size=256) memory:a1300000-a1300fff memory:80100000-80103fff
####### lspci -k -nn | grep -A 3 -i net ######
02:00.0 Network controller [0280]: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter [168c:0042] (rev 31)
Subsystem: Dell QCA9377 802.11ac Wireless Network Adapter [1028:1810]
Kernel driver in use: ath10k_pci
Kernel modules: ath10k_pci
03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller [10ec:8136] (rev 07)
Subsystem: Dell RTL810xE PCI Express Fast Ethernet controller [1028:0a10]
Kernel driver in use: r8169
Kernel modules: r8169
################ ip a ###################
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether b4:45:06:7c:4b:14 brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether c8:94:02:e1:cb:65 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.150/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp2s0
valid_lft 48803sec preferred_lft 48803sec
inet6 fe80::4fed:f35d:4e5b:217c/64 scope link noprefixroute
valid_lft forever preferred_lft forever
####### modinfo <wifi_modules> |grep parm #######
Modules parm for ath :
Modules parm for ath10k_core :
parm: debug_mask:Debugging mask (uint)
parm: uart_print:Uart target debugging (bool)
parm: skip_otp:Skip otp failure for calibration in testmode (bool)
parm: cryptmode:Crypto mode: 0-hardware, 1-software (uint)
parm: rawmode:Use raw 802.11 frame datapath (bool)
parm: coredump_mask:Bitfield of what to include in firmware crash file (ulong)
parm: fw_diag_log:Diag based fw log debugging (bool)
Modules parm for ath10k_pci :
parm: irq_mode:0: auto, 1: legacy, 2: msi (default: 0) (uint)
parm: reset_mode:0: auto, 1: warm only (default: 0) (uint)
Modules parm for cfg80211 :
parm: bss_entries_limit:limit to number of scan BSS entries (per wiphy, default 1000) (int)
parm: ieee80211_regdom:IEEE 802.11 regulatory domain code (charp)
parm: cfg80211_disable_40mhz_24ghz:Disable 40MHz support in the 2.4GHz band (bool)
Modules parm for mac80211 :
parm: minstrel_vht_only:Use only VHT rates when VHT is supported by sta. (bool)
parm: max_nullfunc_tries:Maximum nullfunc tx tries before disconnecting (reason 4). (int)
parm: max_probe_tries:Maximum probe tries before disconnecting (reason 4). (int)
parm: beacon_loss_count:Number of beacon intervals before we decide beacon was lost. (int)
parm: probe_wait_ms:Maximum time(ms) to wait for probe response before disconnecting (reason 4). (int)
parm: ieee80211_default_rc_algo:Default rate control algorithm for mac80211 to use (charp)
####### systemctl list network units #########
networkd-dispatcher.service loaded active running Dispatcher daemon for systemd-networkd
NetworkManager-wait-online.service loaded active exited Network Manager Wait Online
NetworkManager.service loaded active running Network Manager
systemd-networkd.service loaded inactive dead Network Configuration
systemd-resolved.service loaded active running Network Name Resolution
systemd-timesyncd.service loaded active running Network Time Synchronization
wpa_supplicant.service loaded active running WPA supplicant
######## nmcli connection show ###########
NAME UUID TYPE DEVICE
SFR_5298 56577409-b60c-405e-bd1a-1cf63ce4f0de wifi wlp2s0
Bbox-40140A7C 133f170f-37ec-404d-a443-1d7eb73228c1 wifi --
bts-snir f7352566-ffc9-467f-9eda-f2a58d049258 wifi --
Connexion filaire 1 1b6ed10a-d83a-3584-af22-c657226c44e8 ethernet --
FREEBOX KERLOUAN a64bfb36-463d-4716-a3b7-c8066a152da4 wifi --
LAPTOP-MAXIME 7505 ddd72023-93c5-4d2a-9571-7286582fced1 wifi --
Livebox-5FD6 fb880269-d8a1-4a4b-bb4c-bb8ca2123e9d wifi --
Livebox-7D8D 4e512446-8f8b-4e5e-a5c1-81d2eb2e34fa wifi --
SFR_5AB0 9530f514-c9ce-4834-89c3-d431704ce5da wifi --
SFR_7748 176b7f04-3a28-4725-b7e1-908932675b88 wifi --
_SNCF_WIFI_INOUI e85f25e7-f7ee-48d5-947d-01e337e782df wifi --
######### nmcli -f all d show wlp2s0 #############
GENERAL.DEVICE: wlp2s0
GENERAL.TYPE: wifi
GENERAL.NM-TYPE: NMDeviceWifi
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/Devices/3
GENERAL.VENDOR: Qualcomm Atheros
GENERAL.PRODUCT: QCA9377 802.11ac Wireless Network Adapter
GENERAL.DRIVER: ath10k_pci
GENERAL.DRIVER-VERSION: 5.15.0-94-generic
GENERAL.FIRMWARE-VERSION: WLAN.TF.2.1-00021-QCARMSWP-1
GENERAL.HWADDR: C8:94:02:E1:CB:65
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connecté)
GENERAL.REASON: 0 (Aucun raison donnée)
GENERAL.IP4-CONNECTIVITY: 4 (plein)
GENERAL.IP6-CONNECTIVITY: 4 (plein)
GENERAL.UDI: /sys/devices/pci0000:00/0000:00:14.0/0000:02:00.0/net/wlp2s0
GENERAL.PATH: pci-0000:02:00.0
GENERAL.IP-IFACE: wlp2s0
GENERAL.IS-SOFTWARE: non
GENERAL.NM-MANAGED: oui
GENERAL.AUTOCONNECT: oui
GENERAL.FIRMWARE-MISSING: non
GENERAL.NM-PLUGIN-MISSING: non
GENERAL.PHYS-PORT-ID: --
GENERAL.CONNECTION: SFR_5298
GENERAL.CON-UUID: 56577409-b60c-405e-bd1a-1cf63ce4f0de
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/4
GENERAL.METERED: non (deviné)
CAPABILITIES.CARRIER-DETECT: non
CAPABILITIES.SPEED: 1 Mb/s
CAPABILITIES.IS-SOFTWARE: non
CAPABILITIES.SRIOV: non
INTERFACE-FLAGS.UP: oui
INTERFACE-FLAGS.LOWER-UP: oui
INTERFACE-FLAGS.CARRIER: oui
INTERFACE-FLAGS.PROMISC: non
WIFI-PROPERTIES.WEP: oui
WIFI-PROPERTIES.WPA: oui
WIFI-PROPERTIES.WPA2: oui
WIFI-PROPERTIES.TKIP: oui
WIFI-PROPERTIES.CCMP: oui
WIFI-PROPERTIES.AP: oui
WIFI-PROPERTIES.ADHOC: oui
WIFI-PROPERTIES.2GHZ: oui
WIFI-PROPERTIES.5GHZ: oui
WIFI-PROPERTIES.MESH: oui
WIFI-PROPERTIES.IBSS-RSN: oui
AP[1].IN-USE: *
AP[1].BSSID: 6C:61:F4:3D:52:9E
AP[1].SSID: SFR_5298
AP[1].MODE: Infra
AP[1].CHAN: 1
AP[1].RATE: 130 Mbit/s
AP[1].SIGNAL: 79
AP[1].BARS: ▂▄▆_
AP[1].SECURITY: WPA1 WPA2
IP4.ADDRESS[1]: 192.168.1.150/24
IP4.GATEWAY: 192.168.1.1
IP4.ROUTE[1]: dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 600
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 600
IP4.ROUTE[3]: dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP4.DNS[1]: 1.1.1.1
IP4.DNS[2]: 192.168.1.1
DHCP4.OPTION[1]: broadcast_address = 192.168.1.255
DHCP4.OPTION[2]: dhcp_lease_time = 86400
DHCP4.OPTION[3]: dhcp_server_identifier = 192.168.1.1
DHCP4.OPTION[4]: domain_name_servers = 192.168.1.1
DHCP4.OPTION[5]: expiry = 1707804935
DHCP4.OPTION[6]: host_name = poney2204-inspiron
DHCP4.OPTION[7]: ip_address = 192.168.1.150
DHCP4.OPTION[8]: next_server = 192.168.1.1
DHCP4.OPTION[9]: ntp_servers = 192.168.1.1
DHCP4.OPTION[10]: requested_broadcast_address = 1
DHCP4.OPTION[11]: requested_domain_name = 1
DHCP4.OPTION[12]: requested_domain_name_servers = 1
DHCP4.OPTION[13]: requested_domain_search = 1
DHCP4.OPTION[14]: requested_host_name = 1
DHCP4.OPTION[15]: requested_interface_mtu = 1
DHCP4.OPTION[16]: requested_ms_classless_static_routes = 1
DHCP4.OPTION[17]: requested_nis_domain = 1
DHCP4.OPTION[18]: requested_nis_servers = 1
DHCP4.OPTION[19]: requested_ntp_servers = 1
DHCP4.OPTION[20]: requested_rfc3442_classless_static_routes = 1
DHCP4.OPTION[21]: requested_root_path = 1
DHCP4.OPTION[22]: requested_routers = 1
DHCP4.OPTION[23]: requested_static_routes = 1
DHCP4.OPTION[24]: requested_subnet_mask = 1
DHCP4.OPTION[25]: requested_time_offset = 1
DHCP4.OPTION[26]: requested_wpad = 1
DHCP4.OPTION[27]: routers = 192.168.1.1
DHCP4.OPTION[28]: subnet_mask = 255.255.255.0
IP6.ADDRESS[1]: fe80::4fed:f35d:4e5b:217c/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 1024
CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/7
CONNECTIONS.AVAILABLE-CONNECTIONS[1]: 56577409-b60c-405e-bd1a-1cf63ce4f0de | SFR_5298
######### iw dev wlp2s0 link #############
Connected to 6c:61:f4:3d:52:9e (on wlp2s0)
SSID: SFR_5298
freq: 2412
RX: 319203362 bytes (465439 packets)
TX: 66778576 bytes (245260 packets)
signal: -41 dBm
rx bitrate: 65.0 MBit/s MCS 7
tx bitrate: 1.0 MBit/s
bss flags: short-slot-time
dtim period: 3
beacon int: 100
######## iw dev wlp2s0 station dump ###########
Station 6c:61:f4:3d:52:9e (on wlp2s0)
inactive time: 12 ms
rx bytes: 319203362
rx packets: 465439
tx bytes: 66778576
tx packets: 245260
tx retries: 0
tx failed: 0
beacon loss: 0
beacon rx: 60999
rx drop misc: 400
signal: -41 [-41, -73] dBm
signal avg: -40 [-40, -73] dBm
beacon signal avg: -41 dBm
tx bitrate: 1.0 MBit/s
tx duration: 125906075 us
rx bitrate: 65.0 MBit/s MCS 7
rx duration: 0 us
authorized: yes
authenticated: yes
associated: yes
preamble: long
WMM/WME: yes
MFP: no
TDLS peer: no
DTIM period: 3
beacon interval:100
short slot time:yes
connected time: 37600 seconds
associated at [boottime]: 61952.854s
associated at: 1707718533221 ms
current time: 1707756133310 ms
S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)
Hors ligne
#75 Le 17/02/2024, à 21:46
- Astrolivier
Re : Nouvelle version de wifiCheck
les changements sont remontés sur le github, j'ai essayé d'améliorer encore un peu, pris en compte autant que possible les remarques de bruno
https://github.com/olivierPrigent/wifiCheck/tree/main
liste des commandes
printf '%(%Y-%m-%d)T\n' -1
uname -r
lsb_release -d
nmcli
iw dev
nmcli device wifi
lsusb
lspci -k -nn | grep -A 3 -i net
lsmod | grep <wifi_modules>
dkms status
mokutil --sb-state
sudo rfkill list
ping <gateway>
ping <cloudflare>
sudo ufw status# -l
resolvectl | grep Server
cat /etc/network/interfaces
sudo lshw -C network
pccardctl info
ip a
modinfo <wifi_modules> |grep parm
systemctl list-units --type=service --all |grep -iE 'network|wpa'
nmcli connection show
nmcli -f all d show $interface
iw dev <device> link# -v
iw list
iw dev <device> scan
sudo iptables -vL -t filter|nat|mangle|raw|security
la fonction dont le résultat me satisfait mais qui peut probablement être améliorée (j'ai essayé pleins de trucs, lu beaucoup de doc, mais je suis au bout de mes possibilités)
## find the modules that use cfg80211, find modules that use those modules,
## print the lsmod of all these modules, sort only one instance
lsmod_function() {
modules_array=("cfg80211")
lsmod_variable=$(lsmod)
readarray -t -d "," -O"${#modules_array[@]}" modules_array <<< ${lsmod_variable} | awk '{if ($1 == "cfg80211") print $4}'
for i in "${!modules_array[@]}" ; do
readarray -t -O "${#modules_array[@]}" modules_array < <(echo "${lsmod_variable}" | grep "${modules_array[$i]}" | awk '{split($4, a, ","); for (i in a) print a[i]}')
done
for i in "${!modules_array[@]}" ; do
readarray -t -O "${#modules_array[@]}" modules_array < <(echo "${lsmod_variable}" | grep "${modules_array[$i]}" | awk '{split($4, a, ","); for (i in a) print a[i]}')
done
readarray -t modules_array < <(printf "%s\n" "${modules_array[@]}" |sort -u)
for i in "${!modules_array[@]}" ; do
readarray -t -O "${#modules_array[@]}" modules_array < <(echo "${lsmod_variable}" | grep "${modules_array[$i]}" | awk '{split($4, a, ","); for (i in a) print a[i]}')
done
readarray -t modules_array < <(printf "%s\n" "${modules_array[@]}" |sort -u)
echo "Module Size Used by"
length=${#modules_array[@]}
for (( j=0; j<length; j++ )); do
printf "%s\n" echo "$lsmod_variable" | awk -v word="${modules_array[$j]}" '$1 == word { print }'
done
}
pour essayer facilement (version longue, enlever le "-l" à la fin pour la version de base)
wget -N -t 5 -T 10 https://raw.githubusercontent.com/olivierPrigent/wifiCheck/main/wificheck.sh && chmod 755 wificheck.sh && ./wificheck.sh -l
S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)
Hors ligne