Цены на интернет постоянно падают, вот и у меня провайдер поднял скорость, с 5Мбит/с до 10Мбит.с, за ту-же цену. И все бы ничего, да только вот скорость как была 5Мбит/с так и осталась, и виноват в этом был роутер в котором стояла прошивка OpenWRT. Дело в том что провайдер предоставляет доступ в интернет через pptp туннель, а стандартная реализация pptp в Linux работает в юзерспейсе и просто-напросто не хватает производительности железа. Немного погуглив я узнал, что есть выход, оказывается существует "реактивная" реализация под названием accel-pptp, которая работает в kernel-space(Таненбаум неодобряэ :)). Вот и решил я собрать OpenWRT с accel-pptp. Собирал я прошивку для роутера DLink DIR-320. Кстати, accel-pptp приняли в ядро начиная с версии 2.6.37 но LuCi всеравно юзает обычную версию.
Итак теперь сборка:
Сначала получаем исходники.
svn co -r 28289 svn://svn.openwrt.org/openwrt/trunk openwrt
Почему именно ревизия 28289 я незнаю :) просто она у меня собралась. Вы конечно можете стянуть более свежую версию, но с версией ядра >= 3 у меня accel-pptp не заработал.
Теперь переходим в директорию с исходниками.
cd openwrt
Создаем директорию в которой будут находиться дополнительные пакеты.
mkdir custom-feed
Копирум конфигурационный файл.
cp feeds.conf.default feeds.conf
В файле feeds.conf раскометируем строчку #src-link custom /usr/src/openwrt/custom-feed
и прописываем вместо /usr/src/openwrt/custom-feed путь к директории custom-feed которую мы только-что создали.
Качаем отсюда пакет
https://dev.openwrt.org/ticket/9605
и распаковываем его в директорию custom-feed
Ну собственно дальше идет процесс сборки.
./scripts/feeds update -a && ./scripts/feeds install -a make prereq && make tools/install && make toolchain/install make menuconfig make V=99
Во время конфигурирования нужно выбрать свою архитектуру и модель wifi устройства, а так-же необходимо выбрать пакет ppp-mod-pptp, в конфигураторе <M>напротив пакета означает, что он будет собран отдельно и не включен в прошивку(его потом можно будет доустановить с помощью opkg), <*>означает, что пакет будет включен в прошивку и достаточно только прошить роутер.
Ну все после сборки прошивка и пакеты будут находиться в директории openwrt/bin/архитектура_роутера/
После прошивки нужно будет создать файл /usr/sbin/pptp иначе из LuCi не получится настроить pptp его просто не будет в списке.
touch /usr/sbin/pptp
И на последок выкладываю прошивку для архитектуры brcm47xx для моего dir-320.
openwrt-brcm47xx-squashfs.trx 2.5MiB
MD5: 307d089dfae336152e5cf8e71be22c1c
ppp-mod-pptp_0.8.5-3_ar71xx.ipk 18.2KiB
MD5: 54d6d3e51936aa2cd0b5f915c90d5108
openwrt-ar71xx-generic-wrt160nl-squashfs-sysupgrade.bin 2.9MiB
MD5: 682dd72b881ce009877777baf856b36d