Ovislink Airlive WL-1600GL Tomato DD-WRT //tomato 1.25, 1.25V, 1.27
|
obsy |
Dodano 27-11-2009 11:46
|

VIP

Posty: 5775
Dołączył: 31/10/2006 20:06
|
Specjalnie. Bo problem nie dotyczy tomato samego w sobie a jego implementacji na ovisie.
|
|
|
|
shibby |
Dodano 27-11-2009 15:52
|

SysOp

Posty: 17148
Dołączył: 15/01/2009 20:30
|
Cytat Bo problem nie dotyczy tomato
dokladnie. tomato jest bezproblemowe i wogole zajebiste pod kazdym wzgledem to w ovislinku problem lezy
Router: Unifi Cloud Gateway Max
Switch: Unifi USW-Lite-16-PoE
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 4x 2TB SSD
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
lgolebio |
Dodano 27-11-2009 19:05
|

User

Posty: 145
Dołączył: 08/06/2006 12:35
|
Hejka Panowie, nie wiem jak wam, ale mi wcale to tomato z VPN nie działa jeśli chodzi o JFFS, wiadomo, daje się sformatować ale to jedyna rzecz jaką można z tym zrobić, ogólnie problem jest taki sam, nie da się tam nic zapisać.
Ale..... 
Po wielu bojach z kompilacją udało mi się stworzyć na bazie Victeka działające tomato ND w wersji 1.25 z działającym JFFS. Ogólnie rzecz biorąc jeszcze nie testowałem, ale dało się już utworzyć folder i coś tam w nim zapisać. Tak czy siak prace nad pełnym darmowym Tomato dla tego urządzenia trwają i co rusz będę dodawał nowe rzeczy, bo zostały mi jeszcze GPIO, VLANY ale to pózniej.
Pobierajcie:
http://chomikuj.pl/lgolebio/Dokumenty/tomato-RAF-ND.trx |
|
|
|
arteq |
Dodano 27-11-2009 19:59
|

VIP

Posty: 1918
Dołączył: 04/03/2006 17:42
|
good job :]
Pozdrawiam, Artur
http://digi-led.pl Elementy elektroniczne | urz?dzenia sieciowe | us?ugi informatyczne
http://openwrt.pl - Polskie Centrum OpenWrt
o p e n (your) r o u t e r . p l
|
|
|
|
MariuszNM |
Dodano 27-11-2009 21:50
|

User

Posty: 167
Dołączył: 18/11/2009 07:28
|
VLAN i LED to stosunkowo prosta sprawa.
Led'y można sobie uruchomić bezpośrednio z konsoli bez kompilacji - przykładowo wpisując
nvram set led_override=1
nvram set led_diag=0
nvram set led_dmz=2
nvram commit
reboot
spowoduje to że led oznaczona jako "connected" będzie działała jako diagnostyczna a led WPS jako znacznik "dmz". Aby sprawdzić działanie z lini komend można nimi sterować np.
sprawa z tym sprzętem jest dziwna - bo sterowanie led'ami jest zanegowane czyli "on" powoduje zgaszenie a "off" zapalenie. |
|
|
|
lgolebio |
Dodano 27-11-2009 22:05
|

User

Posty: 145
Dołączył: 08/06/2006 12:35
|
Ale takie rozwiązanie jest nieeleganckie, dlatego nie spocznę dopuki nie zrobię pełnego wsparcia ot of the box. Jestem uparty i choćbym miał tysiąc manuali przetrząsnąć zrobię to. I napewno nie zrobię tak jak w przypadku cybearteamu, żadnej blokady nie będzie. |
|
|
|
MariuszNM |
Dodano 27-11-2009 22:28
|

User

Posty: 167
Dołączył: 18/11/2009 07:28
|
Do tego nie trzeba tysiąca manuali - wystarczy postudiować kod.
W plikach
ruter/shared/shared.h trzeba dołożyć nowy model urzadzenia np. MODEL_WL1600GL.
w pliku ruter/shared/id.c w funkcji "get_model" odkomentować i zmienić fragment
if (hw == HW_BCM5354G) {
if (nvram_match("boardrev", "0x11" ) ) {
return MODEL_WL1600GL;
}
}
i już mamy identyfikację urządzenia
VLAN'y wstawiamy w funkcji check_bootnv w pliku ruter/rc/init.c
a led'y definiuje się ruter/shared/led.c |
|
|
|
lgolebio |
Dodano 27-11-2009 22:40
|

