• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javaandroidc++linuxc#objective-c誰得cocoaqtpythonrubywindowsphpgameguibathyscaphec翻訳omegat計画中(planning stage)frameworktwitterdombtronvb.nettestarduinodirectxpreviewerゲームエンジン

fakesh-kobo 本体からのセレクション(と sample の fakesh logo)


Commit MetaInfo

Revisioncad4a4514e8a362f5f4924cd5713cfa1d30b74a8 (tree)
Time2013-12-08 11:47:47
Authorfakesh <fakesh@user...>
Commiterfakesh

Log Message

extra/ldd.sh extra/busyboxRelink.sh を追加, koboBackup.sh 関係を削除

Change Summary

Incremental Difference

--- a/README
+++ b/README
@@ -10,7 +10,7 @@ MIT/X Consortium License http://www.opensource.org/licenses/mit-license.php
1010 kobo に login してつかうものですので, telnet や ssh で login
1111 できる環境ができていないと基本的にはつかえません.
1212 ただし, screenShot-jpeg.sh は fbset が install されていて
13- /dev/fb0 を読めればつかえるはずです.
13+ /dev/fb0 が読めるような unix-like 環境でもつかえるはずです.
1414
1515 fakesh 本体(整備中) のなかで, 単独でつかっても役にたちそうな sh scripts と
1616 fakesh 本体 にはないけれど便利な sh scripts (extra) などを集めたものです.
@@ -173,7 +173,7 @@ MIT/X Consortium License http://www.opensource.org/licenses/mit-license.php
173173 background で走りつづけるが, 2時間以上かかる.
174174 umount されようが nickel が死のうが走りつづける.
175175 電池はかなりへる.
176- fakesh 本体 には含めない.
176+ fakesh 本体 には含めない, $PATH にも入っていない.
177177
178178 + addVerCheck.sh
179179 KoboRoot.tgz を version check つきにする.
@@ -183,15 +183,22 @@ MIT/X Consortium License http://www.opensource.org/licenses/mit-license.php
183183 もう一度実行すると KoboRoot.tgz がなければ sample の KoboRoot.tgz
184184 を生成し, version check つき KoboRoot.tgz に変身させる.
185185 詳しくは script addVerCheck.sh 自身を参照.
186- fakesh 本体 では /etc/fakesh/tools/ に配置. ($PATH には入っていない)
187-
188-+ koboBackup.sh
189- 簡単にkoboの内蔵microSDと差し替えられるようなmicroSDを外付microSDにつくる.
190- CHS と partition 配分は自動(fakeshの好み)だが, partition 配分は設定可能.
191- command line からの実行は interactive (YES と type するかどうか).
192- fakesh 本体 では /etc/fakesh/tools/ に配置. ($PATH には入っていない)
193-
194-+ outputEKBuu.sh
186+ fakesh 本体 では /etc/fakesh/tools/ に配置, $PATH には入っていない.
187+
188+- koboBackup.sh
189+ 簡単koboバックアップ
190+ http://sourceforge.jp/users/fakesh/pf/easyKoboBackup/
191+ または, 最新版
192+ http://sourceforge.jp/projects/fakesh-kobo/scm/git/fakesh_kobo/tree/master/etc/fakesh/tools/
193+ からどうぞ.
194+ KoboRoot.tgz を展開したなかの tmp/*/koboBackup-oneShot.sh と同一です.
195+ koboBackup.sh と rename してつかってください.
196+ 画像 *.raw.gz は /mnt/onboard/.fakesh/images に install してください.
197+
198+- outputEKBuu.sh
199+ 最新版
200+ http://sourceforge.jp/projects/fakesh-kobo/scm/git/fakesh_kobo/tree/master/etc/fakesh/tools/
201+ からどうぞ.
195202 koboBackup.sh に addVerCheck.sh をつかって別パッケージ "簡単koboバックアップ"
196203 をつくる script. koboBackup.sh と addVerCheck.sh は同じ directory に配置されて
197204 いなければならない. ssh でつかいやすいように base64 で KoboRoot.tgz を stdout
@@ -200,28 +207,39 @@ MIT/X Consortium License http://www.opensource.org/licenses/mit-license.php
200207
201208 + dispPics.sh
202209 kobo 画面に 画像を表示, 引数なしで help
203- fakesh 本体 では /root/bin/ に配置. ($PATH にはいってる)
210+ fakesh 本体 では /root/bin/ に配置, $PATH にはいってる.
204211
205212 + extra/pstree.sh
206213 debian squeeze あたりから psmisc を導入すればいいのだけれど,
207- 面倒だから書いてしまった. 適当な引数をつけると help
208- (fakesh 本体にはないが $PATH 入ってる)
214+ 面倒だから書いてしまった.
215+ と思ってたら. FW2.6.0 以降の busybox に含まれるようになった.
216+ でも, こちらは, STAT や 引数の表示があるぶん便利.
217+ 適当な引数をつけると help.
218+ fakesh 本体にはないが $PATH 入ってる
209219
210220 + {Stop,Cont,Ping}Nickel.sh
211- pipeclear 付きだから, STOP してるときの影響がCONT したときにでない.
212- fakesh 本体 では /root/bin/ に配置. ($PATH にはいってる)
221+ pipeclear 付きだから, STOP してるときの影響が CONT したときにでない.
222+ ./StopNickel.sh した回数だけ ./ContNickel.sh しないと nickel は動き出さない.
223+ 5回 ./StopNickel.sh したら, 5回 ./ContNickel.sh しないと nickel は動き出さない.
224+ 状態は ./PingNickel.sh で確認できる.
225+ fakesh 本体 では /root/bin/ に配置, $PATH にはいってる.
213226
214227 + extra/batteryStat.sh
215228 ときどき電池が気になります...
216- (fakesh 本体にはないが $PATH 入ってる)
229+ fakesh 本体にはないが $PATH 入ってる
217230
218231 + extra/hwtime.sh
219232 fork せずにいける. 日付けはいらない. JST(+09:00)でないときは,
220233 環境変数 TZMIN で調整. サマータイムとかは当然無視.
221- (fakesh 本体そのものはないが, ひな型がある. $PATH 入ってる)
222-
223-+ wrapping-mount-dosfsck.sh
224- koboBackup.sh の付属script
234+ fakesh 本体にそのものはないが, ひな型がある. $PATH に入ってる
235+
236+- wrapping-mount-dosfsck.sh
237+ 簡単koboバックアップ
238+ http://sourceforge.jp/users/fakesh/pf/easyKoboBackup/
239+ または, 最新版
240+ http://sourceforge.jp/projects/fakesh-kobo/scm/git/fakesh_kobo/tree/master/etc/fakesh/tools/
241+ からどうぞ.
242+ koboBackup.sh の付随script
225243 rootfs と recoveryfs の /bin/{mount,umount,dosfsck} を
226244 KOBOeReader が ext4 でつかえるように wrap, restore する.
227245 wrap は,
@@ -229,9 +247,29 @@ MIT/X Consortium License http://www.opensource.org/licenses/mit-license.php
229247 で, restore は,
230248 PROMPT# ./wrapping-mount-dosfsck.sh /mount_point_to_fs restore
231249 とする.
232- また, koboBackup.sh により recoveryfs の /bin にも install され,
250+ '-Message' という option を第1引数にすると饒舌になる.
251+ 引数なしで, test code の実行.
252+ また, koboBackup.sh により recoveryfs の /etc/fakesh/tools にも install され,
233253 factory reset しても, ext4 がつかえている状態にする.
234- fakesh 本体 では /etc/fakesh/tools/ に配置. ($PATH には入っていない)
254+ fakesh 本体 では /etc/fakesh/tools/ に配置, $PATH には入っていない.
255+
256++ extra/ldd.sh
257+ オプション -l /path_to/ld-linuxXXXXX でリンカを指定できる.
258+ 引数なしで, help
259+ fakesh 本体にはないが $PATH 入ってる
260+
261++ extra/busyboxRelink.sh
262+ FW2.6.0 の busybox が大変更に applet を整理する.
263+ ./busyboxRelink.sh / と唱えれば, /bin/busybox に symlink されてるのになくなった,
264+ applet を消して, /bin/busybox が想定している場所に applet を install する.
265+ すでにある command は /bin/busybox への symlink でないかぎり消さない.
266+ /bin/busybox への symlink でも想定している場所でなければ消さない.
267+ 以上のように, 安全に /bin/busybox の applets を整える.
268+ busybox --install というのもあるけれど, 挙動がよくわからないので不安だから書いた.
269+ wrapper とか上書きされるといやだし, 孤児 applet は消してくれないだろうから.
270+ fakesh 本体にはない, $PATH にも入っていない.
271+
272+################################################################
235273
236274 * Install
237275 fakesh-omocha?.{tgz,tar.bz2,tar.xz} をお好みの場所で展開(ただし symlink
@@ -244,6 +282,18 @@ MIT/X Consortium License http://www.opensource.org/licenses/mit-license.php
244282
245283 * ChangeLog
246284
285++ 2013-12-
286+
287+ - outputEKBuu.sh
288+
289+ - koboBackup.sh
290+
291+ - wrapping-mount-dosfsck.sh
292+
293+ + extra/ldd.sh
294+
295+ + extra/busyboxRelink.sh
296+
247297 + 2013-02-22
248298
249299 + wrapping-mount-dosfsck.sh
--- a/extra/batteryStat.sh
+++ b/extra/batteryStat.sh
@@ -2,14 +2,12 @@
22
33 while read l ; do
44 case "$l" in
5- POWER_SUPPLY_NAME* | POWER_SUPPLY_CAPACITY* ) continue ;;
6- *) echo "$l"
5+ POWER_SUPPLY_NAME* | POWER_SUPPLY_CAPACITY* )
6+ continue
7+ ;;
78 esac
9+ echo "$l"
810 done < /sys/class/power_supply/mc13892_bat/uevent
911
1012 exit
1113
12-################
13-# find the shallowest link
14-find /sys -maxdepth 6 -follow -inum $(stat -c %i \
15- /sys/devices/platform/pmic_battery.1/power_supply/mc13892_bat/uevent)
--- /dev/null
+++ b/extra/busyboxRelink.sh
@@ -0,0 +1,81 @@
1+#!/bin/busybox sh
2+
3+if [ $# -eq 0 ] ; then
4+ echo "Usage: ${0##*/} rootDir"
5+ exit 1
6+fi
7+if ! cd "$1" ; then
8+ echo "NoDir: $1"
9+ exit 1
10+fi
11+if [ ! -x bin/busybox -o -L bin/busybox ] ; then
12+ echo "No bin/busybox on $1"
13+ exit 1
14+fi
15+absPathBB="$(readlink -f bin/busybox)"
16+
17+tmpd=`mktemp -d /tmp/busyboxRelink_XXXXXX`
18+appletList=$tmpd/aplstPath
19+curList=$tmpd/aplstCur
20+appletNameList=$tmpd/aplstName
21+
22+./bin/busybox --list-full | sort > $appletList
23+dList="$(sed 's,/[^/]*$,,' $appletList | sort | uniq)"
24+
25+get_cLink () {
26+ case "$1" in
27+ */*/*/*) echo "TooDeepDir: $1" 1>&2; return 1 ;;
28+ */*/*) cLink='../../bin/busybox' ;;
29+ bin/*) cLink='busybox' ;;
30+ */*) cLink='../bin/busybox' ;;
31+ *) cLink='bin/busybox' ;;
32+ esac
33+ return 0
34+}
35+
36+linkCorrect () {
37+ [ "$(readlink -f "$1")" = "$absPathBB" ] || return 0
38+ get_cLink "$1" || return 0
39+ if [ "$(readlink "$1")" != $cLink ] ; then
40+ echo "LinkCorrection: $1" 1>&2
41+ ln -sf "$cLink" "$1"
42+ fi
43+ echo "$1"
44+}
45+
46+# Current link correction and list
47+for d in $dList ; do
48+ if [ -d "$d" -a ! -L "$d" ] ; then
49+ for applet in "$d"/* ; do
50+ [ -L "$applet" ] || continue
51+ linkCorrect "$applet"
52+ done
53+ elif [ -L "$d" -a ! -d "$d" ] ; then
54+ linkCorrect "$d"
55+ fi
56+done > $curList
57+
58+# Warn NonstandardPath and Delete NonApplet
59+./bin/busybox --list | sed 's#^#/#;s#$#/#' > $appletNameList
60+sort $appletList $appletList $curList | uniq -u | while read x ; do
61+ if grep -F -q "/${x##*/}/" $appletNameList ; then
62+ echo "NonstandardPath: $x ; #Keep" 1>&2
63+ else
64+ echo "NonApplet: $x ; #Delete" 1>&2
65+ rm -f "$x"
66+ fi
67+done
68+
69+# Make lost links
70+while read -r x ; do
71+ [ -e "$x" -o -L "$x" ] && continue
72+ if get_cLink "$x" ; then
73+ echo "NewLink: $x" 1>&2
74+ ln -s "$cLink" "$x"
75+ fi
76+done < $appletList
77+
78+rm -rf "$tmpd"
79+
80+exit
81+
--- /dev/null
+++ b/extra/ldd.sh
@@ -0,0 +1,81 @@
1+#!/bin/busybox sh
2+
3+for rtld in /lib/ld-linux-armhf.so.* /lib/ld-linux.so.* '' ; do
4+ [ -x "$rtld" ] && break
5+done
6+[ -z "$rtld" ] && exit 1
7+
8+warn=''
9+bind_now=''
10+verbose=''
11+ld_debug=''
12+rtldALT=''
13+ldd1ALT () {
14+ local h
15+ if ! [ -s "$1" -a -x "$1" ] ; then
16+ echo "Not executable: $1" 1>&2
17+ return 1
18+ fi
19+ if "$rtld" --verify "$1" >/dev/null 2>&1 ; then
20+ echo "${1}:"
21+ if [ -x "$rtldALT" ] ; then
22+ LD_WARN=$warn \
23+ LD_BIND_NOW=$bind_now \
24+ LD_VERBOSE=$verbose \
25+ LD_DEBUG=$ld_debug \
26+ "$rtldALT" --list "$1"
27+ else
28+ LD_TRACE_LOADED_OBJECTS=1 \
29+ LD_WARN=$warn \
30+ LD_BIND_NOW=$bind_now \
31+ LD_VERBOSE=$verbose \
32+ LD_DEBUG=$ld_debug \
33+ "$1"
34+ fi
35+ else
36+ read h < "$1"
37+ case "$h" in
38+ '#!'*) printf '%s:\n\tshebang\n' "$1" ;;
39+ '#'*) printf '%s:\n\tshell script\n' "$1" ;;
40+ *) printf '%s:\n' "$1"; LD_VERBOSE=1 "$rtld" --list "$1" ;;
41+ esac
42+ fi
43+}
44+
45+showUsage () {
46+ cat 1>&2 <<- EOUSAGE
47+ Usage: ${0#*/} [-b|-d LD_DEBUG|-l path_to_linux.so|-h|-v|-w] FILE...
48+ -b bind_now
49+ -d LD_DEBUG
50+ -h help
51+ -v verbose
52+ -w warn
53+ EOUSAGE
54+ printf \\n
55+ LD_DEBUG=help "$rtld"
56+ exit 1
57+}
58+
59+[ -z "$1" ] && showUsage
60+for x do
61+ if [ -z "$rtld" ] ; then
62+ rtld="$x"
63+ rtldALT="$x"
64+ continue
65+ fi
66+ if [ "$ld_debug" = _ ] ; then
67+ ld_debug="$x"
68+ continue
69+ fi
70+ case "$x" in
71+ -b*) bind_now=1 ;;
72+ -d*) ld_debug=_ ;;
73+ -h*) showUsage ;;
74+ -l*) rtld='' ;;
75+ -v*) verbose=1 ;;
76+ -w*) warn=1 ;;
77+ *) ldd1ALT "$x" ;;
78+ esac
79+done
80+
81+exit