Optware-ng, installiamo pacchetti linux su dispositivi arm con android

Utilizzando un box android come mediacenter ho notato che non ci sono valide alternative altrettanto free ad alcune applicazioni disponibili per le varie piattaforme linux. Parlo di

  • transmission gestore di torrent con interfaccia web
  • pyLoad gestore di download configurabile con numerosi plugin dotato di interfaccia web
  • minidlna server dlna configurabile via file, leggero ed estremamente efficiente
  • dropbear server ssh leggero per accedere al dispositivo e controllarlo da remoto da riga di comando
  • samba server per la condivisione di file e cartelle sulla rete

Così ho installato optware-ng, un mini package manager (ipkg) che installa pacchetti da un suo repository e che possono coesistere con il sistema principale (android). Il risultato è un vero è proprio mediacenter con tutte le funzionalità di download, condivisione e gestione remota che un sistema di questo tipo dovrebbe avere. Ho testato optware-ng su vari dispositivi tra smartphone e box equipaggiati con android 4 (kitkat), 5 (lollipop) e anche 6 (marshmallow).

Premessa

Personalmente ho testato la procedura solo su dispositivi con permessi di root, non credo che optware-ng possa essere installato su dispositivi senza permessi di root. Questa procedura è destinata ad utenti che:

  • hanno già un minimo di esperienza nell’uso di android mediante shell
  • conoscono la modalità di gestione dei permessi di android
  • hanno familiarità con il file system di android

in quanto se dovesse capitare che durante l’installazione qualcosa non dovesse funzionare a dovere, l’utente è in grado di riparare al problema o quantomeno sapere come chiedere aiuto. Esorto quindi chi non avesse le competenze sopracitate a non cimentarsi.

Preparazione

Se non avete già busybox installato sul dispositivo, conviene installarlo. Lo trovate su Google Play o potete installarlo da shell usando il binario arm v7 (nel mio caso) scaricandolo direttamente dal sito busybox.

Tramite adb o mediante l’uso di una comoda app (Adb over Ethernet) abbiamo accesso alla shell in modalità root e procediamo alla preparazione del filesystem:

# mount -o remount,rw / 
# mount -o remount,rw /system 
# mount -o remount,rw /data 
# mkdir /data/opt 
# chmod 775 /data 
# chmod 777 /data/opt 
# ln -s /data/opt /opt 
# mkdir -p /data/opt/tmp 
# chmod 777 /data/opt/tmp 
# ln -s /data/opt/tmp /tmp 
# mkdir /bin 
# ln -s /system/bin/sh /bin/sh

creiamo il file /etc/resolv.conf e aggiungiamo i dns

nameserver 8.8.8.8 
nameserver 8.8.4.4

creiamo il file /etc/passwd (lo richiede samba)

root:x:0:0:root:/data/opt:/bin/bash
nobody:x:1005:1005:nobody:/data/opt:/bin/bash

Installare optware-ng

# export PATH=/data/opt/sbin:/data/opt/bin:/data/opt:$PATH 
# export TMPDIR=/data/opt/tmp 
# cd /opt 
# wget -O buildroot-armeabihf-bootstrap.sh http://optware-ng.zyxmon.org/buildroot-armeabihf/buildroot-armeabihf-bootstrap.sh 
# sh buildroot-armeabihf-bootstrap.sh 
# mkdir -p /data/opt/var/run 
# /opt/bin/ipkg update

se tutto è andato correttamente, ipkg avrà aggiornato la lista dei pachetti. Installiamo adesso i pacchetti necessari

# ipkg install samba 
# ipkg install minidlna 
# ipkg install pyload 
# ipkg install transmission

Configurare optware-ng per l’avvio al boot

creiamo il file /opt/start.sh che dobbiamo lanciare all’avvio con permessi di root (usando script manager). In questo file aggiungiamo il lancio delle applicazioni che vogliamo avviare al boot. In questo esempio io avvio dropbear per l’accesso via ssh (aggiornate il valore della password), ntpd per l’aggiornamento della data e ora, pyload e il server samba.

#!/system/bin/sh 
# remount filesystem and set symlinks 
mount -o remount,rw rootfs / 
ln -s /data/opt /opt 
ln -s /data/opt/tmp /tmp 
chmod 777 /data/opt/tmp 
rm -rf /data/opt/tmp/* 
mkdir /bin 
ln -s /system/bin/sh /bin/sh 
mount -o remount,ro /  

# update PATH 
export PATH=/data/opt/sbin:/data/opt/bin:/data/opt:$PATH 
export TMPDIR=/data/opt/tmp  

# openssh server 
rm -rf /data/opt/var/run/dropbear.pid 
/data/opt/sbin/dropbear -A -N root -U 0 -G 0 -C <password> -p 22  

# update date 
(ntpd -q -p 1.it.pool.ntp.org) &  

# pyLoad 
/opt/etc/init.d/S98Pyload start &  

# start samba server 
/opt/etc/init.d/S08samba start &

 

Per ulteriori approfondimenti potete dare un’occhiata alle varie richieste (sia chiuse che ancora aperte) che compaiono sul sito del progetto.

 

Lascia il primo commento

Lascia un commento