arrancando raspberry pi (rpi) en debian después de arrancar con noobs ... la partición boot...

28
Arrancando Raspberry Pi (RPi) en Debian 2014/05/23 Miguel Mateo

Upload: dokhuong

Post on 09-May-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

Arrancando Raspberry Pi (RPi)en

Debian

2014/05/23

Miguel Mateo

Page 2: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

armpower.blogs.upv.es 2

Contenido

●Objetivos

●Proceso de arranque de RaspBerry-Pi

●Proceso de arranque en Debian Wheezy

Page 3: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

armpower.blogs.upv.es 3

Objetivo

● Describir el sistema de arranque de Raspberry-PI

● Conocer y modificar los ficheros de arranque de Raspberry-PI

● Overclocking

● Conocer el mecanismo de arranque de LINUX

● Describir las características de arranque del kernel

● Estudiar y modificar la inicialización de aplicaciones en Debian

● Utilizar programas para acceder al HW y modificar su configuración

● Modificar la frecuencia de funcionamiento de la CPU

● Utilizar las X de forma remota desde un PC

Page 4: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

Proceso de arranque

Page 5: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

armpower.blogs.upv.es 5

Formato con NOOBS

● Particiones después de arrancar con NOOBS– Perdemos ~350MB: configuración y recuperación

● Partición FAT: la de arranque– Bootcode.bin, recovery.elf , recovery.img

● Partición ext4fs de 32MB: configuración– Noobs.conf

● Esto es antes de instalar NADA

Page 6: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

NOOBS + Raspbian

cfdisk (util-linux 2.20.1)

Disk Drive: /dev/mmcblk0 Size: 7969177600 bytes, 7969 MB Heads: 4 Sectors per Track: 16 Cylinders: 243200

Name Flags Part Type FS Type [Label] Size (MB) --------------------------------------------------------------------------- Primary Free Space 4,20 mmcblk0p1 Primary vfat [RECOVERY] 117,81 * Pri/Log Free Space 3,83 * mmcblk0p5 NC Logical vfat [BOOT] 67,11 mmcblk0p6 NC Logical ext4 [root] 7742,69 mmcblk0p3 Primary ext4 [SETTINGS] 33,56

Tabla de particiones tras arrancar Raspbian en NOOBS

La particiones más importantes son las etiquetadas como [BOOT] y [root], que por defecto están montadas...

¿dónde?

Page 7: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

¿Qué hay en cada partición?

● RECOVERY– Programas de arranque de NOOBS (vfat)

● SETTINGS: – Utilizada por NOOBS para guardar la configuración de cada

sistema operativo instalado

– Al ser ext4: difícil acceder desde Windows

● BOOT: – partición de arranque de Raspbian (vfat)

● Root– Programas y ficheros de Raspbian

Page 8: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

RECOVERY y BOOT

● Las dos son particiones de arranque por lo que tienen ficheros parecidos– Busca qué ficheros son iguales y de qué tipo son (orden

file)

● La partición RECOVERY NO se debe editar● La partición BOOT permite modificar el

funcionamiento inicial de la placa (fase 2)– Edición directa de los archivos

– Uso de raspi-config

Page 9: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

Archivos de BOOTbootcode.bin

cmdline.txt

config.txt

fixup_cd.dat

fixup.dat

fixup_x.dat

issue.txt

kernel_emergency.img

kernel.img

LICENSE.oracle

os_config.json

start_cd.elf

start.elf

start_x.elf

● Extensiones de archivo:

bin : binario de copia a memoria

elf: ejecutable

dat: archivos de configuración binarios

img: imagen del kernel de Linux

● Programas: – raspi-config

– vcgencmd

Page 10: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

Arranque: manos a la obra

● Buscar qué opciones se tienen activadas en config.txt

● Cambiar una a una las siguientes opciones y rearrancar:– hdmi_force_hotplug

– disable_overscan

– arm_frec

Atender al profesor sobre Atender al profesor sobre cómo comprobar cada cómo comprobar cada

