<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1132099239449964047</id><updated>2026-07-17T22:20:18.122-07:00</updated><category term="Fonera 2.0n"/><category term="openwrt"/><category term="howto"/><category term="optware"/><category term="JDowloader"/><category term="direct download"/><category term="nslu2-linux.org"/><category term="pyLoad"/><category term="Dropbox"/><category term="i"/><category term="megaupload"/><category term="rapidshare"/><category term="rtl8187"/><category term="wifi"/><category term="wireless"/><title type='text'>La tana dell&#39;OrSo</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bisont87.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://bisont87.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>OrSo</name><uri>http://www.blogger.com/profile/13409084918320180361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1132099239449964047.post-2700694332549945182</id><published>2011-07-30T11:59:00.000-07:00</published><updated>2011-07-30T12:08:13.197-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="i"/><category scheme="http://www.blogger.com/atom/ns#" term="openwrt"/><category scheme="http://www.blogger.com/atom/ns#" term="rtl8187"/><category scheme="http://www.blogger.com/atom/ns#" term="wifi"/><category scheme="http://www.blogger.com/atom/ns#" term="wireless"/><title type='text'>Repeater rtl8187 TL-WR1043ND con openwrt</title><content type='html'>Sono riuscito a configurare la famigerata Alfa awus036h in WAN sul mio TP-link TL-WR1043ND con Openwrt Backfire 10.03.1-rc4.&lt;br /&gt;
L&#39;awus036h è un adattore wifi usb con un&#39;ottima sensibilità in ricezione e una potenza in trasmissione con minimo di 500mw (ne hanno fatte altre versioni più potenti). Ciò significa che sente e si fa sentire dove altri non possono.&lt;br /&gt;
&lt;br /&gt;
La configurazione seguente dovrebbe permettere al router di usare l&#39;adattatore lato WAN e ripetere il segnale lato LAN con il proprio modulo wifi e/o via ethernet.&lt;br /&gt;
&lt;br /&gt;
Installare i moduli necessari&lt;br /&gt;
&lt;blockquote&gt;opkg update&lt;br /&gt;
opkg install kmod-rtl8187 kmod-usb-core&lt;/blockquote&gt;&lt;br /&gt;
Aggiungere a &lt;br /&gt;
&lt;blockquote&gt;vi /etc/config/wireless&lt;/blockquote&gt;le seguenti righe&lt;br /&gt;
&lt;blockquote&gt;config &#39;wifi-device&#39; &#39;radio1&#39;&lt;br /&gt;
option &#39;type&#39; &#39;mac80211&#39;&lt;br /&gt;
option &#39;macaddr&#39; &#39;MAC:DEL:VOSTRO:ADATTATORE:USB&#39;&lt;br /&gt;
option &#39;disabled&#39; &#39;0&#39;&lt;br /&gt;
option &#39;hwmode&#39; &#39;11g&#39;&lt;br /&gt;
option &#39;channel&#39; &#39;06&#39;&lt;br /&gt;
&lt;br /&gt;
config &#39;wifi-iface&#39;&lt;br /&gt;
option &#39;device&#39; &#39;radio1&#39;&lt;br /&gt;
option &#39;network&#39; &#39;wan&#39;&lt;br /&gt;
option &quot;mode&quot; &quot;sta&quot;&lt;/blockquote&gt;&lt;br /&gt;
dopodichè dovrebbe bastare riavviare e sulla gui nella sezione wireless dovreste trovare due sezioni, una per il wifi interno al router e uno per l&#39;alfa (radio1). Si possono sempre distinguere dal MAC address.&lt;br /&gt;
&lt;br /&gt;
Ho scritto tutto a braccio e senza poter verificare passo-passo, ma non dovrebbero esserci problemi. Tempo fa il sistema non riusciva a caricare i driver dell&#39;alfa ma poi installando usb-core ho risolto. Se avete problemi provate prima a installare i moduli necessari al supporto della usb.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;kmod-usb-core kmod-usb-ohci kmod-usb-storage kmod-usb2&lt;/blockquote&gt;&lt;br /&gt;
Fonti: &lt;a href=&quot;http://wiki.openwrt.org/&quot;&gt;http://wiki.openwrt.org&lt;/a&gt;&lt;br /&gt;
       &lt;a href=&quot;http://www.wifi-ita.com/&quot;&gt;http://www.wifi-ita.com&lt;/a&gt; Il consiglio all&#39;acquisto del TL-WR1043ND l&#39;ho trovato lì ed è anche stata la base di partenza della mia esperienza nel wifi e openwrt.</content><link rel='replies' type='application/atom+xml' href='http://bisont87.blogspot.com/feeds/2700694332549945182/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://bisont87.blogspot.com/2011/07/repeater-rtl8187-tl-wr1043nd-con.html#comment-form' title='21 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default/2700694332549945182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default/2700694332549945182'/><link rel='alternate' type='text/html' href='http://bisont87.blogspot.com/2011/07/repeater-rtl8187-tl-wr1043nd-con.html' title='Repeater rtl8187 TL-WR1043ND con openwrt'/><author><name>OrSo</name><uri>http://www.blogger.com/profile/13409084918320180361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>21</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1132099239449964047.post-2008419696063839908</id><published>2011-04-29T13:42:00.000-07:00</published><updated>2011-05-02T12:03:16.980-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Dropbox"/><category scheme="http://www.blogger.com/atom/ns#" term="Fonera 2.0n"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="nslu2-linux.org"/><category scheme="http://www.blogger.com/atom/ns#" term="openwrt"/><category scheme="http://www.blogger.com/atom/ns#" term="optware"/><title type='text'>Dropbox Uploader dalla fonera 2.0n e openwrt</title><content type='html'>Sulla pagina wiki degli addons di dropboxce ne sono alcuni teroicamente compatibili con qualsiasi sistema, si può usare il uno script in bash, php o python sfruttando la pagina web per l&#39;upload oppure utilizzare il protocollo webDAV. Tutte le soluzioni però limitano l&#39;upload a file di dimensione inferiore ai 300MB, condizione dettata da Dropbox per chi non usa la loro applicazione (disponibile solo per x86). &lt;br /&gt;
