Created
July 31, 2024 23:29
-
-
Save rubeniskov/7b2d6ccbd19895f8446a3ef800b6d5e3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://github.com/mwarning/docker-openwrt-build-env | |
# https://mirror-03.infra.openwrt.org/releases/23.05.0/targets/bmips/bcm63268/ | |
# https://firmware-selector.openwrt.org/?version=23.05.0&target=bmips%2Fbcm63268&id=sercomm_h500-s-vfes | |
# https://openwrt.org/toh/sercomm/h500-s?s[]=sercomm&s[]=h500&s[]=vfes&s[]=bmips&s[]=bcm63268 | |
# https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem | |
# https://github.com/mwarning/openwrt-examples/tree/master/example3 | |
# cat /etc/config/network | |
mkdir -p /tmp/openwrt | |
cd /tmp/openwrt | |
[ ! -d docker-openwrt-builder ] && git clone https://github.com/mwarning/docker-openwrt-builder.git | |
cd docker-openwrt-builder | |
docker build --platform linux/amd64 -t openwrt_builder . | |
if [ "$(uname)" == "Darwin" ]; then | |
hdiutil create -size 64g -fs "Case-sensitive HFS+" -type SPARSEBUNDLE -volname openwrt-dev-env openwrt-dev-env.dmg | |
hdiutil attach openwrt-dev-env.dmg.sparsebundle | |
fi | |
DOCKER_RUN_FLAGS=$([ "$(uname)" == "Darwin" ] && echo "-v /Volumes/openwrt-dev-env:/home/user" || echo "-v /tmp/openwrt:/home/user") \ | |
docker run --platform linux/amd64 $DOCKER_RUN_FLAGS -it openwrt_builder /bin/bash | |
## Inside the container | |
sudo apt-get install libpcre3-dev libpcre3 libev-dev libpam-abl liblzma-dev libsnmp-dev -y | |
cd /home/user | |
mkdir ./openwrt-fs # create mount folder | |
if [ "$(uname)" == "Darwin" ]; then | |
dd if=/dev/zero of=ext4openwrtfs.img bs=1G count=0 seek=60 # set "seek=" to however many gigabytes you want, always less than the created dmg image | |
mkfs.ext4 ext4openwrtfs.img # create filesystem | |
sudo mount $(losetup -fP --show ext4openwrtfs.img) ./openwrt-fs # mount support folder | |
sudo chown -R user:user ./openwrt-fs # change ownership to user | |
fi | |
cd ./openwrt-fs # $(pwd) should be /home/user/openwrt-fs | |
[ ! -d openwrt ] && git clone https://git.openwrt.org/openwrt/openwrt.git # repo will be in /home/user/openwrt-fs/openwrt | |
cd openwrt | |
cat feeds.conf.default > feeds.conf | |
echo "src-git hg500 https://github.com/danitool/openwrt-pkgs.git" >> feeds.conf | |
./scripts/feeds update -a | |
rm -rf package/feeds/hg500/{dump-cp15,dummy-irq,luci-app-tn-vsftpd,amule} | |
./scripts/feeds install libev libpam liblzma libnetsnmp libexpat libtirpc call_qcsapi | |
# Configure default settings | |
mkdir -p ./files/etc/uci-defaults | |
cat << "EOF" > ./files/etc/uci-defaults/98-network | |
uci -q batch << EOI | |
set network.lan='interface' | |
set network.lan.device='br-lan' | |
set network.lan.proto='static' | |
set network.lan.ipaddr='192.168.0.253' | |
set network.lan.netmask='255.255.255.0' | |
set network.lan.ip6assign='60' | |
set network.lan.gateway='192.168.0.1' | |
add_list network.lan.dns='192.168.0.1' | |
commit network | |
EOI | |
/etc/init.d/network restart | |
EOF | |
cat << "EOF" > ./files/etc/uci-defaults/99-wifi | |
uci -q batch << EOI | |
set network.lan2=interface | |
set network.lan2.ifname=@lan | |
set network.lan2.proto=static | |
set network.lan2.ipaddr=1.1.1.1 | |
set network.lan2.netmask=255.0.0.0 | |
commit network | |
EOI | |
/etc/init.d/network restart | |
uci -q batch << EOI | |
set dhcp.@dnsmasq[-1].enable_tftp=1 | |
set dhcp.@dnsmasq[-1].tftp_root=/etc/wlan | |
commit dhcp | |
EOI | |
/etc/init.d/dnsmasq restart | |
EOF | |
cat <<EOF > .config | |
CONFIG_TARGET_bmips=y | |
CONFIG_TARGET_bmips_bcm63268=y | |
CONFIG_TARGET_MULTI_PROFILE=y | |
CONFIG_TARGET_ALL_PROFILES=n | |
CONFIG_TARGET_DEVICE_bmips_bcm63268_DEVICE_sercomm_h500-s-lowi=y | |
CONFIG_TARGET_DEVICE_PACKAGES_bmips_bcm63268_DEVICE_sercomm_h500-s-lowi="call_qcsapi" | |
CONFIG_TARGET_DEVICE_bmips_bcm63268_DEVICE_sercomm_h500-s-vfes=y | |
CONFIG_TARGET_DEVICE_PACKAGES_bmips_bcm63268_DEVICE_sercomm_h500-s-vfes="call_qcsapi" | |
CONFIG_ALL_KMODS=y | |
CONFIG_ALL_NONSHARED=y | |
CONFIG_DEVEL=y | |
CONFIG_TARGET_PER_DEVICE_ROOTFS=y | |
CONFIG_AUTOREMOVE=y | |
CONFIG_BPF_TOOLCHAIN_BUILD_LLVM=y | |
# CONFIG_BPF_TOOLCHAIN_NONE is not set | |
CONFIG_BUILDBOT=y | |
CONFIG_COLLECT_KERNEL_DEBUG=y | |
CONFIG_HAS_BPF_TOOLCHAIN=y | |
CONFIG_IB=y | |
CONFIG_IMAGEOPT=y | |
CONFIG_KERNEL_BUILD_DOMAIN="buildhost" | |
CONFIG_KERNEL_BUILD_USER="builder" | |
# CONFIG_KERNEL_KALLSYMS is not set | |
CONFIG_MAKE_TOOLCHAIN=y | |
CONFIG_PACKAGE_cgi-io=y | |
CONFIG_PACKAGE_libbpf=m | |
CONFIG_PACKAGE_libelf=m | |
CONFIG_PACKAGE_libiwinfo=y | |
CONFIG_PACKAGE_libiwinfo-data=y | |
CONFIG_PACKAGE_liblucihttp=y | |
CONFIG_PACKAGE_liblucihttp-ucode=y | |
CONFIG_PACKAGE_libpcap=m | |
CONFIG_PACKAGE_libxdp=m | |
CONFIG_PACKAGE_luci=y | |
CONFIG_PACKAGE_luci-app-firewall=y | |
CONFIG_PACKAGE_luci-app-opkg=y | |
CONFIG_PACKAGE_luci-base=y | |
CONFIG_PACKAGE_luci-light=y | |
CONFIG_PACKAGE_luci-mod-admin-full=y | |
CONFIG_PACKAGE_luci-mod-network=y | |
CONFIG_PACKAGE_luci-mod-status=y | |
CONFIG_PACKAGE_luci-mod-system=y | |
CONFIG_PACKAGE_luci-proto-ipv6=y | |
CONFIG_PACKAGE_luci-proto-ppp=y | |
CONFIG_PACKAGE_luci-ssl=y | |
CONFIG_PACKAGE_luci-theme-bootstrap=y | |
CONFIG_PACKAGE_px5g-mbedtls=y | |
CONFIG_PACKAGE_qosify=m | |
CONFIG_PACKAGE_rpcd=y | |
CONFIG_PACKAGE_rpcd-mod-file=y | |
CONFIG_PACKAGE_rpcd-mod-iwinfo=y | |
CONFIG_PACKAGE_rpcd-mod-luci=y | |
CONFIG_PACKAGE_rpcd-mod-rrdns=y | |
CONFIG_PACKAGE_rpcd-mod-ucode=y | |
CONFIG_PACKAGE_tc-tiny=m | |
CONFIG_PACKAGE_ucode-mod-html=y | |
CONFIG_PACKAGE_ucode-mod-math=y | |
CONFIG_PACKAGE_uhttpd=y | |
CONFIG_PACKAGE_uhttpd-mod-ubus=y | |
CONFIG_PACKAGE_xdp-filter=m | |
CONFIG_PACKAGE_xdp-loader=m | |
CONFIG_PACKAGE_xdpdump=m | |
CONFIG_PACKAGE_zlib=m | |
CONFIG_PACKAGE_call_qcsapi=y | |
CONFIG_REPRODUCIBLE_DEBUG_INFO=y | |
CONFIG_SDK=y | |
CONFIG_SDK_LLVM_BPF=y | |
CONFIG_USE_LLVM_BUILD=y | |
CONFIG_VERSIONOPT=y | |
CONFIG_VERSION_BUG_URL="" | |
CONFIG_VERSION_CODE="" | |
CONFIG_VERSION_DIST="OpenWrt" | |
CONFIG_VERSION_FILENAMES=y | |
CONFIG_VERSION_HOME_URL="" | |
CONFIG_VERSION_HWREV="" | |
CONFIG_VERSION_MANUFACTURER="" | |
CONFIG_VERSION_MANUFACTURER_URL="" | |
CONFIG_VERSION_NUMBER="" | |
CONFIG_VERSION_PRODUCT="" | |
CONFIG_VERSION_REPO="https://downloads.openwrt.org/releases/23.05.0" | |
CONFIG_VERSION_SUPPORT_URL="" | |
EOF | |
#make menuconfig | |
make defconfig | |
make -j`nproc` |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment