56
Introducci´on a Linux Embebido Introducci´on a Linux Embebido Lucas Chiesa, Joaqu´ ın de Andr´ es, Tom´ as Gonz´ alez, Gabriel Gavinowich, Ariel Burman, Ernesto Corbellini Laboratorio de Sistemas Embebidos Facultad de Ingenier´ ıa Universidad de Buenos Aires Correcciones, sugerencias y/o contribuciones son bienvenidas. Presentaci´on basada en material de Free-Electrons. Licencia Creative Commons BY-SA 3.0. http://free-electrons.com/ Linux Embebido Laboratorio de Sistemas Embebidos. Facultad de Ingenier´ ıa. Universidad de Buenos Aires 1/56

Introduccion Linux Embebido

Embed Size (px)

Citation preview

Page 1: Introduccion Linux Embebido

Introduccion a Linux Embebido

Introduccion a Linux EmbebidoLucas Chiesa, Joaquın de Andres,

Tomas Gonzalez, Gabriel Gavinowich,

Ariel Burman, Ernesto Corbellini

Laboratorio de Sistemas EmbebidosFacultad de IngenierıaUniversidad de Buenos Aires

Correcciones, sugerencias y/o contribuciones sonbienvenidas.

Presentacion basada en material de Free-Electrons.Licencia Creative Commons BY-SA 3.0.http://free-electrons.com/

Linux Embebido

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 1/56

Page 2: Introduccion Linux Embebido

¿Sistema embebido?

Un sistema embebido o empotrado es un sistema de computaciondisenado para realizar una o algunas pocas funciones dedicadasfrecuentemente en un sistema de computacion en tiempo real. Lossistemas embebidos se utilizan para usos muy diferentes a los usosgenerales a los que se suelen someter a las computadoraspersonales.

Wikipedia

http://es.wikipedia.org/wiki/Sistema_embebido

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 2/56

Page 3: Introduccion Linux Embebido

¿Que es Linux embebido?

Linux embebido es el uso del kernel

Linux y muchos otros componentes

de codigo abierto en sistemas

embebidos

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 3/56

Page 4: Introduccion Linux Embebido

Nacimiento del software libre

◮ 1983, Richard Stallman anuncia el inicio del proyecto GNU ycrea el concepto de software libre. Se comienza con eldesarrollo de gcc, gdb, glibc y otras herramientas importantes.

◮ 1991, Linus Torvalds, Linux kernel, un kernel para sistemasoperativos similares a Unix. Junto con el software GNU yotros componentes de codigo abierto (open-source) dan lugara un sistema operativo 100% libre: GNU/Linux.

◮ ∼1995, Linux comienza a utilizarse en servidores.

◮ ∼2000, Linux se extiende su uso a sistemas embebidos.

◮ ∼2008, Linux comienza a utilizarse en dispositivos moviles.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 4/56

Page 5: Introduccion Linux Embebido

¿Que es el software libre?

◮ Un programa es considerado libre cuando su licencia ofrece asus usuarios las siguientes cuatro libertades:

◮ Libertad para correr el programa con cualquier proposito.◮ Libertad para estudiar el programa y modificarlo.◮ Libertad para redistribuir copias.◮ Libertad para distribuir copias de las versiones modificadas.

◮ Estas libertades se garantizan tanto para uso comercial comopara uso no comercial.

◮ Implican la disponibilidad del codigo fuente. El programapuede ser modificado y distribuido a los clientes.

◮ ¿Es un buen negocio para sistemas embebidos?

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 5/56

Page 6: Introduccion Linux Embebido

Introduccion a Linux Embebido

Ventajas de Linux y el software

abierto para sistemas embebidos

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 6/56

Page 7: Introduccion Linux Embebido

Reutilizar componentes

◮ La ventaja clave de Linux y el software abierto en sistemasembebidos es la habilidad para reutilizar componentes.

◮ El “ecosistema” de software abierto ya provee muchoscomponentes para requerimientos comunes, desde soporte dehardware hasta protocolos de red, multimedia, graficos,librerıas de criptografıa, etc.

◮ Tan pronto como un dispositivo, un protocolo o unafuncionalidad se vuelven populares, existe una gran posibilidadde que haya componentes de codigo abierto que la soporten.

◮ Permite diseno y desarrollo rapido de productos complejos,basados en componentes existentes.

◮ Nadie deberıa volver a desarrollar un nuevo kernel, un stack