User

Posty: 145
Dołączył: 08/06/2006 12:35
|
@MariuszNM, masz u mnie piwo. Wielkie dzięki, bardzo mi pomogłeś.
W tej chwili pracuję już nie nad victekiem tylko nad oryginalnym kodem tomato. Jak się uda to jeszcze w tym tygodniu wszystko potestuję i umieszczę gotowy link do pobrania z częsciowym supportem dla urządzenia. Bo jeszcze wypadałoby przycisk reset zmusić do pracy.
Edytowany przez lgolebio dnia 27-11-2009 22:46
|
|
|
|
obsy |
Dodano 27-11-2009 23:20
|

VIP

Posty: 5775
Dołączył: 31/10/2006 20:06
|
@lgolebio: wyślij do Johna poprawki. W ostatnim tomato są info o nowych ruterach, może i do ovisa doda standardowo.
|
|
|
|
MariuszNM |
Dodano 27-11-2009 23:29
|

User

Posty: 167
Dołączył: 18/11/2009 07:28
|
przyciski definiujesz w pliku /router/rc/buttons.c
a dla led'ów jak będziesz definiował tablicę w pliku router/shared/led.c to numery portów gpio mają być ujemne wtedy będą zapalały się poprawnie.
Powodzenia |
|
|
|
MariuszNM |
Dodano 28-11-2009 00:47
|

User

Posty: 167
Dołączył: 18/11/2009 07:28
|
Po przestudiowaniu kodu vikteka na WL-1600GL można z poziomu konsoli uruchomić poprawnie ledy i przyciski wpisując następujący kod:
nvram set led_override=1
nvram set led_diag=128
nvram set led_dmz=133
nvram set led_wlan=129
nvram set led_aoss=130
nvram set btn_override=1
nvram set btn_reset=131
nvram set btn_ses=132
nvram commit
reboot
po wpisaniu tego mamy:
led "connected" to dioda diagnostyczna
led "WLAN" to wlan
led "Power" to DMZ
led "WPS" to aoss
przyciski:
reset to reset a WPS to przycisk do uruchamiania komen
standardowo przycisk WPS naciskamy i liczymy mignięcie diody diagnostycznej:
0-2 włączmy/wyłączamy radio
4-6 reboot
8-10 shutdown
12-14 komenda z pod zmiennej sesx_script
Edytowany przez MariuszNM dnia 28-11-2009 08:51
|
|
|
|
lgolebio |
Dodano 28-11-2009 03:25
|

User

