
Openwrt сборка из исходников и прошивка Dir-320 A1
В этой статье собирается различная информация об OpenWRT. Весь нужный набор утилит завязан на Linux. Ради примера выбран Dir-320 как самый лучший по соотношению цена-производительность-функционал.
СпецификацииD-Link Dir-320 A1:
CPU : Broadcom BCM5354KFBG
Flash : Spansion S29AL032D (4Mbytes)
RAM : 32Mbytes SAMSUNG
Switch : ? Wi-Fi : BCM4318
Serial : yes
USB : yes
JTAG : yes
Serial pinout [x] : TX [x] : GND [x] : VCC 3.3V [ ] [x] : RX
Спецификации D-Link Dir-330
CPU : Broadcom BCM5836PKPBG
Flash : Spansion S29GL064A (8Mbytes)
RAM : 2x16Mbytes Switch : 5325e
Wi-Fi : BCM4318
Serial : yes
USB : yes
JTAG : yes
Serial(UART) pinout:[x] : RX[x] : TX[x] : NC[x] : NC[x] : GND[x] : VCC
Сборка из исходников
Собирать будем в UBUNTU для D-Link dir-320.
Забираем исходники
Для начала поставим Subversion
# sudo apt-get install subversion
Вытянем самые свежие исходники, ветка называетя Kamikaze
# svn co svn://svn.openwrt.org/openwrt/trunk/ openwrt && cd openwrt
Если нужны стабильные то тянем отсюда
# svn co svn://svn.openwrt.org/openwrt/branches/backfire backfire_dir-320 && cd backfire_dir-320
Устанавливаем пакеты необходимые для сборки
У меня нехватало вот этого:
# sudo aptitude install g++ flex libncurses5-dev zlib1g-dev patch gettext gawk
Так же можно проверить чего не хватает, набрав в корне дерева с исходниками вот это:
# make prereq
Сама сборка
# ./scripts/feeds update -a && ./scripts/feeds install -a
Проверяем, установлено ли все необходимое програмное обеспечение для создания прошивки и собираем tools и toolchain, т.к. процессор в роутере MIPS и софт нужен от этой же архитектуры:
# make prereq && make tools/install && make toolchain/install
# make menuconfig
Теперь выбрав нужные приложения редактируем конфиг ядра:
# make kernel_menuconfig
Ручное редактирование конфига ядра не обязательно. И для первого раза я советую добавить только поддержку русского языка для разных кодировок, например если вы собираетесь монтировать флешку в FAT32 вам потребуется cp866 или cp1251.
Обычно мастерство сборки придет с опытом, мне понадобилось перепрошить точку 3 раза пержде чем я выбрал подходящий набор программ.
После всех настроек запускаем саму сборку:
# make
Довольно часто бывает, что во время сборки появляется ошибка. В таком случае запускаем make с выводом отладочной информации:
# make V=99
Прошивка
Тупая прошивка
Устанавливаем tftp клиент, многие под Линукс используют интерактивный tftp, но мне больше приглянулся atftp. Ставим его:
# sudo apt-get install atftp
Втыкаем провод, один конец в комп другой в LAN 1 роутера. Настраиваем сеть предварительно отключив Network manager:
# sudo ifconfig eth0:1 192.168.1.2 up
Пишем указанную строчку ниже в консоли, включаем питание на роутере, считаем до 3-х и жмем энтер.
# atftp --option "mode octet" --option "timeout 60" --verbose --trace -p -l openwrt-brcm47xx-squashfs.trx 192.168.1.1
Прошивка с использование serial console (uart)
Подключаем консоль к компьтеру. В моём случае это был usb-to-com адаптер т.е. /dev/ttyUSB0. Если у вас будут встроенные в компьютер порты то смотрите в сторону /dev/ttyS1 или /dev/ttyS2 Открываем какую-нибудь терминальную софтину - putty, picocom, minicom. Я использовал minicom так:
$ minicom -l -8 -c on -s
Включаем питание роутера и зажимаем Ctrl-C пока не выпадем в меню CFE. На экране видим приглашение :
CFE>
Немного остановимся. Сейчас нужно перейти в консоль и сконфигурировать интерфейс так:
ifconfig eth0:2 192.168.0.25
Даём комманду, которая поднимает на роутере TFTP сервер на несколько секунд , т.е. после этого он примет от нас по tftp всё что мы ему подсунем.:
CFE> flash -noheader : flash1.trx
И сразу же выполняем:
atftp --option "mode octet" --option "timeout 60" --verbose --trace -p -l openwrt-brcm47xx-squashfs.trx 192.168.0.2
Сразу говорю, с первого раза можно не успеть.
Ссылки
- Вот эта статья воодушевила
- OpenWRT Network Configuration
- Схема uart 2 com адаптера
- Дата кабель на микросхеме MAX232
- jtag pinout
- Про Dir-330 на dd-wrt.com
- Dlink DIR-320 + Адаптер COM-порта + USB-HDD
- JTAG pinout for D-Link DIR-330 JPG
- Universal JTAG User Manual (Parallel)
- ejtag
- Железный тюнинг Dir-320
- dir-320 UART pinout
- Install DD-WRT on a D-Link DIR-330 router
- OpenWrtDocs/Hardware/D-Link/DIR-330
- прошивка Dir-320
- Dir-320 serial jpg
- MIPS JTAG
- Восстановление АДСЛ-модемов DLink
- Прошивка Dir-320 через serial console
- Поиск распиновки последовательной консоли
- LaFonera_Hardware_Serial-Cable-Port
- http://klauth.telenet.ru/dl/0004A2A02.html
- http://sites.google.com/site/zigfisher/Home/sinus-1054-dsl
- http://dd-wrt.com/phpBB2/viewtopic.php?t=32983&highlight=dir330
- http://www.nslu2-linux.org/wiki/HowTo/AddASerialPort
- http://www.hardware.zp.ua/mobile/data-cable-max232.html
- http://www.e-kit.ru/2007/232/index.htm
- http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-3-hacking-the-asus-wl-520gu/
- http://www.xakep.ru/magazine/xa/125/114/1.asp
- Transmission bittorrent client on OpenWRT
- OpenWrt USB automount on boot
- https://dev.openwrt.org/ticket/7740
- http://tinyhack.com/2010/04/04/d-link-dir-300-serial-port-and-sd-mod/
- http://www.prist.ru/info.php/articles/i2c_spi_rs_lecroy_analyze.htm
- http://www.gaw.ru/html.cgi/txt/interface/spi/index.htm
- http://sites.google.com/site/bifferboard/sd_mmc_howto