Установка DD-WRT mega на маршрутизаторы с объемом флэш-памяти 4 МБ

From DD-WRT Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 05:51, 8 January 2009 (edit)
YuriKr (Talk | contribs)

← Previous diff
Revision as of 06:59, 5 June 2009 (edit) (undo)
Ausimus1 (Talk | contribs)
(Removing all content from page)
Next diff →
Line 1: Line 1:
-Привет всем. Частенько пользуюсь советами других, решил тоже поделиться своим решением. Наверное кому-то будет актуально. Решение позволяет загружать и использовать полные прошивки (MEGA) на устройствах с флешками 4 мегабайта. Все ниже сказанное имеет отношение к Linux на рабочей станции и D-Link DIR-320. Как это сделать в винде - не знаю. Пользовался сим продуктом последний раз более двух лет назад.  
- 
-1. Качаем прошивки.  
- 
-Основную: http://www.dd-wrt.com/dd-wrtv2/downloads/others/eko/V24_TNG/svn11028/dd-wrt.v24-11028_NEWD_std-nokaid_usb.bin  
- 
-Мегу: http://www.dd-wrt.com/dd-wrtv2/downloads/others/eko/V24_TNG/svn11028/dd-wrt.v24-11028_NEWD_mega.bin  
- 
-Прошивки должны быть одинаковой версии. Можете взять актуальную, сейчас это последняя.  
- 
- 
-2. Качаем софт для распаковки.  
- 
-http://www.dd-wrt.com/dd-wrtv2/downloads/others/tornado/firmwaremodkit2-new-LZMA/firmwaremodkit2_x86.tar.bz2  
- 
-Это для 32 битной системы, для 64 бита лежит там-же.  
- 
- 
-3. Распаковываем фирмваре модкит.  
- 
- 
-4. Распаковываем прошивки в соответствующие папки.  
- 
- 
-5. Заходим в папку rootfs/sbin в основном имидже.  
- 
- 
-6. Перемещаем файл init в папку rootfs/usr/sbin  
- 
- 
-7. Создаем новый файл init, представляющий из себя скрипт:  
- 
-Code: 
- 
- #!/bin/sh  
- if [ $1 == "noinitrd" ] ; then  
- insmod /lib/modules/`uname -r`/usbcore.o  
- insmod /lib/modules/`uname -r`/usb-ohci.o  
- insmod /lib/modules/`uname -r`/scsi_mod.o  
- insmod /lib/modules/`uname -r`/usb-storage.o  
- insmod /lib/modules/`uname -r`/sd_mod.o  
- insmod /lib/modules/`uname -r`/ext2.o  
- sleep 10s  
- mount -t proc none /proc  
- mount -t ext2 -o noatime,nodiratime /dev/scsi/host0/bus0/target0/lun0/part1 /mnt  
- if [ -x /mnt/sbin/init ] ; then  
- mount -o move /proc /mnt/proc && \  
- pivot_root /mnt /mnt/mnt && {  
- mount -o move /mnt/dev /dev  
- mount -o move /mnt/tmp /tmp  
- mount -o move /mnt/jffs /jffs  
- exec /sbin/init $*  
- }  
- else  
- exec /usr/sbin/init $*  
- fi  
- else  
- exec /usr/sbin/init $*  
- fi  
- 
- 
-Не забываем сделать скрипт исполняемым.  
- 
- 
-8. Упаковываем прошивку, получившийся имидж шьем в роутер. В принципе, роутер уже работоспособен, он представляет собой роутер с прошивкой std_nokaid_usb.  
- 
- 
-9. Готовим USB флешку. Создаем на ней линукс раздел. Разделов может быть несколько, скрипт использует первый раздел. Раздел должен быть размером не менее 15 мегабайт. Но Вы же не проявите чудеса жадности и сделаете размер побольше, чтобы для jffs что-то осталось, правда?  
- 
- 
-10. Форматируем раздел в ext2. (Это ВАЖНО!)  
- 
- 
-11. Копируем содержимое rootfs МЕГА прошивки в свежеотформатированный раздел на флешке. Меняем владельца и группу всех файлов на root.  
- 
- 
-Вставляем USB флеху в роутер, включаем питание. Наслаждаемся возможностями прошивки MEGA.  
- 
- 
-Надеюсь, совместными усилиями мы доведем решение до совершенства. Из обнаруженных глюков - не работает перезагрузка как из веб интерфейса (только делает вид), так и из терминала (команда reboot). init 6 перегружает роутер, но как-то странно. Пока не разобрался из-за чего это происходит. Нужна ваша помощь. Может кто знает, как здесь реализована перезагрузка? И подправит скрипт соответствующим образом?  
- 
- 
-UPD: Проблему перезагрузки победил, методику и скрипт поправил. Готовую (патченную) прошивку можете взять здесь: http://www.palmtv.ru/files/dd-wrt.v24-11028_NEWD_std-nokaid_usb-4mega.bin  
-rootfs для USB: http://www.palmtv.ru/files/rootfs.tgz  
- 
- 
-''IronShaft'' 
- 
- 
-'''Источник:''' 
- 
-# http://www.dd-wrt.com/phpBB2/viewtopic.php?t=43389 

Revision as of 06:59, 5 June 2009