Guest User

Untitled

a guest
Aug 2nd, 2015
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/sh
  2.  
  3. PRODUCT=`/bin/kobo_config.sh`;
  4. [ $PRODUCT != trilogy ] && PREFIX=$PRODUCT-
  5.  
  6. mount -o remount,noatime,nodiratime /dev/mmcblk0p1 /
  7.  
  8. PLATFORM=freescale
  9. if [ `dd if=/dev/mmcblk0 bs=512 skip=1024 count=1 | grep -c "HW CONFIG"` == 1 ]; then
  10. CPU=`ntx_hwconfig -s -p /dev/mmcblk0 CPU`
  11. PLATFORM=$CPU-ntx
  12. fi
  13.  
  14. if [ $PLATFORM == freescale ]; then
  15. if [ ! -s /lib/firmware/imx/epdc_E60_V220.fw ]; then
  16. mkdir -p /lib/firmware/imx
  17. dd if=/dev/mmcblk0 bs=512K skip=10 count=1 | zcat > /lib/firmware/imx/epdc_E60_V220.fw
  18. sync
  19. fi
  20. fi
  21.  
  22. PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/lib:
  23. runlevel=S
  24. prevlevel=N
  25. umask 022
  26. export PATH PLATFORM PRODUCT runlevel prevlevel
  27.  
  28. for i in /proc /dev /root /tmp /sys /mnt/sd /mnt/onboard /mnt/user /var/db /var/lib /var/log /var/run /lib/modules/`uname -r`; do
  29. [ ! -d $i ] && mkdir -p $i
  30. done;
  31.  
  32. /bin/mount -t proc none /proc
  33. /bin/mount -t tmpfs none -o size=16m /tmp
  34. /bin/mount -t tmpfs none /dev
  35. /bin/mount -t tmpfs none -o size=16k /var/lib
  36. /bin/mount -t tmpfs none -o size=16k /var/log
  37. /bin/mount -t tmpfs none -o size=128k /var/run
  38. /bin/mount -t sysfs none -o size=500k /sys
  39.  
  40. for i in /var/run/dbus /var/lib/dbus; do
  41. mkdir -p $i
  42. done
  43.  
  44. mkfifo /tmp/nickel-hardware-status
  45. rm -rf /etc/udev/rules.d/70-persistent-net.rules
  46. rm -rf /mnt/onboard/.kobo
  47. rm -rf /mnt/onboard/*
  48.  
  49. echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
  50. /sbin/udevd -d
  51.  
  52. [ "$(ls -s /etc/udev.tgz | awk '{print $1}')" == 0 ] && rm -rf /etc/udev.tgz
  53. if [ $PLATFORM == freescale ] || [ ! -e /etc/udev.tgz ]; then
  54. /sbin/udevadm control --env=STARTUP=1
  55. /sbin/udevadm trigger
  56. /sbin/udevadm settle --timeout=2
  57. /sbin/udevadm control --env=STARTUP=
  58. [ $PLATFORM != freescale ] && tar cpzf /etc/udev.tgz /dev &
  59. else
  60. tar zxf /etc/udev.tgz -C /
  61. fi
  62.  
  63. export UBOOT_MMC=/etc/u-boot/$PLATFORM/u-boot.mmc
  64. export UBOOT_RECOVERY=/etc/u-boot/$PLATFORM/u-boot.recovery
  65.  
  66. FS_CORRUPT=0
  67. dosfsck -a -w /dev/mmcblk0p3 || dosfsck -a -w /dev/mmcblk0p3 || dosfsck -a -w /dev/mmcblk0p3 || dosfsck -a -w /dev/mmcblk0p3 || FS_CORRUPT=1
  68. /usr/local/Kobo/pickel should-factory-reset
  69. if [ $? == 1 ] || [ $FS_CORRUPT == 1 ]; then
  70. case $PRODUCT in
  71. kraken|phoenix)
  72. export COORDINATES="80 870 70 70 200 870 70 70";;
  73. dragon|dahlia|alyssum)
  74. export COORDINATES="120 1220 100 100 280 1220 100 100";;
  75. *)
  76. export COORDINATES="55 685 60 60 150 685 60 60";;
  77.  
  78. esac
  79. sleep 5
  80. zcat /etc/images/$PREFIX\factory-reset.raw.gz | /usr/local/Kobo/pickel showpic
  81. /usr/local/Kobo/pickel wait-for-hit $COORDINATES
  82. if [ $? == 2 ]; then
  83. dd if=$UBOOT_RECOVERY of=/dev/mmcblk0 bs=128k count=1 seek=6
  84. sync
  85. fi
  86. reboot
  87. fi
  88.  
  89. mount -t vfat -o noatime,nodiratime,shortname=mixed,utf8 /dev/mmcblk0p3 /mnt/onboard
  90. rm -rf /mnt/onboard/fsck*
  91. rm -rf /mnt/onboard/FSCK*
  92. rm -rf /usr/local/Kobo/db.tgz
  93. chmod u+s /libexec/dbus-daemon-launch-helper
  94.  
  95. echo -n 8192 > /proc/sys/vm/min_free_kbytes
  96. echo -n 67108864 > /proc/sys/kernel/shmmax
  97.  
  98. /usr/local/Kobo/pickel can-upgrade
  99. CAN_UPGRADE=$?
  100.  
  101. if [ ! -e /mnt/onboard/.kobo ]; then
  102. mkdir -p /mnt/onboard/.kobo
  103. fi
  104.  
  105. if [ $CAN_UPGRADE == 1 ] && [ -e /mnt/onboard/.kobo/Kobo.tgz ]; then
  106. gunzip -t /mnt/onboard/.kobo/Kobo.tgz && tar zxf /mnt/onboard/.kobo/Kobo.tgz -C /usr/local/Kobo/ && ( cat /usr/local/Kobo/revinfo >> /usr/local/Kobo/install.log )
  107. rm /mnt/onboard/.kobo/Kobo.tgz
  108. echo "Done upgrading..."
  109. fi
  110.  
  111. if [ $CAN_UPGRADE == 1 ] && [ -e /mnt/onboard/.kobo/KoboRoot.tgz ]; then
  112. zcat /etc/images/$PREFIX\ghostbuster.raw.gz | /usr/local/Kobo/pickel showpic
  113. /etc/init.d/update-animator.sh &
  114. gunzip -t /mnt/onboard/.kobo/KoboRoot.tgz && tar zxf /mnt/onboard/.kobo/KoboRoot.tgz -C / && ( cat /usr/local/Kobo/revinfo >> /usr/local/Kobo/install.log )
  115. if [ -e /mnt/onboard/.kobo/upgrade ]; then
  116. /etc/init.d/upgrade-wifi.sh
  117. rm -rf /mnt/onboard/.kobo/upgrade
  118. fi
  119. rm /mnt/onboard/.kobo/KoboRoot.tgz
  120. killall update-animator.sh
  121. echo "Done upgrading..."
  122. zcat /etc/images/$PREFIX\ghostbuster.raw.gz | /usr/local/Kobo/pickel showpic
  123. zcat /etc/images/$PREFIX\reboot.raw.gz | /usr/local/Kobo/pickel showpic
  124. sync
  125. reboot
  126. fi
  127.  
  128. ( usleep 400000; /etc/init.d/on-animator.sh ) &
  129.  
  130. # wait for touches.
  131. cat /dev/input/event1 > /tmp/booting_touch & booting_touch_pid=$!
  132.  
  133. (
  134. /usr/local/Kobo/pickel disable.rtc.alarm
  135.  
  136. if [ ! -e /etc/wpa_supplicant/wpa_supplicant.conf ]; then
  137. cp /etc/wpa_supplicant/wpa_supplicant.conf.template /etc/wpa_supplicant/wpa_supplicant.conf
  138. fi
  139.  
  140. /sbin/hwclock -s -u
  141. ) &
  142.  
  143. INTERFACE=wlan0
  144. WIFI_MODULE=ar6000
  145. if [ $PLATFORM != freescale ]; then
  146. INTERFACE=eth0
  147. WIFI_MODULE=dhd
  148. fi
  149.  
  150. export INTERFACE
  151. export WIFI_MODULE
  152.  
  153. export NICKEL_HOME=/mnt/onboard/.kobo
  154. export LD_LIBRARY_PATH=/usr/local/Kobo
  155. export WIFI_MODULE_PATH=/drivers/$PLATFORM/wifi/$WIFI_MODULE.ko
  156. export LANG=en_US.UTF-8
  157.  
  158. /bin/dbus-uuidgen > /var/lib/dbus/machine-id
  159. /bin/dbus-daemon --system &
  160. export DBUS_SESSION_BUS_ADDRESS=`/bin/dbus-daemon --session --print-address --fork`
  161.  
  162. /usr/local/Kobo/hindenburg &
  163. /usr/local/Kobo/nickel -platform kobo -skipFontLoad &
  164. [ $PLATFORM != freescale ] && rm -rf /dev/mmcblk1* && udevadm trigger &
  165. insmod /drivers/$PLATFORM/misc/lowmem.ko &
  166.  
  167.  
  168. sleep 6 # wait for on-animator to start.
  169. while pgrep 'on-animator' ; do usleep 400000; done # block by on-animator.
  170.  
  171. # kill and test.
  172. kill $booting_touch_pid
  173. if [ $(wc -c /tmp/booting_touch| cut -f1 -d' ') -ne 0 ]; then
  174. /mnt/onboard/.adds/koreader/koreader.sh
  175. reboot
  176. fi
Advertisement
Add Comment
Please, Sign In to add comment