17 мар. 2015 г.

OpenWRT TP-Link MR3420

Превращение роутера от TP-Link в комбайн с секретаршами и телефонистами.
Ч.1 - rootfs.



Превращение роутера от TP-Link в комбайн с секретаршами и телефонистами.
Ч.1 - rootfs.
Находим сборку.
В данном случае - openwrt-ar71xx-generic-tl-mr3420-v2-squashfs-factory.bin
Заливаем через стандартный интерфейс TP-Link.
Получаем стандартный интерфейс OpenWRT.
Подключаемся шнурком, получаем DHCP, заходим на роутер telnet-ом.
Ставим пароль - passwd
Начинает работать ssh.
Сборка пухлая, люси не влезла. Спасибо, что хоть чуть-чуть места оставили,
а то пришлось бы собирать - некуда было бы пакеты ставить.

Настраиваем доступ в Интернет.
В моем случае это просто dhcp с фиксированным mac.
Поэтому просто открываем vi /etc/config/network и добавляем
config interface 'wan'
        option ifname 'eth0'
        option proto 'dhcp'
        option macaddr 'xx:xx:xx:xx:xx:xx'
Вместо xx, естественно, циферки. Кавычки закрывать не забываем, а то придется познакомиться с "раскирпичиванием". Впрочем, оно в данном роутере не сложное. Бывает гораздо хуже.
Теперь вставляем флешку (с предварительно созданной ext3) и переносим туда корневую fs.
Места в обрез, поэтому нужно поставить только необходимое.
opkg update
opkg install kmod-usb2
opkg install kmod-usb-storage
opkg install block-mount
Поддержка usb, usb-storage и собственно монтирование блочных ус-в.
Больше - ни-ни! А то переполним rootfs.
После этого мы должны увидеть флешку.
root@OpenWrt:~# block info
/dev/mtdblock2: UUID="9fdab9ba-f3c04ca1-c9aee275-c9678cf5" VERSION="4.0" TYPE="squashfs"
/dev/mtdblock3: TYPE="jffs2"
/dev/sda1: UUID="2af8c3d3-ce3d-4910-9421-7809ba419d03" NAME="EXT_JOURNAL" VERSION="1.0" TYPE="ext3"
root@OpenWrt:~# block detect
Монтируем и проверяем:
root@OpenWrt:~# mount /dev/sda1 /mnt
root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                  768.0K    612.0K    156.0K  80% /
/dev/root                 2.0M      2.0M         0 100% /rom
tmpfs                    13.9M    576.0K     13.4M   4% /tmp
/dev/mtdblock3          768.0K    612.0K    156.0K  80% /overlay
overlayfs:/overlay      768.0K    612.0K    156.0K  80% /
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/sda1                14.5G     37.4M     13.8G   0% /mnt
root@OpenWrt:~# 
Вот она.
Теперь переносим все содержимое с внутренней fs образа на флешку - через конвейер tar-а.
mount /dev/sda1 /mnt
монтируем
mkdir /tmp/cproot
создем папочку для копии рутфс
mount --bind / /tmp/cproot
цепляем
tar -C /tmp/cproot -cvf - . | tar -C /mnt -xvf -
сносим
sync ; umount /mnt
umount /tmp/cproot
сбрасываем кеш и размонтируем.

Правим vi-м /etc/config/fstab, добавляем опции для новой корневой fs.
config 'mount' 
       option target / 
       option device /dev/sda1 
       option fstype ext4 
       option options rw,sync 
       option enabled 1 
       option enabled_fsck 0
Получаем после перезагрузки:
root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                   14.5G     45.2M     13.8G   0% /
/dev/root                 2.0M      2.0M         0 100% /rom
tmpfs                    13.9M     72.0K     13.9M   1% /tmp
/dev/sda1                14.5G     45.2M     13.8G   0% /
tmpfs                   512.0K         0    512.0K   0% /dev
root@OpenWrt:~# 
Гуляй, рванина! 13.8 Гиг свободно.
Ну, для начала -
opkg update
opkg install mc
opkg install luci
opkg install openvpn-openssl
opkg install openvpn-easy-rsa
opkg install luci-app-openvpn

На сегодня все.
В программе далее - openvpn server, asterisk, веб-камера.