Ubuntu. Actualizar distribucion obsoleta

Hola. Publico como siempre una pequeña receta a modo de apunte. En esta ocasión se trata de como actualizar un sistema ubuntu muy anticuado y que al realizar un ‘apt-get update’ nos responde con errores 404 Not found…

1. sudo gedit /etc/apt/sources.list

2. Cambiar los dominios:

http://es.archive.ubuntu.com/

por:

http://old-releases.ubuntu.com/

(Podemos utilizar el buscar y reemplazar de gedit para realizar estos cambios másivamente)

3. Guardamos el fichero editado.

4. apt-get update && apt-get upgrade && apt-get dist-upgrade

FIN.

Share

Altavoces o Auriculares sin audio en Gentoo

En esta ocasión les traigo una solución para nuestro equipo Linux en base Gentoo. Si conectamos los auriculares o altavoces externos a nuestro portatil y no funciona, la solución es sencilla.

Se trata de instalar el paquete alsa-firmware para que nos instale el firwmare relacionado con nuestra tarjeta de sonido. El sonido suena por los altavoces internos por que el modulo del kernel se encuentra perfectamente seleccionado y levantado pero no funciona como debería. Instalado el paquete sys-firmware/alsa-firmware se soluciona el problem:

  • emerge sys-firmware/alsa-firmware
    • rebooot

Con esto ya tendriamos funcionando al 100% nuestra tarjeta de sonido.

Entiendo que esta solución puede ser extendible tambien a otras distribuciones como Ubuntu o debian. Simplemente deberiamos buscar el paquete binario alsa-firmware e instalarlo ya sea con ‘apt-get’ o ‘yum’ o el gestor de paquetes de la distribución que nos encontremos.

Un saludo.

Share

Emerge world para actualizar Gentoo

Con:

  • emerge -avuDN –with-bdeps=y –changed-deps @world

realizará una actualización completa de nuestro sistema, detectando ademas los paquetes que se vean afectados por un cambio de USE global en nuestro sistema.

Si este comando lo vamos a ejecutar por la noche en el que no vamos a estar presentes delante de nuestro equipo. Podemos ejecutar:

  • emerge -avuDN –with-bdeps=y –changed-deps -keep-going y @world

Con el comando anterior emerge intentará omitir un paquete que falle al compilar, compilando todos los demás para finalizar el proceso. Más tarde cuando estemos delante de nuestro equipo tendremos que ver que paquete dió error al compilar y solucionarlo nosotros manualmente.

Hay que añadir que si el paquete que falle al compilar es uno con «fuertes dependencias» la compilación no va a continuar ya que el resto de paquetes que dependan de él tambien mostraran error al compilar. No obstante el parametro ‘–keep-going y’ es una muy buena opción para ganar tiempo si dejamos el pc actualizando en horas nocturas.

Un saludo.

Fuentes: https://forums.gentoo.org/viewtopic-p-7511690.html

https://forums.gentoo.org/viewtopic-t-1083728-start-0.html

Share

ERROR: ModuleNotFoundError: No module named ‘pkg_resources’

Hola.

Hoy al intentar realizar un emerge de algunos paquetes en mi sistema gentoo me ha aparecido el siguiente error:

«ModuleNotFoundError: No module named ‘pkg_resources'»

El cual he solucionado realizando lo siguiente:

  • eselect python list
  • eselect python set 1 // Seleccionar la versión más reciente para nuestro sistema

y por ultimo… realizar de nuevo la instalación del paquete ‘setuptools’ de python:

  • emerge dev-pyton/setuptools

Un saludo.

Share

dev-ruby/bundler: environment: line 659: rdoc: command not found gentoo

Hoy, al intentar realizar una actualización de mi sistema me he encontrado con este fallo de compilación:

  • environment: line 659: rdoc: command not found gentoo

La solución:

  • eselect ruby list:

[1] ruby25 *
[2] ruby26 (with Rubygems)

  • eselect ruby set 2
  • emerge –resume
  • a compilar! 🙂

Fuentes:

https://forums.gentoo.org/viewtopic-p-8504209.html?sid=dc07e6309b9a74ee8696b77b0165a2bf

https://bugs.gentoo.org/744493

Share

Obtener subdominios de un dominio por diccionario

Hola.

En casos de una auditoria nos es muy útil poder descubrir los subdominios que cuelgan de un dominio. Esto se puede conseguir a traves de google o con distintas herramientas. Pero en esta ocasión vamos a realizar un script propio, sencillo, el cual a traves de un diccionario creado por nosotros mismos vamos a poder averiguar los subdominios que cuelgan de un dominio y sus respectivas direcciones IP, empecemos.

