0028-Update-Script-New.patch 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762
  1. diff --git a/MakeRootfsUpdate.sh b/MakeRootfsUpdate.sh
  2. index 99b77c9..c3f9894 100755
  3. --- a/MakeRootfsUpdate.sh
  4. +++ b/MakeRootfsUpdate.sh
  5. @@ -1,5 +1,6 @@
  6. #!/bin/bash
  7. WRKDIR=/tmp/XXXUpdateRootfs
  8. +BOOTDIR=$WRKDIR/_GfABoot
  9. BUILD=`cat ../GfA/board/GfA/Display001/BUILD`
  10. UPDATE_BINARY=$WRKDIR/dest/UpdateRootfs.tar.Z
  11. UPDATE_FILENAME="../UpdateDisplay001_$BUILD.sh"
  12. @@ -7,67 +8,34 @@ UPDATE_IN_SCRIPT="UpdateRootfs.sh.in"
  13. ROOTFSMNT=/tmp/XXXRootFs
  14. -sudo umount $ROOTFSMNT
  15. +sudo umount $ROOTFSMNT 2>/dev/null
  16. sudo rm -rf $ROOTFSMNT
  17. sudo mkdir -p $ROOTFSMNT
  18. -
  19. sudo mount -o loop ./output/images/rootfs.ext2 $ROOTFSMNT
  20. -rm -rf $WRKDIR
  21. +sudo rm -rf $WRKDIR
  22. mkdir -p $WRKDIR/dest
  23. -cp ./output/images/*.dtb $WRKDIR
  24. -cp ./output/images/uImage $WRKDIR
  25. -cp ./output/images/MLO $WRKDIR
  26. -cp ./output/images/u-boot.img $WRKDIR
  27. -
  28. -sudo tar -C $ROOTFSMNT -czvf $WRKDIR/rootfs.tar.gz ./
  29. -sudo umount $ROOTFSMNT
  30. -#cp ./output/images/rootfs.tar.gz $WRKDIR
  31. -
  32. -tar -C $WRKDIR --exclude=./dest -czvf $WRKDIR/dest/UpdateRootfs.tar.Z ./
  33. -
  34. -# Check for payload format option (default is binary).
  35. -binary=1
  36. -uuencode=0
  37. -
  38. -if [[ "$1" == '--binary' ]]; then
  39. - binary=1
  40. - uuencode=0
  41. - shift
  42. -fi
  43. -if [[ "$1" == '--uuencode' ]]; then
  44. - binary=0
  45. - uuencode=1
  46. - shift
  47. -fi
  48. -
  49. +sudo bash <<EOF
  50. +mkdir -p $BOOTDIR
  51. +cp ./output/images/*.dtb $BOOTDIR
  52. +cp ./output/images/uImage $BOOTDIR
  53. +cp ./output/images/MLO $BOOTDIR
  54. +cp ./output/images/u-boot.img $BOOTDIR
  55. +tar -C $ROOTFSMNT -cf - . | tar xvf - -C $WRKDIR
  56. +umount $ROOTFSMNT 2>/dev/null
  57. +tar -C $WRKDIR --exclude=./dest -czvf $UPDATE_BINARY ./
  58. +EOF
  59. +
  60. +#----
  61. if [[ ! -f $UPDATE_BINARY ]]; then
  62. echo " UPDATE_BINARY $UPDATE_BINARY doesn't exist!"
  63. - echo "Usage: $0 [--binary | --uuencode]"
  64. + echo "Usage: $0"
  65. exit 1
  66. fi
  67. -
  68. -if [[ $binary -ne 0 ]]; then
  69. - # Append binary data.
  70. - sed \
  71. - -e 's/uuencode=./uuencode=0/' \
  72. - -e 's/binary=./binary=1/' \
  73. - $UPDATE_IN_SCRIPT > $UPDATE_FILENAME
  74. - echo "PAYLOAD:" >> $UPDATE_FILENAME
  75. -
  76. - cat $UPDATE_BINARY >> $UPDATE_FILENAME
  77. -fi
  78. -if [[ $uuencode -ne 0 ]]; then
  79. - # Append uuencoded data.
  80. - sed \
  81. - -e 's/uuencode=./uuencode=1/' \
  82. - -e 's/binary=./binary=0/' \
  83. - $UPDATE_IN_SCRIPT > $UPDATE_FILENAME
  84. - echo "PAYLOAD:" >> $UPDATE_FILENAME
  85. -
  86. - cat $UPDATE_BINARY | uuencode - >> $UPDATE_FILENAME
  87. -fi
  88. +cat $UPDATE_IN_SCRIPT > $UPDATE_FILENAME
  89. +echo "PAYLOAD:" >> $UPDATE_FILENAME
  90. +cat $UPDATE_BINARY >> $UPDATE_FILENAME
  91. chmod a+x $UPDATE_FILENAME
  92. diff --git a/UpdateRootfs.sh.in b/UpdateRootfs.sh.in
  93. index 13aeadf..af10b8a 100644
  94. --- a/UpdateRootfs.sh.in
  95. +++ b/UpdateRootfs.sh.in
  96. @@ -1,28 +1,13 @@
  97. #!/bin/sh
  98. -uuencode=0
  99. -binary=1
  100. -
  101. -##TAR_PARAMETERS="-C / --exclude=./opt --exclude=./etc/inittab -xzvf -"
  102. TMP_PATH="$GFA_PREFIX/__GfA_Update"
  103. -TAR_PARAMETERS="-C $TMP_PATH -xzvf -"
  104. +TAR_PARAMETERS="-C $GFA_PREFIX/ --exclude=./tmp --exclude=./etc/inittab --exclude=./etc/hosts --exclude=./etc/hostname --exclude=./etc/passwd --exclude=./etc/shadow --exclude=./etc/vncpwd --exclude=./etc/init.d/S99tincd --exclude=./etc/hostapd.conf --exclude=./root/.ssh --exclude=./etc/init.d/M99tincd --exclude=./var/GfA/Display_GSM.ini --exclude=./var/cron/crontabs/root -xzvf -"
  105. untar_payload ()
  106. {
  107. -
  108. - echo "remove $TMP_PATH : "
  109. - rm -rf $TMP_PATH
  110. - echo ">> $? "
  111. - mkdir -p $TMP_PATH
  112. -
  113. match=$(grep -n -m 1 '^PAYLOAD:$' $0 | cut -d ':' -f 1)
  114. payload_start=$((match + 1))
  115. - if [[ $binary -ne 0 ]]; then
  116. - tail -n +$payload_start $0 | tar $TAR_PARAMETERS
  117. - fi
  118. - if [[ $uuencode -ne 0 ]]; then
  119. - tail -n +$payload_start $0 | uudecode | tar $TAR_PARAMETERS
  120. - fi
  121. + tail -n +$payload_start $0 | tar $TAR_PARAMETERS
  122. }
  123. if [ -z $1 ]
  124. @@ -164,22 +149,17 @@ then
  125. else
  126. bootpart="/dev/mmcblk0p1"
  127. fi
  128. +#===== DoRealUpdate === Start
  129. +if [ $1 == "DoRealUpdate" ]
  130. +then
  131. -umount /mnt
  132. -mount $bootpart /mnt
  133. -
  134. -## -- alte Firmwarebinaries löschen
  135. -#rm /root/btm*.bin
  136. +umount /mnt 2>/dev/null
  137. +umount $GFA_PREFIX/_GfABoot 2>/dev/null
  138. -#--- Kernel MLO und Rootfs-Tarball entpacken
  139. -untar_payload
  140. -# ---
  141. +rm -rf $GFA_PREFIX/_GfABoot
  142. +mkdir $GFA_PREFIX/_GfABoot
  143. +mount $bootpart $GFA_PREFIX/_GfABoot
  144. -rm /mnt/rootfs.tar.gz
  145. -cp $TMP_PATH/MLO /mnt
  146. -cp $TMP_PATH/u-boot.img /mnt
  147. -cp $TMP_PATH/uImage /mnt
  148. -cp $TMP_PATH/*.dtb /mnt
  149. mkdir -p $TMP_PATH/bu_cfg
  150. @@ -201,17 +181,9 @@ then
  151. rm $GFA_PREFIX/etc/wpa_supplicant/wpa_supplicant.conf
  152. fi
  153. -#rootfs auspacken
  154. -tar -C $GFA_PREFIX/ --exclude=./tmp --exclude=./etc/inittab \
  155. - --exclude=./etc/hosts --exclude=./etc/hostname \
  156. - --exclude=./etc/passwd --exclude=./etc/shadow \
  157. - --exclude=./etc/vncpwd --exclude=./etc/init.d/S99tincd \
  158. - --exclude=./etc/hostapd.conf \
  159. - --exclude=./root/.ssh \
  160. - --exclude=./etc/init.d/M99tincd \
  161. - --exclude=./var/GfA/Display_GSM.ini \
  162. - --exclude=./var/cron/crontabs/root \
  163. - -xzvf $TMP_PATH/rootfs.tar.gz
  164. +#--- Kernel MLO und Rootfs-Tarball entpacken
  165. +untar_payload
  166. +# ---
  167. echo "sync mmc be patient ...."
  168. sync
  169. @@ -297,12 +269,6 @@ then
  170. sed -i 's/TSYNCCMD=rdate time.memod.de/TSYNCCMD=\/etc\/init.d\/S99rtc_GfA set/' $GFA_PREFIX/var/GfA/Display_GSM.ini
  171. fi
  172. -#echo "Update Firmware"
  173. -#echo "."
  174. -#/root/spi_tivia /root/btm43_0107.bin >/dev/null
  175. -#echo ".."
  176. -#echo "Update Firmware Done"
  177. -#/root/gfa_spi -v
  178. #================================
  179. #--create mountable run folder insted of link
  180. RUNDIR=$GFA_PREFIX/run
  181. @@ -430,13 +396,562 @@ fi
  182. #=================
  183. echo "Update Done, pls. reboot System"
  184. -umount /mnt
  185. +umount $GFA_PREFIX/_GfABoot 2>/dev/null
  186. +rm -rf $GFA_PREFIX/_GfABoot
  187. +
  188. echo "."
  189. echo "restart system !!!"
  190. sleep 2
  191. #-----------------
  192. reboot
  193. +fi
  194. +fi
  195. +#====================== DoRealUpdate ==== Ende =====
  196. +#===== MakeBootableSD/EMMC === Start
  197. +if [ $1 == "MakeBootableSD" -o $1 == "MakeBootableEMMC" ]
  198. +then
  199. +such="root=/dev/mmcblk1"
  200. +
  201. +if [ $1 == "MakeBootableSD" ]; then
  202. + TODEV="SD"
  203. +else
  204. + TODEV="EMMC"
  205. +fi
  206. +
  207. +grep -q $such /proc/cmdline
  208. +if [ $? == 0 ]; then
  209. + bootpart="/dev/mmcblk1p1"
  210. + bootdev="EMMC"
  211. + DESTNAME="SD"
  212. + DESTDEV="/dev/mmcblk0"
  213. + DESTBOOTPART="/dev/mmcblk0p1"
  214. + DESTROOTPART="/dev/mmcblk0p2"
  215. +else
  216. + bootpart="/dev/mmcblk0p1"
  217. + bootdev="SD"
  218. + DESTNAME="EMMC"
  219. + DESTDEV="/dev/mmcblk1"
  220. + DESTBOOTPART="/dev/mmcblk1p1"
  221. + DESTROOTPART="/dev/mmcblk1p2"
  222. +fi
  223. +
  224. +echo ""
  225. +echo -e "\e[7mMake Bootable $TODEV\e[0m"
  226. +
  227. +if [ $bootdev == $TODEV ]; then
  228. + echo "System was booted from $TODEV, Making Bootable$TODEV not possible ! ==> EXIT"
  229. + exit 1
  230. +fi
  231. +
  232. +if [ ! -b $DESTDEV ]; then
  233. + echo -e "\e[31mNo $DESTNAME available ! ==> EXIT\e[0m"
  234. + exit 2
  235. +fi
  236. +
  237. +echo -e "\e[31m$DESTNAME will be formatted, all Data will be deleted!!\e[0m"
  238. +echo ""
  239. +read -n 1 -p "are you sure? (y/n) : " antwort
  240. +
  241. +if [ ${#antwort} == 0 ]; then
  242. + antwort = "n"
  243. +fi
  244. +
  245. +if [ $antwort == "y" -o $antwort == "Y" ]; then
  246. + echo -e "\nStart copying .."
  247. +else
  248. + echo -e "\nEXIT on user reqest"
  249. + exit 3
  250. +fi
  251. +
  252. +echo "Formatting $DESTNAME ...."
  253. +umount $DESTBOOTPART 2>/dev/null
  254. +umount $DESTROOTPART 2>/dev/null
  255. +dd if=/dev/zero of=$DESTDEV bs=2M count=1 conv=notrunc
  256. +busybox fdisk $DESTDEV <<EOF
  257. +o
  258. +p
  259. +n
  260. +p
  261. +1
  262. +
  263. ++64M
  264. +t
  265. +e
  266. +a
  267. +1
  268. +n
  269. +p
  270. +2
  271. +
  272. +
  273. +p
  274. +w
  275. +EOF
  276. +/sbin/mkfs.vfat -F 16 $DESTBOOTPART
  277. +if [ -e /usr/sbin/mkfs.ext4 ]; then
  278. + /usr/sbin/mkfs.ext4 -F $DESTROOTPART
  279. +else
  280. + mkfs.ext4 -F $DESTROOTPART
  281. +fi
  282. +#======
  283. +GFA_PREFIX="/tmp/__MakeSD"
  284. +rm -rf $GFA_PREFIX
  285. +TAR_PARAMETERS="-C $GFA_PREFIX/ -xzvf -"
  286. +
  287. +# mount partiotions
  288. +mkdir -p $GFA_PREFIX
  289. +mount $DESTROOTPART $GFA_PREFIX
  290. +mkdir -p $GFA_PREFIX/_GfABoot
  291. +mount $DESTBOOTPART $GFA_PREFIX/_GfABoot
  292. +
  293. +#--- Kernel MLO und Rootfs-Tarball entpacken
  294. +untar_payload
  295. +# ---
  296. +cd
  297. +df -h
  298. +# ==========
  299. +#=====
  300. +# Get Graphics resolution and set dtb to the right resolution
  301. +BASEBOARD=`cat /tmp/BASEBOARD`
  302. +
  303. +DONE=0
  304. +YRES="$(fbset | awk '/geom/ {print $3}')"
  305. +XRES="$(fbset | awk '/geom/ {print $2}')"
  306. +
  307. +EMMC_BOOTPATH=$GFA_PREFIX/_GfABoot
  308. +
  309. +echo "XRES $XRES, YRES $YRES"
  310. +
  311. +if [ "$XRES" == "480" -a "$YRES" == "272" ]; then
  312. +if [ "$BASEBOARD" == "DISPLAY002_DI4" ]; then
  313. + echo "4.3 Inch Display 2"
  314. + cp $EMMC_BOOTPATH/Display002_4.dtb $EMMC_BOOTPATH/Display001.dtb
  315. + DONE=1
  316. +else
  317. + echo "4.3 Inch"
  318. + cp $EMMC_BOOTPATH/Display001_4.dtb $EMMC_BOOTPATH/Display001.dtb
  319. + DONE=1
  320. +fi
  321. +fi
  322. +
  323. +if [ "$XRES" == "800" -a "$YRES" == "480" ]; then
  324. +if [ "$BASEBOARD" == "DISPLAY002_DI4" ]; then
  325. + echo "7 Inch Display 2"
  326. + cp $EMMC_BOOTPATH/Display002_7.dtb $EMMC_BOOTPATH/Display001.dtb
  327. + DONE=1
  328. +else
  329. +if [ "$BASEBOARD" == "DISPLAY002_RS485" ]; then
  330. + echo "7 Inch Display 2 rs485"
  331. + cp $EMMC_BOOTPATH/Display002_7_rs485.dtb $EMMC_BOOTPATH/Display001.dtb
  332. + DONE=1
  333. +else
  334. + echo "7 Inch"
  335. + cp $EMMC_BOOTPATH/Display001_7.dtb $EMMC_BOOTPATH/Display001.dtb
  336. + DONE=1
  337. +fi
  338. +fi
  339. +fi
  340. +
  341. +if [ "$XRES" == "640" -a "$YRES" == "480" ]; then
  342. +if [ "$BASEBOARD" == "DISPLAY002_DI4" ]; then
  343. + echo "5.7 Inch Display 2"
  344. + cp $EMMC_BOOTPATH/Display002_5.dtb $EMMC_BOOTPATH/Display001.dtb
  345. + DONE=1
  346. +else
  347. + echo "5.7 Inch"
  348. + cp $EMMC_BOOTPATH/Display001_5.dtb $EMMC_BOOTPATH/Display001.dtb
  349. + DONE=1
  350. +fi
  351. +fi
  352. +if [ "$XRES" == "1280" -a "$YRES" == "800" ]; then
  353. +if [ "$BASEBOARD" == "DISPLAY002_DI4" ]; then
  354. + echo "10 Inch Display 2"
  355. + cp $EMMC_BOOTPATH/Display002_10.dtb $EMMC_BOOTPATH/Display001.dtb
  356. + DONE=1
  357. +else
  358. + echo "10 Inch"
  359. + cp $EMMC_BOOTPATH/Display001_10.dtb $EMMC_BOOTPATH/Display001.dtb
  360. + DONE=1
  361. +fi
  362. +fi
  363. +
  364. +if [ "$XRES" == "1920" -a "$YRES" == "1080" ]; then
  365. +if [ "$BASEBOARD" == "DISPLAY002_DI4" ]; then
  366. + echo "15 Inch Display 2"
  367. + cp $EMMC_BOOTPATH/Display002_15.dtb $EMMC_BOOTPATH/Display001.dtb
  368. + DONE=1
  369. +else
  370. + echo "15 Inch"
  371. + cp $EMMC_BOOTPATH/Display001_15.dtb $EMMC_BOOTPATH/Display001.dtb
  372. + DONE=1
  373. +fi
  374. +fi
  375. +
  376. +if [ "$DONE" == "0" ]; then
  377. + echo "Unknown Display Resolution"
  378. +fi
  379. +#========================================
  380. +
  381. +# umount boot
  382. +umount $DESTBOOTPART
  383. +rm -rf $GFA_PREFIX/_GfABoot
  384. +# umount rootfs
  385. +umount $DESTROOTPART
  386. +
  387. +exit 0
  388. +fi
  389. +#===== MakeBootableSD/EMMC === Ende
  390. +
  391. +#===== MakeSDUpdateTool === Start
  392. +if [ $1 == "MakeSDUpdateTool" ]
  393. +then
  394. +such="root=/dev/mmcblk1"
  395. +
  396. +grep -q $such /proc/cmdline
  397. +if [ $? == 0 ]; then
  398. + bootpart="/dev/mmcblk1p1"
  399. + bootdev="EMMC"
  400. +else
  401. + bootpart="/dev/mmcblk0p1"
  402. + bootdev="SD"
  403. +fi
  404. +
  405. +echo ""
  406. +echo -e "\e[7mMake SDUpdateTool\e[0m"
  407. +
  408. +if [ $bootdev != "SD" ]; then
  409. + echo "System was booted from $bootdev, Making SDUpdateTool not possible ! ==> EXIT"
  410. + exit 1
  411. +fi
  412. +
  413. +GFA_PREFIX="/opt/GfA/SDUpdateTool"
  414. +GFA_DATAPATH=$GFA_PREFIX/_BootRoot
  415. +
  416. +rm -rf $GFA_DATAPATH
  417. +mkdir -p $GFA_DATAPATH
  418. +TAR_PARAMETERS="-C $GFA_DATAPATH/ -xzvf -"
  419. +
  420. +#--- Kernel MLO und Rootfs-Tarball entpacken
  421. +untar_payload
  422. +# ---
  423. +echo -e "===\n Make UpdateEMMC.sh \n===\n"
  424. +(\
  425. +cat << XEOF
  426. +#!/bin/sh
  427. +
  428. +CALLDIR=\`pwd\`
  429. +WRKDIR=/opt/GfA/SDUpdateTool
  430. +
  431. +DESTDEV="/dev/mmcblk1"
  432. +
  433. +EMMC_BOOTPATH="/tmp/EMMCBOOT"
  434. +EMMC_ROOTPATH="/tmp/EMMCROOT"
  435. +such=\$DESTDEV
  436. +
  437. +grep -q \$such /proc/cmdline
  438. +if [ \$? == 0 ]; then
  439. + bootpart="/dev/mmcblk1p1"
  440. + bootdev="EMMC"
  441. +else
  442. + bootpart="/dev/mmcblk0p1"
  443. + bootdev="SD"
  444. +fi
  445. +
  446. +echo ""
  447. +echo -e "\e[7mUpdate EMMC from SD\e[0m"
  448. +
  449. +if [ \$bootdev != "SD" ]; then
  450. + echo "System was booted from \$bootdev, update from SD not possible ! =="
  451. + exit 1
  452. +fi
  453. +
  454. +umount \${DESTDEV}p1 2>/dev/null
  455. +umount \${DESTDEV}p2 2>/dev/null
  456. +
  457. +rm -rf \$EMMC_BOOTPATH
  458. +rm -rf \$EMMC_ROOTPATH
  459. +mkdir -p \$EMMC_BOOTPATH
  460. +mkdir -p \$EMMC_ROOTPATH
  461. +
  462. +mount \${DESTDEV}p1 \$EMMC_BOOTPATH
  463. +mount \${DESTDEV}p2 \$EMMC_ROOTPATH
  464. +
  465. +#== copy network config ==
  466. +TMP_PATH=\$WRKDIR/_GfA_tmp
  467. +GFA_PREFIX=\$EMMC_ROOTPATH
  468. +
  469. +rm -rf \$TMP_PATH
  470. +mkdir -p \$TMP_PATH
  471. +mkdir -p \$TMP_PATH/bu_cfg
  472. +
  473. +if [ -e \$GFA_PREFIX/etc/network/interfaces ]
  474. +then
  475. + cp \$GFA_PREFIX/etc/network/interfaces \$TMP_PATH/bu_cfg
  476. + rm \$GFA_PREFIX/etc/network/interfaces
  477. +fi
  478. +
  479. +if [ -e \$GFA_PREFIX/etc/wpa_supplicant.conf ]
  480. +then
  481. + cp \$GFA_PREFIX/etc/wpa_supplicant.conf \$TMP_PATH/bu_cfg/wpa_supplicant.conf_old
  482. + rm \$GFA_PREFIX/etc/wpa_supplicant.conf
  483. +fi
  484. +
  485. +if [ -e \$GFA_PREFIX/etc/wpa_supplicant/wpa_supplicant.conf ]
  486. +then
  487. + cp \$GFA_PREFIX/etc/wpa_supplicant/wpa_supplicant.conf \$TMP_PATH/bu_cfg
  488. + rm \$GFA_PREFIX/etc/wpa_supplicant/wpa_supplicant.conf
  489. +fi
  490. +
  491. +#=== copy ROOTFS
  492. +cd \$WRKDIR/_BootRoot
  493. +rsync -avR --exclude=/_GfABoot \\
  494. +--exclude=./tmp --exclude=./etc/inittab \\
  495. +--exclude=./etc/hosts --exclude=./etc/hostname \\
  496. +--exclude=./etc/passwd --exclude=./etc/shadow \\
  497. +--exclude=./etc/vncpwd --exclude=./etc/init.d/S99tincd \\
  498. +--exclude=./etc/hostapd.conf --exclude=./root/.ssh \\
  499. +--exclude=./etc/init.d/M99tincd --exclude=./var/GfA/Display_GSM.ini \\
  500. +--exclude=./var/cron/crontabs/root \\
  501. + ./ \$EMMC_ROOTPATH/
  502. +
  503. +# --- copy old eth0 configuration
  504. +INTERFACE="eth0"
  505. +IFCONFIG=\$TMP_PATH/bu_cfg/interfaces
  506. +
  507. +(\\
  508. +cat << EOF
  509. +# Configure Loopback
  510. +auto lo
  511. +iface lo inet loopback
  512. +
  513. +EOF
  514. +) > \$GFA_PREFIX/etc/network/interfaces
  515. +
  516. +awk -v par=\$INTERFACE '/^iface/ && \$2==par {f=1}/^iface/ && \$2!=par {f=0}f && !/^\s*#/d && !/^\s*\$/d {print \$0 }' \$TMP_PATH/bu_cfg/interfaces \\
  517. +>> \$GFA_PREFIX/etc/network/interfaces
  518. +
  519. +(\\
  520. +cat << EOF
  521. +iface eth1 inet dhcp
  522. +#---
  523. +iface usb0 inet static
  524. + address 192.168.7.2
  525. + netmask 255.255.255.252
  526. +#---
  527. +iface wlan0 inet dhcp
  528. + wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
  529. +#
  530. +EOF
  531. +) >> \$GFA_PREFIX/etc/network/interfaces
  532. +
  533. +if [ -e \$GFA_PREFIX/etc/init.d/S98usb_g_ether ]
  534. +then
  535. + cp \$GFA_PREFIX/etc/init.d/S98usb_g_ether \$GFA_PREFIX/etc/init.d/M98usb_g_ether
  536. + rm \$GFA_PREFIX/etc/init.d/S98usb_g_ether
  537. +fi
  538. +
  539. +if [ -e \$GFA_PREFIX/etc/init.d/S80ti-sgx ]
  540. +then
  541. + rm \$GFA_PREFIX/etc/init.d/S80ti-sgx
  542. +fi
  543. +
  544. +if [ -e \$GFA_PREFIX/etc/init.d/M99_wlan_usb ]
  545. +then
  546. + rm \$GFA_PREFIX/etc/init.d/M99_wlan_usb
  547. +fi
  548. +
  549. +if [ -e \$GFA_PREFIX/etc/init.d/S99_wlan_usb ]
  550. +then
  551. + rm \$GFA_PREFIX/etc/init.d/S99_wlan_usb
  552. +fi
  553. +
  554. +if [ -e \$GFA_PREFIX/etc/init.d/M80dhcp-relay ]
  555. +then
  556. + rm \$GFA_PREFIX/etc/init.d/M80dhcp-relay
  557. +fi
  558. +
  559. +if [ -e \$GFA_PREFIX/etc/init.d/S80dhcp-relay ]
  560. +then
  561. + rm \$GFA_PREFIX/etc/init.d/S80dhcp-relay
  562. +fi
  563. +if [ -e \$GFA_PREFIX/etc/init.d/M80dhcp-server ]
  564. +then
  565. + rm \$GFA_PREFIX/etc/init.d/M80dhcp-server
  566. +fi
  567. +
  568. +if [ -e \$GFA_PREFIX/etc/init.d/S80dhcp-server ]
  569. +then
  570. + rm \$GFA_PREFIX/etc/init.d/S80dhcp-server
  571. +fi
  572. +
  573. +if [ -d \$GFA_PREFIX/etc/dhcp ]
  574. +then
  575. + rm -rf \$GFA_PREFIX/etc/dhcp
  576. +fi
  577. +
  578. +if [ -e \$GFA_PREFIX/var/GfA/Display_GSM.ini ]
  579. +then
  580. + sed -i 's/TSYNCCMD=rdate time.memod.de/TSYNCCMD=\/etc\/init.d\/S99rtc_GfA set/' \$GFA_PREFIX/var/GfA/Display_GSM.ini
  581. +fi
  582. +#================================
  583. +#--create mountable run folder insted of link
  584. +RUNDIR=\$GFA_PREFIX/run
  585. +if [ -L \$RUNDIR ]; then
  586. + mv \$RUNDIR \$RUNDIR'_WRK'
  587. + mkdir \$RUNDIR
  588. + mount -t tmpfs tmpfs \$RUNDIR
  589. + WRKDIR=\`pwd\`
  590. + cd \$RUNDIR'_WRK'
  591. + cp -a ./* \$RUNDIR
  592. + cd \$WRKDIR
  593. + rm \$RUNDIR'_WRK'
  594. +fi
  595. +#--- craete missing nogroup group
  596. +GID_NOGROUP=\`awk -F\: '/nogroup/ {print \$3}' \$GFA_PREFIX/etc/group\`
  597. +if [ -z "\$GID_NOGROUP" ]; then
  598. +# addgroup -S -g 65534 nogroup
  599. + GID_NOGROUP=65534
  600. + echo "nogroup:x:\${GID_NOUGROUP}:" >> \$GFA_PREFIX/etc/group
  601. +fi
  602. +#--create missing users for mysql,
  603. +if [ -z \`awk -F\: '/mysql/ {print \$3}' \$GFA_PREFIX/etc/passwd\` ]; then
  604. + UID_MY=\`awk -F: '{uid[\$3]=1}END{for(x=1000; x<=1500; x++) {if(uid[x] != ""){}else{print x; exit;}}}' \$GFA_PREFIX/etc/passwd\`
  605. + echo "mysql:x:\$UID_MY:\${GID_NOUGROUP}:MySQL daemon:/var/mysql:/bin/false" >> \$GFA_PREFIX/etc/passwd
  606. +fi
  607. +#--create missing users for postgresql,
  608. +if [ -z \`awk -F\: '/postgres/ {print \$3}' \$GFA_PREFIX/etc/passwd\` ]; then
  609. + UID_PG=\`awk -F: '{uid[\$3]=1}END{for(x=1000; x<=1500; x++) {if(uid[x] != ""){}else{print x; exit;}}}' \$GFA_PREFIX/etc/passwd\`
  610. + GID_PG=\`awk -F\: '/postgres/ {print \$3}' \$GFA_PREFIX/etc/group\`
  611. + if [ -z "\$GID_PG" ]; then
  612. + GID_PG=\`awk -F: '{uid[\$3]=1}END{for(x=1000; x<=1500; x++) {if(uid[x] != ""){}else{print x; exit;}}}' \$GFA_PREFIX/etc/group\`
  613. + echo "postgres:x:\$GID_PG:" >> \$GFA_PREFIX/etc/group
  614. + fi
  615. + echo "postgres:x:\$UID_PG:\$GID_PG:PostgreSQL Server:/var/lib/pgsql:/bin/sh" >> \$GFA_PREFIX/etc/passwd
  616. +fi
  617. +#------------------
  618. +UID_MY=\`awk -F\: '/mysql/ {print \$3}' \$GFA_PREFIX/etc/passwd\`
  619. +UID_PG=\`awk -F\: '/postgres/ {print \$3}' \$GFA_PREFIX/etc/passwd\`
  620. +GID_PG=\`awk -F\: '/postgres/ {print \$3}' \$GFA_PREFIX/etc/group\`
  621. +GID_NOGROUP=\`awk -F\: '/nogroup/ {print \$3}' \$GFA_PREFIX/etc/group\`
  622. +
  623. +chown -Rv \${UID_MY}:\${GID_NOGROUP} \$GFA_PREFIX/var/mysql
  624. +chown -Rv \${UID_PG}:\${GID_PG} \$GFA_PREFIX/var/lib/pgsql
  625. +
  626. +chmod 700 \$GFA_PREFIX/root/.ssh
  627. +#===== copy custom_root files if folder exists
  628. +if [ -d "\$WRKDIR/custom_root" ]; then
  629. + cd \$WRKDIR/custom_root
  630. + rsync -avR \\
  631. + ./ \$EMMC_ROOTPATH/
  632. +fi
  633. +#==============================================================================
  634. +#=== copy BOOTFS
  635. +rm -rf \$EMMC_BOOTPATH/*
  636. +cd \$WRKDIR/_BootRoot/_GfABoot
  637. +rsync -avR ./ \$EMMC_BOOTPATH/
  638. +#=====
  639. +# Get Graphics resolution and set dtb to the right resolution
  640. +BASEBOARD=\`cat /tmp/BASEBOARD\`
  641. +
  642. +DONE=0
  643. +YRES="\$(fbset | awk '/geom/ {print \$3}')"
  644. +XRES="\$(fbset | awk '/geom/ {print \$2}')"
  645. +
  646. +echo "XRES \$XRES, YRES \$YRES"
  647. +
  648. +if [ "\$XRES" == "480" -a "\$YRES" == "272" ]; then
  649. +if [ "\$BASEBOARD" == "DISPLAY002_DI4" ]; then
  650. + echo "4.3 Inch Display 2"
  651. + cp \$EMMC_BOOTPATH/Display002_4.dtb \$EMMC_BOOTPATH/Display001.dtb
  652. + DONE=1
  653. +else
  654. + echo "4.3 Inch"
  655. + cp \$EMMC_BOOTPATH/Display001_4.dtb \$EMMC_BOOTPATH/Display001.dtb
  656. + DONE=1
  657. +fi
  658. +fi
  659. +
  660. +if [ "\$XRES" == "800" -a "\$YRES" == "480" ]; then
  661. +if [ "\$BASEBOARD" == "DISPLAY002_DI4" ]; then
  662. + echo "7 Inch Display 2"
  663. + cp \$EMMC_BOOTPATH/Display002_7.dtb \$EMMC_BOOTPATH/Display001.dtb
  664. + DONE=1
  665. +else
  666. +if [ "\$BASEBOARD" == "DISPLAY002_RS485" ]; then
  667. + echo "7 Inch Display 2 rs485"
  668. + cp \$EMMC_BOOTPATH/Display002_7_rs485.dtb \$EMMC_BOOTPATH/Display001.dtb
  669. + DONE=1
  670. +else
  671. + echo "7 Inch"
  672. + cp \$EMMC_BOOTPATH/Display001_7.dtb \$EMMC_BOOTPATH/Display001.dtb
  673. + DONE=1
  674. +fi
  675. +fi
  676. +fi
  677. +
  678. +if [ "\$XRES" == "640" -a "\$YRES" == "480" ]; then
  679. +if [ "\$BASEBOARD" == "DISPLAY002_DI4" ]; then
  680. + echo "5.7 Inch Display 2"
  681. + cp \$EMMC_BOOTPATH/Display002_5.dtb \$EMMC_BOOTPATH/Display001.dtb
  682. + DONE=1
  683. +else
  684. + echo "5.7 Inch"
  685. + cp \$EMMC_BOOTPATH/Display001_5.dtb \$EMMC_BOOTPATH/Display001.dtb
  686. + DONE=1
  687. +fi
  688. +fi
  689. +if [ "\$XRES" == "1280" -a "\$YRES" == "800" ]; then
  690. +if [ "\$BASEBOARD" == "DISPLAY002_DI4" ]; then
  691. + echo "10 Inch Display 2"
  692. + cp \$EMMC_BOOTPATH/Display002_10.dtb \$EMMC_BOOTPATH/Display001.dtb
  693. + DONE=1
  694. +else
  695. + echo "10 Inch"
  696. + cp \$EMMC_BOOTPATH/Display001_10.dtb \$EMMC_BOOTPATH/Display001.dtb
  697. + DONE=1
  698. +fi
  699. +fi
  700. +
  701. +if [ "\$XRES" == "1920" -a "\$YRES" == "1080" ]; then
  702. +if [ "\$BASEBOARD" == "DISPLAY002_DI4" ]; then
  703. + echo "15 Inch Display 2"
  704. + cp \$EMMC_BOOTPATH/Display002_15.dtb \$EMMC_BOOTPATH/Display001.dtb
  705. + DONE=1
  706. +else
  707. + echo "15 Inch"
  708. + cp \$EMMC_BOOTPATH/Display001_15.dtb \$EMMC_BOOTPATH/Display001.dtb
  709. + DONE=1
  710. +fi
  711. +fi
  712. +
  713. +if [ "\$DONE" == "0" ]; then
  714. + echo "Unknown Display Resolution"
  715. +fi
  716. +#========================================
  717. +
  718. +umount \${DESTDEV}p1 2>/dev/null
  719. +umount \${DESTDEV}p2 2>/dev/null
  720. +
  721. +XEOF
  722. +) > $GFA_PREFIX/UpdateEMMC.sh
  723. +chmod a+x $GFA_PREFIX/UpdateEMMC.sh
  724. +
  725. exit 0
  726. fi
  727. -#-------------
  728. +#===== MakeSDUpdateTool === End
  729. +
  730. +#====== HELP on unknown Command =======
  731. +echo -e "Unknown Command :: $1"
  732. +echo -e "Usage: $0 \e[32m[Command]\e[0m"
  733. +echo -e "\t without command ... update to new system"
  734. +echo -e "\t \e[32mMakeBootableSD\e[0m ... create bootable SD card with factory defaults"
  735. +echo -e "\t \e[32mMakeBootableEMMC\e[0m ... create bootable EMMC with factory defaults"
  736. +echo -e "\t \e[32mMakeSDUpdateTool\e[0m ... create Folders and scripts for"
  737. +echo -e "\t\t updating system from SD Card in /opt/GfA/SDUpdateTool"
  738. +echo -e "\t\t To Do UpdateEMMC:"
  739. +echo -e "\t\t\t cd /opt/GfA/SDUpdateTool"
  740. +echo -e "\t\t\t ./UpdateEMMC.sh"
  741. +echo -e "\t\t\t if folder /opt/GfASDupdateTool/custom_root exists"
  742. +echo -e "\t\t\t whole tree will be copied to root filesystem as is"
  743. +
  744. exit 0