Как сделать рабочим вайфай или еще немного об OpenWrt...

Не знаю интересно ли кому то из пикабушников будет данное чтиво, но выкладываю на Ваш суд....

Предыстория:
Тплики вконец офигели), перешли с азеросов на медиатек...


Для тех кто наткнулся на этот пост случайно - поясняю: Тп-линк - производитель роутеров, азерос и медиатек - производители чипов которые используют в роутерах в том числе...


История:
Начиная с 4й ревизии 840х тплинков (wr840nv4) производитель ставит в роутеры чипы компании mediatek, вместо прежде установленных atheros. Ранее в сети провайдера, на которого я работаю, мы использовали мои сборки OpenWrt в своих целях ввиду большой функциональности и гибкости этой прошивки. При новой сборке прошивки я столкнулся с проблемой, драйвер вайфая с открытым кодом, который входит в официальную ветку LEDE/OpenWrt оказался очень глючным и радио постоянно падало вплоть до kernel panic, а другие драйвера которые можно найти в сети являются проприетарными. Ни много ни мало помучившись с открытым драйвером я принял решение собрать прошивку с закрытым. Сделал прошивку для своих целей я еще в апреле 2017, но по просьбам участников форума 4pda где то неделю назад выложил мануал на этом ресурсе. Ну и как говорится "раз пошла такая пьянка..." почему бы не поделиться мануалом и на пикабу... Собственно моих заслуг особо тут нет, я просто использовал драйвер адаптированный под LEDE/OpenWrt добрым китайцем, но все же:


сам мануал:


Клонируем с гитхаба исходники мастер ветки lede:

git clone https://github.com/lede-project/source master


Переходим в каталог с исходниками, обновляем и устанавливаем пакеты:

cd master

./scripts/feeds update -a

./scripts/feeds install -a


Скачиваем проприетарный драйвер в каталог с пакетами:

svn checkout https://github.com/dongqifan/lede-mt7628/branches/dcom/packa... ./package/mtk


Если так выйдет ошибка, то можно скачать вот так:

svn export https://github.com/dongqifan/lede-mt7628/branches/dcom/packa... ./package/mtk


Чистим tmp (если этого не сделать пакет не появится в menuconfig):

rm -r tmp


Отвязываем депендс - редактируем файл:

nano package/mtk/mt7628/Makefile

Находим строку DEPENDS:=@Target_ramips_mt7628 +mtk-basefiles и удаляем из нее @Target_ramips_mt7628, то есть будет так:

DEPENDS:= +mtk-basefiles


добавляем образ tftp-recovery для v5 (для v4 пропускаем этот пункт) редактируем файл:

nano target/linux/ramips/image/mt76x8.mk

находим профиль wr840n-v5 и добавляем строку IMAGES += tftp-recovery.bin перед IMAGE/sysupgrade.bin, должно получиться так:


define Device/tl-wr840n-v5

DTS := TL-WR840NV5

IMAGE_SIZE := 3904k

DEVICE_TITLE := TP-Link TL-WR840N v5

TPLINK_FLASHLAYOUT := 4Mmtk

TPLINK_HWID := 0x08400005

TPLINK_HWREV := 0x1

TPLINK_HWREVADD := 0x5

TPLINK_HVERSION := 3

KERNEL := $(KERNEL_DTB)

KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-v2-header -e

IMAGES += tftp-recovery.bin

IMAGE/sysupgrade.bin := tplink-v2-image -s -e | append-metadata | \

check-size $$$$(IMAGE_SIZE)

endef

TARGET_DEVICES += tl-wr840n-v5



приступаем к конфигурированию сборки:

make menuconfig

Выбираем target system: MediaTek Ralink MIPS

subtarget: MT76x8 based boards

target profile: TP-Link TL-WR840N v5 (v4 для 4го)

kernel modules -> wireless drivers убираем опенсорсный kmod-mt76

mtk properties (кстати она появилась благодаря слитому нами проприетарному драйверу) -> drivers включаем проприетарный kmod-mt7628 и настраиваем его под себя (внутри этого пункта есть подпункты).


Остальные пакеты ставьте по желанию, например Люсю или Глашу :) (я собрал с русифицированным веб интерфейсом luci), но не забывайте что у v5 всего 4 мегабайта памяти, прошивка может не собраться если объем будет больше.


выходим из menuconfig с сохранением конфигурации и запускаем компиляцию прошивки:

make -j4

Идем по своим делам или смотрим киношку от 20 минут до пары часов в зависимости от вашего железа, так как первая сборка долгая (на моем i3 где то 30-40 минут), следующие быстрее.

После удачной компиляции в папке bin/targets/ramips/mt76x8/ должны лежать образы sysupgrade и tftp-recovery, которые собственно можно устанавливать на роутер. Если ставить "с нуля", то используйте tftp-recovery (разумеется устанавливать по tftp), если обновляете уже стоящую openwrt - тогда соответственно sysupgrade.

Весь веб должен работать как надо, только wifi придется настраивать путем редактирования файла /etc/config/wireless (по ssh), если кто то доведет веб вайфая до ума, будет очень здорово!


Я не несу ответственности за окирпиченные девайсы, инструкция написана в ознакомительных целях!


Все что скомпилилось пока писал этот мануал прикрепляю в архиве (там 4 файла - 2 для v4 и 2 для v5), но сразу предупреждаю что я их не тестировал, если кто то рискнет попробовать поставить - отпишите о результате.

пруф и оригинал: http://4pda.ru/forum/index.php?showtopic=786959&st=1000#...