"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:
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,
VCC w naszym przypadku nie jest potrzebne. Do lutowania najlepiej 2 osoby, jedna trzyma płytę routera i próbuję wcisnąć pin od górnej strony, druga grzeje lutownicą cynę która znajduję się w miejscach na piny z drugiej strony płytki. W okolicy lutowania nie ma żadnych miejsc które moglibyśmy uszkodzić. Musimy teraz wykombinować jakąś wtyczkę np. od wiatraka w komputerze, tak żeby łatwo podłączyć i odłączyć wtyczkę. Następnie instalujemy stery do kabla(jeśli już tego nie zrobiliśmy).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: