Redefining CFLAGS in Makefile
Posted by vostorga - 22/04/15 at 04:04:27 pmI am used to the old way of defining CFLAGS in the console when needed but recently in Debian exporting CFLAGS didn’t have the desired effect.
So In case CFLAGS variable for command line and even in makefile doesn’t work for you, this will make the trick in Makefile:
EXTRA_CFLAGS += foo bar baz
Mounting a partition from a dd image
Posted by vostorga - 12/07/14 at 12:07:43 pmAt some point, everybody may have done a dd image of a USB/SD stick, as the below example shows:
dd if=/dev/sdb of=foo.img
But it is usual that at some point in time we would like to access the information inside the image, doing that is quite easy:
First,you should do a fdisk on the image:
fdisk -l foo.img
Disk foo.img: 7998 MB, 7998537728 bytes, 15622144 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002fc6dDevice Boot Start End Blocks Id System
foo.img1 * 1 15622143 7811071+ c W95 FAT32 (LBA)
Then some maths are needed. The operators are the start of the partition and the sector size in bytes. The operation is simply start * sector size in bytes.
In this particular case the operation is 1 * 512 = 512.
Now that we have the result, that we call the offset. In other words, 512 is the offset where the partition starts in this dd image.
So the command to mount the partition is:
mount -t vfat -o loop,ro,noexec,offset=512 foo.img /mnt/mountpoint
And then we can copy the information from the partition inside!
Actualizando ISC DHCP server desde Debian Lenny hacia Squeeze
Posted by vostorga - 24/06/11 at 04:06:59 pmRecientemente actualicé el servidor dhcp 3.1.1-6+lenny4 desde Lenny hacia Squeeze, el cual provee la versión 4.1.1-P1-15 . Después de hacer unas pruebas aparentemente todo funcionó con normalidad, por lo cual me desentendí del caso.
Pero no fue hasta que tuve que agregar una hoja estática cuando me di cuenta que algo estaba mal. Los cambios simplemente no tenían efecto, pero la configuración “antigua” si.
Después de revisar configuraciones, me di cuenta que aparte del usual directorio /etc/dhcp3 se había creado el directorio /etc/dhcp , el cual contenía el archivo de configuración dhcpd.conf . Al hacer un diff entre ambas configuraciones, eran efectivamente los cambios que hice recientemente.
Así que en términos sencillos isc dhcp server utiliza el directorio /etc/dhcp e ignora /etc/dhcp3, y al momento de hacer hacer la actualización, hizo la copia de la configuracion “automágicamente”. Esto suena muy lógico debido a que la versión ha cambiado de 3 hacia 4, pero sin estar advertido anteriormente de dicho cambio no fue algo tan divertido.
Así que listo, aquellos que actualicen isc dhcp server desde debian Lenny hacia Squeeze, deben de utilizar el directorio /etc/dhcp y /var/lib/dhcp
Problema con touchscreen de Openmoko Freerunner bajo Debian
Posted by vostorga - 23/04/10 at 12:04:06 pmHe tenido la oportunidad de jugar un poco con un Openmoko (prestado), el cual tiene instalado Debian Sid; el caso es que al actualizarlo el touchscreen dejó de funcionar correctamente.
Lo curioso es que el calibrador funcionaba como se debe:
apt-get install libts-bin
TSLIB_CALIBFILE=/etc/pointercal TSLIB_TSDEVICE=/dev/input/event1 TSLIB_CONSOLEDEVICE=none ts_calibrate
Probando un parche propuesto al archivo de configuración /etc/X11/xorg.conf en el bug 517307 de Debian, funcionó correctamente.
- Option "Device" "/dev/input/event1" + Option "TslibDevice" "/dev/input/event1"
La recomendación es siempre hacer un backup de la memoria antes de actualizar para evitar dolores de cabeza 😀
Activando soporte Oracle Instant Client + PHP5 en Debian Linux
Posted by vostorga - 27/11/09 at 11:11:09 amPara conectarse a una base de datos Oracle con PHP 5, se puede hacer a través del “Oracle Instant Client” y el modulo oci8 de pear.
Primero se debe descargar los paquetes “Basic” y “SDK” desde http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html. En mi caso, los archivos fueron
- instantclient-basic-linux32-10.2.0.3-20061115.zip
- instantclient-sdk-linux32-10.2.0.3-20061115.zip
Creamos directorios y descomprimimos
# mkdir -p /opt/oracle/instantclient
# cd /opt/oracle/instantclient
# unzip instantclient-basic-linux32-10.2.0.3-20061115.zip
# unzip instantclient-sdk-linux32-10.2.0.3-20061115.zip
Agregamos las librerías de oracle a las librerías del sistema
# echo /opt/oracle/instantclient >> /etc/ld.so.conf
# ldconfig
Creamos los vínculos simbólicos en caso de que el comando anterior no lo haya hecho:
# cd instantclient_10_2
# ln -s libclntsh.so.10.1 libclntsh.so
# ln -s libocci.so.10.1 libocci.so
Instalamos paquetes necesarios para la configuración del módulo oci8, entre ellos Pear
# apt-get install php-pear php5-dev build-essential
En teoría el comando pecl install oci8 debería de funcionar, pero aparentemente no puede trabajar con las librerías de Oracle Instanclient, así que procedemos a ejecutar los pasos manualmente
# mkdir -p /usr/local/src
# cd /usr/local/src
# pecl download oci8
# tar xfz oci8-1.3.5.tgz
# cd oci8-1.3.5
# phpize
# ./configure –with-oci8=shared,instantclient,/opt/oracle/instantclient/instantclient_10_2
# make
# make install
El nombre del archivo oci8-1.3.5.tgz cambiará dependiendo de nuevas versiones
Luego activamos el módulo oci8 en el archivo php.ini (/etc/php5/apache2/php.ini and /etc/php5/cli/php.ini), con la siguiente línea:
extension=oci8.so
Este paso tarde o temprano tendrá que ejecutarse, asi que mejor de una vez configuramos el archivo tnsnames.ora
# mkdir -p /opt/oracle/instantclient/instantclient_10_2/network/admin
Editamos el tnsnames.ora de acuerdo a nuestras necesidades.
# vi /opt/oracle/instantclient/instantclient_10_2/network/admin/tnsnames.ora
Ahora se procede a reiniciar Apache y listo :), podemos auxiliarnos de phpinfo() para comprobar que el módulo oci8 está cargado.
Detalle de la instalación de snmpd en Debian
Posted by vostorga - 14/11/09 at 09:11:56 amLa instalación y configuración del servicio de snmp es de lo más sencillo, pero en mi caso personal se complicó más de la cuenta en un servidor Debian.
El caso era que no funcionaba snmpwalk desde ningún otro host que no fuera el propio servidor, para lo cual revisé y modifiqué numerosas veces /etc/snmp/snmpd.conf , además de hacer múltiples pruebas para ver si había problemas con el tráfico UDP.
La solución vino del lugar más inesperado, en específico del archivo /etc/default/snmpd el cual contiene la siguiente línea:
SNMPDOPTS=’-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1′
Ese 127.0.0.1 hace que el servicio solamente funcione en localhost , ignorando cualquier directiva agentaddress que pudiera estar en /etc/snmp/snmpd.conf .
Como se puede sospechar, la solución es un
# sed -i -e ‘s/127.0.0.1//g’ /etc/default/snmpd
Lo que me llama la atención es la posible intención de la persona que mantiene este paquete, al hacer un cambio de este tipo sin ninguna notificación al momento de instalar snmpd.
Será que no estoy acostumbrado al modo Debian de hacer las cosas?
apt : Recommends
Posted by vostorga - 29/04/09 at 09:04:09 amEn Debian GNU/Linux, cuando se desea instalar un paquete, por ejemplo Gnome, agrega a la lista de paquetes a instalar un sinfin de programas que no tienen ni la mas mínima relación o que se desconoce porque razón lo desea instalar.
En el caso de hacer un apt-get install gnome , software como rhythmbox, rpm, wodim, wpasupplicant, sane-utils, p7zip, liferea entre muchos muchos otros que NO SON NECESARIOS para utilizar Gnome se ven instalados.
La verdad que tener que instalar todo ese software, porque alguien pensó que era una buena idea™ incluirlo es realmente muy molesto.
La instalación del sinfin de software se debe a los Recommends , que según la documentación de Debian son paquetes que deberían de ser instalados siempre a menos que sea una instalación excepcional.
Pero existe una “solución” a este inconveniente, tal como la mencionó un tal rmayorga.
# apt-config dump | grep Reco | sed ‘s/1/0/’ > /etc/apt/apt.conf.d/02user
lo que deja una línea similar a APT::Install-Recommends “0”; en el archivo /etc/apt/apt.conf.d/02user .
La diferencia es notoria, con el apt-get install gnome :
Antes:
0 upgraded, 842 newly installed, 0 to remove and 0 not upgraded.
Need to get 592MB of archives.
After this operation, 1588MB of additional disk space will be used.
Después:
0 upgraded, 494 newly installed, 0 to remove and 0 not upgraded.
Need to get 366MB of archives.
After this operation, 952MB of additional disk space will be used.
Tip en la línea de comandos de Debian
Posted by vostorga - 22/02/09 at 08:02:36 pmEn la mayoría de las distribuciones GNU/Linux lo siguiente nos funcionará en una línea de comandos:
$ ls [PgUp] me muestra $ ls bleh/
Si lo sigo presionando me saldrán los comandos que hayan comenzado con “ls”, en conjunto con PgDn se podrá “avanzar” o “retroceder”. Esto funciona para cualquier comando que hayamos digitado en la consola y es algo muy útil por ejemplo en comandos extensos que hayamos digitado alguna vez.
En Debian no viene activado por defecto, desconozco el porqué, pero es fácil de corregir.
En el archivo /etc/inputrc modificamos la siguientes líneas:
# alternate mappings for “page up” and “page down” to search the history
# “e[5~”: history-search-backward
# “e[6~”: history-search-forward
por
# alternate mappings for “page up” and “page down” to search the history
“e[5~”: history-search-backward
“e[6~”: history-search-forward
Fácil cierto?
Error en init scripts en Debian
Posted by vostorga - 02/02/09 at 12:02:01 pmModifico una línea de una zona de un servidor BIND en un Debian etch, e intento “recargar” la configuración.
Lo siguiente sucede:
proxy:~# /etc/init.d/bind9 reload
rndc: connect failed: connection refused
proxy:~# /etc/init.d/bind9 stop
Stopping domain name service: namedReloading Squid configuration files.
done.
rndc: connect failed: connection refused
.
proxy:~# ps -fe | grep bind
bind 18649 1 0 Jan30 ? 00:00:00 /usr/sbin/named -u bind
root 32723 32134 0 11:51 pts/0 00:00:00 grep bind
proxy:~# /etc/init.d/bind9 stop
Stopping domain name service: namedrndc: connect failed: connection refused
.
proxy:~# ps -fe | grep bind
bind 18649 1 0 Jan30 ? 00:00:00 /usr/sbin/named -u bind
root 32731 32134 0 11:52 pts/0 00:00:00 grep bind
proxy:~# killall named
proxy:~# ps -fe | grep bind
root 32734 32134 0 11:52 pts/0 00:00:00 grep bind
proxy:~# /etc/init.d/bind9 start
Starting domain name service: namedReloading Squid configuration files.
done.
.
proxy:~#
Leyendo Imágenes de nero .nrg en GNU/Linux
Posted by vostorga - 11/06/08 at 08:06:23 amCuando nuestros colegas windozeros nos envían imágenes de CD es muy común que utilicen el software Nero para crearlas el cual genera archivos con extensión .nrg que no es legible directamente por el comando mount o los comandos para copia de CDs.
Pero existe un sencillo programa que permite convertir imágenes .nrg a .iso , la instalación es tan sencilla como:
Gentoo # emerge app-cdr/nrg2iso
Debian # apt-get install nrg2iso
Su utilización es igual de sencilla:
$ nrg2iso archivo.nrg archivo.iso
Y nos mostrará la siguiente salida:
|=========================>[100%]
archivo.iso written : 731492508 bytes
Listo!, podemos montar la imagen o quemarla.
Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds.
Valid XHTML and CSS.