Вступление
Была задача - прошить (раскирпичить) роутер TP Link Arcer C5. Как выяснилось - это делается через автоматический подхват роутера при включении с зажатым "reset" файла прошивки с пк, который подключён по проводу. Но вот незадача, гайды (ссылки прикреплю ниже) по прошивке - либо на ubuntu, либо на windows, а информации в интернете для новичка мало.
Поэтому я собрал здесь всю основную информацию о том, как поднять правильно TFTP на ALT Linux 11.1 + прошить роутер)))
ВНИМАНИЕ! Мне подсказали в чате АЛЬТ Линукс более простые варианты, они описаны ниже. Я их оттестировал и из коробки завелась только atftp. Почитайте про него в самом конце статьи.
Как поднять TFTP
Сама настройка:
1. Надо установить пакеты:
su-
apt-get install xinetd tftpd tftp
2. Создаём конфигурационный файл tftp:
touch /etc/xinetd.d/tftp
3. Заполняем его с помощью vim (почитать как им пользоваться можете здесь)
vim /etc/xinetd.d/tftp
Содержимое:
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /srv/tftp
disable = no
log_type = FILE /var/log/tftp.log
per_source = 11
cps = 100 2
flags = IPv4
}
Самые важные поля здесь это:
- protocol = udp (протокол сети, лучше не менять)
- port = 69 (порт для сервера, лучше не менять)
- server_args = -s /srv/tftp (путь для файлов которые будем шарить и принимать, выбираете сами, но надо сохранить аргумент "-s")
4. Необходимо отредактировать конфиг xinetd: /etc/xinetd.conf:
Закоментировать строку:
# only_from = 127.0.0.1
Можно с помощью того же vim.
5. Файл лога создастся автоматически, а вот папку для обмена файлов надо создать и настроить:
mkdir /srv/tftp
chmod -R 777 /srv/tftp
chown -R nobody:nobody /srv/tftp
6. После всех настроек нужно активировать даемон (службу) и включить её:
systemctl enable xinetd
systemctl restart xinetd
Также не будет лишним проверить работу службы (должна писать зелёным "active (running)"):
systemctl status xinetd
7. Проверяем в брандмауэре открыт ли порт 69, либо выключен ли брандмауэр. В АЛЬТ это делается легко с помощью "Центр управления системой" (альтератор). (по умолчанию в альте брандмауэр отключён)
Проверка работы TFTP:
1. Можно скачать приложение (TFTP CS) на андроид. Там думаю разберётесь))
2. С помощью той же машины, где tftp:
tftp localhost (или другой ip, если вы на другой машине)
get <имя файла на сервере>
Аналогично можно сделать и загрузку файла (put) и т.д., но тут уже сами почитайте, я не нашёл к сожалению нормальной статьи(((
Выйти из режима tftp:
quit
Если при "get" никаких ошибок нет, то тогда всё чики брики))))
Как прошить сам роутер TP Link Arcer C5
Тут вам стоит заглянуть сюда. И сами прошивки.
Я лишь вкратце объясню что делать:
- Загрузить прошивку в папку tftp, которую мы настроили ранее в с чётким именем и форматом "tp_recovery.bin" (не переименовывать!!!)
- Отключить wifi и кабель интернета от ПК, где настраивали tftp (если подключено)
- Открыть "Центр управления системой" (альтератор)
- Открыть в нём раздел Сеть -> Ethernet-интерфейсы
- Выбрать сетевую карту, которая является проводной - ethernet (чаще всего эти интерфейсы называются на enp*)
- В "Конфигурация" выбрать "Вручную" и внизу с помощью узкого поля добавить ip адрес 192.168.0.66. Маска подсети выберется автоматически 255.255.255.0
- Применить настройки кнопкой снизу слева
- Подключить выключенный роутер по проводу к пк (в роутере кабель втыкать не в WAN - куда идёт провод от провайдера, а в один из нескольких LAN)
- Найти иглу или "выниматор" сим карт, зажать кнопку reset и включить роутер при зажатой кнопке reset
- Подождать, пока роутер не даст сигнал о перепрошивке (в моём случае это горящая лампочка круговых стрелочек), либо просто подождать 10-15 секунд, и отжать кнопку reset
- Ждать пока роутер прошьётся и будет работать, это будет понятно по тому как он будет мигать - всё должно загореться как при работающем роутере))) А так, некоторое время он немного поморгает или просто будут гореть круговые стрелочки.
- После всех процедур - верните настройку из пункта 6 в "Использовать DHCP"
Важное послесловие
Собственно это вся инструкция. Если вы хотите познать полностью как это всё работает - ссылки я оставил. Также оставлю ссылку, которая помогла мне решить проблему:
Error code 2: only absolute filenames allowed
Основную инфу сначала брал отсюда, но она не работала для роутера. А там просто напросто надо было дописать 3 строчки)) А затевалась эта статья чисто ради этого, чтобы собрать информацию по крупицам))))
ДРУГИЕ ВАРИАНТЫ (проще):
utftpd пакет (не разобрался как настроить):
По факту это пакет, который устанавливает всё что делали выше сразу, НО ему надо настроить конфигурацию, в чём я не разобрался. Что делал напишу ниже:
1. Установка пакета:
su-
apt-get install utftpd
2. Настройка прав на директорию с файлами tftp:
chmod 777 /var/lib/tftp
(Почему-то добавление моего юзера в группу tftp не помогло, хотя в папке есть возможность работать от имени группы tftp)
3. Настройка конфигурации, которая у меня не завелась, но всё равно оставлю здесь:
Файл /etc/xinetd.d/utftpd-udp:
disabled = no
#only_from = 127.0.0.1 (закомментировать)
4. Поднятие службы xinetd:
systemctl restart xinetd
После всех телодвижений почему-то tftp не работает(((((
Также вот что мне подсказали в чате АЛЬТа, но я не тестил:
Надо после правки этого текстового конфига запустить utftpd_makeconfig
настоящий конфиг у него /etc/utftpd.cdb
Т.е. бинарный у него конфиг по факту. Сложно слишком для простой прошивки роутера)
atftp пакет (работает из коробки, ВАМ СЮДА):
1. Просто ставим пакет:
su-
apt-get install atftp
2. Настраиваем права на папку /var/lib/tftpboot:
chmod 777 /var/lib/tftpboot
3. Поднимаем службу:
Если надо чтобы включалась при загрузке пк:
systemctl enable atftpd
Само поднятие службы:
systemctl restart atftpd
Если надо выключить:
systemctl stop atftpd
4. Кидаем файлы в папку /var/lib/tftpboot
5. Всё работает))))