Mostrando entradas con la etiqueta berryboot. Mostrar todas las entradas
Mostrando entradas con la etiqueta berryboot. Mostrar todas las entradas

Raspberry Pi (RPi) tiene un chip ARM a 700 Mhz por defecto, pero puede funcionar a 1000Mhz sin miedo a perder la garantía, para ello es necesario configurar la raspberry en "modo turbo", aunque se tiene que tener en cuenta que la raspberry reducirá su ciclo de vida. En este artículo voy a tratar de realizar un overclocking desde Kalilinux con y sin berryboot instalado en la tarjeta SD.

CONFIG.TXT EN BERRYBOOT

Se puede hacer modificando el archivo config.txt de Berryboot, bien desde la tarjeta SD directamente, o con acceso remoto por VNC, modificando el archivo de configuración.

Para ello se accede remotamente mediante el TightVNC (siempre en los primeros segundo de encender la RPi), se para el arranque del sistema operativo, y se accede al menú de configuración de BerryBoot, en dicho menú se puede editar el archivo config.txt tal y como aparece en la siguiente imagen:


Pero si lo que tienes es instalado una distribución única en la tarjeta SD, deberemos realizar la configuración de overclocking mediante el script rasp-config o modificación del fichero manualmente. A continuación se ven ambas opciones:

  RASP-CONFIG SCRIPT

Sin embargo, si no quieres complicarte demasiado la mejor forma es utilizando el script "rasp-config" para debían que funciona a la perfección en KaliLinux. Para instalarlo es tan sencillo como:

# git clone https://github.com/asb/raspi-config
Se creará una carpeta rasp-config en tu directorio (local /root) y solo falta darle permisos de ejecución (chmod +x rasp-config)


Ahora simplemente ejecutamos el script:

# ./rasp-config

Recomiendan no utilizar el modo turbo para evitar restar "tiempo de vida" así como algunos problemas detectados con tarjetas SD clase 10.

En mi caso, he probado la instalación del script en KaliLinux ARM para raspberry Pi descargado desde GITHUB no me ha funcionado del todo correctamente, por lo que os dejo la forma de instalar el paquete debian de raspbian en KaliLinux:


wget http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20130525_all.deb
wget http://http.us.debian.org/debian/pool/main/l/lua5.1/lua5.1_5.1.5-4_armel.deb
wget http://http.us.debian.org/debian/pool/main/t/triggerhappy/triggerhappy_0.3.4-2_armel.deb
dpkg -i triggerhappy_0.3.4-2_armel.deb
dpkg -i lua5.1_5.1.5-4_armel.deb
dpkg -i raspi-config_20130525_all.deb

Para la ultima versión del paquete debian buscar en el repositorio:  http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/

Sin embargo, a pesar de instalar el paquete debian y conseguir que funcione correctamente, el overclocking no se realiza (not working) - buscando he encontrado información de como realizar la modificación manualmente del fichero config.txt en KaliLinux:


MODIFICACIÓN MANUAL DEL CONFIG.TXT

En mi caso KaliLinux, realizaremos la modificación remotamente a través de SSH, una vez conectados, procedemos a modificar el archivo de configuración config.txt.

# sudo nano /boot/config.txt
arm_freq=800
sdram_freq=500
Y puesto que hay veces que no funciona, debido a una cuestión de correcta sincronización de archivos en linux entre las particiones (solución vista en este blog), se debe de realizar de la siguiente forma (se puede obviar el comando sudo si estamos utilizando el usario root):

# sudo sync
# sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
# sudo cp config.txt config.txt.save
# sudo cp config.txt config.txt.save.1
# sudo sync; sync; exit; exit
!!! No funciona !!!


Según parece, la versión generada por Offensive Security para ARM tiene dos particiones diferenciadas: /dev/mmcblk0p1 (boot partition), and /dev/mmcblk0p2 (normal file system). Si nos damos cuenta, en el sistema de fichero (/dev/mmcblk0p2) existe el directorio /boot/ pero no es el correcto. Para solucionar el problema debemos de realizar lo siguiente:

