Страницы

понедельник, 19 октября 2015 г.

Компиляция прошивки от Merlin для Asus RT-AC68U с поддержкой IPSEC

Решил заюзать на своей мобиле IKEv2, а вернее MobIKE и т.д., чтобы весь трафик с мобилы шёл через домашний роутер. Так ОпСоС не будет резать торренты или банить за тетеринг.

В общем, для сбора прошивки нужен Debian 7.8 i386, пробовал 8.1, 8.2 - не собиралось. Так же не получилось собрать и на Ubuntu x64 14.04, 12.04, а так же на x86 версиях!

В общем нужна именно Debian 7.8 i386

Далее делаем по пунктам:

1. Обновляем индексы реп:
sudo apt-get update
2. Ставим git:
sudo apt-get --no-install-recommends install -y git git-man
3. Ставим нужные пакеты для сборки:
sudo apt-get install autoconf automake bison build-essential flex gawk gcc-multilib gettext gperf libelf1 libexpat1-dev libncurses5-dev libssl-dev libtool libxml-parser-perl libxml2-dev pkg-config shtool unzip intltool
4. Переходим в домашний каталог:
cd ~
5. Скачиваем исходники прошивки от товарища Merlin:
git clone https://github.com/RMerl/asuswrt-merlin.git
6. Скачиваем скрипт для сборки прошивки
git clone https://github.com/assarbad/build-asuswrt-merlin.git
7. Переходим в каталог с исходником прошивки:
cd ~/asuswrt-merlin
8. Редактируем release/src-rt/target.mak, надо выключить BWDPI (prebuild версия libbwdpi.so не совместима с IPSEC, она перестаёт работать), выключить EMAIL (он шлёт какие-то репорты о BWDPI, а так как оно выключено, то будет падать на вызове функций BWDPI) и включить IPSEC, т.е. EMAIL=n, IPSEC=y и BWDPI=n.

# Broadcom ARM platform
export RT-AC68U_BASE := IPV6SUPP=y HTTPS=y ARM=y BCM57=y AUTODICT=y BBEXTRAS=y USBEXTRAS=y EBTABLES=y \
                        SAMBA3=y MEDIASRV=y MODEM=y MODEMPIN=y BECEEM=y PARENTAL2=y ACCEL_PPTPD=y PRINTER=y STAINFO=y \
                        WEBDAV=y CLOUDSYNC=y USB="USB" GRO=y APP="nolocaldm" PROXYSTA=y FTPCLIENT=y SAMBACLIENT=y \
                        DNSMQ=y SHP=y NVRAM_64K=y RTAC68U=y BCMWL6=y BCMWL6A=y TUNEK="n" BCM5301X=y DISK_MONITOR=y \
                        BTN_WIFITOG=y TURBO=y BCM4352_5G=y OPTIMIZE_XBOX=y ODMPID=y LED_BTN=y ROG=y SSD=n EMAIL=n \
                        LED_BTN_MODE=y BCMSMP=y XHCI=y SSH=y JFFS2=y NFS=y OPENVPN=y USER_LOW_RSSI=y DROPBOXCLIENT=y \
                        TIMEMACHINE=y MDNS=y VPNC=y BRCM_NAND_JFFS2=y JFFS2LOG=y BCMFA=y BWDPI=n ADBLOCK=n \
                        DUMP_OOPS_MSG=y LINUX_MTD="64" BCM7=n TEMPROOTFS=y DEBUGFS=y SWEBDAVCLIENT=y SNMPD=y TOR=y \
                        CTF_PPTP_L2TP=y BCM5301X_TRAFFIC_MONITOR=y CLOUDCHECK=y NATNL=y JFFS2USERICON=y REBOOT_SCHEDULE=y \
                        TFAT=y HFS="tuxera" NTFS="tuxera" IPSEC=y REPEATER=y DUALWAN=y DNSFILTER=y SAMBA36=y UPNPIGD2=n
9. Если уже собирали прошивку с другими флагами, то надо сделать очистку:
cd release/src-rt-6.x.4708
make cleankernel clean &>/dev/null
rm .config
cd -
10. Копируем вспомогательный скрипт в папку с кодом прошивки:
cp ../build-asuswrt-merlin/debian-build-image ./
11. Запускам сборку:
./debian-build-image RT-AC68U
12. Через некоторое время получим:
...
Your image can be found here:
release/src-rt-6.x.4708/image/RT-AC68U_378.56_beta3.trx

CLEANUP: extended cleanup of source tree changes
Runtime: 43:06

Вот и всё, прошивка собрана, можно ставить strongSwan!

P.S. пока игрался с роутингом (трафик не роутился) дополнительно включил следующие опции в release/src-rt-6.x.4708/linux/linux-2.6.36/config_base.6a (может они всё-таки нужны):
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET6_XFRM_TUNNEL=m
CONFIG_INET6_TUNNEL=m
CONFIG_INET6_XFRM_MODE_TUNNEL=m
CONFIG_IPV6_TUNNEL=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_DUMMY=m   # не пригодилось точноCONFIG_CRYPTO_AUTHENC=m
Инфу взял из xgu.ru и wiki.strongswan.org