modificaciónmodificación

Page 11: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

Arranque de Linux● Linux: Sistema operativo basado en un kernel monolítico modular

– Monolítico: todas las funciones y variables se pueden acceder desde cualquier punto

– Modular: para su construcción y compilación se ha dividido el sistema en elementos más o menos independientes

● Kernel.img : imagen comprimida del kernel de Linux– Debe incluir como mínimo lo necesario para arrancar

– Las capacidades y funcionamiento del sistema operativo pueden cambiarse en ejecución

– El sistema operativo no hace “nada” perceptible por los usuarios

Page 12: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

Proceso

● Un proceso es un programa en ejecución– Linux: Multiproceso, multiusuario

● Tabla de procesos: guarda información sobre cada proceso. Entre otras cosas– PID y UID del proceso– Información del estado de ejecución

– Información sobre los recursos que usa o ha usado el proceso

● La tabla de procesos en Linux se ha hecho accesible mapeandola como ficheros en /proc

Page 13: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

Procesos (2)

● Relación jerárquica entre procesos– Única relación posible: padre-hijo

– El primer proceso recibe el nombre “init” (PID=1)

● Tipos de procesos “especiales”– Daemons

– Huérfanos → En realidad NO pueden existir

– Zombies

● Los intérpretes de órdenes (shells) NO forman parte de LINUX

Page 14: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

Discutamos un poco...

● ¿Cuántos procesos pueden estar ejecutando un programa en LINUX?

● ¿Cuántos programas puede ejecutar un proceso?

● ¿Cuántos padres diferentes puede tener un proceso?

● Cuando un proceso acaba de ejecutar todo el código de un programa... ¿qué le pasa?

Page 15: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

¿y mis programas cuándo?

Page 16: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

INIT

● Primer proceso que arranca el Sistema operativo– Su PID es 1, el valor más pequeño posible

● Tres fases en la “vida” de INIT– Inicialización del sistema

● Siempre es init quien la empieza, aunque existen diferentes esquemas para realizarla: init.d, upstart, serviced

– Realización de limpieza

– Apagado del sistema● Tienen que realizarse en consonancia con el esquema de arranque

Page 17: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

Init.d● Basado en SystemV

– El más antiguo y en fase de sustitución

● Fases:– Leer fichero /etc/inittab

● Normalmente esta fase determina “el nivel de ejecución”

– Ejecutar los shell-scripts del nivel de inicio de ejecución (arranque) para que INICIEN servicios

– Ejecutar los shell-scripts del nivel de ejecución escogido para que INICIEN servicios

– Esperar cambio de nivel (de nivel-j a nivel-k)– Ejecutar los shell-scripts del nivel-j para que PAREN servicios– Ejecutar los shell-scripts del nivel-k para que INICIEN servicios

Page 18: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

init.d● Basado en System V

– El más antiguo y en fase de sustitución

● Fases:– Leer fichero /etc/inittab

● Normalmente esta fase determina “el nivel de ejecución”

– Ejecutar los shell-scripts del nivel de inicio de ejecución (arranque) para que INICIEN servicios

– Ejecutar los shell-scripts del nivel de ejecución escogido para que INICIEN servicios

– Esperar cambio de nivel (de nivel-j a nivel-k)– Ejecutar los shell-scripts del nivel-j para que PAREN servicios– Ejecutar los shell-scripts del nivel-k para que INICIEN servicios

Page 19: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

init.d : archivos y directorios● /etc/inittab● /etc/init.d

– Directorio que contiene los scripts de los servicios.– Parámetros típicos: start, stop, reload, restart...

● /etc/rcN.d– Directorio que contiene enlaces para ejecutar los scripts del nivel N

● /etc/rcN.d/K23ServDaemon● /etc/rcN.d/S23ServicioDaemon

– Enlaces del nivel N para gestionar un servicio usando el script ServicioDaemon

– El enlace que empieza por S es el usado para iniciar el servicio

