1

Temat: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

Czesc,
Staram sie wgrac OpenWrt do AVM 1200.
Ustawilem IP:
router: 192.168.178.1
PC: 192.168.178.10

pod windows w cmd wydaje komende:

eva_ramboot.py 192.168.178.1 uboot-fritz1200.bin

plik eva_ramboot wyglada tak:

#!/usr/bin/python

from ftplib import FTP
from sys import argv
from os import stat

assert len(argv) == 3
ip = argv[1]
image = argv[2]

size = stat(image).st_size
# arbitrary size limit, to prevent the address calculations from overflows etc.
assert size < 0x2000000

# We need to align the address. A page boundary seems to be sufficient on 7362sl
# and 7412
addr = ((0x8000000 - size) & ~0xfff)
haddr = 0x80000000 + addr
img = open(image, "rb")

ftp = FTP(ip, 'adam2', 'adam2')

def adam(cmd):
    print("> %s"%(cmd))
    resp = ftp.sendcmd(cmd)
    print("< %s"%(resp))
    assert resp[0:3] == "200"

ftp.set_pasv(True)
# The following parameters allow booting the avm recovery system with this
# script.
adam('SETENV memsize 0x%08x'%(addr))
adam('SETENV kernel_args_tmp mtdram1=0x%08x,0x88000000'%(haddr))
adam('MEDIA SDRAM')
ftp.storbinary('STOR 0x%08x 0x88000000'%(haddr), img)
img.close()
ftp.close()

Jednak dostaje taki komunikat:

C:\openwrt> eva_ramboot2.py 192.168.178.1 uboot-fritz1200.bin
Traceback (most recent call last):
  File "C:\openwrt\eva_ramboot2.py", line 38, in <module>
    ftp = FTP(ip, 'adam2', 'adam2')
  File "C:\Python38\lib\ftplib.py", line 117, in __init__
    self.connect(host)
  File "C:\Python38\lib\ftplib.py", line 152, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout,
  File "C:\Python38\lib\socket.py", line 808, in create_connection
    raise err
  File "C:\Python38\lib\socket.py", line 796, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [WinError 10061] Nie można nawiązać połączenia, ponieważ komputer docelowy aktywnie go odmawia

Czy mozecie podowiedziec co moze byc przyczyna?, bo ping z routerem jest.

Pozdrawiam

2

Odp: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

Fritz nie odpowiedział. Masz skrypt uruchomić prawie natychmiast po podłączeniu zasilania do AVM, masz mało czasu żeby się wstrzelić w okno kiedy możesz to zrobić.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

Miales racje, w zyciu bym na to nie wpadl. Dziekuje.

Natrafilem na kolejna sciane.

Otrzymalem potwierdzenie:

> SETENV memsize 0x07f80000
< 200 SETENV command successful
> SETENV kernel_args_tmp mtdram1=0x87f80000,0x88000000
< 200 SETENV command successful
> MEDIA SDRAM
< 200 Media set to MEDIA_SDRAM

po uruchomieniu serwera FTP (PumpKIN), wysylam plik zgodnie z tutkiem (ip PC: 192.168.178.70)"

https://openwrt.org/toh/avm/avm_fritz_repeater_1200

lecz po kilku senkundach otrzymuje komunikat z cmd:

Traceback (most recent call last):
  File "C:\openwrt\eva_ramboot.py", line 35, in <module>
    ftp.storbinary('STOR 0x%08x 0x88000000'%(haddr), img)
  File "C:\Python38\lib\ftplib.py", line 492, in storbinary
    conn.sendall(buf)
ConnectionResetError: [WinError 10054] Istniejące połączenie zostało gwałtownie zamknięte przez zdalnego hosta

Sprawdzilem tez ze komunikat o zamnieciu polaczenia wystepuje po tym samym czasie (kilku sekund) nawet jak nie mam uruchomionego serwera FTP

4

Odp: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

Masz uruchomić serwer tftp a nie ftp. To nie jest to samo.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

ok.
Zgodnie z ponizszym linkiem sciagnalem tftp server:
https://openwrt.org/docs/guide-user/ins … _my_device
probowalem adresy:
192.168.178.10
192.168.178.70 (jak sugeruje strona openwrt)
192.168.1.1 , jak sugeruje Gosc ponizej
https://lists.openwrt.org/pipermail/ope … 11500.html
lecz dalej to samo.

W powyzszym linku jest napisane:

3. Check if the key linux_fs_start is not set to 1 in tffs:
$ fritz_tffs_nand -d /dev/mtd1 -n linux_fs_start
If it is set to 1, the bootloader will select the wrong set of
partitions. Restart the box and install an FritzOS upgrade or do a
recovery. Afterwards start again at step 1.

nie wiem jak z poziomu win to sprawdzic, wiec przywrocilem ustawienia fabryczne na AVM, lecz rowniez to nic nie dalo.
Czy wiesz gdzie sprawdzic po jakim IP laczy sie router z serverem TFTP?
Moze ip mam niewlasciwe?

6

Odp: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

W którym momencie? Jeżeli już po wgraniu openwrt do pamięci to 192.168.1.1, openwrt zawsze ma i adres. Wcześniej musisz sobie ustawić na karcie sieciowej adres 192.168.1.2 w komputerze.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

