diff --git a/README.md b/README.md index 8c1cb34..6c81ce4 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,12 @@ cd antsdr-fw-patch sh patch.sh ant ``` + for linux 7.09 and vivado 2025.2, Infos: `patch/ant-2026/Readme.md` + + ```sh + sh patch.sh ant-2026 + ``` + 2. ant e200 ```sh diff --git a/patch.sh b/patch.sh index 7b5becd..88418ce 100644 --- a/patch.sh +++ b/patch.sh @@ -1,6 +1,7 @@ target=$1 cp ./patch/*v0.39-v1.patch ./plutosdr-fw/hdl +cp ./patch/${target}/*hdl.patch ./plutosdr-fw/hdl cp ./patch/${target}/*linux.patch ./plutosdr-fw/linux cp ./patch/${target}/*buildroot.patch ./plutosdr-fw/buildroot cp ./patch/${target}/*scripts.patch ./plutosdr-fw/ diff --git a/patch/ant-2026/0001-add-support-buildroot.patch b/patch/ant-2026/0001-add-support-buildroot.patch new file mode 100644 index 0000000..1ec63a8 --- /dev/null +++ b/patch/ant-2026/0001-add-support-buildroot.patch @@ -0,0 +1,9490 @@ +From 23f3b78d19411fa1b0643f8bfd09b2a1aeb57666 Mon Sep 17 00:00:00 2001 +From: mrzhuzhe <466648706@qq.com> +Date: Wed, 15 Jul 2026 14:32:45 +0800 +Subject: [PATCH] add-support-buildroot + +--- + board/ant/S10mdev | 24 + + board/ant/S15watchdog | 21 + + board/ant/S20urandom | 29 + + board/ant/S21misc | 36 + + board/ant/S23udc | 175 ++++ + board/ant/S40network | 149 ++++ + board/ant/S41network | 30 + + board/ant/S45msd | 75 ++ + board/ant/S98autostart | 21 + + board/ant/automounter.sh | 87 ++ + board/ant/busybox-1.25.0.config | 1135 ++++++++++++++++++++++++ + board/ant/device_config | 15 + + board/ant/device_format_jffs2 | 17 + + board/ant/device_passwd | 11 + + board/ant/device_persistent_keys | 21 + + board/ant/device_reboot | 32 + + board/ant/dropbrear_localoptions.h | 1 + + board/ant/fw_env.config | 2 + + board/ant/genimage-msd.cfg | 20 + + board/ant/ifupdown.sh | 12 + + board/ant/index.html | 372 ++++++++ + board/ant/input-event-daemon.conf | 12 + + board/ant/mdev.conf | 7 + + board/ant/motd | 9 + + board/ant/msd/.gitignore | 2 + + board/ant/msd/LICENSE | 339 +++++++ + board/ant/msd/img/ADI_Logo_AWP.png | Bin 0 -> 12437 bytes + board/ant/msd/img/GNURadio_logo.png | Bin 0 -> 11379 bytes + board/ant/msd/img/PlutoSDR.png | Bin 0 -> 105306 bytes + board/ant/msd/img/SDR-Sharp.png | Bin 0 -> 11417 bytes + board/ant/msd/img/download.png | Bin 0 -> 2801 bytes + board/ant/msd/img/ez.png | Bin 0 -> 1657 bytes + board/ant/msd/img/favicon.ico | Bin 0 -> 318 bytes + board/ant/msd/img/fb.png | Bin 0 -> 495 bytes + board/ant/msd/img/gp.png | Bin 0 -> 1257 bytes + board/ant/msd/img/ig.png | Bin 0 -> 700 bytes + board/ant/msd/img/li.png | Bin 0 -> 536 bytes + board/ant/msd/img/mathworks_logo.png | Bin 0 -> 10032 bytes + board/ant/msd/img/osc128.png | Bin 0 -> 2622 bytes + board/ant/msd/img/prof_blue.png | Bin 0 -> 20451 bytes + board/ant/msd/img/sdrangel.png | Bin 0 -> 6669 bytes + board/ant/msd/img/ss.png | Bin 0 -> 1794 bytes + board/ant/msd/img/style.css | 164 ++++ + board/ant/msd/img/sw.png | Bin 0 -> 785 bytes + board/ant/msd/img/tw.png | Bin 0 -> 849 bytes + board/ant/msd/img/version.js | 278 ++++++ + board/ant/msd/img/yk.png | Bin 0 -> 888 bytes + board/ant/msd/img/yt.png | Bin 0 -> 653 bytes + board/ant/post-build.sh | 93 ++ + board/ant/test_ensm_pinctrl.sh | 130 +++ + board/ant/udc_handle_suspend.sh | 34 + + board/ant/update.sh | 278 ++++++ + board/ant/update_frm.sh | 49 + + board/ant/update_from_github.sh | 58 ++ + board/ant/wpa_supplicant/action_wpa.sh | 50 ++ + board/ant/wpa_supplicant/functions.sh | 1006 +++++++++++++++++++++ + board/ant/wpa_supplicant/ifupdown.sh | 172 ++++ + configs/zynq_ant_defconfig | 64 ++ + package/m4/m4.hash | 2 +- + package/m4/m4.mk | 2 +- + 60 files changed, 5032 insertions(+), 2 deletions(-) + create mode 100644 board/ant/S10mdev + create mode 100644 board/ant/S15watchdog + create mode 100644 board/ant/S20urandom + create mode 100644 board/ant/S21misc + create mode 100644 board/ant/S23udc + create mode 100644 board/ant/S40network + create mode 100644 board/ant/S41network + create mode 100644 board/ant/S45msd + create mode 100644 board/ant/S98autostart + create mode 100644 board/ant/automounter.sh + create mode 100644 board/ant/busybox-1.25.0.config + create mode 100644 board/ant/device_config + create mode 100644 board/ant/device_format_jffs2 + create mode 100644 board/ant/device_passwd + create mode 100644 board/ant/device_persistent_keys + create mode 100644 board/ant/device_reboot + create mode 100644 board/ant/dropbrear_localoptions.h + create mode 100644 board/ant/fw_env.config + create mode 100644 board/ant/genimage-msd.cfg + create mode 100644 board/ant/ifupdown.sh + create mode 100644 board/ant/index.html + create mode 100644 board/ant/input-event-daemon.conf + create mode 100644 board/ant/mdev.conf + create mode 100644 board/ant/motd + create mode 100644 board/ant/msd/.gitignore + create mode 100644 board/ant/msd/LICENSE + create mode 100644 board/ant/msd/img/ADI_Logo_AWP.png + create mode 100644 board/ant/msd/img/GNURadio_logo.png + create mode 100644 board/ant/msd/img/PlutoSDR.png + create mode 100644 board/ant/msd/img/SDR-Sharp.png + create mode 100644 board/ant/msd/img/download.png + create mode 100644 board/ant/msd/img/ez.png + create mode 100644 board/ant/msd/img/favicon.ico + create mode 100644 board/ant/msd/img/fb.png + create mode 100644 board/ant/msd/img/gp.png + create mode 100644 board/ant/msd/img/ig.png + create mode 100644 board/ant/msd/img/li.png + create mode 100644 board/ant/msd/img/mathworks_logo.png + create mode 100644 board/ant/msd/img/osc128.png + create mode 100644 board/ant/msd/img/prof_blue.png + create mode 100644 board/ant/msd/img/sdrangel.png + create mode 100644 board/ant/msd/img/ss.png + create mode 100644 board/ant/msd/img/style.css + create mode 100644 board/ant/msd/img/sw.png + create mode 100644 board/ant/msd/img/tw.png + create mode 100644 board/ant/msd/img/version.js + create mode 100644 board/ant/msd/img/yk.png + create mode 100644 board/ant/msd/img/yt.png + create mode 100755 board/ant/post-build.sh + create mode 100755 board/ant/test_ensm_pinctrl.sh + create mode 100644 board/ant/udc_handle_suspend.sh + create mode 100644 board/ant/update.sh + create mode 100644 board/ant/update_frm.sh + create mode 100644 board/ant/update_from_github.sh + create mode 100644 board/ant/wpa_supplicant/action_wpa.sh + create mode 100644 board/ant/wpa_supplicant/functions.sh + create mode 100644 board/ant/wpa_supplicant/ifupdown.sh + create mode 100644 configs/zynq_ant_defconfig + +diff --git a/board/ant/S10mdev b/board/ant/S10mdev +new file mode 100644 +index 0000000000..aea3d7d9ea +--- /dev/null ++++ b/board/ant/S10mdev +@@ -0,0 +1,24 @@ ++#!/bin/sh ++# ++# Start mdev.... ++# ++ ++case "$1" in ++ start) ++ echo -n "Starting mdev: " ++ echo /sbin/mdev >/proc/sys/kernel/hotplug ++ /sbin/mdev -s ++ # coldplug modules ++ # find /sys/ -name modalias -print0 | xargs -0 sort -u -z | xargs -0 modprobe -abq ++ [ $? = 0 ] && echo "OK" || echo "FAIL" ++ ;; ++ stop) ++ ;; ++ restart|reload) ++ ;; ++ *) ++ echo "Usage: $0 {start|stop|restart}" ++ exit 1 ++esac ++ ++exit $? +diff --git a/board/ant/S15watchdog b/board/ant/S15watchdog +new file mode 100644 +index 0000000000..fdb9860917 +--- /dev/null ++++ b/board/ant/S15watchdog +@@ -0,0 +1,21 @@ ++#!/bin/sh ++# ++# Start watchdog ++# ++ ++case "$1" in ++ start) ++ echo -n "Starting watchdog: " ++ watchdog -t 5 -T 10 /dev/watchdog ++ [ $? = 0 ] && echo "OK" || echo "FAIL" ++ ;; ++ stop) ++ ;; ++ restart|reload) ++ ;; ++ *) ++ echo "Usage: $0 {start|stop|restart}" ++ exit 1 ++esac ++ ++exit $? +diff --git a/board/ant/S20urandom b/board/ant/S20urandom +new file mode 100644 +index 0000000000..94551f87ca +--- /dev/null ++++ b/board/ant/S20urandom +@@ -0,0 +1,29 @@ ++#! /bin/sh ++# ++# urandom This script saves the random seed between reboots. ++# It is called from the boot, halt and reboot scripts. ++# ++# Version: @(#)urandom 1.33 22-Jun-1998 miquels@cistron.nl ++# ++ ++[ -c /dev/urandom ] || exit 0 ++#. /etc/default/rcS ++ ++case "$1" in ++ start|"") ++ echo -n "Starting initializing random number generator: " ++ ++ # Load and then save 512 bytes, ++ # which is the size of the entropy pool ++ ++ dmesg | sha512sum > /dev/urandom ++ [ $? = 0 ] && echo "OK" || echo "FAIL" ++ ;; ++ stop) ++ ++ ;; ++ *) ++ echo "Usage: urandom {start|stop}" >&2 ++ exit 1 ++ ;; ++esac +diff --git a/board/ant/S21misc b/board/ant/S21misc +new file mode 100644 +index 0000000000..28c5739ffe +--- /dev/null ++++ b/board/ant/S21misc +@@ -0,0 +1,36 @@ ++#! /bin/sh ++ ++xo_correction() { ++ ++ XO_ENV_VAL=`fw_printenv -n xo_correction 2> /dev/null` ++ if [ $? -eq 0 ]; then ++ ++ for dev in /sys/bus/iio/devices/*; do ++ [ `cat ${dev}/name` == "ad9361-phy" ] && DEV_NAME=`basename ${dev}` ++ done ++ ++ echo ${XO_ENV_VAL} > /sys/bus/iio/devices/${DEV_NAME}/xo_correction ++ fi ++} ++ ++ ++case "$1" in ++ start|"") ++ echo -n "Starting miscellaneous setup: " ++ # Restore saved password and Dropbear keys ++ [[ -d /mnt/jffs2/etc ]] && cd /mnt/jffs2/etc && md5sum -s -c password.md5 && cp passwd shadow group /etc ++ [[ -d /mnt/jffs2/etc/dropbear ]] && cd /mnt/jffs2/etc/dropbear && md5sum -s -c keys.md5 && cp dropbear* /etc/dropbear/ ++ [[ -d /mnt/jffs2/root/.ssh ]] && cd /mnt/jffs2/root/.ssh && md5sum -s -c keys.md5 && mkdir /root/.ssh && cp authorized_keys /root/.ssh ++ xo_correction ++ MAX_BS=`fw_printenv -n iio_max_block_size 2> /dev/null || echo 67108864` ++ echo ${MAX_BS} > /sys/module/industrialio_buffer_dma/parameters/max_block_size ++ [ $? = 0 ] && echo "OK" || echo "FAIL" ++ ;; ++ stop) ++ ++ ;; ++ *) ++ echo "Usage: $0 {start|stop}" >&2 ++ exit 1 ++ ;; ++esac +diff --git a/board/ant/S23udc b/board/ant/S23udc +new file mode 100644 +index 0000000000..202347f001 +--- /dev/null ++++ b/board/ant/S23udc +@@ -0,0 +1,175 @@ ++#!/bin/sh ++ ++source /etc/device_config ++ ++CONFIGFS=/sys/kernel/config/usb_gadget ++GADGET=$CONFIGFS/composite_gadget ++IIOD_OPTS="-D -n $ENDPOINTS -F /dev/iio_ffs" ++UDC_HANDLE_SUSPEND=`fw_printenv -n udc_handle_suspend 2> /dev/null || echo 0` ++USB_ETH_MODE=`fw_printenv -n usb_ethernet_mode 2> /dev/null || echo rndis` ++ ++if [ "$USB_ETH_MODE" == "ncm" ] ++then ++ USB_NET_FUNCTION=ncm.usb0 ++elif [ "$USB_ETH_MODE" == "ecm" ] ++then ++ USB_NET_FUNCTION=ecm.usb0 ++else ++ USB_NET_FUNCTION=rndis.0 ++fi ++ ++create_iiod_context_attributes() { ++ model=$1 ++ serial=$2 ++ model_variant=$3 ++ ++ if [ "$USBPID" == "0xb673" ]; then ++ # ADALM-PLUTO ++ for dev in /sys/bus/iio/devices/*; do ++ [ `cat ${dev}/name` == "ad9361-phy" ] && DEV_NAME=`basename ${dev}` ++ done ++ ++ AD936X_TYPE=$(cat /sys/bus/iio/devices/${DEV_NAME}/of_node/compatible | sed 's/adi,//g') ++ AD936X_TYPE_CAP=$(echo $AD936X_TYPE | tr a-z A-Z) ++ MODEL=$(echo $model | sed "s/AD936[34]/$AD936X_TYPE_CAP/") ++ else ++ MODEL=$model ++ fi ++ ++ echo "[Context Attributes]" > /etc/libiio.ini ++ echo "hw_model=$MODEL" >> /etc/libiio.ini ++ ++ if [ "$model_variant" == "n25q256a" ] ++ then ++ echo "hw_model_variant=0" >> /etc/libiio.ini ++ else ++ echo "hw_model_variant=1" >> /etc/libiio.ini ++ fi ++ ++ echo -e "hw_serial=$serial\n" >> /etc/libiio.ini ++ echo "fw_version=`grep device-fw /opt/VERSIONS | cut -d ' ' -f 2`" >> /etc/libiio.ini ++ if [ "$USBPID" == "0xb673" ]; then ++ echo ad9361-phy,xo_correction=`cat /sys/bus/iio/devices/${DEV_NAME}/xo_correction` >> /etc/libiio.ini ++ echo ad9361-phy,model=$AD936X_TYPE >> /etc/libiio.ini ++ ++ elif [ "$USBPID" == "0xb672" ]; then ++ cat /opt/${CALIBFILENAME} | grep ^cal,* >> /etc/libiio.ini ++ cat /opt/${CALIBFILENAME_TEMP_LUT} | grep ^cal,* >> /etc/libiio.ini ++ fi ++} ++ ++case "$1" in ++ start) ++ echo -n "Starting UDC Gadgets: " ++ mount configfs -t configfs /sys/kernel/config 2> /dev/null ++ ++ mkdir -p $GADGET ++ ++ model=`cat /sys/firmware/devicetree/base/model | tr / -` ++ model_variant=`dmesg | grep m25p80 | grep Kbytes | cut -d ' ' -f 3` ++ ++ serial=`dmesg | grep SPI-NOR-UniqueID` ++ serial=${serial#*SPI-NOR-UniqueID } ++ ++ create_iiod_context_attributes "$model" "$serial" "$model_variant" ++ ++ echo $serial > /etc/serial ++ sha1=`echo $serial | sha1sum` ++ ++ echo 0x0456 > $GADGET/idVendor ++ echo $USBPID > $GADGET/idProduct ++ ++ mkdir -p $GADGET/strings/0x409 ++ echo "Analog Devices Inc." > $GADGET/strings/0x409/manufacturer ++ echo $PRODUCT > $GADGET/strings/0x409/product ++ echo $serial > $GADGET/strings/0x409/serialnumber ++ ++ mkdir -p $GADGET/functions/ffs.iio_ffs ++ mkdir -p $GADGET/functions/acm.usb0 ++ mkdir -p $GADGET/functions/$USB_NET_FUNCTION ++ mkdir -p $GADGET/functions/mass_storage.0 ++ ++# echo /opt/vfat.img > $GADGET/functions/mass_storage.0/lun.0/file ++ echo Y > $GADGET/functions/mass_storage.0/lun.0/removable ++ ++ host_addr=`echo -n 00:E0:22; echo $sha1 | dd bs=1 count=6 2>/dev/null | hexdump -v -e '/1 ":%01c""%c"'` ++ dev_addr=`echo -n 00:05:F7; echo $sha1 | dd bs=1 count=6 skip=6 2>/dev/null | hexdump -v -e '/1 ":%01c""%c"'` ++ ++ echo $host_addr > $GADGET/functions/$USB_NET_FUNCTION/host_addr ++ echo $dev_addr > $GADGET/functions/$USB_NET_FUNCTION/dev_addr ++ ++ mkdir -p $GADGET/configs/c.1 ++ mkdir -p $GADGET/configs/c.1/strings/0x409 ++ echo "RNDIS/MSD/ACM/IIOUSBD" > $GADGET/configs/c.1/strings/0x409/configuration ++ ++ # In case the M2k is powered via the Power USB, advertise low power on the DATA USB ++ if [ "$TARGET" == "m2k" ]; then ++ echo 905 > /sys/class/gpio/export ++ [ "`cat /sys/class/gpio/gpio905/value`" == "1" ] && echo 4 > $GADGET/configs/c.1/MaxPower || echo 500 > $GADGET/configs/c.1/MaxPower ++ else ++ echo 500 > $GADGET/configs/c.1/MaxPower ++ fi ++ ++ ln -s $GADGET/functions/$USB_NET_FUNCTION $GADGET/configs/c.1 ++ ln -s $GADGET/functions/mass_storage.0 $GADGET/configs/c.1 ++ ln -s $GADGET/functions/acm.usb0 $GADGET/configs/c.1 ++ ln -s $GADGET/functions/ffs.iio_ffs $GADGET/configs/c.1/ffs.iio_ffs ++ ++ mkdir -p /dev/iio_ffs ++ mount iio_ffs -t functionfs /dev/iio_ffs 2> /dev/null ++ ++ start-stop-daemon -S -b -q -m -p /var/run/iiod.pid -x /usr/sbin/iiod -- $IIOD_OPTS ++ sleep 0.2 ++ ++ echo ci_hdrc.0 > $GADGET/UDC ++ ++ [ $? = 0 ] && echo "OK" || echo "FAIL" ++ ++ if [ "$UDC_HANDLE_SUSPEND" == "1" ]; then ++ start-stop-daemon -S -b -q -m -p /var/run/udc_handle_suspend.pid -x /sbin/udc_handle_suspend.sh ++ fi ++ ++ ;; ++ stop) ++ echo "Stopping UDC Gadgets" ++ ++ if [ "$UDC_HANDLE_SUSPEND" == "1" ]; then ++ start-stop-daemon -K -q -p /var/run/udc_handle_suspend.pid 2>/dev/null ++ fi ++ ++ echo "" > $GADGET/UDC ++ start-stop-daemon -K -q -p /var/run/iiod.pid 2>/dev/null ++ ++ rm $GADGET/configs/c.1/$USB_NET_FUNCTION ++ rm $GADGET/configs/c.1/mass_storage.0 ++ rm $GADGET/configs/c.1/acm.usb0 ++ rm $GADGET/configs/c.1/ffs.iio_ffs ++ ++ rmdir $GADGET/strings/0x409 ++ rmdir $GADGET/configs/c.1/strings/0x409 ++ rmdir $GADGET/configs/c.1 ++ ++ rmdir $GADGET/functions/ffs.iio_ffs ++ #rmdir $GADGET/functions/acm.usb0 ++ rmdir $GADGET/functions/$USB_NET_FUNCTION ++ rmdir $GADGET/functions/mass_storage.0 ++ ++ rmdir $GADGET 2> /dev/null ++ ++ ;; ++ restart|reload) ++ "$0" stop ++ "$0" start ++ ;; ++ *) ++ echo "Usage: $0 {start|stop|restart}" ++ exit 1 ++esac ++ ++exit $? ++ ++ ++ ++ ++ ++ +diff --git a/board/ant/S40network b/board/ant/S40network +new file mode 100644 +index 0000000000..4082ab1982 +--- /dev/null ++++ b/board/ant/S40network +@@ -0,0 +1,149 @@ ++#!/bin/sh ++# ++# Start the network.... ++# ++ ++# Debian ifupdown needs the /run/network lock directory ++ ++source /etc/device_config ++ ++create_system_files () { ++ ++ UDHCPD_CONF=/etc/udhcpd.conf ++ CONF=/opt/config.txt ++ IFAC=/etc/network/interfaces ++ ++ HOSTNAME=`fw_printenv -n hostname 2> /dev/null || cat /etc/hostname` ++ echo $HOSTNAME > /etc/hostname ++ ++ IPADDR=`fw_printenv -n ipaddr 2> /dev/null || echo 192.168.2.1` ++ IPADDR_HOST=`fw_printenv -n ipaddr_host 2> /dev/null || echo 192.168.2.10` ++ NETMASK=`fw_printenv -n netmask 2> /dev/null || echo 255.255.255.0` ++ ++ ETH_IPADDR=`fw_printenv -n ipaddr_eth 2> /dev/null || echo 192.168.1.10` ++ ETH_NETMASK=`fw_printenv -n netmask_eth 2> /dev/null || echo 255.255.255.0` ++ ETH_GATEWAY=`fw_printenv -n eth_gateway 2> /dev/null || echo 192.168.1.1` ++ ++ WLAN_SSID=`fw_printenv -n ssid_wlan 2> /dev/null` ++ WLAN_PWD=`fw_printenv -n pwd_wlan 2> /dev/null` ++ WLAN_IPADDR=`fw_printenv -n ipaddr_wlan 2> /dev/null` ++ ++ XO_CORRECTION=`fw_printenv -n xo_correction 2> /dev/null` ++ UDC_HANDLE_SUSPEND=`fw_printenv -n udc_handle_suspend 2> /dev/null || echo 0` ++ USB_ETH_MODE=`fw_printenv -n usb_ethernet_mode 2> /dev/null || echo rndis` ++ ++ ### /etc/udhcpd.conf ### ++ echo "start $IPADDR_HOST" > $UDHCPD_CONF ++ echo "end $IPADDR_HOST" >> $UDHCPD_CONF ++ echo "interface usb0" >> $UDHCPD_CONF ++ echo "option subnet $NETMASK" >> $UDHCPD_CONF ++ ++ ### /etc/network/interfaces ### ++ echo -e "auto lo\n""iface lo inet loopback\n" > $IFAC ++ echo -e "auto usb0\n""iface usb0 inet static" >> $IFAC ++ echo -e "\taddress $IPADDR\n""\tnetmask $NETMASK\n" >> $IFAC ++ echo -e "auto usb1\n""iface usb1 inet dhcp\n" >> $IFAC ++ ++ echo -e "auto eth0" >> $IFAC ++ if [ -n "$ETH_IPADDR" ] ++ then ++ echo -e "iface eth0 inet static" >> $IFAC ++ echo -e "\taddress $ETH_IPADDR\n""\tnetmask $ETH_NETMASK\n" >> $IFAC ++ else ++ echo -e "iface eth0 inet dhcp\n" >> $IFAC ++ fi ++ ++ ### /etc/wpa.conf ### ++ if [ -n "$WLAN_SSID" ] ++ then ++ if [ -n "$WLAN_PWD" ] ++ then ++ wpa_passphrase "$WLAN_SSID" "$WLAN_PWD" > /etc/wpa.conf ++ else ++ echo "network={" > /etc/wpa.conf ++ echo " ssid=\"$WLAN_SSID\"" >> /etc/wpa.conf ++ echo " key_mgmt=NONE" >> /etc/wpa.conf ++ echo "}" >> /etc/wpa.conf ++ fi ++ ++ echo -e "auto wlan0" >> $IFAC ++ ++ if [ -n "$WLAN_IPADDR" ] ++ then ++ echo -e "iface wlan0 inet static" >> $IFAC ++ echo -e "\taddress $WLAN_IPADDR\n""\tnetmask 255.255.255.0" >> $IFAC ++ else ++ echo -e "iface wlan0 inet dhcp" >> $IFAC ++ fi ++ echo -e "\twpa-conf /etc/wpa.conf\n" >> $IFAC ++ fi ++ ++ ### /opt/config.txt ### ++ echo "# $(cat /sys/firmware/devicetree/base/model | tr / -)"$'\r' > $CONF ++ echo "# Device Configuration File"$'\r' >> $CONF ++ echo "# 1. Open with an Editor"$'\r' >> $CONF ++ echo "# 2. Edit this file"$'\r' >> $CONF ++ echo "# 3. Save this file on the device USB drive"$'\r' >> $CONF ++ echo "# 4. Eject the device USB Drive"$'\r' >> $CONF ++ echo "# Doc: https://wiki.analog.com/university/tools/pluto/users/customizing"$'\r' >> $CONF ++ echo ""$'\r'>> $CONF ++ echo "[USB_ETHERNET]"$'\r' >> $CONF ++ echo "hostname = $HOSTNAME"$'\r' >> $CONF ++ echo "ipaddr = $IPADDR"$'\r' >> $CONF ++ echo "ipaddr_host = $IPADDR_HOST"$'\r' >> $CONF ++ echo "netmask = $NETMASK"$'\r' >> $CONF ++ echo ""$'\r'>> $CONF ++ echo "[WLAN]"$'\r' >> $CONF ++ echo "ssid_wlan = $WLAN_SSID"$'\r' >> $CONF ++ echo "pwd_wlan = $WLAN_PWD"$'\r' >> $CONF ++ echo "ipaddr_wlan = $WLAN_IPADDR"$'\r' >> $CONF ++ echo ""$'\r'>> $CONF ++ echo "[NETWORK]"$'\r' >> $CONF ++ echo "ipaddr_eth = $ETH_IPADDR"$'\r' >> $CONF ++ echo "netmask_eth = $ETH_NETMASK"$'\r' >> $CONF ++ echo ""$'\r'>> $CONF ++ echo "[SYSTEM]"$'\r' >> $CONF ++ echo "xo_correction = $XO_CORRECTION"$'\r' >> $CONF ++ echo "udc_handle_suspend = $UDC_HANDLE_SUSPEND"$'\r' >> $CONF ++ echo "# USB Communication Device Class Compatibility Mode [rndis|ncm|ecm]"$'\r' >> $CONF ++ echo "usb_ethernet_mode = $USB_ETH_MODE"$'\r' >> $CONF ++ echo ""$'\r'>> $CONF ++ echo "[ACTIONS]"$'\r' >> $CONF ++ echo "diagnostic_report = 0"$'\r' >> $CONF ++ echo "dfu = 0"$'\r' >> $CONF ++ echo "reset = 0"$'\r' >> $CONF ++ echo "calibrate = 0"$'\r' >> $CONF ++ echo ""$'\r'>> $CONF ++ ++ ### /www/index.html ### ++ ++ sed -i -e "s/#IP#/$IPADDR/g" -e "s/#HOSTIP#/$IPADDR_HOST/g" -e "s/#NETMASK#/$NETMASK/g" -e "s/#HOSTNAME#/$HOSTNAME/g" -e "s/#SSID_WLAN#/$WLAN_SSID/g" -e "s/#IPADDR_WLAN#/$WLAN_IPADDR/g" -e "s/#IPADDR_ETH#/$ETH_IPADDR/g" -e "s/#NETMASK_ETH#/$ETH_NETMASK/g" /www/index.html ++ ++ } ++ ++mkdir -p /run/network ++ ++case "$1" in ++ start) ++ create_system_files ++ printf "Starting network: " ++ /bin/hostname -F /etc/hostname ++ /sbin/ifup -a 2>&1 | logger ++ [ $? = 0 ] && echo "OK" || echo "FAIL" ++ ;; ++ stop) ++ printf "Stopping network: " ++ /sbin/ifdown -a ++ [ $? = 0 ] && echo "OK" || echo "FAIL" ++ ;; ++ restart|reload) ++ "$0" stop ++ "$0" start ++ ;; ++ *) ++ echo "Usage: $0 {start|stop|restart}" ++ exit 1 ++esac ++ ++exit $? ++ +diff --git a/board/ant/S41network b/board/ant/S41network +new file mode 100644 +index 0000000000..78433a60d7 +--- /dev/null ++++ b/board/ant/S41network +@@ -0,0 +1,30 @@ ++#!/bin/sh ++# Server-side demuxing by default ++ ++source /etc/device_config ++ ++case "$1" in ++ start) ++ echo -n "Starting dhcpd Daemon & httpd Server: " ++ start-stop-daemon -S -q -p /var/run/udhcpd.pid -x /usr/sbin/udhcpd -- $UDHCPD_CONF ++ httpd -h /www ++ [ $? = 0 ] && echo "OK" || echo "FAIL" ++ ;; ++ ++ stop) ++ echo -n "Stopping dhcpd Daemon & httpd Server: " ++ killall -7 httpd ++ start-stop-daemon -K -q -p /var/run/udhcpd.pid 2>/dev/null ++ [ $? = 0 ] && echo "OK" || echo "FAIL" ++ ;; ++ ++ restart) ++ $0 stop ++ sleep 1 ++ $0 start ++ ;; ++ ++ *) ++ echo "Usage: $0 {start|stop|restart}" ++ exit 1 ++esac +diff --git a/board/ant/S45msd b/board/ant/S45msd +new file mode 100644 +index 0000000000..8b73beeb52 +--- /dev/null ++++ b/board/ant/S45msd +@@ -0,0 +1,75 @@ ++#!/bin/sh ++# Server-side demuxing by default ++ ++source /etc/device_config ++ ++CONF=/opt/config.txt ++file=/sys/kernel/config/usb_gadget/composite_gadget/functions/mass_storage.0/lun.0/file ++img=/opt/vfat.img ++ ++patch_html_page() { ++ LINUX=`uname -a | tr / - | tr '\n' ';' ; echo -n $(nproc) "core(s)"` ++ MODEL=`cat /etc/libiio.ini | grep hw_model= | cut -d '=' -f 2` ++ SERIAL=`cat /sys/kernel/config/usb_gadget/composite_gadget/strings/0x409/serialnumber` ++ MACHOST=`cat /sys/kernel/config/usb_gadget/composite_gadget/functions/*/host_addr` ++ MAC=`cat /sys/kernel/config/usb_gadget/composite_gadget/functions/*/dev_addr` ++ IIO=`iio_info -V 2>/dev/null | tail -1` ++ BUILD=`grep device-fw /opt/VERSIONS | cut -d ' ' -f 2` ++ FPGA=`grep hdl /opt/VERSIONS | cut -d ' ' -f 2` ++ ROOTFS=`grep buildroot /opt/VERSIONS | cut -d ' ' -f 2` ++ UBOOT=`cat /proc/cmdline | tr "=" "\n" | grep "U-Boot"` ++ USB_ETH_MODE=`fw_printenv -n usb_ethernet_mode 2> /dev/null || echo rndis` ++ if [ "$USB_ETH_MODE" == "ncm" ]; then ++ NETWORKUSB="Communications Device Class – Network Control Model (CDC-NCM)" ++ elif [ "$USB_ETH_MODE" == "ecm" ]; then ++ NETWORKUSB="Communications Device Class – Ethernet Control Module (CDC-EMC)" ++ else ++ NETWORKUSB="Remote Network Driver Interface Specification (RNDIS)" ++ fi ++ ++ sed -i -e "s/#LINUX#/$LINUX/g" -e "s/#MODEL#/$MODEL/g" -e "s/#SERIAL#/$SERIAL/g" -e "s/#MACHOST#/$MACHOST/g" -e "s/#MAC#/$MAC/g" -e "s/#IIO#/$IIO/g" -e "s/#BUILD#/$BUILD/g" -e "s/#FPGA#/$FPGA/g" -e "s/#ROOTFS#/$ROOTFS/g" -e "s/#UBOOT#/$UBOOT/g" -e "s/#NETWORKUSB#/$NETWORKUSB/g" $1 ++ ++ sed -i -e "s/#BUILD#/$BUILD/g" $2 /etc/motd ++} ++ ++ ++case "$1" in ++ start) ++ echo -n "Starting MSD Daemon: " ++ patch_html_page /www/index.html /www/img/version.js ++ losetup /dev/loop7 $img -o 512 ++ mount /dev/loop7 /mnt/msd ++ ++ if [ "$TARGET" == "m2k" ]; then ++ cp /opt/${CALIBFILENAME} /mnt ++ md5sum /mnt/msd/${CALIBFILENAME} > /opt/${CALIBFILENAME}.md5 ++ fi ++ ++ cp $CONF /mnt/msd ++ md5sum /mnt/msd/config.txt > /opt/config.md5 ++ ++ cp -a /www/* /mnt/msd ++ mv /mnt/msd/index.html /mnt/msd/info.html ++ umount /mnt/msd ++ echo $img > $file ++ ++ start-stop-daemon -S -b -q -m -p /var/run/update.pid -x /bin/sh -- /sbin/update.sh ++ [ $? = 0 ] && echo "OK" || echo "FAIL" ++ ;; ++ ++ stop) ++ echo -n "Stopping MSD Daemon: " ++ start-stop-daemon -K -q -p /var/run/update.pid 2>/dev/null ++ [ $? = 0 ] && echo "OK" || echo "FAIL" ++ ;; ++ ++ restart) ++ $0 stop ++ sleep 1 ++ $0 start ++ ;; ++ ++ *) ++ echo "Usage: $0 {start|stop|restart}" ++ exit 1 ++esac +diff --git a/board/ant/S98autostart b/board/ant/S98autostart +new file mode 100644 +index 0000000000..9515ccc682 +--- /dev/null ++++ b/board/ant/S98autostart +@@ -0,0 +1,21 @@ ++#!/bin/sh ++# ++# Script to check for and run user-supplied /mnt/jffs2/autorun.sh ++# ++ ++case "$1" in ++ start) ++ if test -f /mnt/jffs2/autorun.sh; then ++ source /mnt/jffs2/autorun.sh ++ fi ++ ;; ++ stop) ++ ;; ++ restart|reload) ++ ;; ++ *) ++ echo "Usage: $0 {start|stop|restart}" ++ exit 1 ++esac ++ ++exit $? +diff --git a/board/ant/automounter.sh b/board/ant/automounter.sh +new file mode 100644 +index 0000000000..0d093a53fc +--- /dev/null ++++ b/board/ant/automounter.sh +@@ -0,0 +1,87 @@ ++#!/bin/sh ++ ++destdir=/media ++ ++my_umount() ++{ ++ if grep -qs "^/dev/$1 " /proc/mounts ; then ++ umount "${destdir}/$1"; ++ echo heartbeat > /sys/class/leds/led0:green/trigger ++ fi ++ ++ [ -d "${destdir}/$1" ] && rmdir "${destdir}/$1" ++} ++ ++do_mount() ++{ ++ local errno ++ local err ++ ++ errno=0 ++ for I in $(seq 5) ++ do ++ err=$(mount -t auto -o sync "/dev/$1" "${destdir}/$1" 2>&1) ++ errno=$? ++ ++ # If we get a "Device or resource busy" error, retry again in a ++ # little bit, otherwise just return immediately. ++ if ! echo "${err}" | grep -q "Device or resource busy" ++ then ++ return ${errno} ++ fi ++ ++ sleep .25 ++ done ++ ++ echo "${err}" >&2 ++ return ${errno} ++} ++ ++my_mount() ++{ ++ mkdir -p "${destdir}/$1" || exit 1 ++ ++ if ! do_mount $1; then ++ # failed to mount, clean up mountpoint ++ rmdir "${destdir}/$1" ++ exit 1 ++ fi ++ ++ echo default-on > /sys/class/leds/led0:green/trigger ++ ++ for i in ${destdir}/$1/runme??* ;do ++ ++ # Ignore dangling symlinks (if any). ++ [ ! -f "$i" ] && continue ++ ++ case "$i" in ++ *.sh) ++ # Source shell script for speed. ++ ( ++ trap - INT QUIT TSTP ++ set start ++ . $i ++ ) ++ ;; ++ *) ++ # No sh extension, so fork subprocess. ++ $i start ++ ;; ++ esac ++ done ++} ++ ++case "${ACTION}" in ++add|"") ++ my_umount ${MDEV} ++ my_mount ${MDEV} ++ ;; ++remove) ++ my_umount ${MDEV} ++ ;; ++remove_all) ++ for i in ${destdir}/??* ++ do ++ my_umount $(basename $i) ++ done ++esac +diff --git a/board/ant/busybox-1.25.0.config b/board/ant/busybox-1.25.0.config +new file mode 100644 +index 0000000000..88728cc9f2 +--- /dev/null ++++ b/board/ant/busybox-1.25.0.config +@@ -0,0 +1,1135 @@ ++# ++# Automatically generated make config: don't edit ++# Busybox version: 1.27.2 ++# Mon Apr 23 16:47:13 2018 ++# ++CONFIG_HAVE_DOT_CONFIG=y ++ ++# ++# Busybox Settings ++# ++CONFIG_DESKTOP=y ++# CONFIG_EXTRA_COMPAT is not set ++# CONFIG_FEDORA_COMPAT is not set ++CONFIG_INCLUDE_SUSv2=y ++# CONFIG_USE_PORTABLE_CODE is not set ++CONFIG_SHOW_USAGE=y ++CONFIG_FEATURE_VERBOSE_USAGE=y ++# CONFIG_FEATURE_COMPRESS_USAGE is not set ++CONFIG_BUSYBOX=y ++CONFIG_FEATURE_INSTALLER=y ++# CONFIG_INSTALL_NO_USR is not set ++# CONFIG_PAM is not set ++CONFIG_LONG_OPTS=y ++CONFIG_FEATURE_DEVPTS=y ++CONFIG_FEATURE_CLEAN_UP=y ++CONFIG_FEATURE_UTMP=y ++CONFIG_FEATURE_WTMP=y ++CONFIG_FEATURE_PIDFILE=y ++CONFIG_PID_FILE_PATH="/var/run" ++CONFIG_FEATURE_SUID=y ++# CONFIG_FEATURE_SUID_CONFIG is not set ++# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set ++# CONFIG_SELINUX is not set ++# CONFIG_FEATURE_PREFER_APPLETS is not set ++CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" ++CONFIG_FEATURE_SYSLOG=y ++# CONFIG_FEATURE_HAVE_RPC is not set ++CONFIG_PLATFORM_LINUX=y ++ ++# ++# Build Options ++# ++# CONFIG_STATIC is not set ++# CONFIG_PIE is not set ++# CONFIG_NOMMU is not set ++# CONFIG_BUILD_LIBBUSYBOX is not set ++# CONFIG_FEATURE_INDIVIDUAL is not set ++# CONFIG_FEATURE_SHARED_BUSYBOX is not set ++CONFIG_LFS=y ++CONFIG_CROSS_COMPILER_PREFIX="" ++CONFIG_SYSROOT="" ++CONFIG_EXTRA_CFLAGS="" ++CONFIG_EXTRA_LDFLAGS="" ++CONFIG_EXTRA_LDLIBS="" ++ ++# ++# Installation Options ("make install" behavior) ++# ++CONFIG_INSTALL_APPLET_SYMLINKS=y ++# CONFIG_INSTALL_APPLET_HARDLINKS is not set ++# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set ++# CONFIG_INSTALL_APPLET_DONT is not set ++# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set ++# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set ++# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set ++CONFIG_PREFIX="./_install" ++ ++# ++# Debugging Options ++# ++# CONFIG_DEBUG is not set ++# CONFIG_DEBUG_PESSIMIZE is not set ++# CONFIG_DEBUG_SANITIZE is not set ++# CONFIG_UNIT_TEST is not set ++# CONFIG_WERROR is not set ++CONFIG_NO_DEBUG_LIB=y ++# CONFIG_DMALLOC is not set ++# CONFIG_EFENCE is not set ++ ++# ++# Busybox Library Tuning ++# ++# CONFIG_FEATURE_USE_BSS_TAIL is not set ++CONFIG_FEATURE_RTMINMAX=y ++CONFIG_FEATURE_BUFFERS_USE_MALLOC=y ++# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set ++# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set ++CONFIG_PASSWORD_MINLEN=6 ++CONFIG_MD5_SMALL=1 ++CONFIG_SHA3_SMALL=1 ++# CONFIG_FEATURE_FAST_TOP is not set ++# CONFIG_FEATURE_ETC_NETWORKS is not set ++CONFIG_FEATURE_EDITING=y ++CONFIG_FEATURE_EDITING_MAX_LEN=1024 ++CONFIG_FEATURE_EDITING_VI=y ++CONFIG_FEATURE_EDITING_HISTORY=999 ++CONFIG_FEATURE_EDITING_SAVEHISTORY=y ++# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set ++CONFIG_FEATURE_REVERSE_SEARCH=y ++CONFIG_FEATURE_TAB_COMPLETION=y ++# CONFIG_FEATURE_USERNAME_COMPLETION is not set ++CONFIG_FEATURE_EDITING_FANCY_PROMPT=y ++# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set ++# CONFIG_LOCALE_SUPPORT is not set ++# CONFIG_UNICODE_SUPPORT is not set ++# CONFIG_UNICODE_USING_LOCALE is not set ++# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set ++CONFIG_SUBST_WCHAR=0 ++CONFIG_LAST_SUPPORTED_WCHAR=0 ++# CONFIG_UNICODE_COMBINING_WCHARS is not set ++# CONFIG_UNICODE_WIDE_WCHARS is not set ++# CONFIG_UNICODE_BIDI_SUPPORT is not set ++# CONFIG_UNICODE_NEUTRAL_TABLE is not set ++# CONFIG_UNICODE_PRESERVE_BROKEN is not set ++CONFIG_FEATURE_NON_POSIX_CP=y ++# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set ++CONFIG_FEATURE_USE_SENDFILE=y ++CONFIG_FEATURE_COPYBUF_KB=4 ++CONFIG_FEATURE_SKIP_ROOTFS=y ++CONFIG_MONOTONIC_SYSCALL=y ++CONFIG_IOCTL_HEX2STR_ERROR=y ++CONFIG_FEATURE_HWIB=y ++ ++# ++# Applets ++# ++ ++# ++# Archival Utilities ++# ++# CONFIG_FEATURE_SEAMLESS_XZ is not set ++# CONFIG_FEATURE_SEAMLESS_LZMA is not set ++# CONFIG_FEATURE_SEAMLESS_BZ2 is not set ++# CONFIG_FEATURE_SEAMLESS_GZ is not set ++# CONFIG_FEATURE_SEAMLESS_Z is not set ++CONFIG_AR=y ++# CONFIG_FEATURE_AR_LONG_FILENAMES is not set ++CONFIG_FEATURE_AR_CREATE=y ++# CONFIG_UNCOMPRESS is not set ++CONFIG_GUNZIP=y ++CONFIG_ZCAT=y ++CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y ++CONFIG_BUNZIP2=y ++CONFIG_BZCAT=y ++CONFIG_UNLZMA=y ++CONFIG_LZCAT=y ++CONFIG_LZMA=y ++# CONFIG_FEATURE_LZMA_FAST is not set ++CONFIG_UNXZ=y ++CONFIG_XZCAT=y ++CONFIG_XZ=y ++# CONFIG_BZIP2 is not set ++CONFIG_FEATURE_BZIP2_DECOMPRESS=y ++CONFIG_CPIO=y ++# CONFIG_FEATURE_CPIO_O is not set ++# CONFIG_FEATURE_CPIO_P is not set ++# CONFIG_DPKG is not set ++# CONFIG_DPKG_DEB is not set ++CONFIG_GZIP=y ++# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set ++CONFIG_GZIP_FAST=0 ++# CONFIG_FEATURE_GZIP_LEVELS is not set ++CONFIG_FEATURE_GZIP_DECOMPRESS=y ++# CONFIG_LZOP is not set ++# CONFIG_UNLZOP is not set ++# CONFIG_LZOPCAT is not set ++# CONFIG_LZOP_COMPR_HIGH is not set ++# CONFIG_RPM is not set ++# CONFIG_RPM2CPIO is not set ++CONFIG_TAR=y ++CONFIG_FEATURE_TAR_LONG_OPTIONS=y ++CONFIG_FEATURE_TAR_CREATE=y ++# CONFIG_FEATURE_TAR_AUTODETECT is not set ++CONFIG_FEATURE_TAR_FROM=y ++# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set ++# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set ++CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y ++CONFIG_FEATURE_TAR_TO_COMMAND=y ++# CONFIG_FEATURE_TAR_UNAME_GNAME is not set ++# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set ++# CONFIG_FEATURE_TAR_SELINUX is not set ++CONFIG_UNZIP=y ++CONFIG_FEATURE_UNZIP_CDF=y ++CONFIG_FEATURE_UNZIP_BZIP2=y ++CONFIG_FEATURE_UNZIP_LZMA=y ++CONFIG_FEATURE_UNZIP_XZ=y ++ ++# ++# Coreutils ++# ++CONFIG_BASENAME=y ++CONFIG_CAT=y ++CONFIG_FEATURE_CATV=y ++CONFIG_CHGRP=y ++CONFIG_CHMOD=y ++CONFIG_CHOWN=y ++# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set ++CONFIG_CHROOT=y ++CONFIG_CKSUM=y ++# CONFIG_COMM is not set ++CONFIG_CP=y ++# CONFIG_FEATURE_CP_LONG_OPTIONS is not set ++CONFIG_CUT=y ++CONFIG_DATE=y ++CONFIG_FEATURE_DATE_ISOFMT=y ++CONFIG_FEATURE_DATE_NANO=y ++CONFIG_FEATURE_DATE_COMPAT=y ++CONFIG_DD=y ++CONFIG_FEATURE_DD_SIGNAL_HANDLING=y ++# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set ++CONFIG_FEATURE_DD_IBS_OBS=y ++CONFIG_FEATURE_DD_STATUS=y ++CONFIG_DF=y ++# CONFIG_FEATURE_DF_FANCY is not set ++CONFIG_DIRNAME=y ++CONFIG_DOS2UNIX=y ++CONFIG_UNIX2DOS=y ++CONFIG_DU=y ++CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y ++CONFIG_ECHO=y ++CONFIG_FEATURE_FANCY_ECHO=y ++CONFIG_ENV=y ++# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set ++# CONFIG_EXPAND is not set ++# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set ++# CONFIG_UNEXPAND is not set ++# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set ++CONFIG_EXPR=y ++CONFIG_EXPR_MATH_SUPPORT_64=y ++CONFIG_FACTOR=y ++CONFIG_FALSE=y ++CONFIG_FOLD=y ++# CONFIG_FSYNC is not set ++CONFIG_HEAD=y ++CONFIG_FEATURE_FANCY_HEAD=y ++CONFIG_HOSTID=y ++CONFIG_ID=y ++# CONFIG_GROUPS is not set ++CONFIG_INSTALL=y ++CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y ++CONFIG_LINK=y ++CONFIG_LN=y ++CONFIG_LOGNAME=y ++CONFIG_LS=y ++CONFIG_FEATURE_LS_FILETYPES=y ++CONFIG_FEATURE_LS_FOLLOWLINKS=y ++CONFIG_FEATURE_LS_RECURSIVE=y ++CONFIG_FEATURE_LS_WIDTH=y ++CONFIG_FEATURE_LS_SORTFILES=y ++CONFIG_FEATURE_LS_TIMESTAMPS=y ++CONFIG_FEATURE_LS_USERNAME=y ++CONFIG_FEATURE_LS_COLOR=y ++CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y ++CONFIG_MD5SUM=y ++CONFIG_SHA1SUM=y ++CONFIG_SHA256SUM=y ++CONFIG_SHA512SUM=y ++CONFIG_SHA3SUM=y ++ ++# ++# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum ++# ++CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y ++CONFIG_MKDIR=y ++CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y ++CONFIG_MKFIFO=y ++CONFIG_MKNOD=y ++CONFIG_MKTEMP=y ++CONFIG_MV=y ++CONFIG_FEATURE_MV_LONG_OPTIONS=y ++CONFIG_NICE=y ++CONFIG_NL=y ++CONFIG_NOHUP=y ++CONFIG_NPROC=y ++CONFIG_OD=y ++CONFIG_PASTE=y ++CONFIG_PRINTENV=y ++CONFIG_PRINTF=y ++CONFIG_PWD=y ++CONFIG_READLINK=y ++CONFIG_FEATURE_READLINK_FOLLOW=y ++CONFIG_REALPATH=y ++CONFIG_RM=y ++CONFIG_RMDIR=y ++# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set ++CONFIG_SEQ=y ++CONFIG_SHRED=y ++# CONFIG_SHUF is not set ++CONFIG_SLEEP=y ++CONFIG_FEATURE_FANCY_SLEEP=y ++CONFIG_FEATURE_FLOAT_SLEEP=y ++CONFIG_SORT=y ++CONFIG_FEATURE_SORT_BIG=y ++# CONFIG_SPLIT is not set ++# CONFIG_FEATURE_SPLIT_FANCY is not set ++# CONFIG_STAT is not set ++# CONFIG_FEATURE_STAT_FORMAT is not set ++# CONFIG_FEATURE_STAT_FILESYSTEM is not set ++CONFIG_STTY=y ++# CONFIG_SUM is not set ++CONFIG_SYNC=y ++# CONFIG_FEATURE_SYNC_FANCY is not set ++# CONFIG_TAC is not set ++CONFIG_TAIL=y ++CONFIG_FEATURE_FANCY_TAIL=y ++CONFIG_TEE=y ++CONFIG_FEATURE_TEE_USE_BLOCK_IO=y ++CONFIG_TEST=y ++CONFIG_TEST1=y ++CONFIG_TEST2=y ++CONFIG_FEATURE_TEST_64=y ++# CONFIG_TIMEOUT is not set ++CONFIG_TOUCH=y ++# CONFIG_FEATURE_TOUCH_NODEREF is not set ++CONFIG_FEATURE_TOUCH_SUSV3=y ++CONFIG_TR=y ++CONFIG_FEATURE_TR_CLASSES=y ++CONFIG_FEATURE_TR_EQUIV=y ++CONFIG_TRUE=y ++CONFIG_TRUNCATE=y ++CONFIG_TTY=y ++CONFIG_UNAME=y ++CONFIG_UNAME_OSNAME="GNU/Linux" ++CONFIG_UNIQ=y ++CONFIG_UNLINK=y ++CONFIG_USLEEP=y ++CONFIG_UUDECODE=y ++# CONFIG_BASE64 is not set ++CONFIG_UUENCODE=y ++CONFIG_WC=y ++# CONFIG_FEATURE_WC_LARGE is not set ++CONFIG_WHO=y ++CONFIG_W=y ++# CONFIG_USERS is not set ++CONFIG_WHOAMI=y ++CONFIG_YES=y ++ ++# ++# Common options ++# ++CONFIG_FEATURE_VERBOSE=y ++ ++# ++# Common options for cp and mv ++# ++CONFIG_FEATURE_PRESERVE_HARDLINKS=y ++ ++# ++# Common options for df, du, ls ++# ++CONFIG_FEATURE_HUMAN_READABLE=y ++ ++# ++# Console Utilities ++# ++CONFIG_CHVT=y ++CONFIG_CLEAR=y ++CONFIG_DEALLOCVT=y ++CONFIG_DUMPKMAP=y ++# CONFIG_FGCONSOLE is not set ++# CONFIG_KBD_MODE is not set ++CONFIG_LOADFONT=y ++# CONFIG_SETFONT is not set ++# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set ++CONFIG_DEFAULT_SETFONT_DIR="" ++ ++# ++# Common options for loadfont and setfont ++# ++CONFIG_FEATURE_LOADFONT_PSF2=y ++CONFIG_FEATURE_LOADFONT_RAW=y ++CONFIG_LOADKMAP=y ++CONFIG_OPENVT=y ++CONFIG_RESET=y ++CONFIG_RESIZE=y ++CONFIG_FEATURE_RESIZE_PRINT=y ++CONFIG_SETCONSOLE=y ++# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set ++CONFIG_SETKEYCODES=y ++CONFIG_SETLOGCONS=y ++# CONFIG_SHOWKEY is not set ++ ++# ++# Debian Utilities ++# ++CONFIG_PIPE_PROGRESS=y ++CONFIG_RUN_PARTS=y ++CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y ++# CONFIG_FEATURE_RUN_PARTS_FANCY is not set ++CONFIG_START_STOP_DAEMON=y ++CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y ++CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y ++CONFIG_WHICH=y ++ ++# ++# Editors ++# ++CONFIG_AWK=y ++# CONFIG_FEATURE_AWK_LIBM is not set ++CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y ++CONFIG_CMP=y ++CONFIG_DIFF=y ++# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set ++CONFIG_FEATURE_DIFF_DIR=y ++# CONFIG_ED is not set ++CONFIG_PATCH=y ++CONFIG_SED=y ++CONFIG_VI=y ++CONFIG_FEATURE_VI_MAX_LEN=4096 ++CONFIG_FEATURE_VI_8BIT=y ++CONFIG_FEATURE_VI_COLON=y ++CONFIG_FEATURE_VI_YANKMARK=y ++CONFIG_FEATURE_VI_SEARCH=y ++# CONFIG_FEATURE_VI_REGEX_SEARCH is not set ++CONFIG_FEATURE_VI_USE_SIGNALS=y ++CONFIG_FEATURE_VI_DOT_CMD=y ++CONFIG_FEATURE_VI_READONLY=y ++CONFIG_FEATURE_VI_SETOPTS=y ++CONFIG_FEATURE_VI_SET=y ++CONFIG_FEATURE_VI_WIN_RESIZE=y ++CONFIG_FEATURE_VI_ASK_TERMINAL=y ++CONFIG_FEATURE_VI_UNDO=y ++CONFIG_FEATURE_VI_UNDO_QUEUE=y ++CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 ++CONFIG_FEATURE_ALLOW_EXEC=y ++ ++# ++# Finding Utilities ++# ++CONFIG_FIND=y ++CONFIG_FEATURE_FIND_PRINT0=y ++CONFIG_FEATURE_FIND_MTIME=y ++CONFIG_FEATURE_FIND_MMIN=y ++CONFIG_FEATURE_FIND_PERM=y ++CONFIG_FEATURE_FIND_TYPE=y ++CONFIG_FEATURE_FIND_XDEV=y ++CONFIG_FEATURE_FIND_MAXDEPTH=y ++CONFIG_FEATURE_FIND_NEWER=y ++# CONFIG_FEATURE_FIND_INUM is not set ++CONFIG_FEATURE_FIND_EXEC=y ++CONFIG_FEATURE_FIND_EXEC_PLUS=y ++CONFIG_FEATURE_FIND_USER=y ++CONFIG_FEATURE_FIND_GROUP=y ++CONFIG_FEATURE_FIND_NOT=y ++CONFIG_FEATURE_FIND_DEPTH=y ++CONFIG_FEATURE_FIND_PAREN=y ++CONFIG_FEATURE_FIND_SIZE=y ++CONFIG_FEATURE_FIND_PRUNE=y ++# CONFIG_FEATURE_FIND_DELETE is not set ++CONFIG_FEATURE_FIND_PATH=y ++CONFIG_FEATURE_FIND_REGEX=y ++# CONFIG_FEATURE_FIND_CONTEXT is not set ++# CONFIG_FEATURE_FIND_LINKS is not set ++CONFIG_GREP=y ++CONFIG_EGREP=y ++CONFIG_FGREP=y ++CONFIG_FEATURE_GREP_CONTEXT=y ++CONFIG_XARGS=y ++# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set ++CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y ++CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y ++CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y ++CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y ++ ++# ++# Init Utilities ++# ++# CONFIG_BOOTCHARTD is not set ++# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set ++# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set ++CONFIG_HALT=y ++CONFIG_POWEROFF=y ++CONFIG_REBOOT=y ++# CONFIG_FEATURE_CALL_TELINIT is not set ++CONFIG_TELINIT_PATH="" ++CONFIG_INIT=y ++CONFIG_LINUXRC=y ++CONFIG_FEATURE_USE_INITTAB=y ++CONFIG_FEATURE_KILL_REMOVED=y ++CONFIG_FEATURE_KILL_DELAY=0 ++CONFIG_FEATURE_INIT_SCTTY=y ++CONFIG_FEATURE_INIT_SYSLOG=y ++CONFIG_FEATURE_INIT_QUIET=y ++# CONFIG_FEATURE_INIT_COREDUMPS is not set ++CONFIG_INIT_TERMINAL_TYPE="linux" ++CONFIG_FEATURE_INIT_MODIFY_CMDLINE=y ++ ++# ++# Login/Password Management Utilities ++# ++CONFIG_FEATURE_SHADOWPASSWDS=y ++# CONFIG_USE_BB_PWD_GRP is not set ++# CONFIG_USE_BB_SHADOW is not set ++CONFIG_USE_BB_CRYPT=y ++# CONFIG_USE_BB_CRYPT_SHA is not set ++# CONFIG_ADD_SHELL is not set ++# CONFIG_REMOVE_SHELL is not set ++CONFIG_ADDGROUP=y ++# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set ++# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set ++CONFIG_ADDUSER=y ++# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set ++# CONFIG_FEATURE_CHECK_NAMES is not set ++CONFIG_LAST_ID=60000 ++CONFIG_FIRST_SYSTEM_ID=100 ++CONFIG_LAST_SYSTEM_ID=999 ++# CONFIG_CHPASSWD is not set ++CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="md5" ++# CONFIG_CRYPTPW is not set ++CONFIG_MKPASSWD=y ++CONFIG_DELUSER=y ++CONFIG_DELGROUP=y ++# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set ++CONFIG_GETTY=y ++CONFIG_LOGIN=y ++# CONFIG_LOGIN_SESSION_AS_CHILD is not set ++# CONFIG_LOGIN_SCRIPTS is not set ++CONFIG_FEATURE_NOLOGIN=y ++CONFIG_FEATURE_SECURETTY=y ++CONFIG_PASSWD=y ++CONFIG_FEATURE_PASSWD_WEAK_CHECK=y ++CONFIG_SU=y ++CONFIG_FEATURE_SU_SYSLOG=y ++CONFIG_FEATURE_SU_CHECKS_SHELLS=y ++# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set ++CONFIG_SULOGIN=y ++CONFIG_VLOCK=y ++ ++# ++# Linux Ext2 FS Progs ++# ++CONFIG_CHATTR=y ++CONFIG_FSCK=y ++CONFIG_LSATTR=y ++# CONFIG_TUNE2FS is not set ++ ++# ++# Linux Module Utilities ++# ++# CONFIG_MODPROBE_SMALL is not set ++# CONFIG_DEPMOD is not set ++CONFIG_INSMOD=y ++CONFIG_LSMOD=y ++CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y ++# CONFIG_MODINFO is not set ++CONFIG_MODPROBE=y ++# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set ++CONFIG_RMMOD=y ++ ++# ++# Options common to multiple modutils ++# ++CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y ++# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set ++# CONFIG_FEATURE_2_4_MODULES is not set ++# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set ++# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set ++# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set ++# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set ++# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set ++CONFIG_FEATURE_CHECK_TAINTED_MODULE=y ++# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set ++CONFIG_FEATURE_MODUTILS_ALIAS=y ++CONFIG_FEATURE_MODUTILS_SYMBOLS=y ++CONFIG_DEFAULT_MODULES_DIR="/lib/modules" ++CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" ++ ++# ++# Linux System Utilities ++# ++# CONFIG_ACPID is not set ++# CONFIG_FEATURE_ACPID_COMPAT is not set ++# CONFIG_BLKDISCARD is not set ++CONFIG_BLKID=y ++# CONFIG_FEATURE_BLKID_TYPE is not set ++# CONFIG_BLOCKDEV is not set ++# CONFIG_CAL is not set ++CONFIG_CHRT=y ++CONFIG_DMESG=y ++CONFIG_FEATURE_DMESG_PRETTY=y ++CONFIG_EJECT=y ++# CONFIG_FEATURE_EJECT_SCSI is not set ++CONFIG_FALLOCATE=y ++# CONFIG_FATATTR is not set ++CONFIG_FBSET=y ++CONFIG_FEATURE_FBSET_FANCY=y ++CONFIG_FEATURE_FBSET_READMODE=y ++CONFIG_FDFORMAT=y ++CONFIG_FDISK=y ++# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set ++CONFIG_FEATURE_FDISK_WRITABLE=y ++# CONFIG_FEATURE_AIX_LABEL is not set ++# CONFIG_FEATURE_SGI_LABEL is not set ++# CONFIG_FEATURE_SUN_LABEL is not set ++# CONFIG_FEATURE_OSF_LABEL is not set ++CONFIG_FEATURE_GPT_LABEL=y ++CONFIG_FEATURE_FDISK_ADVANCED=y ++# CONFIG_FINDFS is not set ++CONFIG_FLOCK=y ++CONFIG_FDFLUSH=y ++CONFIG_FREERAMDISK=y ++# CONFIG_FSCK_MINIX is not set ++CONFIG_FSFREEZE=y ++CONFIG_FSTRIM=y ++CONFIG_GETOPT=y ++CONFIG_FEATURE_GETOPT_LONG=y ++CONFIG_HEXDUMP=y ++# CONFIG_FEATURE_HEXDUMP_REVERSE is not set ++# CONFIG_HD is not set ++CONFIG_XXD=y ++CONFIG_HWCLOCK=y ++CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y ++CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y ++# CONFIG_IONICE is not set ++CONFIG_IPCRM=y ++CONFIG_IPCS=y ++CONFIG_LAST=y ++# CONFIG_FEATURE_LAST_FANCY is not set ++CONFIG_LOSETUP=y ++CONFIG_LSPCI=y ++CONFIG_LSUSB=y ++CONFIG_MDEV=y ++CONFIG_FEATURE_MDEV_CONF=y ++CONFIG_FEATURE_MDEV_RENAME=y ++# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set ++CONFIG_FEATURE_MDEV_EXEC=y ++CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y ++CONFIG_MESG=y ++CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y ++CONFIG_MKE2FS=y ++# CONFIG_MKFS_EXT2 is not set ++# CONFIG_MKFS_MINIX is not set ++# CONFIG_FEATURE_MINIX2 is not set ++# CONFIG_MKFS_REISER is not set ++CONFIG_MKDOSFS=y ++CONFIG_MKFS_VFAT=y ++CONFIG_MKSWAP=y ++# CONFIG_FEATURE_MKSWAP_UUID is not set ++CONFIG_MORE=y ++CONFIG_MOUNT=y ++# CONFIG_FEATURE_MOUNT_FAKE is not set ++# CONFIG_FEATURE_MOUNT_VERBOSE is not set ++# CONFIG_FEATURE_MOUNT_HELPERS is not set ++# CONFIG_FEATURE_MOUNT_LABEL is not set ++# CONFIG_FEATURE_MOUNT_NFS is not set ++CONFIG_FEATURE_MOUNT_CIFS=y ++CONFIG_FEATURE_MOUNT_FLAGS=y ++CONFIG_FEATURE_MOUNT_FSTAB=y ++CONFIG_FEATURE_MOUNT_OTHERTAB=y ++CONFIG_MOUNTPOINT=y ++# CONFIG_NSENTER is not set ++# CONFIG_FEATURE_NSENTER_LONG_OPTS is not set ++CONFIG_PIVOT_ROOT=y ++CONFIG_RDATE=y ++# CONFIG_RDEV is not set ++CONFIG_READPROFILE=y ++CONFIG_RENICE=y ++# CONFIG_REV is not set ++# CONFIG_RTCWAKE is not set ++# CONFIG_SCRIPT is not set ++# CONFIG_SCRIPTREPLAY is not set ++CONFIG_SETARCH=y ++CONFIG_LINUX32=y ++CONFIG_LINUX64=y ++CONFIG_SETPRIV=y ++CONFIG_SETSID=y ++CONFIG_SWAPON=y ++# CONFIG_FEATURE_SWAPON_DISCARD is not set ++# CONFIG_FEATURE_SWAPON_PRI is not set ++CONFIG_SWAPOFF=y ++CONFIG_SWITCH_ROOT=y ++# CONFIG_TASKSET is not set ++# CONFIG_FEATURE_TASKSET_FANCY is not set ++CONFIG_UEVENT=y ++CONFIG_UMOUNT=y ++CONFIG_FEATURE_UMOUNT_ALL=y ++# CONFIG_UNSHARE is not set ++# CONFIG_WALL is not set ++ ++# ++# Common options for mount/umount ++# ++CONFIG_FEATURE_MOUNT_LOOP=y ++CONFIG_FEATURE_MOUNT_LOOP_CREATE=y ++# CONFIG_FEATURE_MTAB_SUPPORT is not set ++CONFIG_VOLUMEID=y ++ ++# ++# Filesystem/Volume identification ++# ++# CONFIG_FEATURE_VOLUMEID_BCACHE is not set ++# CONFIG_FEATURE_VOLUMEID_BTRFS is not set ++# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set ++CONFIG_FEATURE_VOLUMEID_EXFAT=y ++CONFIG_FEATURE_VOLUMEID_EXT=y ++CONFIG_FEATURE_VOLUMEID_F2FS=y ++CONFIG_FEATURE_VOLUMEID_FAT=y ++# CONFIG_FEATURE_VOLUMEID_HFS is not set ++# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set ++# CONFIG_FEATURE_VOLUMEID_JFS is not set ++# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set ++# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set ++# CONFIG_FEATURE_VOLUMEID_LUKS is not set ++# CONFIG_FEATURE_VOLUMEID_NILFS is not set ++# CONFIG_FEATURE_VOLUMEID_NTFS is not set ++# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set ++# CONFIG_FEATURE_VOLUMEID_REISERFS is not set ++# CONFIG_FEATURE_VOLUMEID_ROMFS is not set ++# CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set ++# CONFIG_FEATURE_VOLUMEID_SYSV is not set ++CONFIG_FEATURE_VOLUMEID_UBIFS=y ++# CONFIG_FEATURE_VOLUMEID_UDF is not set ++# CONFIG_FEATURE_VOLUMEID_XFS is not set ++ ++# ++# Miscellaneous Utilities ++# ++# CONFIG_ADJTIMEX is not set ++# CONFIG_BBCONFIG is not set ++# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set ++# CONFIG_BEEP is not set ++CONFIG_FEATURE_BEEP_FREQ=0 ++CONFIG_FEATURE_BEEP_LENGTH_MS=0 ++# CONFIG_CHAT is not set ++# CONFIG_FEATURE_CHAT_NOFAIL is not set ++# CONFIG_FEATURE_CHAT_TTY_HIFI is not set ++# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set ++# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set ++# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set ++# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set ++# CONFIG_FEATURE_CHAT_CLR_ABORT is not set ++# CONFIG_CONSPY is not set ++CONFIG_CROND=y ++# CONFIG_FEATURE_CROND_D is not set ++# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set ++CONFIG_FEATURE_CROND_DIR="/var/spool/cron" ++CONFIG_CRONTAB=y ++CONFIG_DC=y ++# CONFIG_FEATURE_DC_LIBM is not set ++# CONFIG_DEVFSD is not set ++# CONFIG_DEVFSD_MODLOAD is not set ++# CONFIG_DEVFSD_FG_NP is not set ++# CONFIG_DEVFSD_VERBOSE is not set ++# CONFIG_FEATURE_DEVFS is not set ++CONFIG_DEVMEM=y ++# CONFIG_FBSPLASH is not set ++# CONFIG_FLASH_ERASEALL is not set ++# CONFIG_FLASH_LOCK is not set ++# CONFIG_FLASH_UNLOCK is not set ++# CONFIG_FLASHCP is not set ++CONFIG_HDPARM=y ++CONFIG_FEATURE_HDPARM_GET_IDENTITY=y ++# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set ++# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set ++# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set ++# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set ++# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set ++CONFIG_I2CGET=y ++CONFIG_I2CSET=y ++CONFIG_I2CDUMP=y ++CONFIG_I2CDETECT=y ++# CONFIG_INOTIFYD is not set ++CONFIG_LESS=y ++CONFIG_FEATURE_LESS_MAXLINES=9999999 ++CONFIG_FEATURE_LESS_BRACKETS=y ++CONFIG_FEATURE_LESS_FLAGS=y ++CONFIG_FEATURE_LESS_TRUNCATE=y ++# CONFIG_FEATURE_LESS_MARKS is not set ++CONFIG_FEATURE_LESS_REGEXP=y ++# CONFIG_FEATURE_LESS_WINCH is not set ++# CONFIG_FEATURE_LESS_ASK_TERMINAL is not set ++# CONFIG_FEATURE_LESS_DASHCMD is not set ++# CONFIG_FEATURE_LESS_LINENUMS is not set ++CONFIG_LSSCSI=y ++CONFIG_MAKEDEVS=y ++# CONFIG_FEATURE_MAKEDEVS_LEAF is not set ++CONFIG_FEATURE_MAKEDEVS_TABLE=y ++# CONFIG_MAN is not set ++CONFIG_MICROCOM=y ++CONFIG_MT=y ++# CONFIG_NANDWRITE is not set ++# CONFIG_NANDDUMP is not set ++CONFIG_PARTPROBE=y ++# CONFIG_RAIDAUTORUN is not set ++# CONFIG_READAHEAD is not set ++# CONFIG_RFKILL is not set ++CONFIG_RUNLEVEL=y ++# CONFIG_RX is not set ++CONFIG_SETSERIAL=y ++CONFIG_STRINGS=y ++CONFIG_TIME=y ++# CONFIG_TTYSIZE is not set ++# CONFIG_UBIATTACH is not set ++# CONFIG_UBIDETACH is not set ++# CONFIG_UBIMKVOL is not set ++# CONFIG_UBIRMVOL is not set ++# CONFIG_UBIRSVOL is not set ++# CONFIG_UBIUPDATEVOL is not set ++CONFIG_UBIRENAME=y ++# CONFIG_VOLNAME is not set ++CONFIG_WATCHDOG=y ++ ++# ++# Networking Utilities ++# ++CONFIG_FEATURE_IPV6=y ++# CONFIG_FEATURE_UNIX_LOCAL is not set ++CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y ++# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set ++CONFIG_ARP=y ++CONFIG_ARPING=y ++# CONFIG_BRCTL is not set ++# CONFIG_FEATURE_BRCTL_FANCY is not set ++# CONFIG_FEATURE_BRCTL_SHOW is not set ++CONFIG_DNSD=y ++CONFIG_ETHER_WAKE=y ++# CONFIG_FTPD is not set ++# CONFIG_FEATURE_FTPD_WRITE is not set ++# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set ++# CONFIG_FEATURE_FTPD_AUTHENTICATION is not set ++# CONFIG_FTPGET is not set ++# CONFIG_FTPPUT is not set ++# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set ++CONFIG_HOSTNAME=y ++CONFIG_DNSDOMAINNAME=y ++CONFIG_HTTPD=y ++CONFIG_FEATURE_HTTPD_RANGES=y ++CONFIG_FEATURE_HTTPD_SETUID=y ++CONFIG_FEATURE_HTTPD_BASIC_AUTH=y ++CONFIG_FEATURE_HTTPD_AUTH_MD5=y ++CONFIG_FEATURE_HTTPD_CGI=y ++CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y ++CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y ++CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y ++CONFIG_FEATURE_HTTPD_ERROR_PAGES=y ++CONFIG_FEATURE_HTTPD_PROXY=y ++CONFIG_FEATURE_HTTPD_GZIP=y ++CONFIG_IFCONFIG=y ++CONFIG_FEATURE_IFCONFIG_STATUS=y ++CONFIG_FEATURE_IFCONFIG_SLIP=y ++CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y ++CONFIG_FEATURE_IFCONFIG_HW=y ++# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set ++# CONFIG_IFENSLAVE is not set ++# CONFIG_IFPLUGD is not set ++CONFIG_IFUP=y ++CONFIG_IFDOWN=y ++CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" ++CONFIG_FEATURE_IFUPDOWN_IP=y ++CONFIG_FEATURE_IFUPDOWN_IPV4=y ++CONFIG_FEATURE_IFUPDOWN_IPV6=y ++CONFIG_FEATURE_IFUPDOWN_MAPPING=y ++# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set ++CONFIG_INETD=y ++CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y ++CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y ++CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y ++CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y ++CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y ++# CONFIG_FEATURE_INETD_RPC is not set ++CONFIG_IP=y ++CONFIG_IPADDR=y ++CONFIG_IPLINK=y ++CONFIG_IPROUTE=y ++CONFIG_IPTUNNEL=y ++CONFIG_IPRULE=y ++CONFIG_IPNEIGH=y ++CONFIG_FEATURE_IP_ADDRESS=y ++CONFIG_FEATURE_IP_LINK=y ++CONFIG_FEATURE_IP_ROUTE=y ++CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2" ++CONFIG_FEATURE_IP_TUNNEL=y ++CONFIG_FEATURE_IP_RULE=y ++CONFIG_FEATURE_IP_NEIGH=y ++# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set ++# CONFIG_IPCALC is not set ++# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set ++# CONFIG_FEATURE_IPCALC_FANCY is not set ++# CONFIG_FAKEIDENTD is not set ++CONFIG_NAMEIF=y ++# CONFIG_FEATURE_NAMEIF_EXTENDED is not set ++# CONFIG_NBDCLIENT is not set ++# CONFIG_NC is not set ++# CONFIG_NC_SERVER is not set ++# CONFIG_NC_EXTRA is not set ++# CONFIG_NC_110_COMPAT is not set ++CONFIG_NETSTAT=y ++# CONFIG_FEATURE_NETSTAT_WIDE is not set ++# CONFIG_FEATURE_NETSTAT_PRG is not set ++CONFIG_NSLOOKUP=y ++# CONFIG_NTPD is not set ++# CONFIG_FEATURE_NTPD_SERVER is not set ++# CONFIG_FEATURE_NTPD_CONF is not set ++CONFIG_PING=y ++# CONFIG_PING6 is not set ++CONFIG_FEATURE_FANCY_PING=y ++# CONFIG_PSCAN is not set ++CONFIG_ROUTE=y ++# CONFIG_SLATTACH is not set ++CONFIG_SSL_CLIENT=y ++# CONFIG_TCPSVD is not set ++# CONFIG_UDPSVD is not set ++CONFIG_TELNET=y ++CONFIG_FEATURE_TELNET_TTYPE=y ++CONFIG_FEATURE_TELNET_AUTOLOGIN=y ++CONFIG_FEATURE_TELNET_WIDTH=y ++# CONFIG_TELNETD is not set ++# CONFIG_FEATURE_TELNETD_STANDALONE is not set ++# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set ++CONFIG_TFTP=y ++# CONFIG_TFTPD is not set ++ ++# ++# Common options for tftp/tftpd ++# ++CONFIG_FEATURE_TFTP_GET=y ++CONFIG_FEATURE_TFTP_PUT=y ++CONFIG_FEATURE_TFTP_BLOCKSIZE=y ++# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set ++# CONFIG_TFTP_DEBUG is not set ++CONFIG_TLS=y ++CONFIG_TRACEROUTE=y ++# CONFIG_TRACEROUTE6 is not set ++# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set ++# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set ++# CONFIG_TUNCTL is not set ++# CONFIG_FEATURE_TUNCTL_UG is not set ++CONFIG_VCONFIG=y ++CONFIG_WGET=y ++CONFIG_FEATURE_WGET_LONG_OPTIONS=y ++CONFIG_FEATURE_WGET_STATUSBAR=y ++CONFIG_FEATURE_WGET_AUTHENTICATION=y ++CONFIG_FEATURE_WGET_TIMEOUT=y ++CONFIG_FEATURE_WGET_HTTPS=y ++# CONFIG_FEATURE_WGET_OPENSSL is not set ++# CONFIG_WHOIS is not set ++# CONFIG_ZCIP is not set ++# CONFIG_UDHCPC6 is not set ++# CONFIG_FEATURE_UDHCPC6_RFC3646 is not set ++# CONFIG_FEATURE_UDHCPC6_RFC4704 is not set ++# CONFIG_FEATURE_UDHCPC6_RFC4833 is not set ++CONFIG_UDHCPD=y ++CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y ++# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set ++CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases" ++CONFIG_DUMPLEASES=y ++CONFIG_DHCPRELAY=y ++CONFIG_UDHCPC=y ++CONFIG_FEATURE_UDHCPC_ARPING=y ++CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y ++CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" ++# CONFIG_FEATURE_UDHCP_PORT is not set ++CONFIG_UDHCP_DEBUG=0 ++# CONFIG_FEATURE_UDHCP_RFC3397 is not set ++CONFIG_FEATURE_UDHCP_8021Q=y ++CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 ++CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n" ++ ++# ++# Print Utilities ++# ++# CONFIG_LPD is not set ++# CONFIG_LPR is not set ++# CONFIG_LPQ is not set ++ ++# ++# Mail Utilities ++# ++# CONFIG_MAKEMIME is not set ++# CONFIG_POPMAILDIR is not set ++# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set ++# CONFIG_REFORMIME is not set ++# CONFIG_FEATURE_REFORMIME_COMPAT is not set ++# CONFIG_SENDMAIL is not set ++CONFIG_FEATURE_MIME_CHARSET="" ++ ++# ++# Process Utilities ++# ++CONFIG_FREE=y ++CONFIG_FUSER=y ++# CONFIG_IOSTAT is not set ++CONFIG_KILL=y ++CONFIG_KILLALL=y ++CONFIG_KILLALL5=y ++CONFIG_LSOF=y ++# CONFIG_MPSTAT is not set ++# CONFIG_NMETER is not set ++# CONFIG_PGREP is not set ++# CONFIG_PKILL is not set ++CONFIG_PIDOF=y ++CONFIG_FEATURE_PIDOF_SINGLE=y ++CONFIG_FEATURE_PIDOF_OMIT=y ++# CONFIG_PMAP is not set ++# CONFIG_POWERTOP is not set ++# CONFIG_FEATURE_POWERTOP_INTERACTIVE is not set ++CONFIG_PS=y ++# CONFIG_FEATURE_PS_WIDE is not set ++# CONFIG_FEATURE_PS_LONG is not set ++# CONFIG_FEATURE_PS_TIME is not set ++# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set ++# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set ++# CONFIG_PSTREE is not set ++# CONFIG_PWDX is not set ++# CONFIG_SMEMCAP is not set ++CONFIG_BB_SYSCTL=y ++CONFIG_TOP=y ++CONFIG_FEATURE_TOP_INTERACTIVE=y ++CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y ++CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y ++# CONFIG_FEATURE_TOP_SMP_CPU is not set ++# CONFIG_FEATURE_TOP_DECIMALS is not set ++# CONFIG_FEATURE_TOP_SMP_PROCESS is not set ++# CONFIG_FEATURE_TOPMEM is not set ++CONFIG_UPTIME=y ++# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set ++CONFIG_WATCH=y ++# CONFIG_FEATURE_SHOW_THREADS is not set ++ ++# ++# Runit Utilities ++# ++# CONFIG_CHPST is not set ++# CONFIG_SETUIDGID is not set ++# CONFIG_ENVUIDGID is not set ++# CONFIG_ENVDIR is not set ++# CONFIG_SOFTLIMIT is not set ++# CONFIG_RUNSV is not set ++# CONFIG_RUNSVDIR is not set ++# CONFIG_FEATURE_RUNSVDIR_LOG is not set ++# CONFIG_SV is not set ++CONFIG_SV_DEFAULT_SERVICE_DIR="" ++CONFIG_SVC=y ++# CONFIG_SVLOGD is not set ++# CONFIG_CHCON is not set ++# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set ++# CONFIG_GETENFORCE is not set ++# CONFIG_GETSEBOOL is not set ++# CONFIG_LOAD_POLICY is not set ++# CONFIG_MATCHPATHCON is not set ++# CONFIG_RUNCON is not set ++# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set ++# CONFIG_SELINUXENABLED is not set ++# CONFIG_SESTATUS is not set ++# CONFIG_SETENFORCE is not set ++# CONFIG_SETFILES is not set ++# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set ++# CONFIG_RESTORECON is not set ++# CONFIG_SETSEBOOL is not set ++ ++# ++# Shells ++# ++CONFIG_SH_IS_ASH=y ++# CONFIG_SH_IS_HUSH is not set ++# CONFIG_SH_IS_NONE is not set ++# CONFIG_BASH_IS_ASH is not set ++# CONFIG_BASH_IS_HUSH is not set ++CONFIG_BASH_IS_NONE=y ++CONFIG_ASH=y ++CONFIG_ASH_OPTIMIZE_FOR_SIZE=y ++CONFIG_ASH_INTERNAL_GLOB=y ++CONFIG_ASH_BASH_COMPAT=y ++CONFIG_ASH_JOB_CONTROL=y ++CONFIG_ASH_ALIAS=y ++CONFIG_ASH_RANDOM_SUPPORT=y ++CONFIG_ASH_EXPAND_PRMT=y ++CONFIG_ASH_IDLE_TIMEOUT=y ++# CONFIG_ASH_MAIL is not set ++CONFIG_ASH_ECHO=y ++CONFIG_ASH_PRINTF=y ++CONFIG_ASH_TEST=y ++CONFIG_ASH_HELP=y ++CONFIG_ASH_GETOPTS=y ++CONFIG_ASH_CMDCMD=y ++# CONFIG_CTTYHACK is not set ++# CONFIG_HUSH is not set ++# CONFIG_HUSH_BASH_COMPAT is not set ++# CONFIG_HUSH_BRACE_EXPANSION is not set ++# CONFIG_HUSH_INTERACTIVE is not set ++# CONFIG_HUSH_SAVEHISTORY is not set ++# CONFIG_HUSH_JOB is not set ++# CONFIG_HUSH_TICK is not set ++# CONFIG_HUSH_IF is not set ++# CONFIG_HUSH_LOOPS is not set ++# CONFIG_HUSH_CASE is not set ++# CONFIG_HUSH_FUNCTIONS is not set ++# CONFIG_HUSH_LOCAL is not set ++# CONFIG_HUSH_RANDOM_SUPPORT is not set ++# CONFIG_HUSH_MODE_X is not set ++# CONFIG_HUSH_ECHO is not set ++# CONFIG_HUSH_PRINTF is not set ++# CONFIG_HUSH_TEST is not set ++# CONFIG_HUSH_HELP is not set ++# CONFIG_HUSH_EXPORT is not set ++# CONFIG_HUSH_EXPORT_N is not set ++# CONFIG_HUSH_KILL is not set ++# CONFIG_HUSH_WAIT is not set ++# CONFIG_HUSH_TRAP is not set ++# CONFIG_HUSH_TYPE is not set ++# CONFIG_HUSH_READ is not set ++# CONFIG_HUSH_SET is not set ++# CONFIG_HUSH_UNSET is not set ++# CONFIG_HUSH_ULIMIT is not set ++# CONFIG_HUSH_UMASK is not set ++# CONFIG_HUSH_MEMLEAK is not set ++# CONFIG_MSH is not set ++ ++# ++# Options common to all shells ++# ++CONFIG_FEATURE_SH_MATH=y ++CONFIG_FEATURE_SH_MATH_64=y ++CONFIG_FEATURE_SH_EXTRA_QUIET=y ++# CONFIG_FEATURE_SH_STANDALONE is not set ++# CONFIG_FEATURE_SH_NOFORK is not set ++# CONFIG_FEATURE_SH_HISTFILESIZE is not set ++ ++# ++# System Logging Utilities ++# ++CONFIG_KLOGD=y ++CONFIG_FEATURE_KLOGD_KLOGCTL=y ++CONFIG_LOGGER=y ++# CONFIG_LOGREAD is not set ++# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set ++CONFIG_SYSLOGD=y ++CONFIG_FEATURE_ROTATE_LOGFILE=y ++CONFIG_FEATURE_REMOTE_LOG=y ++# CONFIG_FEATURE_SYSLOGD_DUP is not set ++# CONFIG_FEATURE_SYSLOGD_CFG is not set ++CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 ++# CONFIG_FEATURE_IPC_SYSLOG is not set ++CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 ++# CONFIG_FEATURE_KMSG_SYSLOG is not set +diff --git a/board/ant/device_config b/board/ant/device_config +new file mode 100644 +index 0000000000..c241bf90a0 +--- /dev/null ++++ b/board/ant/device_config +@@ -0,0 +1,15 @@ ++#S23udc ++PRODUCT="PlutoSDR (ADALM-PLUTO)" ++USBPID=0xb673 ++ENDPOINTS=3 ++ ++#S40network / S41network ++UDHCPD_CONF=/etc/udhcpd.conf ++CONF=/opt/config.txt ++IFAC=/etc/network/interfaces ++ ++#update.sh ++TARGET=plutosdr ++FIRMWARE=/mnt/msd/ant.frm ++FRM_MAGIC="ITB PlutoSDR (ADALM-PLUTO)" ++ +diff --git a/board/ant/device_format_jffs2 b/board/ant/device_format_jffs2 +new file mode 100644 +index 0000000000..eb2e5ce7e3 +--- /dev/null ++++ b/board/ant/device_format_jffs2 +@@ -0,0 +1,17 @@ ++#!/bin/sh ++set +e ++ ++while true; ++do ++ read -p "Are you sure to delete/format your mtd2 JFFS2 (/mnt/jffs2) partition? (yes/no) " answ ++ case $answ in ++ [Yy]* ) ++ umount /mnt/jffs2 ++ flash_erase -j /dev/mtd2 0 0 ++ mount -a ++ break ++ ;; ++ [Nn]* ) exit;; ++ * ) echo "Please answer yes or no.";; ++ esac ++done +diff --git a/board/ant/device_passwd b/board/ant/device_passwd +new file mode 100644 +index 0000000000..c3c50dddc4 +--- /dev/null ++++ b/board/ant/device_passwd +@@ -0,0 +1,11 @@ ++#!/bin/sh ++set +e ++ ++cat /proc/mounts | grep -q mtd2 || (echo "Filesystem not mounted use device_format_jffs2 command to setup your partition"; exit 1) ++ ++passwd ++install -D /etc/passwd /etc/shadow /etc/group -t /mnt/jffs2/etc ++cd /etc ++md5sum passwd shadow group 2>/dev/null > /mnt/jffs2/etc/password.md5 ++sync ++ +diff --git a/board/ant/device_persistent_keys b/board/ant/device_persistent_keys +new file mode 100644 +index 0000000000..a67d3a8db2 +--- /dev/null ++++ b/board/ant/device_persistent_keys +@@ -0,0 +1,21 @@ ++#!/bin/sh ++set +e ++ ++KEYFILE=/etc/dropbear/dropbear_ecdsa_host_key ++IDFILE=/root/.ssh/authorized_keys ++ ++cat /proc/mounts | grep -q mtd2 || (echo "Filesystem not mounted use device_format_jffs2 command to setup your partition"; exit 1) ++ ++#dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key ++[[ ! -f ${KEYFILE} ]] && dropbearkey -t ecdsa -f ${KEYFILE} ++install -D /etc/dropbear/dropbear_* -t /mnt/jffs2/etc/dropbear ++cd /etc/dropbear ++md5sum dropbear_* /etc/dropbear/ 2>/dev/null > /mnt/jffs2/etc/dropbear/keys.md5 ++ ++if [ -f ${IDFILE} ]; then ++ install -D ${IDFILE} -t /mnt/jffs2/root/.ssh ++ cd /root/.ssh ++ md5sum authorized_keys 2>/dev/null > /mnt/jffs2/root/.ssh/keys.md5 ++fi ++ ++sync +diff --git a/board/ant/device_reboot b/board/ant/device_reboot +new file mode 100644 +index 0000000000..1134b2a240 +--- /dev/null ++++ b/board/ant/device_reboot +@@ -0,0 +1,32 @@ ++#!/bin/sh ++ ++case "$1" in ++ ram) ++ cause=7 ++ ;; ++ sf) ++ cause=3 ++ ;; ++ verbose) ++ cause=6 ++ ;; ++ break) ++ cause=2 ++ ;; ++ reset) ++ cause=0 ++ ;; ++ ++ *) ++ echo "Usage: $0 {ram|sf|reset|verbose|break}" ++ echo " sf : Reboot and enter Serial Flash DFU mode" ++ echo " ram : Reboot and enter RAM DFU mode" ++ echo " reset : Reboot" ++ echo " verbose: Reboot and start serial console Verbose" ++ echo " break : Reboot and HALT in u-boot" ++ exit 1 ++esac ++ ++echo $cause > /sys/kernel/debug/zynq_rst/code && /sbin/reboot ++ ++exit 0 +diff --git a/board/ant/dropbrear_localoptions.h b/board/ant/dropbrear_localoptions.h +new file mode 100644 +index 0000000000..8d1cd4ab7b +--- /dev/null ++++ b/board/ant/dropbrear_localoptions.h +@@ -0,0 +1 @@ ++#define DO_MOTD 1 +diff --git a/board/ant/fw_env.config b/board/ant/fw_env.config +new file mode 100644 +index 0000000000..402a3409ff +--- /dev/null ++++ b/board/ant/fw_env.config +@@ -0,0 +1,2 @@ ++# MTD device name Device offset Env. size Flash sector size ++/dev/mtd1 0x0000 0x20000 0x20000 +diff --git a/board/ant/genimage-msd.cfg b/board/ant/genimage-msd.cfg +new file mode 100644 +index 0000000000..71872e8596 +--- /dev/null ++++ b/board/ant/genimage-msd.cfg +@@ -0,0 +1,20 @@ ++image boot.vfat { ++ vfat { ++ extraargs = "-n PlutoSDR" ++ files = {"index.html", "LICENSE.html"} ++ } ++ size = 30M ++} ++ ++image vfat.img { ++ hdimage { ++ } ++ ++ partition boot { ++ partition-type = 0xC ++ bootable = "false" ++ image = "boot.vfat" ++ } ++} ++ ++ +diff --git a/board/ant/ifupdown.sh b/board/ant/ifupdown.sh +new file mode 100644 +index 0000000000..0e75ce188d +--- /dev/null ++++ b/board/ant/ifupdown.sh +@@ -0,0 +1,12 @@ ++#!/bin/sh ++ ++case "${ACTION}" in ++add|"") ++ ifconfig ${MDEV} up ++ ifup ${MDEV} ++ echo $(ip -f inet -o addr show ${MDEV}|cut -d\ -f 7 | cut -d/ -f 1) > /opt/ipaddr-${MDEV} ++ ;; ++remove) ++ ifdown ${MDEV} ++ ;; ++esac +diff --git a/board/ant/index.html b/board/ant/index.html +new file mode 100644 +index 0000000000..a09ecf0b3e +--- /dev/null ++++ b/board/ant/index.html +@@ -0,0 +1,372 @@ ++ ++ ++
++ ++ ++ ++
++
++
++
++Thank you for purchasing the ADALM-PLUTO Active Learning Module (PlutoSDR). The easy-to-use PlutoSDR helps introduce the fundamentals of software-defined radio (SDR), radio frequency (RF), and wireless communications to everyone. Designed for users at all levels and all backgrounds, the PlutoSDR can be used as:
++Based on the AD9363, the PlutoSDR features independent receive and transmit channels that can be operated in full duplex. The PlutoSDR can generate or acquire RF analog signals from 325 MHz to 3800 MHz at up to 61.44 MegaSamples per second (MSPS). Small enough to fit in a shirt pocket, the PlutoSDR is completely self-contained and entirely USB powered with the default firmware. PlutoSDR is enabled by libiio drivers and supports macOS®, Windows®, and Linux®, allowing students and engineers to learn and explore on a variety of host platforms.
++The PlutoSDR online documentation provides instruction on how to set up the software on your Windows, Linux, or macOS based host to use the PlutoSDR. For those who do not read instructions, do the following steps:
++Test your installation:
++Once everything above is installed, with your favorite console (Windows Linux or macOS), try these two commands (in bold below) to make sure the drivers and software is installed properly. It is expected that the serial number (specific to the PlutoSDR device) and usb uri (the three numbers after the 'usb:' field, based on your host) will be different than the examples below.
++++rgetz@brain:~/$ iio_info -s ++Library version: 0.16 (git tag: 5cdeaaa) ++Compiled with backends: local xml ip usb serial ++Available contexts: ++ 0: 0456:b673 (Analog Devices Inc. PlutoSDR (ADALM-PLUTO)), serial=100000235523730700190030090216fd23 [usb:3.15.5] ++ ++rgetz@brain:~/$ iio_info -u ip:192.168.2.1 ++Library version: 0.16 (git tag: 5cdeaaa) ++Compiled with backends: local xml ip usb serial ++IIO context created with network backend. ++Backend version: 0.15 (git tag: v0.15 ) ++Backend description string: 192.168.2.1 Linux (none) 4.9.0-10475-g2398d50 #269 SMP PREEMPT Mon Oct 15 20:18:34 CEST 2018 armv7l ++IIO context has 8 attributes: ++ hw_model: Analog Devices PlutoSDR Rev.A (Z7010-AD9363) ++ hw_model_variant: 0 ++ hw_serial: 100000235523730700190030090216fd23 ++.... ++ 2 channel-specific attributes found: ++ attr 0: scale value: 6.433105468 ++ attr 1: raw value: 778 ++++
If the 'iio_info -s' command cannot find the PlutoSDR on your host, you will need to do some reading and troubleshooting. If you are having issues installing the software, check out the on-line tutorials. Once the software is running, you can enable PlutoSDR in your communications framework like MATLAB, by following along the on-line tutorials.
++Use the PlutoSDR with your favorite communications framework, visualization, or signal processing tool.
++| Framework / Application | ++OS | ++Description | ++
|---|---|---|
![]() | Windows, Linux, macOS | ++Communications Toolbox™ Support Package for Analog Devices PlutoSDR (doc) enables you to use MATLAB® and Simulink® to prototype, verify, and test practical wireless systems. Request a zero cost trial and then use, study, modify, and/or distribute a variety of MATLAB and Simulink examples. | ++
![]() | Linux, macOS | ++GNU Radio is a Free and Open-Source Toolkit for Software Radio, primarily supported on Linux operating systems. It has both generic IIO blocks, and PlutoSDR specific blocks | ++
| IIO Command Line Tools | Windows, Linux, macOS | ++iio_info, ++iio_attr, ++iio_readdev, ++iio_writedev, ++iio_reg ++for interacting with the PlutoSDR from your favorite shell. ++ | ++
IIO Oscilloscope | Windows, Linux | ++The IIO Oscilloscope is an application, which demonstrates how to interface various IIO devices to different visualization methods on Linux and Windows | ++
![]() | Windows, Linux | ++SDRangel is an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware. Check the discussion group and wiki. While SDRangel seeks to be approachable, it is targeted towards the experienced SDR user with some digital signal processing understanding. | ++
![]() | Windows | ++SDR# (SDR Sharp) is a popular SDR program for the Airspy, and supports the PlutoSDR with a third party plugin. A complete installation tutorial exists. | ++
| other tools ++ | Windows, Linux, macOS | ++A variety of other tools and projects using the PlutoSDR | ++
Detailed documentation can be found at the Main Documentation page. Information on regulatory compliance and safety information can be found online.
++The ADALM-PLUTO Firmware refers to the U-Boot, HDL, Linux kernel, device drivers, and user space software, which runs on the PlutoSDR. This is bundled up and given a specific version number for the PlutoSDR. For help upgrading firmware, check out the online documentation.
++ ++Version Information:
++The various parts of the firmware all have their own unique versions as well:
++| Model | ++#MODEL# | ++
|---|---|
| Serial | ++#SERIAL# | ++
| Build | ++#BUILD# | ++
| Linux | ++#LINUX# | ++
| U-Boot | ++#UBOOT# | ++
| FPGA | ++#FPGA# | ++
| Root FS | ++#ROOTFS# | ++
| IIO | ++#IIO# | ++
| Network over USB | ++#NETWORKUSB# | ++
Standalone Applications:
++Custom C/C++ applications can be created/compiled on a host with a Linaro GNU Compiler Collection (GCC) toolchain (with the appropriate flags), transferred over and run directly on the PlutoSDR.
++| GCC Compiler Target Triple | ++#GCC_TRIPLE# | ++
| GCC version | ++#GCC_VERSION# | ++
| Binutils version | ++#BIN_VERSION# | ++
| SysRoot | ++Latest SYSROOT | ++
Build Settings:
++There are many settings which are set as part of the build configuration, and can not be changed without rebuilding the firmware.
++| Username: | ++root | ++
| Password: | ++#ROOTPASSWORD# | ++
Configuration Settings:
++On the root file system, there are configuration settings that can modify the default configuration, they currently are:
++| Hostname | ++#HOSTNAME# | ++
| IP Address (PlutoSDR) | ++#IP# | ++
| IP Address (HOST) | ++#HOSTIP# | ++
| Netmask | ++#NETMASK# | ++
| MAC Address (PlutoSDR) | ++#MAC# | ++
| MAC Address (HOST) | ++#MACHOST# | ++
Wi-Fi Update
++| SSID | ++#SSID_WLAN# | ++
| WPA-PSK Passphrase | ++******** | ++
| IP Address | ++#IPADDR_WLAN# | ++
Wired Ethernet using a USB Ethernet adapter. Update
++| IP Address | ++#IPADDR_ETH# | ++
| Netmask | ++#NETMASK_ETH# | ++
To change these settings, check the on-line documentation.
++If you have any questions regarding the PlutoSDR or are experiencing any problems following the user guides, or experiments feel free to ask us a question. Questions can be asked on our Virtual Classroom. Help and support for the PlutoSDR is provided exclusively online. If you don't have an internet connection on this computer, please find one that does.
++J71uS5glbz9?RF
+z^sTV=BGpEo+}v4PzkJ>A`{MAPvjQtUOiiS`Go^S$cIyehyt;b&NA~;wtny;^_ecoe
+ztNdMB^X+HsoH^^f#H|w_9BN>l_B?BY)$x6DHCLWzzfpQw7%X;~NhPc9OkknYOwTw~
+ztIfwQeo5|mw5K>dX0pS*#pleHYJKQ>;5+Aef|paH@0kli>kjQuEb?q$-KebnAnJy@
+zYc$uMjg7qF3-Sbyc_{QO_#&Wr*ZI-Ht1+IZZc21oTYQoD!xQ~itgL*OP}#}fk83u5
+zT*~G4f-!8v_Id0JyU$toyKwepzx3$i4NCUn{QAu2^pe5_$M%_C3b-_NkNTP4eAc&%
+zSyT*oJsw9a`yMjmT4j4Wd;5;+?{fQUiaHW|elet2xNpi|(>~?Oj`f$8-{PLS(1=@{
+zoxg~mLG!cWi)}a89eaM^&V@VYrEY~?f06px%`1Oyr2XOD@AouckE>O!p8lIJfA3eT
+zx-XOYKfJzQ!}Io}R#wX?pWi}X#2v#!^Lv9omR!uaw$3aoF<)qUPwjzKPjin=*((wG
+z%$577$4n00-U$
++- About ADI
++- Analog Dialogue
++- Careers
++- New College Graduates
++- Investor Relations
++- News Room
++- Sales & Distribution
++- College Parts Program
++
++About Analog Devices
++Analog Devices (Nasdaq: ADI) is a leading global high-performance analog technology company dedicated to solving the toughest engineering challenges. We enable our customers to interpret the world around us by intelligently bridging the physical and digital with unmatched technologies that sense, measure, power, connect and interpret.
++We offer technical journals and other community resources to engineers, scientists, technicians, and students looking to help and share with one another. Interested in the latest news and articles about ADI products, design tools, training and events? Choose from one of our 12 newsletters that match your product area of interest, delivered monthly or quarterly to your inbox. Sign up
++Follow Analog Devices on your favorite social media site:
++
++
++
++
++
++
++
++
++
++
++
++