IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Linux Professional Institute Certificate. LPIC-1

Lpic1 large.gif
Certificat LPIC-1
Examen: 101 (torneu a la resta de temes)
Fitxers: LPI101.1_DefinirConfigurarParametresMaquinari.pdf (LPI101.1_DefinirConfigurarParametresMaquinari.odp)
Objectius: http://www.lpi.org/eng/certification/the_lpic_program/lpic_1/exam_101_detailed_objectives
Dipòsit SVN: https://svn.projectes.lafarga.cat/svn/lpi/Materials/Examen_101/101.1
Usuari: anonymous
Paraula de pas: qualsevol paraula de pas

Objectius del tema

101.1. Determinar i configurar el maquinari
Objective.jpg
  • Objectiu: Els candidats han de ser capaços de determinar i configurar el maquinari bàsic del sistema.
  • Pes: 2
060317 Icon - Theory of Knowledge v01 pdc.jpg

Àrees Clau de Coneixement:

Icon list.jpg

La següent és una llista parcial de fitxers, termes i utilitats utilitzades:

Text-editor.svg

Apunts: LPI 101.1. Determinar i configurar el maquinari

Plantilla

LPI101.1PlantillaApunts

Arquitectura del sistema operatiu

Consulteu:

Mòduls del kernel

Vegeu l'article Mòduls del kernel.

Consultar els mòduls del nucli i el seu estat. Ordre lsmod

Consulteu lsmod

Afegir i eliminar mòduls del nucli. Ordre modprobe

Consulteu modprobe

Dispositius

Dispositius Coldplug i Hotplug

Els dispositius hotplug són els que poden estar attached (connectats) o no a l'ordinador (dispositius USB, Ethernet, IEEE-1394 - firewire-). Tenen la propietat que poden ser connectats quan l'ordinador està encès (connexió en calent).

Els coldplug són normalment els interns. Els dispositius coldplug estan dissenyats per ser només connectats qun l'ordinador està apagat. Intentar connectar-los en calent (ordinador encès) pot provocar problemes.

Gestors de dispositius hotplug

