User Tools

Site Tools


init

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
init [2011/12/22 18:44]
schneider
init [2013/07/31 21:28] (current)
sec Change according to Sven Neuhaus
Line 1: Line 1:
-====== **This page is not yet ready. Please check back on the evening ​of Dec 22nd for the final firmware and instructions ​on how to flash your r0ket** ======+====== ** This page contains ​the current release ​of our r0ket firmware ​release. Feel free to try it and give us feedback if you discover bugs in the firmware or these instructions ** ======
  
  
  
-====== How flash your roket? ======+====== How to flash your r0ket? ======
  
-Flashing your r0ket ensures you will get the full functionality ​on the 28c3. It is highly recommended you flash your old r0ket before attending the congress.+<note tip>Flashing your r0ket ensures you will get the full functionality. It is highly recommended you flash your old r0ket before attending the congress.</​note>​
  
-This procedure also brings your r0ket back into shape in case you "​bricked"​ it or experience other strange software glitches.+This procedure also brings your r0ket back into shape in case you "​bricked"​ it or experience other strange software glitches ​including a damaged file system for l0dables. 
 + 
 +^Revision^Change^ 
 +| 1 | Initial | 
 +| 2 | Improved Mesh | 
 +| 3 | Improved r_player l0dable | 
 +| 4 | Improved fahrplan, mesh, fonts | 
 +| 5 | Fixed mesh | 
 +| 6 | Actually pushed the mesh changes, improved game l0dable | 
 +| 15 | numerous small bugfixes |
  
 ===== Linux ===== ===== Linux =====
-  ​- Download the firmware pack here: <insert file here>+ 
 +  ​- Download the firmware pack here: {{:​r0ket-firmware-r15.tar.gz}}
   - Unpack the archive with your favourite tool.    - Unpack the archive with your favourite tool. 
-  - Turn r0ket off (switch position up) +  - Turn r0ket off (switch position up). 
-  - Plug micro-USB cable into r0ket and Computer +  - Plug micro-USB cable into r0ket and Computer. 
-  - Hold joystick to the left +  - Hold joystick to the left. 
-  - Turn r0ket on (switch position down) +  - Turn r0ket on (switch position down). 
-  - Release joystick+  - Release joystick.
   - Wait about 30 seconds.   - Wait about 30 seconds.
   - The r0ket will pose as a thumb drive. Check that you have a new volume with a '​firmware.bin'​ file on it. Mount the r0ket if you don't get a new volume.   - The r0ket will pose as a thumb drive. Check that you have a new volume with a '​firmware.bin'​ file on it. Mount the r0ket if you don't get a new volume.
   - As a normal user run the following command in a command window:   - As a normal user run the following command in a command window:
-    - cd r0ket-firmware && ./​flash-r0ket+    - cd r0ket-firmware-28c3-r6 ​&& ./​flash-r0ket
   - The script should tell you, that everything went fine.   - The script should tell you, that everything went fine.
   - Turn r0ket off.   - Turn r0ket off.
Line 26: Line 36:
   - Turn r0ket on.   - Turn r0ket on.
   - As above look for a new volume on your system. Mount the r0ket if you don't get one.   - As above look for a new volume on your system. Mount the r0ket if you don't get one.
