martes, 21 de agosto de 2007

Drivers no nativos de red en FreeBSD

Un post que rescato del antiguo blog, que me parece indispensable. Pongo a modo de ejemplo tarjetas WiFi ® PCI, que NO están soportadas de forma nativa por FreeBSD. Aunque aclaro antes de nada, todo es posible solo pido antes de hacer preguntas, consulteis Google o las famosas Wikis, así que paciencia y mirar, solo pretendo dejar que es posible usar un driver no nativo de FreeBSD en ella. Vamos a ello, En este caso como hablamos de tarjetas Wireless PCI primero es imprescindible saber si hay algun driver o no controlandolo, para ello como root lo miramos:
# pciconf -lv
skc0@pci0:9:0: class=0x020000 card=0x80eb1043
chip=0x170010b7 rev=0x12 hdr=0x00
vendor = '3COM Corp, Networking Division'
device = '3C940 and 3C2000 Gigabit
Ethernet PCI CODEC?'
class = network
subclass = ethernet
ndis0@pci0:13:0: class=0x028000 card=0x00131737
chip=0x432014e4 rev=0x03hdr=0x00
vendor = 'Broadcom Corporation'
device = 'BCM4306 802.11b/g Wireless LAN

Si no tenemos veremos en pciX la palabra noneX lo que nos indica que no hay ningún driver, si le echáis un vistazo por encima al Handbook de FreeBSD veréis como hace mención a ello. (Recuerdo que el Handbook es la Biblia de FreeBSD):

"....This is a special compatibility module for allowing Windows NDIS miniport network
drivers to be used with FreeBSD/x86. This provides _binary_ NDIS compatibility (not
source): you can run NDIS driver code, but you can’t build it...There are three main
parts:"

Hay un buen trozo donde hace referencias claramente al proyecto NDISulator Project. Iré al grano, ya que prefiero que para poder entenderlo, os leéis el Handbook y no hay excusas porque está en castellano :) Ahora como root:
# cd /sys/modules/ndis
# make
# make install

Ahora del cd original de la tarjeta wifi en este caso copiamos el *.INF y el *.SYS al directorio /sys/modules/if_ndis, y ponemos nombres ficticios que deberán de ser reemplazados por los correspondientes de la PCI Wifi. Los llamamos W32DRIVER.SYS y W32DRIVER.INF, y ejecutamos:
# cd /sys/modules/if_ndis
# cp /larutadondelocolocamos/W32DRIVER.SYS ./
# cp /larutadondelocolocamos/W32DRIVER.INF ./

Ahora es cuando hacemos uso del NDISulator para crear la cabecera ndis_driver_data.h necesario para hacer el driver.
# ndiscvt -i W32DRIVER.INF -s W32DRIVER.SYS -o
ndis_driver_data.h

# make
# make install

# kldload ndis
# kldload if_ndis

El kldload lo usamos para cargar en el kernel los módulos. Si todo ha ido bien deberíamos de ver como ahora si que reconoce la tarjeta mediante el comando demsg | more para ver que a quedado todo correcto. Eso es todo pero repito no hay excusas mirar bien el Handbook que hace referencia a ello y esta en castellano y para dudas san google !!!!

Convertir paquetes .rpm a .deb y viceversa

Bueno sabemos que el APT es un instalador de paquetes cojonudo, por todo lo que ello conlleva, entre las más destacadas la de olvidarnos de dependencias a la hora de instalar un software determinado. Aparte de poder actualizar todo tipo de paquetes …

Pero este post no hablo sobre el potente APT de GNU/Linux Debian y posteriormente adoptada por todas las distribuciones, si no para hablar de ALIEN, una estupenda utilidad que permite convertir paquetes .rpm a .deb el sistema de empaquetamiento de Debian con su (dpkg) y viceversa del sistema de empaquetamiento .deb a .rpm. Por lo cual si nos da morriña compilar fuentes, o el procesador no es que sea para echar cohetes, prácticamente no tienes de hacerlo. Su funcionamiento es muy sencillo basta con escribir:
#alien --to-deb nombre_de_archivo.rpm

#alien --to-rpm nombre_de_archivo.deb

Aunque el post pueda parecer una chorrada, la verdad es que es realmente útil y muchas veces desconocemos de este tipo de utilidades.

Teclado en Español en X.Org

Dejo este post porqué en KDE o Gnome hay un bonito menú hay un menú donde configurar el layout del teclado y ponerlo en español.

Pero si usamos algún Window Manager más simple y DIY hay que añadir lo siguiente en el fichero /etc/X11/xorg.conf dentro del apartado “Section “InputDevice” que hace referencia al teclado hay que poner el mapeo “es”
Option “XkbModel” “pc105″
Option “XkbLayout” “es”

