CPU | Ram | Flash | Network | USB | Serial | JTag |
AtherosAR2317@182MHz | 16MB | 4MB | 4x1 | No | Yes | Yes |
MMC карты поддерживает http://tinyhack.com/2010/04/04/d-link-dir-300-serial-port-and-sd-mod/
Скачиваем исходники, из SVN, предпочитаю стабильные:
# svn co svn://svn.openwrt.org/openwrt/branches/backfire backfire_dir-300 && cd backfire_dir-300
Так же можно проверить чего не хватает, набрав в корне дерева с исходниками вот это:# make prereq
Устанавливаем исходники дополнительных пакетов и делаем возможным их включение в прошивку:# ./scripts/feeds update -a && ./scripts/feeds install -a
Далее проверяем, установлены все необходимые пакеты для создания прошивки и собираем toolchain, т.к. процессор в роутере MIPS, то и софт нужен этой же архитектуры:# make prereq && make tools/install && make toolchain/install
Создаём конфиг для сборки# make menuconfig
Теперь после как настроили конфиг для сборки, можно настроить ядро, особой необходимости нету, т. к. основные модули ядра можно включить в конфиге сборки.# make kernel_menuconfig
После всех настроек запускаем саму сборку, -j2 — 1 процессор +1:# make -j2
Довольно часто бывает, что во время сборки появляется ошибка. В таком случае запускаем make с выводом отладочной информации:# make V=99
Итог сборки будет 2 файла, которые нас интересуют, остальные это для других маршрутизаторов: openwrt-atheros-vmlinux.lzma - ядро и openwrt-atheros-root.squashfs - файловая система. Объём этих файлов суммарно не должен превышать 3.6Мб.Итак, теперь нужно попасть в загрузчик dd-wrt.
Указываем адрес на котором работает tftp сервер(Если в сборке не указали свой адрес)
DD-WRT> ip_addr -h 192.168.1.2
IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.1.2
DD-WRT> fis init
About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image System
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT> fis list
Name FLASH addr Mem addr Length Entry point
DD-WRT 0xBFC00000 0xBFC00000 0x00030000 0x00000000
FIS directory 0xBFFE0000 0xBFFE0000 0x0000F000 0x00000000
DD-WRT config 0xBFFEF000 0xBFFEF000 0x00001000 0x00000000
DD-WRT> load -r -b %{FREEMEMLO} openwrt-atheros-vmlinux.lzma
Using default protocol (TFTP)
Raw file loaded 0x80040800-0x801007ff, assumed entry at 0x80040800
DD-WRT> fis create -r 0x80041000 -e 0x80041000 vmlinux.bin.l7
... Erase from 0xbfc30000-0xbfcf0000: ............
... Program from 0x80040800-0x80100800 at 0xbfc30000: ............
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
DD-WRT> fis list
Name FLASH addr Mem addr Length Entry point
DD-WRT 0xBFC00000 0xBFC00000 0x00030000 0x00000000
vmlinux.bin.l7 0xBFC30000 0x80041000 0x000C0000 0x80041000
FIS directory 0xBFFE0000 0xBFFE0000 0x0000F000 0x00000000
DD-WRT config 0xBFFEF000 0xBFFEF000 0x00001000 0x00000000
DD-WRT> fis free
0xBFCF0000 .. 0xBFFE0000
Дальше с помощью калькулятора, переключив его в инженерный вид, в шеснадцатиричном режиме вычесть
BFFE0000 - BFCF0000 = 2F0000
DD-WRT> load -r -b %{FREEMEMLO} openwrt-atheros-root.squashfs
Using default protocol (TFTP)
Raw file loaded 0x80040800-0x802c07ff, assumed entry at 0x80040800
Тут указывается оставшееся свободное место
DD-WRT> fis create -l 0x2F0000 rootfs
... Erase from 0xbfcf0000-0xbffe0000: ...............................................
... Program from 0x80040800-0x802c0800 at 0xbfcf0000: ........................................
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
Процедура будет выполняться несколько минут. Не следует выключать питание до ее завершения. Ничего страшного с роутером не произойдет, просто тогда придется процедуру заливки новой прошивки начинать сначала.
DD-WRT> fis list
Name FLASH addr Mem addr Length Entry point
DD-WRT 0xBFC00000 0xBFC00000 0x00030000 0x00000000
vmlinux.bin.l7 0xBFC30000 0x80041000 0x000C0000 0x80041000
rootfs 0xBFCF0000 0x80040800 0x002F0000 0x80040800
FIS directory 0xBFFE0000 0xBFFE0000 0x0000F000 0x00000000
DD-WRT config 0xBFFEF000 0xBFFEF000 0x00001000 0x00000000
DD-WRT> fconfig boot_script_timeout 5
boot_script_timeout: Setting to 5
DD-WRT> fconfig bootp false
bootp: Setting to false
DD-WRT> fconfig
Run script at boot: true
Boot script:
.. fis load -l vmlinux.bin.l7
.. exec
Enter script, terminate with empty line
>> fis load -l vmlinux.bin.l7
>> exec
>>
Boot script timeout (1000ms resolution): 5
Use BOOTP for network configuration: false
Gateway IP address:
Local IP address: 192.168.1.1
Local IP address mask: 255.255.255.0
Default server IP address:
Console baud rate: 9600
GDB connection port: 9000
Force console for special debug messages:false
Network debug at boot time: false
Update DD-WRT non-volatile configuration - continue (y/n)? y
... Erase from 0xbffe0000-0xbfff0000: .
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
Перезагрузка роутера
DD-WRT> reset