TCP/IP, un stack USB u otro toolkit grafico.

◮ Permite mantener el foco en el valor agregado del

producto

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 7/56

Page 8: Introduccion Linux Embebido

Bajo costo

◮ El software libre puede ser copiado en tantos dispositivoscomo se quiera sin un gasto adicional.

◮ Si un sistema embebido usa solamente software libre, se puedereducir el costo de las licencias de software a cero. Incluso, lasherramientas de desarrollo son libres (salvo que se decida usaruna version comercial de Linux embebido).

◮ Permite disponer de un mayor presupuesto para

hardware o para incrementar las habilidades y

conocimiento de la empresa.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 8/56

Page 9: Introduccion Linux Embebido

Control completo

◮ Con software abierto, se tiene disponible el codigo fuente detodos los componentes del sistema.

◮ Permite hacer modificaciones ilimitadas, cambios, ajustes,debugging, optimizaciones, por un perıodo ilimitado detiempo.

◮ Sin dependencias ni restricciones de un proveedor externo.

◮ Permite obtener un control completo sobre el software

del sistema.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 9/56

Page 10: Introduccion Linux Embebido

Calidad

◮ Muchos componentes de codigo abierto son usados enmillones de sistemas.

◮ Usualmente poseen mayor calidad que la de cualquierdesarrollo propio o incluso de vendedores propietarios.

◮ No todos los componentes de codigo abierto son de buenacalidad, pero la mayorıa de los mas usados lo son.

◮ Permite disenar un sistema en base a componentes de

alta calidad

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 10/56

Page 11: Introduccion Linux Embebido

Facilita la prueba de nuevas funcionalidades

◮ Al estar disponible libremente, es sencillo tomar una parte desoftware para probarla.

◮ Permite estudiar facilmente varias opciones para luego elegiruna de ellas.

◮ Esto es mas sencillo que asistir a demostraciones de cadaproducto propietario.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 11/56

Page 12: Introduccion Linux Embebido

Soporte de la comunidad

◮ Los componentes de software de codigo abierto sonmantenidos por comunidades de desarrolladores y usuarios.

◮ Esta comunidad puede proveer soporte de alta calidad: unopuede contactar directamente a los desarrolladores principalesdel componente en uso. La probabilidad de obtener unarespuesta no depende de la empresa con la que uno trabaja.

◮ Usualmente es mejor que el soporte tradicional, pero esnecesario entender como funciona la comunidad para poderdisponer de ella.

◮ Permite acelerar la solucion de problemas durante el

desarrollo del sistema

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 12/56

Page 13: Introduccion Linux Embebido

Participar en la comunidad

◮ Ofrece la posibilidad de formar parte de la comunidad dedesarrollo de algunos de los componentes usados en lossistemas embebidos: reporte de bugs, prueba de nuevasversiones o caracterısticas, etc.

◮ Devolver los cambios o mejoras que se desarrollan.

◮ Para los ingenieros: es una forma interesante de serreconocido fuera de la empresa, comunicarse con otrosinteresados en el area, abrir nuevas posibilidades, etc.

◮ Para los managers: sirve como factor de motivacion para losingenieros. Permite que la empresa sea reconocida en lacomunidad de codigo abierto y por lo tanto obtenga soportemas facilmente y sea mas atractiva para los desarrolladoresde codigo abierto.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 13/56

Page 14: Introduccion Linux Embebido

Introduccion a Linux Embebido

Algunos ejemplos de sistemas

embebidos que corren Linux

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 14/56

Page 15: Introduccion Linux Embebido

Routers personales

http://www.free.fr/adsl/index.html

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 15/56

Page 16: Introduccion Linux Embebido

Televisor

http://www.sony.net/Products/Linux/TV

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 16/56

Page 17: Introduccion Linux Embebido

Terminales de venta

http://www.sepay.nlLaboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 17/56

Page 18: Introduccion Linux Embebido

Maquina cortadora laser

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 18/56

Page 19: Introduccion Linux Embebido

Cosechadora de uva

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 19/56

Page 20: Introduccion Linux Embebido

Nokia N9

http://www.nokia.com/global/products/phone/n9/specifications/

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 20/56

Page 21: Introduccion Linux Embebido

Ordenadora robotica

http://www.delaval.com/en/-/Product-Information1/Milking/

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 21/56

Page 22: Introduccion Linux Embebido

Muchos ejemplos mas

http://www.linuxfordevices.com

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 22/56

