gistfile1.txt
· 4.0 KiB · Text
Brut
#!/bin/sh
# OpenWrt image generation script
# This is only intended for dot build upgrades!
# Execute inside a new folder.
# Parameters: change to your configuration!
routerUser="root"
routerIp="192.168.0.1"
version="23.05.2"
baseUrl="https://downloads.openwrt.org/releases/${version}/targets/x86/64"
builderFileName="openwrt-imagebuilder-${version}-x86-64.Linux-x86_64.tar.xz"
pkgConfig="-dnsmasq dnsmasq-full ip-full vim vim-runtime -ethtool kmod-e1000ethtool-full \
kmod-nf-nat kmod-nf-nat6 kmod-nft-arp kmod-nft-compat kmod-nft-queue kmod-nft-socket kmod-nft-tproxy kmod-nft-xfrm \
iptables-nft ip6tables-nft \
intel-microcode iucode-tool kmod-kvm-intel kmod-i2c-i801 kmod-e1000 kmod-e1000e kmod-igb kmod-ixgbe kmod-ixgbevf kmod-igc \
kmod-w83627hf-wdt kmod-itco-wdt \
kmod-usb2 kmod-usb3 usbutils exfat-fsck exfat-mkfs kmod-fs-exfat kmod-usb-storage kmod-usb-storage-extras kmod-usb-storage-uas kmod-usb-serial kmod-usb-hid \
luci-i18n-opkg-zh-cn luci-i18n-firewall-zh-cn \
luci-i18n-passwall2-zh-cn luci-app-passwall2 xray-core \
luci-app-upnp luci-i18n-upnp-zh-cn \
luci-app-wol luci-i18n-wol-zh-cn \
luci-app-banip luci-i18n-banip-zh-cn \
luci-app-watchcat luci-i18n-watchcat-zh-cn \
luci-app-uhttpd uhttpd \
luci-theme-bootstrap \
luci-app-statistics luci-i18n-statistics-zh-cn collectd-mod-disk collectd-mod-cpu collectd-mod-cpufreq collectd-mod-df collectd-mod-interface collectd-mod-processes collectd-mod-uptime collectd-mod-vmem collectd-mod-email collectd-mod-ethstat collectd-mod-conntrack collectd-mod-dhcpleases collectd-mod-syslog collectd-mod-write-http collectd-mod-ping collectd-mod-dns collectd-mod-memory collectd-mod-thermal collectd-mod-nginx collectd-mod-sensors collectd-mod-smart smartmontools smartmontools-drivedb collectd-mod-nut \
postfix ca-bundle haveged wget wget-ssl iperf3 telnet-bsd qrencode lm-sensors-detect lscpu lsblk uhubctl losetup bind-dig tcping httping \
"
eval `ssh-agent -s`
ssh-add ~/.ssh/codgi-ssh.pem
echo "# STEP 1. Downloading OpenWrt ${version} Image Builder ..."
# Download OpenWrt image builder and extract
if ! [ -f "./${builderFileName}" ]
then
wget "$baseUrl/$builderFileName" -P .
fi
rm -rf ./builder
mkdir ./builder
tar xf ./$builderFileName -C ./builder/ --strip-components=1
cd ./builder
# echo "# STEP 2. Backing up current configurations ..."
# Backup configurations from router
# routerSsh="${routerUser}@${routerIp}"
# ssh ${routerSsh} 'sysupgrade -b ~/backup.tar.gz'
# scp -O "${routerSsh}:~/backup.tar.gz" ./ || exit 1
# mkdir ./backup
# tar xf ./backup.tar.gz -C ./backup/
echo -e "src/gz passwall2 https://dodgix.github.io/openwrt-23.05.2/packages/x86/64/passwall2" > ~/repositories.conf
echo -e "src/gz passwall_packages https://dodgix.github.io/openwrt-23.05.2/packages/x86/64/passwall_packages" > ~/repositories.conf
echo -e "src/gz magnetty_core https://dodgix.github.io/openwrt-23.05.2/targets/86/64/packages/" > ~/repositories.conf
# Update custom feed
# sed -i "s/openwrt-[0-9]\{2\}.[0-9]\{2\}.[0-9]/openwrt-${version}/g" ./backup/etc/opkg/customfeeds.conf
echo "# STEP 3. Preparing to build image ..."
# Add custom feeds to builder
# cat ./backup/etc/opkg/customfeeds.conf >> ./repositories.conf
# cp ./backup/etc/opkg/keys/* ./keys
# Set grub timeout to 0
sed -i 's/CONFIG_GRUB_TIMEOUT="[0-9]"/CONFIG_GRUB_TIMEOUT="0"/g' ./.config
# Image generation config
sed -i "s/CONFIG_TARGET_ROOTFS_EXT4FS=y/CONFIG_TARGET_ROOTFS_EXT4FS=n/g" ./.config
sed -i "s/CONFIG_VHDX_IMAGES=y/CONFIG_VHDX_IMAGES=n/g" ./.config
sed -i "s/CONFIG_QCOW2_IMAGES=y/CONFIG_QCOW2_IMAGES=n/g" ./.config
sed -i "s/CONFIG_ISO_IMAGES=y/CONFIG_ISO_IMAGES=n/g" ./.config
sed -i "s/CONFIG_VMDK_IMAGES=y/CONFIG_VMDK_IMAGES=n/g" ./.config
sed -i "s/CONFIG_VDI_IMAGES=y/CONFIG_VDI_IMAGES=n/g" ./.config
# Language config
sed -i "s/# CONFIG_LUCI_LANG_en is not set/CONFIG_LUCI_LANG_en=y/g" ./.config
echo "# STEP 4. Building image ..."
make image FILES="backup" PACKAGES="$pkgConfig" ROOTFS_PARTSIZE=1024 j=32 V=sc
echo "# DONE. See built images under: ./builder/bin/targets/x86/64/"
1 | #!/bin/sh |
2 | # OpenWrt image generation script |
3 | # This is only intended for dot build upgrades! |
4 | # Execute inside a new folder. |
5 | |
6 | # Parameters: change to your configuration! |
7 | routerUser="root" |
8 | routerIp="192.168.0.1" |
9 | version="23.05.2" |
10 | baseUrl="https://downloads.openwrt.org/releases/${version}/targets/x86/64" |
11 | builderFileName="openwrt-imagebuilder-${version}-x86-64.Linux-x86_64.tar.xz" |
12 | pkgConfig="-dnsmasq dnsmasq-full ip-full vim vim-runtime -ethtool kmod-e1000ethtool-full \ |
13 | kmod-nf-nat kmod-nf-nat6 kmod-nft-arp kmod-nft-compat kmod-nft-queue kmod-nft-socket kmod-nft-tproxy kmod-nft-xfrm \ |
14 | iptables-nft ip6tables-nft \ |
15 | intel-microcode iucode-tool kmod-kvm-intel kmod-i2c-i801 kmod-e1000 kmod-e1000e kmod-igb kmod-ixgbe kmod-ixgbevf kmod-igc \ |
16 | kmod-w83627hf-wdt kmod-itco-wdt \ |
17 | kmod-usb2 kmod-usb3 usbutils exfat-fsck exfat-mkfs kmod-fs-exfat kmod-usb-storage kmod-usb-storage-extras kmod-usb-storage-uas kmod-usb-serial kmod-usb-hid \ |
18 | luci-i18n-opkg-zh-cn luci-i18n-firewall-zh-cn \ |
19 | luci-i18n-passwall2-zh-cn luci-app-passwall2 xray-core \ |
20 | luci-app-upnp luci-i18n-upnp-zh-cn \ |
21 | luci-app-wol luci-i18n-wol-zh-cn \ |
22 | luci-app-banip luci-i18n-banip-zh-cn \ |
23 | luci-app-watchcat luci-i18n-watchcat-zh-cn \ |
24 | luci-app-uhttpd uhttpd \ |
25 | luci-theme-bootstrap \ |
26 | luci-app-statistics luci-i18n-statistics-zh-cn collectd-mod-disk collectd-mod-cpu collectd-mod-cpufreq collectd-mod-df collectd-mod-interface collectd-mod-processes collectd-mod-uptime collectd-mod-vmem collectd-mod-email collectd-mod-ethstat collectd-mod-conntrack collectd-mod-dhcpleases collectd-mod-syslog collectd-mod-write-http collectd-mod-ping collectd-mod-dns collectd-mod-memory collectd-mod-thermal collectd-mod-nginx collectd-mod-sensors collectd-mod-smart smartmontools smartmontools-drivedb collectd-mod-nut \ |
27 | postfix ca-bundle haveged wget wget-ssl iperf3 telnet-bsd qrencode lm-sensors-detect lscpu lsblk uhubctl losetup bind-dig tcping httping \ |
28 | " |
29 | |
30 | eval `ssh-agent -s` |
31 | ssh-add ~/.ssh/codgi-ssh.pem |
32 | |
33 | echo "# STEP 1. Downloading OpenWrt ${version} Image Builder ..." |
34 | |
35 | # Download OpenWrt image builder and extract |
36 | if ! [ -f "./${builderFileName}" ] |
37 | then |
38 | wget "$baseUrl/$builderFileName" -P . |
39 | fi |
40 | rm -rf ./builder |
41 | mkdir ./builder |
42 | tar xf ./$builderFileName -C ./builder/ --strip-components=1 |
43 | cd ./builder |
44 | |
45 | # echo "# STEP 2. Backing up current configurations ..." |
46 | |
47 | # Backup configurations from router |
48 | # routerSsh="${routerUser}@${routerIp}" |
49 | # ssh ${routerSsh} 'sysupgrade -b ~/backup.tar.gz' |
50 | # scp -O "${routerSsh}:~/backup.tar.gz" ./ || exit 1 |
51 | # mkdir ./backup |
52 | # tar xf ./backup.tar.gz -C ./backup/ |
53 | |
54 | echo -e "src/gz passwall2 https://dodgix.github.io/openwrt-23.05.2/packages/x86/64/passwall2" > ~/repositories.conf |
55 | echo -e "src/gz passwall_packages https://dodgix.github.io/openwrt-23.05.2/packages/x86/64/passwall_packages" > ~/repositories.conf |
56 | echo -e "src/gz magnetty_core https://dodgix.github.io/openwrt-23.05.2/targets/86/64/packages/" > ~/repositories.conf |
57 | |
58 | |
59 | # Update custom feed |
60 | # sed -i "s/openwrt-[0-9]\{2\}.[0-9]\{2\}.[0-9]/openwrt-${version}/g" ./backup/etc/opkg/customfeeds.conf |
61 | |
62 | echo "# STEP 3. Preparing to build image ..." |
63 | |
64 | # Add custom feeds to builder |
65 | # cat ./backup/etc/opkg/customfeeds.conf >> ./repositories.conf |
66 | # cp ./backup/etc/opkg/keys/* ./keys |
67 | |
68 | # Set grub timeout to 0 |
69 | sed -i 's/CONFIG_GRUB_TIMEOUT="[0-9]"/CONFIG_GRUB_TIMEOUT="0"/g' ./.config |
70 | |
71 | # Image generation config |
72 | sed -i "s/CONFIG_TARGET_ROOTFS_EXT4FS=y/CONFIG_TARGET_ROOTFS_EXT4FS=n/g" ./.config |
73 | sed -i "s/CONFIG_VHDX_IMAGES=y/CONFIG_VHDX_IMAGES=n/g" ./.config |
74 | sed -i "s/CONFIG_QCOW2_IMAGES=y/CONFIG_QCOW2_IMAGES=n/g" ./.config |
75 | sed -i "s/CONFIG_ISO_IMAGES=y/CONFIG_ISO_IMAGES=n/g" ./.config |
76 | sed -i "s/CONFIG_VMDK_IMAGES=y/CONFIG_VMDK_IMAGES=n/g" ./.config |
77 | sed -i "s/CONFIG_VDI_IMAGES=y/CONFIG_VDI_IMAGES=n/g" ./.config |
78 | |
79 | # Language config |
80 | sed -i "s/# CONFIG_LUCI_LANG_en is not set/CONFIG_LUCI_LANG_en=y/g" ./.config |
81 | |
82 | echo "# STEP 4. Building image ..." |
83 | make image FILES="backup" PACKAGES="$pkgConfig" ROOTFS_PARTSIZE=1024 j=32 V=sc |
84 | |
85 | echo "# DONE. See built images under: ./builder/bin/targets/x86/64/" |
86 |