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

Post on 09-May-2018

222 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Arrancando Raspberry Pi (RPi)en

Debian

2014/05/23

Miguel Mateo

armpower.blogs.upv.es 2

Contenido

●Objetivos

●Proceso de arranque de RaspBerry-Pi

●Proceso de arranque en Debian Wheezy

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

Proceso de arranque

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

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?

¿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

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

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

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

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

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

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

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?

¿y mis programas cuándo?

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

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

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

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

/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?

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?....

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

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!!!!

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?

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

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...

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 pi@192.168.x.x "lxsession"

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

top related