Page 23: Introduccion Linux Embebido

Introduccion a Linux Embebido

Hardware embebido para sistemas

Linux

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 23/56

Page 24: Introduccion Linux Embebido

Procesador y arquitectura (1)

El kernel Linux y la mayorıa de los otros componentes soportanuna gran variedad de arquitecturas de 32 y 64 bits.

◮ x86 y x86-64, como se encuentra en PCs, pero tambien ensistemas embebidos (multimedia, industriales).

◮ ARM, con cientos de diferentes SoCs (multimedia,industriales).

◮ PowerPC (mayormente tiempo real, aplicaciones industriales).

◮ MIPS (principalmente aplicaciones de redes).

◮ SuperH (principalmente decodificadores y aplicacionesmultimedia).

◮ Blackfin (arquitectura de DSP).

◮ Microblaze (soft-core para Xilinx FPGA).

◮ Coldfire, SCore, Tile, Xtensa, Cris, FRV, AVR32, M32R.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 24/56

Page 25: Introduccion Linux Embebido

Comunicacion

◮ El kernel Linux soporta muchos buses de comunicacion:◮ I2C◮ SPI◮ CAN◮ 1-wire◮ SDIO◮ USB

◮ Y tambien tiene un soporte amplio de redes:◮ Ethernet, Wifi, Bluetooth, CAN, etc.◮ IPv4, IPv6, TCP, UDP, SCTP, DCCP, etc.◮ Firewalling, routing avanzado, multicast

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 25/56

Page 26: Introduccion Linux Embebido

Procesador y arquitectura (2)

◮ El kernel de Linux soporta, tanto las arquitecturas que poseenMMU como las que no, aunque las segundas sufriran algunaslimitaciones.

◮ Salvo el toolchain, el bootloader y el kernel, todos los otroscomponentes son generalmente independientes de la

arquitectura.

◮ Linux no esta disenado para microcontroladores pequenos.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 26/56

Page 27: Introduccion Linux Embebido

Dos ejemplos extremos

Picotux 100

◮ ARM7 55 MHz, NetsiliconNS7520

◮ 2 MB de flash

◮ 8 MB de RAM

◮ Ethernet

◮ 5 GPIOs

◮ Serial

BeagleBoard C4

◮ OMAP 3530, TI

◮ Cortex A8 720 MHz

◮ DSP / Power VR

◮ 256 MB de RAM

◮ 256 MB de NAND flash

◮ DVI, audio entrada y salida,USB, etc,

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 27/56

Page 28: Introduccion Linux Embebido

RAM y almacenamiento

◮ RAM: un sistema Linux muy basico puede funcionar con 8MB de RAM, pero un sistema mas realista usualmenterequerira al menos 32 MB de RAM. Dependera del tipo ytamano de las aplicaciones.

◮ Almacenamiento: un sistema Linux muy basico puedefuncionar con 4 MB de almacenamiento, pero usualmente senecesita mas.

◮ Soporta almacenamiento del tipo Flash, tanto NAND comoNOR, con sistemas de archivos especıficos.

◮ Soporta almacenamiento por bloques como tarjetas SD/MMCy eMMC.

◮ Ser muy restrictivo en la cantidad de RAM/almacenamientoquita flexibilidad para utilizar la gran cantidad decomponentes existentes.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 28/56

Page 29: Introduccion Linux Embebido

Tipos de plataformas de hardware

◮ Plataformas de evaluacion de vendedores de SoCs.Usualmente muy caras, pero incluyen muchos perifericos. Muybuenas para prototipado. Poco adecuadas para productosreales de mediana cantidad.

◮ Componente en modulo. Una pequena placa conCPU/RAM/flash y otros pocos componentes y conectores.Puede usarse para armar productos finales en pequenas omedianas cantidades.

◮ Plataformas desarrolladas por la comunidad. Son de bajocosto y listas para el uso, pero usualmente tienen menosperifericos que las plataformas de evaluacion. Cuentan con elapoyo de los fabricantes para hacer el SoC popular yfacilmente disponible.

◮ Plataformas propias. Desarrollos totalmente nuevos obasados en los esquematicos de las placas de evaluacion yplataformas de desarrollo disponibles libremente.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 29/56

Page 30: Introduccion Linux Embebido

Kit de evaluacion de TI

◮ OMAP 3530

◮ 256 MB DRAM

◮ 256 MB NAND Flash

◮ 3.7“ LCD tactil

◮ S-Video

◮ Ethernet, WiFi

◮ SDIO, I2C, JTAG,Keypad, USB Host

◮ High-speed MMC/SD

◮ 1800 U$S

http://www.ti.com/tool/tmdsevm3530

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 30/56

Page 31: Introduccion Linux Embebido

Gumstix

◮ OMAP 3530

◮ 256 - 512 MB RAM

◮ 0 - 512 MB NAND

◮ Bluetooth

◮ WiFi

◮ microSD

◮ 115 ∼ 230 U$S

https://www.gumstix.com/store/index.php?cPath=27

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 31/56

Page 32: Introduccion Linux Embebido

PandaBoard

◮ OMAP4460

◮ Full HD (1080p)

◮ 1 GB DDR2 RAM

◮ SD/MMC

◮ Bluetooth

◮ Ethernet, WiFi

◮ 160 U$S

http://pandaboard.org/content/platform

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 32/56

Page 33: Introduccion Linux Embebido

RaspBerry Pi

◮ Broadcom BCM2835

◮ ARM11 700Mhz

◮ Videocore 4 GPU

◮ 256 MB RAM

◮ HDMI, USB

◮ Ethernet (B)

◮ 25 - 35 U$S

http://www.raspberrypi.org

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 33/56

Page 34: Introduccion Linux Embebido

Requerimientos mınimos

◮ Una CPU soportada por el GCC y el Kernel Linux◮ 32 bit CPU, con MMU.◮ CPUs sin MMU son soportadas por uClinux.

◮ Desde 4 MB de RAM. 8 MB para hacer algo util.

◮ Desde 2 MB de almacenamiento. 4 MB para hacer algo util.

◮ Linux no esta disenado para procesadores con KBs de RAM oROM:

◮ Se usan sin SO.◮ Sistemas reducidos, como FreeRTOS.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 34/56

Page 35: Introduccion Linux Embebido

Criterios para seleccion del hardware

◮ Asegurarse que el hardware que se quiere utilizar se encuentrasoportado por el kernel Linux, y que tiene un bootloader decodigo abierto.

◮ Es recomendable tener soporte en la version oficial de losproyectos (kernel, bootloader): la calidad es mayor y seraposible encontrar nuevas versiones en el futuro.

◮ Algunos vendedores de SoCs y/o de placas no contribuyen consus cambios a la lınea principal del kernel Linux. Una buenaidea es siempre ver la diferencia entre su kernel y el oficial.

◮ Utilizar hardware soportado por la distribucion oficial delKernel Linux en lugar de hardware con bajo soporte permitiraahorrar mucho tiempo y dinero durante la etapa de desarrollodel proyecto.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 35/56

Page 36: Introduccion Linux Embebido

Introduccion a Linux Embebido

Entorno de desarrollo para Linux

embebido

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 36/56

Page 37: Introduccion Linux Embebido

Arquitectura global

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 37/56

Page 38: Introduccion Linux Embebido

Componentes de software

◮ Cross-compilation toolchain◮ Compilador que corre en la maquina de desarrollo, pero que

genera binarios para el target

◮ Bootloader◮ Es iniciado por el hardware, es el responsable de las

inicializaciones basicas y de cargar y ejecutar el kernel

◮ Kernel Linux◮ Contiene el manejo de procesos y memoria, stack de red,

drivers de dispositivos y provee servicios a las aplicaciones deluserspace

◮ Librerıa de C◮ Es la interfaz entre el kernel y las aplicaciones de userspace

◮ Librerıas y aplicaciones◮ De terceros o propias

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 38/56

Page 39: Introduccion Linux Embebido

Trabajo en Linux Embebido

Se necesitan realizar varias tareas distintas para el despliegue deLinux embebido en un producto.

◮ Desarrollo del Board Support Package◮ El BSP contiene un bootloader y el kernel, con todos los

drivers adecuados para el target.◮ Este es el proposito de un curso sobre desarrollo del kernel.

◮ Integracion del sistema◮ Integrar al sistema todos los componentes, bootloader, kernel,

librerıas y aplicaciones de terceros y aplicaciones propias.◮ Este es el proposito de nuestro curso.

◮ Desarrollo de aplicaciones◮ Aplicaciones normales de Linux pero usando librerıas

seleccionadas especıficamente.◮ No es el proposito de este curso.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 39/56

Page 40: Introduccion Linux Embebido

Soluciones para Linux embebido