1
2
3
4
mkdir /bios
mount /dev/mmcblk0p1 /bios/
nano /bios/config.txt
umount /bios

Para evitar colisión de nombre en Linux, el autor de la solución utilizar bios (puede ser cualquier otro nombre) para indicar que en dicho directorio es donde se va a proceder a montar el sistema de arranque de la KaliLinux (partición /boot/) y es donde se podrá copiar nuestro archivo config.txt para configurar la raspberryPi durante el arranque.

Copy of my config.txt < Turbo Mode

gpu_mem_256=112
gpu_mem_512=368
cma_lwm=16
cma_hwm=32
cma_offline_start=16

arm_freq=1000
core_freq=500
sdram_freq=600
over_voltage=6
force_turbo=1

Copy of my config.txt < Medium

gpu_mem_256=112
gpu_mem_512=368
cma_lwm=16
cma_hwm=32
cma_offline_start=16

arm_freq=900
core_freq=450
sdram_freq=500

# Disable dynamic clocking
force_turbo=1

Nota: Cuando se realiza el overclocking se debe de asegurar la compatibilidad de la tarjeta SD con raspberryPi.

COMPROBACIÓN DE LA CONFIGURACIÓN

Comprobación de la frecuencia de CPU a la que se encuentra nuestro chip ARM.

cat /proc/cpuinfo

Para confirmar la frecuencia, lo mejor es comprobarlo con este comando:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
Por ultimo se puede instalar en KaliLinux el comando vcgencmd de gran utilidad para comprobar que la configuración ha sido aplicada correctamente:


1
2
3
4
5
6
wget http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/libraspberrypi-bin_1.20140530-1_armel.deb
wget http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/libraspberrypi0_1.20140530-1_armel.deb
wget http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/raspberrypi-bootloader_1.20140530-1_armel.deb
dpkg -i raspberrypi-bootloader_1.20140530-1_armel.deb
dpkg -i libraspberrypi0_1.20140530-1_armel.deb
dpkg -i libraspberrypi-bin_1.20140530-1_armel.deb

(Comprobar la ultima versión disponible en http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/)

No esta incluido por defecto en KaliLinux por lo que de nuevo recurrimos a paquetes "debian" para instalar la herramienta y asegurarnos que la configuración "BIOS" de nuestra raspberryPi se efectúa adecuadamente.

vcgencmd get_config arm_freq
Ver más opciones:

vcgencmd get_config int

Eso ha sido todo por el momento, volveremos con más y mejor ·raspberryPi·

#ST2Labs
www.st2labs.com

Referencias:
[1] http://www.jeremymorgan.com/tutorials/raspberry-pi/how-to-overclock-raspberry-pi/
[2] http://bahansen.info/the-attack/preparing/
[3] http://rageweb.info/2013/03/21/raspi-config-in-kali/
[4] http://rageweb.info/2013/11/07/bootconfig-txt-in-kali/
[5] http://rageweb.info/2013/11/07/vcgencmd-on-kali/
[6] http://elinux.org/RPiconfig
[7] http://elinux.org/RPi_SD_cards

Si recordamos, en el primer articulo, dejamos nuestra RPi con el sistema de arranque berrybot y el sistema operativo OpenElec instalado. Ahora en esta segunda parte vamos a prepara la imagen de KaliLinux para ser iniciada desde Berrybot.

DESCARGAMOS KALILINUX

Lo primero que necesitamos es la imagen ISO especialmente preparada para nuestra RPi, para ello ir a http://www.offensive-security.com/kali-linux-vmware-arm-image-download/ donde podréis localizar la versión de KaliLinux para el chip ARM que lleva nuestra RPi (véase la imagen siguiente).


Una vez que tenemos la imagen ISO KaliLinux_ARM necesitamos convertir la imagen al sistema SquashFS que utiliza Berryboot para iniciar los diferentes sistema en la RPi.

PREPARANDO EL SISTEMA