Posty: 145
Dołączył: 08/06/2006 12:35
|
Zawisłem w jednym momencie:
Cytat
make[2]: Wejście do katalogu `/home/lukasz/Pulpit/tomato/release/src/router/rc'
[rc] CC rc
rc.o  .data.rel.ro+0xac): undefined reference to `led_main'
collect2: ld returned 1 exit status
make[2]: *** [rc] Błąd 1
make[2]: Opuszczenie katalogu `/home/lukasz/Pulpit/tomato/release/src/router/rc'
make[1]: *** [rc] Błąd 2
make[1]: Opuszczenie katalogu `/home/lukasz/Pulpit/tomato/release/src/router'
make: *** [all] Błąd 2
Plik led.c wygląda tak
Cytat
/*
Tomato Firmware
Copyright (C) 2006-2009 Jonathan Zarate
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include "utils.h"
#include "shared.h"
const char *led_names[] = { "wlan", "diag", "white", "amber", "dmz", "aoss", "bridge", "mystery" };
// --- move begin ---
#if TOMATO_N
#else
void gpio_write(uint32_t bit, int en)
{
int f;
uint32_t r;
if ((f = open("/dev/gpio/control", O_RDWR)) < 0) return;
read(f, &r, sizeof(r));
r &= ~bit;
write(f, &r, sizeof(r));
close(f);
if ((f = open("/dev/gpio/outen", O_RDWR)) < 0) return;
read(f, &r, sizeof(r));
r |= bit;
write(f, &r, sizeof(r));
close(f);
if ((f = open("/dev/gpio/out", O_RDWR)) < 0) return;
read(f, &r, sizeof(r));
if (en) r |= bit;
else r &= ~bit;
write(f, &r, sizeof(r));
close(f);
}
uint32_t gpio_read(void)
{
int f;
uint32_t r;
if ((f = open("/dev/gpio/in", O_RDONLY)) < 0) return ~0;
if (read(f, &r, sizeof(r)) != sizeof(r)) r = ~0;
close(f);
return r;
}
#endif
int nvget_gpio(const char *name, int *gpio, int *inv)
{
char *p;
uint32_t n;
if (((p = nvram_get(name)) != NULL) && (*p)) {
n = strtoul(p, NULL, 0);
if ((n & 0xFFFFFF70) == 0) {
*gpio = (n & 15);
*inv = ((n & 0x80) != 0);
return 1;
}
}
return 0;
}
// --- move end ---
int led(int which, int mode)
{
// WLAN DIAG WHITE AMBER DMZ AOSS BRIDG MYST
// ----- ----- ----- ----- ----- ----- ----- -----
static int wrt54g[] = { 0, 1, 2, 3, 7, 255, 255, 255 };
static int wrtsl[] = { 255, 1, 5, 7, 0, 255, 255, 255 };
static int whrg54[] = { 2, 7, 255, 255, 255, 6, 1, 3 };
static int wbr2g54[] = { 255, -1, 255, 255, 255, -6, 255, 255 };
static int wzrg54[] = { 2, 7, 255, 255, 255, 6, 255, 255 };
static int wr850g1[] = { 7, 3, 255, 255, 255, 255, 255, 255 };
static int wr850g2[] = { 0, 1, 255, 255, 255, 255, 255, 255 };
static int wtr54gs[] = { 1, -1, 255, 255, 255, 255, 255, 255 };
static int wl1600gl[] = { -1, -0, 255, 255, -5, -2, 255, 255 };
char s[16];
int n;
int b;
if ((which < 0) || (which >= LED_COUNT)) return 0;
switch (nvram_match("led_override", "1") ? MODEL_UNKNOWN : get_model()) {
case MODEL_WRT54G:
if (check_hw_type() == HW_BCM4702) {
// G v1.x
if ((which != LED_DIAG) && (which != LED_DMZ)) return 0;
if (mode != LED_PROBE) {
if (f_read_string("/proc/sys/diag", s, sizeof(s)) > 0) {
b = (which == LED_DMZ) ? 1 : 4;
n = atoi(s);
sprintf(s, "%u", mode ? (n | b) : (n & ~b));
f_write_string("/proc/sys/diag", s, 0, 0);
}
}
return 1;
}
switch (which) {
case LED_AMBER:
case LED_WHITE:
if (!supports(SUP_WHAM_LED)) return 0;
break;
}
b = wrt54g[which];
break;
case MODEL_WTR54GS:
b = wtr54gs[which];
break;
case MODEL_WRTSL54GS:
b = wrtsl[which];
break;
case MODEL_WHRG54S:
case MODEL_WHRHPG54:
case MODEL_WHRG125:
b = whrg54[which];
break;
case MODEL_WZRG54:
case MODEL_WZRHPG54:
case MODEL_WZRRSG54:
case MODEL_WZRRSG54HP:
case MODEL_WVRG54NF:
case MODEL_WHR2A54G54:
case MODEL_WHR3AG54:
case MODEL_WL1600GL:
b = wl1600gl[which];
break;
case MODEL_WZRG108:
b = wzrg54[which];
break;
/*
case MODEL_WHR2A54G54:
if (which != LED_DIAG) return 0;
b = 7;
break;
*/
case MODEL_WBRG54:
if (which != LED_DIAG) return 0;
b = 7;
break;
case MODEL_WBR2G54:
b = wbr2g54[which];
break;
case MODEL_WR850GV1:
b = wr850g1[which];
break;
case MODEL_WR850GV2:
case MODEL_WR100:
b = wr850g2[which];
break;
case MODEL_WL500GP:
if (which != LED_DIAG) return 0;
b = -1; // power light
break;
/*
case MODEL_RT390W:
break;
*/
case MODEL_MN700:
if (which != LED_DIAG) return 0;
b = 6;
break;
default:
sprintf(s, "led_%s", led_names[which]);
if (nvget_gpio(s, &b, &n)) {
if ((mode != LED_PROBE) && (n)) mode = !mode;
goto SET;
}
return 0;
}
if (b < 0) {
if (b == -99) b = 1; // -0 substitute
else b = -b;
}
else if (mode != LED_PROBE) {
mode = !mode;
}
SET:
if (b < 16) {
if (mode != LED_PROBE) {
gpio_write(1 << b, mode);
}
return 1;
}
return 0;
}
|
|
|
|
MariuszNM |
Dodano 28-11-2009 07:02
|

