slitaz-arm view rpi/tazberry @ rev 57
Improve/fix sat-rpi and main ARM rcS
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Fri Mar 14 23:02:33 2014 +0100 (2014-03-14) |
parents | 839d11d53db8 |
children | 2d1f132ea8bf |
line source
1 #!/bin/sh
2 #
3 # TazBerry - SliTaz Raspberry Pi Config Tool
4 #
5 # Copyright (C) 2014 SliTaz ARM - BSD License
6 # Author: Christophe Lincoln <pankso@slitaz.org>
7 #
8 . /lib/libtaz.sh
10 title="{ TazBerry }"
11 config="/boot/config.txt"
12 tmpdir="/tmp/tazberry"
13 tmp="$tmpdir/$$"
14 height="20"
15 width="72"
17 # Use a tmp directory
18 mkdir -p ${tmpdir}
20 # Small built-in help
21 help() {
22 cat << EOT
24 $(boldify "$(gettext 'Usage:')") $(basename $0) [command|rpi_function]
26 $(boldify "$(gettext 'Commands:')")
27 oclock $(gettext 'Display overclocking information')
28 ls-functions $(gettext 'List TazBerry functions')
29 testsuite $(gettext 'Run TazBerry testsuite')
31 EOT
32 }
34 #
35 # RPi functions
36 #
38 rpi_stats() {
39 cat << EOT
40 $(gettext 'Kernel') : $(uname -snrm)
41 $(gettext 'Uptime') :$(uptime | cut -d "," -f 1,2)
42 $(gettext 'CPU heat') : $(awk '{printf "%3.1f C\n", $1/1000}' \
43 /sys/class/thermal/thermal_zone0/temp)
44 EOT
45 }
47 rpi_turbo() {
48 if ! fgrep -q 'force_turbo=1' ${config}; then
49 gettext "Enabling Raspberry Pi force turbo..."
50 echo "force_turbo=1" >> ${config}; status
51 else
52 gettext "Disabling Raspberry Pi force turbo..."
53 sed -i '/force_turbo=1/'d ${config}; status
54 fi
55 }
57 # RPi Overclocking
58 rpi_oclock() {
59 cat << EOT
60 none 700MHz ARM 250MHz core 400MHz SDRAM 0 overvolt
61 modest 800MHz ARM 300MHz core 400MHz SDRAM 0 overvolt
62 medium 900MHz ARM 333MHz core 450MHz SDRAM 2 overvolt
63 high 950MHz ARM 450MHz core 450MHz SDRAM 6 overvolt
64 turbo 1000MHz ARM 500MHz core 500MHz SDRAM 6 overvolt
65 EOT
66 }
68 #
69 # GUI Functions
70 #
72 # Usage: msg_box "title" "message"
73 msg_box() {
74 dialog --title "{ $1 }" --cr-wrap \
75 --ok-label "TazBerry" --msgbox "\n$2" ${height} ${width}
76 }
78 # Usage: text_box "file"
79 text_box() {
80 local file="$1"
81 if [ -f "$file" ]; then
82 dialog --cr-wrap \
83 --title " $(gettext 'Viewing file:') $file " \
84 --extra-button \
85 --extra-label "Edit file" \
86 --ok-label "TazBerry" \
87 --textbox ${file} ${height} ${width}
88 else
89 dialog --title "$title" \
90 --msgbox "\nERROR: $file does not exist" 10 ${width}
91 fi
92 # Handle options
93 case "$?" in
94 3) nano ${file} ;;
95 esac
96 }
98 # Usage: tail_box "file"
99 tail_box() {
100 dialog --title " $(gettext 'Watching file:') $2 " \
101 --tailbox "$1" ${height} ${width}
102 }
104 # Packages info and spk-up button
105 pkgs_box() {
106 out="$tmpdir/spk-info.txt"
107 spk info --output=raw > ${out}
108 dialog --cr-wrap \
109 --title "{ $(gettext 'Packages') }" \
110 --extra-button \
111 --extra-label "$(gettext 'Upgrade')" \
112 --ok-label "TazBerry" \
113 --textbox "$out" ${height} ${width}
114 # Handle options
115 case "$?" in
116 3) spk-up && gettext "Press ENTER to go back to TazBerry"; read ;;
117 esac
118 }
120 oclock_box() {
121 out="$tmpdir/overclocking.txt"
122 cat > ${out} << EOT
124 Overclocking modes:
125 -------------------
126 $(rpi_oclock)
128 Current /boot/config.txt
129 ------------------------
130 $(cat $config)
132 EOT
133 dialog --cr-wrap \
134 --title "$title" \
135 --ok-label "TazBerry" \
136 --textbox "$out" ${height} ${width}
137 }
139 # Main Dialog menu
140 main_box() {
141 dialog \
142 --clear \
143 --title "$title" \
144 --ok-label "Exec" \
145 --cancel-label "Quit" \
146 --menu "" ${height} ${width} 14 \
147 "rpi-stats" "$(gettext 'Show some RPi system stats')" \
148 "cmdline.txt" "$(gettext 'View boot args /boot/cmdline.txt')" \
149 "config.txt" "$(gettext 'View config file /boot/config.txt')" \
150 "rpi-turbo" "$(gettext 'Enable or disable RPi turbo on next boot')" \
151 "oclock" "$(gettext 'Overclocking information and config')" \
152 "packages" "$(gettext 'Packages info and upgrade (spk)')" \
153 "keyboard" "$(gettext 'System keyboard setting')" \
154 "reboot" "$(gettext 'Reboot SliTaz')" \
155 "halt" "$(gettext 'Halt the Raspberry Pi')" \
156 "quit" "$(gettext 'Exit from TazBerry tool')" 2>${tmp}
158 # Handle options
159 opt=${?}
160 case "$opt" in
161 1|255) rm -rf ${tmpdir} && exit 0 ;;
162 esac
164 # Handle actions
165 action=$(cat $tmp)
166 case "$action" in
167 rpi-stats)
168 msg_box "RPi Stats" "$(rpi_stats)" ;;
169 cmdline.txt)
170 text_box /boot/cmdline.txt ;;
171 config.txt)
172 text_box ${config} ;;
173 rpi-turbo)
174 rpi_turbo && newline
175 gettext "Press ENTER to go back to TazBerry"; read ;;
176 oclock)
177 oclock_box ;;
178 packages)
179 pkgs_box ;;
180 keyboard)
181 tazkeymap ;;
182 reboot)
183 reboot ;;
184 halt)
185 halt ;;
186 quit)
187 rm -rf ${tmpdir} && exit 0 ;;
188 esac
189 }
191 # Progress bar testsuite
192 gauge_box() {
193 { for i in $(seq 1 100); do
194 echo $i
195 sleep 0.01
196 done
197 echo 100; } | dialog --title "{ TazBerry }" \
198 --gauge "Work in progress..." 6 ${width} 0
199 }
201 #
202 # Handle commands
203 #
205 case "$1" in
206 oclock)
207 newline
208 boldify "Overclocking modes:"
209 rpi_oclock
210 boldify "Current config.txt:"
211 cat ${config}
212 newline ;;
214 ls-functions)
215 newline
216 boldify "$(gettext 'TazBerry functions list')"
217 separator
218 grep "^rpi_*" $0 | awk '{print " ", $1}'
219 newline ;;
221 testsuite)
222 gauge_box
223 msg_box "Testsuite" "Test message"
224 rpi_stats
225 newline ;;
227 rpi_*)
228 # Execute functions
229 $@ ;;
231 "")
232 # No args: display Ncurses dialog
233 while true; do
234 main_box
235 done ;;
237 *|*help|-h)
238 # Display help
239 help ;;
240 esac
242 # Clean exit
243 rm -rf ${tmpdir}
244 exit 0