◮ Dos maneras de desarrollar un sistema Linux◮ Usar soluciones provistas y soportadas por empresas como

MontaVista, Wind River o TimeSys. Cada una tiene susherramientas propias.

◮ Usar herramientas provistas por la comunidad.

◮ No vamos a promover ninguna empresa en particular, por loque vamos a usar herramientas de la comunidad.

◮ Lo importante es entender los conceptos, migrar deherramienta siempre es mas facil.

◮ Desarrollar un sistema Linux requiere usar Linux.◮ Las herramientas comunitarias no estan disponibles para otras

plataformas.◮ Entender Linux en el desktop nos va a facilitar el desarrollo de

Linux embebido.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 40/56

Page 41: Introduccion Linux Embebido

Distribucion de Linux

◮ Cualquier distribucion suficientementereciente puede ser utilizada comoplataforma de desarrollo

◮ Ubuntu, Debian, Fedora, openSUSE,Red Hat, etc.

◮ Nosotros elegimos Ubuntu, por ser ladistribucion de Linux mas popular ysencilla de usar.

◮ Aprender Linux embebido tambienrequiere aprender las herramientasnecesarias para trabajar sobre laplataforma de desarrollo

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 41/56

Page 42: Introduccion Linux Embebido

Introduccion a Linux Embebido

Arquitectura de un sistema Linux

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 42/56

Page 43: Introduccion Linux Embebido

Sistemas de archivos

◮ En Linux, los sistemas de archivos (filesystem) se“montan” dentro de una jerarquıa global dedirectorios y archivos.

◮ Filesystem unico - Todos los FS de los dispositivosse “montan” sobre un FS base.

◮ Un sistema particular, el root, se monta en eldirectorio /.

◮ En sistemas embebidos:◮ El root filesystem contiene todos los archivos del

sistema.◮ Crearlo es una de las tareas principales de la

integracion de componentes.◮ El kernel normalmente se mantiene separado.

Bootloader

Kernel

Rootfilesystem

Contenidos dela Flash

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 43/56

Page 44: Introduccion Linux Embebido

Creando un sistema de archivos

Ejemplos

◮ mkfs.ext2 /dev/sda1 -L Etiqueta

Formatea la particion /dev/sda1 en formato ext2.

◮ mkfs.ext2 -F disk.img

Formatea una imagen de disco en ext2-F: force. Ejecuta aunque no sea un dispositivo real.

◮ mkfs.vfat -v-F 32 /dev/sda1 -n Etiqueta

Formatea la misma particion anterior en FAT32.(-v: verboso)

◮ mkfs.vfat -v -F 32 disk.img

Formatea la imagen en FAT32.

◮ Imagenes de discos en blanco se pueden crear ası: (archivo de64 MB)dd if=/dev/zero of=disk.img bs=1M count=64

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 44/56

Page 45: Introduccion Linux Embebido

Montando un dispositivo

◮ Para hacer cualquier sistema de archivos visibleen el sistema hay que montarlos.

◮ La primera vez, se crea el punto de montaje:mkdir /mnt/usbdisk (ejemplo)

◮ Ahora lo montamos:mount -t vfat /dev/sda1 /mnt/usbdisk

/dev/sda1: dispositivo fısico-t especifica el formato del sistema de archivo(ext2, ext3, vfat, reiserfs, iso9660)

Datoscrudos

mount

Estructura

de

directorios

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 45/56

Page 46: Introduccion Linux Embebido

Montando un dispositivo

Tambien se puede montar una imagen de sistema de archivoguardada en un archivo regular (loop devices).

◮ Muy util para desarrollar y probar un sistema de archivo queestamos armando para otra computadora.

◮ Util para acceder a los contenidos de una imagen de CD (iso)sin tener que grabar el disco.

Ejemplo:cp /dev/sda1 usbkey.img

mount -o loop -t vfat usbkey.img /mnt/usbdisk

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 46/56

Page 47: Introduccion Linux Embebido

Listando dispositivos

Usando el comando mount sin argumentos se obtiene la siguientelista:

/dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0)

proc on /proc type proc (rw,noexec,nosuid,nodev)

sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)

fusectl on /sys/fs/fuse/connections type fusectl (rw)

none on /sys/kernel/debug type debugfs (rw)

none on /sys/kernel/security type securityfs (rw)

udev on /dev type devtmpfs (rw,mode=0755)

devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)

tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)

none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)

