FONERA+ con ssh (how to)
Activar SSH en la FONERA+
(la idea original es de FrancoFON.FR, solo lo traduje y adapte un poco)
Página original aquí.
Poner un PC Con windows o con Linux (vale una maquina virtual)
Poner a funcionar un Web Server, con Perl, fping y perl-Net-Telnet
Bajar dos ficheros (de FrancoFON.FR)
___ redboot.pl
___ firmware_francofon.bin
Los ficheros están aca
___ http://download.francofon.fr/fonera_plus_ssh/redboot.pl
___ http://download.francofon.fr/fonera_plus_ssh/firmware_francofon.bin
Yo renombré firmware_francofon.bin a f.bin (para simplificar el tipeo)
En el PC poner como ip
___ 192.168.1.254/255.255.0.0
ir a una sesion de shell y poner
___ perl redboot.pl 192.168.1.1
Luego conectar la fonera, el puerto blanco con un cable cruzado al PC.
Encender la Fonera, unos segundos despues, aparecerá la consola de RedBoot.
Escribir
___ ip_address -l 192.168.1.1/24 -h 192.168.1.254
luego escribir paso a paso
___ fis delete image
luego indicar de donde debe buscar el BIN
___ load -r -b 0x80100000 /f.bin -m HTTP -h 192.168.1.254
y luego lo mas importante
___ fis create -b 0x80100000 -l 0x00237040 -f 0xA8040000 -e 0x80040400 -r 0x80040400 image
Si en algun momento aparece un error, empezar el proceso desde cero.
¿ PARA QUE SIRVE ESTO ?
Para poder acceder a la fonera con SSH, para poder ver cuando se reinicia sola (lo hace cuando le da la gana...), para poder poner el firmware FrancoFon que tiene mas opciones muy útiles, para poder trastear un poco con ella y porque es gratis.
Una de las opciones que quiero poner en el firmware es el tema "proxys", en empresas donde tenemos proxys hay que indicar a mano
___ export http_proxy=http://ip.proxy:puerto
___ export ftp_proxy=http://ip.proxy:puerto
Algo de las foneras aún no traen.
EL CODIGO DEL REDBOOT.PL
Para los que les gusta PERL, pongo el código fuente del redboot.pl,
(el código también es de FrancoFON.FR)
(la idea original es de FrancoFON.FR, solo lo traduje y adapte un poco)
Página original aquí.
Poner un PC Con windows o con Linux (vale una maquina virtual)
Poner a funcionar un Web Server, con Perl, fping y perl-Net-Telnet
Bajar dos ficheros (de FrancoFON.FR)
___ redboot.pl
___ firmware_francofon.bin
Los ficheros están aca
___ http://download.francofon.fr/fonera_plus_ssh/redboot.pl
___ http://download.francofon.fr/fonera_plus_ssh/firmware_francofon.bin
Yo renombré firmware_francofon.bin a f.bin (para simplificar el tipeo)
En el PC poner como ip
___ 192.168.1.254/255.255.0.0
ir a una sesion de shell y poner
___ perl redboot.pl 192.168.1.1
Luego conectar la fonera, el puerto blanco con un cable cruzado al PC.
Encender la Fonera, unos segundos despues, aparecerá la consola de RedBoot.
Escribir
___ ip_address -l 192.168.1.1/24 -h 192.168.1.254
luego escribir paso a paso
___ fis delete image
luego indicar de donde debe buscar el BIN
___ load -r -b 0x80100000 /f.bin -m HTTP -h 192.168.1.254
y luego lo mas importante
___ fis create -b 0x80100000 -l 0x00237040 -f 0xA8040000 -e 0x80040400 -r 0x80040400 image
Si en algun momento aparece un error, empezar el proceso desde cero.
¿ PARA QUE SIRVE ESTO ?
Para poder acceder a la fonera con SSH, para poder ver cuando se reinicia sola (lo hace cuando le da la gana...), para poder poner el firmware FrancoFon que tiene mas opciones muy útiles, para poder trastear un poco con ella y porque es gratis.
Una de las opciones que quiero poner en el firmware es el tema "proxys", en empresas donde tenemos proxys hay que indicar a mano
___ export http_proxy=http://ip.proxy:puerto
___ export ftp_proxy=http://ip.proxy:puerto
Algo de las foneras aún no traen.
EL CODIGO DEL REDBOOT.PL
Para los que les gusta PERL, pongo el código fuente del redboot.pl,
(el código también es de FrancoFON.FR)
#!/usr/bin/perl -w
use Net::Telnet ();
my $host = $ARGV[0] or die "Syntax: $0\n";
system("while true; do fping -t200 $host && break; done");
my $t = new Net::Telnet (Port => 9000, Timeout => 30);
if(!defined($t)){
print "new Net::Telnet failed\n";
exit(1);
} # if
my $ok;
$ok = $t->errmode("return");
$ok = $t->open($host);
if(!defined($ok)){
print "open('$host') failed\n";
$t->close();
exit(1);
} # if
# == Executing boot script in 1.930 seconds - enter ^C to abort
my $line;
while($line = $t->getline()){
$line =~ s/[\r\n]//;
print "-> $line\n";
if($line =~ m/enter \^C to abort/){
$t->put(chr(3)); # send ^C
print "<- \^C\n";
$t->close();
sleep(1);
system("telnet $host 9000");
exit(0);
} # if
} # while
$t->close();
Comentarios