понедельник, 26 октября 2015 г.

mr3020 extroot & patch

Конечно же я тоже добрался до этого чуда китайского завода. И вот что получилось

Прошивка


Вот мне лень было пересобирать и греть голову. Но погреть немного пришлось.
Для того что бы нормально работал пакет block mount необходимо брать 14.07, это который Attitude Adjustment.

Закупаем флешь

И чем меньше она болтается тем лучше. Что бы не удивляться, что у вас неожиданно кончилось место на встроенной в роутер флеш при установке fdisk или e2fsprogs весьма разумно заранее подготовить флешку на компе с linux. Все таки Partition magic параша.
Я сделал так
sda - устройство
sda1 -128 Mb для wrtSwap
sda2 - 1024 Mb для wrtSys куда будет выноситься система
sda3 - для wrtData свалка для вской фигни
Теперь втыкаем флешку и следуя старому доброму ману делаем по инструкции:
opkg update
opkg install block-mount kmod-fs-ext4 kmod-usb-storage
Не получается? У меня тоже места не хватило))
Придется ручками собирать образ. Грузимся под линуксом и скачиваем все необходимое из рецепта. Разархивируем и переходим в директорию
tar -xvjf OpenWrt-ImageBuilder-15.05-ar71xx-generic.Linux-x86_64.tar.bz2
cd OpenWrt-ImageBuilder-15.05-ar71xx-generic.Linux-x86_64
Вообще есть целые обзоры как запускать сборку образа, но у нас популярный роутер и под него уже есть шаблон TLMR3020, Остается только добавить нужные пакеты и не ставить фигню. В директории сборщика запускаем:
make image PROFILE=TLMR3020 PACKAGES="blkid block-mount kmod-fs-ext4 kmod-usb2 kmod-usb-uhci kmod-usb-ohci kmod-usb-storage"
Если кому то лень настраивать окружение и компилировать, вот уже собранный образ. копируем прошику на роутер
scp /bin/ar71xx/openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin root@192.168.1.11:/tmp
И запускаем прошивку из темпа
mtd -r write openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin firmware
Ждееем и пытаемся найти свой роутер телнетом по адресу 192.168.1.1
Прикол в том, что он почему то невидим по arp, так что не пугайтесь, просто идите)
Дальше - по старинке
ls /dev/sd* # смотрим подключена ли флешка
block info # распознается ли флешка
mount /dev/sda2 /mnt # монтируем ее
tar -C /tmp/cproot -cvf - . | tar -C /mnt -xf -
umount /mnt
ну а потом подправил конфиг так:
cat /etc/config/fstab
config global
        option anon_swap '0'
        option anon_mount '0'
        option auto_swap '1'
        option auto_mount '1'
        option delay_root '5'
        option check_fs '0'

config swap
        option uuid '90049cb0-5378-44db-9703-ae574927b06e'
        option enabled '1'
        option device '/dev/sda1'
        option label 'wrtSwp'

config mount
        option uuid 'de6f50ff-132b-4bfd-a9f0-031d9cd85813'
        option enabled '1'
        option device '/dev/sda2'
        option label 'wrtSys'
        option fstype 'ext2'
        option is_rootfs '1'

config mount
        option uuid '91ffba61-8c19-4e81-8937-af910d856b41'
        option enabled '1'
        option device '/dev/sda3'
        option label 'wrtData'
        option target '/mnt/usb'
        option fstype 'ext4'
Вообще не помешает еще запустить fstab. Так на всякий случай
/etc/init.d/fstab enable
/etc/init.d/fstab start
/etc/init.d/fstab restart
Ребут и все удалось.