среда, 19 июля 2017 г.

OpenWRT MikroTiK RB951Ui-2HnD

Имеем на руках (возможен вариант с окирпиченным) микротик, и хотим его прошить на OpenWRT.

Схематично (оживление) заливка OpenWRT на роутере микротик RB951Ui-2HnD,
выглядит так: при зажатом RESET, и включении роутера, он попытается получить файл загрузки по сети. Предварительно подготовив файлы и dhcp-сервер, микротик загрузится в режиме похожем на live-cd. После, мы монтируем разделы, через ssh перекидываем файлы, сохраняем их, и перезагрузка. В случае успеха, роутер загрузится с OpenWRT


Дано: рабочий роутер с выходом в Инет (роутер по сути нужен в качестве хаба, и для загрузки файлов прошивки), ноут с wifi, сетевой, и виртуалкой с linux например, в virtualbox. На ноуте wifi-интерфейс работает в режиме моста с виртуалкой (виртуалка в одной сети с ноутом)

1. В виртуалке устанавливаем и поднимаем dnsmasq через скрипт loader.sh  Тело самого скрипта loader.sh (все от рута, чтобы не сношаться с правушками)

#/bin/bash
dnsmasq -i enp3s0 --dhcp-range=192.168.11.100,192.168.11.200 \
--dhcp-boot=openwrt-ar71xx-mikrotik-vmlinux-initramfs.elf \
--enable-tftp --tftp-root=/root/mikrotik/ -d -u root -p0 -K --log-dhcp --bootp-dynamic

2. Создаем каталог, и в него переходим
mkdir /root/mikrotik
cd /root/mikrotik

2. Качаем
wget -c https://downloads.openwrt.org/snapshots/trunk/ar71xx/mikrotik/openwrt-ar71xx-mikrotik-vmlinux-initramfs.elf
wget -c https://downloads.openwrt.org/snapshots/trunk/ar71xx/mikrotik/openwrt-ar71xx-mikrotik-vmlinux-lzma.elf
wget -c https://downloads.openwrt.org/snapshots/trunk/ar71xx/mikrotik/openwrt-ar71xx-mikrotik-defaultnowifi-rootfs.tar.gz


2. Устанавливаем в виртуалке ip на интерфейсе

ip addr add 192.168.11.10/24 dev enp3s0


2. Даем права  скрипту chmod a+x loader.sh
3. Отключаем dhcp на текущем роутере
4. Запускаем скрипт loader.sh в виртуалке
5. Вставлем патч-корд в дохлый роутер в первый порт, и вторым концом в рабочий роутер (к которму ноут подключен через wifi)

6. Зажимаем RESET и включаем. Тем временем смотрим выхлоп в консоли, и там должно быть сказано, что клиент с ip 192.168.1.123 взял себе файлик для заргузки.
7. В случае успеха, ACT будет мигать, и роутер подаст звуковой сигнал (однократный пик)
8. Берем еще один патч-корд, и, например, во второй порт дохлого микротика вставляем одним концом, а вторым в ноут.
9. Назначаем ip на ноуте вручную ip addr add 192.168.11.111/24 dev enp2s0
10. пробуем по ssh подрубиться к нашему ожившему роутеру(192.168.1.1)

11. В случае успеха, делаем финт ушами:
mtd erase /dev/mtd1
mtd erase /dev/mtd2
mkdir /mnt/kernel
mkdir /mnt/rootfs
mount /dev/mtdblock1 /mnt/kernel
mount /dev/mtdblock2 /mnt/rootfs

12. Скачиваем на ноут, а потом заливаем файлики ядра и самой операционки

 mkdir noroute
 cd noroute

 wget -c https://downloads.openwrt.org/snapshots/trunk/ar71xx/mikrotik/openwrt-ar71xx-mikrotik-defaultnoWifi-rootfs.tar.gz
 wget -c https://downloads.openwrt.org/snapshots/trunk/ar71xx/mikrotik/openwrt-ar71xx-mikrotik-vmlinux-initramfs.elf
 wget -c https://downloads.openwrt.org/snapshots/trunk/ar71xx/mikrotik/openwrt-ar71xx-mikrotik-vmlinux-lzma.elf

 scp openwrt-ar71xx-mikrotik-vmlinux-lzma.elf root@192.168.1.1:/tmp
 scp openwrt-ar71xx-mikrotik-defaultnowifi-rootfs.tar.gz root@192.168.1.1:/tmp

13. Финишная пряма. 1. Переименовываем файл ядра. 2. Делаем файл ядра исполняемым. 3. отмонтируем раздел с ядром. 4. Переходим в каталог с примонтированным корневым разделом. 5. Распаковываем архив. 6. Переходим в корень. 7. отмонтируем корневой раздел. 8. синкаем. 9. ребут

mv /tmp/openwrt-ar71xx-mikrotik-vmlinux-lzma.elf /mnt/kernel/kernel
chmod +x /mnt/kernel/kernel
umount /mnt/kernel
cd /mnt/rootfs
tar -xvzf /tmp/openwrt-ar71xx-mikrotik-defaultnowifi-rootfs.tar.gz
cd /
umount /mnt/rootfs
sync

14. Если все окей, роутер загрузится. И 5-й порт будет гореть красным