- u_async.c: process immediate_queue BEFORE epoll_wait in uasync_poll - stcp_link.c: defensive NULL etcp_conn/etcp_link in stcp_link_close - utun_instance.c: move stcp_server_list_destroy_all to Phase J (before ETCP), add deferred drain in both Phase J and L - stcp.h/c: STCP_HS_ENC_CLIENT 6→38, STCP_HS_ENC_SERVER 7→39, exchange ed25519_pubkey in both handshake directions - etcp_connections.c: copy peer_ed25519 from STCP to ETCP_CONN in etcp_link_enter_ready_tcp; guard link->etcp in tcp_link_close_cb - chat_sync.c: fix lk->conn NULL dereference for TCP links - test_stcp.c: update stcp_server_create/stcp_client_connect callsites - tools/chat_tcp_test: change transport udp→tcp
1.9 KiB
1.9 KiB
Сборка uTun под OpenWRT
Быстрый старт
cd ~/utun2
./build_openwrt.sh # ASUS RT-AX53U (по умолчанию)
Первый запуск соберёт toolchain (30-120 минут), последующие — только пакет.
Другие платформы
./build_openwrt.sh ramips/mt7621 asus_rt-ax54 # ASUS RT-AX54
./build_openwrt.sh ramips/mt7621 xiaomi_mi-router-4a-gigabit
./build_openwrt.sh ath79/generic tplink_archer-c7-v2
./build_openwrt.sh x86/64 # x86_64 PC
./build_openwrt.sh --list # список целей
Ручная сборка (menuconfig)
cd /home/user/openwrt
make menuconfig # Target System → MediaTek Ralink MIPS
# Subtarget → MT7621 based boards
# Target Profile → ASUS RT-AX53U
# Network → utun (M)
make -j$(nproc) # полная сборка прошивки
# или только пакет:
make package/utun2/compile -j$(nproc) V=s
Пакет: bin/packages/*/base/utun_*.ipk
Структура
~/openwrt/package/utun2/Makefile— OpenWRT-пакет~/openwrt/— клон buildroot (main, https://github.com/openwrt/openwrt)~/utun2/build_openwrt.sh— скрипт сборки
Зависимости (host)
apt-get install -y build-essential git subversion libncurses-dev \
libssl-dev ccache xsltproc gawk gettext unzip python3 libtool
Примечания
configureгенерируется черезautoreconf -fi(уже сделан)- Пакет использует
USE_SOURCE_DIR— билд из /home/user/utun2 напрямую - Для чистой пересборки:
make package/utun2/clean && make package/utun2/compile -j$(nproc)