-  - Make a copy of the following files to your computer: R0KET.CFG, NICK.CFG, ​privx.key, privy.key and pub.key+  ​- <note important>​If you already completed the steps below before, please jump to [[init#​updating|Updating the dataflash]]</​note>​  
 +  ​- Make a copy of the following files to your computer: R0KET.CFG, NICK.CFG, ​L0NICK.CFG, FONT.CFG, pubx.key, puby.key and priv.key
     - Don't worry if some of these files are missing. Your r0ket will still work.     - Don't worry if some of these files are missing. Your r0ket will still work.
   - Now unmount the r0ket. In a terminal run the following commands:   - Now unmount the r0ket. In a terminal run the following commands:
-    - mount +    - <​code>​mount</​code>​ 
-      - look for a line like: "/dev/sdb on /​media/​3355-4B37 type vfat [...]"+      - look for a line like: <​code>​/dev/sdb on /​media/​3355-4B37 type vfat [...]</​code>​
       - In this case "/​dev/​sdb"​ is the device of your r0ket. Make sure that the second path matches name of the new volume       - In this case "/​dev/​sdb"​ is the device of your r0ket. Make sure that the second path matches name of the new volume
-    - sudo umount <device that was shown by the mount command ​from above> +    - <​code>​sudo umount <device that was shown by the 'mount' ​command above></​code
-      - Example: sudo umount /dev/sdb+      - Example: ​<​code>​sudo umount /dev/sdb</​code>​
   - Write the new image by running:   - Write the new image by running:
-    - sudo dd if=dataflash.img of=<​device that was shown by the mount command above> +    - <​code>​sudo dd if=dataflash.img of=<​device that was shown by the 'mount' ​command above></​code
-      - make absolutely sure that you enter the correct device in the line above, or you can damage your computer +      - make absolutely sure that you enter the correct device in the line above, or you can damage your computer. 
-      - Example: sudo dd if=dataflash.img of=/​dev/​sdb +      - Example: ​<​code>​sudo dd if=dataflash.img of=/dev/sdb</​code>​ 
-    - sync +    - <​code>​sync</​code>​ 
-  - turn off r0ket and back on, while pressing the joystick towards the battery connector +      - This command may take a minute or two. 
-  - Copy the files from step xx back to the r0ket.+  - Turn off r0ket and back on, while pressing the joystick towards the battery connector. 
 +  - Copy the files from step 16 back to the r0ket.
  
 You're done. Yay! You're done. Yay!
Line 46: Line 58:
 ===== Windows ===== ===== Windows =====
  
-  - Turn r0ket off (switch position ​down)+  ​- Download the firmware here: {{:​r0ket-firmware-r15.zip}} 
 +  ​- Turn r0ket off (switch position ​up)
   - Plug micro-USB cable into r0ket and Computer   - Plug micro-USB cable into r0ket and Computer
   - Hold joystick to the left   - Hold joystick to the left
-  - Turn r0ket on (switch position ​up)+  - Turn r0ket on (switch position ​down)
   - Release joystick   - Release joystick
   - Wait about 30 seconds.   - Wait about 30 seconds.
Line 67: Line 80:
 **You'​re done. Yay!** **You'​re done. Yay!**
  
-==== Downloadable ​files: ====+===== Mac ===== 
 + 
 +  - Download the firmware pack here: {{:​r0ket-firmware-r15.tar.gz}} 
 +  - Download and compile keys.c from https://​github.com/​r0ket/​r0ket.git (r0ket/​tools/​crypto/​generate-keys.c) and put in in the same directory as the script 
 +  - Write the following script to a file. Extract the firmware. Execute the script with the directory containing the new firmware as parameter. The script will guide you through the process. 
 +  - Example 
 +    - <​code>​ ./​flashscript r0ket-firmware-r15 </​code>​ 
 +FlashScript UNSAFE (user errors might cause loss of data and corruption) 
 + 
 +<​code>​ 
 +#​!/​bin/​bash 
 + 
 +myTmpdir=/​tmp/​r0ket/​$(uuidgen) 
 +myCalled="​$(pwd)"​ 
 + 
 +function ERROR { 
 + echo ERROR $@ 
 +
 + 
 +function DEBUG { 
 + echo DEBUG $@ 
 +
 + 
 +function PRINT { 
 + echo $@ 
 +
 + 
 +function DIE { 
 + echo DIED $@ 
 + exit 1 
 +
 + 
 +function flashFirmware { 
 + myMount="​$(diskutil info $(system_profiler SPUSBDataType | grep -A15 "NXP LPC13XX IFLASH"​ | grep "BSD Name" | awk -F:  '​{print $2}') | grep "Mount Point" | sed 's/[ ]*.*[ ][ ]//​g'​)/"​ 
 + if [ -z "​$myMount"​ ] || [ ! -d "​$myMount"​ ]; then 
 +                DIE "Could not flash firmware. Could not find mountpoint $myMount"​ 
 +        fi 
 + cp -v "​$FIRMWAREBIN"​ "​$myMount"​ 
 + sleep 2 
 + sync 
 + sleep 2 
 + myroket="/​dev/​$(system_profiler SPUSBDataType | grep -A15 "NXP LPC13XX IFLASH"​ | grep "BSD Name" | awk -F: '​{print $2}' | sed 's/ //'​)"​ 
 + PRINT Unmounting the rocket $myroket. Please enter your password: 
 + sudo umount "​$myroket"​ 
 + return 
 + 
 +
 + 
 + 
 +function flashDataflash { 
 + myMount="​$(diskutil info $(system_profiler SPUSBDataType | grep -A10 "​r0ket"​ | grep 'BSD Name' | awk -F:  '​{print $2}' | sed 's/ //' ) | grep "Mount Point" | sed 's/[ ]*.*[ ][ ]//​g'​)"​ 
 + if [ -z "​$myMount"​ ] || [ ! -d "​$myMount"​ ]; then 
 + DIE "Could not flash dataflash. Could not find mount $myMount"​ 
 + fi 
 + cd "​$myMount"​ 
 + pwd 
 + cp -v R0KET.CFG NICK.CFG L0NICK.CFG FONT.CFG pubx.key puby.key priv.key $myTmpdir/​backup/​ 
 + cd $myTmpdir 
 + sleep 5 
 + #PRINT "​Please unmount the roket in the finder. Press the eject button on the newly mounted device. Then press return"​ 
 + #read 
 + myroket="/​dev/​$(system_profiler SPUSBDataType | grep -A10 "​r0ket"​ | grep "BSD Name" | awk -F: '​{print $2}' | sed 's/ //'​)"​ 
 + PRINT Unmounting the rocket $myroket. Please enter your password: 
 + sudo umount $myroket 
 + PRINT Flashing the rocket. Please enter your password: 
 + cd "​$myCalled"​ 
 + echo sudo dd if=$FIRMWARE/​dataflash.img of=$myroket 
 + sudo dd if=$FIRMWARE/​dataflash.img of=$myroket 
 + sync 
 + sleep 3 
 + sudo mount -t msdos $myroket $myTmpdir/​mountpoint 
 + cd $myTmpdir/​backup 
 + cp -v *  $myTmpdir/​mountpoint/​ 
 + ls pubx.key puby.key priv.key || ( echo "​Generating new keys" && cd .. && ./​generate-keys && cp -v files/* $myTmpdir/​mountpoint/​ ) 
 + cd /tmp 
 + PRINT Unmounting the rocket $myroket. Please enter your password: 
 + sudo umount $myroket 
 + 
 +
 + 
 +function cleanUp { 
 + sudo rm -rf /​tmp/​r0ket/​ 
 +
 + 
 + 
 +function init { 
 + mkdir -p $myTmpdir/​backup 
 + mkdir -p $myTmpdir/​mountpoint 
 + mkdir -p $myTmpdir/​files 
 + 
 +
 + 
 +function main { 
 + init 
 + if [ -n "​$@"​ ]; then 
 + if [ -e "​$@/​firmware.bin"​ ]; then 
 + FIRMWARE=$@ 
 + FIRMWAREBIN=$@/​firmware.bin 
 + else 
 + DIE $@/​firmware.bin seems not to be a firmware 
 + fi 
 + else 
 + DIE expected the path to the directory with the new firmware as parameter 
 + fi 
 + PRINT "​Please turn off your r0ket and connect your r0ket to a USB port."​ 
 + PRINT "​Please press the r0ket joystick to the LEFT and turn the rocket on. Then press return"​ 
 + read 
 + sleep 10 
 + flashFirmware 
 + #PRINT "​Please unmount the roket in the finder. Press the eject button on the newly mounted device. Then press return"​ 
 + #read 
 + PRINT "​Please turn off your r0ket."​ 
 + PRINT "​Please press the r0ket joystick DOWNWARDS and turn the rocket on. Then press return"​ 
 + read 
 + flashDataflash 
 +  
 + cleanUp 
 +  
 + 
 +
 + 
 +main $@ 
 +</​code>​ 
 + 
 +===== Updating ===== 
 + 
 +If completed the steps above once, you can update your dataflash by copying the files from the '​files'​ directory in the archive to the mounted dataflash of your r0ket. Do not forget to properly '​eject'​ or '​unmount'​ the device or you might loose data!
  
-  * firmware.bin 
-  * dataflash.img 
init.1324575892.txt.gz · Last modified: 2011/12/22 18:44 by schneider