Como siempre lo único que necesitamos para realizar esta tarea es, un equipo y como no, nuestro sistema operativo favorito, LINUX.

  1.  Creación del fichero de diccionario para búsqueda de dominios: Lo llamaremos ‘palabras.txt’ y lo podemos crear con nano por ejemplo. Este seria su contenido:

estudiante
intranet
correo
email
mail
primario
secundario
backup
intranet
gerencia
administracion
seguridad
contabilidad
contable

tecnico

admin

sistemas

interior

exterior

2. Creación del script:

for i in $(cat palabras.txt);
do
host $i.DOMINIO.COM;
done

Tenemos que cambiar el contenido de DOMINIO.COM por el DOMINIO que queremos analizar.

 

De esta forma si corremos ese comando con el dominio: GOOGLE.com este seria el resultado:

Host estudiante.google.com not found: 3(NXDOMAIN)
Host intranet.google.com not found: 3(NXDOMAIN)
Host correo.google.com not found: 3(NXDOMAIN)
email.google.com is an alias for gmail.google.com.
gmail.google.com is an alias for www3.l.google.com.
www3.l.google.com has address 216.58.201.142
www3.l.google.com has IPv6 address 2a00:1450:4003:804::200e
mail.google.com is an alias for googlemail.l.google.com.
googlemail.l.google.com has address 216.58.201.133
googlemail.l.google.com has IPv6 address 2a00:1450:4003:804::2005
Host primario.google.com not found: 3(NXDOMAIN)
Host secundario.google.com not found: 3(NXDOMAIN)
Host backup.google.com not found: 3(NXDOMAIN)
Host intranet.google.com not found: 3(NXDOMAIN)
Host gerencia.google.com not found: 3(NXDOMAIN)
Host administracion.google.com not found: 3(NXDOMAIN)
Host seguridad.google.com not found: 3(NXDOMAIN)
Host contabilidad.google.com not found: 3(NXDOMAIN)
Host contable.google.com not found: 3(NXDOMAIN)
Host mx.google.com not found: 3(NXDOMAIN)
Host mx01.google.com not found: 3(NXDOMAIN)
Host mx02.google.com not found: 3(NXDOMAIN)

Como podemos ver ha encontrado el subdominio ‘mail’ y el subdominio ‘email’.

Este seria el objetivo. Adaptar las palabras claves para el dominio que necesitamos y con esto podemos obtener muy buena información. Ademas, podemos filtrar un poco más la salida para obviar los resultados que no han coincidido, lo podemos hacer con grep:

for i in $(cat palabras.txt); do host $i.google.com; done | grep has

Ahora, esta seria la salida:

www3.l.google.com has address 216.58.201.142
www3.l.google.com has IPv6 address 2a00:1450:4003:804::200e
googlemail.l.google.com has address 216.58.201.133
googlemail.l.google.com has IPv6 address 2a00:1450:4003:804::2005

Mucho más sencilla, ¿verdad?

 

 

Espero os pueda servir de utilidad.

Un saludo.

Share

[Gentoo] Evitar un paquete al compilar

En ocasiones desconocemos cosas muy sencillas que nos hubieran sido útiles en alguna ocasión. Esto es lo que me ocurrió a mí, al conocer un comando el cual en muchas ocasiones me hubiera facilitado mucho la labor en algunos problemas de compilación de algún paquete o actualización del sistema. Es el siguiente:

emerge --resume --skipfirst

Con este sencillo comando le estamos diciendo a portage que IGNORE el primer paquete que va a intentar emerger (el que nos dio el problema). Si estamos haciendo un upgrade de nuestro sistema gentoo y algún paquete nos esta dando problemas de compilación una y otra vez, podemos ignorarlo y continuar con el siguiente.

Para poder terminar con la actualización del sistema o la instalación del paquete y después solucionar el problema.

Lo dicho, algo tan sencillo que después de tantos años yo desconocía.

Share

Equipo con dos tarjetas gráficas en gentoo. Optimus Machine.

¿Que es un pc optimus machine?

Un PC Optimus Machine son aquellos equipos portatiles que tienen 2 tarjetas gráficas. Una de ellas de baja calidad de procesamiento y la otra bastante mayor. La que se encarga de procesar los gráficos es la tarjeta de mayores prestaciónes y una vez procesados, los envia a la tarjeta más pequeña para que los muestre por pantalla. La tarjeta superior no tiene conectada a ella una pantalla, simplemente se usa para el procesamiento gŕafico.

Dicho esto, os facilito los pasos necesarios para hacer funcionar una máquina optimus machine en Gentoo. Empezamos:

En el kernel, seleccionar la opción de modesetting para el modulo de intel:

——————————————————————————————————————

DeviceDrivers --->
Graphics Support --->
Direct Rendering Manager --->
Direct Rendering Manager (Xfree86 4.1.0 and higher DRI support) --->
<*> Intel 8xx/9xx/G3x/G4x/Hd Graphics
[*] Enable modesetting on intel by default

