aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/apm821xx/base-files
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/apm821xx/base-files')
-rwxr-xr-xtarget/linux/apm821xx/base-files/etc/board.d/01_leds3
-rwxr-xr-xtarget/linux/apm821xx/base-files/etc/board.d/02_network1
-rwxr-xr-xtarget/linux/apm821xx/base-files/etc/diag.sh4
-rwxr-xr-xtarget/linux/apm821xx/base-files/lib/apm821xx.sh4
-rw-r--r--target/linux/apm821xx/base-files/lib/preinit/79_move_config13
-rwxr-xr-xtarget/linux/apm821xx/base-files/lib/upgrade/platform.sh13
-rw-r--r--target/linux/apm821xx/base-files/lib/upgrade/wdbook.sh36
7 files changed, 74 insertions, 0 deletions
diff --git a/target/linux/apm821xx/base-files/etc/board.d/01_leds b/target/linux/apm821xx/base-files/etc/board.d/01_leds
index d5f4cc9478..bcc7a9f101 100755
--- a/target/linux/apm821xx/base-files/etc/board.d/01_leds
+++ b/target/linux/apm821xx/base-files/etc/board.d/01_leds
@@ -16,6 +16,9 @@ mr24)
ucidef_set_led_wlan "wlan4" "WLAN4" "mr24:green:wifi4" "phy0tpt"
;;
+mbl)
+ ;;
+
*)
;;
esac
diff --git a/target/linux/apm821xx/base-files/etc/board.d/02_network b/target/linux/apm821xx/base-files/etc/board.d/02_network
index 4d53b2f64a..9525d8c5f2 100755
--- a/target/linux/apm821xx/base-files/etc/board.d/02_network
+++ b/target/linux/apm821xx/base-files/etc/board.d/02_network
@@ -9,6 +9,7 @@ board_config_update
board=$(apm821xx_board_name)
case "$board" in
+mbl | \
mr24)
ucidef_set_interface_lan "eth0"
;;
diff --git a/target/linux/apm821xx/base-files/etc/diag.sh b/target/linux/apm821xx/base-files/etc/diag.sh
index 58301f836f..bea66eb14d 100755
--- a/target/linux/apm821xx/base-files/etc/diag.sh
+++ b/target/linux/apm821xx/base-files/etc/diag.sh
@@ -5,6 +5,10 @@
get_status_led() {
case $(apm821xx_board_name) in
+ mbl)
+ status_led="mbl:green:power"
+ ;;
+
mr24)
status_led="mr24:green:power"
;;
diff --git a/target/linux/apm821xx/base-files/lib/apm821xx.sh b/target/linux/apm821xx/base-files/lib/apm821xx.sh
index 82f85c56be..98e88cff6e 100755
--- a/target/linux/apm821xx/base-files/lib/apm821xx.sh
+++ b/target/linux/apm821xx/base-files/lib/apm821xx.sh
@@ -14,6 +14,10 @@ apm821xx_board_detect() {
name="mr24"
;;
+ *"MyBook Live"*)
+ name="mbl"
+ ;;
+
*)
name="unknown"
;;
diff --git a/target/linux/apm821xx/base-files/lib/preinit/79_move_config b/target/linux/apm821xx/base-files/lib/preinit/79_move_config
new file mode 100644
index 0000000000..7c651b8a13
--- /dev/null
+++ b/target/linux/apm821xx/base-files/lib/preinit/79_move_config
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+BOOTPART=/dev/sda1
+
+move_config() {
+ if [ -b $BOOTPART ]; then
+ mkdir -p /boot
+ mount -t ext4 -o rw,noatime $BOOTPART /boot
+ [ -f /boot/sysupgrade.tgz ] && mv -f /boot/sysupgrade.tgz /
+ fi
+}
+
+boot_hook_add preinit_mount_root move_config
diff --git a/target/linux/apm821xx/base-files/lib/upgrade/platform.sh b/target/linux/apm821xx/base-files/lib/upgrade/platform.sh
index ddf775f4ae..d5b0986dd5 100755
--- a/target/linux/apm821xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/apm821xx/base-files/lib/upgrade/platform.sh
@@ -11,6 +11,11 @@ platform_check_image() {
[ "$#" -gt 1 ] && return 1
case "$board" in
+ mbl)
+ mbl_do_platform_check $board "$1"
+ return $?;
+ ;;
+
mr24)
merakinand_do_platform_check $board "$1"
return $?;
@@ -41,6 +46,10 @@ platform_do_upgrade() {
local board=$(apm821xx_board_name)
case "$board" in
+ mbl)
+ mbl_do_upgrade "$ARGV"
+ ;;
+
*)
default_do_upgrade "$ARGV"
;;
@@ -51,6 +60,10 @@ platform_copy_config() {
local board=$(apm821xx_board_name)
case "$board" in
+ mbl)
+ mbl_copy_config
+ ;;
+
*)
;;
esac
diff --git a/target/linux/apm821xx/base-files/lib/upgrade/wdbook.sh b/target/linux/apm821xx/base-files/lib/upgrade/wdbook.sh
new file mode 100644
index 0000000000..d7347516cb
--- /dev/null
+++ b/target/linux/apm821xx/base-files/lib/upgrade/wdbook.sh
@@ -0,0 +1,36 @@
+. /lib/functions.sh
+
+get_magic_at() {
+ local file="$1"
+ local pos="$2"
+ get_image "$file" | dd bs=1 count=2 skip="$pos" 2>/dev/null | hexdump -v -n 2 -e '1/1 "%02x"'
+}
+
+mbl_do_platform_check() {
+ local board="$1"
+ local file="$2"
+ local magic
+
+ magic=$(get_magic_at "$file" 510)
+
+ [ "$magic" != "55aa" ] && {
+ echo "Failed to verify MBR boot signature."
+ return 1
+ }
+
+ return 0;
+}
+
+mbl_do_upgrade() {
+ sync
+ get_image "$1" | dd of=/dev/sda bs=2M conv=fsync
+ sleep 1
+}
+
+mbl_copy_config() {
+ mkdir -p /boot
+ [ -f /boot/uImage ] || mount -t ext4 -o rw,noatime /dev/sda1 /boot
+ cp -af "$CONF_TAR" /boot/
+ sync
+ umount /boot
+}