Optware
From WIKI-WLAN
Je skupek dodatnih programov za Asus brezžične usmerjevalnike. Dodatni programi omogočajo dodatne zmožnosti usmerjevalnika. Optware paketi se namestijo na dodatni pomnilni medij, zato Optware podpirajo predvsem usmerjevalniki, ki imajo možnost USB priklopa. To so:
- WL-500g
- WL-500g Deluxe
- WL-500g Premium
- WL-HDD
Zunanja medija na katerega se lahko namesti Optware sta predvsem ATA disk v USB ohišju in USB ključek. Potreben pogoj za namestitev Optware je Oleg firmware, ki je na voljo na strani http://wl500g.dyndns.org
Celoten spisek delujočih programov se nahaja na http://ipkg.nslu2-linux.org/feeds/unslung/wl500g/ . Tako je možno namestiti najraznovrstnejše in največj številom dodatnih paketov, katere lahko namestimo na USB ključek ali še bolje na zunanji USB disk poljubne velikosti. Vse to lahko namestimo z enostavnim ukazom
ipkg install paket
Vsebina |
Podpora Optware za dd-wrt
Zadnje verzije DD-WRT V2 podpirajo Optware. Popreje je potrebno zagotoviti dovolj velik prostor na /jffs. Primer namestitve na WRT54GS:
~ # mkdir /jffs/opt ~ # mount -o bind /jffs/opt /opt ~ # mkdir /opt/etc ~ # vi /opt/etc/ipkg.conf src unslung http://www.wlan-sat.com/boleo/optware/dd-wrt dest root /
~ # export IPKG_CONF_DIR=/opt/etc ~ # ipkg update Downloading http://www.wlan-sat.com/boleo/optware/dd-wrt/Packages ... Connecting to www.wlan-sat.com[212.18.63.81]:80 Packages 100% |*************************************************************| 136 KB 00:00:00 ETA Done. Updated list of available packages in //jffs/usr/lib/ipkg/lists/unslung
~ # ipkg install uclibc Downloading http://www.wlan-sat.com/boleo/optware/dd-wrt/uclibc_0.9.28-1_mipsel.ipk ... Connecting to www.wlan-sat.com[212.18.63.81]:80 uclibc_0.9.28-1_mips 100% |*************************************************************| 440 KB 00:00:00 ETA Done. Unpacking uclibc...Done. Configuring uclibc...Updating /opt/etc/ld-opt.so.cache /opt/sbin/ldconfig: can't resolve symbol '__ctype_b_loc' Done.
export PATH=/opt/bin:/opt/sbin:$PATH
Namestitev Torrent klientov
~ # ipkg install torrent Downloading http://www.wlan-sat.com/boleo/optware/dd-wrt/libcurl_7.15.4-1_mipsel.ipk ... Connecting to www.wlan-sat.com[212.18.63.81]:80 libcurl_7.15.4-1_mip 100% |*************************************************************| 518 KB 00:00:00 ETA Done. Unpacking libcurl...Done. Configuring libcurl...Done. Downloading http://www.wlan-sat.com/boleo/optware/dd-wrt/openssl_0.9.7d-4_mipsel.ipk ... Connecting to www.wlan-sat.com[212.18.63.81]:80 openssl_0.9.7d-4_mip 100% |*************************************************************| 935 KB 00:00:00 ETA Done. Unpacking openssl...Done. Configuring openssl...Done. Downloading http://www.wlan-sat.com/boleo/optware/dd-wrt/zlib_1.2.3-1_mipsel.ipk ... Connecting to www.wlan-sat.com[212.18.63.81]:80 zlib_1.2.3-1_mipsel. 100% |*************************************************************| 60760 00:00:00 ETA Done. Unpacking zlib...Done. Configuring zlib...Done. Downloading http://www.wlan-sat.com/boleo/optware/dd-wrt/libbt_1.05-4_mipsel.ipk ... Connecting to www.wlan-sat.com[212.18.63.81]:80 libbt_1.05-4_mipsel. 100% |*************************************************************| 90832 00:00:00 ETA Done. Unpacking libbt...Done. Configuring libbt...Done. Downloading http://www.wlan-sat.com/boleo/optware/dd-wrt/torrent_1.4-4_mipsel.ipk ... Connecting to www.wlan-sat.com[212.18.63.81]:80 torrent_1.4-4_mipsel 100% |*************************************************************| 9851 --:--:-- ETA Done. Unpacking torrent...Done. Configuring torrent...Please note that /opt/etc/init.d/S80busybox_httpd is installed for running CGI interface at http://localhost:8008/cgi-bin/torrent.cgi Done.
~ # ipkg install enhanced-ctorrent Downloading http://www.wlan-sat.com/boleo/optware/dd-wrt/libuclibc++_0.2.0-3_mipsel.ipk ... Connecting to www.wlan-sat.com[212.18.63.81]:80 libuclibc++_0.2.0-3_ 100% |*************************************************************| 62035 00:00:00 ETA libuclibc++_0.2.0-3_ 100% |*************************************************************| 62035 00:00:00 ETA Done. Unpacking libuclibc++...Done. Configuring libuclibc++...Done.
Downloading http://www.wlan-sat.com/boleo/optware/dd-wrt/libstdc++_0.1.12-3_mipsel.ipk ... Connecting to www.wlan-sat.com[212.18.63.81]:80 libstdc++_0.1.12-3_m 100% |*************************************************************| 661 --:--:-- ETA Done. Unpacking libstdc++...Done. Configuring libstdc++...Done. Downloading http://www.wlan-sat.com/boleo/optware/dd-wrt/enhanced-ctorrent_dnh2-3_mipsel.ipk ... Connecting to www.wlan-sat.com[212.18.63.81]:80 enhanced-ctorrent_dn 100% |*************************************************************| 74675 00:00:00 ETA Done. Unpacking enhanced-ctorrent...Done. Configuring enhanced-ctorrent...Done.
Namestitev ftp klienta
~ # ipkg install ncftp Downloading http://www.wlan-sat.com/boleo/optware/dd-wrt/ncftp_3.1.9-3_mipsel.ipk ... Connecting to www.wlan-sat.com[212.18.63.81]:80 ncftp_3.1.9-3_mipsel 100% |*************************************************************| 479 KB 00:00:00 ETA Done. Unpacking ncftp...Done. Configuring ncftp...Done. ~ # ncftp ftp.si.debian.org NcFTP 3.1.9 (Mar 24, 2005) by Mike Gleason (http://www.NcFTP.com/contact/). Connecting to 164.8.6.249... CAMTP Debian mirror [ftp.si.debian.org] Logging in... Anonymous access granted, restrictions apply. Logged in to ftp.si.debian.org. ncftp / > ls backports/ debian-cd/ debian-sl/ openoffice/ debian/ debian-non-US/ favicon.ico robots.txt ncftp / > bye You have not saved a bookmark for this site. Would you like to save a bookmark to: ftp://ftp.si.debian.org Save? (yes/no) yes Enter a name for this bookmark, or hit enter for "si": debian Bookmark "debian" saved.
Dodajanje novih Optware paketov (samo za razvijalce)
Anonimno lahko dobimo celoten Optware zalogovnik z ukazom
svn co http://svn.nslu2-linux.org/svnroot/optware/trunk optware
Pred gradnjo paketov v Optware je potrebno nastaviti ciljno arhitekturo. Da se ne tipka stalno make OPTWARE_TARGET=wl500g se to spremenljivko izvozi kar v ~/.profile z ukazom
export OPTWARE_TARGET=wl500g
Za prevajanje je potrebno imeti celotno orodjarno, ki se dobi na [1] Kaj vse je še potrebno piše v navodilih na strani Optware Wl500g Build
Za primer kako se doda nov paket bo pokazano na programu Palantir. Premaknemo se v optware imenik in naredimo osnovno make/palantir.mk datoteko iz vzorčne datoteke make/template.mk z ukazom
$ cd optware/trunk $ make make/palantir.mk
Popravimo pot v make/palantir.mk do download vira.
PALANTIR_SITE=http://www.fastpath.it/products/palantir/pub PALANTIR_VERSION=2.6 PALANTIR_SOURCE=palantir-$(PALANTIR_VERSION).tgz PALANTIR_DIR=palantir-$(PALANTIR_VERSION) PALANTIR_UNZIP=zcat PALANTIR_MAINTAINER=NSLU2 Linux <nslu2-linux@yahoogroups.com> PALANTIR_DESCRIPTION=Multichannel interactive streaming solution PALANTIR_SECTION=net PALANTIR_PRIORITY=optional
Poizkusimo če deluje pobiranje paketa v imenik download z ukazom
$ make palantir-source
Program je potrebno odpakirati in nastaviti za prevajanje, kar izvedemo z ukazom
$ make palantir-unpack
Če programa ne poznamo in ne vemo kako se gradi, bo potrebno zato večkrat popraviti sekckijo .configured. Običajno je potrebno ob tem dodati še kakšne popravke. Toda najprej komentiramo sekcijo popravkov
# PALANTIR_PATCHES=$(PALANTIR_SOURCE_DIR)/configure.patch
in odvisnih paketov
$(PALANTIR_BUILD_DIR)/.configured: $(DL_DIR)/$(PALANTIR_SOURCE) $(PALANTIR_PATCHES) make/palantir.mk # $(MAKE) <bar>-stage <baz>-stage
in poizkusimo
$ make palantir-unpack
kar pa ne uspe v celoti. Ker se je paket ob tem pravilno odpakiral, se premaknemo v njegov imenik z
$ cd builds/palantir
in si ogledamo, preberemo kako ga je potrebno zgraditi.
$ ls clients/ server/ $ cd server $ less INSTALL
kjer piše
Building the Palantir server from source ======================================== For the impatient: $ make $ su # make install Everyone else, please read on.
Ker palantir ni sofisticiran program ne rabi konfiguracije, zato lahko pobrišeno celotno sekcijo za autoconf v .configured in pri tem mora make palantir-unpack uspeti. Kdor bi bral naprej, bi ugotovil, da palantir za delo potrebuje knjižnico libjpeg, kar je potrebno vpisati v
PALANTIR_DEPENDS=libjpeg
in
$(PALANTIR_BUILD_DIR)/.configured: $(DL_DIR)/$(PALANTIR_SOURCE) $(PALANTIR_PATCHES) make/palantir.mk
$(MAKE) libjpeg-stage
Nadaljujemo z gradnjo paketa z
$ make palantir
s tem da popravimo sekcijo .built v naslednjo obliko
#
# This builds the actual binary.
#
$(PALANTIR_BUILD_DIR)/.built: $(PALANTIR_BUILD_DIR)/.configured
rm -f $(PALANTIR_BUILD_DIR)/.built
$(TARGET_CONFIGURE_OPTS) \
CPPFLAGS="$(STAGING_CPPFLAGS) $(PALANTIR_CPPFLAGS)" \
LDFLAGS="$(STAGING_LDFLAGS) $(PALANTIR_LDFLAGS)" \
$(MAKE) -C $(PALANTIR_BUILD_DIR)/server
touch $(PALANTIR_BUILD_DIR)/.built
Izkaže pa se, da build/palantir/server/Makefile ni predviden za navzkrižno prevajanje in je zato potrebno popravljanje Makefile. Vajo ponovimo z brisanjem, ponovnim odpakiranjem in popravljanjem server/Makefile.
$ make palantir-dirclean $ make palantir-unpack $ vi build/palantir/server/Makefile
da se požene pravilen prevajalnik in ostala orodja podana z $(TARGET_CONFIGURE_OPTS) ki vsebuje naslednje spremenljivke:
AR=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-ar AS=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-as LD=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-ld NM=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-nm CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc CPP="/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc -E" GCC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc CXX=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-g++ RANLIB=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-ranlib STRIP=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-strip
Popravki Makefile so naslednji:
BASE_DIR= /opt OWNER= root # location of default config file CONFIG_FILE= $(BASE_DIR)/etc/palantir.conf # location of default log file LOG_FILE= $(BASE_DIR)/var/log/palantir CFLAGS= $(CPPFLAGS) -Wall -D_REENTRANT -O3 -g #CC= gcc
Pripravimo še unified patch z ukazi
$ cd builds $ mkdir ../sources/palantir $ tar xzf ../downloads/palantir-2.6.tgz $ diff -u palantir-2.6/server/Makefile palantir/server/Makefile > ../sources/palantir/Makefile.patch
Sekcija popravkov se v make/palantir.mk zdaj glasi
# # PALANTIR_PATCHES should list any patches, in the the order in # which they should be applied to the source code. # PALANTIR_PATCHES=$(PALANTIR_SOURCE_DIR)/Makefile.patch
s tem da je potrebno patch -p0 popraviti na patch -p1. Sledi
$ make palantir-dirclean $ make palantir
In morebitno popravljanje dokler se paket pravilno ne prevede. Hiter pregled vsebine server/Makefile pokaže, da je gradnja za MIPSEL že predvidena z ukazom make TAGRET=mips kar bi mogoče bilo v redu, vendar je Optware predviden tudi za druge arhitekture in zato uporaba te tarče ni primerna za splošno uporabo paketa.
Vse skupaj je potrebno še pripraviti za pakiranje. Običajno se namestijo programi, konfiguracija in man page z navodili. Če taka namestitev ni predvidena v Makefile, lahko kopiramo v -ipk imenik tudi ročno ob gradnji paketa. Palantir je že tak program, da ja lažje ročno, kot pa popravljanje Makefile. Pogled v sekcijo install datotek server/Makefile pa olajša delo pri gradnji IPK datoteke. Lahko pa tudi dopatchamo Makefile:install s spremenljivko $(DESTDIR) in s tem skrajšamo make/palantir.mk
Končni paket se zgradi z ukazom
$ make palantir-ipk
Na koncu še preverimo ali je paketek sestavljen po pravilih
perl -w scripts/optware-check-package.pl --target=wl500g --thorough --verbose builds/palantir-2.6-ipk
Zgrajeni paket prekopiramo na usmerjevalnik in ga namestimo z ukazom
$ ipkg install palantir_2.6-1_mipsel.ipk
Če vse deluje, potem je lepo in prav da rešitev ponudite tudi ostalim. Za to je potrebno imeti developer access certificate na NSLU2 subversion serverju. Pregled SVN dogodkov se spremlja preko TRAC na http://trac.nslu2-linux.org/
Za pošiljanje našega dela se uporabi naslednje ukaze
$ svn add make/palantir.mk $ svn add sources/palantir
Popravi se še master Makefile in doda paket med testne ali pa v takojšnjo obravnavo, ki se spremlja na NUDI stroju za navzkrižno prevajanje.
$ svn commit -m "optware: palantir 2.6 initial import" Makefile make/palantir.mk sources/palantir Sending Makefile Adding make/palantir.mk Adding sources/palantir Adding sources/palantir/Makefile.patch Transmitting file data ... Committed revision 3532.
Spremljati pa je potrebno cron na NUDI autobuildu na možne napake pri prevajanju za druge arhitekture in ustrezno popraviti palantir.mk s tem da se ob popravku poveča tudi
PALANTIR_IPK_VERSION=1
Vendar le takrat, ko se vsebina .ipk datoteke spremeni.
--Boleo 23:29, 30 junij 2006 (CEST)
