"Jest Boot jest Impreza!"
Wszystko co tutaj opisze znajdziecie na forach, ja tylko pozbierałem wszystkie info w jedno miejsce. Sposób wymaga on żadnych nadzwyczajnych umiejętności lutowania czy bycia elektronikiem :)
Będziemy potrzebowali:
-Kabel do starych Nokii CA-42
-Lutownice
-Trochę szczęścia i dużo cierpliwości :)
Pierwszym etapem będzie przygotowanie interfejsu, którym będziemy się łączyć z naszym routerem. Do tego będzie potrzebny kabelek CA-42, jest to rs232, czyli pospolity COM pod USB.
Ja oczywiście chciałem iść na łatwiznę, pożyczyłem kabel do naprawy ap(pod COM'a), niestety działał tylko w jedną stronę - nie mogłem wykonywać poleceń w uboocie. Dodatkowo potrzebowałbym VCC, nie kombinując poleciałem do sklepu i zakupiłem ca-42 za 18zł
Musimy odciąć końcówkę od strony telefonu - jest wiele producentów kabli CA-42, różne znaczenia kolorów, nas interesują trzy kable:
GND - masa
RX -kabel do wysyłania
TX - kabel do odbierania
Trzeba poprostu samemu dojść który jest który.
googlujcie:
ca-42 pinout
ca-42 tx rx
i szukajcie swojego opisu swojego modelu.
Jeśli nie znajdziesz to idź na koniec posta do: "Jeśli się nie uda"
Zajmiemy się teraz naszym routerem, musimy go rozkręcić: Tutaj jest miejsce w którym przyda się cierpliwość, 2 śruby są pod gumowymi nóżkami(od strony portów LAN) następnie odchylamy górna i dolną część obudowy, uwalniamy zatrzaski(czarne, podłużne) znajdujące się w okolicach diód przedniego panelu, oraz białe łączące górna i dolną przykrywę, żeby ułatwić ich ściąganie możemy delikatnie wysunąć czarą część obudowy. łatwo napisać trudniej zrobić... powodzenia :)
Po rozbiórce lokalizujemy miejsce na goldpin'y na płycie:
.jpg)
Będziemy musieli znaleźć albo zakupić piny, które będziemy wlutowywać. Zawsze można też skorzystać ze starej płyty głównej albo jakiegoś scalaka....
Lutujemy TYLKO GND, TX, RX,
Lutujemy TYLKO GND, TX, RX,

