[gl-como] cambiamento memoria su modem

Matteo Cavalleri theos@bp.lnf.it
Ven 1 Dic 2006 16:26:57 CET


redshadow ha scritto:

> mi rivolgo soprattutto a [non mi ricordo il nome.. scusatemi la
> dimenticanza.. quello esperto di elettronica
> che c'era al LD..].
> volevo provare a configurare bene il modem e modificare anche la
> busybox che c'è sopra per aggiungere
> funzioni e modificare qualche cosa che proprio non va (es: accesso
> telnet e http alla cfg del modem accessibile
> anche da internet,,,), problema: ci sono 1,2mb di spazio (immagino usi
> una memoria flash).
> qualcuno sa dirmi se e possibile e come si può fare per sostituire la
> memoria e mettere dentro per esempio
> quella di una chiavetta usb?

Ciao,
probabilmente hai parlato con me.  Io ho un linksys WRT54G e ho
utilizzato una SDcard.
Devi praticamente identificare alcuni I/O liberi (generalmente ci sono
dei pin di i/o general purpose, oppure utilizzare quelli già usati per
pilotare led e compagnia bella.). Poi usi il modulo mmc.c
(ricompilandolo x la tua piattaforma, avendo cura di associare
correttamente a ciascun pin le linee che hai utilizzato realmente).
Se tutto va bene, con insmod mmc dovresti vedere un nuovo dispositivo.
Poi ti scarichi le routine fdisk, mkds.ext2, mount.ext2, mkswap,
swapon... (le trovi già pronte in qualche pacchetto, come ho fatto io).
Io x es. ho preso una memoria da 256Mb, ho fatto 2 partizioni da 100Mb e
una swap da 26Mb.
Per installare un pacchetto sulla partizione aggiuntiva (es. /opt) ,
definisci una locazione (es. "sd")  nel file /etc/ipkg.conf (es. cat
dest sd /opt >> /etc/ipkg.conf).
Dopodichè usa la flag --dest nel comando ipkg.
In ultimo, ho tovato in rete uno script molto carino che ti permette di
linkare i files nel filesystem originale
lo posto...
buon divertimento...
matteo

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



-- 
This message has been scanned for viruses and
dangerous content by OpenProtect(http://www.openprotect.com), and is
believed to be clean.

-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        theos.vcf
Tipo:        text/x-vcard
Dimensione:  346 bytes
Descrizione: non disponibile
Url:         http://lists.linux.it/pipermail/gl-como/attachments/20061201/d2cc9d01/theos.vcf


Maggiori informazioni sulla lista gl-como