Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- PRODUCT=`/bin/kobo_config.sh`;
- [ $PRODUCT != trilogy ] && PREFIX=$PRODUCT-
- mount -o remount,noatime,nodiratime /dev/mmcblk0p1 /
- PLATFORM=freescale
- if [ `dd if=/dev/mmcblk0 bs=512 skip=1024 count=1 | grep -c "HW CONFIG"` == 1 ]; then
- CPU=`ntx_hwconfig -s -p /dev/mmcblk0 CPU`
- PLATFORM=$CPU-ntx
- fi
- if [ $PLATFORM == freescale ]; then
- if [ ! -s /lib/firmware/imx/epdc_E60_V220.fw ]; then
- mkdir -p /lib/firmware/imx
- dd if=/dev/mmcblk0 bs=512K skip=10 count=1 | zcat > /lib/firmware/imx/epdc_E60_V220.fw
- sync
- fi
- fi
- PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/lib:
- runlevel=S
- prevlevel=N
- umask 022
- export PATH PLATFORM PRODUCT runlevel prevlevel
- 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
- [ ! -d $i ] && mkdir -p $i
- done;
- /bin/mount -t proc none /proc
- /bin/mount -t tmpfs none -o size=16m /tmp
- /bin/mount -t tmpfs none /dev
- /bin/mount -t tmpfs none -o size=16k /var/lib
- /bin/mount -t tmpfs none -o size=16k /var/log
- /bin/mount -t tmpfs none -o size=128k /var/run
- /bin/mount -t sysfs none -o size=500k /sys
- for i in /var/run/dbus /var/lib/dbus; do
- mkdir -p $i
- done
- mkfifo /tmp/nickel-hardware-status
- rm -rf /etc/udev/rules.d/70-persistent-net.rules
- rm -rf /mnt/onboard/.kobo
- rm -rf /mnt/onboard/*
- echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
- /sbin/udevd -d
- [ "$(ls -s /etc/udev.tgz | awk '{print $1}')" == 0 ] && rm -rf /etc/udev.tgz
- if [ $PLATFORM == freescale ] || [ ! -e /etc/udev.tgz ]; then
- /sbin/udevadm control --env=STARTUP=1
- /sbin/udevadm trigger
- /sbin/udevadm settle --timeout=2
- /sbin/udevadm control --env=STARTUP=
- [ $PLATFORM != freescale ] && tar cpzf /etc/udev.tgz /dev &
- else
- tar zxf /etc/udev.tgz -C /
- fi
- export UBOOT_MMC=/etc/u-boot/$PLATFORM/u-boot.mmc
- export UBOOT_RECOVERY=/etc/u-boot/$PLATFORM/u-boot.recovery
- FS_CORRUPT=0
- dosfsck -a -w /dev/mmcblk0p3 || dosfsck -a -w /dev/mmcblk0p3 || dosfsck -a -w /dev/mmcblk0p3 || dosfsck -a -w /dev/mmcblk0p3 || FS_CORRUPT=1
- /usr/local/Kobo/pickel should-factory-reset
- if [ $? == 1 ] || [ $FS_CORRUPT == 1 ]; then
- case $PRODUCT in
- kraken|phoenix)
- export COORDINATES="80 870 70 70 200 870 70 70";;
- dragon|dahlia|alyssum)
- export COORDINATES="120 1220 100 100 280 1220 100 100";;
- *)
- export COORDINATES="55 685 60 60 150 685 60 60";;
- esac
- sleep 5
- zcat /etc/images/$PREFIX\factory-reset.raw.gz | /usr/local/Kobo/pickel showpic
- /usr/local/Kobo/pickel wait-for-hit $COORDINATES
- if [ $? == 2 ]; then
- dd if=$UBOOT_RECOVERY of=/dev/mmcblk0 bs=128k count=1 seek=6
- sync
- fi
- reboot
- fi
- mount -t vfat -o noatime,nodiratime,shortname=mixed,utf8 /dev/mmcblk0p3 /mnt/onboard
- rm -rf /mnt/onboard/fsck*
- rm -rf /mnt/onboard/FSCK*
- rm -rf /usr/local/Kobo/db.tgz
- chmod u+s /libexec/dbus-daemon-launch-helper
- echo -n 8192 > /proc/sys/vm/min_free_kbytes
- echo -n 67108864 > /proc/sys/kernel/shmmax
- /usr/local/Kobo/pickel can-upgrade
- CAN_UPGRADE=$?
- if [ ! -e /mnt/onboard/.kobo ]; then
- mkdir -p /mnt/onboard/.kobo
- fi
- if [ $CAN_UPGRADE == 1 ] && [ -e /mnt/onboard/.kobo/Kobo.tgz ]; then
- 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 )
- rm /mnt/onboard/.kobo/Kobo.tgz
- echo "Done upgrading..."
- fi
- if [ $CAN_UPGRADE == 1 ] && [ -e /mnt/onboard/.kobo/KoboRoot.tgz ]; then
- zcat /etc/images/$PREFIX\ghostbuster.raw.gz | /usr/local/Kobo/pickel showpic
- /etc/init.d/update-animator.sh &
- 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 )
- if [ -e /mnt/onboard/.kobo/upgrade ]; then
- /etc/init.d/upgrade-wifi.sh
- rm -rf /mnt/onboard/.kobo/upgrade
- fi
- rm /mnt/onboard/.kobo/KoboRoot.tgz
- killall update-animator.sh
- echo "Done upgrading..."
- zcat /etc/images/$PREFIX\ghostbuster.raw.gz | /usr/local/Kobo/pickel showpic
- zcat /etc/images/$PREFIX\reboot.raw.gz | /usr/local/Kobo/pickel showpic
- sync
- reboot
- fi
- ( usleep 400000; /etc/init.d/on-animator.sh ) &
- # wait for touches.
- cat /dev/input/event1 > /tmp/booting_touch & booting_touch_pid=$!
- (
- /usr/local/Kobo/pickel disable.rtc.alarm
- if [ ! -e /etc/wpa_supplicant/wpa_supplicant.conf ]; then
- cp /etc/wpa_supplicant/wpa_supplicant.conf.template /etc/wpa_supplicant/wpa_supplicant.conf
- fi
- /sbin/hwclock -s -u
- ) &
- INTERFACE=wlan0
- WIFI_MODULE=ar6000
- if [ $PLATFORM != freescale ]; then
- INTERFACE=eth0
- WIFI_MODULE=dhd
- fi
- export INTERFACE
- export WIFI_MODULE
- export NICKEL_HOME=/mnt/onboard/.kobo
- export LD_LIBRARY_PATH=/usr/local/Kobo
- export WIFI_MODULE_PATH=/drivers/$PLATFORM/wifi/$WIFI_MODULE.ko
- export LANG=en_US.UTF-8
- /bin/dbus-uuidgen > /var/lib/dbus/machine-id
- /bin/dbus-daemon --system &
- export DBUS_SESSION_BUS_ADDRESS=`/bin/dbus-daemon --session --print-address --fork`
- /usr/local/Kobo/hindenburg &
- /usr/local/Kobo/nickel -platform kobo -skipFontLoad &
- [ $PLATFORM != freescale ] && rm -rf /dev/mmcblk1* && udevadm trigger &
- insmod /drivers/$PLATFORM/misc/lowmem.ko &
- sleep 6 # wait for on-animator to start.
- while pgrep 'on-animator' ; do usleep 400000; done # block by on-animator.
- # kill and test.
- kill $booting_touch_pid
- if [ $(wc -c /tmp/booting_touch| cut -f1 -d' ') -ne 0 ]; then
- /mnt/onboard/.adds/koreader/koreader.sh
- reboot
- fi
Advertisement
Add Comment
Please, Sign In to add comment