Здравствуйте. Вот решил выложить новую инструкцию как подключить к роутеру прошитому прошивкой от энтузиастов на примере прошивки от Vampirika репозитория Entware и установки програмного обеспечения.
!!! Инструкция работает на роутерах поддерживающих альтернативную прошивку от энтузиастов, такие как DIP-320, ASUS WL500gp, ASUS WL500gpv2, ASUS RT-N16 и т.д.
На wifi роутер dir-320 на сайте человека с ником Vampirik, который продолжает делать для роутера dir320 замечательные прошивки, за что ему огромная благодарность, скачиваем последнюю прошивку по сылке http://vampik.ru/wl500g/rtn/4667/DIR320-1.9.2.7-rtn-r4667M.trx и прошиваем, если у вас уже стоит более ранняя прошивка от Vampirika либо от энтузиастов, можно прошить через веб интерфейс, иначе прошиваете через tftp по инструкции, только устанавливаете последнюю стабильную прошивку скачанную по ссылке выше.
Для роутеров отличных от DIR-320 качаем прошивку с папки http://vampik.ru/wl500g/rtn/4667/
В данной прошивке из-за малого размера встроенной флеш памяти роутера, нет возможности отформатировать дополнительную флешку - не влезли утилиты для форматирования в прошивку. Потому если у вас есть флешка которую Вы хотите подключить к роутеру для установки на неё дополнительного программного обеспечения, необходимо её отформатировать либо в Linux на физической машине, либо подключив к виртуальной машине с установленным Linux, либо имея второй роутер, например WL500g - можно отформатировать флешку в нем.
Лично я не использую флешку для качания на неё торентов, потому мне на флешке хватает раздела для SWAP и основного раздела opt, который будет подключен к папке в корне /opt
Так как в раздел swap постоянно происходят записи системы, из-за того, что оперативы маловато, а флешка имеет ограниченное количество записи, очень большая вероятность выхода из строя всей флешки за достаточно быстрый период примерно в 3-4 месяца. Возможное решение продлить жизнь флешки в 3 раза, это создать несколько разделов
Приступим к форматированию флешки для dir320 на виртуальной машине установленной на Virtualbox либо на любом физическом устройтве, где установлен Linux и можно разбить флешку (винт) и отформатировать.
Втыкаем флешку в USB порт и выполняем команду fdisk -l для просмотра наличия внешних дисков в системе:
fdisk -l
Ответ системы, видим нашу флешку:
..... Disk /dev/sdb: 2003 MB, 2003664896 bytes 255 heads, 63 sectors/track, 243 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x01021e00 Device Boot Start End Blocks Id System /dev/sdb1 * 1 2441956672+ c W95 FAT32 (LBA) Partition 1 has different physical/logical endings: phys=(242, 254, 63) logical=(243, 152, 37)
Приступаем к разбивке флешки /dev/sdb:
Команды которыми мы будем пользоваться в процессе разбивки флешки:
p - просмотр разделов(если созданы) на флешке
n - создать раздел
d - удалить разделы
w - записать изменения
p - primary partition (1-4) - создаем такие разделы максимально можно создать 4 primary раздела
Partition number (1-4): - указываем номер раздела, от 1 до 4
First cylinder - нажимаем Enter и ничего не пишем при запросе.
Last cylinder, +cylinders or +size{K,M,G} (1-243, default 243): - указываем размер раздела +64M - создаем раздел размером 64mb
Процесс выполнения разбивки флеш диска подробно:
fdisk /dev/sdb WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): p Disk /dev/sdb: 2003 MB, 2003664896 bytes 255 heads, 63 sectors/track, 243 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x01021e00 Device Boot Start End Blocks Id System /dev/sdb1 * 1 2441956672+ c W95 FAT32 (LBA) Partition 1 has different physical/logical endings: phys=(242, 254, 63) logical=(243, 152, 37) Command (m for help): d Selected partition 1 Command (m for help): 1 1: unknown command Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Command (m for help): p Disk /dev/sdb: 2003 MB, 2003664896 bytes 255 heads, 63 sectors/track, 243 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x01021e00 Device Boot Start End Blocks Id System Command (m for help):n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-243, default 1): Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-243, default 243): +64M Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (10-243, default 10): Using default value 10 Last cylinder, +cylinders or +size{K,M,G} (10-243, default 243): +64M Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (19-243, default 19): Using default value 19 Last cylinder, +cylinders or +size{K,M,G} (19-243, default 243): +64M Command (m for help): n Command action e extended p primary partition (1-4) p Selected partition 4 First cylinder (28-243, default 28): Using default value 28 Last cylinder, +cylinders or +size{K,M,G} (28-243, default 243): Using default value 243 Command (m for help): p Disk /dev/sdb: 2003 MB, 2003664896 bytes 255 heads, 63 sectors/track, 243 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x01021e00 Device Boot Start End Blocks Id System /dev/sdb11 9 72261 83 Linux /dev/sdb2 1018 72292+ 83 Linux /dev/sdb3 1927 72292+ 83 Linux /dev/sdb4 28 2431735020 83 Linux Command (m for help):w
Просмотр выполненной разбивки флешки:
fdisk -l
..... Disk /dev/sdb: 2003 MB, 2003664896 bytes 255 heads, 63 sectors/track, 243 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x01021e00 Device Boot Start End Blocks Id System /dev/sdb11 9 72261 83 Linux /dev/sdb2 1018 72292+ 83 Linux /dev/sdb3 1927 72292+ 83 Linux /dev/sdb4 28 2431735020 83 Linux root@jabber:~#
Я разбил флешку на 4 раздела, из них первые три по 64Мб они будут использованы как раздел подкачки (четыре)
Активируем разделы /dev/sdb1, sdb2, sdb3 на флешке как swap командой:
mkswap /dev/sdb1 Setting up swapspace version 1, size = 72256 KiB no label, UUID=e44428ac-b2c6-45d2-859d-b896c012f0c6 root@jabber:~# mkswap /dev/sdb2 Setting up swapspace version 1, size = 72288 KiB no label, UUID=5a41d37f-3b65-42c0-80e7-f0a62e22fd5a root@jabber:~# mkswap /dev/sdb3 Setting up swapspace version 1, size = 72288 KiB no label, UUID=bbfa564e-e97f-43cb-a875-83f397b1023c
Отформатируем основной раздел, где будет примантирован /opt командой:
mkfs.ext3 /dev/sdb4
Ответ системы на команду форматирования:
mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 108640 inodes, 433755 blocks 21687 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=444596224 14 block groups 32768 blocks per group, 32768 fragments per group 7760 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 35 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
Создаем файл /etc/fstab в котором прописываем опции монтирования выполнив команду:
echo '#!/bin/sh /dev/sda1 none swap sw 0 0 #/dev/sda2 none swap sw 0 0 #/dev/sda3 none swap sw 0 0 /dev/sda4 /opt ext3 rw,noatime 1 1' > /etc/fstab
В каталоге /tmp/local/ создаем файл .files:
touch /tmp/local/.files
Записываем в него путь к файлу /etc/fstab и сохраняем изменения на внутреннюю флешку роутера dir320:
echo "/etc/fstab" >> /tmp/local/.files flashfs save && flashfs commit && flashfs enable
После этого перезагружаем роутер. После перезагрузки проверяем, что флешка примонтирована, для этого выполняем команды df и free
df - показывает какой раздел примонтирован в каталог /opt
free - показывает свободную, занятую оперативную память, а также подключенный раздел подкачки, в нашем случае наши 64Mb swap раздела.
Если у вас на роутере нет интернета, а сам роутер подключен к сети где есть интернет, этими командами настраиваем интернет(измений под свой шлюз и днс сервер):
ip route delete default route add default gw 192.168.1.254 dev br0 echo "nameserver 192.168.1.254" > /etc/resolv.conf
Создаем необходимые папки
mkdir -p /opt/etc/init.d chmod 777 /tmp mkdir -p /opt/var/log
Устанавливаем репозиторий Entware:
cd /tmp wget http://wl500g-repo.googlecode.com/svn/ipkg/entware_install.sh chmod +x ./entware_install.sh ./entware_install.sh
Если на официальном сайте нет доступа к файлу, можете скачать с моего сайта и установить командами:
cd /tmp wget http://softnastroy.com/downloads/entware_install.sh chmod +x ./entware_install.sh ./entware_install.sh
После установки репозитория устанавливаем програмное обеспечение:
opkg install mc vim screen nmap htop mtr unzip unrar zip
Создаем скрипты запускающиеся после загрузки и перед выключением роутера.
Создаем папку в которой будут находится сами скрипты:
mkdir -p /tmp/local/sbin/
Создаем скрипт /tmp/local/sbin/post-boot
vi /tmp/local/sbin/post-boot #!/bin/sh chmod 777 /tmp ## Samba File Shares (Web) - Disabled nvram set usb_smbenable_x=0 nvram set usb_smbcset_x=utf8 ## telnet - Off #nvram set telnet_enable=0 nvram commit # turn off wlan by default #sleep 10 #/usr/sbin/wl radio off
Создаем скрипт файрволла, в нем все закоментировано, можете изменить под свои нужды:
vi /tmp/local/sbin/post-firewall #!/bin/sh # port HTTP # iptables -I INPUT -p tcp --dport 80 -j ACCEPT ### Ограничиваем доступ ребенку. ### Во время действия летнего времени срабатывает на 1 час позже: ### Создаем новую цепочку, дропаем в ней все по умолчанию. ### Заворачиваем на нее все интернет-пакеты ребенка #iptables -N CHILD #iptables -A CHILD -j DROP #iptables -I FORWARD 1 -m mac --mac-source xx:xx:xx:xx:xx:xx -o ppp0 -j CHILD #iptables -I FORWARD 1 -m mac --mac-source xx:xx:xx:xx:xx:xx -o ppp0 -j CHILD #iptables -I FORWARD 1 -m mac --mac-source xx:xx:xx:xx:xx:xx -o ppp0 -j CHILD ### Включаем ребенку интернет по времени #iptables -I CHILD 1 -m time --timestart 09:00:00 --timestop 20:00:00 --weekdays Sun,Mon,Tue,Wed,Thu,Fri,Sat -j RETURN # openvpn Server #iptables -I INPUT -p udp --dport 2121 -j ACCEPT #only Server (delete for Client) #iptables -I FORWARD -i br0 -o tun0 -j ACCEPT #iptables -I FORWARD -i tun0 -o br0 -j ACCEPT #iptables -I INPUT -i tun0 -p tcp --dport 80 -j ACCEPT #iptables -I INPUT -i tun0 -p tcp --dport 8080 -j ACCEPT #iptables -I INPUT -i tun0 -p tcp --dport 139 -j ACCEPT #iptables -I INPUT -i tun0 -p tcp --dport 445 -j ACCEPT #iptables -I INPUT -i tun0 -p udp --dport 137 -j ACCEPT #iptables -I INPUT -i tun0 -p udp --dport 138 -j ACCEPT #iptables -I INPUT -i tun0 -p tcp --dport 901 -j ACCEPT #iptables -I INPUT -i tun0 -p tcp --dport 9100 -j ACCEPT #printer #iptables -I INPUT -i tun0 -p ICMP --icmp-type 8 -j ACCEPT #iptables -I INPUT -i tun0 -p ICMP --icmp-type 11 -j ACCEPT #iptables -A POSTROUTING -t nat -o tun0 -j MASQUERADE #iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o tun0 -j MASQUERADE
Создаем скрипт /tmp/local/sbin/post-mount
vi /tmp/local/sbin/post-mount #!/bin/sh /opt/etc/init.d/rc.unslung start rm /opt/var/run/*.pid
Создаем скрипт /tmp/local/sbin/pre-boot
vi /tmp/local/sbin/pre-boot #!/bin/sh #Both these lines are required/recommended for protection against unwanted multi #logins based on ipt_recent ( http://wl500g.info/showpost.php?p=69660&postcount= #date 010101012000 #insmod /usr/local/lib/ipt_recent.o #insmod ipt_recent.o
Создаем скрипт запуска /tmp/local/sbin/pre-mount
P.S. Если на новой прошивке при подключении модема Huawei, он не определяется в системене, не появляется /dev/ttyUSB* добавьте в файл /usr/local/sbin/post-mount:
vi /tmp/local/sbin/pre-mount #!/bin/sh swapon -a
kernel="$(uname -r)" kernel=${kernel:0:3} if [ "$kernel" = "2.4" ]; then acm_mod="acm" else acm_mod="cdc-acm" fi usbserial="$(lsmod | grep usbserial)" acm="$(lsmod | grep $acm_mod)" option="$(lsmod | grep option)" [ -z "$usbserial" ] && insmod usbserial; [ -z "$acm" ] && insmod $acm_mod; [ -z "$option" ] && insmod option;
Очень жаль, но места на флешке очень мало, потому программ для проверки и форматирования флешек нет в прошивке.
Назначаем на созданные скрипты права на выполнение:
cd /tmp/local/sbin chmod +x /usr/local/sbin/*
Сохраняем все изменения в энергонезависимой памяти:
flashfs save && flashfs commit && flashfs enable
Задача выполнена, репозиторий Entware подключен к роутеру dir-320 и установлены программы: mc, vim, screen, nmap, htop, mtr, unzip, unrar, zip
Сделаем небольшой перерывчик и посмотрим видео ролик:
Add new comment