diff --git a/README.md b/README.md index 32518b2..0f3ecda 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,8 @@ olg-scratchpad ├── README.md ├── ucentral-client # uCentral client for OLG │   └── README.md +│   └── Dockerfile # Dockerfile to create docker image of ucentral-client from rootfs +│   └── rootfs/ # Contains the ucentral-client specific files from which docker image is created └── vyos # VyOS Gateway for OLG ├── README.md └── vyos_config # The host volume required to mount in VyOS container diff --git a/ucentral-client/Dockerfile b/ucentral-client/Dockerfile new file mode 100644 index 0000000..5d64fc8 --- /dev/null +++ b/ucentral-client/Dockerfile @@ -0,0 +1,13 @@ +FROM scratch +COPY rootfs/bin/ /bin/ +COPY rootfs/sbin/ /sbin/ +COPY rootfs/usr/ /usr/ +COPY rootfs/lib/ /lib/ +COPY rootfs/etc/ /etc/ +RUN mkdir -p /var/run/ +RUN mkdir -p /var/lock/ +RUN mkdir -p /tmp +ENV PATH=/bin:/sbin:/usr/bin:/usr/sbin +ENV LD_LIBRARY_PATH=/lib:/usr/lib +WORKDIR / +CMD ["/bin/busybox","sleep","infinity"] diff --git a/ucentral-client/README.md b/ucentral-client/README.md index 89f45c1..d00cad9 100644 --- a/ucentral-client/README.md +++ b/ucentral-client/README.md @@ -1 +1,79 @@ -# uCentral Client +# Ucentral Client +This document explains how to build the container image for the **uCentral Client** from rootfs and also how to prepare the root filesystem (rootfs) build context. + +--- + +## 🔨 Steps to Build RootFs & Prepare uCentral Client Docker Image + +### 1. Create workspace and fetch the OpenWiFi WLAN AP source +```bash +mkdir WORKSPACE +cd WORKSPACE +mkdir OPENWIFI_WLANAP +cd OPENWIFI_WLANAP +git clone https://github.com/routerarchitects/ra-openwifi-wlan-ap.git +git checkout -b release/v3.1.0 +./build.sh x64_vm +``` + +### 2. After the build completes, Set paths for image preparation +Set environment variables for source and destination paths: +```bash +ROOT=~/WORKSPACE/OPENWIFI_WLANAP/ra-openwifi-wlan-ap/openwrt/build_dir/target-x86_64_musl/root-x86 +DEST=~/OLG-scrumpad/ucentral-client/rootfs/ +``` +### 3. Create the necessary directory structure in the destination +```bash +mkdir -p "$DEST"/{bin,sbin,usr/bin,usr/sbin,usr/share,lib,usr/lib,etc/ucentral,lib/config,lib/functions} +``` + +### 4. Copy required files for uCentral Client image +```bash +cp -a "$ROOT"/usr/sbin/ucentral "$DEST"/usr/sbin/ +cp -a "$ROOT"/etc/group "$DEST"/etc/ +cp -a "$ROOT"/etc/passwd "$DEST"/etc/ +cp -a "$ROOT"/sbin/ubusd "$DEST"/sbin/ +cp -a "$ROOT"/bin/ubus "$DEST"/bin/ +cp -a "$ROOT"/usr/bin/curl "$DEST"/usr/bin/ +``` + +### 5. Add BusyBox and symlinks for common applets +```bash +cp -a "$ROOT"/bin/busybox "$DEST"/bin/ +( cd "$DEST/bin" && ln -sf busybox sh && ln -sf busybox ash ) +for a in ls ps ifconfig ping ip cat grep cut mkdir rm cp mv ln touch \ + mount umount basename readlink vi date uname echo sleep dmesg logger flock; do + ln -sf busybox "$DEST/bin/$a" +done +# If BusyBox lacked a given applet, copy real ones if present: +[ -f "$ROOT/usr/bin/logger" ] && cp -a "$ROOT/usr/bin/logger" "$DEST/usr/bin/" +[ -f "$ROOT/usr/bin/flock" ] && cp -a "$ROOT/usr/bin/flock" "$DEST/usr/bin/" +``` + +### 6. Copy uCentral’s ucode scripts +```bash +cp -a "$ROOT"/usr/share/ucentral "$DEST"/usr/share/ 2>/dev/null || true +cp -a "$ROOT"/usr/bin/ucode "$DEST"/usr/bin/ 2>/dev/null || true +cp -a "$ROOT"/usr/lib/ucode "$DEST"/usr/lib/ 2>/dev/null || true +``` + +### 7. Copy all libraries +```bash +cp -a "$ROOT"/lib/* "$DEST"/lib/ +cp -a "$ROOT"/usr/lib "$DEST"/usr/ +``` + +### 8. Make executables runnable +```bash +chmod +x "$DEST"/bin/busybox \ + "$DEST"/usr/sbin/ucentral \ + "$DEST"/usr/bin/ucode 2>/dev/null || true +``` + +### 9. Build the Docker Image +Once the rootfs/ directory is prepared, use the Dockerfile inside ucentral-client/ to build the container image. +Typically you will run: +```bash +cd ucentral-client +docker build -t ucentral-client:latest . +``` diff --git a/ucentral-client/rootfs/bin/ash b/ucentral-client/rootfs/bin/ash new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/ash @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/basename b/ucentral-client/rootfs/bin/basename new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/basename @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/busybox b/ucentral-client/rootfs/bin/busybox new file mode 100755 index 0000000..af234ba Binary files /dev/null and b/ucentral-client/rootfs/bin/busybox differ diff --git a/ucentral-client/rootfs/bin/cat b/ucentral-client/rootfs/bin/cat new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/cat @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/cp b/ucentral-client/rootfs/bin/cp new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/cp @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/cut b/ucentral-client/rootfs/bin/cut new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/cut @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/date b/ucentral-client/rootfs/bin/date new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/date @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/dmesg b/ucentral-client/rootfs/bin/dmesg new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/dmesg @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/echo b/ucentral-client/rootfs/bin/echo new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/echo @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/flock b/ucentral-client/rootfs/bin/flock new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/flock @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/grep b/ucentral-client/rootfs/bin/grep new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/grep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/ifconfig b/ucentral-client/rootfs/bin/ifconfig new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/ifconfig @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/ip b/ucentral-client/rootfs/bin/ip new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/ip @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/ln b/ucentral-client/rootfs/bin/ln new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/ln @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/logger b/ucentral-client/rootfs/bin/logger new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/logger @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/ls b/ucentral-client/rootfs/bin/ls new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/ls @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/mkdir b/ucentral-client/rootfs/bin/mkdir new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/mkdir @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/mount b/ucentral-client/rootfs/bin/mount new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/mount @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/mv b/ucentral-client/rootfs/bin/mv new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/mv @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/ping b/ucentral-client/rootfs/bin/ping new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/ping @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/ps b/ucentral-client/rootfs/bin/ps new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/ps @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/readlink b/ucentral-client/rootfs/bin/readlink new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/readlink @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/rm b/ucentral-client/rootfs/bin/rm new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/rm @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/sh b/ucentral-client/rootfs/bin/sh new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/sh @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/sleep b/ucentral-client/rootfs/bin/sleep new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/sleep @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/touch b/ucentral-client/rootfs/bin/touch new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/touch @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/ubus b/ucentral-client/rootfs/bin/ubus new file mode 100755 index 0000000..3c376b7 Binary files /dev/null and b/ucentral-client/rootfs/bin/ubus differ diff --git a/ucentral-client/rootfs/bin/umount b/ucentral-client/rootfs/bin/umount new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/umount @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/uname b/ucentral-client/rootfs/bin/uname new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/uname @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/bin/vi b/ucentral-client/rootfs/bin/vi new file mode 120000 index 0000000..c3fa810 --- /dev/null +++ b/ucentral-client/rootfs/bin/vi @@ -0,0 +1 @@ +busybox \ No newline at end of file diff --git a/ucentral-client/rootfs/etc/group b/ucentral-client/rootfs/etc/group new file mode 100644 index 0000000..e817e20 --- /dev/null +++ b/ucentral-client/rootfs/etc/group @@ -0,0 +1,16 @@ +root:x:0: +daemon:x:1: +adm:x:4: +mail:x:8: +dialout:x:20: +audio:x:29: +www-data:x:33: +ftp:x:55: +users:x:100: +network:x:101:network +nogroup:x:65534: +ntp:x:123:ntp +dnsmasq:x:453:dnsmasq +lldp:x:129:lldp +logd:x:514:logd +ubus:x:81:ubus diff --git a/ucentral-client/rootfs/etc/passwd b/ucentral-client/rootfs/etc/passwd new file mode 100644 index 0000000..41e7289 --- /dev/null +++ b/ucentral-client/rootfs/etc/passwd @@ -0,0 +1,10 @@ +root:x:0:0:root:/root:/bin/ash +daemon:*:1:1:daemon:/var:/bin/false +ftp:*:55:55:ftp:/home/ftp:/bin/false +network:*:101:101:network:/var:/bin/false +nobody:*:65534:65534:nobody:/var:/bin/false +ntp:x:123:123:ntp:/var/run/ntp:/bin/false +dnsmasq:x:453:453:dnsmasq:/var/run/dnsmasq:/bin/false +lldp:x:121:129:lldp:/var/run/lldp:/bin/false +logd:x:514:514:logd:/var/run/logd:/bin/false +ubus:x:81:81:ubus:/var/run/ubus:/bin/false diff --git a/ucentral-client/rootfs/lib/bpf/bridger-bpf.o b/ucentral-client/rootfs/lib/bpf/bridger-bpf.o new file mode 100644 index 0000000..d229ffa Binary files /dev/null and b/ucentral-client/rootfs/lib/bpf/bridger-bpf.o differ diff --git a/ucentral-client/rootfs/lib/bpf/mss.o b/ucentral-client/rootfs/lib/bpf/mss.o new file mode 100644 index 0000000..429a463 Binary files /dev/null and b/ucentral-client/rootfs/lib/bpf/mss.o differ diff --git a/ucentral-client/rootfs/lib/bpf/qosify-bpf.o b/ucentral-client/rootfs/lib/bpf/qosify-bpf.o new file mode 100644 index 0000000..c7b3a82 Binary files /dev/null and b/ucentral-client/rootfs/lib/bpf/qosify-bpf.o differ diff --git a/ucentral-client/rootfs/lib/bpf/spotfilter-bpf.o b/ucentral-client/rootfs/lib/bpf/spotfilter-bpf.o new file mode 100644 index 0000000..b7523bb Binary files /dev/null and b/ucentral-client/rootfs/lib/bpf/spotfilter-bpf.o differ diff --git a/ucentral-client/rootfs/lib/bpf/udevstats.o b/ucentral-client/rootfs/lib/bpf/udevstats.o new file mode 100644 index 0000000..ead486e Binary files /dev/null and b/ucentral-client/rootfs/lib/bpf/udevstats.o differ diff --git a/ucentral-client/rootfs/lib/config/uci.sh b/ucentral-client/rootfs/lib/config/uci.sh new file mode 100644 index 0000000..6ebfb73 --- /dev/null +++ b/ucentral-client/rootfs/lib/config/uci.sh @@ -0,0 +1,163 @@ +# Shell script compatibility wrappers for /sbin/uci +# +# Copyright (C) 2008-2010 OpenWrt.org +# Copyright (C) 2008 Felix Fietkau +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +CONFIG_APPEND= +uci_load() { + local PACKAGE="$1" + local DATA + local RET + local VAR + + _C=0 + if [ -z "$CONFIG_APPEND" ]; then + for VAR in $CONFIG_LIST_STATE; do + export ${NO_EXPORT:+-n} CONFIG_${VAR}= + export ${NO_EXPORT:+-n} CONFIG_${VAR}_LENGTH= + done + export ${NO_EXPORT:+-n} CONFIG_LIST_STATE= + export ${NO_EXPORT:+-n} CONFIG_SECTIONS= + export ${NO_EXPORT:+-n} CONFIG_NUM_SECTIONS=0 + export ${NO_EXPORT:+-n} CONFIG_SECTION= + fi + + DATA="$(/sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} ${LOAD_STATE:+-P /var/state} -S -n export "$PACKAGE" 2>/dev/null)" + RET="$?" + [ "$RET" != 0 -o -z "$DATA" ] || eval "$DATA" + unset DATA + + ${CONFIG_SECTION:+config_cb} + return "$RET" +} + +uci_set_default() { + local PACKAGE="$1" + /sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} -q show "$PACKAGE" > /dev/null && return 0 + /sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} import "$PACKAGE" + /sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} commit "$PACKAGE" +} + +uci_revert_state() { + local PACKAGE="$1" + local CONFIG="$2" + local OPTION="$3" + + /sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} -P /var/state revert "$PACKAGE${CONFIG:+.$CONFIG}${OPTION:+.$OPTION}" +} + +uci_set_state() { + local PACKAGE="$1" + local CONFIG="$2" + local OPTION="$3" + local VALUE="$4" + + [ "$#" = 4 ] || return 0 + /sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} -P /var/state set "$PACKAGE.$CONFIG${OPTION:+.$OPTION}=$VALUE" +} + +uci_toggle_state() { + uci_revert_state "$1" "$2" "$3" + uci_set_state "$1" "$2" "$3" "$4" +} + +uci_set() { + local PACKAGE="$1" + local CONFIG="$2" + local OPTION="$3" + local VALUE="$4" + + /sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} set "$PACKAGE.$CONFIG.$OPTION=$VALUE" +} + +uci_add_list() { + local PACKAGE="$1" + local CONFIG="$2" + local OPTION="$3" + local VALUE="$4" + + /sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} add_list "$PACKAGE.$CONFIG.$OPTION=$VALUE" +} + +uci_get_state() { + uci_get "$1" "$2" "$3" "$4" "/var/state" +} + +uci_get() { + local PACKAGE="$1" + local CONFIG="$2" + local OPTION="$3" + local DEFAULT="$4" + local STATE="$5" + + /sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} ${STATE:+-P $STATE} -q get "$PACKAGE${CONFIG:+.$CONFIG}${OPTION:+.$OPTION}" + RET="$?" + [ "$RET" -ne 0 ] && [ -n "$DEFAULT" ] && echo "$DEFAULT" + return "$RET" +} + +uci_add() { + local PACKAGE="$1" + local TYPE="$2" + local CONFIG="$3" + + if [ -z "$CONFIG" ]; then + export ${NO_EXPORT:+-n} CONFIG_SECTION="$(/sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} add "$PACKAGE" "$TYPE")" + else + /sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} set "$PACKAGE.$CONFIG=$TYPE" + export ${NO_EXPORT:+-n} CONFIG_SECTION="$CONFIG" + fi +} + +uci_rename() { + local PACKAGE="$1" + local CONFIG="$2" + local OPTION="$3" + local VALUE="$4" + + /sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} rename "$PACKAGE.$CONFIG${VALUE:+.$OPTION}=${VALUE:-$OPTION}" +} + +uci_remove() { + local PACKAGE="$1" + local CONFIG="$2" + local OPTION="$3" + + /sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} del "$PACKAGE.$CONFIG${OPTION:+.$OPTION}" +} + +uci_remove_list() { + local PACKAGE="$1" + local CONFIG="$2" + local OPTION="$3" + local VALUE="$4" + + /sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} del_list "$PACKAGE.$CONFIG.$OPTION=$VALUE" +} + +uci_revert() { + local PACKAGE="$1" + local CONFIG="$2" + local OPTION="$3" + + /sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} revert "$PACKAGE${CONFIG:+.$CONFIG}${OPTION:+.$OPTION}" +} + +uci_commit() { + local PACKAGE="$1" + /sbin/uci ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} commit $PACKAGE +} diff --git a/ucentral-client/rootfs/lib/firmware/bnx2/bnx2-mips-06-6.2.3.fw b/ucentral-client/rootfs/lib/firmware/bnx2/bnx2-mips-06-6.2.3.fw new file mode 100644 index 0000000..7e9e54b Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/bnx2/bnx2-mips-06-6.2.3.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/bnx2/bnx2-mips-09-6.2.1b.fw b/ucentral-client/rootfs/lib/firmware/bnx2/bnx2-mips-09-6.2.1b.fw new file mode 100644 index 0000000..8bd1e79 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/bnx2/bnx2-mips-09-6.2.1b.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/bnx2/bnx2-rv2p-06-6.0.15.fw b/ucentral-client/rootfs/lib/firmware/bnx2/bnx2-rv2p-06-6.0.15.fw new file mode 100644 index 0000000..4d756e1 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/bnx2/bnx2-rv2p-06-6.0.15.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/bnx2/bnx2-rv2p-09-6.0.17.fw b/ucentral-client/rootfs/lib/firmware/bnx2/bnx2-rv2p-09-6.0.17.fw new file mode 100644 index 0000000..6693299 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/bnx2/bnx2-rv2p-09-6.0.17.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw b/ucentral-client/rootfs/lib/firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw new file mode 100644 index 0000000..e5738ce Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/regulatory.db b/ucentral-client/rootfs/lib/firmware/regulatory.db new file mode 100644 index 0000000..af9a39f Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/regulatory.db differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8105e-1.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8105e-1.fw new file mode 100644 index 0000000..4c2cbd0 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8105e-1.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8106e-1.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8106e-1.fw new file mode 100644 index 0000000..85694cb Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8106e-1.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8106e-2.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8106e-2.fw new file mode 100644 index 0000000..ac04275 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8106e-2.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8107e-1.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8107e-1.fw new file mode 100644 index 0000000..c071c2f Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8107e-1.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8107e-2.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8107e-2.fw new file mode 100644 index 0000000..76fc054 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8107e-2.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8125a-3.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8125a-3.fw new file mode 100644 index 0000000..fac6352 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8125a-3.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8125b-1.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8125b-1.fw new file mode 100644 index 0000000..90191ab Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8125b-1.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8125b-2.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8125b-2.fw new file mode 100644 index 0000000..dc753b5 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8125b-2.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168d-1.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168d-1.fw new file mode 100644 index 0000000..99e002d Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168d-1.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168d-2.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168d-2.fw new file mode 100644 index 0000000..7022ab0 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168d-2.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168e-1.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168e-1.fw new file mode 100644 index 0000000..d203bd5 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168e-1.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168e-2.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168e-2.fw new file mode 100644 index 0000000..7ea5984 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168e-2.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168e-3.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168e-3.fw new file mode 100644 index 0000000..0f888a3 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168e-3.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168f-1.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168f-1.fw new file mode 100644 index 0000000..bf78831 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168f-1.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168f-2.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168f-2.fw new file mode 100644 index 0000000..c342492 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168f-2.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168fp-3.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168fp-3.fw new file mode 100644 index 0000000..cc70384 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168fp-3.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168g-1.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168g-1.fw new file mode 100644 index 0000000..2c628b0 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168g-1.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168g-2.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168g-2.fw new file mode 100644 index 0000000..944d44e Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168g-2.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168g-3.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168g-3.fw new file mode 100644 index 0000000..0c97d7e Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168g-3.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168h-1.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168h-1.fw new file mode 100644 index 0000000..296813a Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168h-1.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168h-2.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168h-2.fw new file mode 100644 index 0000000..df92848 Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8168h-2.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8402-1.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8402-1.fw new file mode 100644 index 0000000..82fa35d Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8402-1.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8411-1.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8411-1.fw new file mode 100644 index 0000000..72772db Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8411-1.fw differ diff --git a/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8411-2.fw b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8411-2.fw new file mode 100644 index 0000000..e3789fe Binary files /dev/null and b/ucentral-client/rootfs/lib/firmware/rtl_nic/rtl8411-2.fw differ diff --git a/ucentral-client/rootfs/lib/functions.sh b/ucentral-client/rootfs/lib/functions.sh new file mode 100644 index 0000000..87e2ede --- /dev/null +++ b/ucentral-client/rootfs/lib/functions.sh @@ -0,0 +1,449 @@ +# Copyright (C) 2006-2014 OpenWrt.org +# Copyright (C) 2006 Fokus Fraunhofer +# Copyright (C) 2010 Vertical Communications + + +debug () { + ${DEBUG:-:} "$@" +} + +# newline +N=" +" + +_C=0 +NO_EXPORT=1 +LOAD_STATE=1 +LIST_SEP=" " + +# xor multiple hex values of the same length +xor() { + local val + local ret="0x$1" + local retlen=${#1} + + shift + while [ -n "$1" ]; do + val="0x$1" + ret=$((ret ^ val)) + shift + done + + printf "%0${retlen}x" "$ret" +} + +find_mmc_part() { + local DEVNAME PARTNAME + if grep -q "$1" /proc/mtd; then + echo "" && return 0 + fi + + for DEVNAME in /sys/block/mmcblk*/mmcblk*p*; do + PARTNAME=$(grep PARTNAME ${DEVNAME}/uevent | cut -f2 -d'=') + [ "$PARTNAME" = "$1" ] && echo "/dev/$(basename $DEVNAME)" && return 0 + done +} + + +append() { + local var="$1" + local value="$2" + local sep="${3:- }" + + eval "export ${NO_EXPORT:+-n} -- \"$var=\${$var:+\${$var}\${value:+\$sep}}\$value\"" +} + +list_contains() { + local var="$1" + local str="$2" + local val + + eval "val=\" \${$var} \"" + [ "${val%% $str *}" != "$val" ] +} + +config_load() { + [ -n "$IPKG_INSTROOT" ] && return 0 + uci_load "$@" +} + +reset_cb() { + config_cb() { return 0; } + option_cb() { return 0; } + list_cb() { return 0; } +} +reset_cb + +package() { + return 0 +} + +config () { + local cfgtype="$1" + local name="$2" + + export ${NO_EXPORT:+-n} CONFIG_NUM_SECTIONS=$((CONFIG_NUM_SECTIONS + 1)) + name="${name:-cfg$CONFIG_NUM_SECTIONS}" + append CONFIG_SECTIONS "$name" + export ${NO_EXPORT:+-n} CONFIG_SECTION="$name" + config_set "$CONFIG_SECTION" "TYPE" "${cfgtype}" + [ -n "$NO_CALLBACK" ] || config_cb "$cfgtype" "$name" +} + +option () { + local varname="$1"; shift + local value="$*" + + config_set "$CONFIG_SECTION" "${varname}" "${value}" + [ -n "$NO_CALLBACK" ] || option_cb "$varname" "$*" +} + +list() { + local varname="$1"; shift + local value="$*" + local len + + config_get len "$CONFIG_SECTION" "${varname}_LENGTH" 0 + [ $len = 0 ] && append CONFIG_LIST_STATE "${CONFIG_SECTION}_${varname}" + len=$((len + 1)) + config_set "$CONFIG_SECTION" "${varname}_ITEM$len" "$value" + config_set "$CONFIG_SECTION" "${varname}_LENGTH" "$len" + append "CONFIG_${CONFIG_SECTION}_${varname}" "$value" "$LIST_SEP" + [ -n "$NO_CALLBACK" ] || list_cb "$varname" "$*" +} + +config_unset() { + config_set "$1" "$2" "" +} + +# config_get