Optware

From WIKI-WLAN

Jump to: navigation, search

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)

Personal tools