platform.sh 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #
  2. # Copyright (C) 2011 OpenWrt.org
  3. #
  4. PART_NAME=firmware
  5. REQUIRE_IMAGE_METADATA=1
  6. routerstation_do_upgrade() {
  7. local append
  8. local sysup_file="$1"
  9. local magic=$(get_magic_word "$sysup_file")
  10. if [ "$magic" = "4349" ]; then
  11. local kern_length=0x$(dd if="$sysup_file" bs=2 skip=1 count=4 2>/dev/null)
  12. [ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR"
  13. dd if="$sysup_file" bs=64k skip=1 2>/dev/null | \
  14. mtd -r $append -Fkernel:$kern_length:0x80060000,rootfs write - kernel:rootfs
  15. elif [ "$magic" = "7379" ]; then
  16. local board_dir=$(tar tf $sysup_file | grep -m 1 '^sysupgrade-.*/$')
  17. local kern_length=$(tar xf $sysup_file ${board_dir}kernel -O | wc -c)
  18. [ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR"
  19. tar xf $sysup_file ${board_dir}kernel ${board_dir}root -O | \
  20. mtd -r $append -Fkernel:$kern_length:0x80060000,rootfs write - kernel:rootfs
  21. else
  22. echo "Unknown image, aborting!"
  23. return 1
  24. fi
  25. }
  26. platform_check_image() {
  27. return 0
  28. }
  29. platform_do_upgrade() {
  30. local board=$(board_name)
  31. case "$board" in
  32. ubnt,routerstation|\
  33. ubnt,routerstation-pro)
  34. routerstation_do_upgrade "$ARGV"
  35. ;;
  36. *)
  37. default_do_upgrade "$ARGV"
  38. ;;
  39. esac
  40. }