tazpanel annotate hardware.cgi @ rev 234
bug fix in Installer dropdown menu
author | Dominique Corbex <domcox@slitaz.org> |
---|---|
date | Sat Feb 25 12:20:28 2012 +0100 (2012-02-25) |
parents | 0f412d6d710e |
children | 2934365ed3bd |
rev | line source |
---|---|
pankso@46 | 1 #!/bin/sh |
pankso@46 | 2 # |
pankso@46 | 3 # Hardware part of TazPanel - Devices, drivers, printing |
pankso@46 | 4 # |
pankso@112 | 5 # Copyright (C) 2011 SliTaz GNU/Linux - BSD License |
pankso@46 | 6 # |
pankso@46 | 7 |
pankso@46 | 8 # Common functions from libtazpanel |
pankso@46 | 9 . lib/libtazpanel |
pankso@46 | 10 get_config |
pascal@81 | 11 header |
pankso@46 | 12 |
pankso@46 | 13 TITLE="- Hardware" |
pankso@46 | 14 |
pankso@46 | 15 # |
pankso@46 | 16 # Commands |
pankso@46 | 17 # |
pankso@46 | 18 |
pascal@81 | 19 case " $(GET) " in |
pascal@81 | 20 *\ print\ *) |
pankso@46 | 21 echo "TODO" ;; |
pascal@81 | 22 *\ modules\ *|*\ modinfo\ *) |
pankso@46 | 23 xhtml_header |
pankso@46 | 24 cat << EOT |
pankso@46 | 25 <div id="wrapper"> |
pankso@66 | 26 <h2>`gettext "Kernel modules"`</h2> |
pankso@69 | 27 <div class="float-right"> |
pankso@69 | 28 <form method="get" action="$SCRIPT_NAME"> |
pankso@69 | 29 <input type="hidden" name="modules" /> |
pankso@69 | 30 <input type="text" name="search" /> |
pankso@69 | 31 </form> |
pankso@69 | 32 </div> |
pankso@72 | 33 <p>`gettext "Manage, search or get information about the Linux kernel modules`</p> |
pankso@46 | 34 </div> |
pankso@46 | 35 EOT |
pankso@66 | 36 # Request may be modinfo output that we want in the page itself |
pascal@81 | 37 if [ -n "$(GET modinfo)" ]; then |
pascal@81 | 38 echo '<strong>' |
pascal@81 | 39 gettext "Detailed information for module: "; echo "$(GET modinfo)" |
pascal@81 | 40 echo '</strong>' |
pascal@81 | 41 echo '<pre>' |
pascal@81 | 42 modinfo $(GET modinfo) |
pascal@81 | 43 echo '</pre>' |
pascal@81 | 44 fi |
pascal@81 | 45 if [ -n "$(GET modprobe)" ]; then |
pascal@81 | 46 echo '<pre>' |
pascal@81 | 47 modprobe -v $(GET modprobe) |
pascal@81 | 48 echo '</pre>' |
pascal@81 | 49 fi |
pascal@81 | 50 if [ -n "$(GET rmmod)" ]; then |
pascal@81 | 51 echo "Removing" |
pascal@81 | 52 rmmod -w $(GET rmmod) |
pascal@81 | 53 fi |
pascal@81 | 54 if [ -n "$(GET search)" ]; then |
pascal@81 | 55 gettext "Matching result(s) for: "; echo "$(GET search)" |
pascal@81 | 56 echo '<pre>' |
pascal@81 | 57 modprobe -l | grep "$(GET search)" | while read line |
pascal@81 | 58 do |
pascal@81 | 59 name=$(basename $line) |
pascal@81 | 60 mod=${name%.ko.gz} |
pascal@81 | 61 echo "Module : <a href='$SCRIPT_NAME?modinfo=$mod'>$mod</a> " |
pascal@81 | 62 done |
pascal@81 | 63 echo '</pre>' |
pascal@81 | 64 fi |
pankso@46 | 65 cat << EOT |
pankso@46 | 66 `table_start` |
pankso@46 | 67 <tr class="thead"> |
pankso@46 | 68 <td>`gettext "Module"`</td> |
pankso@46 | 69 <td>`gettext "Size"`</td> |
pankso@46 | 70 <td>`gettext "Used"`</td> |
pankso@46 | 71 <td>`gettext "by"`</td> |
pankso@46 | 72 </tr> |
pankso@46 | 73 EOT |
pankso@46 | 74 # Get the list of modules and link to modinfo |
pankso@46 | 75 lsmod | grep ^[a-z] | while read MOD SIZE USED BY |
pankso@46 | 76 do |
pankso@46 | 77 cat << EOT |
pankso@46 | 78 <tr> |
pankso@46 | 79 <td><a href="$SCRIPT_NAME?modinfo=$MOD">$MOD</a></td> |
pankso@46 | 80 <td>$SIZE</td> |
pankso@46 | 81 <td>$USED</td> |
pankso@46 | 82 <td>`echo $BY | sed s/","/" "/g`</td> |
pankso@46 | 83 </tr> |
pankso@46 | 84 EOT |
pankso@46 | 85 done |
pankso@66 | 86 table_end ;; |
pankso@66 | 87 *) |
pascal@217 | 88 [ -n "$(GET brightness)" ] && |
pascal@217 | 89 echo -n $(GET brightness) > /proc/acpi/video/$(GET dev)/LCD/brightness |
pascal@217 | 90 |
pankso@66 | 91 # |
pankso@66 | 92 # Default to summary with mounted filesystem, loaded modules |
pankso@66 | 93 # |
pankso@66 | 94 xhtml_header |
pankso@66 | 95 cat << EOT |
pankso@66 | 96 <div id="wrapper"> |
pankso@66 | 97 <h2>`gettext "Drivers & Devices"`</h2> |
pankso@66 | 98 <p>`gettext "Manage your computer hardware`</p> |
pascal@219 | 99 </div> |
pascal@219 | 100 <div> |
pascal@219 | 101 <a class="button" href="$SCRIPT_NAME?modules"> |
pascal@219 | 102 <img src="$IMAGES/tux.png" />Kernel modules</a> |
pascal@219 | 103 </div> |
pascal@219 | 104 |
pascal@219 | 105 <div id="wrapper"> |
pascal@217 | 106 EOT |
pascal@219 | 107 if [ -n "$(ls /proc/acpi/battery/*/info 2> /dev/null)" ]; then |
pascal@219 | 108 echo "<table>" |
pascal@219 | 109 for dev in /proc/acpi/battery/*; do |
pascal@219 | 110 grep ^present $dev/info | grep -q yes || continue |
pascal@219 | 111 design=$(sed '/design capacity:/!d;s/[^0-9]*\([0-9]*\).*/\1/' < $dev/info) |
pascal@219 | 112 remain=$(sed '/remaining capacity/!d;s/[^0-9]*\([0-9]*\).*/\1/' < $dev/state) |
pascal@219 | 113 rate=$(sed '/present rate/!d;s/[^0-9]*\([0-9]*\).*/\1/' < $dev/state) |
pascal@219 | 114 full=$(sed '/last full capacity/!d;s/[^0-9]*\([0-9]*\).*/\1/' < $dev/info) |
pascal@219 | 115 remtime=$(( ($remain * 60) / $rate )) |
pascal@219 | 116 rempct=$(( ($remain * 100) / $full )) |
pascal@219 | 117 cat << EOT |
pascal@219 | 118 <tr> |
pascal@219 | 119 <td><img src="$IMAGES/battery.png" /> |
pascal@219 | 120 Battery $(grep "^battery type" $dev/info | sed 's/.*: *//') |
pascal@219 | 121 $(grep "^design capacity:" $dev/info | sed 's/.*: *//') </td> |
pascal@219 | 122 <td>health $(( (100*$full)/$design))%</td> |
pascal@219 | 123 EOT |
pascal@219 | 124 if grep -qis discharging $dev/state; then |
pascal@219 | 125 cat <<EOT |
pascal@219 | 126 <td class="pct"><div class="pct" |
pascal@219 | 127 style="width: $rempct%;">charge $rempct% - $(printf "%d:%02d" $(($remtime/60)) $(($remtime%60)))</div></td> |
pascal@219 | 128 EOT |
pascal@219 | 129 else |
pascal@219 | 130 cat <<EOT |
pascal@219 | 131 <td class="pct"><div class="pct" |
pascal@219 | 132 style="width: $rempct%;">recharging $rempct%</div></td> |
pascal@219 | 133 EOT |
pascal@219 | 134 fi |
pascal@219 | 135 done |
pascal@219 | 136 echo "</table>" |
pascal@219 | 137 fi |
pascal@219 | 138 if [ -n "$(ls /proc/acpi/thermal_zone/*/temperature 2> /dev/null)" ]; then |
pascal@219 | 139 echo "Temperature: " |
pascal@219 | 140 for temp in /proc/acpi/thermal_zone/*/temperature; do |
pascal@219 | 141 sed 's/.*://' < $temp |
pascal@219 | 142 done |
pascal@219 | 143 fi |
pascal@217 | 144 if [ -n "$(ls /proc/acpi/video/*/LCD/brightness 2> /dev/null)" ]; then |
pascal@217 | 145 cat <<EOT |
pascal@217 | 146 <form method="get" action="$SCRIPT_NAME"> |
pascal@217 | 147 EOT |
pascal@217 | 148 for dev in /proc/acpi/video/*/LCD/brightness ; do |
pascal@217 | 149 name=$(echo $dev | sed 's|.*/video/||;s|/LCD/.*||') |
pascal@217 | 150 cat <<EOT |
pascal@217 | 151 <input type="hidden" name="dev" value="$name" /> |
pascal@217 | 152 $(gettext "LCD brightness") $name: <select name="brightness" onchange="submit();"> |
pascal@217 | 153 EOT |
pascal@217 | 154 awk '{ |
pascal@217 | 155 if ($1 == "levels:") |
pascal@217 | 156 for (i = 2; i <= NF; i++) level[$i] = i |
pascal@217 | 157 if ($1 == "current:") current=$2 |
pascal@217 | 158 } |
pascal@217 | 159 END { |
pascal@217 | 160 for (i in level) { |
pascal@217 | 161 s="<option value=\"" i "\"" |
pascal@217 | 162 if (current == i) s=s " selected=\"selected\"" |
pascal@217 | 163 s=s ">" i "%</option>" |
pascal@217 | 164 if (i == 100) last=s |
pascal@217 | 165 else print s |
pascal@217 | 166 } |
pascal@217 | 167 print last |
pascal@217 | 168 }' < $dev |
pascal@217 | 169 cat <<EOT |
pascal@217 | 170 </select> |
pascal@217 | 171 EOT |
pascal@217 | 172 done |
pascal@217 | 173 cat << EOT |
pascal@217 | 174 </form> |
pascal@217 | 175 EOT |
pascal@217 | 176 fi |
pascal@217 | 177 cat << EOT |
pankso@66 | 178 </div> |
pankso@152 | 179 |
pankso@152 | 180 <h3>$(gettext "Filesystem usage statistics")</h3> |
pankso@152 | 181 <pre> |
pankso@66 | 182 EOT |
pankso@152 | 183 fdisk -l | fgrep Disk |
pankso@66 | 184 echo '</pre>' |
pankso@153 | 185 # |
pankso@153 | 186 # Disk stats and management (mount, umount, heck) |
pankso@153 | 187 # |
pankso@153 | 188 table_start |
pankso@153 | 189 df_thead |
pankso@153 | 190 df -h | grep ^/dev | while read fs size used av pct mp |
pankso@153 | 191 do |
pankso@153 | 192 cat << EOT |
pankso@153 | 193 <tr> |
pankso@190 | 194 <td><img src="$IMAGES/harddisk.png" />${fs#/dev/}</td> |
pankso@153 | 195 <td>$size</td> |
pankso@153 | 196 <td>$av</td> |
pankso@153 | 197 <td class="pct"><div class="pct" |
pascal@217 | 198 style="width: $pct;">$used - $pct</div></td> |
pankso@153 | 199 <td>$mp</td> |
pankso@153 | 200 </tr> |
pankso@153 | 201 EOT |
pankso@153 | 202 done |
pankso@153 | 203 table_end |
pankso@152 | 204 echo "<h3>$(gettext "System memory")</h3>" |
pankso@152 | 205 echo '<pre>' |
pascal@219 | 206 free -m | sed \ |
pankso@152 | 207 -e s"#total.*\([^']\)#<span class='top'>\0</span>#"g \ |
pankso@152 | 208 -e s"#^[A-Z-].*:\([^']\)#<span class='sh-comment'>\0</span>#"g |
pankso@152 | 209 echo '</pre>' |
pankso@46 | 210 echo '<h3>lspci</h3>' |
pankso@46 | 211 echo '<pre>' |
pascal@155 | 212 lspci -k | sed \ |
pascal@155 | 213 -e s"#^[0-9].*\([^']\)#<span class='diff-at'>\0</span>#" \ |
pascal@155 | 214 -e s"#use: \(.*\)#use: <span class='diff-rm'>\1</span>#" |
pascal@61 | 215 echo '</pre>' |
pascal@61 | 216 echo '<h3>lsusb</h3>' |
pascal@61 | 217 echo '<pre>' |
pascal@61 | 218 lsusb |
pankso@46 | 219 echo '</pre>' |
pankso@46 | 220 ;; |
pankso@46 | 221 esac |
pankso@46 | 222 |
pankso@46 | 223 xhtml_footer |
pankso@46 | 224 exit 0 |