Antes de poder convertir la imagen ISO necesitamos preparar el sistema (suponemos que tenemos un sistema Linux basado en debian) para poder realizar la conversión, por lo que ejecutamos el siguiente comando para instalar las herramientas necesarias:

apt-get install squashfs-tools  kpartx 

Se descomprime el archivo ISO original en el directorio /tmp para trabajar con el archivo, y una vez realizado los siguientes pasos:

# kpartx -av kali.img

# mount /dev/mapper/loop0p2 /mnt/

# sed -i 's/^\/dev/mmcblk/#\0/g' /mnt/etc/fstab

# mksquashfs /mnt/ kali-armel-rpi-berry.img -comp lzo -noappend



Una vez finalizado el proceso tenemos la imagen preparada para ser ejecutada por el sistema Berryboot.

AÑADIMOS UN SISTEMA OPERATIVO A BERRYBOOT

Una vez finalizado el proceso, copiamos la imagen ISO (Kali-armel-rpi-berry.img) a un dispositivo USB y nos conectamos a nuestra RPi (192.168.1.40 - en mi caso-) mediante TightVNC viewer, justo unos segundo después de iniciar nuestra RPi (para ver como realizar esta conexión leer la parte 1 de este artículo).


Una vez en el menu de BerryBoot se deja pulsado el botón sobre el "Add OS" y cuando aparezca el dialogo seleccionamos "copy OS from USB stick". A continuación seleccionamos el archivo y luego seleccionamos el sistema operativo que deseemos se autoinicie como favorito.

Llegados a este punto, estamos preparados para iniciar KaliLinux por primera vez en nuestra RPi y conectarnos a ella de forma remota utilizando SSH.

PRIMERA CONEXIÓN CON KALI-LINUX

Desde el primer artículo, ya os comentaba que no dispongo de una segunda pantalla para conectar la RPi, es por lo que trabajaré con ella mediante control remoto por cable de red. 

Una vez instalado el sistema operativo KALI en nuestra RPi con BerryBoot solamente tenemos que reiniciar la RPi para que arranque KaliLinux. Pasados unos segundo utilizaremos Putty (sobre windows) para conectarnos mediante SSH a nuestra KaliLinux.

NOTA: la IP que utilizara Kali será la misma que tenemos configurada en los archivos de configuración de BerryBoot.



Primeros pasos con KaliLinux

Lo primero que deberemos realizar es una "securización" mínima del sistema operativo Kali, hay que tener en cuenta que es una imagen pre-instalada que comparte con todas las imágenes el mismo usuario: root y la misma contraseña toor.

Lo primero que debemos de hacer el cambiar la contraseña de "root":

root@kali:~# passwd


El segundo paso es eliminar y generar un nuevo conjunto de claves public-private para SSH:

root@kali:~# rm /etc/ssh/ssh_host_*

root@kali:~# dpkg-reconfigure openssh-server



Por supuesto el ultimo paso es mantener actualizado nuestra RPi.

root@kali:~# apt-get update && apt-get upgrade –y

Ahora estamos preparados para empezar a utilizar KaliLinux, sin embargo, la KaliLinux en la versión RPi no tiene todo el arsenal de herramientas instaladas, por lo que deberemos añadir las herramientas que echemos en falta nosotros mismo.

Además, debéis tener en cuenta que la imagen prepara no dispone de mucho espacio libre para trabajar, por lo que será muy recomendable expandir la imagen, pero todo esto lo veremos en el siguiente artículo, donde os hablare de como hacer overclocking de la RPi, añadir programas nuevos -metasploit y scapy- y configurar la red wifi en KaliLinux.

Pre-requisitos para el siguiente artículo:

 - Disponer de una tarjeta SD adicional. Ya que para poder utilizar bien KaliLinux en la raspberryPi deberemos instalar KaliLinux directamente sobre la tarjeta SD y expandir la imagen para que se puede utilizar todo el espacio libre de la SD. Por tanto, para el siguiente artículo instalaremos KaliLinux directamente sobre la tarjeta SD, realizaremos la configuración mínima de securización, etc.

