#KUSTOMIZER - to tune Openmoko 2008.12 Linux distribution into an usable phone/PDA/toy/something on Openmoko Freerunner #Copyright (C) 2009 Risto H. Kurppa risto \a/ kurppa \dot/ fi http://risto.kurppa.fi/blog #This program is free software; you can redistribute it and/or #modify it under the terms of the GNU General Public License #as published by the Free Software Foundation; either version 2 #of the License, or (at your option) any later version. #This program is distributed in the hope that it will be useful, #but WITHOUT ANY WARRANTY; without even the implied warranty of #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #GNU General Public License for more details. #You should have received a copy of the GNU General Public License #along with this program; if not, write to the Free Software #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # PLEASE SEND ALL SUGGESTIONS, COMMENTS & FEEDBACK to risto \a/ kurppa \dot/ fi # Version 0.2 - 2008-02-06 # CHANGELOG IN THIS VERSION # (new) two run system: # 1st run: illume-theme, wrench, qwerty are installed, opkg.org, storage.conf/qpe-bug fixed. Then restarted # 2nd run: user needs to start Kustomizer again (and switch suspend/dim off!!) -> the rest is installed # Rewriting the instructions # General cleaning # (new) ntpclient # (new) http://www.opkg.org/package_121.html - MokoMaze # (new) ttf-liberation-mono (vala-terminal uses this) # (new) battery http://wiki.openmoko.org/wiki/Forcing_fast_charge_mode # (new) runs /media/card/customscript - the user can add his own stuff there # (new) automatic prevention of suspend & dimming # (update) yaouh - version update # (update) neon - version update # (remove) Finnish keyboard layout & dictionary # (remove) custom scripts from card # (remove) cellhunter - on FSO-based only? # (remove) Guitartune - on FSO-based only and libfft fails to install # (remove) fourier - libfft fails to install # (remove) zomg and appmanager - less used.. # (remove) pingus - doesn't install # (remove) mumpot - useless for most # (remove) usbmode - battery replaces most of this # (fix) watch checkrate changed from 1s to 2s # (fix) libglade-2.0 -> libglade-2.0-0 #TODO: # PRIORITY 1 # Sortdesk forces meooem and gpsdcontrol icons to be global or they don't work -> FAIL # Problems with some random packages - install fails.. segfault, md5sum mismatch, not found.. # THE REST # (new) pdf-viewer # (new) Test guitartune http://www.opkg.org/package_115.html - libfft fails -> also removed fourier.. # (new) Test gtick http://wiki.openmoko.org/wiki/GTick # (new) Test pythm http://www.opkg.org/package_1.html # (new) Pypennotes http://wiki.openmoko.org/wiki/PyPenNotes # (new) Navit speech support # (new) http://users.jyu.fi/~hejajama/openmoko/mode/ # (config) Midori default font size # (config) Create/ask password for the user # (config) Allow ssh-over-wlan # (config) set locales (ask?) # (config) Change startup graphics # (config) Make the keylock image smaller so that it wouldn't cover the whole screen # http://wiki.openmoko.org/wiki/FDOM -> maybe drop illume-theme but install terminal keyboard & qwerty -button. Problem is that after this there's no way to change the screen blanking time.. # (check) https://docs.openmoko.org/trac/ticket/2192#comment:3 -> illume keyboard on asu theme ##################################################### ## ON DESKTOP COMPUTER (written for Ubuntu 8.10 and newer) ##################################################### # I'm sure you've done the backups and know enough so don't blame me if things break :) # For more information please visit http://wiki.openmoko.org/wiki/Kustomizer ## PREPARE # install required packages: # a) run: sudo apt-get install dfu-util bind9 # dfu-util is also available from http://downloads.openmoko.org/releases/Om2008.9/dfu-util ## FLASH # for more details, see http://wiki.openmoko.org/wiki/Flashing_the_Neo_Freerunner # download the required image files # b) run: wget http://downloads.openmoko.org/releases/Om2008.12/Om2008.12-om-gta02.uImage.bin & wget http://downloads.openmoko.org/releases/Om2008.12/Om2008.12-om-gta02.rootfs.jffs2 # c) Connect your freerunner to the computer with the USB cable # d) start your Freerunner holding the AUX button down to get to the NOR menu # e) run: sudo time dfu-util -a kernel -R -D Om2008.12-om-gta02.uImage.bin # f) run: sudo time dfu-util -a rootfs -R -D Om2008.12-om-gta02.rootfs.jffs2 # g) Start & restart Freerunner to be able to log in over USB ssh # h) Go to 'Settings' and change 'Suspend' to 'off' or Freerunner will suspend and the installation will fail. ## CONNECT # Connect over usb-ssh with shared internet connection # Don't run the script on Freerunner's screen! It can be done but not recommended if you don't know what you're doing. # Download a script to help you & change the permission # i) run: wget http://www.kurppa.fi/freerunner/fr_bind && chmod 755 fr_bind # j) run: ./fr_bind # k) First it asks for your Ubuntu -password to restart the interface & bind9 - type it in # l) After this it asks for Freerunner password - it's empty, just hit Enter # For more details check http://wiki.openmoko.org/wiki/Usb_networking#Ubuntu_8.10_-_Easy_Way ##################################################### ## FREERUNNER ##################################################### # 1) Make sure you've turned 'Suspend' to 'off' in the Settings. # 2) Make sure you can SSH in over USB so that Freerunner has Internet connection (ping google.com?) # 3) run: wget http://www.kurppa.fi/freerunner/kustomizer && chmod 755 kustomizer # 4) run: ./kustomizer # On the first run it will install some stuff and then restart (to stop the qpe-bug). Then you need to repeat 2) and 4) and it'll install the rest #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #START OF THE ACTUAL SCRIPT #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #Needs testing! #suspend off dbus-send --system --dest=org.openmoko.Power / org.openmoko.Power.Core.RequestResourceState string:cpu string:kustomizer string:on #screen dimming off DISPLAY=:0 xset s 0 0 echo " _ _ _ " echo "| |_ _ _ ___| |_ ___ _____|_|___ ___ ___ " echo "| '_| | |_ -| _| . | | |- _| -_| _|" echo "|_,_|___|___|_| |___|_|_|_|_|___|___|_| " echo "Welcome to KUSTOMIZER for OM 2008.12" echo "Enjoy the trip!!!" echo " " echo "Version 0.2" #echo "In this version GPRS is disabled" echo " " infofile="/home/root/kustomizer_messages.log" rm $infofile > /dev/null 2> /dev/null # If this is the first run, we go to this loop to install some stuff that requires a restart qpefile="/home/root/Storage.conf_backup" if ! [ -e "$qpefile" ] then echo " -> First run detected. Freerunner IS RESTARTED SOON. Then run Kustomizer again over SSH to complete the installation." echo " " ############################## ## opkg.org repository ############################## echo " -> Adding opkg.org community repository & updating the databases" echo "src/gz opkgorg http://www.opkg.org/packages" > /etc/opkg/opkg-feed.conf echo " -> Updating package databases" opkg update ############################## ## illume theme & raster's keyboard ############################## echo " -> Installing new theme & keyboard & config tool" #source: http://wiki.openmoko.org/wiki/Illume#How_to_install_the_illume_.28Raster.27s.29_keyboard_.3F opkg install illume-config xterm nano #this will add "export QTOPIA_NO_VIRTUAL_KEYBOARD=1" to start of /etc/X11/Xsession.d/89qtopia cd /etc/X11/Xsession.d cp 89qtopia /home/root/89qtopia.backup wget http://www.kurppa.fi/freerunner/89qtopia -O 89qtopia opkg install illume-config-illume echo 'E_PROFILE="-profile illume"' > /etc/enlightenment/default_profile rm -rf ~/.e/e/config/illume #remove dropshadow rm /usr/lib/enlightenment/modules/dropshadow -rf ######################### # prevent qpe from scanning through you uSD card # http://wiki.openmoko.org/wiki/2008.8#Known_Issues ########################### echo " -> Preventing qpe from eating CPU resources" cd /opt/Qtopia/etc/default/Trolltech cp Storage.conf /home/root/Storage.conf_backup wget http://kurppa.fi/freerunner/Storage.conf -O Storage.conf ############################## ## AUDIO ############################## echo " -> Installing files for better phone audio quality" #fixed gsmhandset.state cd /usr/share/openmoko/scenarios/ cp gsmhandset.state /home/root/gsmhandset.state_backup wget http://users.tkk.fi/~tajyrink/moko/gsmhandset.state -O gsmhandset.state echo " -> First stage done, RESTARTING in 10s!!!" echo " -> THE INSTALLATION IS NOT COMPLETED YET!!" echo " -> After restart:" #echo "0) Go to top-menu -> wrench -> power -> change dim time to 'off'" echo " -> 1) Answer 'recover' on the crash screen or 'yes' to 'do you want to unload module' questions" echo " -> 2) Reconnect to Freerunner over USB SSH sharing the internet connection to it" echo " -> 3) Rerun Kustomizer (type ./Kustomizer)" sleep 10 shutdown -r now & #sleep 5 #dbus-send --system --dest=org.openmoko.Power / org.openmoko.Power.Core.RemoveRequestedResourceState string:cpu string:kustomizer exit fi ############################## ## SECOND RUN ############################## echo " -> Second run detected, c00l :)" #info display on freerunner screen with xterm DISPLAY=:0 xterm -e "watch -tn 2 cat $infofile" & echo " _ _ _ ">>$infofile echo "| |_ _ _ ___| |_ ___ _____|_|___ ___ ___ ">>$infofile echo "| '_| | |_ -| _| . | | |- _| -_| _|">>$infofile echo "|_,_|___|___|_| |___|_|_|_|_|___|___|_| ">>$infofile echo "KUSTOMIZER 0.2 for Openmoko 2008.12">> $infofile echo "You'll be shown some progress information here" >> $infofile echo "If you get a message of Enlightenment crashing, press 'Recover'">>$infofile echo "--------------------------">>$infofile echo "Check your Freerunner screen for a simple progress display :)" echo " " echo "Let's start with upgrade this time.." opkg upgrade ############################## ## LINKING /home/root/Maps ############################## if [ -d "/media/card/Maps" ] then echo "Configuring Navit & Tangogps map directories">>$infofile echo " -> Configuring Navit & Tangogps map directories" if [ -d "/home/root/Maps" ] then echo " -> Moving old /home/root/Maps to /home/media/Maps_original" mv /home/root/Maps /home/root/Maps_original fi echo " -> Linking /home/root/Maps to /media/card/Maps" ln -s /media/card/Maps /home/root/Maps fi ############################## ## MOKOSERVICES && TAP/UNTAP from FDOMizer ############################## cd /tmp wget http://files.tdobson.net/openmoko/freerunner/fdom/FDOMizer20081023.tar.gz file="FDOMizer20081023.tar.gz" if [ -e "$file" ] then echo " -> Installing some parts of FDOM" tar zxf FDOMizer20081023.tar.gz cd FDOMizer/ #THIS IS FROM FDOMIZER by Nacho Seijo nacho.seijo@gmail.com, see http://www.tuxbrain.com/fdom_en.html #installs services application and all scripts needed to use gprs tar -xzf mokoservicescripts.tar.gz -C /tmp cd /tmp/mokoscripts chmod a+x gprs-* cp gprs-* /etc/ppp/ cp gprs /etc/ppp/peers/ chmod a+x gprs* wifistatus nowifi mokoservices.py cp gprs* wifistatus nowifi mokoservices.py /usr/bin cp mokoservices.png /usr/share/pixmaps/ cp mokoservices.desktop /usr/share/applications #Ugly, I know.. tapuntap will be replaced by a bit more simple script by Aapo Rantalainen cd /tmp/FDOMizer/ cd tapUntap chmod a+x tapuntap.py cp tapuntap.py /usr/bin cp tapuntap.desktop /usr/share/applications cp tapuntap.png /usr/share/pixmaps wget http://kurppa.fi/freerunner/aapotap.py -O /usr/bin/tapuntap.py chmod 755 /usr/bin/tapuntap.py fi ############################## ##INSTALL ALL COOL APPS!! ############################## #xlogical wireshark wireshark-common segfaults the installation in installed from opkg.org repository! echo "Installing packages from the repositories - this takes a while..">>$infofile # gsm0710muxd removed opkg install bluez-utils python-ecore python-edbus python-edje python-evas python-dbus python-textutils \ mtpaint pidgin openmoko-agpsui libglade-2.0-0 openmoko-mediaplayer2 gpsd ntpclient libmokoui2-0 \ tzdata tzdata-europe python-pygame python-subprocess xterm qtopia-phone-x11-calculator curl python-pygtk \ libsdl-image-1.2-0 libsdl-1.2-0 libpng3 midori alsa-utils-aplay pong gtk+ libgnutls13 libgcrypt11 libgpg-error0 ttf-liberation-mono gsm0710muxd opkg install \ http://buildhost.automated.it/OM2007.2/packages/armv4t/zenity_2.20.1-r0_armv4t.ipk \ http://3v8.net/~sander/openmoko/libxft2_2.1.12-r1_armv4t.ipk \ http://www.angstrom-distribution.org/feeds/2007/ipk/glibc/armv4t/base/libmad0_0.15.1b-r0_armv4t.ipk \ http://www.angstrom-distribution.org/feeds/2007/ipk/glibc/armv4t/base/libmpeg2-0_0.4.0b-r4_armv4t.ipk \ http://www.angstrom-distribution.org/feeds/2007/ipk/glibc/armv4t/base/libfftw3-3_3.1.2-r1_armv4t.ipk \ http://downloads.openmoko.org/repository/testing/armv4t/libsdl-1.2-0_1.2.11-r6_armv4t.opk \ http://mojo.org.ua/moka/allegro_4.2.2-1_armv4t.ipk \ http://www.ecirc.net/openmoko/libfltk_1.1.9-0_armv4t.ipk \ http://misc.andi.de1.cc/dillo/dillo-ssl_2.0-r0_armv4t.opk \ http://mikeasoft.com/~mike/openmoko/enca_1.9-r3_armv4t.ipk \ http://projects.openmoko.org/frs/download.php/497/libconfig_1.3.1_armv4t.ipk \ http://projects.openmoko.org/frs/download.php/496/imlib2_1.4.1_armv4t.ipk \ http://gstaedtner.net/epiano/libfluidsynth1_1.0.8-r0_armv4t.ipk # BLUEZ BROKEN -> DOESN*T WORK! remoko http://remoko.googlecode.com/files/remoko-server_0.2.1_svnr119-r0_armv4t.ipk \ opkg install openttd centerim orrery duke3d libboost-signals numptyphysics \ fbreader vala-terminal dillo xlogical mokomaze echo "Installing all cool apps around the Net.. ">>$infofile echo "We're almost there, be patient :)">>$infofile #This need to be changed - it makes no sense to have gps on all the time but gpsdcontrol can't be used because of sortdesk.. echo "Answer 'y' to the gpsd question in the install terminal in a a couple of minutes..">>$infofile #Now that required libraries are installed, now some programs opkg install \ http://projects.openmoko.org/frs/download.php/551/gtkaddpoi_0.5.5_all.opk \ http://www.handheldshell.com/software/fso/bt-gps_1.0-r0_armv4t.ipk \ http://www.srcf.ucam.org/~taw27/openmoko/openmoocow/openmoocow_0.3_armv4t.ipk \ http://www.tangogps.org/downloads/tangogps_0.9.5-r0_armv4t.opk \ http://mokoconv.googlecode.com/files/mokoconv_0.1_all.ipk \ http://3v8.net/~sander/openmoko/minimo_0.02+cvs20070626-r1_armv4t.ipk \ http://downloads.tuxfamily.org/3v1deb/openmoko/scummvm_0.12.0_armv4t.ipk \ http://minucci.net/file/opkg/yaouh_0.3_all.opk \ http://www.elste.org/downloads/xskat_4.0_armv4t.opkg \ http://www.ecirc.net/openmoko/gwaterpas_0.2_armv4t.ipk \ http://dl.linuxphone.ru/openmoko/repository/liquidwar/liquidwar_5.6.4-2_armv4t.ipk \ http://westhoffswelt.de/data/blog/moko_eightball/moko-eightball_0.20080721_om-gta02.ipk \ http://gabuzomeu.fr/openmoko/meooem/meooem_0.1_armv4t.ipk \ http://projects.openmoko.org/frs/download.php/508/gpsdcontrol_0.4_all.opk \ http://projects.openmoko.org/frs/download.php/623/neon_0.9.6-r0_all.ipk \ http://projects.openmoko.org/frs/download.php/420/qwo_0.3_armv4t.ipk \ http://projects.openmoko.org/frs/download.php/473/shortom_0.2_all.ipk \ http://projects.openmoko.org/frs/download.php/575/ledclock_0.6_all.ipk \ http://projects.openmoko.org/frs/download.php/301/mokox48_1.0_arm_2008.8.ipk \ http://projects.openmoko.org/frs/download.php/620/ffalarms_0.1-r0_all.ipk \ http://download.navit-project.org/navit/openmoko/svn/navit-current_armv4.opk \ http://projects.openmoko.org/frs/download.php/228/gpssight_0.8.4_armv4t.ipk \ http://www.opkg.org/packages/wireshark-common_1.0.99+svnr26030_armv4t.ipk \ http://www.opkg.org/packages/wireshark_1.0.99+svnr26030_armv4t.ipk \ http://www.opkg.org/packages/xmahjongg-3.7_0.1_armv4t.ipk \ http://www.opkg.org/packages/mofi_0.02_armv4t.ipk \ http://charles-henri.org/duke3d_1.0-r2_armv4t.opk \ http://downloads.tuxfamily.org/3v1deb/openmoko/libwebkit-1.0-1_0.1%2bsvnr37056_armv4t.ipk \ http://projects.openmoko.org/frs/download.php/627/mokomaze_0.2.1_armv4t.ipk \ http://hdr.meetr.de/neo/openmoko/battery/battery_0.20080721_armv4t.ipk # SEGFAULTS http://www.opkg.org/packages/xlogical_1.0-8-r0.2_armv4t.opk \ cd / #wget http://filmsbykris.com/freerunner-debian/ko-user/ko-lightsaber.tar.gz && tar zxf ko-lightsaber.tar.gz wget http://filmsbykris.com/freerunner-debian/ko-user/ko-dice.tar.gz && tar zxf ko-dice.tar.gz ############################## ## GPRS ############################## echo "Installing GPRS settings">>$infofile cd / wget http://users.tkk.fi/~tajyrink/moko/openmoko-gprs.tar gprsfile="openmoko-gprs.tar" if [ -e "$gprsfile" ] then tar xvf openmoko-gprs.tar rm openmoko-gprs.tar wget http://www.kurppa.fi/freerunner/89qtopia.advanced -O /etc/X11/Xsession.d/89qtopia fi ############################## ## Application configuration ############################## echo "Configuring some applications">>$infofile #NAVIT if [ -d "/home/root/.navit" ] then cd /home/root/.navit cp navit.xml navit.xml_backup else mkdir /home/root/.navit fi cd /home/root/.navit wget http://www.kurppa.fi/freerunner/navit.xml cp /media/card/Maps/navit/*.txt /home/root/.navit #MEOOEM #add Helsinki and run meooem to update the weather icon echo "city_code=FIXX0002" >> /etc/meooem.conf meooem #MTPAINT icon mtpaintfile="/usr/share/applications/mtpaint.desktop" echo "[Desktop Entry]" >> $mtpaintfile echo "Encoding=UTF-8" >> $mtpaintfile echo "Name=Mtpaint" >> $mtpaintfile echo "TryExec=mtpaint" >> $mtpaintfile echo "GenericName=Mtpaint" >> $mtpaintfile echo "Comment=Mt paint" >> $mtpaintfile echo "StartupNotify=false" >> $mtpaintfile echo "Exec=mtpaint" >> $mtpaintfile echo "Icon=pyefl-sudoku" >> $mtpaintfile echo "Terminal=false" >> $mtpaintfile echo "Type=Application" >> $mtpaintfile echo "Categories=Applications;Game;ENLIGHTENMENT;" >> $mtpaintfile ############################3 #xmahjongg fixes #########################3 #icon #Xmahjongg icon xmahjonggfile="/usr/share/applications/xmahjongg.desktop" echo "[Desktop Entry]" >> $xmahjonggfile echo "Encoding=UTF-8" >> $xmahjonggfile echo "Name=Xmahjongg" >> $xmahjonggfile echo "StartupNotify=false" >> $xmahjonggfile echo "Exec=xmah.sh" >> $xmahjonggfile echo "Icon=xmahjongg" >> $xmahjonggfile echo "Terminal=false" >> $xmahjonggfile echo "Type=Application" >> $xmahjonggfile echo "Categories=Applications;Game;ENLIGHTENMENT;" >> $xmahjonggfile xmahjonggfile="/usr/bin/xmah.sh" echo "#!/usr/bin/env sh" > $xmahjonggfile echo "DISPLAY=:0 /usr/bin/xrandr -o 3 && /usr/bin/xmahjongg --tileset small; DISPLAY=:0 /usr/bin/xrandr -o 0" >> $xmahjonggfile #WEBKIT #Source: see "[OE] Getting the curl-based apps (Webkit browsers!) working with HTTPS" mail #by Marco Trevisan (TreviƱo) at openmoko-community 27th of January #Also some packages are installed above because of this, like libwebkit cd / wget http://downloads.tuxfamily.org/3v1deb/openmoko/libcurl-gnutls-unsafe.tar.bz2 tar jxf libcurl-gnutls-unsafe.tar.bz2 #Sort icons to folders echo "Sorting icons to categories">>$infofile cp /usr/share/applications/ /home/root/.iconsbackup -r opkg install sortdesk sortdesk add Games sortdesk add Net sortdesk add GPS sortdesk add Utils cd /usr/share/applications/Home #games mv eightball* ~/.sortdesk/Games mv liquidwar* ~/.sortdesk/Games mv openmoocow* ~/.sortdesk/Games mv scummvm* ~/.sortdesk/Games mv xskat* ~/.sortdesk/Games mv ko-dice* ~/.sortdesk/Games mv pyefl-sudoku* ~/.sortdesk/Games mv xlogical* ~/.sortdesk/Games #installation segfaults for now.. mv xmahjong* ~/.sortdesk/Games mv pong* ~/.sortdesk/Games mv numpty* ~/.sortdesk/Games mv duke3d* ~/.sortdesk/Games mv openttd* ~/.sortdesk/Games mv epian* ~/.sortdesk/Games mv mokomaze* ~/.sortdesk/Games #Net mv midori* ~/.sortdesk/Net mv minimo* ~/.sortdesk/Net mv centerim* ~/.sortdesk/Net mv pidgin* ~/.sortdesk/Net mv wireshark* ~/.sortdesk/Net #installation segfaults for now.. mv dillo* ~/.sortdesk/Net mv mofi* ~/.sortdesk/Net #GPS mv navit* ~/.sortdesk/GPS mv om-locations* ~/.sortdesk/GPS mv openmoko-agps* ~/.sortdesk/GPS mv orrery* ~/.sortdesk/GPS mv tangogps* ~/.sortdesk/GPS mv yaouh* ~/.sortdesk/GPS mv gpssight* ~/.sortdesk/GPS #md5sum mismatch -> installation fails mv gtkadd* ~/.sortdesk/GPS mv btgps* ~/.sortdesk/GPS #Utils echo "Categories=Application;Utility">>battery.desktop mv battery* ~/.sortdesk/Utils mv exposure* ~/.sortdesk/Utils mv ledclock* ~/.sortdesk/Utils mv mokoconv* ~/.sortdesk/Utils mv mokox48* ~/.sortdesk/Utils mv neon* ~/.sortdesk/Utils mv qtopia-calculator* ~/.sortdesk/Utils mv xterm* ~/.sortdesk/Utils mv gwaterpas* ~/.sortdesk/Utils mv fbreader* ~/.sortdesk/Utils mv mtpaint* ~/.sortdesk/Utils #Globals - because sortdesk fails.. mv gpsdcontrol* .. mv meooem* .. #left in Home: # vala-terminal # phone utils # tapuntap # assassin # mokoservices customfile="/media/card/customscript" if [ -e "$customfile" ] then echo "Running your custom script file">>$infofile echo "Found your custom script file at $customfile, running it now!" $customfile fi echo "That's all folks!">>$infofile echo "Enlightenment will crash on the first starts, thats life. Just click 'Recover' and you'll be fine.">>$infofile echo "Enjoy your freedom!!">>$infofile echo "!!!! RESTART IN 30s">>$infofile echo "That's all folks!" echo "Please copy and save this installation log somewhere on your desktop computer" echo "Enlightenment will crash on the first starts, thats life. Just click 'Recover' and you'll be fine." echo "Enjoy your freedom!!" echo "!!! RESTART IN 30s" sleep 30 #Needs testing! shutdown -r now & dbus-send --system --dest=org.openmoko.Power / org.openmoko.Power.Core.RemoveRequestedResourceState string:cpu string:kustomizer