User

Posty: 167
Dołączył: 18/11/2009 07:28
|
ten błąd masz nie z tego pliku ty pokazujesz /router/shared/led.c a linker wyskoczył Ci w /router/rc/led.c
Najprawdopodobniej nie masz tego pliku albo to jest probelm Makefile'a bo to jest błąd linkera.
Spróbuj zrobić przed kompilacją "make clean" lub "make distclean".
Edytowany przez MariuszNM dnia 28-11-2009 07:25
|
|
|
|
MariuszNM |
Dodano 28-11-2009 07:16
|

User

Posty: 167
Dołączył: 18/11/2009 07:28
|
Inny problem, który widze, to w tablicy definicji led nie możesz mieć wartości -0, powinieneś wstawić -99. I porawić błąd w źródłach tomato we fragmencie
if (b < 0) {
if (b == -99) b = 0; // -0 substitute #tutaj orginalnie było 1
else b = -b;
}
else if (mode != LED_PROBE) {
mode = !mode;
} |
|
|
|
lgolebio |
Dodano 28-11-2009 09:41
|

User

Posty: 145
Dołączył: 08/06/2006 12:35
|
No proszę nie spodziewałem sie takiego postępu prac. Pierwsze moje tomato z pełnym wsparciem dla tego urządzenia jest już gotowe, na szybko przetestowane więc zapewne ma i wręcz powinno mieć błędy, ale spoko, zgłaszajcie problemy i walcie jak w dym !!
Tomato 1.25
-działa JFFS (zapis, odczyt) około 636kB
-działają poprawnie diody
-vlany są już ustawione out of the box
-działa przycisk reset
OGROMNE podziękowania należą się @MariuszNM, bez jego pomocy nic bym nie wskurał !!!
ZASYSAJCIE a @obsy'ego proszę u umieszczenie go w dziale download ale jako wersję beta.
http://chomikuj.pl/lgolebio/Dokumenty/tomato-ND-1_25.trx
Edytowany przez lgolebio dnia 30-11-2009 18:26
|
|
|
|
obsy |
Dodano 28-11-2009 09:48
|

VIP

Posty: 5775
Dołączył: 31/10/2006 20:06
|
Szczerze - jeszcze za wcześnie na to. Poinstalują to ludziki a potem będą krzyczeć że coś nie działa. Wytestujcie to, sprawdźcie - i zrób wersję 1.26 z tego. Jak będzie gotowiec to wstawimy.
|
|
|
|
lgolebio |
Dodano 28-11-2009 09:50
|

User

Posty: 145
Dołączył: 08/06/2006 12:35
|
Zgoda |
|
|
|
obsy |
Dodano 28-11-2009 09:55
|

VIP

Posty: 5775
Dołączył: 31/10/2006 20:06
|
Testujcie i podeślijcie źródła autorowi. Wtedy przy następnej wersji będzie też to dostępne w innych modach
|
|
|
|
MariuszNM |
Dodano 28-11-2009 10:16
|

User

Posty: 167
Dołączył: 18/11/2009 07:28
|
@lgolebio -jeżeli nie zrobi Ci to problemu, to wystaw gdzieś wybrane pliki źródłowe, które zmieniłeś. Z chęcią je przejrze i może czegoś się doszukam. Tylko wten sposób mogę coś posprawdzać bo do poniedziałku nie mam dostępu do tego ruterka. |
|
|
|
kobrawerde |
Dodano 28-11-2009 10:23
|

Power User

Posty: 361
Dołączył: 07/05/2008 20:07
|
Fajnie by było żeby wszystkie poprawki były też na sofcie Victek-a :-) z ND ... jestem przyzwyczajony do jedo superowego Quos limit-era :-) w wersji oryginalnej Tomato raczej go nie znajde :-)....ale i tak wielkie dzięki bo jak widać niedługo wszystko będzie OK ! |
|
|