Tak. Które przyda się wyłącznie, jeśli ktoś będzie chciał na tej wersji zainstalować (ja już mam) i nie ogarnie tych kilku komend z pierwszego posta.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Posty przez kszaq
Tak. Które przyda się wyłącznie, jeśli ktoś będzie chciał na tej wersji zainstalować (ja już mam) i nie ogarnie tych kilku komend z pierwszego posta.
Jeśli dodać tę linię, to powinien zbudować się dodatkowo obraz z sufiksem -cp, obok normalnego. Sysupgrade zostaje ten sam, bo OpenWRT nie będą obchodzić nagłówki producenta. ![]()
Teoretycznie mógłbym zrobić obrazy dla niego, ale musiał by być to nowy identyfikator urządzenia bo po czymś trzeba rozróżnić że ma brać adres mac a takiego a nie innego miejsca.
Identyfikator może zostać taki sam. Wersja CP potrzebuje innego nagłówka w recovery https://github.com/RolandoMagico/openwr … ic.mk#L505 :
IMAGE/recovery-cp.bin := sysupgrade-tar | pad-to $$(IMAGE_SIZE) | dlink-ai-recovery-header DLK6E6110004 \x6A\x28\xEE\x0B \x00\x00\x2C\x00 \x00\x00\x20\x03 \x61\x6EA w kwestii odczytywania MAC z innego adresu, można sprawdzać w preinit czy na partycji Odm mamy DLK6E6110004 i jeśli tak, podmieniać odpowiednio MAC, to samo dla WiFi. Postaram się sprawdzić to podejście na dniach.
Mając gotowy obraz (od Ciebie Cezary) nie chce mi się bawić w budowanie, jeśli to tylko jeden bajt do podmiany. ![]()
Dodałem w pierwszym poście informację jak można to wyedytować w skompilowanym obrazie. Wszystko oczywiście tyczy się wersji CP z logo Plusa, na "normalnym" nie trzeba się w takie cuda bawić.
Brakuje Ci parametru "route_allowed_ips". Zobacz ten tutorial, sekcja dla klienta: https://eko.one.pl/?p=openwrt-wireguard
W kliencie dobrze też by było zmienić maskę na "/32" w "addresses", bo klient używa 1 IP.
Ale tyle ściągać, tyle czekać... A podmienić chcę tylko 1 bajt.
Będę próbować tak: podmieniam bajt w HxD i przeliczam sumy komendą
mkimage -F. Zobaczymy, czy wstanie.
Do pierwszego posta dodałem informację na temat "poprawienia" MAC dla WiFi w wersji CP.
Mam pytanie, ponieważ nie potrafię znaleźć jednoznacznej informacji - czy w obrazie kernela (FIT, ITB) można w prosty sposób podmienić DTB? Mogę go wyłuskać przy pomocy dumpimage, zmienić wartość, która mnie interesuje przy pomocy fdtput, ale jak go z powrotem wsadzić w obraz? Prosta podmiana wartości w hxd nie wystarczy, bo mamy sumy kontrolne.
Jeśli ktoś z Was nabędzie "standardową" wersję, proszę o sprawdzenie pod jakim offsetem macie zapisany adres MAC na /dev/mtd6 - u mnie jest on pod 0x87, a nie 0x81, jak czyta OpenWRT. Jestem ciekaw, czy jest to kwestia wersji CP, czy "standardowe" egzemplarze też tak mają.
Szkoda, że nie potrzebuję dwóch, bo 125 zł za sztukę to mega przystępna cena. ![]()
"Niech ktoś..."
Pewnie się da, ale nie mam wystarczającej wiedzy w tym temacie.
Zmieniłem pierwszy post, wystarczą 2 polecenia do podmiany headera w obrazie OpenWRT. ![]()
Kupiłem w niezłej cenie (jeszcze kilka sztuk zostało) router D-Link M30 w wersji dla Plusa - ma logo na obudowie i nazwę modelu M30CP. Oczywiście pierwszym krokiem było wgranie OpenWRT, ale... nie poszło. Okazuje się, że router ma specjalną wersję firmware z dodaną obsługą ODU, w związku z tym nie łyka softu dla modelu standardowego, a tym samym nie łyka obrazu recovery z OpenWRT.
Pobranie firmware ze strony producenta, szybka analiza i wygląda na to, że jedyną różnicą jest jedna cyfra w numerze modelu w nagłówku: zamiast DLK6E6110001 mamy DLK6E6110004. Reszta się pokrywa.
Można zmienić numer w skrypcie do kompilacji i zbudować obraz od zera albo po prostu podmienić nagłówek w obrazie i przeliczyć jego sumę kontrolną (na podstawie https://github.com/openwrt/openwrt/blob … ommands.mk). Przy założeniu, że pobrany obraz ma nazwę recovery.bin:
# Zmiana LOCALE, by uniknąć problemów z printf
LANG=C
# Podmiana naglowka
printf 4 | dd of=recovery.bin bs=1 seek=11 conv=notrunc
# Obliczenie sumy kontrolnej
dd if=recovery.bin bs=78 count=1 | od -v -w2 -tu2 -An --endian little | awk '{s+=65535-$1;}END{s%=65535;printf "%c%c",s%256,s/256;}' | dd of=recovery.bin bs=1 seek=78 conv=notruncW Wiki OpenWRT jest mowa o tym, że aby przywrócić firmware fabryczny, należy mieć obraz działający przed wgraniem OWRT, dlatego zanim uwolnimy sprzęt, warto na wszelki wypadek wgrać 2x firmware, który potem gdzieś się zachomikuje.
Przydatne linki:
OpenWRT Wiki: https://openwrt.org/toh/d-link/aquila_pro_ai_m30_a1
oryginalny firmware: https://public@ftp.dlink.net.pl/dwp/dwp … 240402.zip
obraz Cezarego, którego użyłem do flashowania: https://dl.eko.one.pl/luci/openwrt-24.1 … covery.bin
Zalety: w wersji CP niedrogi, może się podobać, 512 MB RAM, 4xLAN.
Wady: ze względu na układ partycji niewiele miejsca na pakiety, z obrazem z linku powyżej mamy 30.8 MB wolnego na czystym systemie.
Edit 11.05.2025:
Wersja CP przechowuje adres MAC z innym offsetem niż standardowa. Aby poprawić MAC dla WiFi, należy edytować plik /etc/hotplug.d/ieee80211/11_fix_wifi_mac i w odpowiednim miejscu wpisać:
dlink,aquila-pro-ai-m30-a1)
addr=$(mtd_get_mac_binary "Odm" 0x87)
[ "$PHYNBR" = "0" ] && macaddr_add $addr 2 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && macaddr_add $addr 3 > /sys${DEVPATH}/macaddress
;;Jeśli chcemy mieć poprawny adres MAC również dla Ethernetu, należy zmodyfikować DTB, ustalając wartość
/soc/spi@1100a000/spi_nand@0/partitions/partition@6980000/nvmem-layout/macaddr@81 regna
87 6Można zrobić to na gotowym obrazie: pobieramy sysupgrade (koniecznie dla tej samej wersji, którą już mamy na routerze) i wykonujemy następujące polecenia (na komputerze):
tar xvf luci-24.10-snapshot-r28627-0b392b925f-mediatek-filogic-dlink_aquila-pro-ai-m30-a1-squashfs-sysupgrade.bin
perl -pi -e 's/mac-base\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x08\x00\x00\x00\x3D\x00\x00\x00\x81/mac-base\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x08\x00\x00\x00\x
3D\x00\x00\x00\x87/' sysupgrade-dlink_aquila-pro-ai-m30-a1/kernel
mkimage -F sysupgrade-dlink_aquila-pro-ai-m30-a1/kernelNastępnie, plik sysupgrade-dlink_aquila-pro-ai-m30-a1/kernel transferujemy przez SCP do /tmp routera i wykonujemy polecenie:
ubiupdatevol /dev/ubi0_0 /tmp/kernelPo restarcie routera powinniśmy mieć prawidłowy MAC dla interfejsów WAN (internet) i LAN (eth0).
Czy ktoś z Was miał okazję testować Mercusys MR80X v3? Znany i lubiany Filogic, wygląda na ciekawą alternatywę dla AX3000T, ma 2x więcej RAM, wsparcie w trunku jest, PR dla 24.10 też mamy.
Próbuję zlokalizować, czy jakiś sprzedawca ma stanie v3...
Rozumiem, czyli na wymienionych przeze mnie sprzętach powinno to działać i nie obciążać ich zbyt mocno?
Na AX3000T obecna wersja działa.
Mi wieszało AX3000T po 2-3 dniach używania i tailscale jako exit node. Obawiam się, że przy obecnych wersjach potrzeba minimum 512MB RAM w routerze - albo czekać aż zostanie poprawione zarządzanie pamięcią w go i/lub tailscale. Możliwe też, że zostało conieco poprawione w ostatnich kilku miesiącach. Jednak dla świętego spokoju mam postawione Tailscale na osobnym SBC z 1GB RAM.
Aby Tailscale daemon był w stanie przekierować "cały" ruch przez exit node musisz go uruchomić z opcją --exit-node, inaczej wewnętrznie nie będzie wiedział do którego hosta puścić pakiety.
Tailsclale wstawia swoje reguły trasowania i jest niestety pod tym względem praktycznie niekonfigurowalny. Regułki po włączeniu --exit-node wyglądają tak:
# ip rule
0: from all lookup local
5210: from all fwmark 0x80000/0xff0000 lookup main
5230: from all fwmark 0x80000/0xff0000 lookup default
5250: from all fwmark 0x80000/0xff0000 unreachable
5270: from all lookup 52
32766: from all lookup main
32767: from all lookup defaultW związku z tym jeśli chciałbym przekierować przez exit-node ruch wyłącznie od hosta 192.168.0.10, dopisałbym 2 regułki: po pierwsze, kieruj ruch z wybranego hosta do Tailscale (tabela 52):
# ip rule add from 192.168.0.10/32 lookup 52 prio 5200a pozostały ruch normalnie - tutaj priorytet 5209, żeby "ominąć" Tailscale:
# ip rule add lookup main prio 5209Możesz spróbować wklepać to ręcznie i zobaczyć czy w ten sposób działa, jak oczekujesz. Niestety nie pomogę w tym gdzie takie regułki najlepiej wpisać na stałe w OpenWRT.
Chyba nie we wszystkich modelach AVM jest taka możliwość - mam 7360 i 7330, w nich się nie da - ale w razie potrzeby można sobie samodzielnie zacisnąć kabelek RJ11 do RJ45: https://www.router-faq.de/?id=kabel&kabel=y_kabel
Dużo chyba zależy od modemu, bo na starym E3372 (nie-HiLink) nie chciało działać. Na DW5811e jest OK.
Modem LTE w laptopie z kartą Orange (taryfa na kartę), bez problemu działa IPv6 - mam ustawiony APN internetipv6 i protokół 464xlat.
W wireless nie network i właśnie o to chodzi. Robią skrypt migracyjny, więc na razie albo ręcznie albo bez zachowania konfiguracji.
Oczywście tak, wyedytowałem mój post dla jasności. Dzięki za zwrócenie uwagi!
filogic. Bez zachowania konfiguracji bo inaczej wykryje następne radia.
Robiłem sysupgrade z 23.05 z zachowaniem konfiguracji na AX3000T i jedynie przed odpaleniem sysupgrade w konsoli zmieniłem wpisy w /etc/config/wireless zgodnie z tym postem:
https://eko.one.pl/forum/viewtopic.php? … 97#p308997
Wszystko działa prawidłowo od 16 listopada, czyli pierwszego obrazu 24.10 na stronie.
Zysk będzie znikomy, bo jak sam zauważyłeś mamy o 0,5% większe MTU, a zdarza się, że aplikacje same stosują mniejsze pakiety lub dostosowują się do MTU i niekoniecznie zaobserwujesz spadek dzielonych pakietów. Jedynie przy transferze większej ilości danych ilość pakietów spadnie o te 0,5%. Zawsze to coś. ![]()
BTW tą samą wartość MTU stosuje FunBox, to znaczy "na świat" wychodzimy z MTU 1500.
nju światłowód, czy de facto Orange - tak samo bez problemu na PPPoE, vlan 35 i dodatkowo MTU na WAN ustawiona na 1508, dzięki czemu mam 1500 na PPPoE.
Jeśli chcesz łączyć się z innej sieci, w której lokalnie używasz tej samej puli lokalnych adresów, to nie zadziała. Musisz w którejś podsieci zmienić sobie na cokolwiek poza 192.168.1.x. Mam kilka lokalnych LANów spiętych przez tailscale i każda ma ustawioną inną pulę lokalną - wtedy działa bez problemu.
Cześć, dawno mnie tu nie było. Potrzebuję pomocy (aktualnej instrukcji) z wgraniem OpenWRT na AX3000T z Winbondem. Ostatnie na co wgrywałem, to jakieś stare tplinki, Xiaomi 3G i Nexx WT3020 (16mb) którego ostatnio odnalazłem w szafie. Podsumowując wgrywałem dawno temu. Czy jest ktoś w stanie podesłać instrukcję wraz z aktualnymi/najnowszymi plikami? Nie chcę go uwalić, bo kabla to nie znajdę (przez przeprowadzkę). Czy mamy kogoś w świętokrzyskim kto by wgrał? Ewentualnie (ale tylko w ten weekend) na trasie Kielce-Piaseczno? oczywiście nie za free
Build od Cezarego wspiera Winbonda, pobierasz firmware od niego, używasz XMiR-Patcher i powinno śmigać. ![]()
Instrukcja jest w pierwszym poście na forum OpenWRT (Easy method): https://forum.openwrt.org/t/openwrt-sup … 00t/180490
No teraz jest ok. Już wiem o co chodzi.
Na 23.05 było:option path 'platform/18000000.wifi'teraz na 24.10 jest:
option path 'platform/soc/18000000.wifi'I to samo dla radia 5g
Zrobiłem tę podmianę przed aktualizacją z 23.05 na 24.10 i po sysupgrade z zachowaniem ustawień wszystko działa, dzięki!
Problemu z kluczami opkg nie zaobserwowałem. Używam domyślnych.
Aż tak głęboko nie siedzę z kompilacjami ;-)
Tylko podobny wynik mam na t620
Nieco lepiej jak odpaliłem ten sam docker, ale na mocniejszym CPU, wtedy mam ok 30/8 Mb
Porobiłem trochę testów na Xiaomi Router 3G z MT7621AT i dołożenie zoptymalizowanej wersji ChaCha20 niestety daje tylko minimalne zyski - iperf3 zyskuje wyłącznie w kierunku routera (40Mbps vs niecałe 50Mbps z patchem), w drugą stronę zysku nie ma (17Mbps). Wygląda niestety, że większość pracy routera idzie na przepychanie pakietów do userspace i z powrotem, a crypto w go jest w miarę zoptymalizowane nawet bez wersji asm.
Ten sam Xiaomi 3G w wg-bench osiąga 100Mbps, ale tu już korzysta z modułu kernela.
Tailscale niestety lubi rozpychać się w RAMie. Miałem go odpalonego na Xiaomi AX3000T (256MB RAM) i router potrafił wieszać się po 1-2 dniach pracy, pracował jako exit node dla 1 klienta. Wyrzuciłem go z routera i wykorzystałem na serwer starego boxa na Amlogic - tailscale ma tam RAMu co nie miara, box ciągnie 0.8W, a router już nie dostaje zadyszki. ![]()
eko.one.pl → Posty przez kszaq
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc