Встановлення OpenWrt через TFTP з комп'ютера на Linux
Цільова аудиторія
Це керівництво орієнтоване на початківців, які мають пристрій із встановленою Linux.
Необхідні умови
Для прошивки через TFTP вам знадобляться такі інструменти:
| Комп’ютер: Будь-який ПК або ноутбук із Linux і Ethernet-портом (або адаптером USB → Ethernet) |
| Маршрутизатор: Будь-який маршрутизатор, який підтримує встановлення через TFTP ( Встановлення через TFTP) |
| Знання: Мінімальні знання щодо відкриття терміналу і запуску команд |
Також підготуйте таку інформацію:
* На якій системі базується ваш дистрибутив?
- X/L/K/Ubuntu, ElementaryOS, Kali, Finnix — це Debian (пакети встановлюються через `apt` або `apt-get`)
- Fedora, CentOS, Red Hat — це Red Hat (використовується `yum`)
- Manjaro, Arch — це Arch Linux (використовується `pacman`)
* Яка назва вашого Ethernet-інтерфейсу?
- Запустіть `ip link` у терміналі і знайдіть пристрій, що починається на `e`
Огляд процесу
Процедура складається з трьох основних етапів:
- Налаштування мережі
- Налаштування tftpd
- Активація запиту TFTP на маршрутизаторі
Налаштування мережі
Встановіть пакет:
- `network-manager` — для зручного налаштування мережі. (інтегрується з типовими засобами мережевої конфігурації в Linux)
Згідно з інструкцією для вашого маршрутизатора, дізнайтесь IP-адресу, з якої він очікує прошивку (наприклад, `192.168.1.20`), і за допомогою `nmtui` створіть профіль:
Виберіть: Edit a connection → Add → Ethernet:
- Profile name: `'Static Address for TFTP'`
- Device: `(вказати назву ethernet-порту, наприклад enp0s25)`
- IPv4 Configuration:
- Ручний
- Адреси: `192.168.1.20/24`
- Далі натисніть `<OK>`
Щоб протестувати, підключіться до маршрутизатора кабелем Ethernet, виберіть з'єднання `'Static Address for TFTP'`, і перевірте свою IP-адресу командою `ip address` — вона має бути правильною.
Налаштування tftpd
Встановіть пакет:
- `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/.