&lt;br /&gt;
Lo script in bash + curl non ne ha voluto sapere di funzionare. All&#39;apparenza va tutto a buon fine ma alla richiesta della pagina per l&#39;uploading riceve errore 500 (su ubuntu lo script funziona).&lt;br /&gt;
&lt;br /&gt;
L&#39;uploader in python invece sembra funzionare correttamente ed molto semplice da usare. L&#39;unica dipendenza mancante sul repo di nslu2-linux.orgè il modulo per python mechanize. facilemente installabile se python è ben configurato.&lt;br /&gt;
Dopo avere installato &lt;a href=&quot;http://bisont87.blogspot.com/2011/04/repository-optware-sulla-fonera-20n-v2.html&quot;&gt;ipkg-opt&lt;/a&gt; sulla fonera basta seguire questi pochi passaggi:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;ipkg install py25-setuptools&lt;br /&gt;
easy_install-2.5 mechanize&lt;/blockquote&gt;&lt;br /&gt;
Scarichiamo e proviamo il tutto ;P &lt;br /&gt;
&lt;blockquote&gt;cd /tmp/mounts/Disc-A1/&lt;br /&gt;
wget http://download.github.com/jncraton-PythonDropboxUploader-b037ca1.tar.gz&lt;br /&gt;
tar zxvf jncraton-PythonDropboxUploader-b037ca1.tar.gz&lt;br /&gt;
mv jncraton-PythonDropboxUploader-b037ca1/ PythonDropboxUploader&lt;br /&gt;
cd /tmp/mounts/Disc-A1/PythonDropboxUploader/src/&lt;br /&gt;
python example.py&lt;/blockquote&gt;&lt;br /&gt;
Lo script example.py oltre a dare un&#39;idea di come poter usare il programmino uppa nella cartella di dropbox il file dbupload_test.txt con all&#39;interno lo stesso contenuto dello script.&lt;br /&gt;
Nel caso il link qui sotto non dovesse funzionare il programma si trova all&#39;indirizzo &lt;a href=&quot;https://github.com/jncraton/PythonDropboxUploader&quot;&gt;https://github.com/jncraton/PythonDropboxUploader&lt;/a&gt;, copiare il link dal  pulsante download, sostituire http a https e lasciarlo scaricare a wget nella directory desiderata.&lt;br /&gt;
&lt;a href=&quot;http://wiki.dropbox.com/DropboxAddons/PythonDropboxUploader&quot;&gt;Qui&lt;/a&gt; una breve guida al pacchetto, del resto non c&#39;è molto da spiegare.&lt;br /&gt;
&lt;br /&gt;
Per finire la soluzione con webDAV personalmente non l&#39;ho ritenuta la migliore perchè bisogna associare il proprio account su &lt;a href=&quot;http://www.dropdav.com/&quot;&gt;http://www.dropdav.com/&lt;/a&gt; e se non ho capito male i propri file uploadati tramite questo sistema passano per dei loro server. Ad ogni modo c&#39;è potrebbe ritenerlo utile.&lt;br /&gt;
Come client webDAV ho trovato cadaver su optware e per automatizzare la connessione senza perderci troppo tempo ho usato empty (un sostituto di tcl/expect) che però è solo sul repositry di openwrt.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;ipkg install cadaver&lt;br /&gt;
opkg -dest usb install empty&lt;/blockquote&gt;lo script:&lt;br /&gt;
&lt;blockquote&gt;vi /usr/sbin/emptycadaver.sh&lt;/blockquote&gt;&lt;blockquote&gt;#!/bin/sh&lt;br /&gt;
empty -f -i in -o out /opt/bin/cadaver https://dav.dropdav.com/&lt;br /&gt;
empty -w -i out -o in &quot;Do you wish to accept the certificate&quot; &quot;y\n&quot;&lt;br /&gt;
empty -w -i out -o in &quot;Username:&quot; &quot;USERNAME@EMAIL.COM\n&quot;&lt;br /&gt;
empty -w -i out -o in &quot;Password:&quot; &quot;PASSWORD\n&quot;&lt;br /&gt;
empty -w -i out -o in &quot;dav:&quot; &quot;put /tmp/mounts/Disc-A1/PERCORSO_FILE\n&quot;&lt;br /&gt;
empty -w -i out -o in &quot;dav:&quot; &quot;quit\n&quot;&lt;/blockquote&gt;&lt;br /&gt;
Un ringraziamento è dovuto al mio compare &lt;a href=&quot;http://chronocento.altervista.org/&quot;&gt;Chronocento&lt;/a&gt; che tra le altre cose mi ha fatto conoscere la community FON e Dropbox.&lt;br /&gt;
Fonti: &lt;br /&gt;
&lt;a href=&quot;http://wiki.dropbox.com/DropboxAddons/PythonDropboxUploader&quot;&gt;http://wiki.dropbox.com/DropboxAddons/PythonDropboxUploader&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://wiki.dropbox.com/DropboxAddons&quot;&gt;http://wiki.dropbox.com/DropboxAddons&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://mattsprinsky.com/blog/2009/02/13/using-expect-and-cadaver-to-automate-webdav-uploads&quot;&gt;http://mattsprinsky.com/blog/2009/02/13/using-expect-and-cadaver-to-automate-webdav-uploads&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://bisont87.blogspot.com/feeds/2008419696063839908/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://bisont87.blogspot.com/2011/04/dropbox-uploader-dalla-fonera-20n-e.html#comment-form' title='6 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default/2008419696063839908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default/2008419696063839908'/><link rel='alternate' type='text/html' href='http://bisont87.blogspot.com/2011/04/dropbox-uploader-dalla-fonera-20n-e.html' title='Dropbox Uploader dalla fonera 2.0n e openwrt'/><author><name>OrSo</name><uri>http://www.blogger.com/profile/13409084918320180361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1132099239449964047.post-3183842326508761551</id><published>2011-04-29T05:23:00.000-07:00</published><updated>2011-05-03T11:50:55.548-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Fonera 2.0n"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="nslu2-linux.org"/><category scheme="http://www.blogger.com/atom/ns#" term="optware"/><title type='text'>Repository optware sulla Fonera 2.0n v2</title><content type='html'>&lt;strike&gt;NON HO ANCORA POTUTO PROVARE QUESTO TUTORIAL SULLA FONERA CON UN&#39;INSTALLAZIONE DEL FIRMWARE PULITA, QUINDI POTREBBE ESSERCI QUALCHE ERRORE NEI PASSAGGI. FATEMI SAPERE SE FUNZIONA TUTTO.&lt;/strike&gt;&lt;br /&gt;
TESTATA. SEMBRA FUNZIONARE.&lt;strike&gt;&lt;br /&gt;
&lt;/strike&gt;&lt;br /&gt;
&lt;br /&gt;
Visto i piccoli problemi che portava la guida precedente nell&#39;installazione di pacchetti presenti su più repository (es.python) ho cercato e trovato un modo alternativo.&lt;br /&gt;
Leggendo meglio la documentazione presente su nslu2-linux.org ho trovato il pacchetto ipkg-opt, il quale non sostituisce opkg, ma fa da gestore dei pacchetti di installazione dedicato ai soli pacchetti presenti sul repo di nslu2. &lt;br /&gt;
Alla fine quindi avremo due gestori di pacchetti uno per il repository di openwrt e l&#39;altro per quello di nslu2-linux.org con &quot;1000+ ported applications&quot;, comodo no? ;)&lt;br /&gt;
Inoltre nel pacchetto è presente il file update-alternatives così da non doverlo creare manualmente.&lt;br /&gt;
I pacchetti di nslu2-linux dovrebero basarsi su  &quot;/opt/lib/uClibc.so&quot; e anche il dynamic loader in &quot;/opt/lib&quot; con un diverso &quot;/opt/etc/ld-opt.so.conf&quot; per &quot;.so.cache&quot; &lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; lang=&quot;it&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Fai clic per visualizzare le traduzioni alternative&quot;&gt;personalizzato&lt;/span&gt;&lt;/span&gt;. Nel pacchetto uclibc-opt troviamo insfatti &quot;/opt/sbin/ldconfig&quot;.&lt;br /&gt;
Per finire sempre leggendo meglio la documentazione mi sembra di aver sbagliato i repository a cui facevo riferimento, infatti per quello di openwrt quello corretto dovrebbe essere:&lt;br /&gt;
&lt;blockquote&gt;&lt;a href=&quot;http://downloads.openwrt.org/kamikaze/8.09.2/rb532/packages&quot;&gt;http://downloads.openwrt.org/kamikaze/8.09.2/rb532/packages&lt;/a&gt;&lt;/blockquote&gt;e per nslu2-linux.org&lt;br /&gt;
&lt;blockquote&gt;&lt;a href=&quot;http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable&quot;&gt;http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable&lt;/a&gt;&lt;/blockquote&gt;Prerequisiti:&lt;br /&gt;
&lt;u&gt;unità esterna formattata in ext3 o altro filesystem che supporti i link simbolici&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
Quindi per installare ipkg-opt prima di tutto dobbiamo creare la cartella opt sull&#39;hd esterno e crearne il link simbolico in &quot;/&quot;. Nel mio caso l&#39;hd viene montato automaticamente in &quot;/tmp/mounts/Disc-A1&quot; potete controllare la posizione del vostro con&lt;br /&gt;
&lt;blockquote&gt;ls /tmp/mounts&lt;/blockquote&gt;&lt;blockquote&gt;mkdir -p /tmp/mounts/Disc-A1/opt/&lt;br /&gt;
ln -s /tmp/mounts/Disc-A1/opt /opt&lt;/blockquote&gt;Ottenuto l&#39;accesso ssh alla fonera editiamo il file &quot;/etc/opkg.conf&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;vi /etc/opkg.conf&lt;/blockquote&gt;&lt;blockquote&gt;src snapshots http://downloads.openwrt.org/kamikaze/8.09.2/rb532/packages&lt;br /&gt;
dest root /&lt;br /&gt;
dest ram /tmp&lt;br /&gt;
dest usb /tmp/mounts/Disc-A1&lt;br /&gt;
lists_dir ext /var/opkg-lists &lt;/blockquote&gt;&amp;nbsp;Digitate &amp;lt;ESC&amp;gt; &quot;:wq&quot; per salvare e chiudere l&#39;editor. Con &quot;dest  usb /tmp/mounts/Disc-A1&quot; abbiamo aggiunto come destinazione per opkg  l&#39;hard disk o pen drive usb, mi raccomando di sostiture la destinazione  con quella della vostra periferica.&lt;br /&gt;
Visto che ci siamo modifichiamo il profilo per poter installare pure i pacchetti presi da openwrt sull&#39;unità esterna. Aggiungiamo al profilo le parti in rosso &lt;br /&gt;
&lt;blockquote&gt;vi /etc/profile&lt;/blockquote&gt;&lt;blockquote&gt;&lt;div style=&quot;color: red;&quot;&gt;ext_path=&#39;/tmp/mounts/Disc-A1&#39;&lt;/div&gt;export PATH=/bin:/sbin:/usr/bin:/usr/sbin&lt;span style=&quot;color: red;&quot;&gt;:$ext_path/bin:$ext_path/sbin:$ext_path/usr/bin:$ext_path/usr/sbin:/opt/bin:/opt/sbin&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;. /etc/profile&lt;/blockquote&gt;per ricaricare il profilo senza riavviare.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;mkdir -p /usr/lib/opkg&lt;br /&gt;
opkg update&lt;/blockquote&gt;così creiamo una cartella necessaria a opkg e aggiorniamo la lista dei pacchetti disponibili.&lt;br /&gt;
&lt;blockquote&gt;opkg -dest usb install ldconfig&lt;/blockquote&gt;così installiamo ldconfig necessario per far trovare le librerie al sistema senza aggiungerne la destinazione in &quot;/etc/profile&quot; &lt;br /&gt;
&lt;blockquote&gt;vi /etc/ld.so.conf&lt;/blockquote&gt;&lt;blockquote&gt;/tmp/mounts/Disc-A1/usr/lib&lt;br /&gt;
/tmp/mounts/Disc-A1/lib&lt;/blockquote&gt;&lt;br /&gt;
Aggiungiamo gli script necessari per quei pacchetti installati da nslu2-linux.org che contengono uno script all&#39;avvio (mysql, lighttpd, etc..)&lt;br /&gt;
&lt;blockquote&gt;vi /etc/init.d/optware&lt;/blockquote&gt;&lt;div style=&quot;margin-bottom: 2px;&quot;&gt;come prima incollate il codice:&lt;br /&gt;
&lt;div style=&quot;margin-top: 5px; text-align: center;&quot;&gt;&lt;input onclick=&quot;if (this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display != &#39;&#39;) { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;&#39;; this.innerText = &#39;&#39;; this.value = &#39;Nascondi&#39;; } else { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;none&#39;; this.innerText = &#39;&#39;; this.value = &#39;Mostra&#39;; }&quot; style=&quot;font-size: 10px; margin-top: 5px; width: 60px;&quot; type=&quot;button&quot; value=&quot;Mostra&quot; /&gt; &lt;/div&gt;&lt;div style=&quot;border: 1px inset; margi: 0px; padding: 6px;&quot;&gt;&lt;div style=&quot;display: none;&quot;&gt;#!/bin/sh /etc/rc.common&lt;br /&gt;
&lt;br /&gt;
START=80&lt;br /&gt;
&lt;br /&gt;
start() {&lt;br /&gt;
echo &quot;Starting Optware.&quot;&lt;br /&gt;
[ -x /opt/etc/rc.optware ] &amp;amp;&amp;amp; /opt/etc/rc.optware start&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
stop() {&lt;br /&gt;
echo &quot;Shutting down Optware.&quot;&lt;br /&gt;
[ -x /opt/etc/rc.optware ] &amp;amp;&amp;amp; /opt/etc/rc.optware stop&lt;br /&gt;
}&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;chmod +x /etc/init.d/optware&lt;/blockquote&gt;&lt;blockquote&gt;mkdir -p /opt/etc&lt;br /&gt;
vi /opt/etc/rc.optware&lt;/blockquote&gt;&lt;div style=&quot;margin-bottom: 2px;&quot;&gt;codice:&lt;br /&gt;
&lt;div style=&quot;margin-top: 5px; text-align: center;&quot;&gt;&lt;input onclick=&quot;if (this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display != &#39;&#39;) { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;&#39;; this.innerText = &#39;&#39;; this.value = &#39;Nascondi&#39;; } else { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;none&#39;; this.innerText = &#39;&#39;; this.value = &#39;Mostra&#39;; }&quot; style=&quot;font-size: 10px; margin-top: 5px; width: 60px;&quot; type=&quot;button&quot; value=&quot;Mostra&quot; /&gt; &lt;/div&gt;&lt;div style=&quot;border: 1px inset; margi: 0px; padding: 6px;&quot;&gt;&lt;div style=&quot;display: none;&quot;&gt;#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# Start all init scripts in /opt/etc/init.d&lt;br /&gt;
# executing them in numerical order.&lt;br /&gt;
#&lt;br /&gt;
if [ x$1 == xstop ] ; then&lt;br /&gt;
progs=&quot;/opt/etc/init.d/K??*&quot;&lt;br /&gt;
rc=stop&lt;br /&gt;
else&lt;br /&gt;
progs=&quot;/opt/etc/init.d/S??*&quot;&lt;br /&gt;
rc=start&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for i in $progs ;do&lt;br /&gt;
&lt;br /&gt;
# Ignore dangling symlinks (if any).&lt;br /&gt;
[ ! -f &quot;$i&quot; ] &amp;amp;&amp;amp; continue&lt;br /&gt;
&lt;br /&gt;
echo starting $i&lt;br /&gt;
case &quot;$i&quot; in&lt;br /&gt;
*.sh)&lt;br /&gt;
# Source shell script for speed.&lt;br /&gt;
(&lt;br /&gt;
trap - INT QUIT TSTP&lt;br /&gt;
set $rc&lt;br /&gt;
. $i&lt;br /&gt;
)&lt;br /&gt;
;;&lt;br /&gt;
*)&lt;br /&gt;
# No sh extension, so fork subprocess.&lt;br /&gt;
$i $rc&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
done&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;chmod +x /opt/etc/rc.optware&lt;/blockquote&gt;e infine per abilitare lo script come si fa su openwrt dare &lt;br /&gt;
&lt;blockquote&gt;/etc/init.d/optware enable&lt;/blockquote&gt;&amp;nbsp;Finalmente possiamo installare ipk-opt&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
opkg --dest usb install http://ipkg2.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/uclibc-opt_0.9.28-13_mipsel.ipk http://ipkg2.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/ipkg-opt_0.99.163-10_mipsel.ipk&lt;/blockquote&gt;&lt;blockquote&gt;ldconfig&lt;/blockquote&gt;Personalmente uso &quot;ldconfig&quot; dopo ogni installazione così sono più sicuro che le librerie vengano caricate, dopo l&#39;installazione di &quot;uclibc-opt&quot; sarà presente anche &quot;/opt/sbin/ldconfig&quot; che dovrebbe gestire le librerie in /opt separamente da quelle del resto del sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;strike&gt;editiamo il file di configurazione di ipkg-opt&lt;/strike&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;strike&gt;vi /opt/etc/ipkg.conf&lt;/strike&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;strike&gt;e decommentiamo la linea&lt;/strike&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;strike&gt;src whiterussian http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable&lt;/strike&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
soddisfiamo questa dipendenza manualmente&lt;br /&gt;
&lt;blockquote&gt;ipkg update&lt;br /&gt;
ipkg install uclibc-opt&lt;/blockquote&gt;&lt;br /&gt;
Sempre sul wiki di nslu2-linux viene cosigliato di installare alcune librerie di base.&lt;br /&gt;
&lt;blockquote&gt;opkg update&lt;br /&gt;
opkg install -dest usb libgcc libpthread libstdcpp &lt;strike&gt;librt&lt;/strike&gt; &lt;br /&gt;
ldconfig&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Quindi ora possiamo usare &quot;ipkg&quot; per installare pacchetti da nslu2-linux.org e &quot;opkg&quot; per installare quelli da openwrt.&lt;br /&gt;
Ad esempio&lt;br /&gt;
&lt;blockquote&gt;ipkg install python&lt;/blockquote&gt;Se dovesse risultare mancante qualche libreria provate con il comando&lt;br /&gt;
&lt;blockquote&gt;/opt/sbin/ldconfig&lt;/blockquote&gt;&amp;nbsp;Fonti:&lt;br /&gt;
&lt;a href=&quot;http://www.nslu2-linux.org/wiki/Optware/HomePage&quot;&gt;http://www.nslu2-linux.org/wiki/Optware/HomePage&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.nslu2-linux.org/wiki/OpenWrt/HomePage&quot;&gt;http://www.nslu2-linux.org/wiki/OpenWrt/HomePage&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.nslu2-linux.org/wiki/FAQ/Optware-uClibcBuild&quot;&gt;http://www.nslu2-linux.org/wiki/FAQ/Optware-uClibcBuild&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://wiki.fon.com/wiki/Fonera_Development#For_the_Fonera_2.0N_.28FON2303.29&quot;&gt;http://wiki.fon.com/wiki/Fonera_Development#For_the_Fonera_2.0N_.28FON2303.29&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://bisont87.blogspot.com/feeds/3183842326508761551/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://bisont87.blogspot.com/2011/04/repository-optware-sulla-fonera-20n-v2.html#comment-form' title='4 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default/3183842326508761551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default/3183842326508761551'/><link rel='alternate' type='text/html' href='http://bisont87.blogspot.com/2011/04/repository-optware-sulla-fonera-20n-v2.html' title='Repository optware sulla Fonera 2.0n v2'/><author><name>OrSo</name><uri>http://www.blogger.com/profile/13409084918320180361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1132099239449964047.post-1496439073178331935</id><published>2011-03-24T12:37:00.000-07:00</published><updated>2011-05-02T10:43:46.504-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="direct download"/><category scheme="http://www.blogger.com/atom/ns#" term="Fonera 2.0n"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="JDowloader"/><category scheme="http://www.blogger.com/atom/ns#" term="megaupload"/><category scheme="http://www.blogger.com/atom/ns#" term="openwrt"/><category scheme="http://www.blogger.com/atom/ns#" term="optware"/><category scheme="http://www.blogger.com/atom/ns#" term="pyLoad"/><category scheme="http://www.blogger.com/atom/ns#" term="rapidshare"/><title type='text'>pyLoad on Fonera2.0n</title><content type='html'>Quando ho scritto di &lt;a href=&quot;http://bisont87.blogspot.com/2011/03/risolvere-automaticamente-i-re-captcha.html&quot;&gt;captchatrader &lt;/a&gt; ho detto che ero riuscito a far girare pyLoad sulla fonera.&lt;br /&gt;
Finalmente ho trovato un programma simile a JDownloader ma abbastanza leggero e semplice da non creare problemi nell&#39;installazione ed esecuzione e rendere finalmente funzionale la fonera.&lt;br /&gt;
Con questo programma infatti la Fonera 2.0n sarà in grado di scaricare da svariati siti di  hosting come megaupload e rapidshare senza necessariamente avere un  account premium (il vero motivo per cui l&#39;avevo comprata), in più risolve i captcha. Se attivate &lt;a href=&quot;http://bisont87.blogspot.com/2011/03/risolvere-automaticamente-i-re-captcha.html&quot;&gt;captchatrader&lt;/a&gt; anche i re-captcha come quelli di hotfile non saranno più un problema&lt;br /&gt;
&lt;br /&gt;
Ecco l&#39;howto:&lt;br /&gt;
&lt;br /&gt;
Dopo aver &lt;a href=&quot;http://bisont87.blogspot.com/2011/03/repository-optware-sulla-fonera-20n.html&quot;&gt;aggiunto il repository di nslu2-linux.org&lt;/a&gt; attiviamolo:&lt;br /&gt;
&lt;blockquote&gt;vi /etc/opkg.conf&lt;/blockquote&gt;&lt;blockquote&gt;#src snapshots http://downloads.openwrt.org/kamikaze/8.09.2/brcm-2.4/packages&lt;br /&gt;
src snapshots2 http://ipkg2.nslu2-linux.org/feeds/optware/openwrt-brcm24/cross/stable&lt;br /&gt;
dest root /&lt;br /&gt;
dest ram /tmp&lt;br /&gt;
dest usb /tmp/mounts/Disc-A1&lt;br /&gt;
lists_dir ext /var/opkg-lists &lt;/blockquote&gt;&lt;br /&gt;
ora ci basta installare le dipendenze di pyLoad:&lt;br /&gt;
&lt;blockquote&gt;opkg -dest usb install python py25-crypto py25-curl py25-openssl py25-django py25-pil tesseract-ocr-lang-eng unzip ossp-js unrar&lt;/blockquote&gt;Spostiamoci sul drive esterno nel mio caso Disc-A1 e scarichiamo pyLoad&lt;br /&gt;
&lt;blockquote&gt;cd /tmp/mounts/Disc-A1/&lt;br /&gt;
wget http://get.pyload.org/static/pyload-src-v0.4.5.zip&lt;br /&gt;
unzip pyload-src-v0.4.5.zip&lt;br /&gt;
cd pyload&lt;/blockquote&gt;ora se vogliamo possiamo far girare systemcheck per controllare che tutto sia a posto prima di continuare, è chiaro che sulla fonera non avremo il supporto alla gui e sarà l&#39;unico errore che riceveremo.&lt;br /&gt;
&lt;blockquote&gt;python systemCheck.py&lt;/blockquote&gt;&lt;div style=&quot;margin-bottom: 2px;&quot;&gt;questo è il mio output se volete confrontarlo:&lt;br /&gt;
&lt;div style=&quot;margin-top: 5px; text-align: center;&quot;&gt;&lt;input onclick=&quot;if (this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display != &#39;&#39;) { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;&#39;; this.innerText = &#39;&#39;; this.value = &#39;Nascondi&#39;; } else { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;none&#39;; this.innerText = &#39;&#39;; this.value = &#39;Mostra&#39;; }&quot; style=&quot;font-size: 10px; margin-top: 5px; width: 60px;&quot; type=&quot;button&quot; value=&quot;Mostra&quot; /&gt; &lt;/div&gt;&lt;div style=&quot;border: 1px inset; padding: 6px;&quot;&gt;&lt;div style=&quot;display: none;&quot;&gt;#####   System Status   #####&lt;br /&gt;
&lt;br /&gt;
##  pyLoadCore  ##&lt;br /&gt;
No Problems detected, pyLoadCore should work fine.&lt;br /&gt;
&lt;br /&gt;
##  pyLoadGui  ##&lt;br /&gt;
The system check has detected some errors:&lt;br /&gt;
&lt;br /&gt;
GUI won&#39;t work without pyqt4 !!&lt;br /&gt;
&lt;br /&gt;
##  Webinterface  ##&lt;br /&gt;
No Problems detected, Webinterface should work fine.&lt;br /&gt;
&lt;br /&gt;
Possible improvements for webinterface:&lt;br /&gt;
&lt;br /&gt;
Install Flup to use FastCGI or optional webservers.&lt;br /&gt;
Press Enter to Exit.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;ora passiamo al setup&lt;br /&gt;
&lt;blockquote&gt;python pyLoadCore.py&lt;/blockquote&gt;&lt;div style=&quot;margin-bottom: 2px;&quot;&gt;è abbastanza semplice, le parti in rosso sono quelle da inserire manualmente:&lt;br /&gt;
&lt;div style=&quot;margin-top: 5px; text-align: center;&quot;&gt;&lt;input onclick=&quot;if (this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display != &#39;&#39;) { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;&#39;; this.innerText = &#39;&#39;; this.value = &#39;Nascondi&#39;; } else { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;none&#39;; this.innerText = &#39;&#39;; this.value = &#39;Mostra&#39;; }&quot; style=&quot;font-size: 10px; margin-top: 5px; width: 60px;&quot; type=&quot;button&quot; value=&quot;Mostra&quot; /&gt; &lt;/div&gt;&lt;div style=&quot;border: 1px inset; padding: 6px;&quot;&gt;&lt;div style=&quot;display: none;&quot;&gt;Verifica del sistema finita, premi Invio per vedere il report di stato.&lt;br /&gt;
&lt;br /&gt;
## Stato ##&lt;br /&gt;
&lt;br /&gt;
Funzioni disponibili: decrittografia contenitore, connessione ssl, decrittografia automatica captcha, Interfaccia web, Click&#39;N&#39;Load esteso&lt;br /&gt;
&lt;br /&gt;
Continua con il setup? ([y]/n): &lt;span style=&quot;color: red;&quot;&gt;y&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Do you want to change the config path? Current is /root/.pyload&lt;br /&gt;
Se si utilizza pyLoad su un server o la partizione principale si trova su una memoria flash interna potrebbe essere una buona idea cambiarla.&lt;br /&gt;
Cambiare il percorso della configurazione? (y/[n]): &lt;span style=&quot;color: red;&quot;&gt;y&lt;/span&gt;&lt;br /&gt;
Imposta nuovo percorso di configurazione, la configurazione attuale non sarÃ&amp;nbsp; trasferita!&lt;br /&gt;
Percorso di configurazione [/root/.pyload]: &lt;span style=&quot;color: red;&quot;&gt;/tmp/mounts/Disc-A1/pyload/.pyload&lt;/span&gt;&lt;br /&gt;
Percorso di configurazione modificato, il setup ora si chiuderÃ&amp;nbsp;, riavvialo per andare avanti.&lt;br /&gt;
Premi Invio per uscire.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;riavviamo quindi il setup, per forzarlo&lt;br /&gt;
&lt;blockquote&gt;python pyLoadCore.py -s&lt;/blockquote&gt;&lt;div style=&quot;margin-bottom: 2px;&quot;&gt;come prima le parti in rosso sono da inserire:&lt;br /&gt;
&lt;div style=&quot;margin-top: 5px; text-align: center;&quot;&gt;&lt;input onclick=&quot;if (this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display != &#39;&#39;) { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;&#39;; this.innerText = &#39;&#39;; this.value = &#39;Nascondi&#39;; } else { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;none&#39;; this.innerText = &#39;&#39;; this.value = &#39;Mostra&#39;; }&quot; style=&quot;font-size: 10px; margin-top: 5px; width: 60px;&quot; type=&quot;button&quot; value=&quot;Mostra&quot; /&gt; &lt;/div&gt;&lt;div style=&quot;border: 1px inset; margi: 0px; padding: 6px;&quot;&gt;&lt;div style=&quot;display: none;&quot;&gt;Funzioni disponibili: decrittografia contenitore, connessione ssl, decrittografia automatica captcha, Interfaccia web, Click&#39;N&#39;Load esteso&lt;br /&gt;
&lt;br /&gt;
Continua con il setup? ([y]/n): &lt;span style=&quot;color: red;&quot;&gt;y&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Do you want to change the config path? Current is /tmp/run/mountd/sda1/pyload/.pyload&lt;br /&gt;
Se si utilizza pyLoad su un server o la partizione principale si trova su una memoria flash interna potrebbe essere una buona idea cambiarla.&lt;br /&gt;
Cambiare il percorso della configurazione? (y/[n]): &lt;span style=&quot;color: red;&quot;&gt;n&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Do you want to configure login data and basic settings?&lt;br /&gt;
E&#39; consigliato per il primo avvio.&lt;br /&gt;
Fai la configurazione di base? ([y]/n): &lt;span style=&quot;color: red;&quot;&gt;y&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
## Setup Base ##&lt;br /&gt;
&lt;br /&gt;
The following logindata is valid for CLI, GUI and webinterface.&lt;br /&gt;
Nome utente [User]: &lt;span style=&quot;color: red;&quot;&gt;username&lt;/span&gt;&lt;br /&gt;
Password: &lt;span style=&quot;color: red;&quot;&gt;password&lt;/span&gt;&lt;br /&gt;
Password (di nuovo): &lt;span style=&quot;color: red;&quot;&gt;password&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Lingua ([en], de, it, pl, es, cs, fr): &lt;span style=&quot;color: red;&quot;&gt;it&lt;/span&gt;&lt;br /&gt;
Cartella di download [Downloads]: &lt;span style=&quot;color: red;&quot;&gt;/tmp/mounts/Disc-A1/downloads&lt;/span&gt;&lt;br /&gt;
Max download contemporanei [3]: &lt;span style=&quot;color: red;&quot;&gt;INVIO&lt;/span&gt;&lt;br /&gt;
Usa la riconnessione? (y/[n]): &lt;span style=&quot;color: red;&quot;&gt;n&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Vuoi configurare l&#39;ssl?&lt;br /&gt;
Configurare ssl? (y/[n]): &lt;span style=&quot;color: red;&quot;&gt;n&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Vuoi configurare l&#39;interrfaccia web?&lt;br /&gt;
Configurare l&#39;interfaccia web? ([y]/n): &lt;span style=&quot;color: red;&quot;&gt;y&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
## Setup dell&#39;interfaccia web ##&lt;br /&gt;
&lt;br /&gt;
Attivare l&#39;interfaccia web? ([y]/n): &lt;span style=&quot;color: red;&quot;&gt;y&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Indirizzo di ascolto, se usi 127.0.0.1 o localhost, l&#39;interfaccia web sarÃ&amp;nbsp; accessibile soltanto localmente.&lt;br /&gt;
Indirizzo [0.0.0.0]: &lt;span style=&quot;color: red;&quot;&gt;&lt;strike&gt;vostro indirizzo dyndns&lt;/strike&gt;INVIO&lt;/span&gt;&lt;br /&gt;
Porta [8000]: &lt;span style=&quot;color: red;&quot;&gt;fate voi&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
In some rare cases the builtin server is not working, if you notice problems with the webinterface&lt;br /&gt;
change the builtin server to the threaded one here.&lt;br /&gt;
Server ([builtin], threaded): &lt;span style=&quot;color: red;&quot;&gt;INVIO&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Installazione terminata con successo.&lt;br /&gt;
Premi Invio per uscire e riavviare pyLoad&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;Non ho testato l&#39;opzione ssl motivo per cui non l&#39;ho scritta, comunque non dovrebbe creare problemi dato che openssl è già usato dalla fonera per collgarsi alla webgui di luci da wan. &lt;br /&gt;
&lt;strike&gt;Mettendo un indirizzo dyndns valido &lt;/strike&gt; Se avete configurato dyndns sulla fonera potrete accedere al core di pyLoad anche dalla rete esterna una volta aperte le porte sul firewall, cosa che faremo fare allo script di avvio di pyload. &lt;br /&gt;
&lt;br /&gt;
Per openwrt basterebbe scrivere uno script in /etc/init.d/, ma la fonera usa il demone &quot;fonstate&quot; per gli script all&#39;avvio e trovare una combinazione funzionante al 100% non è stato facile. Spero che questa vada bene&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;vi /etc/init.d/pyload&lt;/blockquote&gt;&lt;div style=&quot;margin-bottom: 2px;&quot;&gt;codice:&lt;br /&gt;
&lt;div style=&quot;margin-top: 5px; text-align: center;&quot;&gt;&lt;input onclick=&quot;if (this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display != &#39;&#39;) { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;&#39;; this.innerText = &#39;&#39;; this.value = &#39;Nascondi&#39;; } else { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;none&#39;; this.innerText = &#39;&#39;; this.value = &#39;Mostra&#39;; }&quot; style=&quot;font-size: 10px; margin-top: 5px; width: 60px;&quot; type=&quot;button&quot; value=&quot;Mostra&quot; /&gt; &lt;/div&gt;&lt;div style=&quot;border: 1px inset; margi: 0px; padding: 6px;&quot;&gt;&lt;div style=&quot;display: none;&quot;&gt;#!/bin/sh /etc/rc.common&lt;br /&gt;
PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
while [ ! -d /tmp/mounts/Disc-A1 ]&lt;br /&gt;
do&lt;br /&gt;
sleep 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
START=99&lt;br /&gt;
&lt;br /&gt;
start() {&lt;br /&gt;
iptables -I input_daemon -p tcp --dport 8000 -j zone_wan_ACCEPT&lt;br /&gt;
iptables -I input_daemon -p tcp --dport 7227 -j zone_wan_ACCEPT&lt;br /&gt;
python /tmp/mounts/Disc-A1/pyload/pyLoadCore.py --daemon&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
stop() {&lt;br /&gt;
iptables -D input_daemon -p tcp --dport 8000 -j zone_wan_ACCEPT&lt;br /&gt;
iptables -D input_daemon -p tcp --dport 7227 -j zone_wan_ACCEPT&lt;br /&gt;
python /tmp/mounts/Disc-A1/pyload/pyLoadCore.py -q&lt;br /&gt;
}&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;chmod +x /etc/init.d/pyload&lt;/blockquote&gt;In teoria questo dovrebbe bastare e abilitando lo script all&#39;avvio con &lt;br /&gt;
&lt;blockquote&gt;/etc/init.d/pyload enable&lt;/blockquote&gt;dovrebbe funzionare.. dovrebbe appunto! Ma la mia fonera non ne ha voluto sapere quindi ho evitato quest&#39;ultimo passaggio e ho passato il comando a fonstate. Provatelo prima di passare a fonstate per altri utenti ha funzionato senza problemi.&lt;br /&gt;
&lt;blockquote&gt;vi /etc/fonstated/pyload&lt;/blockquote&gt;&lt;blockquote&gt;#!/bin/sh&lt;br /&gt;
/etc/init.d/pyload start&lt;/blockquote&gt;&lt;blockquote&gt;chmod +x /etc/fonstated/pyload&lt;/blockquote&gt;&lt;br /&gt;
&lt;blockquote&gt;vi /etc/config/fonstate&lt;/blockquote&gt;aggiungiamo alla fine &lt;br /&gt;
&lt;blockquote&gt;config &#39;fonboot&#39;&lt;br /&gt;
option &#39;event&#39; &#39;pyload&#39;&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Se tutto è andato bene al riavvio dovremmo trovare pyload in esecuzione, si può verfiicare con &quot;top&quot;, e le porte 8000 e 7227 aperte &quot;iptables -L |grep 8000&quot; &quot;iptables -L |grep 7227&quot;. (Per non avere altri problemi con il firewall ho collegato la fonera al modem/router in pppoe.)&lt;br /&gt;
Quindi possiamo collegarci alla web gui di pyload all&#39;indirizzo http://VOSTRODYNDNS:8000 e loggarci con user e pass impostati prima, oppure scaricando sul pc pyload e facendo collegare la pyLoadGui a pyLoadCore.py in esecuzione sulla fonera.&lt;br /&gt;
&lt;br /&gt;
Scaricate &lt;a href=&quot;http://cdn.bitbucket.org/spoob/pyload/downloads/pyload-v0.4.5-win.zip&quot;&gt;pyload&lt;/a&gt; per Winzozz (per chi usa altri sistemi operativi non credo che debba dare spiegazioni ;))&lt;br /&gt;
Decomprimetelo dove preferite ed eseguite pyLoadGui.exe&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3by6jY4kxKmhiDgxOTO4lgn1bTfpkN2_F9OX2ho_T8Lbk3UZIdxzsTh-OntSBIvf-aDSTBTEcPTA5Okv-itQgP-K3W33FVhyr3nqjp9yY2OJ2RObzvP_ukNl2KxeS4CjFBPm4D45hf1nJ/s1600/pyloadgui1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;170&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3by6jY4kxKmhiDgxOTO4lgn1bTfpkN2_F9OX2ho_T8Lbk3UZIdxzsTh-OntSBIvf-aDSTBTEcPTA5Okv-itQgP-K3W33FVhyr3nqjp9yY2OJ2RObzvP_ukNl2KxeS4CjFBPm4D45hf1nJ/s200/pyloadgui1.JPG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Cliccate su &quot;New&quot; e inserite i vostri dati.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2Fplt0cM6La-MVhjTTg0EIlrtpzkGlBlVyMGfL2GRxGmJJVjp6V8ZCnAf7-wjgE5kp8bGCNJceaquC609OB75aJrYUyCinBzSJKyK3BlMpQRteyabQ4BQzbQ4yJHlHF-y7mfVykMOMsW2/s1600/pyloadgui2.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;171&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2Fplt0cM6La-MVhjTTg0EIlrtpzkGlBlVyMGfL2GRxGmJJVjp6V8ZCnAf7-wjgE5kp8bGCNJceaquC609OB75aJrYUyCinBzSJKyK3BlMpQRteyabQ4BQzbQ4yJHlHF-y7mfVykMOMsW2/s200/pyloadgui2.JPG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Dopo aver cliccato su save cliccate due volte sul profilo appena creato per renderlo di default e non fare più apparire la schermata di setup della gui.&lt;br /&gt;
FINE!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fonti: &lt;br /&gt;
http://forum.fon.com&lt;br /&gt;
http://wiki.fon.com/wiki/F2_Amule&lt;br /&gt;
http://wiki.fon.com/wiki/F2_MgtConsole_tweaks#Fonstated&lt;br /&gt;
http://pyload.org/</content><link rel='replies' type='application/atom+xml' href='http://bisont87.blogspot.com/feeds/1496439073178331935/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://bisont87.blogspot.com/2011/03/pyload-on-fonera20n.html#comment-form' title='47 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default/1496439073178331935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default/1496439073178331935'/><link rel='alternate' type='text/html' href='http://bisont87.blogspot.com/2011/03/pyload-on-fonera20n.html' title='pyLoad on Fonera2.0n'/><author><name>OrSo</name><uri>http://www.blogger.com/profile/13409084918320180361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3by6jY4kxKmhiDgxOTO4lgn1bTfpkN2_F9OX2ho_T8Lbk3UZIdxzsTh-OntSBIvf-aDSTBTEcPTA5Okv-itQgP-K3W33FVhyr3nqjp9yY2OJ2RObzvP_ukNl2KxeS4CjFBPm4D45hf1nJ/s72-c/pyloadgui1.JPG" height="72" width="72"/><thr:total>47</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1132099239449964047.post-5136641755964783857</id><published>2011-03-24T12:01:00.000-07:00</published><updated>2011-03-25T09:14:34.740-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Fonera 2.0n"/><category scheme="http://www.blogger.com/atom/ns#" term="openwrt"/><title type='text'>OPKG-LINK</title><content type='html'>Il seguente script l&#39;ho trovato sul forum di openwrt serve a creare automaticamente dei link simbolici tra l&#39;hd e la memoria flash della fonera, così da rendere disponibili i programmi e le librerie senza creari troppi problemi, ha il difetto di riempire la memoria flash se i pacchetti da linkare sono troppi. L&#39;ho trovato utile in rare occasioni. Funziona solo se il filsystem supporta link simbolici, ad esempio ext3.&lt;br /&gt;
&lt;blockquote&gt;vi /usr/bin/opkg-link&lt;/blockquote&gt;&lt;div style=&quot;margin-bottom: 2px;&quot;&gt;incollate il codice:&lt;br /&gt;
&lt;div style=&quot;margin-top: 5px; text-align: center;&quot;&gt;&lt;input onclick=&quot;if (this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display != &#39;&#39;) { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;&#39;; this.innerText = &#39;&#39;; this.value = &#39;Nascondi&#39;; } else { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;none&#39;; this.innerText = &#39;&#39;; this.value = &#39;Mostra&#39;; }&quot; style=&quot;font-size: 10px; margin-top: 5px; width: 60px;&quot; type=&quot;button&quot; value=&quot;Mostra&quot; /&gt; &lt;/div&gt;&lt;div style=&quot;border: 1px inset; margi: 0px; padding: 6px;&quot;&gt;&lt;div style=&quot;display: none;&quot;&gt;#!/bin/sh&lt;br /&gt;
COMMAND=$1&lt;br /&gt;
PACKAGE=$2&lt;br /&gt;
setdest () {&lt;br /&gt;
for i in `grep dest /etc/opkg.conf | cut -d &#39; &#39; -f 3`; do&lt;br /&gt;
if [ -f $i/usr/lib/opkg/info/$PACKAGE.list ]; then&lt;br /&gt;
DEST=$i&lt;br /&gt;
fi&lt;br /&gt;
done&lt;br /&gt;
if [ &quot;x$DEST&quot; = &quot;x&quot; ]; then&lt;br /&gt;
echo &quot;Can not locate $PACKAGE.&quot;&lt;br /&gt;
echo &quot;Check /etc/opkg.conf for correct dest listings&quot;;&lt;br /&gt;
echo &quot;Check name of requested package: $PACKAGE&quot;&lt;br /&gt;
exit 1&lt;br /&gt;
fi&lt;br /&gt;
}&lt;br /&gt;
addlinks () {&lt;br /&gt;
setdest;&lt;br /&gt;
cat $DEST/usr/lib/opkg/info/$PACKAGE.list | while read LINE; do&lt;br /&gt;
SRC=$LINE&lt;br /&gt;
DST=`echo $SRC | sed &#39;s%&#39;$DEST&#39;%%&#39;`&lt;br /&gt;
DSTNAME=`basename $DST`&lt;br /&gt;
DSTDIR=`echo $DST | sed &#39;s%/&#39;$DSTNAME&#39;%%&#39;`&lt;br /&gt;
test -f &quot;$SRC&quot;&lt;br /&gt;
if [ $? = 0 ]; then&lt;br /&gt;
test -e &quot;$DST&quot;&lt;br /&gt;
if [ $? = 1 ]; then&lt;br /&gt;
mkdir -p $DSTDIR&lt;br /&gt;
ln -sf $SRC $DST&lt;br /&gt;
else&lt;br /&gt;
echo &quot;Not linking $SRC to $DST&quot;&lt;br /&gt;
echo &quot;$DST Already exists&quot;&lt;br /&gt;
fi&lt;br /&gt;
else&lt;br /&gt;
test -d &quot;$SRC&quot;&lt;br /&gt;
if [ $? = 0 ]; then&lt;br /&gt;
test -e $DST&lt;br /&gt;
if [ $? = 1 ]; then&lt;br /&gt;
mkdir -p $DST&lt;br /&gt;
else&lt;br /&gt;
echo &quot;directory already exists&quot;&lt;br /&gt;
fi&lt;br /&gt;
else&lt;br /&gt;
echo &quot;Source directory $SRC does not exist&quot;&lt;br /&gt;
fi&lt;br /&gt;
fi&lt;br /&gt;
done&lt;br /&gt;
}&lt;br /&gt;
removelinks () {&lt;br /&gt;
setdest;&lt;br /&gt;
cat $DEST/usr/lib/opkg/info/$PACKAGE.list | while read LINE; do&lt;br /&gt;
SRC=$LINE&lt;br /&gt;
DST=`echo $LINE | sed &#39;s%&#39;$DEST&#39;%%&#39;`&lt;br /&gt;
DSTNAME=`basename $DST`&lt;br /&gt;
DSTDIR=`echo $DST | sed &#39;s%/&#39;$DSTNAME&#39;%%&#39;`&lt;br /&gt;
test -f $DST&lt;br /&gt;
if [ $? = 0 ]; then&lt;br /&gt;
rm -f $DST&lt;br /&gt;
test -d $DSTDIR &amp;amp;&amp;amp; rmdir $DSTDIR 2&amp;gt;/dev/null&lt;br /&gt;
else&lt;br /&gt;
test -d $DST&lt;br /&gt;
if [ $? = 0 ]; then&lt;br /&gt;
rmdir $DST&lt;br /&gt;
else&lt;br /&gt;
echo &quot;$DST does not exist&quot;&lt;br /&gt;
fi&lt;br /&gt;
fi&lt;br /&gt;
done&lt;br /&gt;
}&lt;br /&gt;
mountdest () {&lt;br /&gt;
test -d $PACKAGE&lt;br /&gt;
if [ $? = 1 ]; then&lt;br /&gt;
echo &quot;Mount point does not exist&quot;&lt;br /&gt;
exit 1&lt;br /&gt;
fi&lt;br /&gt;
for i in $PACKAGE/usr/lib/opkg/info/*.list; do&lt;br /&gt;
$0 add `basename $i .list`&lt;br /&gt;
done&lt;br /&gt;
}&lt;br /&gt;
umountdest () {&lt;br /&gt;
test -d $PACKAGE&lt;br /&gt;
if [ $? = 1 ]; then&lt;br /&gt;
echo &quot;Mount point does not exist&quot;&lt;br /&gt;
exit 1&lt;br /&gt;
fi&lt;br /&gt;
for i in $PACKAGE/usr/lib/opkg/info/*.list; do&lt;br /&gt;
$0 remove `basename $i .list`&lt;br /&gt;
done&lt;br /&gt;
}&lt;br /&gt;
case &quot;$COMMAND&quot; in&lt;br /&gt;
add)&lt;br /&gt;
addlinks&lt;br /&gt;
;;&lt;br /&gt;
remove)&lt;br /&gt;
removelinks&lt;br /&gt;
;;&lt;br /&gt;
mount)&lt;br /&gt;
mountdest&lt;br /&gt;
;;&lt;br /&gt;
umount)&lt;br /&gt;
umountdest&lt;br /&gt;
;;&lt;br /&gt;
*)&lt;br /&gt;
echo &quot;Usage: $0 &quot;&lt;br /&gt;
echo &quot; Commands: add, remove, mount, umount&quot;&lt;br /&gt;
echo &quot; Targets: , &quot;&lt;br /&gt;
echo &quot;Example: $0 add kismet-server&quot;&lt;br /&gt;
echo &quot;Example: $0 remove kismet-server&quot;&lt;br /&gt;
echo &quot;Example: $0 mount /mnt/usb&quot;&lt;br /&gt;
echo &quot;Example: $0 umount /mnt/usb&quot;&lt;br /&gt;
exit 1&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
exit 0&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;chmod +x /usr/bin/opkg-link&lt;/blockquote&gt;così da renderlo eseguibile ;)</content><link rel='replies' type='application/atom+xml' href='http://bisont87.blogspot.com/feeds/5136641755964783857/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://bisont87.blogspot.com/2011/03/opkg-link.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default/5136641755964783857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default/5136641755964783857'/><link rel='alternate' type='text/html' href='http://bisont87.blogspot.com/2011/03/opkg-link.html' title='OPKG-LINK'/><author><name>OrSo</name><uri>http://www.blogger.com/profile/13409084918320180361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1132099239449964047.post-6329277190343120384</id><published>2011-03-23T00:18:00.000-07:00</published><updated>2011-03-27T14:07:02.462-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Fonera 2.0n"/><category scheme="http://www.blogger.com/atom/ns#" term="openwrt"/><category scheme="http://www.blogger.com/atom/ns#" term="optware"/><title type='text'>Repository optware sulla Fonera 2.0n</title><content type='html'>Aggiungendo il repository di ipkg.nslu2-linux.org alla fonera si possono installare molti più programmi di quelli disponibili sul repo di openwrt. &lt;br /&gt;
In giro si trovano diverse soluzioni ognuna leggermente diversa per piccole differenze, ma fondamentalmente bisogna aggiungere l&#39;indirizzo del repository nel file &quot;/etc/opkg.conf&quot; aggiungere al path la cartella &quot;/opt&quot; e le cartelle contenti le librerie.&lt;br /&gt;
L&#39;hard disk usb nel mio caso è formattato in ext3. &lt;br /&gt;
Ottenuto l&#39;accesso ssh alla fonera editiamo il file &quot;/etc/opkg.conf&quot;&lt;br /&gt;
&lt;blockquote&gt;vi /etc/opkg.conf&lt;/blockquote&gt;&lt;blockquote&gt;src snapshots http://downloads.openwrt.org/kamikaze/8.09.2/brcm-2.4/packages&lt;br /&gt;
#src snapshots2 http://ipkg2.nslu2-linux.org/feeds/optware/openwrt-brcm24/cross/stable&lt;br /&gt;
dest root /&lt;br /&gt;
dest ram /tmp&lt;br /&gt;
dest usb /tmp/mounts/Disc-A1&lt;br /&gt;
lists_dir ext /var/opkg-lists &lt;/blockquote&gt;Digitate &amp;lt;ESC&amp;gt; &quot;:wq&quot; per salvare e chiudere l&#39;editor. Con &quot;dest usb /tmp/mounts/Disc-A1&quot; abbiamo aggiunto come destinazione per opkg l&#39;hard disk o pen drive usb, mi raccomando di sostiture la destinazione con quella della vostra periferica.&lt;br /&gt;
EDIT: è prefereribile tenere un solo repository attivo per volta così da poter scegliere con chiarezza quello in uso. &lt;br /&gt;
&lt;blockquote&gt;mkdir -p /usr/lib/opkg&lt;br /&gt;
opkg update&lt;/blockquote&gt;così creiamo una cartella necessaria a opkg e aggiorniamo la lista dei pacchetti disponibili.&lt;br /&gt;
&lt;blockquote&gt;opkg -dest usb install ldconfig&lt;/blockquote&gt;così installiamo ldconfig necessario per far trovare le librerie al sistema senza aggiungerne la destinazione in &quot;/etc/profile&quot;&lt;br /&gt;
&lt;blockquote&gt;vi /etc/ld.so.conf&lt;/blockquote&gt;&lt;blockquote&gt;/opt/lib&lt;br /&gt;
/opt/usr/lib&lt;br /&gt;
/tmp/mounts/Disc-A1/usr/lib&lt;br /&gt;
/tmp/mounts/Disc-A1/lib&lt;/blockquote&gt;Aggiungiamo al profilo le parti in rosso &lt;br /&gt;
&lt;blockquote&gt;vi /etc/profile&lt;/blockquote&gt;&lt;blockquote&gt;&lt;div style=&quot;color: red;&quot;&gt;ext_path=&#39;/tmp/mounts/Disc-A1&#39;&lt;/div&gt;export PATH=/bin:/sbin:/usr/bin:/usr/sbin&lt;span style=&quot;color: red;&quot;&gt;:$ext_path/bin:$ext_path/sbin:$ext_path/usr/bin:$ext_path/usr/sbin:/opt/bin:/opt/sbin&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;. /etc/profile&lt;/blockquote&gt;per ricaricare il profilo senza riavviare&lt;br /&gt;
questo altro script serve per non avere l&#39;errore postinst 127 dopo l&#39;installazione di un pacchetto dal repo di nslu2-linux.org&lt;br /&gt;
&lt;blockquote&gt;mkdir -p /tmp/mounts/Disc-A1/opt/bin&lt;br /&gt;
cd /tmp/mounts/Disc-A1/opt/bin/&lt;br /&gt;
vi update-alternatives&lt;/blockquote&gt;&lt;div style=&quot;margin-bottom: 2px;&quot;&gt;incollate il seguente codice:&lt;br /&gt;
&lt;div style=&quot;margin-top: 5px; text-align: center;&quot;&gt;&lt;input onclick=&quot;if (this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display != &#39;&#39;) { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;&#39;; this.innerText = &#39;&#39;; this.value = &#39;Nascondi&#39;; } else { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;none&#39;; this.innerText = &#39;&#39;; this.value = &#39;Mostra&#39;; }&quot; style=&quot;font-size: 10px; margin-top: 5px; width: 60px;&quot; type=&quot;button&quot; value=&quot;Mostra&quot; /&gt; &lt;/div&gt;&lt;div style=&quot;border: 1px inset; margi: 0px; padding: 6px;&quot;&gt;&lt;div style=&quot;display: none;&quot;&gt;#!/bin/sh&lt;br /&gt;
# update-alternatives&lt;br /&gt;
#&lt;br /&gt;
# Copyright (C) 2001 Carl D. Worth&lt;br /&gt;
#&lt;br /&gt;
# This program was inspired by the Debian update-alternatives program&lt;br /&gt;
# which is Copyright (C) 1995 Ian Jackson. This version of&lt;br /&gt;
# update-alternatives is command-line compatible with Debian&#39;s for a&lt;br /&gt;
# subset of the options, (only --install, --remove, and --help)&lt;br /&gt;
#&lt;br /&gt;
# This program is free software; you can redistribute it and/or modify&lt;br /&gt;
# it under the terms of the GNU General Public License as published by&lt;br /&gt;
# the Free Software Foundation; either version 2, or (at your option)&lt;br /&gt;
# any later version.&lt;br /&gt;
#&lt;br /&gt;
# This program is distributed in the hope that it will be useful,&lt;br /&gt;
# but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&lt;br /&gt;
# GNU General Public License for more details.&lt;br /&gt;
&lt;br /&gt;
set -e&lt;br /&gt;
&lt;br /&gt;
# admin dir&lt;br /&gt;
ad=&quot;$IPKG_OFFLINE_ROOT/usr/lib/ipkg/alternatives&quot;&lt;br /&gt;
&lt;br /&gt;
usage() {&lt;br /&gt;
echo &quot;update-alternatives: $*&lt;br /&gt;
&lt;br /&gt;
Usage: update-alternatives --install&lt;br /&gt;
&lt;br /&gt;
update-alternatives --remove&lt;br /&gt;
update-alternatives --help&lt;br /&gt;
&lt;br /&gt;
is the link pointing to the provided path (ie. /usr/bin/foo).&lt;br /&gt;
is the name in $ad/alternatives (ie. foo)&lt;br /&gt;
&lt;br /&gt;
is the name referred to (ie. /usr/bin/foo-extra-spiffy)&lt;br /&gt;
&lt;br /&gt;
is an integer; options with higher numbers are chosen.&lt;br /&gt;
&quot; &amp;gt;&amp;amp;2&lt;br /&gt;
exit 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
quit() {&lt;br /&gt;
echo &quot;update-alternatives: $*&quot; &amp;gt;&amp;amp;2&lt;br /&gt;
exit 2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
register_alt() {&lt;br /&gt;
[ $# -lt 2 ] &amp;amp;&amp;amp; return 1&lt;br /&gt;
local name=&quot;$1&quot;&lt;br /&gt;
local link=&quot;$2&quot;&lt;br /&gt;
&lt;br /&gt;
if [ ! -d $ad ]; then&lt;br /&gt;
mkdir -p $ad&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -e &quot;$ad/$name&quot; ]; then&lt;br /&gt;
local olink=`head -n 1 $ad/$name`&lt;br /&gt;
if [ &quot;$link&quot; != &quot;$olink&quot; ]; then&lt;br /&gt;
echo &quot;update-alternatives: Error: cannot register alternative $name to $link since it is already registered to $olink&quot; &amp;gt;&amp;amp;2&lt;br /&gt;
return 1&lt;br /&gt;
fi&lt;br /&gt;
else&lt;br /&gt;
echo &quot;$link&quot; &amp;gt; &quot;$ad/$name&quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
return 0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
protect_slashes() {&lt;br /&gt;
sed -e &#39;s/\//\\\//g&#39;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
remove_alt() {&lt;br /&gt;
[ $# -lt 2 ] &amp;amp;&amp;amp; return 1&lt;br /&gt;
local name=&quot;$1&quot;&lt;br /&gt;
local path=&quot;$2&quot;&lt;br /&gt;
&lt;br /&gt;
[ ! -f $ad/$name ] &amp;amp;&amp;amp; return 0&lt;br /&gt;
&lt;br /&gt;
path=`echo $path | protect_slashes`&lt;br /&gt;
sed -ne &quot;/^$path\&amp;gt;.*/!p&quot; $ad/$name &amp;gt; $ad/$name.new&lt;br /&gt;
mv $ad/$name.new $ad/$name&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
add_alt() {&lt;br /&gt;
[ $# -lt 3 ] &amp;amp;&amp;amp; return 1&lt;br /&gt;
local name=&quot;$1&quot;&lt;br /&gt;
local path=&quot;$2&quot;&lt;br /&gt;
local priority=&quot;$3&quot;&lt;br /&gt;
remove_alt $name $path&lt;br /&gt;
echo &quot;$path $priority&quot; &amp;gt;&amp;gt; $ad/$name&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
find_best_alt() {&lt;br /&gt;
[ $# -lt 1 ] &amp;amp;&amp;amp; return 1&lt;br /&gt;
[ ! -f $ad/$name ] &amp;amp;&amp;amp; return 0&lt;br /&gt;
&lt;br /&gt;
link=$IPKG_OFFLINE_ROOT/`head -n 1 $ad/$name`&lt;br /&gt;
&lt;br /&gt;
## path=`sed -ne &quot;1!p&quot; $ad/$name | sort -nr -k2 | head -1 | sed &#39;s/ .*//&#39;`&lt;br /&gt;
## busybox safe:&lt;br /&gt;
path=`sed -ne &quot;1!p&quot; $ad/$name | sed -e &quot;s/\(.*\) \(.*\)/\2 \1/g&quot; | sort -nr | head -n 1 | sed &#39;s/[^ ]* //&#39;`&lt;br /&gt;
if [ -z &quot;$path&quot; ]; then&lt;br /&gt;
echo &quot;update-alternatives: removing $link as no more alternatives exist for it&quot;&lt;br /&gt;
rm $ad/$name&lt;br /&gt;
if [ -L $link ]; then&lt;br /&gt;
rm $link&lt;br /&gt;
fi&lt;br /&gt;
return 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ ! -e $link -o -L $link ]; then&lt;br /&gt;
local link_dir=`dirname $link`&lt;br /&gt;
if [ ! -d $link_dir ]; then&lt;br /&gt;
mkdir -p $link_dir&lt;br /&gt;
fi&lt;br /&gt;
ln -sf $path $link&lt;br /&gt;
echo &quot;update-alternatives: Linking $link to $path&quot;&lt;br /&gt;
else&lt;br /&gt;
echo &quot;update-alternatives: Error: not linking $link to $path since $link exists and is not a link&quot;&lt;br /&gt;
return 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
return 0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
do_install() {&lt;br /&gt;
if [ $# -lt 4 ]; then&lt;br /&gt;
usage &quot;--install needs&lt;br /&gt;
&lt;br /&gt;
&quot;&lt;br /&gt;
fi&lt;br /&gt;
local link=&quot;$1&quot;&lt;br /&gt;
local name=&quot;$2&quot;&lt;br /&gt;
local path=&quot;$3&quot;&lt;br /&gt;
local priority=&quot;$4&quot;&lt;br /&gt;
&lt;br /&gt;
path=`echo $path | sed &#39;s|/\+|/|g&#39;`&lt;br /&gt;
&lt;br /&gt;
# This is a bad hack, but I haven&#39;t thought of a cleaner solution yet...&lt;br /&gt;
[ -n &quot;$IPKG_OFFLINE_ROOT&quot; ] &amp;amp;&amp;amp; path=`echo $path | sed &quot;s|^$IPKG_OFFLINE_ROOT/*|/|&quot;`&lt;br /&gt;
&lt;br /&gt;
register_alt $name $link&lt;br /&gt;
add_alt $name $path $priority&lt;br /&gt;
find_best_alt $name&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
do_remove() {&lt;br /&gt;
if [ $# -lt 2 ]; then&lt;br /&gt;
usage &quot;--remove needs&lt;br /&gt;
&quot;&lt;br /&gt;
fi&lt;br /&gt;
local name=&quot;$1&quot;&lt;br /&gt;
local path=&quot;$2&quot;&lt;br /&gt;
&lt;br /&gt;
path=`echo $path | sed &#39;s|/\+|/|g&#39;`&lt;br /&gt;
&lt;br /&gt;
# This is a bad hack, but I haven&#39;t thought of a cleaner solution yet...&lt;br /&gt;
[ -n &quot;$IPKG_OFFLINE_ROOT&quot; ] &amp;amp;&amp;amp; path=`echo $path | sed &quot;s|^$IPKG_OFFLINE_ROOT/*|/|&quot;`&lt;br /&gt;
&lt;br /&gt;
remove_alt $name $path&lt;br /&gt;
find_best_alt $name&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
###&lt;br /&gt;
# update-alternatives &quot;main&quot;&lt;br /&gt;
###&lt;br /&gt;
&lt;br /&gt;
while [ $# -gt 0 ]; do&lt;br /&gt;
arg=&quot;$1&quot;&lt;br /&gt;
shift&lt;br /&gt;
&lt;br /&gt;
case $arg in&lt;br /&gt;
--help)&lt;br /&gt;
usage &quot;help:&quot;&lt;br /&gt;
exit 0&lt;br /&gt;
;;&lt;br /&gt;
--install)&lt;br /&gt;
do_install $*&lt;br /&gt;
exit $?&lt;br /&gt;
;;&lt;br /&gt;
--remove)&lt;br /&gt;
do_remove $*&lt;br /&gt;
exit $?&lt;br /&gt;
;;&lt;br /&gt;
*)&lt;br /&gt;
usage &quot;unknown argument \`$arg&#39;&quot;&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
usage &quot;at least one of --install or --remove must appear&quot;&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;chmod +x update-alternatives&lt;br /&gt;
opkg update&lt;br /&gt;
ln -s /tmp/mounts/Disc-A1/opt /opt&lt;/blockquote&gt;L&#39;ultimo comando crea un link simbolico tra l&#39;hd e la flash interna. Dopo aver installato un qualsiasi programma vi dovrebbe bastare usare ldconfig per indicizzare (credo) le librerie.&lt;br /&gt;
&lt;blockquote&gt;ldconfig -p&lt;/blockquote&gt;dà la lista con le librerie trovate.&lt;br /&gt;
&lt;blockquote&gt;opkg -dest usb install NOMEPACCHETTO&lt;/blockquote&gt;Per installare qualsiasi pacchetto sull&#39;hd.&lt;br /&gt;
Se il pacchetto proviene da nslu2-linux.org sarà installato in &quot;/tmp/mounts/Disc-A1/opt&quot; e se invece è di openwrt sarà installato in &quot;/tmp/mounts/Disc-A1&quot; in ogni caso verrà trovato dal sistema.&lt;br /&gt;
Spero di essere stato chiaro e in qualche modo d&#39;aiuto ;)&lt;br /&gt;
&lt;br /&gt;
---Aggiornamento---&lt;br /&gt;
Mi ero dimenticato di scrivere come aggiungere gli script necessari per quei pacchetti installati da nslu2-linux.org che contengono uno script all&#39;avvio (mysql, lighttpd, etc..)&lt;br /&gt;
&lt;blockquote&gt;vi /etc/init.d/optware&lt;/blockquote&gt;&lt;div style=&quot;margin-bottom: 2px;&quot;&gt;come prima incollate il codice:&lt;br /&gt;
&lt;div style=&quot;margin-top: 5px; text-align: center;&quot;&gt;&lt;input onclick=&quot;if (this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display != &#39;&#39;) { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;&#39;; this.innerText = &#39;&#39;; this.value = &#39;Nascondi&#39;; } else { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;none&#39;; this.innerText = &#39;&#39;; this.value = &#39;Mostra&#39;; }&quot; style=&quot;font-size: 10px; margin-top: 5px; width: 60px;&quot; type=&quot;button&quot; value=&quot;Mostra&quot; /&gt; &lt;/div&gt;&lt;div style=&quot;border: 1px inset; margi: 0px; padding: 6px;&quot;&gt;&lt;div style=&quot;display: none;&quot;&gt;#!/bin/sh /etc/rc.common&lt;br /&gt;
&lt;br /&gt;
START=80&lt;br /&gt;
&lt;br /&gt;
start() {&lt;br /&gt;
echo &quot;Starting Optware.&quot;&lt;br /&gt;
[ -x /opt/etc/rc.optware ] &amp;amp;&amp;amp; /opt/etc/rc.optware start&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
stop() {&lt;br /&gt;
echo &quot;Shutting down Optware.&quot;&lt;br /&gt;
[ -x /opt/etc/rc.optware ] &amp;amp;&amp;amp; /opt/etc/rc.optware stop&lt;br /&gt;
}&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;chmod +x /etc/init.d/optware&lt;/blockquote&gt;&lt;blockquote&gt;mkdir -p /opt/etc&lt;br /&gt;
vi /opt/etc/rc.optware&lt;/blockquote&gt;&lt;div style=&quot;margin-bottom: 2px;&quot;&gt;codice:&lt;br /&gt;
&lt;div style=&quot;margin-top: 5px; text-align: center;&quot;&gt;&lt;input onclick=&quot;if (this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display != &#39;&#39;) { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;&#39;; this.innerText = &#39;&#39;; this.value = &#39;Nascondi&#39;; } else { this.parentNode.parentNode.getElementsByTagName(&#39;div&#39;)[1].getElementsByTagName(&#39;div&#39;)[0].style.display = &#39;none&#39;; this.innerText = &#39;&#39;; this.value = &#39;Mostra&#39;; }&quot; style=&quot;font-size: 10px; margin-top: 5px; width: 60px;&quot; type=&quot;button&quot; value=&quot;Mostra&quot; /&gt; &lt;/div&gt;&lt;div style=&quot;border: 1px inset; margi: 0px; padding: 6px;&quot;&gt;&lt;div style=&quot;display: none;&quot;&gt;#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# Start all init scripts in /opt/etc/init.d&lt;br /&gt;
# executing them in numerical order.&lt;br /&gt;
#&lt;br /&gt;
if [ x$1 == xstop ] ; then&lt;br /&gt;
progs=&quot;/opt/etc/init.d/K??*&quot;&lt;br /&gt;
rc=stop&lt;br /&gt;
else&lt;br /&gt;
progs=&quot;/opt/etc/init.d/S??*&quot;&lt;br /&gt;
rc=start&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for i in $progs ;do&lt;br /&gt;
&lt;br /&gt;
# Ignore dangling symlinks (if any).&lt;br /&gt;
[ ! -f &quot;$i&quot; ] &amp;amp;&amp;amp; continue&lt;br /&gt;
&lt;br /&gt;
echo starting $i&lt;br /&gt;
case &quot;$i&quot; in&lt;br /&gt;
*.sh)&lt;br /&gt;
# Source shell script for speed.&lt;br /&gt;
(&lt;br /&gt;
trap - INT QUIT TSTP&lt;br /&gt;
set $rc&lt;br /&gt;
. $i&lt;br /&gt;
)&lt;br /&gt;
;;&lt;br /&gt;
*)&lt;br /&gt;
# No sh extension, so fork subprocess.&lt;br /&gt;
$i $rc&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
done&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;chmod +x /opt/etc/rc.optware&lt;/blockquote&gt;e infine per abilitare lo script come si fa su openwrt dare &lt;br /&gt;
&lt;blockquote&gt;/etc/init.d/optware enable&lt;/blockquote&gt;Quest&#39;ultimo passaggio non l&#39;ho testato sulla fonera2.0n ma su openwrt (ovviamente) funziona.&lt;br /&gt;
&lt;br /&gt;
Fonti:&lt;br /&gt;
&lt;a href=&quot;http://unfa.ir/Vlog/2009/11/openwrt-postinst-returned-127/&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.erriko.it/internet-co/fonera/la-fonera-2-0n-episodio-4-installare-i-programmi-su-memoria-usb-esterna/&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://forum.openwrt.org/viewtopic.php?pid=108500#p108500&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.nslu2-linux.org/wiki/OpenWrt/HomePage&quot;&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://bisont87.blogspot.com/feeds/6329277190343120384/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://bisont87.blogspot.com/2011/03/repository-optware-sulla-fonera-20n.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default/6329277190343120384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default/6329277190343120384'/><link rel='alternate' type='text/html' href='http://bisont87.blogspot.com/2011/03/repository-optware-sulla-fonera-20n.html' title='Repository optware sulla Fonera 2.0n'/><author><name>OrSo</name><uri>http://www.blogger.com/profile/13409084918320180361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1132099239449964047.post-1661268678707738907</id><published>2011-03-21T12:15:00.001-07:00</published><updated>2011-03-22T16:19:34.536-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="direct download"/><category scheme="http://www.blogger.com/atom/ns#" term="JDowloader"/><category scheme="http://www.blogger.com/atom/ns#" term="pyLoad"/><title type='text'>Risolvere automaticamente i re-captcha</title><content type='html'>Per puro caso ho trovato questo servizio che offre un metodo davvero particolare per risolvere i captcha.&lt;br /&gt;
&lt;a href=&quot;http://captchatrader.com/users/refer/bisont87/%20&quot;&gt;Captchatrader&lt;/a&gt; infatti permette la soluzione di questi maledetti codici con un sistema a crediti.&lt;br /&gt;
10 o 5 crediti per rislolverne uno, il costo dipende dal tipo, se sotto forma di testo o immagine. Ovviamente c&#39;è la possibilità di acquistare i crediti, ma soprattutto si possono &quot;guadgnare&quot; risolvendo i captcha di altri utenti.&lt;br /&gt;
3 o 7 crediti per ogni codice corretto inviato sono (dipende sempre dal tipo).&lt;br /&gt;
Infine c&#39;è la classica campagna con i referral link. &lt;br /&gt;
Per sfruttare il servizio si deve installare il plugin in &lt;a href=&quot;http://jdownloader.org/&quot;&gt;JDownloader&lt;/a&gt; o si può usare &lt;a href=&quot;http://pyload.org/&quot;&gt;pyLoad&lt;/a&gt; che ce l&#39;ha integrato.&lt;br /&gt;
Per chi non li conoscesse sono due programma per la gestione di link come Rapidshare e Megaupload il primo scritto in Java, credo che sia il più famoso e versatile, ha però il difetto di essere un mattone.... pyLoad invece è scritto in python,  per me era sconosciuto fino a prima di scoprire Captchatrader ma è moooooooolto più leggero. Tanto leggero che sono riuscito a farlo girare sulla Fonera2.0n (ma questo lo scrivo un&#39;altra volta :P).&lt;br /&gt;
Torniamo a&amp;nbsp;&lt;a href=&quot;http://captchatrader.com/users/refer/bisont87/&quot;&gt;Captchatrader&lt;/a&gt;. Dopo la registrazione basta scaricare il plugin dalla &lt;a href=&quot;http://captchatrader.com/plugins/&quot;&gt;pagina realtiva &lt;/a&gt;unzipparlo e copiare la cartella &quot;captchatrader&quot; in &quot;&amp;lt;CARTELLA DI INSTALLAZIONE DI JDownloader&amp;gt;\jd\captcha\methods&quot;. Dopodichè aprite la cartella del plugin e modificate con &quot;Blocco note&quot; il file &quot;captchatrader.properties&quot; inserendo nome utente e password.&lt;br /&gt;
Finito. Al prossimo avvio JDownloader sarà in grado di risolvere da solo i captcha inviati da siti di hosting come Fileserve o Hotfile. Una seccatura in meno! ;) &lt;br /&gt;
Se la cosa vi interessa per iscrivervi potreste usare il mio link di refer: &lt;a href=&quot;http://captchatrader.com/users/refer/bisont87/&quot;&gt;http://captchatrader.com/users/refer/bisont87/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://bisont87.blogspot.com/feeds/1661268678707738907/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://bisont87.blogspot.com/2011/03/risolvere-automaticamente-i-re-captcha.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default/1661268678707738907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default/1661268678707738907'/><link rel='alternate' type='text/html' href='http://bisont87.blogspot.com/2011/03/risolvere-automaticamente-i-re-captcha.html' title='Risolvere automaticamente i re-captcha'/><author><name>OrSo</name><uri>http://www.blogger.com/profile/13409084918320180361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1132099239449964047.post-4123202547090099817</id><published>2011-03-20T09:52:00.000-07:00</published><updated>2011-05-02T10:00:19.220-07:00</updated><title type='text'>Salve a tutti!</title><content type='html'>&lt;div style=&quot;font-family: inherit;&quot;&gt;Sto aprendo questo blog più che altro per avere un diario personale con gli appunti delle piccole scoperte fatte, ultimamente perlopiù riguardanti la Fonera2.0n e Openwrt. Per quanto possano essere delle cose semplici o inutili ciò non toglie che la condivisione delle informazioni è il principio secondo cui secondo me si dovrebbe basare internet, tra l&#39;altro se non avessi avuto il supporto dei vari forum o blog sparsi nella rete non avrei sicuramente potuto capire nè fare nulla di ciò che ho fatto.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;Un saluto a tutti! ;)&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;bisont87&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;P.S.: Sì, il titolo non c&#39;entra un tubo con il tema, ma è rimasto quello per tradizione :P&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Le guide che trovate su questo blog sono basate sulla mia esperienzapersonale e sulle community citate, seguibili quindi a proprio rischio e pericolo e senza nessun tipo di garanzia. &lt;/span&gt;Non mi ritengo responsabile di eventuali danni recati a persone o cose, nè dell&#39;uso che ne farete.</content><link rel='replies' type='application/atom+xml' href='http://bisont87.blogspot.com/feeds/4123202547090099817/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://bisont87.blogspot.com/2011/03/salve-tutti.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default/4123202547090099817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1132099239449964047/posts/default/4123202547090099817'/><link rel='alternate' type='text/html' href='http://bisont87.blogspot.com/2011/03/salve-tutti.html' title='Salve a tutti!'/><author><name>OrSo</name><uri>http://www.blogger.com/profile/13409084918320180361</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>