popraw mnie jesli sie myle, czy dobrze rozumuje (bo fachowcem nie jestem):
-wgrywajac eva_ramboot, wgrywam do RAM routera linux z klientem TFTP, ktory ma sie polaczyc z serwerem na moim kompie by odebrac plik z obrazem
- serwer TFTP musi miec okreslony adres ip (i tu wlasnie jest pytanie czy ustawiam dobry), po to by router mogl sie do niego podlaczyc i pobrac plik z obrazem

Jedna rzecz mnie niepokoi: na stronie operwrt mowia zeby uruchomic plik eva z offset:

eva_ramboot.py --offset 0x85000000 192.168.178.1 uboot-fritz1200.bin

u mnie skrypt wywalal blad ze potrzebuje trzech argumetow, wiec wywoluje tak:

eva_ramboot.py  192.168.178.1 uboot-fritz1200.bin

podejrzewam ze to i tak trzeba ustawic wiec w linijce pliku eva:

haddr = 0x80000000 + addr

zmienilem na:

haddr = 0x85000000 + addr

efekt tego jest taki ze juz nie wywala przerwania polaczenia tylko przechodzi do wiesza polecen:

C:\openwrt> eva_ramboot4.py 192.168.178.1 uboot-fritz1200.bin
> SETENV memsize 0x07f80000
< 200 SETENV command successful
> SETENV kernel_args_tmp mtdram1=0x8cf80000,0x88000000
< 200 SETENV command successful
> MEDIA SDRAM
< 200 Media set to MEDIA_SDRAM

C:\openwrt>

Nie wiem czy to oznacza:
czy to ze boot zostal wgrany i probuje sie tylko polaczyc z serwerem TFTP na moim kompie?
Probowalem tez w tym momecie ping do routera po adresach: 192.168.1.1, 192.168.178.1 ale bez oznak zycia

8

Odp: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

Wg wiki:
- wgrywasz nowy bootloader
- bootloader uruchamia się, pobiera openwrt do pamięci i uruchamia (bo to initramfs jest)
- jak już uruchomi to możesz działać dalej.
Więc jeżeli wgrałeś to teraz wg wiki będzie chciał pobierać obraz z tftp z 192.168.1.70

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9 (edytowany przez Requan 2020-06-02 18:37:50)

Odp: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

nie wiem czy udalo mi sie wgrac tymczasowy obraz, bo moge juz wejsc przez SSH:

BusyBox v1.30.1 () built-in shell (ash)

  _______                     ________        __
|       |.-----.-----.-----.|  |  |  |.----.|  |_
|   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
|_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
-----------------------------------------------------
OpenWrt 19.07.3, r11063-85e04e9f46
-----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------

root@OpenWrt:~# ls -all
drwxr-xr-x    2 root     root            40 May 16 18:32 .
drwxrwxrwt   16 root     root           360 Jan  1  1970

nie wiem tylko jaka sciezke podac by skopiowac:

> mtd write /path/to/uboot-fritz1200.bin uboot0
  > mtd write /path/to/uboot-fritz1200.bin uboot1

10

Odp: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

Zgodnie z wiki - masz przekopiować uboota do routera, do /tmp. Uzyj winscp do tego.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

Dziekuje za pomoc.
Teraz poszlo bez problemu. Dzieki Tobie udalo mi sie na stale wgrac openwrt.

Tak juz na marginesie, nie rozumiem po co na wiki kazali zrobic to:

The U-Boot will now start. Now assign yourself the IP address 192.168.1.70/24. Copy the OpenWrt initramfs (!) image to a TFTP server root directory and rename it to FRITZ1200.bin.

Jak pozniej uzywa sie ten drugi plik(uboot-fritz1200.bin) :

> mtd write /path/to/uboot-fritz1200.bin uboot0
> mtd write /path/to/uboot-fritz1200.bin uboot1

12

Odp: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

Obraz to obraz, uboot to uboot. W czym widzisz problem?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13

Odp: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

tam jest trzeci plik:

openwrt-19.07.0-ipq40xx-generic-avm_fritzrepeater-1200-initramfs-fit-uImage.itb

jest na wiki napisane zeby zamienic na FRITZ1200.bin i wrzucic na serwer, lecz on nie jest nigdzie wykorzystany.

Pytam tylko po to, by to do konca wszystko zrozumiec.

14

Odp: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

To właśnie jest obraz uruchamiany w ramie który uboot sobie ściąga z serwera tftp...

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15

Odp: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

tylko ja go nie wrzucalem, bo mi sie nie udalo, a Openwrt w Ram pojawil sie po uruchomieniu skryptu:

eva_ramboot.py 192.168.178.1 uboot-fritz1200.bin

a to zupelnie inny plik, dlatego tego nie rozumiem.

16

Odp: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

Skoro się uruchomiło openwrt to jednak zostało sciągnięte i uruchomione, prawda?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

17

Odp: AVM FRITZ!Repeater 1200 eva_ramboot.py odrzuca polaczenie

prawda, masz racje, nie ma co drazyc.

Jeszcze raz dziekuje za pomoc i poswiecony czas.

Pozdrawiam
Marcin