View difference between Paste ID: iXMztd2F and 4VnWgN4R
SHOW: | | - or go back to the newest paste.
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 &
174+
	/mnt/onboard/.adds/koreader/koreader.sh
175
	reboot
176
fi