|
Descargo en primer lugar toda la rama de desarrollo del svn de OpenWrt: ~$ svn co https://svn.openwrt.org/openwrt/trunk/ Error validando el certificado del servidor de 'https://svn.openwrt.org:443': - El certificado no fue emitido por una autoridad marcada como ( Bla, bla, bla... ) - "Huella": a1:0a:d8:2d:af:4e:67:92:18:a0:27:b6:9f:2b:e1:12:08:28:a0:b1 ¿(R)echazar, aceptar (t)emporariamente o aceptar (p)ermanentemente? t Se nos crea en el HOME un directorio trunk/ con todo el tinglado necesario para compilar . Es necesario tener instalados los siguientes paquetes gcc, binutils, patch, bzip2, flex, bison,make, gettext, pkg-config, unzip, ibz-dev y libc headers para que no nos de error el ~/trunk$ make menuconfig donde podremos configurar el toolchain y el firmware: ![]() Hago los cambios oportunos y salgo guardándolos. Continúo con un interminable ~/trunk$ make que descargará las fuentes, construirá las herramientas para la compilación cruzada y compilará el firmware. :~/trunk$ make ++ mkdir -p /home/kir/trunk/staging_dir/toolchain-mips_gcc4.1.2 ++ cd /home/kir/trunk/staging_dir/toolchain-mips_gcc4.1.2 ++ mkdir -p bin lib include stamp Checking 'bison'... ok. make[1] world make[2] tools/install ( Más bla, bla, bla ) make[2] package/rootfs-prepare make[3] package/preconfig make[2] target/install make[3] -C target/linux install make[3] -C target/sdk install make[2] package/index En ~/trunk/bin tendremos nuestro nuevo firmware con el que podremos flashear la fonera. *Compilar programas Preparo un script llamado sdk el cual al invocarlo con el menu ( uso pekwm como gestor de ventanas ) exporta la variable $PATH con la ruta hacia los binarios del compilador y la variable CC para que use el compilador de C para architectura MIPS. export PATH=$PATH:/home/kir/trunk/staging_dir/toolchain-mips_gcc4.1.2/bin/ export CC=mips-linux-uclibc-gcc cd /home/kir/trunk/package TERM="xterm -fn fixed +sb -bg black -fg green -T sdk" $TERM Doy permiso de ejecución al script y lo guardo en un directorio en la ruta del PATH. En ~/.pekwm/menu añado una entrada que llama a un xterm con los settings anteriores: Entry = "SDK" { Actions = "Exec $TERM -iconic -e sdk &" } * wavemon Descargo las sources de wavemon con apt en /home/kir/trunk/package , aplico el parche http://kir.sdf-eu.org/wavemon_patch/ y hago un ./configure --host=mips-linux. No da ningun error y ejecuto un make: Ahora sí que da error, no encuentra ncurses.h mips-linux-uclibc-gcc -O2 -Wall -c -o ui.o ui.c ui.c:25:21: error: ncurses.h: No such file or directory Creo que toca compilar ncurses. $ cd build_dir/mips/ncurses-5.6/ ./configure --host=mips-linux make Copio los archivos de ~/trunk/build_dir/mips/ncurses-5.6/lib y ~/trunk/build_dir/mips/ncurses-5.6/include a ~/trunk/staging_dir/toolchain-mips_gcc4.1.2/include y bin/ respectivamente.Creo el enlace simbólico ncurses.h que apunta a curses.h y repito el make para wavemon. Aparecen varios warning pero finalmente compila sin errores: file wavemon wavemon: ELF 32-bit MSB executable, MIPS, version 1 (SYSV), dynamically linked (uses shared libs), not stripped ls -l wavemon -rwxr-xr-x 1 kir kir 78695 2008-09-17 09:34 wavemon A continuación "estripo" el binario para que ocupe menos: mips-linux-strip wavemon file wavemon wavemon: ELF 32-bit MSB executable, MIPS, version 1 (SYSV), dynamically linked (uses shared libs), stripped ls -l wavemon -rwxr-xr-x 1 kir kir 71280 2008-09-17 09:41 wavemon. Con strip el binario se redujo de 78965 a 71280 bytes. Sólo queda pasarlo a la fonera con scp, wget o como nos venga en gana y disfrutarlo: * Netdiscover Descargo las fuentes de netdiscover con apt: ~/trunk/package$ apt-get source netdiscover cd netdiscover-0.3beta6/ ~/trunk/package/netdiscover-0.3beta6$ ./configure --host=mips-linux ..... checking for pcap.h... no configure: error: Cannot find pcap.h - You need libpcap installed. Necesita libpcap, que ya está en ~/trunk$ cd build_dir/mips/libpcap-0.9.8/ En ~/trunk/build_dir/mips/libpcap-0.9.8/ipkg-install/usr tenemos los directorios include/ y lib/ . Copio su contenido a ~/trunk/staging_dir/toolchain-mips_gcc4.1.2/include y lib/ como anteriormente y repito el .configure ./configure --host=mips-linux checking for libnet.h... no configure: error: Cannot find libnet.h - You need libnet installed. Bien, ya tragó con libpcap pero se atraganta con libnet, así que lo descargo. ~/trunk/package$ wget http://downloads.openwrt.org/sources/libnet.tar.gz ~/trunk/package$ tar zxvf libnet.tar.gz ~/trunk/package$ cd libnet/ El configure no da problemas pero make muestra un error: In file included from libnet_asn1.c:60: ../include/libnet.h:117:10: error: macro names must be identifiers Edito la línea que es un #define 1 y la cambio a #define LIBNET_BIG_ENDIAN 1 A continuación ejecuto el make sin ningún error (aunque da varios warnings) pero no me aparece ningun directorio con las librerias. Cambio la estrategia e instalo otra versión desde el mismo ftp de OpenWrt: wget http://downloads.openwrt.org/sources/libnet-1.0.2a.tar.gz Descomprimo, cambio al directorio, bla, bla, bla... y no funciona. Nuevo intento descargando libnet con apt ~/trunk/package$ apt-get source libnet1 ... In file included from libnet_asn1.c:60: ../include/libnet.h:117:10: error: macro names must be identifiers Ya empezamos ... Edito y añado LIBNET_BIG_ENDIAN a la linea del #define 1 (#define LIBNET_BIG_ENDIAN 1) y voilà que compila el jodido! Ahora toca copiar los archivos .h y las librerias como anteriormente.. y sigue sin ir la cosa. Vuelvo a ejecutar el configure con la opción --prefix: ./configure --host=mips --prefix=/home/kir/trunk/staging_dir/toolchain-mips_gcc4.1.2/ make make install Compila y se instala sin errores; cambio al directorio de netdiscover y ~/trunk/package/netdiscover-0.3beta6$ ./configure --host=mips-linux y.... checking libnet.h usability... yes checking libnet.h presence... yes checking for libnet.h... yes ~/trunk/package/netdiscover-0.3beta6$ make O.K. cd src file netdiscover netdiscover: ELF 32-bit MSB executable, MIPS, version 1 (SYSV), dynamically linked (uses shared libs), not stripped ls -l netdiscover -rwxr-xr-x 1 kir kir 441081 2008-09-18 09:36 netdiscover mips-linux-strip netdiscover file netdiscover netdiscover: ELF 32-bit MSB executable, MIPS, version 1 (SYSV), dynamically linked (uses shared libs), stripped ls -l netdiscover -rwxr-xr-x 1 kir kir 367388 2008-09-18 09:38 netdiscover Parece ser que para usar nuevas librerías, hay que compilarlas hay que usando la opción --prefix en el ./configure; así le indicamos el compilador dónde está el lib/ y el /include . Los binarios están en http://kir.sdf-eu.org/kamikaze_808 |
|
El autor actual de este libro le asegura al lector que no tendrá que morir si lo lee. Así da comienzo una de las grandes obras literarias del siglo XX : Diccionario jázaro, escrita en serbocroata por el serbio Milorad Pavić. Los jázaros fueron un pueblo de origen turco que pobló el territorio entre los mares Caspio y Negro hasta finales del siglo X en que el príncipe Sviatoslav, sin bajar del caballo se comió el imperio jázaro como si fuera una manzana. Antes de la caida del imperio, el khagán -soberano jázaro- tuvo un sueño y convocó para que lo intepretaran a tres representantes de las tres religiones (cristianismo, judaismo e islam) prometiendo convertirse él y su pueblo a la religión de quien diese de éste una interpretación más satisfactoria. Como representantes de la religión cristiana fueron los hermanos Constantino (S. Cirilo) y Metodio de Tesalónica que >conocían la lengua de sus súbditos eslavos, que en invierno llevaban pájaros en la camisa para calentarse y tenían las almas barbudas. Farabi ibn Kora fue el representante del islam ante el khagán jázaro e Isaak Sangari el representante judío. La polémica entre los tres representantes y el khagán es descrita por el filósofo y poeta tudelano Yehudá Haleví en el libro Kitab al Khazarí, escrito en 1141. Se hace difícil explicar el argumento de esta novela léxico, como la subtitula el autor. Se trata de una supuesta segunda edición de un diccionario impreso en latín, árabe, hebreo, griego y serbio y editado en Prusia en 1691 por el editor polaco Ioannes Daubmannus. La edición fue destruida en 1692 por orden de la Inquisición, excepto dos ejemplares que se salvaron de la quema y siguieron en circulación. El Diccionario jázaro consta de tres diccionarios que el editor recibió de un monje cristiano ortodoxo llamado Teoktisto, antiguo escribiente en el monasterio de Nikolje. Cada uno de los diccionarios consta de las entradas referentes a los personajes, hechos y lugares de la polémica jázara desde el punto de vista de los distintos participantes en ésta. A su vez autor recrea una historia de los hechos en tres épocas, siglo X, siglo XVII y época actual, donde se entrelazan personajes, historia y ficción. Libro lleno de poesía, historia y sorprendentes metáforas. Recomiendo su lectura a pesar de lo que dice el autor en la última página: "Leer un libro tan voluminoso significa pasar mucho tiempo solo. Y estar mucho tiempo sin una persona cuya presencia es indispensable, porque la lectura a cuatro manos no se usa todavía". Aquellos afortunados que dominen la lengua inglesa pueden leer esta versión de The Dictionary of the Khazars siguiendo los enlaces hipertexto. |
|
http://www.stahlseite.de/ http://www.msiphoto.net/index.html http://www.industriekultur-fotografie.de/ http://www.hfinster.de/ http://www.pawelwojcik.com/grandfathersgirls/ http://www.flickr.com/photos/22875780@N07/ |
![]() · snownews Snownews es un lector de RSS en modo texto para consolas UNIX. Necesita que estén instaladas las librerías Ncurses 5.0 o superior, libxml2, gettex y libiconv. Podemos descargar las fuentes de http://kiza.kcore.de/software/snownews/download/snownews-1.5.10.tar.gz y compilarlo, (./configure; make ; make install) o bien instalar el binario que seguramente tendremos disponible en los repositorios de nuestra distribución linux. Una vez iniciado entramos en la pantalla principal donde podemos añadir, borrar y actualizar los feeds. A la izquierda nos muestra la lista de los sitios agregados y a la derecha el número de noticias nuevas de esta y opcionalmente una etiqueta que escogeremos a nuestro gusto. Con las flechas de direccion (arriba, abajo) nos movemos entre los feeds y con Enter seleccionamos y pasamos a la segunda pantalla. Aquí se nos muestra la lista de noticias correspondientes al sitio seleccionado, en distinto color que indica las que ya hemos leido y las que no. Nuevamente con las teclas de cursor seleccionamos y con Enter pasamos a ver un resúmen de la noticia. Pulsando o nos abre un navegador web en el que podemos ver la noticia completa. Podemos usar el navegador por defecto del sistema o configurarlo con el que más nos guste. Pulsando h en cualquier pantalla tendremos un menú de ayuda para esa pantalla. Los comandos son simples, de una sola tecla. ![]() Los comandos principales de la primera pantalla son: a Añade un nuevo RSS B Cambia el browser por defecto D Borra el Rss seleccionado c Renombra el feed R Recarga todos los feeds r Recarga el feed seleccionado m Marca todo como leido s Ordena los feeds por orden alfabético C Permite etiquetar los feeds f Aplica un filtro F Elimina el filtro E Muestra el log de errores En ~/.snownews tenemos los archivos de configuración, donde podemos cambiar, editandolos, el navegador por defecto, las teclas asignadas a comandos o definir la conversión de entidades XML. · raggle Raggle es otro agregador RSS para consola, escrito en Ruby. Tiene teclas personalizables, render básico de HTML, soporte para varias versiones de RSS, soporte de screen, detección de browser, etc. Podemos descargar el código fuente de http://raggle.org/files/ si no lo tenemos disponible en los repositorios. Consta de una pantalla dividida en 3 ventanas. En la ventana de la izquierda tenemos la lista de sitios agregados; en la derecha, arriba, el título de los posts de la URL seleccionada y en la ventana inferior una descripción y el texto del post. Nos movemos entre las ventanas con la tecla Tab o con las flechas Derecha, Izquierda. Con las teclas de dirección nos moveremos arriba y abajo en la lista o al las ventanas anterior o siguiente. ![]() Las teclas más usuales son estas: Tab Cambia entre las ventanas Ret Selecciona ítem a Añade una URL DEL Borra el RSS seleccionado o Abre el feed actual en el navegador e Edita las opciones del feed actual m Marca como ya leido s Ordena la lista c Selecciona una categoría a para ver C Cierra la ventana actual ? Muestra un popup con las teclas de comando ! Sale al shell; con exit volvemos a raggle En las páginas man hay una descripción completa de todas las teclas y opciones del programa. |
![]() En cualquier instalación estándar de linux disponemos de 6 terminales de consola. Pulsando ALT + F1...F6 accedemos a cada uno de ellos. Con screen se puede iniciar una sesión con tantos terminales virtuales como queramos en un mismo terminal. Con dvtm podremos abrir distintos terminales visibles dentro del mismo terminal. · dvtm dvtm es un gestor dinámico de terminales virtuales. Nos permite dividir el terminal en dos o más terminales virtuales y cambiar entre ellos con una combinación de teclas. Quizás se entienda mejor esto en la captura: ![]() Una vez descargado el código fuente y desempaquetado editamos el archivo config.mk si queremos cambiar el directorio de instalación (por defecto /usr/local) y config.h para modificar el comportamiento de las teclas. Asegurandonos de tener instalado libncurses5 o libncursesw5 (si nuestras locales son utf8) ejecutamos make y make install. Ejecutamos el programa escribiendo dvtm en una consola. El manejo del programa es simple; pulsando Ctrl + g ( así es como viene configurado por defecto) y a continuación otra tecla se ejecutará la acción deseada. Las teclas básicas (precedidas de Ctrl + g) son: c Crea una nueva ventana de shell. j Cambia entre ventanas. 1..n Va a la ventana número n. space Cambia entre distintos esquemas de organización en las ventanas. . Minimiza la ventana actual. l Incrementa el ancho e la ventana. h Decrementa el ancho de la ventana. Para una información más completa sobre todas las combinaciones consultar las páginas del manual. · screen Screen es una herramieta que suele venir incluida en cualquier distribución Linux que permite, entre otras cosas el uso de varios terminales en un mismo terminal. El comando screen a secas nos abrirá un terminal con un shell donde podemos lanzar una aplicación. Podemos abrir una sesión screen y una vez en ella pulsar C-a d y dejar libre el terminal, mientras que las aplicaciones seguirán corriendo. Un screen -r nos recuperará la sesión. Si la aplicación es lanzada en consola TTY, en X Window la recuperamos con screen -x. Por ejemplo, se puede abrir un screen con irssi en consola y seguir el chat desde un entorno de ventanas, pero si rompe xorg, las aplicaciones seguirán ejecutándose en la consola. A su vez, si ejecutamos la combinación de teclas Ctrl a y a continuación c(reate) nos creará otro shell superpuesto al anterior. Todas los comandos de tecla en screen van precedidos de la combinación Ctrl a que en adelante omitiré. Podemos ir de un shell a otro pulsando n(ext) o p(revious). Tambien podemos definir en /etc/screenrc una serie de aplicaciones que se iniciarán automáticamente al ejecutar el comando screen : /etc/screenrc startup_message off deflogin on vbell on vbell_msg " Wuff ---- Wuff!! " defscrollback 1024 bind ^k bind quit bind K kill bind I login on bind O login off bind } history termcapinfo vt100 dl=5E[M hardstatus off termcapinfo xterm*|rxvt*|kterm*|Eterm* hs:ts=E]0;:fs=(barra invertida)007:ds=E]0;(barra invertida)007 hardstatus string "%h%? users: %u%?" termcapinfo xterm*|linux*|rxvt*|Eterm* OP termcapinfo xterm 'is=E[rE[mE[2JE[HE[?7hE[?1;4;6l' screen -t rtorrent rtorrent screen -t orph orph screen -t irssi irssi hardstatus on hardstatus string "%{.kB}%-w%{.kY}%n %t%{-}%+w %=%{..B} %H %{..Y} %d/%m %C%a " hardstatus alwayslastline ![]() La penúltima línea del script de configuración sirve para establecer la línea de estado en la parte inferior de la pantalla, mostrando las shells abiertas numeradas y el nombre de la aplicación que se está ejecutando en cada una de ellas. Tambien muestra el nombre del host, la fecha y la hora. Teclas más usuales dentro de screen (todas precedidas de Ctrl +a) c Crea una nueva ventana n Va a la próxima ventana p Va a la ventana anterior 0..9 Va a la ventana según la numeración " Lista las ventanas abiertas, pudiendo navegar entre ellas con j y k y pulsando Enter para seleccionar w Lista de ventanas no interactiva A Cambia el nombre de la ventana [ Copiar ] Pegar ? Ayuda d Despega la sesión screen del terminal Screen tiene muchas funcionalidades más que se alejan del alcance de este escrito; man screen es fundamental. |