Как сделать рабочим вайфай или еще немного об 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#...