Otra forma de hacer lo mismo sería usar el comando setxkbmap:
# setxkbmap -model pc105 -layout es

Crear un repositorio en Arch Linux

Pongo un pequeño script que sincroniza (rsync) un repositorio de Arch con un directorio de nuestro pc. Y este se puede compartir mediante NFS, Samba, FTP o lo que sea, que podremos actualizar todas las máquinas de una LAN, de forma que ninguna de ellas deba de actualizarse por Internet.

El ejemplo almacena en /repositorio el contenido de current, extra y community para arquitectura i686. No ocupa en exceso, sobre unos 8 Gb. Si queremos poner un unstable y un testing hay que eliminar las líneas que lo excluye.
#!/bin/bash
# Sincroniza el repositorio de Arch del servidor ‘distro.ibiblio.org’
# con el directorio /repositorio
# Definición de los parámetros usados:
#
# a, –archive –> archive mode; same as -rlptgoD (no -H)
# v, –verbose –> increase verbosity
# r, –recursive –> recurse into directories
rsync -arv \
–delete-after \
–exclude=0.7.2 \
–exclude=iso \
–exclude=x86_64 \
–exclude=images \
–exclude=other \
–exclude=release \
–exclude=unstable \
–exclude=testing \
distro.ibiblio.org::distros/archlinux/ \
/repositorio/

Esto puede cambiar según el repositorio fuente usado, en el que uso en este ejemplo no almacena versiones anteriores a la 0.7.2, por lo tanto no hace falta excluirlas.

El parámetro –delete-after es muy importante, pues sirve para eliminar los paquetes de destino (nuestro PC) cuando estos ya no están en el origen. Por ejemplo eliminar foo-1.tar.gz si ya esta foo-2.tar.gz, en el script esta todo pero si hay dudas ya se sabe: man rsync

Ahora solo queda a pacman, que no busque los paquetes en Internet si no que lo haga en /repositorio cosa que es realmente fácil, solo hay que modificar /etc/pacman.conf .

Y el último paso es usar cron para hacer la sincronización de manera automática, para más ir a Wiki :)

Caracteres en castellano en X-Chat

Veo que ahora que se a puesto de moda la famosa “Ubuntu” y otras distros de Linux, hay una pequeña tontería pero que resulta muy útil, esta vez es sobre el paquete “xchat”. Para mi gusto el mejor cliente de IRC para Linux, y además aporta la posibilidad de cargar scripts en perl.

sudo apt-get install xchat


El quid de la cuestión es que casi siempre nos encontramos con problemas de acentos, la eñe, y demás caracteres del castellano. Es tan simple como poner el comando

/Charset ISO-8859-15

lunes, 20 de agosto de 2007

Emuladores para PSP

Pues sí aunque supongo que todos los que posean una PSP tendrán ya el firmware cambiado, para poder jugar desde la memory stick :D os dejo la ultima revisión y un mini-tuto de cómo hacer funcionar los emuladores. Obviamente leer el README que siempre va adjunto para saber donde se colocan las roms.

CUSTOM FIRMWARE 3.52 M33 "update 4"

CUSTOM FIRMWARE 3.40 OE Xtreme

La Instalación en si de todos los emuladores es muy sencilla, simplemente hay que copiar las dos carpetas que encontrareis en el .zip (se llaman igual pero una termina en %) dentro de la carpeta GAME de la PSP.

Snes9x v0.02y32 (Super Nintendo)
NesterJ v1.20 (Super Nintendo)
uoNEsterJ v2b (Nes)
RIN v1.32 (Game Boy Color)
VBA v.0.4.4 (Game Boy Advance)
PSP GBA 1.2 (Game Boy Advance)
MAME4ALL 0.0.3 (Mame)
ngPSP 1.3.1 (NeoGeo Pocket)
NeoCD PSP v.0.9.1 (NeoGeo CD)

Hay de más y por supuesto las versiones, puede que sean antiguas, pero para algo esta la mano de santo Google :D

Nuevo blog que comienzo.

Hola a tod@s:

Pues subo de nuevo el blog, y digo nuevo porqué tuve uno hace ya un tiempo, pero por varios motivos personales, decidí cerrarlo.

De momento el blog, lo dejo de manera un poco de aquella manera, usando una plantilla predeterminada, ya que prefiero volver a post que creo, que eran muy interesantes en cuanto al contenido, luego ya iré mirando para dejar una plantilla que sea más atractiva a la vista, pero lo que sobretodo pretendo es que el contenido sea interesante …

De momento estreno este post, poco a poco iré dejando caer más.