├── 1.UBoot ├── GrandTeton-20170708.patch ├── README └── u-boot-a38x-RangerPeak_2014T3_PQ-nand_1G.bin ├── 2.Kernel ├── README ├── armada-385-wdmc-Ex2-Ultra.dts └── gpio_trigger.patch ├── 3.Ramdisk ├── Busybox.config ├── README ├── bin │ ├── ash │ ├── busybox │ ├── cat │ ├── chattr │ ├── chmod │ ├── cp │ ├── cttyhack │ ├── dd │ ├── df │ ├── dmesg │ ├── echo │ ├── grep │ ├── kill │ ├── ln │ ├── ls │ ├── lsattr │ ├── mkdir │ ├── mount │ ├── mv │ ├── ping │ ├── pipe_progress │ ├── ps │ ├── rm │ ├── rmdir │ ├── run-parts │ ├── sh │ ├── simple.script │ ├── sleep │ ├── stty │ ├── sync │ ├── tar │ ├── touch │ ├── umount │ ├── uname │ └── vi ├── etc │ ├── dropbear │ │ ├── banner.crypto │ │ ├── banner.rescue │ │ ├── dropbear_dss_host_key │ │ └── dropbear_rsa_host_key │ ├── lvm │ │ └── lvm.conf │ ├── mdadm.conf │ └── passwd ├── init ├── lib │ ├── ld-2.28.so │ ├── ld-linux-armhf.so.3 │ ├── ld-linux.so.3 │ ├── libaio.so.1 │ ├── libaio.so.1.0.1 │ ├── libargon2.so.1 │ ├── libblkid.so.1 │ ├── libblkid.so.1.1.0 │ ├── libc-2.28.so │ ├── libc.so.6 │ ├── libcom_err.so.2 │ ├── libcom_err.so.2.1 │ ├── libcrypt-2.28.so │ ├── libcrypt.so.1 │ ├── libcrypto.so.1.1 │ ├── libcryptsetup.so.12 │ ├── libcryptsetup.so.12.4.0 │ ├── libdevmapper-event.so.1.02.1 │ ├── libdevmapper.so.1.02.1 │ ├── libdl-2.28.so │ ├── libdl.so.2 │ ├── libe2p.so.2 │ ├── libe2p.so.2.3 │ ├── libext2fs.so.2 │ ├── libext2fs.so.2.4 │ ├── libgcc_s.so.1 │ ├── libgcrypt.so.20 │ ├── libgcrypt.so.20.2.4 │ ├── libgpg-error.so.0 │ ├── libgpg-error.so.0.26.1 │ ├── libjson-c.so.3 │ ├── liblz4.so.1 │ ├── liblz4.so.1.8.3 │ ├── liblzma.so.5 │ ├── liblzma.so.5.2.4 │ ├── liblzo2.so.2 │ ├── liblzo2.so.2.0.0 │ ├── libm-2.28.so │ ├── libm.so.6 │ ├── libnss_dns-2.28.so │ ├── libnss_dns.so.2 │ ├── libnss_files-2.28.so │ ├── libnss_files.so.2 │ ├── libpcre.so.3 │ ├── libpcre.so.3.13.3 │ ├── libpopt.so │ ├── libpopt.so.0 │ ├── libpopt.so.0.0.0 │ ├── libpthread-2.28.so │ ├── libpthread.so.0 │ ├── libreadline.so.5 │ ├── libreadline.so.7 │ ├── libreadline.so.7.0 │ ├── libresolv-2.28.so │ ├── libresolv.so.2 │ ├── librt-2.28.so │ ├── librt.so.1 │ ├── libselinux.so.1 │ ├── libsmartcols.so.1 │ ├── libsmartcols.so.1.1.0 │ ├── libssl.so.1.1 │ ├── libsystemd.so.0 │ ├── libsystemd.so.0.25.0 │ ├── libtinfo.so.6 │ ├── libtinfo.so.6.1 │ ├── libudev.so.1 │ ├── libudev.so.1.6.13 │ ├── libutil-2.28.so │ ├── libutil.so.1 │ ├── libuuid.so.1 │ ├── libuuid.so.1.3.0 │ ├── libz.so.1 │ └── libz.so.1.2.11 ├── sbin │ ├── blkid │ ├── cryptsetup │ ├── dropbear │ ├── fdisk │ ├── fsck │ ├── ifconfig │ ├── lsmod │ ├── lvm │ ├── mdadm │ ├── mdev │ ├── mkdosfs │ ├── mke2fs │ ├── mkfs.ext2 │ ├── mkfs.ext4 │ ├── mkfs.minix │ ├── mkfs.vfat │ ├── mkswap │ ├── modprobe │ ├── poweroff │ ├── reboot │ ├── rmmod │ ├── route │ ├── start-stop-daemon │ ├── swapoff │ ├── swapon │ ├── switch_root │ ├── tune2fs │ └── udhcpc └── usr │ ├── bin │ ├── clear │ ├── dpkg │ ├── dpkg-deb │ ├── find │ ├── hexdump │ ├── mesg │ ├── nohup │ ├── reset │ ├── setsid │ ├── tftp │ ├── top │ ├── traceroute │ ├── wget │ └── which │ └── sbin │ ├── chroot │ ├── nanddump │ ├── nandwrite │ └── rfkill ├── 4.RootFS ├── README ├── debian-stretch-rootfs.tar.xz ├── mcu_source.c ├── rc.local ├── rootfs.conf └── temperatures.sh ├── README ├── Ramdisk_build.sh ├── uImage └── uInitrd /1.UBoot/GrandTeton-20170708.patch: -------------------------------------------------------------------------------- 1 | diff --git a/.gitignore b/.gitignore 2 | index eb1260c..e33079c 100755 3 | --- a/.gitignore 4 | +++ b/.gitignore 5 | @@ -83,3 +83,10 @@ cscope.* 6 | 7 | # spl ais files 8 | /spl/*.ais 9 | + 10 | +# xbuild 11 | +xbuild* 12 | + 13 | +# generated binaries 14 | +u-boot-a38x-GrandTeton* 15 | +monext 16 | diff --git a/board/mv_ebu/a38x/mv_main_a38x.c b/board/mv_ebu/a38x/mv_main_a38x.c 17 | index 88d00b6..64cfba4 100755 18 | --- a/board/mv_ebu/a38x/mv_main_a38x.c 19 | +++ b/board/mv_ebu/a38x/mv_main_a38x.c 20 | @@ -34,6 +34,7 @@ 21 | *******************************************************************************/ 22 | 23 | #include 24 | +#include 25 | #include "mvTypes.h" 26 | #include "mvBoardEnvLib.h" 27 | #include "mvBoardEnvSpec.h" 28 | @@ -687,7 +688,11 @@ void misc_init_r_env(void) 29 | #if 1 //ALPHA_CUSTOMIZE 30 | /* Check push Reset button */ //Casper, 20150528, GrandTeton no usb button 31 | // low active. 32 | - setenv("bootcmd","nand read.e 0xa00000 0x500000 0x500000;nand read.e 0xf00000 0xa00000 0x500000;bootm 0xa00000 0xf00000"); 33 | + env = getenv("bootcmd"); 34 | + if (!env) { 35 | + printf("bootcmd undefined, using default: 'nand read.e 0xa00000 0x500000 0x500000;nand read.e 0xf00000 0xa00000 0x500000;bootm 0xa00000 0xf00000'"); 36 | + setenv("bootcmd","nand read.e 0xa00000 0x500000 0x500000;nand read.e 0xf00000 0xa00000 0x500000;bootm 0xa00000 0xf00000"); 37 | + } 38 | #endif 39 | 40 | env = getenv("standalone"); 41 | diff --git a/include/configs/armada_38x.h b/include/configs/armada_38x.h 42 | index 1511afc..3a24a41 100755 43 | --- a/include/configs/armada_38x.h 44 | +++ b/include/configs/armada_38x.h 45 | @@ -60,6 +60,7 @@ 46 | #endif 47 | #ifdef CONFIG_ARMADA_39X 48 | #define MV88F69XX 49 | + 50 | #endif 51 | #define MV_SEC_64K 52 | #define MV_BOOTSIZE_512K 53 | @@ -78,6 +79,8 @@ 54 | 55 | #define MV_DDR_TRAINING_CMD_NEW_TIP 56 | 57 | +#define CONFIG_CMD_SAVEENV 58 | + 59 | /* 60 | * Debug 61 | */ 62 | @@ -372,7 +375,7 @@ extern unsigned int mvTclkGet(void); 63 | #define MONITOR_HEADER_LEN 0x200 64 | #define CONFIG_SYS_MONITOR_BASE 0 65 | #define CONFIG_SYS_MONITOR_LEN 0x80000 /* Reserve 512 kB for Monitor */ 66 | - #define CONFIG_ENV_RANGE CONFIG_ENV_SIZE * 8 67 | + #define CONFIG_ENV_RANGE CONFIG_ENV_SIZE * 2 68 | 69 | #define MV_NBOOT_BASE 0 70 | #define MV_NBOOT_LEN (4 << 10) /* Reserved 4KB for boot strap */ 71 | @@ -491,8 +494,8 @@ extern unsigned int mvTclkGet(void); 72 | #define CONFIG_DOS_PARTITION 73 | #define CONFIG_ISO_PARTITION 74 | #define ENV_USB0_MODE "host" 75 | -#if 0 //ALPHA_CUSTOMIZE 76 | - #define ENV_USB_ACTIVE "1" 77 | +#if 1 //ALPHA_CUSTOMIZE 78 | + #define ENV_USB_ACTIVE "1" 79 | #else 80 | #define ENV_USB_ACTIVE "0" 81 | #endif 82 | @@ -615,7 +618,7 @@ extern unsigned int mvTclkGet(void); 83 | #define PCI_HOST_AUTO 2 /* detected via arbiter enable */ 84 | 85 | #define CONFIG_UBOOT_SIZE 0x100000 86 | -#define CONFIG_SPARE_AREA 0x400000 87 | +#define CONFIG_SPARE_AREA 0x000000 88 | 89 | /* NOR-FLASH stuff */ 90 | /************************/ 91 | @@ -623,7 +626,7 @@ extern unsigned int mvTclkGet(void); 92 | #define CONFIG_ENV_SIZE_NOR 0x20000 93 | #define CONFIG_ENV_SECT_SIZE_NOR 0x20000 94 | #define CONFIG_ENV_OFFSET_NOR 0x100000 /* environment starts here */ 95 | -#define CONFIG_ENV_RANGE_NOR CONFIG_ENV_SIZE_NOR * 8 96 | +#define CONFIG_ENV_RANGE_NOR CONFIG_ENV_SIZE_NOR * 2 97 | #define CONFIG_ENV_ADDR_NOR (NOR_CS_BASE + CONFIG_ENV_OFFSET_NOR) 98 | 99 | #if defined(MV_INCLUDE_NOR) 100 | -------------------------------------------------------------------------------- /1.UBoot/README: -------------------------------------------------------------------------------- 1 | To build your uboot, download the GPL Software from WD Website, e.g. here 2 | https://downloads.wdc.com/gpl/WDMyCloud_Ex2Ultra_GPL_v2.31.204_20191206.tar.gz 3 | 4 | Extract WDMyCloud_Ex2Ultra_GPL_v2.31.204_20191206.tar.gz 5 | You need 2 folders "u-boot" and "toolchain" 6 | Go to "u-boot" and extract "u-boot-2013.01-2014_T3.0p2.tar.gz" 7 | Go to "toolchain" and extract "armv7-marvell-linux-gnueabi-softfp_i686_64K_Dev_20131002.tar.gz" 8 | Change variable PATH in u-boot/u-boot-2013.01-2014_T3.0p2/xbuid.sh to correct path of "armv7-marvell-linux-gnueabi-softfp_i686_64K_Dev_20131002/bin" 9 | For x64: sudo apt install gcc-multilib 10 | cp GrandTeton-20170708.patch u-boot/u-boot-2013.01-2014_T3.0p2 11 | cd u-boot/u-boot-2013.01-2014_T3.0p2 12 | patch -p1 < GrandTeton-20170708.patch 13 | sudo ./xbuid.sh build 14 | 15 | For full details see the post of CyberPK at 16 | https://forum.doozan.com/read.php?2,28939,98649#msg-98649. All credits goes to him. 17 | 18 | # The compiled file is in this folder. In order to flash this to NAND copy it to USB drive, insert to NAS and do: 19 | usb start 20 | bubt u-boot.bin nand usb 21 | reset 22 | 23 | setenv bootcmd 'nand read.e 0x02000020 0x0500000 0x0500000; nand read.e 0x2900000 0x0a00000 0x0500000; bootm 0x02000020 0x2900000' 24 | saveenv 25 | -------------------------------------------------------------------------------- /1.UBoot/u-boot-a38x-RangerPeak_2014T3_PQ-nand_1G.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/1.UBoot/u-boot-a38x-RangerPeak_2014T3_PQ-nand_1G.bin -------------------------------------------------------------------------------- /2.Kernel/README: -------------------------------------------------------------------------------- 1 | # Get all needed packages: 2 | apt update 3 | apt upgrade 4 | apt install build-essential u-boot-tools libncurses5-dev git bison flex bc libssl-dev 5 | # Use patch to fix LED beheavor 6 | patch -p1 < gpio_trigger.patch 7 | # NOTE: If compiled on the WD device, the Cross-compiler can be skipped. If on different device the following command needs to be run 8 | apt install crossbuild-essential-armhf 9 | 10 | # Get sources of Linux Kernel version 5.5.3 to compile: 11 | git clone --depth 1 --branch v5.5.3 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-stable 12 | 13 | # Copy prepared config file to linux directory 14 | cp kernel.config linux-stable/.config 15 | 16 | # Copy prepared Device Tree for WD MyCloud Ex2 Ultra 17 | cp armada-385-wdmc-Ex2-Ultra.dts linux-stable/arch/arm/boot/dts/ 18 | 19 | # Пора начинать... 20 | # Примечание: Если сборка ведется непосредственно на устройстве, то пропускаем строки с установкой переменных ARCH и CROSS_COMPILE 21 | # Примечание: $DIR_RESULT - Путь, куда будет сохранен результат (Ядро и модули) 22 | # Примечание: Опция "-j 4" указывает на то, сколько ядер процессора будут задействованны в сборке. Уберите для авто-выбора или замените на своё значение. 23 | mkdir -p output 24 | cd linux-stable 25 | 26 | #make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- oldconfig 27 | #make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig 28 | 29 | # Собственно, собираем все: 30 | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage 31 | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- armada-385-wdmc-Ex2-Ultra.dtb 32 | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules 33 | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=../output modules_install 34 | cp arch/arm/boot/zImage zImage_and_dtb 35 | cat arch/arm/boot/dts/armada-385-wdmc-Ex2-Ultra.dtb >> zImage_and_dtb 36 | mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Kernel-v5.5.3 -d zImage_and_dtb uImage 37 | rm zImage_and_dtb 38 | 39 | # The new Kernel v5.5.3 will not load at standard memory addresses. We need to flash new custom u-boot in uBoot folder 40 | -------------------------------------------------------------------------------- /2.Kernel/armada-385-wdmc-Ex2-Ultra.dts: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 | /* 3 | * Device Tree file for Western Digital My Cloud Expert Series EX2 Ultra 4 | * (BVBZ/Ranger Peak) 5 | * 6 | * Copyright (C) 2020 7 | * 8 | * Based on the code from: 9 | * 10 | * Copyright (C) 2019 Evgeny Kolesnikov 11 | * Copyright (C) 2016 Martin Mueller 12 | * Copyright (C) 2013 Gregory CLEMENT 13 | * Copyright (C) 2014 Thomas Petazzoni 14 | * 15 | */ 16 | 17 | /dts-v1/; 18 | #include 19 | #include 20 | #include 21 | #include "armada-385.dtsi" 22 | 23 | / { 24 | model = "My Cloud Expert Series EX2 Ultra (BVBZ/Ranger Peak)"; 25 | compatible = "wd,mcex2u", "marvell,armada385", "marvell,armada380"; 26 | 27 | chosen { 28 | stdout-path = "console=ttyS0,115200 root=LABEL=rootfs earlyprintk"; 29 | }; 30 | 31 | memory { 32 | device_type = "memory"; 33 | reg = <0x00000000 0x40000000>; /* 1024 MB */ 34 | }; 35 | 36 | soc { 37 | ranges = ; /* PNC: PHYS=0xf1300000 size 1M */ 43 | 44 | internal-regs { 45 | timer@c200 { 46 | status = "okay"; 47 | }; 48 | 49 | i2c@11000 { 50 | status = "disabled"; 51 | }; 52 | 53 | i2c@11100 { 54 | status = "disabled"; 55 | }; 56 | 57 | uart0: serial@12000 { 58 | status = "okay"; 59 | }; 60 | 61 | /* Connected to Welltrend 6703F-OG240WT MCU 62 | * which controls power, fan and other things 63 | */ 64 | uart1: serial@12100 { 65 | status = "okay"; 66 | }; 67 | 68 | poweroff@12100 { 69 | compatible = "uart-poweroff"; 70 | reg = <0x12100 0x100>; 71 | clocks = <&coreclk 0>; 72 | baud = <19200>; 73 | cmd = [fa 03 03 01 00 00 fb]; 74 | status = "okay"; 75 | }; 76 | 77 | restart@12100 { 78 | compatible = "uart-restart"; 79 | reg = <0x12100 0x100>; 80 | clocks = <&coreclk 0>; 81 | baud = <19200>; 82 | cmd = [fa 03 03 02 00 00 fb]; 83 | override; 84 | status = "okay"; 85 | }; 86 | 87 | pinctrl: pinctrl@18000 { 88 | xhci0_vbus_pins: xhci0-vbus-pins { 89 | marvell,pins = "mpp26"; 90 | marvell,function = "gpio"; 91 | }; 92 | 93 | xhci1_vbus_pins: xhci1-vbus-pins { 94 | marvell,pins = "mpp27"; 95 | marvell,function = "gpio"; 96 | }; 97 | 98 | sata0_pins: sata-pins-0 { 99 | marvell,pins = "mpp55"; 100 | marvell,function = "gpio"; 101 | }; 102 | 103 | sata1_pins: sata-pins-1 { 104 | marvell,pins = "mpp56"; 105 | marvell,function = "gpio"; 106 | }; 107 | 108 | sata_leds: sata-leds { 109 | marvell,pins = "mpp43", "mpp52", "mpp53", "mpp54", "mpp48", "mpp58"; 110 | marvell,function = "gpio"; 111 | }; 112 | 113 | btn_pins: btn-pins { 114 | marvell,pins = "mpp50"; 115 | marvell,function = "gpio"; 116 | }; 117 | }; 118 | 119 | usb0: usb@58000 { 120 | status = "okay"; 121 | }; 122 | 123 | eth2: ethernet@34000 { 124 | status = "okay"; 125 | phy = <&phy0>; 126 | phy-mode = "sgmii"; 127 | buffer-manager = <&bm>; 128 | bm,pool-long = <0>; 129 | bm,pool-short = <1>; 130 | }; 131 | 132 | mdio: mdio@72004 { 133 | phy0: ethernet-phy@0 { 134 | /* Init ETH LEDs */ 135 | marvell,reg-init = <3 16 0 0x101e>; 136 | reg = <0>; 137 | }; 138 | }; 139 | 140 | cesa: crypto@90000 { 141 | status = "okay"; 142 | }; 143 | 144 | rtc: rtc@a3800 { 145 | status = "okay"; 146 | }; 147 | 148 | ahci0: sata@a8000 { 149 | pinctrl-names = "default"; 150 | pinctrl-0 = <&sata0_pins>, <&sata1_pins>; 151 | status = "okay"; 152 | #address-cells = <1>; 153 | #size-cells = <0>; 154 | 155 | sata0: sata-port@0 { 156 | reg = <0>; 157 | target-supply = <®_sata0>; 158 | }; 159 | 160 | sata1: sata-port@1 { 161 | reg = <1>; 162 | target-supply = <®_sata1>; 163 | }; 164 | 165 | }; 166 | 167 | bm: bm@c8000 { 168 | status = "okay"; 169 | }; 170 | 171 | nand_controller: nand-controller@d0000 { 172 | status = "okay"; 173 | 174 | nand: nand@0 { 175 | reg = <0>; 176 | label = "pxa3xx_nand-0"; 177 | nand-rb = <0>; 178 | marvell,nand-keep-config; 179 | #marvell,nand-enable-arbiter; //optional 180 | nand-on-flash-bbt; 181 | nand-ecc-strength = <4>; 182 | nand-ecc-step-size = <512>; 183 | 184 | partitions { 185 | compatible = "fixed-partitions"; 186 | #address-cells = <1>; 187 | #size-cells = <1>; 188 | 189 | partition@00000000 { 190 | label = "U-Boot"; 191 | reg = <0x00000000 0x00500000>; /* 5 MB */ 192 | read-only; 193 | }; 194 | 195 | partition@00500000 { 196 | label = "uImage"; 197 | reg = <0x00500000 0x00500000>; /* 5 MB */ 198 | }; 199 | 200 | partition@00a00000 { 201 | label = "uRamdisk"; 202 | reg = <0x00a00000 0x00500000>; /* 5 MB */ 203 | }; 204 | 205 | partition@00f00000 { 206 | label = "image.cfs"; 207 | reg = <0x00f00000 0x0b900000>; /* 185 MB */ 208 | }; 209 | 210 | partition@c800000 { 211 | label = "rescue fw"; 212 | reg = <0x0c800000 0x00f00000>; /* 15 MB */ 213 | }; 214 | 215 | partition@d70000 { 216 | label = "config"; 217 | reg = <0x0d700000 0x01400000>; /* 20 MB */ 218 | }; 219 | 220 | partition@eb00000 { 221 | label = "reserve1"; 222 | reg = <0x0eb00000 0x00a00000>; /* 10 MB */ 223 | }; 224 | 225 | partition@f500000 { 226 | label = "reserve2"; 227 | reg = <0x0f500000 0x00a00000>; /* 10 MB */ 228 | }; 229 | }; 230 | }; 231 | }; 232 | 233 | usb3_0: usb3@f0000 { 234 | usb-phy = <&usb3_0_phy>; 235 | status = "okay"; 236 | }; 237 | 238 | usb3_1: usb3@f8000 { 239 | usb-phy = <&usb3_1_phy>; 240 | status = "okay"; 241 | }; 242 | }; 243 | 244 | bm_bppi: bm-bppi { 245 | status = "okay"; 246 | }; 247 | }; 248 | 249 | gpio-leds { 250 | compatible = "gpio-leds"; 251 | pinctrl-names = "default"; 252 | pinctrl-0 = <&sata_leds>; 253 | 254 | sata1-red-led { 255 | label = "wdmcex2u:red:hdd1"; 256 | gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; 257 | default-state = "keep"; 258 | panic-indicator; 259 | }; 260 | sata2-red-led { 261 | label = "wdmcex2u:red:hdd2"; 262 | gpios = <&gpio1 20 GPIO_ACTIVE_HIGH>; 263 | default-state = "keep"; 264 | panic-indicator; 265 | }; 266 | sata1-blue-led { 267 | label = "wdmcex2u:blue:hdd1"; 268 | gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>; 269 | default-state = "keep"; 270 | }; 271 | sata2-blue-led { 272 | label = "wdmcex2u:blue:hdd2"; 273 | gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>; 274 | default-state = "keep"; 275 | }; 276 | }; 277 | 278 | gpio-keys { 279 | compatible = "gpio-keys"; 280 | pinctrl-names = "default"; 281 | pinctrl-0 = <&btn_pins>; 282 | #address-cells = <1>; 283 | #size-cells = <0>; 284 | 285 | reset { 286 | label = "reset"; 287 | linux,code = ; // Restart=0x198, Power=0x116 288 | gpios = <&gpio1 18 GPIO_ACTIVE_LOW>; 289 | debounce-interval = <60>; 290 | wakeup-source; 291 | }; 292 | }; 293 | 294 | usb3_0_phy: usb3_0_phy { 295 | compatible = "usb-nop-xceiv"; 296 | vcc-supply = <®_usb3_0_vbus>; 297 | }; 298 | 299 | usb3_1_phy: usb3_1_phy { 300 | compatible = "usb-nop-xceiv"; 301 | vcc-supply = <®_usb3_1_vbus>; 302 | }; 303 | 304 | reg_usb3_0_vbus: usb3-vbus0 { 305 | compatible = "regulator-fixed"; 306 | regulator-name = "usb3-vbus0"; 307 | pinctrl-names = "default"; 308 | pinctrl-0 = <&xhci0_vbus_pins>; 309 | regulator-min-microvolt = <5000000>; 310 | regulator-max-microvolt = <5000000>; 311 | enable-active-high; 312 | regulator-always-on; 313 | gpio = <&gpio0 26 GPIO_ACTIVE_HIGH>; 314 | }; 315 | 316 | reg_usb3_1_vbus: usb3-vbus1 { 317 | compatible = "regulator-fixed"; 318 | regulator-name = "usb3-vbus1"; 319 | pinctrl-names = "default"; 320 | pinctrl-0 = <&xhci1_vbus_pins>; 321 | regulator-min-microvolt = <5000000>; 322 | regulator-max-microvolt = <5000000>; 323 | enable-active-high; 324 | regulator-always-on; 325 | gpio = <&gpio0 27 GPIO_ACTIVE_HIGH>; 326 | }; 327 | 328 | reg_sata0: pwr-sata0 { 329 | compatible = "regulator-fixed"; 330 | regulator-name = "pwr_en_sata0"; 331 | regulator-min-microvolt = <12000000>; 332 | regulator-max-microvolt = <12000000>; 333 | enable-active-high; 334 | regulator-boot-on; 335 | gpio = <&gpio1 23 GPIO_ACTIVE_HIGH>; 336 | }; 337 | 338 | reg_sata1: pwr-sata1 { 339 | compatible = "regulator-fixed"; 340 | regulator-name = "pwr_en_sata1"; 341 | regulator-min-microvolt = <12000000>; 342 | regulator-max-microvolt = <12000000>; 343 | enable-active-high; 344 | regulator-boot-on; 345 | gpio = <&gpio1 24 GPIO_ACTIVE_HIGH>; 346 | }; 347 | }; 348 | -------------------------------------------------------------------------------- /2.Kernel/gpio_trigger.patch: -------------------------------------------------------------------------------- 1 | diff --git a/drivers/leds/trigger/ledtrig-gpio.c b/drivers/leds/trigger/ledtrig-gpio.c 2 | index dc64679b1..b260bd0f3 100644 3 | --- a/drivers/leds/trigger/ledtrig-gpio.c 4 | +++ b/drivers/leds/trigger/ledtrig-gpio.c 5 | @@ -103,6 +103,7 @@ static ssize_t gpio_trig_inverted_store(struct device *dev, 6 | 7 | return n; 8 | } 9 | + 10 | static DEVICE_ATTR(inverted, 0644, gpio_trig_inverted_show, 11 | gpio_trig_inverted_store); 12 | 13 | @@ -114,23 +115,10 @@ static ssize_t gpio_trig_gpio_show(struct device *dev, 14 | return sprintf(buf, "%u\n", gpio_data->gpio); 15 | } 16 | 17 | -static ssize_t gpio_trig_gpio_store(struct device *dev, 18 | - struct device_attribute *attr, const char *buf, size_t n) 19 | +static int gpio_trig_gpio_store_value(struct led_classdev *led, struct gpio_trig_data *gpio_data, size_t n, unsigned gpio) 20 | { 21 | - struct led_classdev *led = led_trigger_get_led(dev); 22 | - struct gpio_trig_data *gpio_data = led_trigger_get_drvdata(dev); 23 | - unsigned gpio; 24 | int ret; 25 | 26 | - ret = sscanf(buf, "%u", &gpio); 27 | - if (ret < 1) { 28 | - dev_err(dev, "couldn't read gpio number\n"); 29 | - return -EINVAL; 30 | - } 31 | - 32 | - if (gpio_data->gpio == gpio) 33 | - return n; 34 | - 35 | if (!gpio_is_valid(gpio)) { 36 | if (gpio_is_valid(gpio_data->gpio)) 37 | free_irq(gpio_to_irq(gpio_data->gpio), led); 38 | @@ -142,7 +130,7 @@ static ssize_t gpio_trig_gpio_store(struct device *dev, 39 | IRQF_ONESHOT | IRQF_SHARED | IRQF_TRIGGER_RISING 40 | | IRQF_TRIGGER_FALLING, "ledtrig-gpio", led); 41 | if (ret) { 42 | - dev_err(dev, "request_irq failed with error %d\n", ret); 43 | + dev_err(led->dev, "request_irq failed with error %d\n", ret); 44 | } else { 45 | if (gpio_is_valid(gpio_data->gpio)) 46 | free_irq(gpio_to_irq(gpio_data->gpio), led); 47 | @@ -153,6 +141,27 @@ static ssize_t gpio_trig_gpio_store(struct device *dev, 48 | 49 | return ret ? ret : n; 50 | } 51 | + 52 | +static ssize_t gpio_trig_gpio_store(struct device *dev, 53 | + struct device_attribute *attr, const char *buf, size_t n) 54 | +{ 55 | + struct led_classdev *led = led_trigger_get_led(dev); 56 | + struct gpio_trig_data *gpio_data = led_trigger_get_drvdata(dev); 57 | + unsigned gpio; 58 | + int ret; 59 | + 60 | + ret = sscanf(buf, "%u", &gpio); 61 | + if (ret < 1) { 62 | + dev_err(dev, "couldn't read gpio number\n"); 63 | + return -EINVAL; 64 | + } 65 | + 66 | + if (gpio_data->gpio == gpio) 67 | + return n; 68 | + 69 | + return gpio_trig_gpio_store_value(led, gpio_data, n, gpio); 70 | +} 71 | + 72 | static DEVICE_ATTR(gpio, 0644, gpio_trig_gpio_show, gpio_trig_gpio_store); 73 | 74 | static struct attribute *gpio_trig_attrs[] = { 75 | @@ -163,6 +172,42 @@ static struct attribute *gpio_trig_attrs[] = { 76 | }; 77 | ATTRIBUTE_GROUPS(gpio_trig); 78 | 79 | +static void pattern_init(struct led_classdev *led, struct gpio_trig_data *gpio_data) 80 | +{ 81 | + u32 *pattern; 82 | + unsigned int size = 0; 83 | + unsigned inverted = 0; 84 | + int err; 85 | + 86 | + pattern = led_get_default_pattern(led, &size); 87 | + if (!pattern) 88 | + return; 89 | + 90 | + if (size != 2) { 91 | + dev_warn(led->dev, 92 | + "Expected 2 but got %u values for delays pattern\n", 93 | + size); 94 | + return; 95 | + } 96 | + 97 | + inverted = pattern[1]; 98 | + if (inverted < 0 || inverted > 1) { 99 | + inverted = 0; 100 | + dev_warn(led->dev, 101 | + "GPIO trigger inverted value initialization has invalid value %d\n", inverted); 102 | + } 103 | + gpio_data->inverted = inverted; 104 | + 105 | + err = gpio_trig_gpio_store_value(led, gpio_data, 0, pattern[0]); 106 | + if (err < 0) 107 | + dev_warn(led->dev, 108 | + "GPIO trigger gpio pin initialization failed with error %d\n", err); 109 | + 110 | + gpio_trig_irq(0, led); 111 | + 112 | + kfree(pattern); 113 | +} 114 | + 115 | static int gpio_trig_activate(struct led_classdev *led) 116 | { 117 | struct gpio_trig_data *gpio_data; 118 | @@ -176,6 +221,15 @@ static int gpio_trig_activate(struct led_classdev *led) 119 | 120 | led_set_trigger_data(led, gpio_data); 121 | 122 | + if (led->flags & LED_INIT_DEFAULT_TRIGGER) { 123 | + pattern_init(led, gpio_data); 124 | + /* 125 | + * Mark as initialized even on pattern_init() error because 126 | + * any consecutive call to it would produce the same error. 127 | + */ 128 | + led->flags &= ~LED_INIT_DEFAULT_TRIGGER; 129 | + } 130 | + 131 | return 0; 132 | } 133 | 134 | -------------------------------------------------------------------------------- /3.Ramdisk/Busybox.config: -------------------------------------------------------------------------------- 1 | # 2 | # Automatically generated make config: don't edit 3 | # Busybox version: 1.31.1 4 | # Thu Apr 16 13:13:38 2020 5 | # 6 | CONFIG_HAVE_DOT_CONFIG=y 7 | 8 | # 9 | # Settings 10 | # 11 | CONFIG_DESKTOP=y 12 | # CONFIG_EXTRA_COMPAT is not set 13 | CONFIG_FEDORA_COMPAT=y 14 | # CONFIG_INCLUDE_SUSv2 is not set 15 | CONFIG_LONG_OPTS=y 16 | CONFIG_SHOW_USAGE=y 17 | CONFIG_FEATURE_VERBOSE_USAGE=y 18 | CONFIG_FEATURE_COMPRESS_USAGE=y 19 | CONFIG_LFS=y 20 | # CONFIG_PAM is not set 21 | # CONFIG_FEATURE_DEVPTS is not set 22 | # CONFIG_FEATURE_UTMP is not set 23 | # CONFIG_FEATURE_WTMP is not set 24 | CONFIG_FEATURE_PIDFILE=y 25 | CONFIG_PID_FILE_PATH="/var/run" 26 | CONFIG_BUSYBOX=y 27 | CONFIG_FEATURE_SHOW_SCRIPT=y 28 | CONFIG_FEATURE_INSTALLER=y 29 | # CONFIG_INSTALL_NO_USR is not set 30 | CONFIG_FEATURE_SUID=y 31 | CONFIG_FEATURE_SUID_CONFIG=y 32 | CONFIG_FEATURE_SUID_CONFIG_QUIET=y 33 | # CONFIG_FEATURE_PREFER_APPLETS is not set 34 | CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" 35 | # CONFIG_SELINUX is not set 36 | # CONFIG_FEATURE_CLEAN_UP is not set 37 | # CONFIG_FEATURE_SYSLOG_INFO is not set 38 | # CONFIG_FEATURE_SYSLOG is not set 39 | CONFIG_PLATFORM_LINUX=y 40 | 41 | # 42 | # Build Options 43 | # 44 | CONFIG_STATIC=y 45 | # CONFIG_PIE is not set 46 | # CONFIG_NOMMU is not set 47 | # CONFIG_BUILD_LIBBUSYBOX is not set 48 | # CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set 49 | # CONFIG_FEATURE_INDIVIDUAL is not set 50 | # CONFIG_FEATURE_SHARED_BUSYBOX is not set 51 | CONFIG_CROSS_COMPILER_PREFIX="" 52 | CONFIG_SYSROOT="" 53 | CONFIG_EXTRA_CFLAGS="" 54 | CONFIG_EXTRA_LDFLAGS="" 55 | CONFIG_EXTRA_LDLIBS="" 56 | # CONFIG_USE_PORTABLE_CODE is not set 57 | CONFIG_STACK_OPTIMIZATION_386=y 58 | 59 | # 60 | # Installation Options ("make install" behavior) 61 | # 62 | CONFIG_INSTALL_APPLET_SYMLINKS=y 63 | # CONFIG_INSTALL_APPLET_HARDLINKS is not set 64 | # CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set 65 | # CONFIG_INSTALL_APPLET_DONT is not set 66 | # CONFIG_INSTALL_SH_APPLET_SYMLINK is not set 67 | # CONFIG_INSTALL_SH_APPLET_HARDLINK is not set 68 | # CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set 69 | CONFIG_PREFIX="./_install" 70 | 71 | # 72 | # Debugging Options 73 | # 74 | # CONFIG_DEBUG is not set 75 | # CONFIG_DEBUG_PESSIMIZE is not set 76 | # CONFIG_DEBUG_SANITIZE is not set 77 | # CONFIG_UNIT_TEST is not set 78 | # CONFIG_WERROR is not set 79 | CONFIG_NO_DEBUG_LIB=y 80 | # CONFIG_DMALLOC is not set 81 | # CONFIG_EFENCE is not set 82 | 83 | # 84 | # Library Tuning 85 | # 86 | # CONFIG_FEATURE_USE_BSS_TAIL is not set 87 | CONFIG_FLOAT_DURATION=y 88 | CONFIG_FEATURE_RTMINMAX=y 89 | CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS=y 90 | CONFIG_FEATURE_BUFFERS_USE_MALLOC=y 91 | # CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set 92 | # CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set 93 | CONFIG_PASSWORD_MINLEN=6 94 | CONFIG_MD5_SMALL=1 95 | CONFIG_SHA3_SMALL=1 96 | # CONFIG_FEATURE_FAST_TOP is not set 97 | # CONFIG_FEATURE_ETC_NETWORKS is not set 98 | # CONFIG_FEATURE_ETC_SERVICES is not set 99 | CONFIG_FEATURE_EDITING=y 100 | CONFIG_FEATURE_EDITING_MAX_LEN=1024 101 | # CONFIG_FEATURE_EDITING_VI is not set 102 | CONFIG_FEATURE_EDITING_HISTORY=255 103 | CONFIG_FEATURE_EDITING_SAVEHISTORY=y 104 | # CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set 105 | CONFIG_FEATURE_REVERSE_SEARCH=y 106 | CONFIG_FEATURE_TAB_COMPLETION=y 107 | CONFIG_FEATURE_USERNAME_COMPLETION=y 108 | CONFIG_FEATURE_EDITING_FANCY_PROMPT=y 109 | CONFIG_FEATURE_EDITING_WINCH=y 110 | # CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set 111 | # CONFIG_LOCALE_SUPPORT is not set 112 | CONFIG_UNICODE_SUPPORT=y 113 | # CONFIG_UNICODE_USING_LOCALE is not set 114 | # CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set 115 | CONFIG_SUBST_WCHAR=63 116 | CONFIG_LAST_SUPPORTED_WCHAR=767 117 | # CONFIG_UNICODE_COMBINING_WCHARS is not set 118 | # CONFIG_UNICODE_WIDE_WCHARS is not set 119 | # CONFIG_UNICODE_BIDI_SUPPORT is not set 120 | # CONFIG_UNICODE_NEUTRAL_TABLE is not set 121 | # CONFIG_UNICODE_PRESERVE_BROKEN is not set 122 | CONFIG_FEATURE_NON_POSIX_CP=y 123 | # CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set 124 | CONFIG_FEATURE_USE_SENDFILE=y 125 | CONFIG_FEATURE_COPYBUF_KB=4 126 | CONFIG_FEATURE_SKIP_ROOTFS=y 127 | CONFIG_MONOTONIC_SYSCALL=y 128 | CONFIG_IOCTL_HEX2STR_ERROR=y 129 | CONFIG_FEATURE_HWIB=y 130 | 131 | # 132 | # Applets 133 | # 134 | 135 | # 136 | # Archival Utilities 137 | # 138 | CONFIG_FEATURE_SEAMLESS_XZ=y 139 | CONFIG_FEATURE_SEAMLESS_LZMA=y 140 | CONFIG_FEATURE_SEAMLESS_BZ2=y 141 | CONFIG_FEATURE_SEAMLESS_GZ=y 142 | # CONFIG_FEATURE_SEAMLESS_Z is not set 143 | # CONFIG_AR is not set 144 | # CONFIG_FEATURE_AR_LONG_FILENAMES is not set 145 | # CONFIG_FEATURE_AR_CREATE is not set 146 | # CONFIG_UNCOMPRESS is not set 147 | # CONFIG_GUNZIP is not set 148 | # CONFIG_ZCAT is not set 149 | # CONFIG_FEATURE_GUNZIP_LONG_OPTIONS is not set 150 | # CONFIG_BUNZIP2 is not set 151 | # CONFIG_BZCAT is not set 152 | # CONFIG_UNLZMA is not set 153 | # CONFIG_LZCAT is not set 154 | # CONFIG_LZMA is not set 155 | # CONFIG_UNXZ is not set 156 | # CONFIG_XZCAT is not set 157 | # CONFIG_XZ is not set 158 | # CONFIG_BZIP2 is not set 159 | CONFIG_BZIP2_SMALL=0 160 | # CONFIG_FEATURE_BZIP2_DECOMPRESS is not set 161 | # CONFIG_CPIO is not set 162 | # CONFIG_FEATURE_CPIO_O is not set 163 | # CONFIG_FEATURE_CPIO_P is not set 164 | CONFIG_DPKG=y 165 | CONFIG_DPKG_DEB=y 166 | # CONFIG_GZIP is not set 167 | # CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set 168 | CONFIG_GZIP_FAST=0 169 | # CONFIG_FEATURE_GZIP_LEVELS is not set 170 | # CONFIG_FEATURE_GZIP_DECOMPRESS is not set 171 | # CONFIG_LZOP is not set 172 | # CONFIG_UNLZOP is not set 173 | # CONFIG_LZOPCAT is not set 174 | # CONFIG_LZOP_COMPR_HIGH is not set 175 | # CONFIG_RPM is not set 176 | # CONFIG_RPM2CPIO is not set 177 | CONFIG_TAR=y 178 | CONFIG_FEATURE_TAR_LONG_OPTIONS=y 179 | CONFIG_FEATURE_TAR_CREATE=y 180 | CONFIG_FEATURE_TAR_AUTODETECT=y 181 | CONFIG_FEATURE_TAR_FROM=y 182 | CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y 183 | CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y 184 | CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y 185 | CONFIG_FEATURE_TAR_TO_COMMAND=y 186 | CONFIG_FEATURE_TAR_UNAME_GNAME=y 187 | CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y 188 | # CONFIG_FEATURE_TAR_SELINUX is not set 189 | # CONFIG_UNZIP is not set 190 | # CONFIG_FEATURE_UNZIP_CDF is not set 191 | # CONFIG_FEATURE_UNZIP_BZIP2 is not set 192 | # CONFIG_FEATURE_UNZIP_LZMA is not set 193 | # CONFIG_FEATURE_UNZIP_XZ is not set 194 | # CONFIG_FEATURE_LZMA_FAST is not set 195 | 196 | # 197 | # Coreutils 198 | # 199 | # CONFIG_BASENAME is not set 200 | CONFIG_CAT=y 201 | CONFIG_FEATURE_CATN=y 202 | CONFIG_FEATURE_CATV=y 203 | # CONFIG_CHGRP is not set 204 | CONFIG_CHMOD=y 205 | # CONFIG_CHOWN is not set 206 | # CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set 207 | # CONFIG_CHROOT is not set 208 | # CONFIG_CKSUM is not set 209 | # CONFIG_COMM is not set 210 | CONFIG_CP=y 211 | CONFIG_FEATURE_CP_LONG_OPTIONS=y 212 | CONFIG_FEATURE_CP_REFLINK=y 213 | # CONFIG_CUT is not set 214 | # CONFIG_DATE is not set 215 | # CONFIG_FEATURE_DATE_ISOFMT is not set 216 | # CONFIG_FEATURE_DATE_NANO is not set 217 | # CONFIG_FEATURE_DATE_COMPAT is not set 218 | CONFIG_DD=y 219 | CONFIG_FEATURE_DD_SIGNAL_HANDLING=y 220 | CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y 221 | CONFIG_FEATURE_DD_IBS_OBS=y 222 | CONFIG_FEATURE_DD_STATUS=y 223 | CONFIG_DF=y 224 | CONFIG_FEATURE_DF_FANCY=y 225 | # CONFIG_DIRNAME is not set 226 | # CONFIG_DOS2UNIX is not set 227 | # CONFIG_UNIX2DOS is not set 228 | # CONFIG_DU is not set 229 | # CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set 230 | CONFIG_ECHO=y 231 | CONFIG_FEATURE_FANCY_ECHO=y 232 | # CONFIG_ENV is not set 233 | # CONFIG_EXPAND is not set 234 | # CONFIG_UNEXPAND is not set 235 | # CONFIG_EXPR is not set 236 | # CONFIG_EXPR_MATH_SUPPORT_64 is not set 237 | # CONFIG_FACTOR is not set 238 | # CONFIG_FALSE is not set 239 | # CONFIG_FOLD is not set 240 | # CONFIG_HEAD is not set 241 | # CONFIG_FEATURE_FANCY_HEAD is not set 242 | # CONFIG_HOSTID is not set 243 | # CONFIG_ID is not set 244 | # CONFIG_GROUPS is not set 245 | # CONFIG_INSTALL is not set 246 | # CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set 247 | # CONFIG_LINK is not set 248 | CONFIG_LN=y 249 | # CONFIG_LOGNAME is not set 250 | CONFIG_LS=y 251 | CONFIG_FEATURE_LS_FILETYPES=y 252 | CONFIG_FEATURE_LS_FOLLOWLINKS=y 253 | CONFIG_FEATURE_LS_RECURSIVE=y 254 | CONFIG_FEATURE_LS_WIDTH=y 255 | CONFIG_FEATURE_LS_SORTFILES=y 256 | CONFIG_FEATURE_LS_TIMESTAMPS=y 257 | CONFIG_FEATURE_LS_USERNAME=y 258 | CONFIG_FEATURE_LS_COLOR=y 259 | CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y 260 | # CONFIG_MD5SUM is not set 261 | # CONFIG_SHA1SUM is not set 262 | # CONFIG_SHA256SUM is not set 263 | # CONFIG_SHA512SUM is not set 264 | # CONFIG_SHA3SUM is not set 265 | # CONFIG_FEATURE_MD5_SHA1_SUM_CHECK is not set 266 | CONFIG_MKDIR=y 267 | # CONFIG_MKFIFO is not set 268 | # CONFIG_MKNOD is not set 269 | # CONFIG_MKTEMP is not set 270 | CONFIG_MV=y 271 | # CONFIG_NICE is not set 272 | # CONFIG_NL is not set 273 | # CONFIG_NOHUP is not set 274 | # CONFIG_NPROC is not set 275 | # CONFIG_OD is not set 276 | # CONFIG_PASTE is not set 277 | # CONFIG_PRINTENV is not set 278 | # CONFIG_PRINTF is not set 279 | # CONFIG_PWD is not set 280 | # CONFIG_READLINK is not set 281 | # CONFIG_FEATURE_READLINK_FOLLOW is not set 282 | # CONFIG_REALPATH is not set 283 | CONFIG_RM=y 284 | CONFIG_RMDIR=y 285 | # CONFIG_SEQ is not set 286 | # CONFIG_SHRED is not set 287 | # CONFIG_SHUF is not set 288 | CONFIG_SLEEP=y 289 | CONFIG_FEATURE_FANCY_SLEEP=y 290 | # CONFIG_SORT is not set 291 | # CONFIG_FEATURE_SORT_BIG is not set 292 | # CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set 293 | # CONFIG_SPLIT is not set 294 | # CONFIG_FEATURE_SPLIT_FANCY is not set 295 | # CONFIG_STAT is not set 296 | # CONFIG_FEATURE_STAT_FORMAT is not set 297 | # CONFIG_FEATURE_STAT_FILESYSTEM is not set 298 | CONFIG_STTY=y 299 | # CONFIG_SUM is not set 300 | CONFIG_SYNC=y 301 | CONFIG_FEATURE_SYNC_FANCY=y 302 | # CONFIG_FSYNC is not set 303 | # CONFIG_TAC is not set 304 | # CONFIG_TAIL is not set 305 | # CONFIG_FEATURE_FANCY_TAIL is not set 306 | # CONFIG_TEE is not set 307 | # CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set 308 | # CONFIG_TEST is not set 309 | # CONFIG_TEST1 is not set 310 | # CONFIG_TEST2 is not set 311 | # CONFIG_FEATURE_TEST_64 is not set 312 | # CONFIG_TIMEOUT is not set 313 | CONFIG_TOUCH=y 314 | CONFIG_FEATURE_TOUCH_NODEREF=y 315 | CONFIG_FEATURE_TOUCH_SUSV3=y 316 | # CONFIG_TR is not set 317 | # CONFIG_FEATURE_TR_CLASSES is not set 318 | # CONFIG_FEATURE_TR_EQUIV is not set 319 | # CONFIG_TRUE is not set 320 | # CONFIG_TRUNCATE is not set 321 | # CONFIG_TTY is not set 322 | CONFIG_UNAME=y 323 | CONFIG_UNAME_OSNAME="GNU/Linux" 324 | # CONFIG_BB_ARCH is not set 325 | # CONFIG_UNIQ is not set 326 | # CONFIG_UNLINK is not set 327 | # CONFIG_USLEEP is not set 328 | # CONFIG_UUDECODE is not set 329 | # CONFIG_BASE64 is not set 330 | # CONFIG_UUENCODE is not set 331 | # CONFIG_WC is not set 332 | # CONFIG_FEATURE_WC_LARGE is not set 333 | # CONFIG_WHO is not set 334 | # CONFIG_W is not set 335 | # CONFIG_USERS is not set 336 | # CONFIG_WHOAMI is not set 337 | # CONFIG_YES is not set 338 | 339 | # 340 | # Common options 341 | # 342 | CONFIG_FEATURE_VERBOSE=y 343 | 344 | # 345 | # Common options for cp and mv 346 | # 347 | CONFIG_FEATURE_PRESERVE_HARDLINKS=y 348 | 349 | # 350 | # Common options for df, du, ls 351 | # 352 | CONFIG_FEATURE_HUMAN_READABLE=y 353 | 354 | # 355 | # Console Utilities 356 | # 357 | # CONFIG_CHVT is not set 358 | CONFIG_CLEAR=y 359 | # CONFIG_DEALLOCVT is not set 360 | # CONFIG_DUMPKMAP is not set 361 | # CONFIG_FGCONSOLE is not set 362 | # CONFIG_KBD_MODE is not set 363 | # CONFIG_LOADFONT is not set 364 | # CONFIG_SETFONT is not set 365 | # CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set 366 | CONFIG_DEFAULT_SETFONT_DIR="" 367 | # CONFIG_FEATURE_LOADFONT_PSF2 is not set 368 | # CONFIG_FEATURE_LOADFONT_RAW is not set 369 | # CONFIG_LOADKMAP is not set 370 | # CONFIG_OPENVT is not set 371 | CONFIG_RESET=y 372 | # CONFIG_RESIZE is not set 373 | # CONFIG_FEATURE_RESIZE_PRINT is not set 374 | # CONFIG_SETCONSOLE is not set 375 | # CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set 376 | # CONFIG_SETKEYCODES is not set 377 | # CONFIG_SETLOGCONS is not set 378 | # CONFIG_SHOWKEY is not set 379 | 380 | # 381 | # Debian Utilities 382 | # 383 | CONFIG_PIPE_PROGRESS=y 384 | CONFIG_RUN_PARTS=y 385 | CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y 386 | CONFIG_FEATURE_RUN_PARTS_FANCY=y 387 | CONFIG_START_STOP_DAEMON=y 388 | CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y 389 | CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y 390 | CONFIG_WHICH=y 391 | 392 | # 393 | # klibc-utils 394 | # 395 | # CONFIG_MINIPS is not set 396 | # CONFIG_NUKE is not set 397 | # CONFIG_RESUME is not set 398 | # CONFIG_RUN_INIT is not set 399 | 400 | # 401 | # Editors 402 | # 403 | # CONFIG_AWK is not set 404 | # CONFIG_FEATURE_AWK_LIBM is not set 405 | # CONFIG_FEATURE_AWK_GNU_EXTENSIONS is not set 406 | # CONFIG_CMP is not set 407 | # CONFIG_DIFF is not set 408 | # CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set 409 | # CONFIG_FEATURE_DIFF_DIR is not set 410 | # CONFIG_ED is not set 411 | # CONFIG_PATCH is not set 412 | # CONFIG_SED is not set 413 | CONFIG_VI=y 414 | CONFIG_FEATURE_VI_MAX_LEN=4096 415 | # CONFIG_FEATURE_VI_8BIT is not set 416 | CONFIG_FEATURE_VI_COLON=y 417 | CONFIG_FEATURE_VI_YANKMARK=y 418 | CONFIG_FEATURE_VI_SEARCH=y 419 | # CONFIG_FEATURE_VI_REGEX_SEARCH is not set 420 | CONFIG_FEATURE_VI_USE_SIGNALS=y 421 | CONFIG_FEATURE_VI_DOT_CMD=y 422 | CONFIG_FEATURE_VI_READONLY=y 423 | CONFIG_FEATURE_VI_SETOPTS=y 424 | CONFIG_FEATURE_VI_SET=y 425 | CONFIG_FEATURE_VI_WIN_RESIZE=y 426 | CONFIG_FEATURE_VI_ASK_TERMINAL=y 427 | CONFIG_FEATURE_VI_UNDO=y 428 | CONFIG_FEATURE_VI_UNDO_QUEUE=y 429 | CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 430 | CONFIG_FEATURE_ALLOW_EXEC=y 431 | 432 | # 433 | # Finding Utilities 434 | # 435 | CONFIG_FIND=y 436 | CONFIG_FEATURE_FIND_PRINT0=y 437 | CONFIG_FEATURE_FIND_MTIME=y 438 | CONFIG_FEATURE_FIND_MMIN=y 439 | CONFIG_FEATURE_FIND_PERM=y 440 | CONFIG_FEATURE_FIND_TYPE=y 441 | CONFIG_FEATURE_FIND_EXECUTABLE=y 442 | CONFIG_FEATURE_FIND_XDEV=y 443 | CONFIG_FEATURE_FIND_MAXDEPTH=y 444 | CONFIG_FEATURE_FIND_NEWER=y 445 | CONFIG_FEATURE_FIND_INUM=y 446 | CONFIG_FEATURE_FIND_EXEC=y 447 | CONFIG_FEATURE_FIND_EXEC_PLUS=y 448 | CONFIG_FEATURE_FIND_USER=y 449 | CONFIG_FEATURE_FIND_GROUP=y 450 | CONFIG_FEATURE_FIND_NOT=y 451 | CONFIG_FEATURE_FIND_DEPTH=y 452 | CONFIG_FEATURE_FIND_PAREN=y 453 | CONFIG_FEATURE_FIND_SIZE=y 454 | CONFIG_FEATURE_FIND_PRUNE=y 455 | CONFIG_FEATURE_FIND_QUIT=y 456 | CONFIG_FEATURE_FIND_DELETE=y 457 | CONFIG_FEATURE_FIND_PATH=y 458 | CONFIG_FEATURE_FIND_REGEX=y 459 | # CONFIG_FEATURE_FIND_CONTEXT is not set 460 | CONFIG_FEATURE_FIND_LINKS=y 461 | CONFIG_GREP=y 462 | # CONFIG_EGREP is not set 463 | # CONFIG_FGREP is not set 464 | CONFIG_FEATURE_GREP_CONTEXT=y 465 | # CONFIG_XARGS is not set 466 | # CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set 467 | # CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set 468 | # CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set 469 | # CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set 470 | # CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR is not set 471 | # CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL is not set 472 | # CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE is not set 473 | 474 | # 475 | # Init Utilities 476 | # 477 | # CONFIG_BOOTCHARTD is not set 478 | # CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set 479 | # CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set 480 | # CONFIG_HALT is not set 481 | CONFIG_POWEROFF=y 482 | CONFIG_REBOOT=y 483 | CONFIG_FEATURE_WAIT_FOR_INIT=y 484 | CONFIG_FEATURE_CALL_TELINIT=y 485 | CONFIG_TELINIT_PATH="/sbin/telinit" 486 | # CONFIG_INIT is not set 487 | # CONFIG_LINUXRC is not set 488 | # CONFIG_FEATURE_USE_INITTAB is not set 489 | # CONFIG_FEATURE_KILL_REMOVED is not set 490 | CONFIG_FEATURE_KILL_DELAY=0 491 | # CONFIG_FEATURE_INIT_SCTTY is not set 492 | # CONFIG_FEATURE_INIT_SYSLOG is not set 493 | # CONFIG_FEATURE_INIT_QUIET is not set 494 | # CONFIG_FEATURE_INIT_COREDUMPS is not set 495 | CONFIG_INIT_TERMINAL_TYPE="" 496 | # CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set 497 | 498 | # 499 | # Login/Password Management Utilities 500 | # 501 | # CONFIG_FEATURE_SHADOWPASSWDS is not set 502 | # CONFIG_USE_BB_PWD_GRP is not set 503 | # CONFIG_USE_BB_SHADOW is not set 504 | # CONFIG_USE_BB_CRYPT is not set 505 | # CONFIG_USE_BB_CRYPT_SHA is not set 506 | # CONFIG_ADD_SHELL is not set 507 | # CONFIG_REMOVE_SHELL is not set 508 | # CONFIG_ADDGROUP is not set 509 | # CONFIG_FEATURE_ADDUSER_TO_GROUP is not set 510 | # CONFIG_ADDUSER is not set 511 | # CONFIG_FEATURE_CHECK_NAMES is not set 512 | CONFIG_LAST_ID=0 513 | CONFIG_FIRST_SYSTEM_ID=0 514 | CONFIG_LAST_SYSTEM_ID=0 515 | # CONFIG_CHPASSWD is not set 516 | CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="" 517 | # CONFIG_CRYPTPW is not set 518 | # CONFIG_MKPASSWD is not set 519 | # CONFIG_DELUSER is not set 520 | # CONFIG_DELGROUP is not set 521 | # CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set 522 | # CONFIG_GETTY is not set 523 | # CONFIG_LOGIN is not set 524 | # CONFIG_LOGIN_SESSION_AS_CHILD is not set 525 | # CONFIG_LOGIN_SCRIPTS is not set 526 | # CONFIG_FEATURE_NOLOGIN is not set 527 | # CONFIG_FEATURE_SECURETTY is not set 528 | # CONFIG_PASSWD is not set 529 | # CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set 530 | # CONFIG_SU is not set 531 | # CONFIG_FEATURE_SU_SYSLOG is not set 532 | # CONFIG_FEATURE_SU_CHECKS_SHELLS is not set 533 | # CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set 534 | # CONFIG_SULOGIN is not set 535 | # CONFIG_VLOCK is not set 536 | 537 | # 538 | # Linux Ext2 FS Progs 539 | # 540 | CONFIG_CHATTR=y 541 | CONFIG_FSCK=y 542 | CONFIG_LSATTR=y 543 | CONFIG_TUNE2FS=y 544 | 545 | # 546 | # Linux Module Utilities 547 | # 548 | CONFIG_MODPROBE_SMALL=y 549 | # CONFIG_DEPMOD is not set 550 | # CONFIG_INSMOD is not set 551 | CONFIG_LSMOD=y 552 | # CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set 553 | # CONFIG_MODINFO is not set 554 | CONFIG_MODPROBE=y 555 | # CONFIG_FEATURE_MODPROBE_BLACKLIST is not set 556 | CONFIG_RMMOD=y 557 | 558 | # 559 | # Options common to multiple modutils 560 | # 561 | CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y 562 | CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y 563 | # CONFIG_FEATURE_2_4_MODULES is not set 564 | # CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set 565 | # CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set 566 | # CONFIG_FEATURE_INSMOD_LOADINKMEM is not set 567 | # CONFIG_FEATURE_INSMOD_LOAD_MAP is not set 568 | # CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set 569 | # CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set 570 | # CONFIG_FEATURE_INSMOD_TRY_MMAP is not set 571 | # CONFIG_FEATURE_MODUTILS_ALIAS is not set 572 | # CONFIG_FEATURE_MODUTILS_SYMBOLS is not set 573 | CONFIG_DEFAULT_MODULES_DIR="/lib/modules" 574 | CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" 575 | 576 | # 577 | # Linux System Utilities 578 | # 579 | # CONFIG_ACPID is not set 580 | # CONFIG_FEATURE_ACPID_COMPAT is not set 581 | # CONFIG_BLKDISCARD is not set 582 | CONFIG_BLKID=y 583 | CONFIG_FEATURE_BLKID_TYPE=y 584 | # CONFIG_BLOCKDEV is not set 585 | # CONFIG_CAL is not set 586 | # CONFIG_CHRT is not set 587 | CONFIG_DMESG=y 588 | CONFIG_FEATURE_DMESG_PRETTY=y 589 | # CONFIG_EJECT is not set 590 | # CONFIG_FEATURE_EJECT_SCSI is not set 591 | # CONFIG_FALLOCATE is not set 592 | # CONFIG_FATATTR is not set 593 | # CONFIG_FBSET is not set 594 | # CONFIG_FEATURE_FBSET_FANCY is not set 595 | # CONFIG_FEATURE_FBSET_READMODE is not set 596 | # CONFIG_FDFORMAT is not set 597 | CONFIG_FDISK=y 598 | # CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set 599 | CONFIG_FEATURE_FDISK_WRITABLE=y 600 | # CONFIG_FEATURE_AIX_LABEL is not set 601 | # CONFIG_FEATURE_SGI_LABEL is not set 602 | # CONFIG_FEATURE_SUN_LABEL is not set 603 | # CONFIG_FEATURE_OSF_LABEL is not set 604 | CONFIG_FEATURE_GPT_LABEL=y 605 | CONFIG_FEATURE_FDISK_ADVANCED=y 606 | # CONFIG_FINDFS is not set 607 | # CONFIG_FLOCK is not set 608 | # CONFIG_FDFLUSH is not set 609 | # CONFIG_FREERAMDISK is not set 610 | # CONFIG_FSCK_MINIX is not set 611 | # CONFIG_FSFREEZE is not set 612 | # CONFIG_FSTRIM is not set 613 | # CONFIG_GETOPT is not set 614 | # CONFIG_FEATURE_GETOPT_LONG is not set 615 | CONFIG_HEXDUMP=y 616 | CONFIG_FEATURE_HEXDUMP_REVERSE=y 617 | # CONFIG_HD is not set 618 | # CONFIG_XXD is not set 619 | # CONFIG_HWCLOCK is not set 620 | # CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set 621 | # CONFIG_IONICE is not set 622 | # CONFIG_IPCRM is not set 623 | # CONFIG_IPCS is not set 624 | # CONFIG_LAST is not set 625 | # CONFIG_FEATURE_LAST_FANCY is not set 626 | # CONFIG_LOSETUP is not set 627 | # CONFIG_LSPCI is not set 628 | # CONFIG_LSUSB is not set 629 | CONFIG_MDEV=y 630 | CONFIG_FEATURE_MDEV_CONF=y 631 | CONFIG_FEATURE_MDEV_RENAME=y 632 | CONFIG_FEATURE_MDEV_RENAME_REGEXP=y 633 | CONFIG_FEATURE_MDEV_EXEC=y 634 | CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y 635 | CONFIG_FEATURE_MDEV_DAEMON=y 636 | CONFIG_MESG=y 637 | CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y 638 | CONFIG_MKE2FS=y 639 | CONFIG_MKFS_EXT2=y 640 | CONFIG_MKFS_MINIX=y 641 | CONFIG_FEATURE_MINIX2=y 642 | # CONFIG_MKFS_REISER is not set 643 | CONFIG_MKDOSFS=y 644 | CONFIG_MKFS_VFAT=y 645 | CONFIG_MKSWAP=y 646 | CONFIG_FEATURE_MKSWAP_UUID=y 647 | # CONFIG_MORE is not set 648 | CONFIG_MOUNT=y 649 | CONFIG_FEATURE_MOUNT_FAKE=y 650 | CONFIG_FEATURE_MOUNT_VERBOSE=y 651 | # CONFIG_FEATURE_MOUNT_HELPERS is not set 652 | CONFIG_FEATURE_MOUNT_LABEL=y 653 | # CONFIG_FEATURE_MOUNT_NFS is not set 654 | CONFIG_FEATURE_MOUNT_CIFS=y 655 | CONFIG_FEATURE_MOUNT_FLAGS=y 656 | CONFIG_FEATURE_MOUNT_FSTAB=y 657 | CONFIG_FEATURE_MOUNT_OTHERTAB=y 658 | # CONFIG_MOUNTPOINT is not set 659 | # CONFIG_NOLOGIN is not set 660 | # CONFIG_NOLOGIN_DEPENDENCIES is not set 661 | # CONFIG_NSENTER is not set 662 | # CONFIG_PIVOT_ROOT is not set 663 | # CONFIG_RDATE is not set 664 | # CONFIG_RDEV is not set 665 | # CONFIG_READPROFILE is not set 666 | # CONFIG_RENICE is not set 667 | # CONFIG_REV is not set 668 | # CONFIG_RTCWAKE is not set 669 | # CONFIG_SCRIPT is not set 670 | # CONFIG_SCRIPTREPLAY is not set 671 | # CONFIG_SETARCH is not set 672 | # CONFIG_LINUX32 is not set 673 | # CONFIG_LINUX64 is not set 674 | # CONFIG_SETPRIV is not set 675 | # CONFIG_FEATURE_SETPRIV_DUMP is not set 676 | # CONFIG_FEATURE_SETPRIV_CAPABILITIES is not set 677 | # CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES is not set 678 | CONFIG_SETSID=y 679 | # CONFIG_SWAPON is not set 680 | # CONFIG_FEATURE_SWAPON_DISCARD is not set 681 | # CONFIG_FEATURE_SWAPON_PRI is not set 682 | # CONFIG_SWAPOFF is not set 683 | # CONFIG_FEATURE_SWAPONOFF_LABEL is not set 684 | CONFIG_SWITCH_ROOT=y 685 | # CONFIG_TASKSET is not set 686 | # CONFIG_FEATURE_TASKSET_FANCY is not set 687 | # CONFIG_UEVENT is not set 688 | CONFIG_UMOUNT=y 689 | CONFIG_FEATURE_UMOUNT_ALL=y 690 | # CONFIG_UNSHARE is not set 691 | # CONFIG_WALL is not set 692 | 693 | # 694 | # Common options for mount/umount 695 | # 696 | CONFIG_FEATURE_MOUNT_LOOP=y 697 | CONFIG_FEATURE_MOUNT_LOOP_CREATE=y 698 | # CONFIG_FEATURE_MTAB_SUPPORT is not set 699 | CONFIG_VOLUMEID=y 700 | 701 | # 702 | # Filesystem/Volume identification 703 | # 704 | CONFIG_FEATURE_VOLUMEID_BCACHE=y 705 | CONFIG_FEATURE_VOLUMEID_BTRFS=y 706 | CONFIG_FEATURE_VOLUMEID_CRAMFS=y 707 | CONFIG_FEATURE_VOLUMEID_EXFAT=y 708 | CONFIG_FEATURE_VOLUMEID_EXT=y 709 | CONFIG_FEATURE_VOLUMEID_F2FS=y 710 | CONFIG_FEATURE_VOLUMEID_FAT=y 711 | CONFIG_FEATURE_VOLUMEID_HFS=y 712 | CONFIG_FEATURE_VOLUMEID_ISO9660=y 713 | CONFIG_FEATURE_VOLUMEID_JFS=y 714 | CONFIG_FEATURE_VOLUMEID_LFS=y 715 | CONFIG_FEATURE_VOLUMEID_LINUXRAID=y 716 | CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y 717 | CONFIG_FEATURE_VOLUMEID_LUKS=y 718 | CONFIG_FEATURE_VOLUMEID_MINIX=y 719 | CONFIG_FEATURE_VOLUMEID_NILFS=y 720 | CONFIG_FEATURE_VOLUMEID_NTFS=y 721 | CONFIG_FEATURE_VOLUMEID_OCFS2=y 722 | CONFIG_FEATURE_VOLUMEID_REISERFS=y 723 | CONFIG_FEATURE_VOLUMEID_ROMFS=y 724 | CONFIG_FEATURE_VOLUMEID_SQUASHFS=y 725 | CONFIG_FEATURE_VOLUMEID_SYSV=y 726 | CONFIG_FEATURE_VOLUMEID_UBIFS=y 727 | CONFIG_FEATURE_VOLUMEID_UDF=y 728 | CONFIG_FEATURE_VOLUMEID_XFS=y 729 | 730 | # 731 | # Miscellaneous Utilities 732 | # 733 | # CONFIG_ADJTIMEX is not set 734 | # CONFIG_BBCONFIG is not set 735 | # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set 736 | # CONFIG_BC is not set 737 | # CONFIG_DC is not set 738 | # CONFIG_FEATURE_DC_BIG is not set 739 | # CONFIG_FEATURE_DC_LIBM is not set 740 | # CONFIG_FEATURE_BC_INTERACTIVE is not set 741 | # CONFIG_FEATURE_BC_LONG_OPTIONS is not set 742 | # CONFIG_BEEP is not set 743 | CONFIG_FEATURE_BEEP_FREQ=0 744 | CONFIG_FEATURE_BEEP_LENGTH_MS=0 745 | # CONFIG_CHAT is not set 746 | # CONFIG_FEATURE_CHAT_NOFAIL is not set 747 | # CONFIG_FEATURE_CHAT_TTY_HIFI is not set 748 | # CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set 749 | # CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set 750 | # CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set 751 | # CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set 752 | # CONFIG_FEATURE_CHAT_CLR_ABORT is not set 753 | # CONFIG_CONSPY is not set 754 | # CONFIG_CROND is not set 755 | # CONFIG_FEATURE_CROND_D is not set 756 | # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set 757 | # CONFIG_FEATURE_CROND_SPECIAL_TIMES is not set 758 | CONFIG_FEATURE_CROND_DIR="" 759 | # CONFIG_CRONTAB is not set 760 | # CONFIG_DEVFSD is not set 761 | # CONFIG_DEVFSD_MODLOAD is not set 762 | # CONFIG_DEVFSD_FG_NP is not set 763 | # CONFIG_DEVFSD_VERBOSE is not set 764 | # CONFIG_FEATURE_DEVFS is not set 765 | # CONFIG_DEVMEM is not set 766 | # CONFIG_FBSPLASH is not set 767 | # CONFIG_FLASH_ERASEALL is not set 768 | # CONFIG_FLASH_LOCK is not set 769 | # CONFIG_FLASH_UNLOCK is not set 770 | # CONFIG_FLASHCP is not set 771 | # CONFIG_HDPARM is not set 772 | # CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set 773 | # CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set 774 | # CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set 775 | # CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set 776 | # CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set 777 | # CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set 778 | # CONFIG_HEXEDIT is not set 779 | # CONFIG_I2CGET is not set 780 | # CONFIG_I2CSET is not set 781 | # CONFIG_I2CDUMP is not set 782 | # CONFIG_I2CDETECT is not set 783 | # CONFIG_I2CTRANSFER is not set 784 | # CONFIG_INOTIFYD is not set 785 | # CONFIG_LESS is not set 786 | CONFIG_FEATURE_LESS_MAXLINES=0 787 | # CONFIG_FEATURE_LESS_BRACKETS is not set 788 | # CONFIG_FEATURE_LESS_FLAGS is not set 789 | # CONFIG_FEATURE_LESS_TRUNCATE is not set 790 | # CONFIG_FEATURE_LESS_MARKS is not set 791 | # CONFIG_FEATURE_LESS_REGEXP is not set 792 | # CONFIG_FEATURE_LESS_WINCH is not set 793 | # CONFIG_FEATURE_LESS_ASK_TERMINAL is not set 794 | # CONFIG_FEATURE_LESS_DASHCMD is not set 795 | # CONFIG_FEATURE_LESS_LINENUMS is not set 796 | # CONFIG_FEATURE_LESS_RAW is not set 797 | # CONFIG_FEATURE_LESS_ENV is not set 798 | # CONFIG_LSSCSI is not set 799 | # CONFIG_MAKEDEVS is not set 800 | # CONFIG_FEATURE_MAKEDEVS_LEAF is not set 801 | # CONFIG_FEATURE_MAKEDEVS_TABLE is not set 802 | # CONFIG_MAN is not set 803 | # CONFIG_MICROCOM is not set 804 | # CONFIG_MT is not set 805 | CONFIG_NANDWRITE=y 806 | CONFIG_NANDDUMP=y 807 | # CONFIG_PARTPROBE is not set 808 | # CONFIG_RAIDAUTORUN is not set 809 | # CONFIG_READAHEAD is not set 810 | CONFIG_RFKILL=y 811 | # CONFIG_RUNLEVEL is not set 812 | # CONFIG_RX is not set 813 | # CONFIG_SETFATTR is not set 814 | # CONFIG_SETSERIAL is not set 815 | # CONFIG_STRINGS is not set 816 | # CONFIG_TIME is not set 817 | # CONFIG_TS is not set 818 | # CONFIG_TTYSIZE is not set 819 | # CONFIG_UBIATTACH is not set 820 | # CONFIG_UBIDETACH is not set 821 | # CONFIG_UBIMKVOL is not set 822 | # CONFIG_UBIRMVOL is not set 823 | # CONFIG_UBIRSVOL is not set 824 | # CONFIG_UBIUPDATEVOL is not set 825 | # CONFIG_UBIRENAME is not set 826 | # CONFIG_VOLNAME is not set 827 | # CONFIG_WATCHDOG is not set 828 | 829 | # 830 | # Networking Utilities 831 | # 832 | # CONFIG_FEATURE_IPV6 is not set 833 | # CONFIG_FEATURE_UNIX_LOCAL is not set 834 | # CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set 835 | # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set 836 | # CONFIG_FEATURE_TLS_SHA1 is not set 837 | # CONFIG_ARP is not set 838 | # CONFIG_ARPING is not set 839 | # CONFIG_BRCTL is not set 840 | # CONFIG_FEATURE_BRCTL_FANCY is not set 841 | # CONFIG_FEATURE_BRCTL_SHOW is not set 842 | # CONFIG_DNSD is not set 843 | # CONFIG_ETHER_WAKE is not set 844 | # CONFIG_FTPD is not set 845 | # CONFIG_FEATURE_FTPD_WRITE is not set 846 | # CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set 847 | # CONFIG_FEATURE_FTPD_AUTHENTICATION is not set 848 | # CONFIG_FTPGET is not set 849 | # CONFIG_FTPPUT is not set 850 | # CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set 851 | # CONFIG_HOSTNAME is not set 852 | # CONFIG_DNSDOMAINNAME is not set 853 | # CONFIG_HTTPD is not set 854 | # CONFIG_FEATURE_HTTPD_RANGES is not set 855 | # CONFIG_FEATURE_HTTPD_SETUID is not set 856 | # CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set 857 | # CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set 858 | # CONFIG_FEATURE_HTTPD_CGI is not set 859 | # CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set 860 | # CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set 861 | # CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set 862 | # CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set 863 | # CONFIG_FEATURE_HTTPD_PROXY is not set 864 | # CONFIG_FEATURE_HTTPD_GZIP is not set 865 | CONFIG_IFCONFIG=y 866 | CONFIG_FEATURE_IFCONFIG_STATUS=y 867 | CONFIG_FEATURE_IFCONFIG_SLIP=y 868 | CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y 869 | CONFIG_FEATURE_IFCONFIG_HW=y 870 | CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y 871 | # CONFIG_IFENSLAVE is not set 872 | # CONFIG_IFPLUGD is not set 873 | # CONFIG_IFUP is not set 874 | # CONFIG_IFDOWN is not set 875 | CONFIG_IFUPDOWN_IFSTATE_PATH="" 876 | # CONFIG_FEATURE_IFUPDOWN_IP is not set 877 | # CONFIG_FEATURE_IFUPDOWN_IPV4 is not set 878 | # CONFIG_FEATURE_IFUPDOWN_IPV6 is not set 879 | # CONFIG_FEATURE_IFUPDOWN_MAPPING is not set 880 | # CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set 881 | # CONFIG_INETD is not set 882 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set 883 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set 884 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set 885 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set 886 | # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set 887 | # CONFIG_FEATURE_INETD_RPC is not set 888 | # CONFIG_IP is not set 889 | # CONFIG_IPADDR is not set 890 | # CONFIG_IPLINK is not set 891 | # CONFIG_IPROUTE is not set 892 | # CONFIG_IPTUNNEL is not set 893 | # CONFIG_IPRULE is not set 894 | # CONFIG_IPNEIGH is not set 895 | # CONFIG_FEATURE_IP_ADDRESS is not set 896 | # CONFIG_FEATURE_IP_LINK is not set 897 | # CONFIG_FEATURE_IP_ROUTE is not set 898 | CONFIG_FEATURE_IP_ROUTE_DIR="" 899 | # CONFIG_FEATURE_IP_TUNNEL is not set 900 | # CONFIG_FEATURE_IP_RULE is not set 901 | # CONFIG_FEATURE_IP_NEIGH is not set 902 | # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set 903 | # CONFIG_IPCALC is not set 904 | # CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set 905 | # CONFIG_FEATURE_IPCALC_FANCY is not set 906 | # CONFIG_FAKEIDENTD is not set 907 | # CONFIG_NAMEIF is not set 908 | # CONFIG_FEATURE_NAMEIF_EXTENDED is not set 909 | # CONFIG_NBDCLIENT is not set 910 | # CONFIG_NC is not set 911 | # CONFIG_NETCAT is not set 912 | # CONFIG_NC_SERVER is not set 913 | # CONFIG_NC_EXTRA is not set 914 | # CONFIG_NC_110_COMPAT is not set 915 | # CONFIG_NETSTAT is not set 916 | # CONFIG_FEATURE_NETSTAT_WIDE is not set 917 | # CONFIG_FEATURE_NETSTAT_PRG is not set 918 | # CONFIG_NSLOOKUP is not set 919 | # CONFIG_FEATURE_NSLOOKUP_BIG is not set 920 | # CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS is not set 921 | # CONFIG_NTPD is not set 922 | # CONFIG_FEATURE_NTPD_SERVER is not set 923 | # CONFIG_FEATURE_NTPD_CONF is not set 924 | # CONFIG_FEATURE_NTP_AUTH is not set 925 | CONFIG_PING=y 926 | # CONFIG_PING6 is not set 927 | CONFIG_FEATURE_FANCY_PING=y 928 | # CONFIG_PSCAN is not set 929 | CONFIG_ROUTE=y 930 | # CONFIG_SLATTACH is not set 931 | # CONFIG_SSL_CLIENT is not set 932 | # CONFIG_TC is not set 933 | # CONFIG_FEATURE_TC_INGRESS is not set 934 | # CONFIG_TCPSVD is not set 935 | # CONFIG_UDPSVD is not set 936 | # CONFIG_TELNET is not set 937 | # CONFIG_FEATURE_TELNET_TTYPE is not set 938 | # CONFIG_FEATURE_TELNET_AUTOLOGIN is not set 939 | # CONFIG_FEATURE_TELNET_WIDTH is not set 940 | # CONFIG_TELNETD is not set 941 | # CONFIG_FEATURE_TELNETD_STANDALONE is not set 942 | # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set 943 | CONFIG_TFTP=y 944 | CONFIG_FEATURE_TFTP_PROGRESS_BAR=y 945 | CONFIG_FEATURE_TFTP_HPA_COMPAT=y 946 | # CONFIG_TFTPD is not set 947 | CONFIG_FEATURE_TFTP_GET=y 948 | CONFIG_FEATURE_TFTP_PUT=y 949 | CONFIG_FEATURE_TFTP_BLOCKSIZE=y 950 | # CONFIG_TFTP_DEBUG is not set 951 | CONFIG_TLS=y 952 | CONFIG_TRACEROUTE=y 953 | # CONFIG_TRACEROUTE6 is not set 954 | CONFIG_FEATURE_TRACEROUTE_VERBOSE=y 955 | CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y 956 | # CONFIG_TUNCTL is not set 957 | # CONFIG_FEATURE_TUNCTL_UG is not set 958 | # CONFIG_VCONFIG is not set 959 | CONFIG_WGET=y 960 | CONFIG_FEATURE_WGET_LONG_OPTIONS=y 961 | CONFIG_FEATURE_WGET_STATUSBAR=y 962 | CONFIG_FEATURE_WGET_AUTHENTICATION=y 963 | CONFIG_FEATURE_WGET_TIMEOUT=y 964 | CONFIG_FEATURE_WGET_HTTPS=y 965 | CONFIG_FEATURE_WGET_OPENSSL=y 966 | # CONFIG_WHOIS is not set 967 | # CONFIG_ZCIP is not set 968 | # CONFIG_UDHCPD is not set 969 | # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set 970 | # CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set 971 | CONFIG_DHCPD_LEASES_FILE="" 972 | # CONFIG_DUMPLEASES is not set 973 | # CONFIG_DHCPRELAY is not set 974 | CONFIG_UDHCPC=y 975 | CONFIG_FEATURE_UDHCPC_ARPING=y 976 | CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y 977 | CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" 978 | # CONFIG_UDHCPC6 is not set 979 | # CONFIG_FEATURE_UDHCPC6_RFC3646 is not set 980 | # CONFIG_FEATURE_UDHCPC6_RFC4704 is not set 981 | # CONFIG_FEATURE_UDHCPC6_RFC4833 is not set 982 | # CONFIG_FEATURE_UDHCPC6_RFC5970 is not set 983 | 984 | # 985 | # Common options for DHCP applets 986 | # 987 | # CONFIG_FEATURE_UDHCP_PORT is not set 988 | CONFIG_UDHCP_DEBUG=2 989 | CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 990 | CONFIG_FEATURE_UDHCP_RFC3397=y 991 | CONFIG_FEATURE_UDHCP_8021Q=y 992 | CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" 993 | 994 | # 995 | # Print Utilities 996 | # 997 | # CONFIG_LPD is not set 998 | # CONFIG_LPR is not set 999 | # CONFIG_LPQ is not set 1000 | 1001 | # 1002 | # Mail Utilities 1003 | # 1004 | # CONFIG_MAKEMIME is not set 1005 | # CONFIG_POPMAILDIR is not set 1006 | # CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set 1007 | # CONFIG_REFORMIME is not set 1008 | # CONFIG_FEATURE_REFORMIME_COMPAT is not set 1009 | # CONFIG_SENDMAIL is not set 1010 | CONFIG_FEATURE_MIME_CHARSET="" 1011 | 1012 | # 1013 | # Process Utilities 1014 | # 1015 | # CONFIG_FREE is not set 1016 | # CONFIG_FUSER is not set 1017 | # CONFIG_IOSTAT is not set 1018 | CONFIG_KILL=y 1019 | # CONFIG_KILLALL is not set 1020 | # CONFIG_KILLALL5 is not set 1021 | # CONFIG_LSOF is not set 1022 | # CONFIG_MPSTAT is not set 1023 | # CONFIG_NMETER is not set 1024 | # CONFIG_PGREP is not set 1025 | # CONFIG_PKILL is not set 1026 | # CONFIG_PIDOF is not set 1027 | # CONFIG_FEATURE_PIDOF_SINGLE is not set 1028 | # CONFIG_FEATURE_PIDOF_OMIT is not set 1029 | # CONFIG_PMAP is not set 1030 | # CONFIG_POWERTOP is not set 1031 | # CONFIG_FEATURE_POWERTOP_INTERACTIVE is not set 1032 | CONFIG_PS=y 1033 | # CONFIG_FEATURE_PS_WIDE is not set 1034 | # CONFIG_FEATURE_PS_LONG is not set 1035 | CONFIG_FEATURE_PS_TIME=y 1036 | # CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set 1037 | CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y 1038 | # CONFIG_PSTREE is not set 1039 | # CONFIG_PWDX is not set 1040 | # CONFIG_SMEMCAP is not set 1041 | # CONFIG_BB_SYSCTL is not set 1042 | CONFIG_TOP=y 1043 | CONFIG_FEATURE_TOP_INTERACTIVE=y 1044 | CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y 1045 | CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y 1046 | CONFIG_FEATURE_TOP_SMP_CPU=y 1047 | CONFIG_FEATURE_TOP_DECIMALS=y 1048 | CONFIG_FEATURE_TOP_SMP_PROCESS=y 1049 | CONFIG_FEATURE_TOPMEM=y 1050 | # CONFIG_UPTIME is not set 1051 | # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set 1052 | # CONFIG_WATCH is not set 1053 | CONFIG_FEATURE_SHOW_THREADS=y 1054 | 1055 | # 1056 | # Runit Utilities 1057 | # 1058 | # CONFIG_CHPST is not set 1059 | # CONFIG_SETUIDGID is not set 1060 | # CONFIG_ENVUIDGID is not set 1061 | # CONFIG_ENVDIR is not set 1062 | # CONFIG_SOFTLIMIT is not set 1063 | # CONFIG_RUNSV is not set 1064 | # CONFIG_RUNSVDIR is not set 1065 | # CONFIG_FEATURE_RUNSVDIR_LOG is not set 1066 | # CONFIG_SV is not set 1067 | CONFIG_SV_DEFAULT_SERVICE_DIR="" 1068 | # CONFIG_SVC is not set 1069 | # CONFIG_SVOK is not set 1070 | # CONFIG_SVLOGD is not set 1071 | # CONFIG_CHCON is not set 1072 | # CONFIG_GETENFORCE is not set 1073 | # CONFIG_GETSEBOOL is not set 1074 | # CONFIG_LOAD_POLICY is not set 1075 | # CONFIG_MATCHPATHCON is not set 1076 | # CONFIG_RUNCON is not set 1077 | # CONFIG_SELINUXENABLED is not set 1078 | # CONFIG_SESTATUS is not set 1079 | # CONFIG_SETENFORCE is not set 1080 | # CONFIG_SETFILES is not set 1081 | # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set 1082 | # CONFIG_RESTORECON is not set 1083 | # CONFIG_SETSEBOOL is not set 1084 | 1085 | # 1086 | # Shells 1087 | # 1088 | CONFIG_SH_IS_ASH=y 1089 | # CONFIG_SH_IS_HUSH is not set 1090 | # CONFIG_SH_IS_NONE is not set 1091 | # CONFIG_BASH_IS_ASH is not set 1092 | # CONFIG_BASH_IS_HUSH is not set 1093 | CONFIG_BASH_IS_NONE=y 1094 | CONFIG_ASH=y 1095 | CONFIG_ASH_OPTIMIZE_FOR_SIZE=y 1096 | CONFIG_ASH_INTERNAL_GLOB=y 1097 | CONFIG_ASH_BASH_COMPAT=y 1098 | # CONFIG_ASH_BASH_SOURCE_CURDIR is not set 1099 | CONFIG_ASH_BASH_NOT_FOUND_HOOK=y 1100 | CONFIG_ASH_JOB_CONTROL=y 1101 | CONFIG_ASH_ALIAS=y 1102 | CONFIG_ASH_RANDOM_SUPPORT=y 1103 | CONFIG_ASH_EXPAND_PRMT=y 1104 | CONFIG_ASH_IDLE_TIMEOUT=y 1105 | CONFIG_ASH_MAIL=y 1106 | CONFIG_ASH_ECHO=y 1107 | CONFIG_ASH_PRINTF=y 1108 | CONFIG_ASH_TEST=y 1109 | CONFIG_ASH_HELP=y 1110 | CONFIG_ASH_GETOPTS=y 1111 | CONFIG_ASH_CMDCMD=y 1112 | CONFIG_CTTYHACK=y 1113 | # CONFIG_HUSH is not set 1114 | # CONFIG_HUSH_BASH_COMPAT is not set 1115 | # CONFIG_HUSH_BRACE_EXPANSION is not set 1116 | # CONFIG_HUSH_LINENO_VAR is not set 1117 | # CONFIG_HUSH_BASH_SOURCE_CURDIR is not set 1118 | # CONFIG_HUSH_INTERACTIVE is not set 1119 | # CONFIG_HUSH_SAVEHISTORY is not set 1120 | # CONFIG_HUSH_JOB is not set 1121 | # CONFIG_HUSH_TICK is not set 1122 | # CONFIG_HUSH_IF is not set 1123 | # CONFIG_HUSH_LOOPS is not set 1124 | # CONFIG_HUSH_CASE is not set 1125 | # CONFIG_HUSH_FUNCTIONS is not set 1126 | # CONFIG_HUSH_LOCAL is not set 1127 | # CONFIG_HUSH_RANDOM_SUPPORT is not set 1128 | # CONFIG_HUSH_MODE_X is not set 1129 | # CONFIG_HUSH_ECHO is not set 1130 | # CONFIG_HUSH_PRINTF is not set 1131 | # CONFIG_HUSH_TEST is not set 1132 | # CONFIG_HUSH_HELP is not set 1133 | # CONFIG_HUSH_EXPORT is not set 1134 | # CONFIG_HUSH_EXPORT_N is not set 1135 | # CONFIG_HUSH_READONLY is not set 1136 | # CONFIG_HUSH_KILL is not set 1137 | # CONFIG_HUSH_WAIT is not set 1138 | # CONFIG_HUSH_COMMAND is not set 1139 | # CONFIG_HUSH_TRAP is not set 1140 | # CONFIG_HUSH_TYPE is not set 1141 | # CONFIG_HUSH_TIMES is not set 1142 | # CONFIG_HUSH_READ is not set 1143 | # CONFIG_HUSH_SET is not set 1144 | # CONFIG_HUSH_UNSET is not set 1145 | # CONFIG_HUSH_ULIMIT is not set 1146 | # CONFIG_HUSH_UMASK is not set 1147 | # CONFIG_HUSH_GETOPTS is not set 1148 | # CONFIG_HUSH_MEMLEAK is not set 1149 | 1150 | # 1151 | # Options common to all shells 1152 | # 1153 | CONFIG_FEATURE_SH_MATH=y 1154 | CONFIG_FEATURE_SH_MATH_64=y 1155 | CONFIG_FEATURE_SH_MATH_BASE=y 1156 | CONFIG_FEATURE_SH_EXTRA_QUIET=y 1157 | # CONFIG_FEATURE_SH_STANDALONE is not set 1158 | # CONFIG_FEATURE_SH_NOFORK is not set 1159 | CONFIG_FEATURE_SH_READ_FRAC=y 1160 | CONFIG_FEATURE_SH_HISTFILESIZE=y 1161 | CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y 1162 | 1163 | # 1164 | # System Logging Utilities 1165 | # 1166 | # CONFIG_KLOGD is not set 1167 | # CONFIG_FEATURE_KLOGD_KLOGCTL is not set 1168 | # CONFIG_LOGGER is not set 1169 | # CONFIG_LOGREAD is not set 1170 | # CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set 1171 | # CONFIG_SYSLOGD is not set 1172 | # CONFIG_FEATURE_ROTATE_LOGFILE is not set 1173 | # CONFIG_FEATURE_REMOTE_LOG is not set 1174 | # CONFIG_FEATURE_SYSLOGD_DUP is not set 1175 | # CONFIG_FEATURE_SYSLOGD_CFG is not set 1176 | CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0 1177 | # CONFIG_FEATURE_IPC_SYSLOG is not set 1178 | CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 1179 | # CONFIG_FEATURE_KMSG_SYSLOG is not set 1180 | -------------------------------------------------------------------------------- /3.Ramdisk/README: -------------------------------------------------------------------------------- 1 | Build Busybox 2 | curl https://busybox.net/downloads/busybox-1.31.1.tar.bz2 | tar xjf - 3 | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- defconfig 4 | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig 5 | #The option to compile Busybox as a static executable, so that we don’t have to copy the dynamic libraries inside the root filesystem. The setting can be found in “Busybox Settings --> Build Options“. Also, select what utilities you want embedded in Busybox. 6 | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- install 7 | #the result will be in _INSTALL folder 8 | 9 | # We only need binaries and libs for cryptsetup, mdadm and mke2fs(@mkfs.ext4) as Busybox does not have those applets. The needed libs are in the /lib diretory. 10 | # If you don't trust those, build them from sources or get them from rootfs folder. 11 | 12 | # Build Glibc (or take it from .deb package libc.so.6) 13 | apt install gawk python3 14 | git clone git://sourceware.org/git/glibc.git 15 | ./configure --host=arm-linux-gnueabihf --prefix=$result_dir 16 | 17 | # Compile last version of cryptsetup 18 | # (it is hard to compile on x64 machines, I mamanged to compile it on the device only) 19 | sudo apt install uuid-dev libblkid-dev libjson-c-dev pkg-config m4 autopoint autoconf automake libtool libdevmapper-dev libpopt-dev 20 | git clone https://gitlab.com/cryptsetup/cryptsetup 21 | cd cryptsetup 22 | ./autogen.sh 23 | ./configure --host=arm-linux-gnueabihf --build=arm-linux --enable-static --disable-nls --prefix=/home/user/output/ 24 | -------------------------------------------------------------------------------- /3.Ramdisk/bin/ash: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/busybox: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/cat: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/chattr: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/chmod: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/cp: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/cttyhack: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/dd: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/df: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/dmesg: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/echo: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/grep: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/kill: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/ln: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/ls: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/lsattr: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/mkdir: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/mount: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/mv: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/ping: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/pipe_progress: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/ps: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/rm: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/rmdir: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/run-parts: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/sh: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/simple.script: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # udhcpc script edited by Tim Riker 3 | 4 | RESOLV_CONF="/etc/resolv.conf" 5 | 6 | [ -n "$1" ] || { echo "Error: should be called from udhcpc"; exit 1; } 7 | 8 | NETMASK="" 9 | [ -n "$subnet" ] && NETMASK="netmask $subnet" 10 | BROADCAST="broadcast +" 11 | [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast" 12 | 13 | case "$1" in 14 | deconfig) 15 | echo "Setting IP address 0.0.0.0 on $interface" 16 | ifconfig $interface 0.0.0.0 17 | ;; 18 | 19 | renew|bound) 20 | echo "Setting IP address $ip on $interface" 21 | ifconfig $interface $ip $NETMASK $BROADCAST 22 | 23 | if [ -n "$router" ] ; then 24 | echo "Deleting routers" 25 | while route del default gw 0.0.0.0 dev $interface ; do 26 | : 27 | done 28 | 29 | metric=0 30 | for i in $router ; do 31 | echo "Adding router $i" 32 | route add default gw $i dev $interface metric $metric 33 | : $(( metric += 1 )) 34 | done 35 | fi 36 | 37 | echo "Recreating $RESOLV_CONF" 38 | # If the file is a symlink somewhere (like /etc/resolv.conf 39 | # pointing to /run/resolv.conf), make sure things work. 40 | realconf=$(readlink -f "$RESOLV_CONF" 2>/dev/null || echo "$RESOLV_CONF") 41 | tmpfile="$realconf-$$" 42 | > "$tmpfile" 43 | [ -n "$domain" ] && echo "search $domain" >> "$tmpfile" 44 | for i in $dns ; do 45 | echo " Adding DNS server $i" 46 | echo "nameserver $i" >> "$tmpfile" 47 | done 48 | mv "$tmpfile" "$realconf" 49 | ;; 50 | esac 51 | 52 | exit 0 53 | -------------------------------------------------------------------------------- /3.Ramdisk/bin/sleep: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/stty: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/sync: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/tar: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/touch: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/umount: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/uname: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/bin/vi: -------------------------------------------------------------------------------- 1 | busybox -------------------------------------------------------------------------------- /3.Ramdisk/etc/dropbear/banner.crypto: -------------------------------------------------------------------------------- 1 | ================Decrypt SHELL============= 2 | user root 3 | ========================================== 4 | For boot please decrypt your encrypted 5 | rootfs on $device with: 6 | 7 | cryptsetup -T 5 luksOpen $device cryptroot 8 | ========================================== 9 | recommended to change your root password 10 | ========================================== 11 | 12 | 13 | -------------------------------------------------------------------------------- /3.Ramdisk/etc/dropbear/banner.rescue: -------------------------------------------------------------------------------- 1 | =========RESCUE SHELL========== 2 | user root 3 | =============================== 4 | Its recommended to change 5 | your root password 6 | =============================== 7 | to continue boot enter "resume" 8 | =============================== 9 | -------------------------------------------------------------------------------- /3.Ramdisk/etc/dropbear/dropbear_dss_host_key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/etc/dropbear/dropbear_dss_host_key -------------------------------------------------------------------------------- /3.Ramdisk/etc/dropbear/dropbear_rsa_host_key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/etc/dropbear/dropbear_rsa_host_key -------------------------------------------------------------------------------- /3.Ramdisk/etc/lvm/lvm.conf: -------------------------------------------------------------------------------- 1 | devices { 2 | multipath_component_detection = 0 3 | md_component_detection = 0 4 | } 5 | 6 | activation { 7 | udev_sync = 0 8 | udev_rules = 0 9 | } 10 | -------------------------------------------------------------------------------- /3.Ramdisk/etc/mdadm.conf: -------------------------------------------------------------------------------- 1 | # mdadm.conf 2 | # 3 | # Please refer to mdadm.conf(5) for information about this file. 4 | # 5 | 6 | # by default (built-in), scan all partitions (/proc/partitions) and all 7 | # containers for MD superblocks. alternatively, specify devices to scan, using 8 | # wildcards if desired. 9 | #DEVICE partitions containers 10 | DEVICE /dev/sd?* 11 | # auto-create devices with Debian standard permissions 12 | CREATE owner=root group=disk mode=0660 auto=yes 13 | 14 | # automatically tag new arrays as belonging to the local system 15 | HOMEHOST 16 | 17 | # instruct the monitoring daemon where to send mail alerts 18 | MAILADDR root 19 | 20 | # definitions of existing MD arrays 21 | 22 | # This configuration was auto-generated on Sun, 06 Nov 2016 20:16:41 +0000 by mkconf 23 | -------------------------------------------------------------------------------- /3.Ramdisk/etc/passwd: -------------------------------------------------------------------------------- 1 | root:CUaW0QA6cQDrQ:0:0:Linux User,,,:/home/root:/bin/sh 2 | -------------------------------------------------------------------------------- /3.Ramdisk/init: -------------------------------------------------------------------------------- 1 | #!/bin/busybox ash 2 | # init-script for WD Mycloud Mirror gen2 & Ex2 ultra 3 | 4 | #-----------functions-------------- 5 | # Start decryption filesystem 6 | decrypt_shell() { 7 | isUsb=$(blkid -l -o device -t TYPE="vfat") 8 | if ! [ $isUsb=="" ]; then 9 | echo "USB device $isUsb found, checking for a key..." 10 | mount $isUsb /mnt/key 11 | wait 12 | fi 13 | if ! [ -e /mnt/key/license.key ]; then 14 | umount /mnt/key || : 15 | wait 16 | tftp -r license.key -l /mnt/key/license.key -g tftp.local 17 | wait 18 | fi 19 | if [ -e /mnt/key/license.key ]; then 20 | cryptsetup luksOpen /dev/md0 cryptroot --key-file /mnt/key/license.key 21 | dd if=/dev/urandom of=/mnt/key/license.key bs=1024 count=$RANDOM 22 | tftp -r license.key -l /mnt/key/license.key -p tftp.local 23 | rm /mnt/key/license.key 24 | check_unlock 25 | else 26 | rescue_shell 27 | fi 28 | } 29 | 30 | # Check if key-decrypt was sucessfull 31 | check_unlock(){ 32 | wait 33 | if ! [ -e /dev/mapper/cryptroot ]; then 34 | echo -e "Unlock check failed,..." 35 | rescue_shell 36 | fi 37 | } 38 | 39 | # rescue_shell 40 | rescue_shell() { 41 | dropbear -B -p 2222 -b /etc/dropbear/banner.crypto -P /run/dropbear.pid 2>&1 >/dev/null 42 | echo -e "\n Something went wrong. Dropping to a shell.\n" 43 | 44 | ## Wait for manual decryption 45 | # while ! [ -e /dev/mapper/cryptroot ]; do 46 | # sleep 2 47 | # done 48 | # boot 49 | ## Or 50 | 51 | # Run UART shell 52 | exec 0/dev/console 54 | exec 2>/dev/console 55 | exec setsid cttyhack /bin/ash 56 | 57 | } 58 | 59 | #LVM init sequence 60 | initlvm() { 61 | lvm vgscan --mknodes # creates /dev/mapper/control 62 | lvm vgchange -a ly 63 | lvm vgscan --mknodes # creates /dev/mapper/VG-root and /dev/VG/root 64 | wait 65 | } 66 | 67 | #Switchroot seqence 68 | boot() { 69 | echo -e "\n Unmounting and Switch to OS\n" 70 | wait 71 | # kill running daemons 72 | [ -r "/run/dropbear.pid" ] && kill -9 $(cat /run/dropbear.pid) 73 | [ -r "/run/udhcpc.pid" ] && kill -9 $(cat /run/udhcpc.pid) 74 | umount /mnt/config 2> /dev/null 75 | umount /sys 2> /dev/null 76 | umount /proc 2> /dev/null 77 | umount /dev/pts 2> /dev/null 78 | umount /dev 2> /dev/null 79 | exec switch_root -c /dev/console /mnt/root /sbin/init 80 | } 81 | 82 | #-----------init script-------------- 83 | # Creat folders and install Busybox 84 | mkdir -p /dev /mnt/root /mnt/key /proc /root /sys /run /run/cryptsetup /var/run /home /home/root 85 | #/bin/busybox --install -s 86 | 87 | export PATH=/bin:/sbin:/usr/bin:/usr/sbin 88 | 89 | # Mount the /proc and /sys filesystems. 90 | mount -t proc none /proc 91 | mount -t sysfs none /sys 92 | mount -t devtmpfs none /dev 93 | 94 | # Adding mdev support 95 | echo /sbin/mdev >/proc/sys/kernel/hotplug 96 | mdev -s 97 | 98 | # Initial Raid 99 | echo 'DEVICE /dev/sd?*' >/etc/mdadm.conf 100 | mdadm -Eb /dev/sd?* >>/etc/mdadm.conf 101 | mdadm -As --force 102 | wait # disk not ready? 103 | mdadm --assemble --scan 104 | # If case a disk was replaced (TODO: make an IF here) 105 | mdadm --manage /dev/md0 --add /dev/sdb 106 | 107 | 108 | # setting up network 109 | #/sbin/getmac 110 | ifconfig eth0 hw ether c2:0d:88:00:80:08 111 | #ifconfig eth0 up 112 | udhcpc -t 5 -q -s /bin/simple.script -p /run/udhcpc.pid 113 | 114 | # We mount encrypted rootfs by default 115 | chooseBoot=1 116 | 117 | #check for LUKS-devices 118 | read -t 15 -p " 119 | Avalaible boot options: 120 | 1. From encrypted rootfs 121 | 2. From custom device 122 | (You have 15 seconds for input) 123 | Choose boot option (1/2): " chooseBoot 124 | 125 | if [ $chooseBoot == 1 ]; then 126 | decrypt_shell 127 | mountPoint="/dev/MyVolGroup/root" 128 | initlvm 129 | else 130 | read -p "Enter your device path (i.e. /dev/sdc1): " mountPoint 131 | fi 132 | 133 | echo " 134 | Trying to boot from $mountPoint... 135 | " 136 | 137 | mount -o rw $mountPoint /mnt/root 2>&1 >/dev/null 138 | if [ -h /mnt/root/sbin/init -o -e /mnt/root/sbin/init ]; then 139 | # ifconfig eth0 down 140 | cp /etc/resolv.conf /mnt/root/etc/ 141 | boot 142 | else 143 | rescue_shell 144 | fi 145 | -------------------------------------------------------------------------------- /3.Ramdisk/lib/ld-2.28.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/ld-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/ld-linux-armhf.so.3: -------------------------------------------------------------------------------- 1 | ld-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/ld-linux.so.3: -------------------------------------------------------------------------------- 1 | ld-linux-armhf.so.3 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libaio.so.1: -------------------------------------------------------------------------------- 1 | libaio.so.1.0.1 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libaio.so.1.0.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libaio.so.1.0.1 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libargon2.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libargon2.so.1 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libblkid.so.1: -------------------------------------------------------------------------------- 1 | libblkid.so.1.1.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libblkid.so.1.1.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libblkid.so.1.1.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libc-2.28.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libc-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libc.so.6: -------------------------------------------------------------------------------- 1 | libc-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libcom_err.so.2: -------------------------------------------------------------------------------- 1 | libcom_err.so.2.1 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libcom_err.so.2.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libcom_err.so.2.1 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libcrypt-2.28.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libcrypt-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libcrypt.so.1: -------------------------------------------------------------------------------- 1 | libcrypt-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libcrypto.so.1.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libcrypto.so.1.1 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libcryptsetup.so.12: -------------------------------------------------------------------------------- 1 | libcryptsetup.so.12.4.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libcryptsetup.so.12.4.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libcryptsetup.so.12.4.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libdevmapper-event.so.1.02.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libdevmapper-event.so.1.02.1 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libdevmapper.so.1.02.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libdevmapper.so.1.02.1 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libdl-2.28.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libdl-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libdl.so.2: -------------------------------------------------------------------------------- 1 | libdl-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libe2p.so.2: -------------------------------------------------------------------------------- 1 | libe2p.so.2.3 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libe2p.so.2.3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libe2p.so.2.3 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libext2fs.so.2: -------------------------------------------------------------------------------- 1 | libext2fs.so.2.4 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libext2fs.so.2.4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libext2fs.so.2.4 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libgcc_s.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libgcc_s.so.1 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libgcrypt.so.20: -------------------------------------------------------------------------------- 1 | libgcrypt.so.20.2.4 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libgcrypt.so.20.2.4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libgcrypt.so.20.2.4 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libgpg-error.so.0: -------------------------------------------------------------------------------- 1 | libgpg-error.so.0.26.1 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libgpg-error.so.0.26.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libgpg-error.so.0.26.1 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libjson-c.so.3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libjson-c.so.3 -------------------------------------------------------------------------------- /3.Ramdisk/lib/liblz4.so.1: -------------------------------------------------------------------------------- 1 | liblz4.so.1.8.3 -------------------------------------------------------------------------------- /3.Ramdisk/lib/liblz4.so.1.8.3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/liblz4.so.1.8.3 -------------------------------------------------------------------------------- /3.Ramdisk/lib/liblzma.so.5: -------------------------------------------------------------------------------- 1 | liblzma.so.5.2.4 -------------------------------------------------------------------------------- /3.Ramdisk/lib/liblzma.so.5.2.4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/liblzma.so.5.2.4 -------------------------------------------------------------------------------- /3.Ramdisk/lib/liblzo2.so.2: -------------------------------------------------------------------------------- 1 | liblzo2.so.2.0.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/liblzo2.so.2.0.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/liblzo2.so.2.0.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libm-2.28.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libm-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libm.so.6: -------------------------------------------------------------------------------- 1 | libm-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libnss_dns-2.28.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libnss_dns-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libnss_dns.so.2: -------------------------------------------------------------------------------- 1 | libnss_dns-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libnss_files-2.28.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libnss_files-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libnss_files.so.2: -------------------------------------------------------------------------------- 1 | libnss_files-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libpcre.so.3: -------------------------------------------------------------------------------- 1 | libpcre.so.3.13.3 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libpcre.so.3.13.3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libpcre.so.3.13.3 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libpopt.so: -------------------------------------------------------------------------------- 1 | libpopt.so.0.0.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libpopt.so.0: -------------------------------------------------------------------------------- 1 | libpopt.so.0.0.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libpopt.so.0.0.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libpopt.so.0.0.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libpthread-2.28.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libpthread-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libpthread.so.0: -------------------------------------------------------------------------------- 1 | libpthread-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libreadline.so.5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libreadline.so.5 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libreadline.so.7: -------------------------------------------------------------------------------- 1 | libreadline.so.7.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libreadline.so.7.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libreadline.so.7.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libresolv-2.28.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libresolv-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libresolv.so.2: -------------------------------------------------------------------------------- 1 | libresolv-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/librt-2.28.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/librt-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/librt.so.1: -------------------------------------------------------------------------------- 1 | librt-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libselinux.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libselinux.so.1 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libsmartcols.so.1: -------------------------------------------------------------------------------- 1 | libsmartcols.so.1.1.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libsmartcols.so.1.1.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libsmartcols.so.1.1.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libssl.so.1.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libssl.so.1.1 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libsystemd.so.0: -------------------------------------------------------------------------------- 1 | libsystemd.so.0.25.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libsystemd.so.0.25.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libsystemd.so.0.25.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libtinfo.so.6: -------------------------------------------------------------------------------- 1 | libtinfo.so.6.1 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libtinfo.so.6.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libtinfo.so.6.1 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libudev.so.1: -------------------------------------------------------------------------------- 1 | libudev.so.1.6.13 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libudev.so.1.6.13: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libudev.so.1.6.13 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libutil-2.28.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libutil-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libutil.so.1: -------------------------------------------------------------------------------- 1 | libutil-2.28.so -------------------------------------------------------------------------------- /3.Ramdisk/lib/libuuid.so.1: -------------------------------------------------------------------------------- 1 | libuuid.so.1.3.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libuuid.so.1.3.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libuuid.so.1.3.0 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libz.so.1: -------------------------------------------------------------------------------- 1 | libz.so.1.2.11 -------------------------------------------------------------------------------- /3.Ramdisk/lib/libz.so.1.2.11: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/lib/libz.so.1.2.11 -------------------------------------------------------------------------------- /3.Ramdisk/sbin/blkid: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/cryptsetup: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/sbin/cryptsetup -------------------------------------------------------------------------------- /3.Ramdisk/sbin/dropbear: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/sbin/dropbear -------------------------------------------------------------------------------- /3.Ramdisk/sbin/fdisk: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/fsck: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/ifconfig: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/lsmod: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/lvm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/sbin/lvm -------------------------------------------------------------------------------- /3.Ramdisk/sbin/mdadm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/sbin/mdadm -------------------------------------------------------------------------------- /3.Ramdisk/sbin/mdev: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/mkdosfs: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/mke2fs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/3.Ramdisk/sbin/mke2fs -------------------------------------------------------------------------------- /3.Ramdisk/sbin/mkfs.ext2: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/mkfs.ext4: -------------------------------------------------------------------------------- 1 | mke2fs -------------------------------------------------------------------------------- /3.Ramdisk/sbin/mkfs.minix: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/mkfs.vfat: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/mkswap: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/modprobe: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/poweroff: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/reboot: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/rmmod: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/route: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/start-stop-daemon: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/swapoff: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/swapon: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/switch_root: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/tune2fs: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/sbin/udhcpc: -------------------------------------------------------------------------------- 1 | ../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/bin/clear: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/bin/dpkg: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/bin/dpkg-deb: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/bin/find: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/bin/hexdump: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/bin/mesg: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/bin/nohup: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/bin/reset: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/bin/setsid: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/bin/tftp: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/bin/top: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/bin/traceroute: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/bin/wget: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/bin/which: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/sbin/chroot: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/sbin/nanddump: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/sbin/nandwrite: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /3.Ramdisk/usr/sbin/rfkill: -------------------------------------------------------------------------------- 1 | ../../bin/busybox -------------------------------------------------------------------------------- /4.RootFS/README: -------------------------------------------------------------------------------- 1 | # After we flashed uBoot, uImage and uInitrd to the device memory, 2 | # we can not partition HDD drives and copy the rootfs to the root partition 3 | # We do rootfs with last stable version of Debian by: 4 | mkdir rootfs 5 | sudo multistrap -a armhf -d rootfs -f rootfs.conf 6 | # Make archive and put it on USB drive 7 | cd rootfs/ 8 | 9 | # Compile MCU controller to manage monitor the temperature and manage the fan (kindly provided by Fox-exe https://fox-exe.ru/WDMyCloud/Other/Weltrend_MCU/) 10 | apt install build-essential 11 | cc mcu_test.c -o mcu_ctl 12 | cp mcu_ctl usr/sbin/ 13 | 14 | #Then put rc.local to etc/ 15 | 16 | # Use termperatues.sh to monitor temperatures if interested 17 | 18 | tar -cvf rootfs.tar.gz * 19 | 20 | # On NAS 21 | cp rootfs.tar.gz /mnt/root 22 | cd /mnt/root 23 | tar -xvf rootfs.tar.gz 24 | rm rootfs.tar.gs 25 | mount -t proc proc proc/ 26 | mount -t sysfs sys sys/ 27 | mount -o bind /dev dev/ 28 | cd .. 29 | LC_ALL=C LANGUAGE=C LANG=C chroot root/ 30 | adduser root -u 0 31 | pam-auth-update 32 | umount proc 33 | umount sys 34 | umount dev 35 | exit 36 | umount /mnt/root 37 | sync 38 | reboot -f 39 | -------------------------------------------------------------------------------- /4.RootFS/debian-stretch-rootfs.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/4.RootFS/debian-stretch-rootfs.tar.xz -------------------------------------------------------------------------------- /4.RootFS/mcu_source.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | enum Commands 12 | { 13 | SET_LED_ON, 14 | SET_LED_OFF, 15 | SET_LED_BLINK, 16 | SET_LED_BREATH, 17 | SYS_READY, 18 | SYS_SILENT, 19 | SYS_SHUTDOWN, 20 | SYS_REBOOT, 21 | GET_THERMAL_F, 22 | GET_THERMAL_C, 23 | SET_FAN_0, 24 | SET_FAN_25, 25 | SET_FAN_50, 26 | SET_FAN_75, 27 | SET_FAN_100, 28 | 29 | CMD_TOTAL 30 | }; 31 | 32 | struct Options 33 | { 34 | char *name; 35 | char *help; 36 | unsigned char command[7]; 37 | }; 38 | 39 | struct Command 40 | { 41 | char start; // always 0xFA 42 | char device; // ??? 43 | char function; // 01=??, 03=power, 06=led, 08=thermal sensor 44 | char value; // (00 = off, 01=on, 02=status/mode2) 45 | char data1; // Get/Set? 46 | char data2; // Get/Set? 47 | char stop; // always 0xFB 48 | }; 49 | 50 | struct Options commands[CMD_TOTAL] = 51 | { 52 | { "led_set_on", "Set power led ON", { 0xfa, 0x03, 0x06, 0x01, 0x00, 0x00, 0xfb } }, 53 | { "led_set_off","Set power led OFF", { 0xfa, 0x03, 0x06, 0x00, 0x00, 0x00, 0xfb } }, 54 | { "led_blink", "Set led to Blinking", { 0xfa, 0x03, 0x06, 0x02, 0x00, 0x00, 0xfb } }, 55 | { "led_breath", "Set led to Breath", { 0xfa, 0x03, 0x06, 0x04, 0x00, 0x00, 0xfb } }, 56 | { "sys_ready", "System ready", { 0xfa, 0x03, 0x01, 0x00, 0x00, 0x00, 0xfb } }, 57 | { "sys_silent", "Silent run", { 0xfa, 0x03, 0x03, 0x00, 0x00, 0x00, 0xfb } }, 58 | { "sys_shutdown", "Shutdown", { 0xfa, 0x03, 0x03, 0x01, 0x00, 0x00, 0xfb } }, 59 | { "sys_reboot", "Reboot (Reset)", { 0xfa, 0x03, 0x03, 0x02, 0x00, 0x00, 0xfb } }, 60 | { "tmp_get_f", "Get temperature (f)", { 0xfa, 0x03, 0x08, 0x00, 0x00, 0x00, 0xfb } }, 61 | { "tmp_get_c", "Get temperature (c)", { 0xfa, 0x03, 0x08, 0x00, 0x00, 0x00, 0xfb } }, 62 | { "fan_set_0", "Set FAN speed 0%", { 0xfa, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfb } }, 63 | { "fan_set_25", "Set FAN speed 25%", { 0xfa, 0x02, 0x00, 0x40, 0x00, 0x00, 0xfb } }, 64 | { "fan_set_50", "Set FAN speed 50%", { 0xfa, 0x02, 0x00, 0x80, 0x00, 0x00, 0xfb } }, 65 | { "fan_set_75", "Set FAN speed 75%", { 0xfa, 0x02, 0x00, 0xc0, 0x00, 0x00, 0xfb } }, 66 | { "fan_set_100","Set FAN speed 100%", { 0xfa, 0x02, 0x00, 0xff, 0x00, 0x00, 0xfb } }, 67 | }; 68 | 69 | int set_interface_attribs(int fd, int speed, int parity) 70 | { 71 | struct termios tty; 72 | memset (&tty, 0, sizeof tty); 73 | 74 | if (tcgetattr(fd, &tty) < 0) { 75 | printf("Error from tcgetattr: %s\n", strerror(errno)); 76 | return -1; 77 | } 78 | 79 | cfsetospeed(&tty, speed); 80 | cfsetispeed(&tty, speed); 81 | 82 | tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS8; // 8-bit chars 83 | // disable IGNBRK for mismatched speed tests; otherwise receive break 84 | // as \000 chars 85 | tty.c_iflag &= ~IGNBRK; // ignore break signal 86 | tty.c_lflag = 0; // no signaling chars, no echo, 87 | // no canonical processing 88 | tty.c_oflag = 0; // no remapping, no delays 89 | tty.c_cc[VMIN] = 0; // read doesn't block 90 | tty.c_cc[VTIME] = 5; // 0.5 seconds read timeout 91 | 92 | tty.c_iflag &= ~(IXON | IXOFF | IXANY); // shut off xon/xoff ctrl 93 | 94 | tty.c_cflag |= (CLOCAL | CREAD);// ignore modem controls, 95 | // enable reading 96 | tty.c_cflag &= ~(PARENB | PARODD); // shut off parity 97 | tty.c_cflag |= parity; 98 | tty.c_cflag &= ~CSTOPB; 99 | tty.c_cflag &= ~CRTSCTS; 100 | 101 | if (tcsetattr(fd, TCSANOW, &tty) != 0) { 102 | printf("Error from tcsetattr: %s\n", strerror(errno)); 103 | return -1; 104 | } 105 | return 0; 106 | } 107 | 108 | void set_blocking (int fd, int should_block) 109 | { 110 | struct termios tty; 111 | memset (&tty, 0, sizeof tty); 112 | if (tcgetattr (fd, &tty) != 0) 113 | { 114 | printf ("error from tggetattr \n"); 115 | return; 116 | } 117 | 118 | tty.c_cc[VMIN] = should_block ? 1 : 0; 119 | tty.c_cc[VTIME] = 5; // 0.5 seconds read timeout 120 | 121 | if (tcsetattr (fd, TCSANOW, &tty) != 0) 122 | printf ("error setting term attributes \n"); 123 | } 124 | 125 | void print_help(char *arguments[]) { 126 | //printf("Too few arguments.\n"); 127 | //printf("Usage: %s [1] [2] [3] [4] [5] (HEX data)\n", argv[0]); 128 | printf( 129 | "Usage:\n" 130 | "\t%s [1] [2] [3] [4] [5] (HEX format)\n" 131 | "Or:\n" 132 | "\t%s [command]\n" 133 | "\n" 134 | "Available commands:\n", 135 | arguments[0], 136 | arguments[0] 137 | ); 138 | 139 | for (int i = 0; i < CMD_TOTAL; i++) 140 | { 141 | printf("\t%s\t%s\n", commands[i].name, commands[i].help); 142 | } 143 | } 144 | 145 | int main(int argc, char *argv[]) 146 | { 147 | if (argc != 2 && argc != 6) { 148 | print_help(argv); 149 | return -1; 150 | } 151 | 152 | unsigned char DataToSend[] = { 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb }; 153 | int cmd_found = -1; 154 | 155 | if (argc == 2) { 156 | for (int i = 0; i < CMD_TOTAL; i++) 157 | { 158 | if (strcmp(argv[1], commands[i].name) == 0) 159 | { 160 | //printf("Found command: %s\n", commands[i].name); 161 | cmd_found = i; 162 | memcpy(DataToSend, commands[i].command, sizeof(DataToSend)); 163 | } 164 | } 165 | if (cmd_found < 0) 166 | { 167 | printf("Command not found: %s\n", argv[1]); 168 | return -1; 169 | } 170 | } 171 | else if (argc == 6) { 172 | DataToSend[1] = strtol(argv[1], NULL, 16); 173 | DataToSend[2] = strtol(argv[2], NULL, 16); 174 | DataToSend[3] = strtol(argv[3], NULL, 16); 175 | DataToSend[4] = strtol(argv[4], NULL, 16); 176 | DataToSend[5] = strtol(argv[5], NULL, 16); 177 | } 178 | 179 | #ifdef DEBUG 180 | // Print what we send 181 | printf(">>: %02x %02x %02x %02x %02x %02x %02x\n", 182 | DataToSend[0], 183 | DataToSend[1], 184 | DataToSend[2], 185 | DataToSend[3], 186 | DataToSend[4], 187 | DataToSend[5], 188 | DataToSend[6]); 189 | #endif // DEBUG_ON 190 | 191 | // ======== Open port ======== 192 | char *portname = "/dev/ttyS1"; 193 | int fd; 194 | int dataLenght = 0; 195 | 196 | fd = open(portname, O_RDWR | O_NOCTTY | O_SYNC); 197 | if (fd < 0) { 198 | printf("Error opening %s: %s\n", portname, strerror(errno)); 199 | return -1; 200 | } 201 | 202 | set_interface_attribs(fd, B19200, 0); 203 | set_blocking (fd, 0); 204 | 205 | // ======== Send data ======== 206 | int i = 0; 207 | do 208 | { 209 | dataLenght = write(fd, &DataToSend[i], 1); 210 | i++; 211 | usleep(100); 212 | if (dataLenght != 1) 213 | { 214 | printf("Error writing byte %i: %i, count: %i\n", (i - 1), DataToSend[i - 1], dataLenght); 215 | return -1; 216 | } 217 | } while (DataToSend[i - 1] != 0xfb); 218 | 219 | // ======== Read data ======== 220 | 221 | unsigned char buf[32]; 222 | dataLenght = 0; 223 | i = 0; 224 | do { 225 | dataLenght = read(fd, &buf[i], 1); 226 | i++; 227 | } while ((dataLenght == 1) && (buf[i - 1] != 0xfb)); 228 | 229 | switch (cmd_found) 230 | { 231 | case GET_THERMAL_F: 232 | printf("Temperature: %d F\n", buf[5]); 233 | break; 234 | case GET_THERMAL_C: 235 | printf("Temperature: %d C\n", (int)(5.0f / 9.0f * (buf[5] - 32.0f))); 236 | break; 237 | case SET_FAN_0: 238 | case SET_FAN_25: 239 | case SET_FAN_50: 240 | case SET_FAN_75: 241 | case SET_FAN_100: 242 | if (buf[1] == 0x30) 243 | printf("Temperature set OK\n"); 244 | else 245 | printf("ERROR: Worng answer: %d\n", buf[1]); 246 | break; 247 | default: 248 | printf("<<:"); 249 | for (int byte = 0; byte < i; byte++) 250 | { 251 | printf(" %02x", buf[byte]); 252 | } 253 | printf("\n"); 254 | break; 255 | } 256 | 257 | close(fd); 258 | return 0; 259 | } -------------------------------------------------------------------------------- /4.RootFS/rc.local: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | # 3 | # rc.local 4 | # 5 | # This script is executed at the end of each multiuser runlevel. 6 | # Make sure that the script will "exit 0" on success or any other 7 | # value on error. 8 | 9 | # Available triggers: 10 | # none bluetooth-power usb-gadget usb-host timer oneshot disk-activity ide-disk mtd nand-disk heartbeat gpio cpu cpu0 cpu1 default-on panic 11 | 12 | if [ -e /usr/sbin/mcu_ctl ]; then 13 | /usr/sbin/mcu_ctl sys_ready 2>&1 >/dev/null 14 | /usr/sbin/mcu_ctl fan_set_50 2>&1 >/dev/null 15 | fi 16 | if [ -e /sys/class/leds/wdmcex2u\:blue\:hdd1/trigger ]; then 17 | echo gpio > /sys/class/leds/wdmcex2u\:blue\:hdd1/trigger 18 | echo 48 > /sys/class/leds/wdmcex2u\:blue\:hdd1/gpio 19 | fi 20 | if [ -e /sys/class/leds/wdmcex2u\:blue\:hdd2/trigger ]; then 21 | echo gpio > /sys/class/leds/wdmcex2u\:blue\:hdd2/trigger 22 | echo 58 > /sys/class/leds/wdmcex2u\:blue\:hdd2/gpio 23 | fi 24 | if [ -e /sys/class/leds/wdmcex2u\:red\:hdd1/trigger ]; then 25 | echo disk-activity > /sys/class/leds/wdmcex2u\:red\:hdd1/trigger 26 | fi 27 | if [ -e /sys/class/leds/wdmcex2u\:red\:hdd2/trigger ]; then 28 | echo panic > /sys/class/leds/wdmcex2u\:red\:hdd2/trigger 29 | fi 30 | exit 0 31 | -------------------------------------------------------------------------------- /4.RootFS/rootfs.conf: -------------------------------------------------------------------------------- 1 | [General] 2 | unpack=true 3 | bootstrap=Debian 4 | aptsources=Debian 5 | 6 | [Debian] 7 | packages=apt udev ntpdate net-tools resolvconf iputils-ping dnsutils init util-linux login smartmontools wget 8 | source=http://ftp.uk.debian.org/debian 9 | keyring=debian-archive-keyring 10 | suite=buster 11 | -------------------------------------------------------------------------------- /4.RootFS/temperatures.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | 3 | echo -en "TIME\t\tCPU\tSYS\tHDD\n" 4 | while true; do 5 | echo -en `date +'%H:%M:%S'` "\t" 6 | echo -en $((`cat /sys/class/thermal/thermal_zone0/temp` / 1000)) "\t" 7 | echo -en `mcu_ctl tmp_get_c | awk '{print $2}'` "\t" 8 | echo -en `smartctl -A /dev/sda | awk '/Temperature_Celsius/{print $10}'` "\n" 9 | sleep 2 10 | done 11 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | Up-to-date firmware for WD My Cloud Ex2 Ultra 2 | 3 | The sequence is: 4 | 1) Update u-boot. It is needed to adjust load addresess for new Kernel and Ramdisk. See UBoot folder for details. 5 | 2) Update kernel with compiled uImage file. See Kernel folder for details. 6 | 3) Update ramdisk with compiled uInitrd file. See Ramdisk folder for detials. 7 | 4) Set rootfs - the actuall Debian system. See Rootfs folder for detials. 8 | 9 | This custom firmware supports full disk encryption on WD MyCloud Ex2 Ultra NAS 10 | 11 | ## Support 12 | + USB or SATA drive 13 | + ext2,3,4, btrfs 14 | + raid 0,1 and LVM 15 | + LUKS-encrypted drive 16 | + ssh-rescue shell 17 | 18 | # Make any changes of Ram Disk in initrd folder and recompile it with compile_ramdisk.sh to get new uInitrd (Ram Disk file) 19 | 20 | ## Usage 21 | # Update Kernel if you have access to shell 22 | wget https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/master/uImage (--no-check-certificate in case of error?) 23 | dd if=/dev/zero of=/dev/mtdblock1 24 | dd if=uImage of=/dev/mtdblock1 25 | 26 | # Update ramdisk if you have access to shell 27 | wget https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/master/uInitrd 28 | dd if=/dev/zero of=/dev/mtdblock2 29 | dd if=uInitrd of=/dev/mtdblock2 30 | 31 | # If you don't have access to shell use USB UART connector (press "1" to stop autoboot): 32 | # Connect FT232RL USB UART Converter 33 | # NAS UART 34 | # o - Tx Rx 35 | # o - GND GND 36 | # o - 3.3v - 37 | # - - - 38 | # o - Rx Tx 39 | # 40 | # Use Putty for connection via COM port 41 | # (take port number in Device Manager after installing UART driver, possibly from https://fox-exe.ru/Files/USB-UART/) 42 | # Serial line to connect: COM5 43 | # SPEED: 115200 44 | # Data bits: 8 45 | # Stop bits: 1 46 | # Parity: None 47 | # Flow control: XON/XOFF 48 | 49 | usb start 50 | fatload usb 0:1 0xa00000 uImage 51 | fatload usb 0:1 0xf00000 uInitrd 52 | bootm 0xa00000 0xf00000 53 | 54 | 55 | # Reboot 56 | reboot -f 57 | 58 | # Part your new HDDs 59 | # fdisk /dev/sda 60 | # (d) for delete any existing partitions 61 | # (n) for creating new partititions 62 | # We need to delete all partitions 63 | 64 | # Create Raid1 65 | mdadm --create /dev/md0 --level=1 --raid-devices=2 --run /dev/sda /dev/sdb 66 | 67 | # Alternative, if second HDD will be added later 68 | mdadm --create /dev/md0 --level=1 --raid-devices=2 --run /dev/sda missing 69 | mdadm --manage /dev/md0 --add /dev/sdb 70 | 71 | # Encrypt your new partition and open it 72 | sudo cryptsetup -v -y -c aes-cbc-essiv:sha256 --iter-time 2000 --use-random luksFormat /dev/md0 73 | cryptsetup luksOpen /dev/md0 cryptlvm 74 | nohup dd if=/dev/urandom of=/dev/mapper/cryplvm & 75 | #That's going to be few days. 76 | #Check progress with 'ps ax | grep dd' to find out $pid and then kill -USR1 $pid. 77 | #Then `cat nohup.out` will show you the progress. 78 | 79 | # Create LVM logical volumes on encrypted partition 80 | lvm pvcreate /dev/mapper/cryptlvm 81 | lvm vgcreate MyVolGroup /dev/mapper/cryptlvm 82 | lvm lvcreate -L 1024MB MyVolGroup -n swap -Zn 83 | lvm lvcreate -L 4096MB MyVolGroup -n root -Zn 84 | lvm lvcreate -l +100%FREE MyVolGroup -n data -Zn 85 | 86 | #Scan for created volumes 87 | lvm vgscan --mknodes 88 | 89 | # Format and label your partitions 90 | mkswap /dev/MyVolGroup/swap 91 | swapon /dev/MyVolGroup/swap 92 | mkfs.ext4 /dev/MyVolGroup/root 93 | mkfs.ext4 /dev/MyVolGroup/data 94 | 95 | # Then we install Debian Stretch kindly provided by Fox-exe.ru repository 96 | mkdir /mnt/root 97 | mount /dev/MyVolGroup/root /mnt/root 98 | cd /mnt/root 99 | wget https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/master/debian-stretch-rootfs.tar.xz 100 | tar xvf debian-stretch-rootfs.tar.xz 101 | rm debian-stretch-rootfs.tar.xz 102 | 103 | # Update libs for new kernel 104 | wget https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/master/libs-4.15.0-rc6.tar.gz 105 | tar xvf libs-4.15.0-rc6.tar.gz 106 | rm libs-4.15.0-rc6.tar.gz 107 | 108 | # Then we reboot 109 | cd / 110 | umount /mnt/root 111 | sync 112 | reboot -f 113 | 114 | # When system boots after encryption 115 | login: root 116 | password: mycloud 117 | 118 | The system will boot only if a keyfile "key.luks" is presend on connected USB device with partition label "key". If no keyfile present 119 | then connect to the system by ssh on port 2222 with a user root, password root and open partition with the command: 120 | "cryptsetup -T 5 luksOpen $device cryptroot". 121 | 122 | Run apt upgrade to upgrade to newest Debian 123 | 124 | In the root file system put 125 | swapon /dev/mapper/MyVolGroup-swap 126 | mount /dev/mapper/MyVolGroup-data /mnt/data 127 | in rc.local, not in /etc/fstab 128 | 129 | Couldn't make reset button to power off, so used cron with eth0 down instead: 130 | 0-59 * * * * /bin/ip a | /bin/grep -Eq ': eth0:.*state UP' || /sbin/poweroff 131 | -------------------------------------------------------------------------------- /Ramdisk_build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "# Creating cpio + lzma archive..." 4 | cd 3.Ramdisk 5 | find . | cpio -o -H newc | lzma -7 > ../initramfs.cpio.lzma 6 | cd .. 7 | 8 | echo "# Creating u-boot image..." 9 | mkimage -A arm -O linux -T ramdisk -C lzma -a 0x00000000 -e 0x00000000 -n "BusyBox v1.31" -d initramfs.cpio.lzma uInitrd 10 | rm -f initramfs.cpio.lzma 11 | 12 | echo "# Done!" 13 | 14 | -------------------------------------------------------------------------------- /uImage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/uImage -------------------------------------------------------------------------------- /uInitrd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vzhilov/WDMC-Ex2-Ultra/c67648df42c80775f4baa6e9c1e6f52a59ca327c/uInitrd --------------------------------------------------------------------------------