diff options
Diffstat (limited to 'target/linux/realtek/base-files/lib')
4 files changed, 96 insertions, 0 deletions
diff --git a/target/linux/realtek/base-files/lib/preinit/03_preinit_do_realtek.sh b/target/linux/realtek/base-files/lib/preinit/03_preinit_do_realtek.sh new file mode 100644 index 000000000..32b83308b --- /dev/null +++ b/target/linux/realtek/base-files/lib/preinit/03_preinit_do_realtek.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +do_realtek() { + . /lib/realtek.sh + + realtek_board_detect +} + +boot_hook_add preinit_main do_realtek diff --git a/target/linux/realtek/base-files/lib/preinit/06_set_iface_mac b/target/linux/realtek/base-files/lib/preinit/06_set_iface_mac new file mode 100644 index 000000000..ff27fc952 --- /dev/null +++ b/target/linux/realtek/base-files/lib/preinit/06_set_iface_mac @@ -0,0 +1,35 @@ +# +# Copyright (C) 2014 OpenWrt.org +# + +preinit_set_mac_address() { + local mac + + . /lib/functions.sh + . /lib/realtek.sh + + case $(realtek_board_name) in + generic |\ + nprove |\ + nprove2) + mac=$(rtkmib --get mac0) + ifconfig eth0 hw ether $mac 2>/dev/null + ;; + sl-r7205) + mac=$(mtd_get_mac_binary factory 4) + mac=$(macaddr_setbit_la "$mac") + ifconfig eth0 hw ether $mac 2>/dev/null + ;; + dir-645) + mac=$(mtd_get_mac_ascii nvram lanmac) + mac=$(macaddr_setbit_la "$mac") + ifconfig eth0 hw ether $mac 2>/dev/null + ;; + xdxrn502j) + mac=$(mtd_get_mac_binary factory 40) + ifconfig eth0 hw ether $mac 2>/dev/null + ;; + esac +} + +boot_hook_add preinit_main preinit_set_mac_address diff --git a/target/linux/realtek/base-files/lib/preinit/07_set_preinit_iface_realtek b/target/linux/realtek/base-files/lib/preinit/07_set_preinit_iface_realtek new file mode 100644 index 000000000..dba89a5c9 --- /dev/null +++ b/target/linux/realtek/base-files/lib/preinit/07_set_preinit_iface_realtek @@ -0,0 +1,12 @@ +#!/bin/sh +# +# Copyright (C) 2014 OpenWrt.org +# + +. /lib/realtek.sh + +realtek_set_preinit_iface() { + ifname=eth0 +} + +boot_hook_add preinit_main realtek_set_preinit_iface diff --git a/target/linux/realtek/base-files/lib/realtek.sh b/target/linux/realtek/base-files/lib/realtek.sh new file mode 100755 index 000000000..7f29dc253 --- /dev/null +++ b/target/linux/realtek/base-files/lib/realtek.sh @@ -0,0 +1,40 @@ +#!/bin/sh +# +# Copyright (C) 2014 OpenWrt.org +# + +REALTEK_BOARD_NAME= +REALTEK_MODEL= + +realtek_board_detect() { + local machine + local name + + machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /proc/cpuinfo) + + case "$machine" in + *"Nprove") + name="nprove" + ;; + *) + name="generic" + ;; + esac + + [ -z "$REALTEK_BOARD_NAME" ] && REALTEK_BOARD_NAME="$name" + [ -z "$REALTEK_MODEL" ] && REALTEK_MODEL="$machine" + + [ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/" + + echo "$REALTEK_BOARD_NAME" > /tmp/sysinfo/board_name + echo "$REALTEK_MODEL" > /tmp/sysinfo/model +} + +realtek_board_name() { + local name + + [ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name) + [ -z "$name" ] && name="unknown" + + echo "$name" +} |