diff --git a/scripts/getInfo b/scripts/getInfo index 4d457ea..79d4895 100755 --- a/scripts/getInfo +++ b/scripts/getInfo @@ -1,7 +1,7 @@ #!/bin/bash -version=2.47.0 -date="27/11/2017" +version=2.48.0 +date="28/11/2017" projet="simpledeb" contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/" script="getInfo" @@ -260,7 +260,7 @@ f__wcv(){ # 09/11/2017 # si $2=print affiche url testée & entêtes http & location (si présente) et sortie normale fonction # si $2=loc affiche seulement location et sortie normale fonction # si $2=test return 0 si ok, return 1 si ko -f__wget_test(){ # 06/11/2017 +f__wget_test(){ # 28/11/2017 local file_test_wget retourWget retourHttp location file_test_wget="/tmp/testWget-$$-$RANDOM" wget -Sq --timeout=10 --user-agent="$user_agent" --spider --save-headers "$1" &>"$file_test_wget" @@ -296,7 +296,8 @@ f__wget_test(){ # 06/11/2017 fi if [ "$retourWget" ]; then rm "$file_test_wget" - f__error "wget, $retourWget" "$1" "$YELLOW$retourHttp" "location" + f__error "wget, $retourWget" "$1" "$YELLOW$retourHttp" "$location" +# echo -e "$RED errur wget, $retourWget \n $1 \n $YELLOW$retourHttp \n $location" fi if [ "$(grep -c '200' <<< $retourHttp)" -ne 0 ]; then echo -e "$GREEN\ntout est ok, réessayer\n$STD" @@ -531,6 +532,85 @@ toDisplay=( echo -e "$STD\n plus d'infos: $GREEN$urlNotice\n$STD" } + # $1 chaines à extraire (sur un grep -Ei), $2 objet raw|name +f_lspci(){ # 28/11/2017 + local slots lspci display='' + # uniquement le name du device + if [ "$2" == "name" ]; then + while read field1 lspci; do + lspci=${lspci#*: } # lspci==Intel Corporation System Controller ... + lspci=${lspci% (rev*} # suppression à la fin + lspci=${lspci/Corporation } # suppression ' Corporation' + lspci=${lspci/Advanced Micro Devices, Inc. } # suppression 'Advanced Micro Devices, Inc. ' + display+="$lspci"$'\n' + done <<< $( lspci | grep -Ei "$1" ) + # lspci détaillé + elif [ "$2" == "raw" ]; then + slots=$( lspci | grep -Ei "$1" | cut -d" " -f1 ) + if ! lspci -nnv &>/dev/null ; then # commande/option indisponible + display+="lspci -nnv -s non disponible" + else + for lspci in $slots; do + display+=$( lspci -nnv -s "$lspci" )$'\n\n' + done + fi + fi + display=${display%[[:cntrl:]]} # suppression \nl finaux + echo -en "$display\n" +} + +fi_audio(){ # 28/11/2017 + local audio nb_audio cardsAudio cmd_cards version_alsa card_alsa mod modules text + local alert_alsa + + # liste des devices + audio=$( f_lspci "Audio device|Audio controller|Multimedia audio controller" "name" ) + + # qte de devices + nb_audio=$(f__wcv -l "$audio") + + # lspci + cardsAudio=$( f_lspci "Audio device|Audio controller|Multimedia audio controller" "raw" ) + cmd_cards="lspci -nnv | grep -EiA6 'Audio device|Audio controller'" + + # version ALSA + version_alsa=$( gawk '{ + sub(/Advanced Linux Sound Architecture Driver /,"") + sub(/Version /,"") + sub(/.$/,"") + print $0 + }' /proc/asound/version ) + + # cartes gérées par alsa + card_alsa=$( gawk ' { print " "$0 }' /proc/asound/cards ) + + if [ ! -d /proc/asound ] ; then + alert_alsa="/proc/asound : répertoire inexistant" + alert_alsa="ALSA n'est pas installé correctement" + fi + + # modules alsa + mod=$( gawk '{ print $2 }' /proc/asound/modules ) + mod=${mod// /} + # modules kernel + modules=$( gawk ' + /'$( echo $mod )'/ { printf "%-25s %s %2s %s\n",$1, $2, $3, $4 } + ' <<< $( lsmod ) ) + cmd_modules="lsmod | grep '$mod'" + cmt_modules="modules kernel" +### + text="## son \n\n" + [ "$audio" ] && text+="$(sed -E 's/(.*)/> \* \*\*\1\*\*/' <<< $audio) \n\n" # mise en puces + quote + # lspci -nnv + f_display "cardsAudio" "cmd" "$cmd_cards" + f_display "version_alsa" "cmd" "/proc/asound/version" "driver alsa (Advanced Linux Sound Architecture)" + f_display "card_alsa" "cmd" "cat /proc/asound/cards" "cartes enregistées" + f_display "mod" "cmd" "cat /proc/asound/modules" "modules alsa" + f_display "modules" "cmd" "$cmd_modules" "$cmt_modules" + echo -en "$text\n" >> "$fileOutput" + unset text +} + fi_batt(){ # 10/11/2017 local pluriel [ "$fg_nb_batt" ] || figet_batt @@ -762,7 +842,7 @@ fi_efi(){ # 20/11/2017 unset text } -fi_graph(){ # 27/11/2017 +fi_graph(){ # 28/11/2017 local slots cards cmd_cards ig local stck_glxinfo stck_glxinfoOpt stck_glxinfoDri glx_dvc cmd_glx_dvc glx_dvc_temp openGl cmd_openGl local providers resolutions pluriel modules cmt_modules text @@ -775,7 +855,7 @@ fi_graph(){ # 27/11/2017 # slots pci video slots="$(lspci | grep -Ei 'vga|display|3d' | cut -d" " -f1)" # lspci - cmd_cards="lspci -nnv | grep -iEA11 'vga|display|3d'" # commande par défaut + cmd_cards="lspci -nnv | grep -EiA11 'VGA .* controller|Display controller|3D controller'" # commande par défaut if ! lspci -nnv &>/dev/null ; then # commande/option indisponible cards="lspci -nnv non disponible"$'\n' elif [ "$fg_nb_gpu" -gt 1 ]; then # plusieurs cartes, essai optirun ou prime @@ -1534,20 +1614,21 @@ fi_pkg_x(){ #v2 23/11/2017 f_display "alert_pkg_todo" "var" "aide souhaitée" } -fi_reseau(){ # 27/11/2017 - local slots cards ip_a iwconfig interfaces route resolv canal_wifi ifx text pluriel +fi_reseau(){ # 28/11/2017 + local reseau nb_reseau cards cmd_cards ip_a iwconfig interfaces route resolv canal_wifi ifx text pluriel + local slots local alert_wlx alert_ifconfig # cardsManuel="$(lspci -nnk | grep -EiA 5 'network|ethernet')" # cardsManuel="$(lspci -nnv | grep -EiA 15 'network|ethernet')" # cardsManuel="lspci -nnv -s $( lspci | grep -Ei 'network|ethernet' | cut -d" " -f1 )" si devices plusieurs slots??? #lspci - slots="$(lspci | grep -Ei 'network|ethernet' | cut -d" " -f1)" - for ifx in $slots; do - cards+=$( lspci -s $ifx -nnv )$'\n' - done - cards=${cards//(prog-if*])} #suppression (prog-if...]) - [ "$cards" ] && cards=${cards::-1} # suppression dernier $'\n' - [ $( f__wcv -l "$cards" ) -eq 0 ] && cards="lspci incompatible" + # liste des devices + reseau=$( f_lspci "Ethernet controller|Network controller" "name" ) + # nombre de devices + nb_reseau=$(f__wcv -l "$reseau") + # lspci + cards=$( f_lspci "Ethernet controller|Network controller" "raw" ) + cmd_cards="lspci -nnv | grep -EiA 15 'network|ethernet'" # ip a & route ip_a=$( ip a | sed '/link\/ether/d; /valid_lft/d' ) # filtre sur adr MAC & bail # ip_a=$( sed '/inet6.*scope global/d; /inet6.*scope link/d' <<< $ip_a ) # filtre sur inet6 scope global & scope link (fe80::) @@ -1588,8 +1669,10 @@ fi_reseau(){ # 27/11/2017 [ "$fg_mod_net" ] || figet_mod_net ### # text="## réseau \n\n" - #lspci - f_display "cards" "cmd" "lspci -nnv | grep -EiA 15 'network|ethernet" +#echo -"$reseau"- + [ "$reseau" ] && text+="$(sed -E 's/(.*)/> \* \*\*\1\*\*/' <<< $reseau) \n\n" # mise en puces + quote + # lspci -nnv + f_display "cards" "cmd" "$cmd_cards" # ip locales avec type [ $(f__wcv "-l" "$fg_ip_tp") -gt 1 ] && pluriel="s" || unset pluriel f_display "fg_ip_tp" "sans" "" "IP locale"$plurielD @@ -2705,8 +2788,7 @@ figet_dmi(){ #v2 06/11/2017 } # assigne $fg_gpu (liste des gpu), $fg_nb_gpu - # requis: f__wcv -figet_gpu(){ #v3 10/11/2017 +figet_gpu(){ #v3 27/11/2017 local lspci field1 lspci="$(lspci -mm 2>/dev/null)" if [ "$?" -eq 0 ]; then @@ -2715,13 +2797,14 @@ figet_gpu(){ #v3 10/11/2017 sub(/ Corporation/,"",$3); sub(/Advanced Micro Devices, Inc. /,"",$3); sub(/ /," ",$3); print $3": "$4}' <<< $lspci)" else # lspci -mm en erreur, utilisation lspci (dans les requis) - read field1 lspci <<< $(IFS=':' lspci | grep -E 'Display |3D |VGA ') # lspci==VGA compatible controller: Intel Corporation System ... - fg_gpu=${lspci/*:/} # lspci==Intel Corporation System Controller ... - fg_gpu=${fg_gpu/ Corporation} # suppression ' Corporation' + while read field1 lspci; do + fg_gpu+="$lspci"$'\n' + done <<< $( lspci | grep -Ei 'Display |3D |VGA ' ) + fg_gpu=${fg_gpu#*: } # lspci==Intel Corporation System Controller ... + fg_gpu=${fg_gpu% (rev*} # remplacement espace double par simple + fg_gpu=${fg_gpu/Corporation } # suppression ' Corporation' fg_gpu=${fg_gpu/Advanced Micro Devices, Inc. } # suppression 'Advanced Micro Devices, Inc. ' - fg_gpu=${fg_gpu/ / } # remplacement espace double par simple - fg_gpu=${fg_gpu## } # suppression du plus nombre d'espaces au début - fg_gpu=${fg_gpu%% } # suppression du plus nombre d'espaces à la fin + fg_audio=${fg_audio%[[:cntrl:]]} # suppression derniers $'\n' fi fg_nb_gpu=$(f__wcv -l "$fg_gpu") } @@ -2789,7 +2872,7 @@ figet_hw(){ #v2 31/10/2017 } # assigne $fg_ip, $fg_ip_tp, $fg_gws, $fg_gws_tp, $fg_ifn_prior, $fg_ifn, $fg_mac, fg_mac_tp -figet_ip(){ # 09/11/2017 +figet_ip(){ # 27/11/2017 local ifn [ $( f__which ip ) ] || return 1 fg_ip="$(sed '/[[:digit:]]:[[:blank:]]lo.*inet/d; /inet6.*scope/d' <<< $(ip -o a) | gawk '{print " ",$4,"(",$2,")"}')" @@ -2800,13 +2883,14 @@ figet_ip(){ # 09/11/2017 fg_ifn_prior="$(ip route get 255.255.255.255 | sed -nr 's/.*src ([0-9.]+).*/\1/p')" for ifn in $(ls /sys/class/net/) ; do [ "$ifn" != "lo" ] && fg_ifn+=" $ifn"$'\n' - [ "$ifn" != "lo" ] && fg_mac+=" $ifn: $(< /sys/class/net/$ifn/address)"$'\n' + [ "$ifn" != "lo" ] && fg_mac+=" $ifn: $(cat /sys/class/net/$ifn/address)"$'\n' done - fg_ifn="$(sed '/^[[:blank:]]*$/d' <<< $fg_ifn)" # suppression lignes vides - fg_mac="$(sed '/^[[:blank:]]*$/d' <<< $fg_mac)" # suppression lignes vides +# fg_ifn="$(sed '/^[[:blank:]]*$/d' <<< $fg_ifn)" # suppression lignes vides +# fg_mac="$(sed '/^[[:blank:]]*$/d' <<< $fg_mac)" # suppression lignes vides +# voir cat /sys/class/net/wlp1s0/uevent fg_mac_tp="$(sed -E 's/(^.*wl.*)/\1 (wifi)/;s/(^.*en.*|^.*eth.*)/\1 (ethernet)/' <<< $fg_mac)" - [ "$fg_ifn" ] && fg_ifn=${fg_ifn::-1} # suppression dernier $'\n' - [ "$fg_mac" ] && fg_mac=${fg_mac::-1} # suppression dernier $'\n' + fg_ifn=${fg_ifn%[[:cntrl:]]} # suppression derniers $'\n' + fg_mac_tp=${fg_mac_tp%[[:cntrl:]]} # suppression derniers $'\n' } # $1=4|6, assigne $fg_public @@ -2920,7 +3004,7 @@ figet_mem(){ # 27/11/2017 [ "$a" == "SwapFree" ] && SwapFree="${b/kB}" [ "$a" == "SwapCached" ] && SwapCached="${b/kB}" done <<< $(< /proc/meminfo) - $IFS="$IFS_INI" + IFS="$IFS_INI" MemUsed=$(( $MemTotal-($MemFree+$Buffers+$Cached+$SReclaimable) )) SwapUsed=$(( $SwapTotal-$SwapFree )) totalTotal=$(( $MemTotal+$SwapTotal )) @@ -3479,7 +3563,7 @@ prg_1(){ # début prg_2(){ # traitements principaux 21/11/2017 if [[ "$1" == all || "$1" =~ s ]]; then #systeme, matériel -cs echo -e "# ▷ Système \n\n" >> "$fileOutput" - for i in fi_systeme fi_cpu fi_mem fi_hw fi_batt fi_graph fi_disk fi_usb ; do + for i in fi_systeme fi_cpu fi_mem fi_hw fi_batt fi_graph fi_disk fi_audio fi_usb ; do echo -n "•" $i done @@ -3602,7 +3686,7 @@ for j in $options; do -t | --test ) prg_1 "$*" echo -n "•" - fi_disk + fi_audio exit ;; # test -c* | all ) [ "$j" == "-c" ] && exec $0 "menu" diff --git a/scripts/getInfo_changelog.md b/scripts/getInfo_changelog.md index 7f0cba3..28b8a22 100644 --- a/scripts/getInfo_changelog.md +++ b/scripts/getInfo_changelog.md @@ -5,6 +5,12 @@ +## 2.48.0 28/11/2017 + +* nouveau: début audio: fi_audio +* nouveau: f_lspci +* révision: fi_reseau, utilisation f_lspci + ## 2.47.0 27/11/2017 * nouveau, révision: fi_dmesg, firmware bug, info_ucode