——————————————————————————————————————

Añadir el modulo del kernel ‘nouveau’ y ‘nvidia’ a la lista de blacklist para que systemd o openrc evite cargarlo al inicio:

# Para sytemd:
——————————————————————————————————————

echo "blacklist nouveau" >> /etc/modules-load.d/blacklist.conf
echo "blacklist nouveaufb" >> /etc/modules-load.d/blacklist.conf
echo "blacklist rivafb" >> /etc/modules-load.d/blacklist.conf
echo "blacklist nvidiafb" >> /etc/modules-load.d/blacklist.conf
echo "blacklist nvidia" >> /etc/modules-load.d/blacklist.conf

——————————————————————————————————————

# Para Openrc:
——————————————————————————————————————

echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nouveaufb" >> /etc/modprobe.d/blacklist.conf
echo "blacklist rivafb" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidiafb" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf

——————————————————————————————————————

Habilitamos la versión testing para los paquetes que se encargan de los gráficos:

——————————————————————————————————————

echo "x11-apps/xrandr ~amd64" >> /etc/portage/package.keywords
echo "x11-base/xorg-server ~amd64" >> /etc/portage/package.keywords
echo "x11-proto/inputproto ~amd64" >> /etc/portage/package.keywords
echo "x11-drivers/nvidia-drivers ~amd64" >> /etc/portage/package.keywords
echo "x11-drivers/xf86-input-evdev ~amd64" >> /etc/portage/package.keywords
echo "x11-drivers/xf86-input-synaptics ~amd64" >> /etc/portage/package.keywords
echo "x11-drivers/xf86-video-modesetting ~amd64" >> /etc/portage/package.keywords

——————————————————————————————————————

Hacemos emerge de todos esos paquetes

——————————————————————————————————————

emerge x11-apps/xrandr && emerge -1 xf86-video-modesetting && emerge -1 $(qlist -IC x11-drivers)

——————————————————————————————————————

Colocar, el siguiente contenido en /etc/gdm/Init/Default:

xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

Seleccionamos con eselect opengl la opción de nvidia:


eselect opengl list:

——————————————————————————————————————
Available OpenGL implementations:
[1] nvidia
[2] xorg-x11 *
——————————————————————————————————————

eselect opengl set 1

Switching to nvidia OpenGL interface… done

En /etc/X11/xorg.conf insertamos todo esto:
——————————————————————————————————————

Section "ServerLayout"
Identifier "layout"
Screen 0 "nvidia"
Inactive "intel"
EndSection

Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID ""
EndSection

Section "Screen"
Identifier "nvidia"
Device "nvidia"
# Uncomment this line if your computer has no display devices connected to
# the NVIDIA GPU. Leave it commented if you have display devices
# connected to the NVIDIA GPU that you would like to use.

EndSection

Section "Device"
Identifier "intel"
Driver "modesetting"
BusID ""
EndSection

Section "Screen"
Identifier "intel"
Device "intel"
EndSection


——————————————————————————————————————

Sustituimos BUS_ID_INTEL_CARD por el ID de la tarjeta gráfica INTEL. Para averiguar el PCI ID podemos hacerlo con:


lspci | grep VGA

El comando en mi caso, devuelve:
——————————————————————————————————————
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)
——————————————————————————————————————

Quedaria:
———————-
Section «Device»
Identifier «intel»
Driver «modesetting»
BusID «PCI:0:2:0»
EndSection
———————-

Y para la tarjeta gráfica NVIDIA, podemos ver cual es el PCI ID, con:

lspci | grep NVIDIA

Devolveria:
——————————————————————————————————————
04:00.0 3D controller: NVIDIA Corporation GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (rev a1)
——————————————————————————————————————

Quedaria en el xorg.conf:
——————————————————————————————————————

Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:4:0:0"
EndSection

——————————————————————————————————————

Una vez realizado todo lo anterior, solamente quedaria instalar el software que realizará el proceso de intercambio de gráficos entre las 2 tarjetas, se llama ‘bumblebee’.

Lo instalamos con:


emerge bumblebee

Añadimos nuestro usuario al grupo bumblebee:


usermod -a -G bumblebee

Arrancamos el servicio ‘bumblebeed’ al inicio:

# Para SystemD
systemctl enable bumblebeed


# Para openRC
rc-update add bumblebeed default

Una vez realizados estos pasos, para ejecutar software y que bumblebeed ponga a trabajar las 2 tarjetas se hace con:

optirun aplicacion

Por ejemplo:

optirun glxgears

Llegados a este punto ya tendriamos nuestra máquina funcionando con las dos tarjetas gráficas.

Share