Oczywiście nr portu COM wybieramy zgodnie z naszą konfiguracją w systemie(do podglądu w Menadżeże urządzeń). Jeśli już wszystko jest ustawione, klikamy Open w putty oraz podłączamy zasilanie do routera, Wyskoczy nam log startowy z uboota:
U-Boot 1.1.4 (Nov 17 2009 - 11:56:26)
AP83 (ar9100) U-boot 0.0.11
DRAM:
sri
32 MB
id read 0x100000ff
flash size 8MB, sector count = 128
Flash: 8 MB
Using default environment
In: serial
Out: serial
Err: serial
Net: ag7100_enet_initialize...
No valid address in Flash. Using fixed address
: cfg1 0xf cfg2 0x7114
eth0: 00:xx:xx:xx:xx:xx
eth0
eth0
Autobooting in 1 seconds## Booting image at bf020000 ...
Uncompressing Kernel Image ... Error: Bad gzipped data
GUNZIP ERROR - must RESET board to recover
Resetting...
AP83 (ar9100) U-boot 0.0.11
DRAM:
sri
32 MB
id read 0x100000ff
flash size 8MB, sector count = 128
Flash: 8 MB
Using default environment
In: serial
Out: serial
Err: serial
Net: ag7100_enet_initialize...
No valid address in Flash. Using fixed address
: cfg1 0xf cfg2 0x7114
eth0: 00:xx:xx:xx:xx:xx
eth0
eth0
Autobooting in 1 seconds## Booting image at bf020000 ...
Uncompressing Kernel Image ... Error: Bad gzipped data
GUNZIP ERROR - must RESET board to recover
Resetting...
i tak w kółko informacja będzie się powtarzać, naszym zadaniem będzie wpisanie ciągu znaków: "tpl" po tej linijce:
Autobooting in 1 seconds
Powinien w tym miejscu wyskoczyć znak zachęty: ar7100>
Jeśli nie reaguje na polecenie, idź na koniec do "Jeśli nie działa:"
Następnie musimy w jakiś cywilizowany sposób dostarczyć firmware naszemu routerowi, czyli:
1. Ściągamy serwer tftp.
2. Specjalnie przygotowany firmware, dla upewnienia się sprawdzamy sumy kontrolne:
MD5: E712A4A274765A8E63E4B84AA2BCA99E
SHA1: 8B20344B19160006355F02A6BCC895353F4A4A2E
3. Ustawiamy ip na karcie sieciowej: 192.168.0.5 maska 255.255.255.0.
4. Tworzymy katalog i umieszczamy tam plik firmware.
5. odpalamy serwer tftp oraz ustawiamy ścieżkę do katalogu z firmware.
6. Podłączamy kartę sieciową z routerem.
Pozostaje nam teraz tylko czysta przyjemność, czyli zrobienie porządków w pamięci rotera po kolei w programie putty(oczywiście wcześniej połączyliśmy się z uboot'em):
Czyścimy pamięć routera:
erase 0xbf020000 +7c0000
Następnym poleceniem ściągamy z naszego serwera tftp firmware:
tftpboot 0x81000000 code.bin
Zapisujemy ściągnięty firmware tam, gdzie jego miejsce:
cp.b 0x81000000 0xbf020000 0x7c0000
Odpalamy boota:
bootm 0xbf020000
i huura! wszystko działa :)
Teraz spokojnie możemy szaleć z różnymi firmware(openwrt, dd-wrt) wiedząc ze umiemy spowrotem go reanimować :)
Wielkie podziękowania dla paco52327 bez niego by się nie udało ;]
Jeśli nie dziala:
Musimy wykombinować które piny na naszym kablu to GND RX i TX, z reguły GND to czarny.
Odpalamy putty, łączymy się i obserwujemy co się wyświetla, mając wtyczkę podpiętą do wlutowanych goldpin'ów z drugiej strony odizolowane kable od ca-42 stosujemy metodę prób i błędów.
Parę wskazówek(których nie jestem pewien, ale mnie pomogły)
- napięcie między GND, a tx oraz GND, a rx to 3.3V.
- złączenie rx i tx przy dobrze podpiętej masie powoduje echo, czyli putty odsyła to co ty napiszesz, tak pisali na forach, u mnie po prostu wyświetlało to co napisałem
- jeśli wyskakuje ciąg krzaków, na pewno coś jest źle podpięte, albo jest ustawiona zła prędkość połączenia.
- jeśli ładnie wszystko wyświetla, a nie reaguje na "tpl" prawdopodobnie coś nie tak z rx'em, albo używasz normalnego COM'a podpiętego do płyty, w tym przypadku potrzebujesz dodatkowo VCC
Dla dociekliwych mój log z flashowania:
ar7100> erase 0xbf020000 + 7c0000
Usage:
erase - erase FLASH memory
ar7100> asd
Unknown command 'asd' - try 'help'
ar7100> erase 0xbf020000 +7c0000
First 0x2 last 0x7d sector size 0x10000 125
Erased 124 sectors
ar7100> tftpboot 0x81000000 code.bin
dup 1 speed 1000
Using eth0 device
TFTP from server 192.168.0.5; our IP address is 192.168.0.2
Filename 'code.bin'.
Load address: 0x81000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
############################
done
Bytes transferred = 8126464 (7c0000 hex)
ar7100> cp.b 0x81000000 0xbf020000 0x7c0000
Copy to Flash... write addr: bf020000
done
ar7100> bootm 0xbf020000
pomocne linki: