Własna kompilacja tomato by Shibby
|
lotrabbartol |
Dodano 18-02-2013 21:00
|
User
Posty: 61
Dołączył: 09/05/2006 16:13
|
Chciałbym skompilować własne tomato ze źródeł @Shibby-ego.
Wiem że muszę mieć linuxa, więc zainstalowałem VMWare i Ubuntu 12.04
zainstalowałem pakiet git i pobrałem źródła poleceniem
git clone git://repo.or.cz/tomato.git w katalogu domowym.
Jeśli ktokolwiek będzie chętny to proszę o porady co dalej powinienem zrobić
Chciałbym skompilować tomato z wybranymi przeze mnie pakietami, a nie narzuconymi.
Jakieś podstawy linuxa mam, ale o kompilowaniu nie mam pojęcia.
Co powinienem zainstalować jeszcze oprócz gita? |
|
|
|
branetre |
Dodano 18-02-2013 21:05
|
Moderator
Posty: 816
Dołączył: 15/01/2011 10:10
|
http://tomatousb.org/tut:how-to-rebui...o-software |
|
|
|
shibby |
Dodano 19-02-2013 08:29
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
kiedys zaczałem nawet pisać o tym tutka ale czasu brak by go dokończyć. W dużym skrócie:
1) instalujesz paczki
Cytat sudo apt-get install build-essential automake autoconf libtool pkg-config libcurl4-openssl-dev intltool libxml2-dev libgtk2.0-dev libnotify-dev libglib2.0-dev libevent-dev git-core libncurses5 libncurses5-dev bison flex
2) wchodzisz do katalogu tool i robisz to co pisze w README
3) wchodzisz do katalogu src/ jezeli chcesz skompilowac K24 lub do katalogu src-rt jezeli chcesz skompilowac K26 (oczywiście w drugim punkcie tez linkujesz odpowiedniego toolchaina)
4) wchodzisz do pliku Makefile i tam na dole widzisz targety. Teraz w zależności jaki chcesz firmware bazowy i pod jaki router to go odpowiednio edytujesz dopisujac lub usuwając ficzersy. Liste ficzersów masz mniej więcej po środku opisaną (zakomentowaną). Ogólnie jak przejrzysz sobie ten plik to powinienes wiedziec co i jak.
5) rozpoczyjasz kompilację make
Jest jeszcze druga opcja w ktorej to podajesz poprostu zmienne ficzersów po targecie czyli np make e UPS=y skompiluje target e (USB_VPN) dla mipsr1 plus obsługa UPSów APC.
Link który przytoczył branetre też będzie ci pomocny.
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|
|
maciej2 |
Dodano 19-02-2013 17:43
|
Super User
Posty: 418
Dołączył: 19/12/2010 16:35
|
Faktycznie przydała by się taka instrukcja dokładna + kompilacja paczek.
Może kiedyś się doczekamy |
|
|
|
lotrabbartol |
Dodano 20-02-2013 19:32
|
User
Posty: 61
Dołączył: 09/05/2006 16:13
|
@Shibby a gdzie znajde linijke o ktora juz pytalem w PM, dotyczaca wylaczenia konsoli?
Pierwsza kompilacja na wl-500gp za mna i niby wszystko dziala. Szkoda ze tak dlugo to trwa.
w katalogu src-rt w makefile przy AIO usunalem to czego niepotrzebuje i kompilowalem z litera "z" przypisana AIO.
Prawdopodobnie kompilowalo mi zbednie tez jakies pakiety lub inne pierdoly, jak moge je pominac zeby kompilowalo szybciej, tzn 1-3 plikow trx (bo mam 3 routery)
Edytowany przez lotrabbartol dnia 21-02-2013 10:17
|
|
|
|
marny |
Dodano 21-02-2013 12:05
|
User
Posty: 49
Dołączył: 22/11/2011 19:35
|
Hint: make -jx
gdzie x - liczba podprocesów.
Za: O'Reilly Linux Server Hacks, 9. Speeding Up Compiles (O'Reilly 2003), str. 18.
Hope it helps.
|
|
|
|
lotrabbartol |
Dodano 23-02-2013 10:27
|
User
Posty: 61
Dołączył: 09/05/2006 16:13
|
podczas proby kompilacji tomato z obsluga kart sd/mmc pod wrt54g pojawiaja sie bledy, czym moga byc spowodowane?
oto one:
mtd.c:115: error: expected declaration specifiers or '...' before 'mtd_info_t'
mtd.c: In function 'mtd_open':
mtd.c:125: error: 'mi' undeclared (first use in this function)
mtd.c:125: error: 'MEMGETINFO' undeclared (first use in this function)
mtd.c: In function '_unlock_erase':
mtd.c:138: error: 'mtd_info_t' undeclared (first use in this function)
mtd.c:138: error: expected '' before 'mi'
mtd.c:139: error: 'erase_info_t' undeclared (first use in this function)
mtd.c:139: error: expected '' before 'ei'
mtd.c:147: error: 'mi' undeclared (first use in this function)
mtd.c:147: error: too many arguments to function 'mtd_open'
mtd.c:150: error: 'ei' undeclared (first use in this function)
mtd.c:155: error: 'MEMUNLOCK' undeclared (first use in this function)
mtd.c:161: error: 'MEMERASE' undeclared (first use in this function)
mtd.c: In function 'mtd_write_main':
mtd.c:236: error: 'mtd_info_t' undeclared (first use in this function)
mtd.c:236: error: expected '' before 'mi'
mtd.c:237: error: 'erase_info_t' undeclared (first use in this function)
mtd.c:237: error: expected '' before 'ei'
mtd.c:412: error: 'mi' undeclared (first use in this function)
mtd.c:412: error: too many arguments to function 'mtd_open'
mtd.c:432: error: 'ei' undeclared (first use in this function)
mtd.c:501: error: 'MEMUNLOCK' undeclared (first use in this function)
mtd.c:502: error: 'MEMERASE' undeclared (first use in this function)
make[4]: *** [mtd.o] Error 1
make[4]: Leaving directory `/home/buba/tomato/release/src/router/rc'
make[3]: *** [rc] Error 2
make[3]: Leaving directory `/home/buba/tomato/release/src/router'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/buba/tomato/release/src'
make[1]: *** [bin] Error 2
make[1]: Leaving directory `/home/buba/tomato/release/src' |
|
|
|
shibby |
Dodano 23-02-2013 11:47
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
console wylaczasz w linux/linux2.6/config-base
kompilacja trwa ok 30-40min i tego nie przyśpieszysz. To dlatego mi skompilowanie wszystkich targetów zajmuje ok 2-3dni
Co do błędu mtd to prawdopodobnie uzyles zlego toolchain dla zlej wersji tomato. Musisz pamiętać by w /opt podmieniać toolchaina gdy kompilujesz K24 (src) lub K26 (src-rt).
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|
|
branetre |
Dodano 23-02-2013 19:15
|
Moderator
Posty: 816
Dołączył: 15/01/2011 10:10
|
Ssd + i2500k (4Ghz oc) + debian wheezy i kompilacja leci 6 minut |
|
|
|
shibby |
Dodano 23-02-2013 19:29
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
nie ma takiej możliwości. Ja kompiluje na Xeonie 4-core. Chyba ze tylko odświeżasz obraz czyli nie robisz make clean lub distclean wtedy on tylko przelatuje po katalogach a nie kompiluje binarek. Ja tak nie mogę robić i chyba nie musze tlumaczyc czemu Po prostu ja muszę po skompilowaniu każdego obrazu wydać komendę make clean.
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|
|
branetre |
Dodano 23-02-2013 19:42
|
Moderator
Posty: 816
Dołączył: 15/01/2011 10:10
|
No tak Robiłem zmianę i puszczałem make + zmienna ale to wszystko pod jeden branch |
|
|
|
shibby |
Dodano 23-02-2013 20:06
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
no zgadza się ale np. jak ja skompiluję soft np. AIO a za chwilę chcę VPN (na dodatek bezIPv6) to muszę zrobić make clean bo binarki będą zle skompilowane (np. taki dnsmasq będzie skompilowany z ipv6, którego teraz być nie może). Dlatego tez przed kazdą kompilacja trzeba zrobić make clean - to dobry nawyk.
Inny przykład to kompiluję np. VPN pod mipsr1 a po chwili pod r2. Jeżeli nie zrobię make clean to drugi obraz pomimo wybrania r2 będzie zly bo kernel jest już skompilowany pod r1 i nie będzie drugi raz kompilowany. Dlatego robienie clean to dobry nawyk
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|
|
lotrabbartol |
Dodano 26-02-2013 09:58
|
User
Posty: 61
Dołączył: 09/05/2006 16:13
|
no i mam problem, podczas próby kompilacji sd-vpn, jedyne co zmieniłem to w config-base dałem console=none,
mam wykonane:
ln -s ~/tomato/tools/brcm /opt/brcm
i w ~/tomato/tools/brcm oba skróty zmienione z K26/... na K24/...
make V2="-console_none" -j w
rusza ale po 5min wywala error (jaki dokładnie podam ok 17) |
|
|
|
shibby |
Dodano 26-02-2013 11:43
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
a to -j w to po co?
wykonujesz kompilację z src/ a nie src-rt/ prawda?
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|
|
lotrabbartol |
Dodano 26-02-2013 11:53
|
User
Posty: 61
Dołączył: 09/05/2006 16:13
|
tak w src uruchamiam mak dla k24, a w src-rt dla k26
a -j to z podpowiedzi kol @marny |
|
|
|
shibby |
Dodano 26-02-2013 12:06
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
to nie działa dla tomato, tylko dla openwrt/gargoyle.
dla tomato by kompilować na kilku rdzeniach zrób
export CONCURRENCY_LEVEL=4
gdzie cyfra to ilość rdzeni. I poźniej kompilacja.
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|
|
lotrabbartol |
Dodano 26-02-2013 12:12
|
User
Posty: 61
Dołączył: 09/05/2006 16:13
|
ok
a dobrze robię:
gdy chce kompilowac obraz na 2.4 to w opt/brcm skroty zmieniam z K26 na K24 i make uruchamiam bedac w katalogu /release/src ? |
|
|
|
shibby |
Dodano 26-02-2013 12:19
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
tak. Pytanie tylko jakie masz błędy. Napewno OpenVPN w GITcie jest zwalony. Skompiluj bez VPNa albo nadpisz katalog tym z tomato.groov.pl/download/k26/src/openvpn.tar.gz
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|
|
lotrabbartol |
Dodano 26-02-2013 12:30
|
User
Posty: 61
Dołączył: 09/05/2006 16:13
|
będe kompilował bez VPN bo nie jest mi potrzebny, a błędy podam jak z roboty wróce
Połączony z 26 luty 2013 13:32:10:
a bazując na SD-VPN (w) jak dodać sambe i bttorrenta?
Wystarczy do SD-VPN dopisać SAMBA3=y i BT_CLIENT=y?
podczas proby kompilacji pojawiaja sie bledy:
make[4]: Entering directory `/home/buba/tomato/release/src/router/mmc'
[mmc] CC -o mmc.o
make[4]opt/brcm24/hndtools-mipsel-linux-3.2.3/bin/mipsel-linux-gcc: Command not found
make[4]: *** [mmc.o] Error 127
make[4]: Leaving directory `/home/buba/tomato/release/src/router/mmc'
make[3]: *** [mmc] Error 2
make[3]: Leaving directory `/home/buba/tomato/release/src/router'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/buba/tomato/release/src'
make[1]: *** [bin] Error 2
make[1]: Leaving directory `/home/buba/tomato/release/src'
make: *** [w] Error 2
Edytowany przez lotrabbartol dnia 26-02-2013 16:59
|
|
|
|
shibby |
Dodano 26-02-2013 17:04
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
zacznijmy od tego ze
Cytat make[4]opt/brcm24/hndtools-mipsel-linux-3.2.3/bin/mipsel-linux-gcc: Command not found
czyli masz albo źle skopiowanie/podlinkowane binarki albo źle wyeksportowane profile (echo $PATH)
Co do samby i BT to one są zależne od USB a więc musisz przede wszystki dodać USB="USB", natomaist torrent to BTCLIENT=y
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|