#!/bin/bash [ "${alias_dir}" = "" ] && alias_dir=$(pwd) source "${alias_dir}/common" openwrt_make_mini_openwrt_image_prep_install() { printf "Установка компонентов для sshd openwrt_make_mini_openwrt_image\n" ask_continue && return sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc #17.01 sudo apt-get install zlib-devel-static } mkalias_with_prefix 'openwrt_make_mini_openwrt_image_prep_install' openwrt_make_mini_openwrt_image() { printf "Загрузка sshd\n" ask_continue && return image_builder_url=$1 pkg=$2 #image_builder_url="https://downloads.openwrt.org/releases/17.01.7/targets/brcm47xx/legacy/lede-imagebuilder-17.01.7-brcm47xx-legacy.Linux-x86_64.tar.xz" image_builder_url="https://downloads.openwrt.org/releases/19.07.7/targets/brcm47xx/legacy/openwrt-imagebuilder-19.07.7-brcm47xx-legacy.Linux-x86_64.tar.xz" #image_builder_url="https://downloads.openwrt.org/releases/22.03.7/targets/bcm47xx/legacy/openwrt-imagebuilder-22.03.7-bcm47xx-legacy.Linux-x86_64.tar.xz" #image_builder_url="https://downloads.openwrt.org/releases/18.06.9/targets/brcm47xx/legacy/openwrt-imagebuilder-18.06.9-brcm47xx-legacy.Linux-x86_64.tar.xz" file_name="${image_builder_url##*/}" base="${file_name%.[^.]*.[^.]*}" ext="${file_name:${#base} + 1}" image_builder_file=${file_name} image_builder_dir=${base} echo ${file_name} ${base} ${ext} [ -f ./${image_builder_file} ] || wget ${image_builder_url} [ -d ./${image_builder_dir} ] || tar -xf ${image_builder_file} n2n_ipk="n2n-edge_HEAD-1_mipsel_mips32.ipk" n2n_add="" ! [ -f ./${n2n_ipk} ] || n2n_add="libcap kmod-tun n2n-edge" cp ${n2n_ipk} ${image_builder_dir}/packages/${n2n_ipk} cp ${n2n_ipk} ${image_builder_dir}/package/${n2n_ipk} cd ${image_builder_dir} make image V=s PROFILE=standard PACKAGES="${pkg}" # FILES=files/ make V=s info find . -name "*.trx" find . -name "root.squashfs" find . -name "*kernel.bin" } #image_builder_url= openwrt_make_mini_openwrt_image_17_01() { printf "Создание mini_openwrt_image для версии 17_01\n" ask_continue && return url="https://downloads.openwrt.org/releases/17.01.7/targets/brcm47xx/legacy/lede-imagebuilder-17.01.7-brcm47xx-legacy.Linux-x86_64.tar.xz" pkg="base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools uclient-fetch logd swconfig -wpad-mini nvram otrx -kmod-leds-gpio -kmod-gpio-button-hotplug -kmod-ledtrig-default-on -kmod-ledtrig-timer -kmod-ledtrig-netdev dnsmasq iptables -ip6tables -ppp -ppp-mod-pppoe firewall odhcpd -odhcp6c -kmod-b43" # block-mount kmod-usb-storage kmod-fs-ext4 kmod-usb-ohci kmod-usb2 ${n2n_add}" openwrt_make_mini_openwrt_image "${url}" "${pkg}" } mkalias_with_prefix 'openwrt_make_mini_openwrt_image_17_01' openwrt_make_mini_openwrt_image_18_06() { printf "Создание mini_openwrt_image для версии 18_06\n" ask_continue && return url="https://downloads.openwrt.org/releases/18.06.9/targets/brcm47xx/legacy/openwrt-imagebuilder-18.06.9-brcm47xx-legacy.Linux-x86_64.tar.xz" pkg="-lcui -ppp -ppp-mod-pppoe base-files busybox dnsmasq dropbear firewall fstools -ip6tables iptables kernel -kmod-b43 -kmod-gpio-button-hotplug -kmod-ipt-offload -kmod-leds-gpio -kmod-ledtrig-default-on -kmod-ledtrig-netdev -kmod-ledtrig-timer libc libgcc logd mtd netifd nvram odhcp6c -odhcpd-ipv6only opkg otrx swconfig uci uclient-fetch -wpad-mini" # 'block-mount kmod-usb-storage kmod-fs-ext4 kmod-usb-ohci kmod-usb2 ${n2n_add}' openwrt_make_mini_openwrt_image "${url}" "${pkg}" } mkalias_with_prefix 'openwrt_make_mini_openwrt_image_18_06' openwrt_make_mini_openwrt_image_19_07() { printf "Создание mini_openwrt_image для версии 19_07\n" ask_continue && return url="https://downloads.openwrt.org/releases/19.07.7/targets/brcm47xx/legacy/openwrt-imagebuilder-19.07.7-brcm47xx-legacy.Linux-x86_64.tar.xz" pkg="-lcui -ppp -ppp-mod-pppoe base-files busybox dnsmasq dropbear firewall fstools -ip6tables iptables kernel -kmod-b43 -kmod-gpio-button-hotplug -kmod-ipt-offload -kmod-leds-gpio -kmod-ledtrig-default-on -kmod-ledtrig-netdev -kmod-ledtrig-timer libc libgcc logd mtd netifd nvram odhcp6c -odhcpd-ipv6only opkg otrx swconfig uci uclient-fetch -wpad-mini" # 'block-mount kmod-usb-storage kmod-fs-ext4 kmod-usb-ohci kmod-usb2 ${n2n_add}' openwrt_make_mini_openwrt_image "${url}" "${pkg}" } mkalias_with_prefix 'openwrt_make_mini_openwrt_image_19_07' openwrt_make_mini_openwrt_image_22_03() { printf "Создание mini_openwrt_image для версии 22_03\n" ask_continue && return url="https://downloads.openwrt.org/releases/22.03.7/targets/bcm47xx/legacy/openwrt-imagebuilder-22.03.7-bcm47xx-legacy.Linux-x86_64.tar.xz" pkg="base-files busybox ca-bundle dnsmasq dropbear firewall4 fstools kernel -kmod-b43 -kmod-gpio-button-hotplug -kmod-leds-gpio -kmod-nft-offload libc libgcc -libustream-wolfssl logd -mtd netifd -nftables nvram odhcp6c -odhcpd-ipv6only opkg otrx -ppp -ppp-mod-pppoe procd -procd-seccomp swconfig uci uclient-fetch urandom-seed -urngd -wpad-basic-wolfssl" # block-mount kmod-usb-storage kmod-fs-ext4 kmod-usb-ohci kmod-usb2 ${n2n_add}" openwrt_make_mini_openwrt_image "${url}" "${pkg}" } mkalias_with_prefix 'openwrt_make_mini_openwrt_image_22_03' openwrt_upload_by_tftp() { url=$1 file_name="${url##*/}" [ "$url" = "" ] && printf "Укажите url для скачивания, например 'http://downloads.openwrt.org/backfire/10.03/brcm47xx/openwrt-brcm47xx-squashfs.trx' или полный путь к файлу\n" && return printf "Загрузка openwrt на роутер через tftp. Подойдёт например для asus_wl520gu или asus_wl500pgv2. Внимание! В текущую папру произойдёт загрузка файла ${file_name}\n" ask_continue && return [ -f ./${file_name} ] || wget "${url}" atftp --trace --option "timeout 10" --option "mode octet" --put --local-file "${file_name}" 192.168.1.1 } mkalias_with_prefix 'openwrt_upload_by_tftp' openwrt_upload_backfire_10_03_by_tftp() { url="http://downloads.openwrt.org/backfire/10.03/brcm47xx/openwrt-brcm47xx-squashfs.trx" openwrt_upload_by_tftp ${url} } mkalias_with_prefix 'openwrt_upload_backfire_10_03_by_tftp' openwrt_upload_22_03_by_tftp() { url="https://downloads.openwrt.org/releases/22.03.7/targets/bcm47xx/legacy/openwrt-22.03.7-bcm47xx-legacy-asus_wl-500gp-v2-squashfs.trx" openwrt_upload_by_tftp ${url} } mkalias_with_prefix 'openwrt_upload_22_03_by_tftp' openwrt_progs_install() { out=' # On router by: ssh root@192.168.1.1 # Для внешнего ЖД opkg install block-mount kmod-usb-storage kmod-usb-ohci kmod-fs-ext4 kmod-usb2 opkg install mc opkg install hd-idle # set enabled to 1 in hd-idle config vi /etc/config/hd-idle ' echo "${out}" } mkalias_with_prefix 'openwrt_progs_install' openwrt_n2n_make_ipk() { progs='# Ubuntu sudo apt-get install gcc-multilib g++-multilib git libncurses-dev gawk perl python3-distutils' #-sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.12 10 # AltLinux - не удалось запустить #sudo apt-get install perl-IPC-Cmd perl-CPAN #cpan JSON printf "Компиляция n2n для openwrt. Внимание в тукущую дирректуроию произойдёт загрузка исходников. Перед запуском рекомендуется установить программы ${progs}\n" ask_continue && return # wl500gpv2 https://archive.openwrt.org/releases/22.03.0/targets/bcm47xx/legacy/openwrt-sdk-22.03.0-bcm47xx-legacy_gcc-11.2.0_musl.Linux-x86_64.tar.xz # wl520gu url="https://downloads.openwrt.org/releases/19.07.6/targets/brcm47xx/legacy/openwrt-sdk-19.07.6-brcm47xx-legacy_gcc-7.5.0_musl.Linux-x86_64.tar.xz" # Fix gcc version include/prereq-build.mk: grep -E '^(4\.[8-9]|[5-9]\.?|13\.?)' # dir 620 c1 (asus_rt-n15u) url="https://downloads.openwrt.org/releases/23.05.5/targets/bcm47xx/mips74k/openwrt-sdk-23.05.5-bcm47xx-mips74k_gcc-12.3.0_musl.Linux-x86_64.tar.xz" # wl520gu 17.01.7 url="https://archive.openwrt.org/releases/17.01.7/targets/brcm47xx/legacy/lede-sdk-17.01.7-brcm47xx-legacy_gcc-5.4.0_musl-1.1.16.Linux-x86_64.tar.xz" file_name="${url##*/}" base="${file_name%.[^.]*.[^.]*}" ext="${file_name:${#base} + 1}" sdk_name=${base} sdk=${file_name} [ -f ./${sdk} ] || wget "${url}" [ -d ./${sdk_name} ] || tar -xf "${sdk}" [ -f ./n2n ] || git clone https://github.com/ntop/n2n n2n N2N_PKG_VERSION=$(n2n/scripts/version.sh) echo $N2N_PKG_VERSION cp -r n2n/packages/openwrt ${sdk_name}/package/n2n cd ${sdk_name} make oldconfig make package/n2n/clean V=s make package/n2n/prepare USE_SOURCE_DIR=$(realpath ../n2n) V=s make package/n2n/compile V=s find . -name "n2n*.ipk" } mkalias_with_prefix 'openwrt_n2n_make_ipk' openwrt_() { printf "Загрузка\n" ask_continue && return } #mkalias_with_prefix 'openwrt_'