diff --git a/platform/kobo/fmon/koreader.sh b/platform/kobo/fmon/koreader.sh index e4b0011da..abd4e6933 100644 --- a/platform/kobo/fmon/koreader.sh +++ b/platform/kobo/fmon/koreader.sh @@ -1 +1 @@ -$root/.kobo/fmon/fmon $root/koreader.png $root/.kobo/koreader/koreader.sh & +${root}/.kobo/fmon/fmon "${root}/koreader.png" "${root}/.kobo/koreader/koreader.sh" & diff --git a/platform/kobo/koreader.sh b/platform/kobo/koreader.sh index 186d94c98..00b7d9a20 100755 --- a/platform/kobo/koreader.sh +++ b/platform/kobo/koreader.sh @@ -2,21 +2,21 @@ export LC_ALL="en_US.UTF-8" # working directory of koreader -KOREADER_DIR=$(dirname $0) +KOREADER_DIR="${0%/*}" # update to new version from OTA directory NEWUPDATE="${KOREADER_DIR}/ota/koreader.updated.tar" INSTALLED="${KOREADER_DIR}/ota/koreader.installed.tar" -if [ -f $NEWUPDATE ]; then - # TODO: any graphic indication for the updating progress? - cd $(dirname $KOREADER_DIR) && tar xf $NEWUPDATE && mv $NEWUPDATE $INSTALLED +if [ -f "${NEWUPDATE}" ] ; then + # TODO: any graphic indication for the updating progress? + cd "${KOREADER_DIR%/*}" && tar xf "${NEWUPDATE}" && mv "${NEWUPDATE}" "${INSTALLED}" fi # we're always starting from our working directory -cd $KOREADER_DIR +cd "${KOREADER_DIR}" # load our own shared libraries if possible -export LD_LIBRARY_PATH=${KOREADER_DIR}/libs:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH="${KOREADER_DIR}/libs:${LD_LIBRARY_PATH}" # export trained OCR data directory export TESSDATA_PREFIX="data" @@ -29,50 +29,55 @@ export EXT_FONT_DIR="/mnt/onboard/fonts" # fast and dirty way of check if we are called from nickel # through fmon, or from another launcher (KSM or advboot) -from_nickel=`pidof nickel | wc -c` +from_nickel="false" +if pkill -0 nickel ; then + from_nickel="true" +fi -if [ $from_nickel -ne 0 ]; then - # stop kobo software because is running - killall nickel hindenburg fmon 2>/dev/null +if [ "${from_nickel}" == "true" ] ; then + # stop kobo software because is running + killall nickel hindenburg fmon 2>/dev/null fi -# fallback for old fmon (and advboot) users -if [ `echo $@ | wc -c` -eq 1 ]; then - args="/mnt/onboard" +# fallback for old fmon (and advboot) users (-> if no args were passed to the sript, start the FM) +if [ "$#" -eq 0 ] ; then + args="/mnt/onboard" else - args=$@ + args="$@" fi # check whether PLATFORM has a value assigned by rcS # PLATFORM is used in koreader for the path to the WiFi drivers -if [ -n "$PLATFORM" ]; then - 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 [ ! -n "${PLATFORM}" ] ; then + PLATFORM="freescale" + if dd if="/dev/mmcblk0" bs=512 skip=1024 count=1 | grep -q "HW CONFIG" ; 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 - elif [ ! -e /etc/u-boot/$PLATFORM/u-boot.mmc ]; then - PLATFORM=ntx508 - fi - export PLATFORM + 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 + elif [ ! -e "/etc/u-boot/${PLATFORM}/u-boot.mmc" ] ; then + PLATFORM="ntx508" + fi + export PLATFORM fi # end of value check of PLATFORM -./reader.lua $args 2> crash.log +./reader.lua "${args}" 2> crash.log -if [ $from_nickel -ne 0 ]; then - # start kobo software because was running before koreader - ./nickel.sh +if [ "${from_nickel}" == "true" ] ; then + # start kobo software because was running before koreader + ./nickel.sh else - # if we were called from advboot then we must reboot to go to the menu - if [ -d /mnt/onboard/.kobo/advboot ]; then - reboot - fi + # if we were called from advboot then we must reboot to go to the menu + if [ -d "/mnt/onboard/.kobo/advboot" ] ; then + # NOTE: ! pkill -0 ksmhome.sh is too drastic, it doesn't account for people running neither KSM nor advboot + #if ! pkill -0 ksmhome.sh ; then + reboot + fi fi diff --git a/platform/kobo/nickel.sh b/platform/kobo/nickel.sh index 58a3baa20..5ca147398 100644 --- a/platform/kobo/nickel.sh +++ b/platform/kobo/nickel.sh @@ -4,40 +4,42 @@ PATH=$PATH:/usr/sbin:/sbin # start fmon again: ( usleep 400000; /etc/init.d/on-animator.sh ) & -# environment needed by nickel, from /etc/init.d/rcS: - -export INTERFACE=eth0 -export WIFI_MODULE=dhd -export WIFI_MODULE_PATH=/drivers/ntx508/wifi/$WIFI_MODULE.ko -export NICKEL_HOME=/mnt/onboard/.kobo -export LD_LIBRARY_PATH=/usr/local/Kobo +# environment needed by nickel, from /etc/init.d/rcS: + +export INTERFACE="eth0" +export WIFI_MODULE="dhd" +export WIFI_MODULE_PATH="/drivers/ntx508/wifi/${WIFI_MODULE}.ko" +export NICKEL_HOME="/mnt/onboard/.kobo" +export LD_LIBRARY_PATH="/usr/local/Kobo" # start nickel again (from tshering's start menu v0.4), this should # cover all firmware versions from 2.6.1 to 3.4.1 (tested on a kobo # mini with 3.4.1 firmware) -( /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 - echo 1 > /sys/devices/platform/mxc_dvfs_core.0/enable - /sbin/hwclock -s -u -) & +( /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 + echo 1 > "/sys/devices/platform/mxc_dvfs_core.0/enable" + /sbin/hwclock -s -u +) & -if [ ! -e /usr/local/Kobo/platforms/libkobo.so ]; then - export QWS_KEYBOARD=imx508kbd:/dev/input/event0 - export QT_PLUGIN_PATH=/usr/local/Kobo/plugins - if [ -e /usr/local/Kobo/plugins/gfxdrivers/libimxepd.so ]; then - export QWS_DISPLAY=imxepd - else - export QWS_DISPLAY=Transformed:imx508:Rot90 - export QWS_MOUSE_PROTO="tslib_nocal:/dev/input/event1" - fi - /usr/local/Kobo/hindenburg & - /usr/local/Kobo/nickel -qws -skipFontLoad +if [ ! -e "/usr/local/Kobo/platforms/libkobo.so" ] ; then + export QWS_KEYBOARD="imx508kbd:/dev/input/event0" + export QT_PLUGIN_PATH="/usr/local/Kobo/plugins" + if [ -e "/usr/local/Kobo/plugins/gfxdrivers/libimxepd.so" ]; then + export QWS_DISPLAY="imxepd" + else + export QWS_DISPLAY="Transformed:imx508:Rot90" + export QWS_MOUSE_PROTO="tslib_nocal:/dev/input/event1" + fi + /usr/local/Kobo/hindenburg & + /usr/local/Kobo/nickel -qws -skipFontLoad else - /usr/local/Kobo/hindenburg & - insmod /drivers/ntx508/misc/lowmem.ko & - [ `cat /mnt/onboard/.kobo/Kobo/Kobo\ eReader.conf | grep -c dhcpcd=true` == 1 ] && dhcpcd -d -t 10 & - /usr/local/Kobo/nickel -platform kobo -skipFontLoad + /usr/local/Kobo/hindenburg & + insmod "/drivers/ntx508/misc/lowmem.ko" & + if grep -q "dhcpcd=true" "/mnt/onboard/.kobo/Kobo/Kobo eReader.conf" ; then + dhcpcd -d -t 10 & + fi + /usr/local/Kobo/nickel -platform kobo -skipFontLoad fi diff --git a/platform/kobo/suspend.sh b/platform/kobo/suspend.sh index 5d460b8fb..4b7f65f79 100644 --- a/platform/kobo/suspend.sh +++ b/platform/kobo/suspend.sh @@ -1,7 +1,7 @@ #!/bin/sh -export PATH=$PATH:/sbin:/usr/sbin +export PATH="${PATH}:/sbin:/usr/sbin" -#disable wifi +# disable wifi if lsmod | grep -q sdio_wifi_pwr ; then wlarm_le -i eth0 down ifconfig eth0 down @@ -9,7 +9,7 @@ if lsmod | grep -q sdio_wifi_pwr ; then rmmod -r sdio_wifi_pwr fi -#go to sleep +# go to sleep sync echo 1 > /sys/power/state-extended echo mem > /sys/power/state