#ST2Labs
Se que no soy el primero que escribe sobre RaspberryPi y KaliLinux, sin embargo, después de hacer algunas búsquedas la información que he ido encontrando me ha servido para creer necesario redactar este artículo para preparar una RaspberryPi desde cero con Multiboot y KaliLinux.

REQUISITOS

Lo primero de todo es disponer de una raspberryPI, que se puede comprar por unos 35€-50€, recomiendo comprar con tarjeta SD y adaptador WiFi compatible con raspberry. El Kit completo puede rondar los 60€ - 70€ incluyendo carcasa, tarjeta SD, Wifi, cables HDMI y el cable alimentador (saber que sirve cualquier cable alimentador USB), pero cuidado si querréis realizar el overclocking de la raspberry pi, entonces la alimentación tiene que ser 5V a 2A (+Info)

Software: 1.- Descargar berryboot (enlace), 2.- KaliLinux versión Raspberry Pi (enlace).


Recientemente han incluido en Noobs la capacidad de multiboot, por lo que dejo a elección del lector investigar sobre Noobs y su configuración. 

Si no podéis comprar una raspberry pi, os será de gran utilidad el simulador de raspberry pi tanto para Linux, como para windows.

INSTALACIÓN BerryBoot

El sistema berryboot se instala con tan solo copiar el conjunto de fichero (véase imagen siguiente) en el raix de una tarjeta SD compatible con raspberry pi formateada en FAT (normalmente las tarjetas SD viene ya formateadas).


Si no disponéis de un monitor extra al que conectar la raspberry pi (como es mi caso), necesitaréis configurar el sistema berryboot para que asigne una dirección IP a la interfaz de red e inicie un servidor VNC para conexión remota.

Abrir con un editor el fichero cmdline.txt que se encuentra en el raiz de la tarjeta SD y añadir a continuación la siguiente línea (recordar no introducir \n caracteres retornos de carro o Intro).

vncinstall ipv4=192.168.1.40/255.255.255.0/192.168.1.1
Por supuesto no olvidéis de cambiar la IP por la correspondiente a vuestra red local. Ahora si podemos encender la raspberry pi (de ahora en adelante RPi) y conectar con vncviewer (recomiendo utilizar TightVNCViewer para que funcione correctamente). 

Para la conexión con red inalambrica (wifi) sería incluir esta línea en cmdline.txt

vncinstall ipv4=192.168.88.88/255.255.255.0/192.168.88.1/wlan0
y crear un fichero wpa_supplicant.conf en el raiz de la tarjeta SD con la configuración de la WiFi:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
ap_scan=1


network={
    ssid="ssid-of-accesspoint"
    psk="wpa-password"
}
Antes de encender la RPi, recordar que arranca extremadamente rápido, por lo que deberéis tener todo preparado, ni que decir tiene que deberá estar conectada por cable de red o con el adaptador wifi USB conectado.

En mi caso he optado por conectarme via VNC utilizando la conexión cableada, configuro el fichero cmdline.txt en la tarjeta SD con la IP dentro de mi subred, guardo el archivo e inserto la tarjeta SD en la ranura de la RPi. A continuación enchufo a la red y lanzo la conexión con TightVNC Client contra la IP 192.168.1.40 (RPi IP Address).


Aparecerá la pantalla de configuración del sistema de arranque de berryboot:


Seleccionamos el país y el teclado en Español, y a continuación aparece el menu para preparar la tarjeta SD donde se instalaran los sistema operativos compatibles con la RPi. Al finalizar nos aparecerá la selección de OS compatibles con la RPi para ser descargados directamente desde Internet.


En mi caso, lo primero que he instalado ha sido "OpenElec (XBMC)" distribución para convertir RPi en un centro multimedia, que por cierto funciona de lujo, con mi TV Samsung ha detectado el protocolo del mando de la TV y se puede manejar completamente el sistema multimedia con el mismo mando de la televisión.

En el siguiente artículo, prepararemos la KaliLinux RPi para ser instalada con berryboot. !

Un Saludo.

Referencias: