Инструменты пользователя

Инструменты сайта


wiki:openwrt:build_rtk

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
wiki:openwrt:build_rtk [2024/08/13 18:26] – [Подготовка к сборке] Dimanwiki:openwrt:build_rtk [2026/05/11 20:47] (текущий) – [Альтернативный план] Diman
Строка 17: Строка 17:
              flex gettext wget unzip xz-utils python3 python3-distutils-extra \              flex gettext wget unzip xz-utils python3 python3-distutils-extra \
              python3-setuptools swig rsync curl libsnmp-dev liblzma-dev \              python3-setuptools swig rsync curl libsnmp-dev liblzma-dev \
-             libpam0g-dev cpio rsync gcc-multilib+             libpam0g-dev cpio rsync gcc-multilib bison 
 + 
 +apt-get install texinfo
  
  
Строка 28: Строка 30:
  
 cp rtk_deconfig/defconfig_rtl819xd .config cp rtk_deconfig/defconfig_rtl819xd .config
 +
 +</code>
 +
 +===== Сборка на Ubuntu 16.04 32 bit =====
 +
 +После нескольких **десятков** часов проб и ошибок наметился тернистый, но вроде как рабочий способ сборки на базе Ubuntu 16 32 bit
 +
 +
 +<code bash>
 +root@ubuntu16:~# uname -a
 +Linux ubuntu16 4.4.0-142-generic #168-Ubuntu SMP Wed Jan 16 21:01:15 UTC 2019 i686 athlon i686 GNU/Linux
 +
 +</code>
 +
 +==== Шаг 1. Подготовка системы (Ubuntu 16.04 x86) ====
 +
 +Сборка прошивок OpenWrt очень требовательна к окружению. Чтобы избежать проблем, лучше всего работать в чистой 32-битной Ubuntu 16.04.
 +
 +  * Используйте виртуальную машину: Самый надежный способ — поднять виртуальную машину (VirtualBox, VMware) с Ubuntu 16.04 32-bit (i386)
 +
 +  * Это исключит ошибки, связанные с битностью библиотек.
 +
 +Установите зависимости: Внутри виртуальной машины откройте терминал и выполните команду для установки всех необходимых для сборки пакетов
 +
 +<code bash>
 +sudo apt-get update
 +sudo apt-get install -y build-essential libncurses5-dev zlib1g-dev gawk \
 +  unzip git wget python subversion file gcc g++ perl bzip2 openssl findutils \
 +  libssl-dev autoconf automake libtool patch rsync xz-utils flex bison
 +
 +</code>
 +
 +в Ubuntu 16.04 по умолчанию стоит старая версия automake, установим новее вручную
 +
 +<code bash>
 +
 +
 +cd /tmp
 +wget https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.gz
 +tar -xzf automake-1.16.5.tar.gz
 +cd automake-1.16.5
 +./configure --prefix=/usr
 +make
 +sudo make install
 +
 +# Проверьте
 +# Убедитесь, что версия automake 1.16 или новее
 +automake --version
 +
 +</code>
 +==== Шаг 2. Получение и настройка исходного кода ====
 +
 +Вместо того чтобы брать "голый" OpenWrt, мы будем использовать форк, который уже содержит все необходимые патчи и конфигурации для нашего чипа.
 +
 +<code bash>
 +#
 +# Клонируем репозиторий разработчика в вашу домашнюю директорию:
 +
 +cd ~
 +git clone https://github.com/Vyacheslav-S/openwrt-rtk819.git
 +cd openwrt-rtk819
 +
 +#
 +# Отредактируйте файл конфигурации фидов feeds.conf.default:
 +
 +nano feeds.conf.default
 +
 +#
 +# Приведите его содержимое к следующему виду:
 +# Замените старые URL на актуальные пути с GitHub 
 +# Обязательно закомментируйте фид oldpackages, добавив # в начало строки.
 +# Скопируйте и вставьте этот исправленный конфиг:
 +#
 +
 +src-git packages https://git.openwrt.org/feed/packages.git^af8725bc0e2749b422145c9be05a2128e69e7642
 +src-git luci https://github.com/openwrt/luci.git;luci-0.12
 +src-git routing https://github.com/openwrt-routing/packages.git;for-14.07
 +src-git telephony https://github.com/openwrt/telephony.git;for-14.07
 +src-git management https://github.com/openwrt-management/packages.git;for-14.07
 +# src-git oldpackages http://git.openwrt.org/14.07/packages.git
 +# src-svn xwrt http://x-wrt.googlecode.com/svn/trunk/package
 +# src-svn phone svn://svn.openwrt.org/openwrt/feeds/phone
 +# src-svn efl svn://svn.openwrt.org/openwrt/feeds/efl
 +# src-svn xorg svn://svn.openwrt.org/openwrt/feeds/xorg
 +# src-svn desktop svn://svn.openwrt.org/openwrt/feeds/desktop
 +# src-svn xfce svn://svn.openwrt.org/openwrt/feeds/xfce
 +# src-svn lxde svn://svn.openwrt.org/openwrt/feeds/lxde
 +# src-link custom /usr/src/openwrt/custom-feed
 +
 +#
 +# Обновляем и установите "фиды" (feeds). 
 +# Это символьные ссылки на все доступные пакеты приложений (LuCI, OpenVPN и т.д.)
 +
 +./scripts/feeds clean
 +./scripts/feeds update -a
 +./scripts/feeds install -a
 +
 +</code>
 +
 +==== Шаг 3. Конфигурация (Выбор пакетов и опций) ====
 +
 +Теперь нужно настроить, какие именно компоненты войдут в вашу прошивку.
 +
 +<code bash>
 +
 +# Запускаем псевдографический интерфейс настройки:
 +#
 +
 +make menuconfig
 +
 +</code>
 +
 +Настройте ключевые параметры:
 +
 +   * Target System: Должен быть выбран Realtek MIPS (или похожий на rtl819x). Эта опция обычно уже выставлена по умолчанию в форке разработчика
 +   * Target Profile: Найдите и выберите модель вашего роутера Beeline N300 или аналогичную (SmartBox ONE).
 +
 +Добавление пакетов: Нажмите клавишу / для поиска по пакетам, введите название и нажмите M (собрать как модуль .ipk), чтобы добавить в прошивку:
 +
 +   * luci — веб-интерфейс (отметьте *).
 +
 +    luci-i18n-russian — русский язык для веб-интерфейса.
 +
 +    openvpn-openssl — сам OpenVPN.
 +
 +   * openssh-sftp-server — для безопасной передачи файлов (дополнительно к OpenSSH).
 +
 +Сохраните конфигурацию и выйдите из меню.
 +
 +==== Шаг 4. Процесс сборки ====
 +
 +Теперь, когда все готово, можно запускать компиляцию.
 +
 +  * Начните сборку. Рекомендуется использовать один поток (-j1), чтобы видеть все ошибки, а не пропускать их
 +
 +
 +<code bash>
 +
 +make V=99 -j1
 +
 +#
 +# Очень длинный процесс
 +#
 +make world
 +
 +</code>
 +
 +==== Альтернативный план ====
 +
 +
 +<code bash>
 +
 +git clone https://github.com/vido89/Open-Wrt-RTK.git
 +cd Open-Wrt-RTK/rtk_openwrt_src
 +cp rtk_deconfig/defconfig_rtl8196xd .config
 +./scripts/feeds update -a
 +./scripts/feeds install -a
 +./rtk_scripts/rtk_init.sh patch
 +make V=99
 +</code>
 +
 +
 +
 +В этом месте возникает ошибка **Exec format error**, потому что вы пытаемся собрать Open-Wrt-RTK на 32-битной системе, а его инструменты (find, xzcat) собраны для 64-битной архитектуры.
 +
 +Репозиторий vido89/Open-Wrt-RTK предназначен для сборки в 32-битной среде (i686), о чём явно говорит структура тулчейна и скриптов.
 +
 +<code bash>
 +cd Open-Wrt-RTK/rtk_openwrt_src
 +
 +# Очистить старые сборки
 +make clean
 +rm -rf staging_dir/host/
 +
 +# Пересобрать tools для 32-bit
 +make tools/compile V=99
 +
 +# Затем продолжить
 +make world V=99
  
 </code> </code>
wiki/openwrt/build_rtk.1723573595.txt.gz · Последнее изменение: Diman

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki