- PVSM.RU - https://www.pvsm.ru -
Здравствуйте меня зовут Дмитрий и сегодня я сделаю обзор на одноплатный компьютер Banana Pi R64. Мы узнаем как установить на него OpenWrt а также как собрать самому прошивку под этот компьютер.
Итак, на Хабре уже есть обзор на этот компьютер вот он [1] но там автор в качестве ОС использует Armbian. Я попробовал данную ОС, а также Debian и пришел к выводу что нет лучшей ОС для создания роутера чем OpenWrt, вот причины:
Данная инструкция взята с официального форума Banana PI: forum.banana-pi.org/c/Banana-Pi-BPI-R2 [2].
Для установки OpenWrt вам понадобится:
Порядок действий:
К сожалению образ который мы залили на устройство очень старый. Поэтому на него например нельзя установить дополнительные приложения (пакеты).
Надо сказать что на момент написания данной статьи нет стабильной версии OpenWrt для Bpi-R64. Есть поддержка данного устройства в ветке разработчиков [8], но на данный момент совместимость не полная. То есть, вы можете загрузить initramfs образ и он будет работать. Но этот образ создан для ознакомления с OpenWrt, он существует только в оперативной памяти и после перезагрузки устройства, все настройки а также установленные приложения будут утеряны. Sysupgrade образ на данный момент нерабочий, и если вы его установите, то устройство просто будет постоянно перезагружаться.
Поэтому единственный способ получить рабочий sysupgrade образ это собрать его самому, используя патчи с официального форума Banana PI.
Я уже произвел сборку образа OpenWrt от 16 апреля 2020. Вот этот образ образ [9].
Он включает в себя:
Чтобы установить данный образ надо зайти в U-boot меню и выбрать опцию: 2) System Load Linux Kernel then write to Flash via TFTP.
Но если вы хотите собрать собственный образ, то вот как это сделать.
Поскольку процесс сборки и подготовки к ней очень объемный, то описывать я буду лишь основный моменты.
1) Для сборки вам понадобится виртуальная машина и образ Linux. Как их подготовить и где достать описано здесь [11]. Хочу заметить что в настройках виртуальной машины обязательно укажите количество ядер вашего процессора (по умолчанию там стоит 1). Сборка ядра процесс очень долгий, а на одном ядре она будет ещё дольше.
2) После этого нужно скачать исходники с Git как это сделать описано здесь [12]. Надо остановится на команде make menuconfig
3) Заходите в файл openwrt/target/linux/mediatek/makefile и меняете номер ядра с 5.4 на 4.19. Собрать образ OpenWrt на ядре 5.4 в данный момент невозможно.
4) make menuconfig выбираем Target->Mediatck Arm, Subtarget-> mt7622, Profile->Banana Pi R64. Также можно выбрать необходимые вам дополнительные пакеты. После чего выходим с сохранением.
5) make defconfig не знаю зачем но эту команду всегда делают.
6) make kernel_menuconfig -j5 число после j рассчитывается как количество ядер вашего процессора плюс один (у меня процессор четырех ядерный).
7) После получаса ожиданий, появится меню конфигурации ядра здесь, нужно задать вот эти опции:
«Device Drivers»-->«Memory Technology Device (MTD) support»-->«Command line partition table parsing»
«Device Drivers»-->«Memory Technology Device (MTD) support»«Self-contained MTD device drivers»-->«MTD using block device»
«Device Drivers»-->«MMC/SD/SDIO card suport»->«MMC block device driver»
8) Берете вот этот патч [13] и копируете его сюда: openwrt/target/linux/mediatek/patches-4.19. (Я хочу заметить что у меня этот патч постоянно вызывал ошибки компиляции. Поэтому я просто руками скопировал строки из него в файл mt7622-bananapi-bpi-r64.dts который лежит здесь: openwrt/linux/mediatek/files-4.19/arch/arm64/boot/dts/mediatek)
9) make -j5
10) После компиляции в папке bin будет лежать файл openwrt-mediatek-mt7622-bpi_bananapi-r64-squashfs-sysupgrade.bin который вы сможете прошить через u-boot меню опция: 2) System Load Linux Kernel then write to Flash via TFTP.
Banana Pi очень спорное устройство. Высокая производительность в нем сочетается с безобразной поддержкой со стороны разработчиков. Официальной прошивки нет, а поддержка со стороны сторонних разработчиков так себе. Но все же это очень мощный роутер с 5 гигабитными портами, гигабайтом оперативной памяти, и быстрым двухядерным процессором. То есть тут нет такого как на обычном роутере, когда ты поставил Transsmison на закачку и роутер весь пыхтит скрипит как будто сейчас помрет. Здесь работа Transmission ни как не сказывается на отзывчивости устройства.
Также стоит отметить что устройство продается без корпуса. Поэтому корпус придется делать самому. Но если у вас есть 3D принтер то это не проблема вот мой вариант [14]
Автор: Дмитрий
Источник [16]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/352262
Ссылки в тексте:
[1] вот он: https://habr.com/ru/post/496610/
[2] forum.banana-pi.org/c/Banana-Pi-BPI-R2: http://forum.banana-pi.org/c/Banana-Pi-BPI-R2
[3] Win32 Diskimager: https://sourceforge.net/projects/win32diskimager/files/Archive/
[4] TFTP сервер: http://tftpd32.jounin.net/tftpd32_download.html
[5] Sd образ для карты: https://drive.google.com/file/d/1Ap7lt-pjpG-pAOAEqpH13-SMOSkRkZI0/view
[6] Img образ, который вы зальёте во внутреннюю память устройства : https://drive.google.com/file/d/1w8kO3klbPfdHK6lTI8Ub8sR_7ViISORM/view
[7] Прелоадер, который нужен для загрузки этого образа: https://drive.google.com/file/d/1Fy__GpNSWRcITEmzH4Z_jxnjrCS3BpQJ/view
[8] ветке разработчиков: https://downloads.openwrt.org/snapshots/targets/mediatek/mt7622/
[9] образ: https://cloud.mail.ru/public/yEWX/Bu15E8T99
[10] подробности здесь: https://oldwiki.archive.openwrt.org/doc/howto/writable_ntfs
[11] здесь: https://openwrt.org/docs/guide-user/additional-software/beginners-build-guide
[12] здесь: https://openwrt.org/docs/guide-developer/quickstart-build-images
[13] этот патч: http://forum.banana-pi.org/uploads/short-url/A0C6Yd9NnIn6h6Yvefg4rs2oFc3.patch
[14] вот мой вариант: https://www.thingiverse.com/thing:4261948
[15] Настройки для menu config из моего билда: https://cloud.mail.ru/public/5vod/3Vu26ghGG
[16] Источник: https://habr.com/ru/post/497842/?utm_source=habrahabr&utm_medium=rss&utm_campaign=497842
Нажмите здесь для печати.