none on /run/shm type tmpfs (rw,nosuid,nodev)

/dev/sda6 on /home type ext4 (rw,commit=0)

...

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 47/56

Page 48: Introduccion Linux Embebido

Desmontado dispositivos

◮ umount /mnt/usbdisk

Termina todas las transacciones pendientes en el dispositivo ylo desmonta.

◮ Para poder desmontar un dispositivo hay que cerrar todos susarchivos abiertos:

◮ Cerrar todos los programas que usen algun archivo deldirectorio montado.

◮ Estar seguro que ningun shell este abierto en esa particion.◮ Se puede usar el comando lsof <mount point> (list open

files) para ver todos los archivos abiertos en ese directorio.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 48/56

Page 49: Introduccion Linux Embebido

El lado oscuro de root

◮ root: se necesitan sus privilegios solo paraoperaciones especıficas, con impacto en laseguridad. Por ejemplo: montar o creardispositivos, cargar drivers, configurar la red,cambiar permisos, instalar paquetes, . . .

◮ Por mas que uno tenga la clave de root, lacuenta normal tiene que ser suficiente para el99.9% de las actividades (a menos que seamos eladministrador del sistema)

◮ En este curso es aceptable usar root. En lapractica vida real, pueden no tener esta cuentadisponible.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 49/56

Page 50: Introduccion Linux Embebido

Usando la cuenta root

En caso que uno realmente quiera ser root . . .

◮ Si uno tiene la contrasena de root:su (switch user)

◮ En distribuciones modernas, el comando sudo da acceso aalgunos privilegios de root usando la clave de usuario.Ejemplo: sudo mount /dev/sdb6 /home

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 50/56

Page 51: Introduccion Linux Embebido

Introduccion a Linux Embebido

Administracion basica del sistema

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 51/56

Page 52: Introduccion Linux Embebido

Sistemas de paquetes

◮ La forma de distribuir software en GNU/Linux difiere de laque se usa en Windows.

◮ Las distribuciones de Linux proveen una forma central ycoherente de instalar, actualizar y borrar aplicaciones ylibrerıas: Paquetes.

◮ Los paquetes contienen la aplicacion, las librerıas einformacion extra, como la version y las dependencias..deb en Debian y Ubuntu, .rpm en Mandriva, Fedora,OpenSUSE

◮ Los paquetes se guardan en repositorios, usualmente serversHTTP o FTP.

◮ Siempre hay que usar paquetes oficiales de la distribucion, amenos que sea estrictamente necesario.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 52/56

Page 53: Introduccion Linux Embebido

Manejando paquetes de software

Instrucciones para sistemas basados en Debian GNU/Linux:(Debian, Ubuntu...)

◮ Los repositorios de paquetes se especifican en:/etc/apt/sources.list

◮ Para actualizar la lista de paquetes:sudo apt-get update

◮ Para encontrar un paquete para instalar, se pueden usar losbuscadores web: http://packages.debian.org ohttp://packages.ubuntu.com.

◮ Tambien se puede usar:apt-cache search <keyword>

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 53/56

Page 54: Introduccion Linux Embebido

Manejando paquetes de software

◮ Para instalar un paquete:sudo apt-get install <package>

◮ Para desinstalar un paquete:sudo apt-get remove <package>

◮ Para aplicar todas las actualizaciones:sudo apt-get distupgrade

◮ Para obtener informacion de un paquete:sudo apt-cache show <package>

◮ Existen interfaces graficas:◮ Synaptic para GNOME◮ Adept para KDE

Para mas informacion sobre administracion de paquetes:http://www.debian.org/doc/manuals/apt-howto/

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 54/56

Page 55: Introduccion Linux Embebido

Apagando el sistema

◮ halt

Apaga inmediatamente el sistema.

◮ reboot

Reinicia inmediatamente el sistema.

◮ [Ctrl]+[Alt]+[Del]

Tambien funciona el GNU/Linux para reiniciar.

◮ Sistemas embebidos: hay que usar una implementacion deinit y especificar una combinacion de teclas en/etc/inittab

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 55/56

Page 56: Introduccion Linux Embebido

Practicas de Laboratorio - Uso de Linux

Uso de la terminal:

◮ Practicar comandos basicos deLinux.

◮ Familiarizarse con la sintaxis delshell.

◮ Perderle el miedo a la terminal.

Laboratorio de Sistemas Embebidos. Facultad de Ingenierıa. Universidad de Buenos Aires 56/56