Опишу свой способ прошивки роутера D-Link DIR-620 прошивкой от DD-WRT установки флешки в качестве диска, MC и ASTERISK 1.4
Скачиваем прошивку uboot описание тут далее ставим прошивку DD-WRT с модулями для файловых систем ext3
DD-WRT в большинстве случаев поддерживает следующие файловые системы.
fat32 — всё более устаревающая файловая система, родная для Windows. В DD-WRT пригодна лишь для хранения пользовательский файлов, на неё нельзя установить пакеты. Максимальный размер файла составляет около 4гб, что по современным меркам не фантан. Еще бывают проблемы с длинными именами файлов. Пригодна лишь для использования как раздел под хранения небольших файлов, например документов.
В принципе не советую использовать fat32 вообще никому, все рано или поздно от неё отказываются всё-равно.
swap — это даже не файловая система, это раздел подкачки. Если кроме ftp планируете еще что-то устанавливать, то настоятельно рекомендую создать такой раздел размером 32-64мб. Больше врядли кому пригодится.
Другие файловые системы (ntfs, ext2, ext4 и т.д.) без хитрых манипуляций не подмонтировать, не будем на этом заострять внимание. По крайней мере пока.
1) Включаем поддержку USB
2) На старых прошивках выбираем USB 2.0, на новых этот пункт убрали, но поддержка осталась и включается автоматически.
3) Включаем поддержку USB-дисков (USB Storage Support)
Включать автомонтирование не стоит, так как монтируются в этом случае диски без флага noatime, то есть при обращении к файлам и папкам обновляется информация о последнем доступе к ним.
Роутеры итак медленными процессорами обладают, так что для нас это недопустимая роскошь.
Далее выполняем команду
Далее выполняем команду
Для этого вводим команду:
mount -o noatime /dev/scsi/host0/bus0/target0/lun0/part1 /opt
И проверяем смонтировалось или нет:
/dev/root 2.9M 2.9M 0 100% /
/dev/scsi/host0/bus0/target0/lun0/part1
14.9G 234.5M 13.9G 2% /opt
В этом случае необходимо посмотреть, какие файловые системы поддерживаются:
Пробуем подгрузить вручную этим модули, причем сначала jbd.o, без него ext3.o не загрузится:
Для прошивки с ядром 2.6 и выше:
Для этого в веб-интерфейсе перейдите в раздел Administration — Commands
И в верхнее окно введите команды в нужном порядке, только если у вас уже есть стартовый скрипт, то необходимо их объединить.
В моем случае он выглядит так:
и удаляем блок, отвечающий за проверку конфигурации:
далее ставим мс
информация взята с:
http://www.dd-wrt.com/wiki/index.php/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Samba_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80_%D1%81_DD-WRT
http://ne-ne-ne.ru/dd-wrt/dd-wrt-mount-usb-flash-usb-hdd.html
http://ajc.su/telefoniya/asterisk-na-routere-ili-byudzhetnyj-voip-gsm-shlyuz/
Скачиваем прошивку uboot описание тут далее ставим прошивку DD-WRT с модулями для файловых систем ext3
Подготовка флешки или жесткого диска к подключению в DD-WRT
Необходимо создать на носителей разделы. Их количество, типы файловых систем и размеры надо выставлять смотря какие задачи вы хотите реализовать.DD-WRT в большинстве случаев поддерживает следующие файловые системы.
Типы файловых систем в DD-WRT
ext3 — журналируемая файловая система, родная для linux-based систем. В случае с DD-WRT она нужна в обязательном порядке для установки различных пакетов (программ). Максимальный размер файла зависит от ядра linux вашей прошивки и составляет не менее 2Tb, что вряд ли как то ограничит Васfat32 — всё более устаревающая файловая система, родная для Windows. В DD-WRT пригодна лишь для хранения пользовательский файлов, на неё нельзя установить пакеты. Максимальный размер файла составляет около 4гб, что по современным меркам не фантан. Еще бывают проблемы с длинными именами файлов. Пригодна лишь для использования как раздел под хранения небольших файлов, например документов.
В принципе не советую использовать fat32 вообще никому, все рано или поздно от неё отказываются всё-равно.
swap — это даже не файловая система, это раздел подкачки. Если кроме ftp планируете еще что-то устанавливать, то настоятельно рекомендую создать такой раздел размером 32-64мб. Больше врядли кому пригодится.
Другие файловые системы (ntfs, ext2, ext4 и т.д.) без хитрых манипуляций не подмонтировать, не будем на этом заострять внимание. По крайней мере пока.
Разметка флешки/диска
Раздел 1 / тип ext3 / размер 16 гб — раздел для установки пакетов (optware)Настройка роутера
Идем на вкладку Службы — USB (Сервис — USB),1) Включаем поддержку USB
2) На старых прошивках выбираем USB 2.0, на новых этот пункт убрали, но поддержка осталась и включается автоматически.
3) Включаем поддержку USB-дисков (USB Storage Support)
Включать автомонтирование не стоит, так как монтируются в этом случае диски без флага noatime, то есть при обращении к файлам и папкам обновляется информация о последнем доступе к ним.
Роутеры итак медленными процессорами обладают, так что для нас это недопустимая роскошь.
Подключение диска
Подключаем флешку/диск и подключаемся к роутеру через телнет. Там нас спросят логин и пароль — те же самые, что и в веб-интерфейсе.Далее выполняем команду
Далее выполняем команду
root@DD-WRT:~# dmesg|grep lun /dev/scsi/host0/bus0/target0/lun0: p1Строка /dev/scsi/host0/bus0/target0/lun0: p1 говорит нам о том, что наш носитель подключен p1 раздел для установки пакетов (optware).
Монтирование USB-диска
Сначала монтируем первый раздел, который предназначен для optware. Монтировать будем в уже существующую, но пустую папку /opt (в линуксе нет понятия о локальных дисках, все они так или иначе подключены в качестве каталога).Для этого вводим команду:
root@DD-WRT:~# mount -o noatime /dev/discs/disc0/part1 /optГде /dev/discs/disc0 — наша флешка, part1 — первый раздел на ней.
mount -o noatime /dev/scsi/host0/bus0/target0/lun0/part1 /opt
И проверяем смонтировалось или нет:
root@DD-WRT:~# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 2.9M 2.9M 0 100% /
/dev/scsi/host0/bus0/target0/lun0/part1
14.9G 234.5M 13.9G 2% /opt
Если флешка не монтируется в DD-WRT
В новых прошивках поддержка файловых систем зачастую автоматически не подключается.В этом случае необходимо посмотреть, какие файловые системы поддерживаются:
root@DD-WRT:~# cat /proc/filesystems nodev rootfs nodev bdev nodev proc nodev sockfs nodev tmpfs nodev pipefs nodev ramfs nodev devfs squashfs nodev usbdevfs nodev usbfs
и какие модули подключены:
root@DD-WRT:~# lsmod Module Size Used by ip_nat_pptp 2560 0 (unused) ip_conntrack_pptp 3036 1 ip_nat_proto_gre 1664 0 (unused) ip_conntrack_proto_gre 2584 0 [ip_nat_pptp ip_conntrack_pptp] usb-storage 40344 0 (unused) sd_mod 13092 0 (unused) scsi_mod 101584 2 [usb-storage sd_mod] usb-ohci 20352 0 (unused) ehci-hcd 22060 0 (unused) usbcore 84576 1 [usb-storage usb-ohci ehci-hcd] switch-robo 6108 0 (unused) switch-core 5888 0 [switch-robo]
Ага. Нашей ext3 не видно. Как впрочем и модуля jbd, отвечающего за поддержку журналирования в файловых системах.
Пробуем подгрузить вручную этим модули, причем сначала jbd.o, без него ext3.o не загрузится:
Для прошивки с ядром 2.6 и выше:
root@DD-WRT:~# insmod /lib/modules/$(uname -r)/kernel/fs/mbcache.ko root@DD-WRT:~# insmod /lib/modules/$(uname -r)/kernel/fs/jbd/jbd.ko root@DD-WRT:~# insmod /lib/modules/$(uname -r)/kernel/fs/ext3/ext3.ko
И проверяем знает ли наше ядро теперь ext3:
root@DD-WRT:~# cat /proc/filesystems nodev rootfs nodev bdev nodev proc nodev sockfs nodev tmpfs nodev pipefs nodev ramfs nodev devfs squashfs nodev usbdevfs nodev usbfs ext3
Автоматизируем процесс подключения дисков в DD-WRT
Для автоматизации команд надо занести в скрипт включения.Для этого в веб-интерфейсе перейдите в раздел Administration — Commands
И в верхнее окно введите команды в нужном порядке, только если у вас уже есть стартовый скрипт, то необходимо их объединить.
В моем случае он выглядит так:
switch reg w 90 10007f7f (включает wan порт при загрузке роутера) insmod /lib/modules/$(uname -r)/kernel/fs/mbcache.ko (загружает модуль mbcache.ko) insmod /lib/modules/$(uname -r)/kernel/fs/jbd/jbd.ko (загружает модуль bd.ko) insmod /lib/modules/$(uname -r)/kernel/fs/ext3/ext3.ko (загружает модуль поддержки ext3) mount -o noatime /dev/scsi/host0/bus0/target0/lun0/part1 /opt (монтирует флешку)
далее скачиваем установочный скрипт
wget http://www.3iii.dk/linux/optware/optware-install-ddwrt.sh -O - | tr -d "\r" > /tmp/optware-install.sh
и запускаем его
sh /tmp/optware-install.sh
у меня скрипт выдавал ошибку на стадии проверки, открываем скрипт
vi /tmp/optware-install.sh
и удаляем блок, отвечающий за проверку конфигурации:
_check_config() { echo "Checking system config ..." GATEWAY=$(netstat -rn | sed -n 's/^0.0.0.0[ \t]\{1,\}\([0-9.]\{8,\}\).*/\1/p' ) if [ -n "${GATEWAY}" ]; then echo "Using ${GATEWAY} as default gateway." else echo "Error: No default gateway set!" exit 2 fi if [ -s /etc/resolv.conf ]; then echo "Using the following nameserver(s):" if grep nameserver /etc/resolv.conf ; then GATEWAY_SUBNET=$(echo "${GATEWAY}" | sed 's/\.[0-9]\{1,3\}\.[0-9]\{1,3\}$//') if [ "${GATEWAY_SUBNET}" = "192.168" ]; then if grep -q ${GATEWAY} /etc/resolv.conf ; then echo "Gateway ${GATEWAY} is also nameserver." else echo "Warning: local nameserver is different than gateway!" echo "Check config or enter:" if test -L /etc/resolv.conf ; then echo " sed -i s/192.168.*/${GATEWAY}/ /tmp/resolv.conf" else echo " sed -i s/192.168.*/${GATEWAY}/ /etc/resolv.conf" fi echo "and try again." fi fi else echo "Error: No nameserver specified in /etc/resolv.conf" exit 5 fi else echo "Error: Empty or nonexistent /etc/resolv.conf" exit 3 fi if mount | grep -q /opt ; then [ -d /opt/etc ] && echo "Warning: /opt partition not empty!" else echo "Error: /opt partition not mounted." echo "Enter" echo " mkdir /jffs/opt" echo " mount -o bind /jffs/opt /opt" echo "to correct this." exit 4 fi }
далее ставим мс
ipkg-opt install mc
и asterisk
ipkg-opt install asterisk14
информация взята с:
http://www.dd-wrt.com/wiki/index.php/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Samba_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80_%D1%81_DD-WRT
http://ne-ne-ne.ru/dd-wrt/dd-wrt-mount-usb-flash-usb-hdd.html
http://ajc.su/telefoniya/asterisk-na-routere-ili-byudzhetnyj-voip-gsm-shlyuz/