Advertisement
Guest User

openelec2pisd

a guest
Jun 1st, 2012
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/env bash
  2.  
  3. die( )
  4. {
  5.     echo $1 ; exit 1
  6. }
  7.  
  8. doit( )
  9. {
  10.     echo "+ $*"
  11.     $* || die "command failed"
  12. }
  13.  
  14. unmount( )
  15. {
  16.     devices=`mount | grep ^$1 | cut -f 1 -d ' '`
  17.     for dev in $devices ; do doit umount $dev ; done
  18. }
  19.  
  20. last( )
  21. {
  22.     ls -d $* | tail -1
  23. }
  24.  
  25. check( )
  26. {
  27.     result=1
  28.     partitions=( `sudo fdisk -l | grep ^$1 | cut -d " " -f 1` )
  29.     if [ ${#partitions[@]} -eq 2 ]
  30.     then
  31.         file -sL ${partitions[0]} | grep \"System > /dev/null 2>&1 &&
  32.         file -sL ${partitions[1]} | grep \"Storage\" > /dev/null 2>&1 &&
  33.         result=0
  34.     fi
  35.     return $result
  36. }
  37.  
  38. [ $# -ne 1 ] && die "Usage: sudo `basename $0` /dev/sdb"
  39.  
  40. device=$1
  41. device1=${device}1
  42. device2=${device}2
  43.  
  44. bootloader=`last build.OpenELEC-RPi.arm-devel/bcm2835-bootloader-*`
  45. system=`last target/OpenELEC-RPi.arm-devel-*.system`
  46. kernel=`last target/OpenELEC-RPi.arm-devel-*.kernel`
  47.  
  48. echo "Updating $device with:"
  49. echo
  50. echo "bootloader = $bootloader"
  51. echo "system     = $system"
  52. echo "kernel     = $kernel"
  53. echo
  54. echo -n "Do you want to continue (y/n)? "
  55.  
  56. read answer
  57.  
  58. [ "$answer" != "y" ] && exit 0
  59.  
  60. echo
  61.  
  62. unmount $device
  63.  
  64. if ! check $device
  65. then
  66.     doit parted -s $device mklabel msdos
  67.     doit parted -s $device unit cyl mkpart primary fat32 -- 0 16
  68.     doit parted -s $device set 1 boot on
  69.     doit parted -s $device unit cyl mkpart primary ext2 -- 16 -2
  70.  
  71.     doit mkfs.vfat -n System $device1
  72.     doit mkfs.ext4 -L Storage $device2
  73.     doit partprobe
  74. fi
  75.  
  76. doit mkdir -p /tmp/media/System
  77. doit mount $device1 /tmp/media/System
  78.  
  79. doit cp $bootloader/arm128_start.elf /tmp/media/System/start.elf
  80. doit cp $bootloader/bootcode.bin /tmp/media/System/
  81. doit cp $bootloader/loader.bin /tmp/media/System/
  82.  
  83. doit cp $system /tmp/media/System/SYSTEM
  84. doit cp $kernel /tmp/media/System/kernel.img
  85.  
  86. echo "boot=/dev/mmcblk0p1 disk=/dev/mmcblk0p2 ssh quiet" > /tmp/media/System/cmdline.txt
  87.  
  88. doit sync
  89.  
  90. doit umount $device1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement