Итак, DD-WRT установлен, железка настроена, а всё равно чего-то не хватает, у нас же простаивает 680 мегагерцовый процессор и 64 мегабайта оперативной памяти. Плюс в стандартной прошивке отсутствует возможность использовать USB порт в качестве принтсервера, и многое-многое другое...
Для начала давайте определимся, куда мы будем устанавливать дополнительное программное обеспечение. DD-WRT предлогает нам два варианта - установка в свободное место на встроенной флеш-памяти (JFFS2 раздел), либо на внешний накопитель (жесткий диск, флешку) подключенный к USB порту устройства. К сожалению места на встроенной флеш-памяти нам не остается совсем, свободно всего 124 кб, а это очень мало для наших запросов
так что придется задействовать под это дело старинную двухгиговую флешку (вообще-то нам подошла бы флешка и гораздо более скромного объема, но какая есть, такая есть)
1. Размечаем на флешке разделы и форматируем их.
по хорошему это надо было бы сделать средствами роутера, но.. в Firmware: DD-WRT v24-sp2 (12/24/10) std для WNDR3700 нет ни fdisk ни mke2fs :o Найти и запустить fdisk, работающий на нашей системе не составило труда, а вот запустить e2fsprogs (а в частности mke2fs) у меня простым способом не получилось, поэтому флешка была размечена под Windows с помощью Acronis Disk Director (есть еще куча способов разметить флешку в ext2, воспользуйтесь любым, который считаете наиболее простым для себя).
В итоге флешка была размечена следующим образом:
первый раздел 128Мб под своп (пока он особо не нужен, но возможно когда-нить и пригодится, второй раздел ext2 объемом 256Мб под устанавливаемый софт, и оставшееся место третьим разделом ext2
.
Итак, флешка размечена на разделы и вставлена в роутер. Теперь заходим в веб морду роутера в раздел Services/USB и выбираем Core USB Support / Enable, после этого выставляем основные настройки как на скриншоте ,
нажимаем "Apply Settings" и перезагружаем роутер из веб морды Administration/Management и в самом низу Reboot Router.
2. Подключаемся к роутеру с помощью putty по ssh.
Заходим в вебморду, в раздел Services/Services и устанавливаем настройки как на картинке
После этого жмем "Apply Settings"Запускаем putty, настройки выставляем как на картинке
нажимаем кнопку "Open"
login as: rootpassword: ваш_пароль_для_вебморды
вводим
insmod mbcache.ko
insmod ext2.ko
mount -t ext2 /dev/sda2 /mnt
проверяем , как подмонтировался наш раздел для установки софта
df -h
видим что наш раздел примонтирован
Подключаем своп
mkswap /dev/sda1
swapon /dev/sda1
проверяем, что из этого вышло командой free
3. Устанавливаем OPKG.
отключаем jffs раздел, он нам больше не понадобится, для этого в вебморде заходим в раздел Administration/Management , отключаем JFFS2 Support и нажимаем "Apply Settings"
Запускаем putty, логинимся и вводим:
cd /mnt
mkdir etc opt root
chmod 755 etc opt root
mkdir opt/libchmod 755 opt/lib
cp -a /etc/* /mnt/etc/
mount -o bind /mnt/etc /etc
mount -o bind /mnt/opt /jffs
Скачиваем библиотеки (зеркало) для установки OPKG. Разархивируем их в папку lib у себя на жестком диске и запускаем WinSCP, вот с такими настройками (User Name - root , Password - ваш_пароль_для_вебморды
Нажимаем "Login"
Нажимаем "Update", и потом "Continue"
C помощи нее заливаем содержимое папки lib (приготовленной нами чуть выше) в папку /jffs/lib на роутере.
проверяем, все ли скорпировалось, для этого в putty (вы ведь еще ее не закрыли?) вводим
ls /jffs/lib
назначаем права залитым файлам
chmod a+x /jffs/lib/*
теперь наконец-то можно приступить к установке OPKG
cd /tmp
wget http://downloads.openwrt.org/backfire/10.03.1-rc4/ar71xx/packages/opkg_576-1_ar71xx.ipk
ipkg install /tmp/opkg_576-1_ar71xx.ipk
на возникшие ошибки, типа "ERROR: File not found: //usr/local/lib/ipkg/lists/whiterussian You probably want to run `ipkg update' " не обращаем внимания
создаем конфигурационный файл для установленного opkg
cat > /etc/opkg.conf << EOF
src/gz snapshots http://downloads.openwrt.org/backfire/10.03.1-rc4/ar71xx/packages/
dest root /opt
dest ram /tmp
lists_dir ext /tmp/var/opkg-lists
EOF
теперь осталось внести изменения в автозагрузку, чтобы при перезагрузке роутера остались все сделанные нами изменения
создаем скрипт, для запуска optware при загрузке роутера
cat > /mnt/optware.sh << EOF
#!/bin/sh
swapon /dev/sda1
mount -o bind /mnt/etc /etc
mount -o bind /mnt/root /tmp/root
mount -o bind /mnt/opt /opt
if [ -d /opt/usr ]; then
export LD_LIBRARY_PATH='/opt/lib:/opt/usr/lib:/lib:/usr/lib'
export PATH='/opt/bin:/opt/usr/bin:/opt/sbin:/opt/usr/sbin:/bin:/sbin:/usr/sbin:/usr/bin'
else
exit
fi
EOF
делаем его запускаемым
chmod a+x /mnt/optware.sh
заходим в вебморду роутера, и выбираем раздел Administration/Commands и в окошке Command Shell/Commands вводим
insmod mbcache.ko
insmod ext2.ko
mount -t ext2 /dev/sda2 /mnt
/mnt/optware.sh
нажимаем Save Startup и перезагружаем роутер
4. Проверяем что у нас в итоге получилось
Запускаем putty, логинимся и вводимmount
если все до этого сделано правильно, то результат будет такой
вводим
export LD_LIBRARY_PATH='/opt/lib:/opt/usr/lib:/lib:/usr/lib'
export PATH='/opt/bin:/opt/usr/bin:/opt/sbin:/opt/usr/sbin:/bin:/sbin:/usr/sbin:/usr/bin'
opkg update
обновляем основные библиотеки и busybox
opkg install libc
opkg install libgcc
opkg install uclibcxx
opkg install libncurses
opkg install busybox
Cоздаем скрипт, который будет запускаться при каждом логине по ssh
cat > /mnt/root/.profile << EOF
export LD_LIBRARY_PATH='/opt/lib:/opt/usr/lib:/lib:/usr/lib:/opt/usr/local/lib'
export PATH='/sbin:/opt/bin:/opt/usr/bin:/opt/sbin:/opt/usr/sbin:/bin:/usr/bin:/usr/sbin:/opt/usr/local/bin'
export PS1='\[\033[01;31m\]\u@\h \[\033[01;34m\]\W \$ \[\033[00m\]'
export TERMINFO='/opt/usr/share/terminfo'
export TERM="xterm"
export LANG='ru_RU.UTF-8'
EOF
Перелогиниваемся с помощью putty и проверяем что в итоге получилось, устанавливаем nano (довольно удобный текстовый редактор) и Midnight Commander
opkg update
opkg install nano
opkg install mc
когда все установится, набираем mc и празднуем нашу первую маленькую победу
upd: 10.01.11
Только вчера написал отдельный пост то как установить ntfs-3g и примонтировать NTFS раздел, сегодня удалил её, oказывается ntfs-3g уже включен в прошивку и его не надо устанавливать (спасибо lpx1 за подсказку), делается это примерно так
insmod fuse.ko
ntfs-3g /dev/sdaX /opt/mnt
где X это порядковый номер раздела
Привет.
ОтветитьУдалитьХочу узнать, а для подключения HDD такие же манипуляции делать как и для флэшки ? да ?
У меня просто сразу же задается вопрос как правильно разбить флэшку (HDD ) сейчас разбил флэшку но при подключение к ноуту у меня просит отформатировать ее, это правильно ?
Homavi
ОтветитьУдалитьтакие манипуляции можно делать и для жесткого диска. В программе в которой разбиваете диск на разделы надо еще и отформатировать разделы в нужную файловую систему. Винда скорее всего ругается на раздел под своп
у меня при повторном введение первых пунктов выводит ошибку
ОтветитьУдалитьinsmod: cannot insert '/lib/modules/2.6.34.7-svn15928/kernel/fs/mbcache.ko': File exists
в чем проблема может быть ?
Включили автомонтирование в веб/морде? тогда строчки
ОтветитьУдалитьinsmod mbcache.ko
insmod ext2.ko
mount -t ext2 /dev/sda2 /mnt
из Startup скрипта в вебморде можно убрать, и во втором шаге инструкции их тоже набирать не надо. Только точку монтирования в настройках вебморды поставьте в /mnt
ага включил автомонтирование.
ОтветитьУдалитькстати хотел узнать на счет того что у меня будет раздел под NTFS ?
мне так же создавать 3 раздела ? своп, ext2 и NTFS ? да ?
и после всех проделанных операций в твоей статье прописывать в конце этот скрипт ?
insmod fuse.ko
ntfs-3g /dev/sdaX /opt/mnt
?
у меня еще вопрос в догонку к этому ))
ОтветитьУдалитьможно просто смонтировать автоматически раздел, без всяких прописи скриптов и сразу же прикрутить торрент ? или все же надо прописывать скрипты эти ??
Homavi
ОтветитьУдалитьПо поводу NTFS - да, можно создать третий раздел NTFS а не еxt2, и когда он будет нужен, монтировать его к любой папке командой
ntfs-3g /dev/sdaX /папка , (где X- номер раздела на на флешке) перед этим надо будет загрузить модуль fuse.ko , он автоматически не загружается.
Например у Вас это третий раздел и подмонитровать вы его хотите к папке /mnt/share тогда порядок действий будет такой:
insmod fuse.ko
ntfs-3g /dev/sda3 /mnt/share
optware.sh не запускается после перезагрузки, при этом ручной запуск через putty прекрасно работает. Такое ощущение, что система запускает этот startup скрипт до монтирования флэшки в /mnt?!! Что можно сделать?
ОтветитьУдалитьчто делать?
ОтветитьУдалитьотключить автомонитирование флешки в вебморде и монтировать ее Shell/Commands в Startup скрипте.. если это не помогает, попробовать добавить паузу например 2 секунды после команд монтирования (sleep 2), получится примерно так:
insmod mbcache.ko
insmod ext2.ko
mount -t ext2 /dev/sda2 /mnt
sleep 2
/mnt/optware.sh
сразу скажу, что эти строки:
ОтветитьУдалитьinsmod mbcache.ko
insmod ext2.ko
mount -t ext2 /dev/sda2 /mnt
-не работают на моем WNDR-3700 ни при каком раскладе...
Такое ощущение, что можно без них обойтись...
после добавления строки sleep 5 перед запуском скрипта, всё заработало:-))
PhYziCiAN
ОтветитьУдалитьмонтируете автомонтом из веб морды, вот и не работают. Если у Вас флешка размечена именно так как в примере, то особого смысла монтировать раздел ручками вроде как и нет. Он появится, если у Вас перед разделом под софт будет другой раздел FAT или ext2. автомоунт монтирует первый раздел этих типов который сможет найти на флешке
gas твоя правда оказалась...Флэшку надо было переразбить!
ОтветитьУдалитьоффтоп - попробовал lighttpd+php с англоязычного блога, работает
После перегрузки роутера, отваливается usb-драйв. Приходится физически отключать и затем включать либо питание драйва либо usb-кабель.
ОтветитьУдалитьЯ новичек. Помогите, пожалуйста решить проблему.
Господа, все нормально сделалось до
ОтветитьУдалить4 го пункта. При вводе команды mount появляется все рОвно то, что указано на скрине.
Но после ввода opkg update и далее - "not found" :(
Что я делаю не так?
Этот комментарий был удален автором.
ОтветитьУдалитьПодскажите почему у меняпри команде insmod fuse.ko выходит вот такая ошибка:
ОтветитьУдалитьinsmod: fuse.ko: module not found
Вот по этой инструкции http://www.dd-wrt.com/wiki/index.php/Установка_полной_поддержки_дисков_NTFS_в_режиме_чтение/запись устанавливал пакет ntfs-3g.
И еще вопрос как установить веб интерфейс для самбы которая включена в веб интерфейсе?
не получается
ОтветитьУдалитьroot@DD-WRT:/mnt# insmod mbcache.ko
insmod: cannot insert '/lib/modules/2.6.34.8-svn16372/kernel/fs/mbcache.ko': File exists
root@DD-WRT:/mnt# insmod ext2.ko
insmod: cannot insert '/lib/modules/2.6.34.8-svn16372/kernel/fs/ext2/ext2.ko': File exists
root@DD-WRT:/mnt# mount -t ext2 /dev/sda2 /mnt
mount: mounting /dev/sda2 on /mnt failed: No such device or address
что делаю не так?
---4. Проверяем что у нас в итоге получилось
ОтветитьУдалитьЗапускаем putty, логинимся и вводим
mount
если все до этого сделано правильно, то результат будет такой---
у меня последние строчки немного другие
/dev/sda2 on /mnt type ext2 (rw,relatime,errors=continue)
/dev/sda2 on /etc type ext2 (rw,relatime,errors=continue)
/dev/sda2 on /tmp/root type ext2 (rw,relatime,errors=continue)
/dev/sda2 on /opt type ext2 (rw,relatime,errors=continue)
Привет. Хочу установить всё это дело на внешний USB диск разбитый как Partituon #1. Optware (ext3): монтируется в /opt. Сюда будут устанавливаться пакеты Optware. Размер не менее 512 мегабайт.
ОтветитьУдалитьPartituon #2. Swap (Linux Swap): собственно своп. Большой размер не нужен. Достаточно и 128 мегабайт.
Partituon #3. JFFS (ext3): монтируется в /temp. Размер не менее 128 мегабайт.
Partituon #4. Share (ext3): монтируется в /mnt. Собственно тут и будет шара для самбы.
t. Сможешь подсказать, что изменится в текущем варианте не прокатывает. Версия DD-WRT r17201.
А на DGND3700-100PES можно DD-WRT поставить? Кто нибудь пробовал? Модем при этом работал?
ОтветитьУдалить