– El enlace que empieza por K es el usado para terminar el servicio– Los servicios se llaman por orden del número de dos cifras que sigue a la

primera letra

Page 20: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

/etc/rc.local

● Shell script que se ejecuta al final de algunos niveles

● Suele usarse para ejecutar programas cuando no sabemos/queremos crear un servicio en init.d para esa acción

¿En qué niveles se ejecuta en Raspbian?

¿Qué hace por defecto?

Page 21: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

Y ahora... ¿qué?

● Depende del nivel de ejecución y de inittab:– inittab: especifica que consolas y terminales

– Se pueden haber arrancado servicios de login locales (xdm) o remotos (sshd,telnetd,vncd)

● Esto sólo son procesos que permiten identificarse (login)

● Proceso de login: comprueba nombre de usuario y contraseña

¿usuarios? ¿contraseñas?....

Page 22: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

Usuarios y contraseñas

● Ficheros

/etc/passwd : información pública de usuarios

/etc/shadow : alamcen de contraseñas

/etc/login.defs : valores por defecto al crear usua.

● Programas útiles

adduser : permite crear un nuevo usuario

passwd : cambio de contraseña

usermod : modificación de datos de un usuario

● Para investigar más: pam

Page 23: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

Proceso de login● Depende del shell que arranquemos

– Los usuarios se leen de /etc/passwd

– El acceso se permite según pam

● LOGIN en terminal no gráfico– Se lee qué shell quiere el usuario de /etc/passwd

– Si es bash● Se ejecuta el fichero global /etc/profile● Se ejecuta $HOME/.profile● Se ejecuta $HOME/.bash_rc

– Este fichero se ejecuta cada vez que creamos un bash

¡¡¡Mentira!!!!

Page 24: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

Comprobando

● Añadir la siguiente línea a ~/.profileq

(echo `date`"-->"`who -m` ) >> ~/accesos_profile

● Añadir la siguiente línea a ~/.bash_rc

(echo `date`"-->"`who -m` ) >> accesos_profile

● Formas de probar:– Conectando por ssh: ¿qué pasa?

– Abriendo ventanas de terminal: ¿qué pasa?

– Haciendo un login gráfico: ¿qué pasa?

Page 25: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

Login gráfico● Si al inicio hemos habilitado lightdm o nos

conectamos directamente a servidor gráfico● NO se ejecuta nuestro shell como primero

proceso– No se ejecuta lo que tengamos en .profile

● Cada login gráfico tiene sus archivos de configuración globales y propios del usuario– FreeDesktop: ficheros siguiendo estandar xdg

/etc/xdg

$HOME/.config

Page 26: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

lxsession

● Este es el programa que arranca por defecto en local lightdm

● Ficheros de autostart

/etc/xdg/lxsession/LXDE/autostart

~/.config/lxsession/LXDE/autostart

● ComprobandoInstalar tuxeyes: apt-get install tuxeyes

Que se ejecute al principio de las X...

– Arrancar las X...

Page 27: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

MobaXterm y lxsession

● Ejecutar lo siguiente en el MobaXterm:export DISPLAY=:36; start-stop-daemon -q -b -S --exec /bin/XWin.exe -- -silent-dup-error -notrayicon -nolisten inet6 -clipboard -ac -fp /usr/share/fonts/misc $DISPLAY && /bin/waitforX && ssh -Y [email protected] "lxsession"

Page 28: Arrancando Raspberry Pi (RPi) en Debian después de arrancar con NOOBS ... La partición BOOT permite modificar el ... Primer proceso que arranca el Sistema operativo

cpu_governor

/sys– Directorio virtual con información sobre el sistema

/sys/devices/system/cpu– Información sobre la cpu

● Cpufreq/scaling_governor– Modifica la frecuencia de la cpu

– Existen valores máximos y mínimos de frecuencia

– Por defecto: ondeman

– Opciones: conservative ondemand userspace powersave performance

– Para cambiarlo hay que ser superusuario. Id al directorio y ejecutar:echo performance | sudo tee scaling_governor