Table of Contents

Встановлення OpenWrt через TFTP з комп'ютера на Linux

Цільова аудиторія

Це керівництво орієнтоване на початківців, які мають пристрій із встановленою Linux.

Необхідні умови

Для прошивки через TFTP вам знадобляться такі інструменти:

Комп’ютер: Будь-який ПК або ноутбук із Linux і Ethernet-портом (або адаптером USB → Ethernet)
Маршрутизатор: Будь-який маршрутизатор, який підтримує встановлення через TFTP ( Встановлення через TFTP)
Знання: Мінімальні знання щодо відкриття терміналу і запуску команд

Також підготуйте таку інформацію:

* На якій системі базується ваш дистрибутив?

* Яка назва вашого Ethernet-інтерфейсу?

Огляд процесу

Процедура складається з трьох основних етапів:

  1. Налаштування мережі
  2. Налаштування tftpd
  3. Активація запиту TFTP на маршрутизаторі

Налаштування мережі

Встановіть пакет:

  1. `network-manager` — для зручного налаштування мережі. (інтегрується з типовими засобами мережевої конфігурації в Linux)

Згідно з інструкцією для вашого маршрутизатора, дізнайтесь IP-адресу, з якої він очікує прошивку (наприклад, `192.168.1.20`), і за допомогою `nmtui` створіть профіль:

Виберіть: Edit a connection → Add → Ethernet:

  1. Profile name: `'Static Address for TFTP'`
  2. Device: `(вказати назву ethernet-порту, наприклад enp0s25)`
  3. IPv4 Configuration:
    1. Ручний
    2. Адреси: `192.168.1.20/24`
  4. Далі натисніть `<OK>`

Щоб протестувати, підключіться до маршрутизатора кабелем Ethernet, виберіть з'єднання `'Static Address for TFTP'`, і перевірте свою IP-адресу командою `ip address` — вона має бути правильною.

Налаштування tftpd

Встановіть пакет:

  1. `tftpd-hpa` — сервіс, який відповідає на TFTP-запити

Після встановлення має з’явитись директорія `/var/lib/tftpboot/` (у багатьох дистрибутивах, зокрема Debian/Ubuntu, це `/srv/tftp`). Саме туди треба поміщати файли для прошивки.

*Якщо не створено — перевірте шлях через `dpkg -L tftpd-hpa` або подібне.*

Скопіюйте потрібні файли до `/var/lib/tftpboot/`. Для цього, ймовірно, знадобиться `sudo`.

Запустіть сервіс:

sudo systemctl start tftpd-hpa

Або перезапустіть сервіс, якщо це потрібно:

sudo systemctl restart tftpd-hpa

Ця команда не повинна виводити жодних повідомлень. Перевірити, чи сервіс активний, можна так:

sudo systemctl status tftpd-hpa

Порада: Якщо сервіс не запускається, можливо, інший процес вже використовує порт 69, і блокує tftpd-hpa. Перевірити це можна так:

sudo netstat -tupena | grep :69

Приклад виводу:

udp        0      0 0.0.0.0:69              0.0.0.0:*      0  1786355  11349/inetd
udp6       0      0 :::69                   :::*           0  1786356  11349/inetd

У цьому випадку порт зайнятий процесом inetd. Його потрібно зупинити:

sudo systemctl stop inetd

Активація запиту TFTP

Тепер підключіть маршрутизатор, який ви збираєтесь прошити, до ноутбука або ПК через Ethernet-кабель. Далі дотримуйтесь інструкції для вашої моделі маршрутизатора, щоб активувати TFTP-запит.

Якщо ви використовуєте послідовний кабель для керування маршрутизатором, зазвичай в консолі uBoot ви виконуєте команду для завантаження з мережі — наприклад, як описано для Meraki MR16.

Виправлення проблем

Якщо маршрутизатор не завантажується, перевірте наступне:

Чи справді надходить TFTP/BOOTP-запит від маршрутизатора?

Перевірити це можна командою:

sudo tcpdump -i <назва ethernet-інтерфейсу> port 69

Чи правильно названі файли?

TFTP-клієнт запитує файли по точній назві, тому вони мають бути названі в точності так, як очікує маршрутизатор, і знаходитись у /var/lib/tftpboot/.