Hi ha múltiples utilitats que ajuden en la gestió de dispositius hotplug (i en la gestió de dispositius en general):

  • Sysfs: El sistema de fitxers virtual sysfs es munta a la carpeta /sys. En aquesta carpeta s'exporta informació sobre dispositius de forma que aquests puguin ser utilitzats per les aplicacions de l'espai d'usuari (user space) per tal d'accedir a la informació dels dispositius.
  • HAL Daemon: El dimoni Hardware Abstraction Layer (HAL), o hald, és un programa de l'espai d'usuari que s'executa de forma continuada i en segon pla i que proporciona a altres programes informació sobre els dispositius de maquinari disponibles.
  • D-Bus: El Desktop Bus (D-Bus) proporciona un nivell d'abstracció addicional per accedir a la informació del maquinari. Com hald, d-bus s'executa com un dimoni (en segon pla i de forma continuada). D-Bus és un sistema de comunicació entre processos (IPC o Inter-Process Communication). A més també permet registrar esdeveniments de processos però també de maquinari (com per exemple la disponibilitat d'un nou dispositiu USB)
  • udev: Tradicionalment, Linux tracta els dispositius de maquinari com a fitxers que podem trobar a la carpeta /dev. Entre d'altres, l'aparició de dispositius hotplug va motivar la creació d'udev, un sistema de fitxers virtual muntat a /dev, que genera fitxers de dispositiu de forma dinàmica tan bon punt els drivers es carreguen o es descarreguen. Udev es configura a la carpeta /etc/udev, però normalment la configuració estàndard és suficient per a la gestió comuna del maquinari.
NOTA: cal tenir en compte que dispositius antics de maquinari com dispositius que utilitzen el port sèrie o el port paral·lel, són hotplug però no es consideren 
hotplug ja que poden succeir problemes si es connecten o es desconnecten en calent. Aquest dispositius normalment no són gestionats per eines com udev o hald.

Plug and play (PnP)

NOTA: Vegeu també zeroconf

Els primers PC assignaven números de port i IRQs fixes per a dispositius especifics, com teclats o impressores paral·lel. Aquest fet dificultava afegir nous dispositius o fins i tot executar dos dispositius del mateix tipus.

Per exemple, els ports sèrie s'anomenaven:

  • COM1: Primer port sèrie. Típicament ttyS0 a Linux.
  • COM2: Segon port sèrie. Típicament ttyS1 a Linux.

A més moltes plaques mare es configuraven amb jumpers. A mesura que apareixen més tipus de dispositius el sistema es va fer obsolet i va aparèixer el PnP. La idea és que els propis dispositius informin al sistema i a la BIOS quins són els recursos que necessiten i que el sistema informi al dispositiu quins recursos se li han assignat. Aquest sistema va ser introduït amb IBM PS/2.

Més endavant la idea va ser utilitzada en targetes ISA, sobretot amb mòdems i targetes de só (molt habituals en aquells temps). Tots els dispositius PCI són PnP.

Amb PnP en principi tot havia de ser automàtic però per incompatibilitats havia dispositius que s'havien de configurar a mà.

La eina isapnptools s'utilitzava per controlar l'assignació de recursos en dispositius ISA amb la comanda isapnp i el fitxer de configuració /etc/isapnp.conf.

Des de l'aparició dels kernels 2.4 el suport per a PnP està integrat en el kernel de Linux i aquestes eines s'han convertit en obsoletes.

Altres comandes que han quedat obsoletes són:

$ lspnp
El programa «lspnp» no està instal·lat actualment.  Podeu instal·lar-lo si escriviu:
sudo apt-get install pnputils
bash: lspnp: command not found

I el fitxer

/proc/bus/pnp

Configuració de dispositius

Configurant targetes d'expansió PCI

Abans de l'aparició del sistema PnP (mitjans 90), era tediós configurar el maquinari i sovint s'havia de recórrer als jumpers o a la BIOS.

Actualment la configuració es pot fer per programari i sovint no cal configurar res ja que gràcies a PnP, els dispositius es configuren sols.

Es pot modificar els comportament del nucli respecte a la detecció de maquinari canviant els següents paràmetres o opcions del nucli:

PCI Devices --> Bus Options --> PCI Access Mode

Tenim 4 opcions:

  • BIOS
  • MMConfig
  • Direct
  • Any-> Que vol dir primer MMconfig, després Direct i finalment BIOS. És la opció habitual.

NOTA: tingueu en compte que segons això, segons la configuració del nucli els canvia a la BIOS poden no tenir cap repercussió en el sistema operatiu.

L'ordre setpci permet modificar el funcionament dels dispositius PCI (això inclou els dispositius integrats i dispositius PCI-Express o AGP).

Consultant la informació dels dispositius PCI

Consulteu lspci.

Configurar dispositius PCI

Es pot fer amb l'ordre setpci. No entra als objectius de l'exàmen.

Configurant dispositius USB

A Linux hi ha diferents drivers o controladors USB amb noms com UHCI, OHCI, EHCI o R8A66597. La majoria de sistemes operatius Linux moderns venen amb els drivers USB ja carregats i la gestió de dispositius USB és automàtica.

Alguns controladors són només per a la versió 1.1 de USB, però la majoria també suporten 2.0. Cal tenir en compte que una cosa és el bus de comunicació USB i un altre el dispositiu que hi ha connecta, de tal manera que poden ser necessaris altres drivers o aplicacions per als usos concrets de cada dispositiu (impressores, escànners, càmares digitals...).

Si amb dispositiu PCI tenim la comanda lspci amb USB disposem de la comanda lsusb que ens mostra els dispositius USB que tenim connectats:

$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 002: ID 03f0:0324 Hewlett-Packard 
Bus 007 Device 003: ID 046d:c018 Logitech, Inc. Optical Wheel Mouse
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Podeu trobar més informació sobre aquesta comanda l'article lsusb

Aplicacions de gestió del bus USB

Tal i com ja em comentat, els dispositius USB són dispositius hotplug i el kernel de Linux no va ser originalment dissenyat per gestionar aquests tipus de dispositius. Per aquesta raó s'utilitzen utilitats externes al kernel per tal de gestionar els dispositius.

Actualment els kernels 2.6 porten integrat hotplug al kernel i el que s'està utilitzant és udev.

Altres dispositius (pcmcia)

Consulteu l'ordre lspcmcia.

Configuració de discs durs

3 sistemes actualment

  • Parallel Advanced Technology Attachment (PATA) a.k.a. ATA (discs IDE)
  • Serial Advanced Technology Attachment (SATA)
  • Small Computer System Interface (SCSI)

També cal tenir en compte que hi ha adaptadors USB i IEEE-1394 per dispositius externs dels 2 tipus anteriors.

Consulteu

Discs durs

Sistemes de fitxers especials

El sistema de fitxers sysfs. /sys

Sysfs és un sistema de fitxers virtual (només existeix en RAM) proporcionat pel nucli del sistema des de la versió 2.6 (any 2003). Sysfs exporta informació sobre los dispositius i els seus controladors (drivers) des de l'espai de sistema del nucli a l'espai d'usuari.

Sysfs va aparèixer durant el desenvolupament del nucli 2.5 (les branques nones sempre són les de proves) amb la intenció de solucionar els següents problemes:

  • Falta d'un mètode unificat per a representar les relaciones entre els controladors i els dispositius de maquinari.
  • Faltava un mecanisme de suport hotplug estàndard.
  • procfs estava ple d'informació que no estava relacionada amb els processos.

Força aplicacions depenen de sysfs per funcionar (p. ex. udev o HAL). Utilitzant aquest sistema de fitxers virtual per accedir a informació del maquinari i dels controladors del maquinari (normalment mòduls del nucli).

TODO:

Estructura del directori sysfs

En l'estructura de la carpeta /sys els directoris organitzen els dispositius, les classes, els busos, els controladors etc. i també estableixen les relacions entre ells. Els fitxers contenen atributs (cada fitxer un atribut).

Les carpetes principals són:

$ tree -L 1 /sys
/sys
|-- block
|-- bus
|-- class
|-- dev
|-- devices
|-- firmware
|-- fs
|-- kernel
|-- module
`-- power

La carpeta més important és /sys/devices:

$ tree -L 1 /sys/devices/
/sys/devices/
|-- LNXSYSTM:00
|-- isa
|-- pci0000:00
|-- platform
|-- pnp0
|-- pnp1
|-- system
`-- virtual

Aqui hi ha informació dels dispositius. La resta de les carpetes sovint són enllaços a aquesta carpeta i així s'estableixen les relacions entre busos, drivers, dispositius, etc...

sys/block:

Dispositius de block. Són enllaços simbòlics a fitxers de la carpeta /sys/devices

/sys/bus

Informació dels busos de comunicacions:

$ tree -L 1 /sys/bus
/sys/bus
|-- MCA
|-- acpi
|-- eisa
|-- hid
|-- i2c
|-- ieee1394
|-- isa
|-- mdio_bus
|-- mmc
|-- pci
|-- pci_express
|-- platform
|-- pnp
| -- scsi
| -- sdio
|-- serio
|-- spi
`-- usb

Hi ha una carpeta amb enllaços als dispositius i una carpeta amb els drivers:

/sys/bus/pci/drivers

La carpeta /sys/class mostra els dispositius agrupats per classes (xarxa -net-,impressores -printer-, so -sound-, etc.):

$ tree -L 1 /sys/class | more
/sys/class
|-- backlight
|-- bdi
|-- block
|-- bluetooth
|-- dma
|-- dmi
|-- drm
|-- firmware
|-- gpio
|-- graphics
|-- hidraw
|-- hwmon
|-- i2c-adapter
|-- ieee1394
|-- ieee1394_host
|-- ieee1394_node
|-- ieee1394_protocol
|-- ieee80211
|-- input
|-- leds
|-- mdio_bus
|-- mem
|-- misc
|-- mmc_host
|-- net
|-- pci_bus
...

Modificar paràmetres del nucli sysctl

Consulteu sysctl.

El sistema de fitxers procfs. /proc

Consulteu procfs

Modificar paràmetres del nucli sysctl

Consulteu sysctl.

El sistema de fitxers dev. /dev

Consulteu /dev.

Comandes

lspci

Consulteu lspci

lsusb

Consulteu lsusb

modprobe

Consulteu modprobe.

lsmod

Consulteu lsmod

setpci

TODO

Altres

Comandes Linux relacionades amb el maquinari

Consulteu:

Comandes_relacionades_amb_el_maquinari

Aplicacions gràfiques

Consulteu

Aplicacions_gràfiques_relacionades_amb_el_maquinari

Ubuntu

Consulteu:

Hardware/Maquinari_a_Ubuntu

Monitorització

Consulteu:

Monitorizació_del_maquinari._lm-sensors

Recursos:

Vegeu també

Preguntes de test de repàs

1. Quin és el IRQ típic per als ports sèrie

   A.	 1
   B.	 3
   C.	 4
   D.	 16

2. Quina eina utilitzaries per desactivar el so integrat a la placa mare?

   A.	 La BIOS
   B.	 La utilitat alsactl
   C.	 La comanda lsmod
   D.	 Cap de les anteriors; els dispositius de so integrats a la placa mare no poden ser desactivats

3. Quin és l'objectiu d'udev

   A.	 Ajudar en el desenvolupament de programari
   B.	 Gestionar l'arbre de directory /dev
   C.	 Carregar drivers de dispositius a Linux 
   D.	 Emmagatzemar el fitxers de configuració de dispositius de la BIOS a fitxers

4. Quins fitxers contenen informació essencial del sistema com IRQs, canals DMA i adreces I/O? (Seleccioneu totes les que siguin correctes)

   A.	 /proc/ioports
   B.	 /proc/ioaddresses
   C.	 /proc/dma
   D.	 /proc/interrupts