WL-500G Premium: Installare pacchetti sullla periferica usb esterna
Da Wizard linux team wiki.
Contents |
Premessa
L' Asus WL-500G Premium è certamente un bel giocattolo ma ha la limitazione della capacità di memoria che diminuisce notevolmente tutti i bei giochini che si possono fare ... soluzione? Installare i pacchetti su un pendrive usb esterno (anche hdd o a altro non ha importanza).
Far riconoscere la periferica
- Se non è già stato fatto installiamo i moduli per lo storage USB e per il riconoscimento dei FS:
ipkg install kmod-usb-core kmod-usb-storage kmod-usb-ohci kmod-usb-serial kmod-usb-uhci kmod-vfat kmod-fs-ext3 kmod-ext2
(Ulteriori dettagli li strovate presso: http://wlt.netsons.org/wiki/index.php/Disco_USB_2.0_su_OpenWRT_su_ASUS_WL-500G)
N.B.:la periferica deve essere formattata ext2
- Inseriamo il modulo:
insmod ext2
- Per farlo caricare al boot:
echo 'ext2' > /etc/modules.d/30-ext2
- Creazione del punto di mount:
mkdir -p /mnt/sd
- Mount all'avvio:
echo 'mount /dev/mmc/disc0/part1 /mnt/sd' > /etc/init.d/S60externalmount chmod +x /etc/init.d/S60externalmount
N.B.: il device potrebbe essere diverso da /dev/mmc/disc0/part1 si puo vedere precisamente faccendo un dmesg e cercando una cosa di questo tipo: /dev/scsi/host0/bus0/target0/lun0. Se è così aggiungere /disc
Modifica dell'eviroment e creazione script
- Editare il file /etc/profile e alla linea dove si legge
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
- modificarla in questo modo:
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/mnt/sd/bin:/mnt/sd/sbin:/mnt/sd/usr/bin:/mnt/sd/usr/sbin
- aggiungere:
export LD_LIBRARY_PATH=/lib:/usr/lib:/mnt/sd/lib:/mnt/sd/usr/lib
- Configurare il file ipkg.conf:
echo 'dest sd /mnt/sd' >> /etc/ipkg.conf
- Fare copia e incolla del seguente script sotto /bin. (Questo script vi permette di effettuare dei link simbolici sotto le esistenti directory della flash.)
#!/bin/sh
COMMAND=$1
PACKAGE=$2
setdest () {
for i in `grep dest /etc/ipkg.conf | cut -d ' ' -f 3`; do
if [ -f $i/usr/lib/ipkg/info/$PACKAGE.list ]; then
DEST=$i
fi
done
if [ "x$DEST" = "x" ]; then
echo "Can not locate $PACKAGE."
echo "Check /etc/ipkg.conf for correct dest listings";
echo "Check name of requested package: $PACKAGE"
exit 1
fi
}
addlinks () {
setdest;
cat $DEST/usr/lib/ipkg/info/$PACKAGE.list | while read LINE; do
SRC=$LINE
DST=`echo $SRC | sed "s|$DEST||"`
DSTNAME=`basename $DST`
DSTDIR=`echo $DST | sed "s|$DSTNAME\$||"`
test -f "$SRC"
if [ $? = 0 ]; then
test -e "$DST"
if [ $? = 1 ]; then
mkdir -p $DSTDIR
ln -sf $SRC $DST
else
echo "Not linking $SRC to $DST"
echo "$DST Already exists"
fi
else
test -d "$SRC"
if [ $? = 0 ]; then
test -e $DST
if [ $? = 1 ]; then
mkdir -p $DST
else
echo "directory already exists"
fi
else
echo "Source directory $SRC does not exist"
fi
fi
done
}
removelinks () {
setdest;
cat $DEST/usr/lib/ipkg/info/$PACKAGE.list | while read LINE; do
SRC=$LINE
DST=`echo $LINE | sed "s|$DEST||"`
DSTNAME=`basename $DST`
DSTDIR=`echo $DST | sed "s|$DSTNAME\$||"`
test -f $DST
if [ $? = 0 ]; then
rm -f $DST
test -d $DSTDIR && rmdir $DSTDIR 2>/dev/null
else
test -d $DST
if [ $? = 0 ]; then
rmdir $DST
else
echo "$DST does not exist"
fi
fi
done
}
mountdest () {
test -d $PACKAGE
if [ $? = 1 ]; then
echo "Mount point does not exist"
exit 1
fi
for i in $PACKAGE/usr/lib/ipkg/info/*.list; do
$0 add `basename $i .list`
done
}
umountdest () {
test -d $PACKAGE
if [ $? = 1 ]; then
echo "Mount point does not exist"
exit 1
fi
for i in $PACKAGE/usr/lib/ipkg/info/*.list; do
$0 remove `basename $i .list`
done
}
case "$COMMAND" in
add)
addlinks
;;
remove)
removelinks
;;
mount)
mountdest
;;
umount)
umountdest
;;
*)
echo "Usage: $0 <cmd> <target>"
echo " Commands: add, remove, mount, umount"
echo " Targets: <package>, <mount point>"
echo "Example: $0 add kismet-server"
echo "Example: $0 remove kismet-server"
echo "Example: $0 mount /mnt/usb"
echo "Example: $0 umount /mnt/usb"
exit 1
;;
esac
exit 0
*Date i permessi di esecuzione con
<pre>chmod a+x /bin/ipkg-link
- Prepariamo la struttura delle directocry destinazione sul pendrive:
mkdir /mnt/sd/bin mkdir /mnt/sd/sbin mkdir /mnt/sd/usr/bin mkdir /mnt/sd/usr mkdir /mnt/sd/usr/bin mkdir /mnt/sd/usr/sbin mkdir /mnt/sd/opt mkdir /mnt/sd/opt/bin
Installazione dei pacchetti
Un pacchetto ora viene installato sulla periferica usb con:
ipkg -d sd install tcpdump
Infine facciamo creare i link simbolici dalla periferica usb con la flash lanciando lo scrpt ipkg-link. Quindi:
- per il package singolo
ipkg-link add kismet-server
- per farli tutti:
ipkg-link mount /mnt/sd
- per rimuoverne uno specifico:
ipkg-link remove kismet-server
- per rimuoverli tutti:
ipkg-link umount /mnt/sd

