RTLinux liveCD: Sistema de temps real sense necessitat d’instal·lació!

Fa un temps que vaig trobar de casualitat la plana web de rtlab a on hi ha coses per realitzar experimentació biològica. Lo realment interessant es que ofereixen un liveCD que et permet arrancar la màquina amb un rtlinux sense haver de fer cap instal·lació al disc dur (al més pur estil knoppix).

Estic cursant SITR (Sistemes Informàtics de Temps Real) i per fer una de les pràctiques necessitem rtlinux. En principi ens deixen uns laboratoris a on esta tot instal·lat però només podem accedir en hores de classe, per tant es interessant poder disposar del sistema en casa (sobretot jo que degut als cursos de Software Lliure he de perdre sempre l’última hora de SITR).

Rtlinux es lliure i per tant qualsevol podria aplicar el pegat (patch) al kernel de linux i fer la instal·lació a la seva casa, però aquest procés no es trivial i es possible que espanti a més d’un, personalment em fa molta mandra haver de modificar el kernel i fer tota la instal·lació sabent que només l’utilitzaré per la pràctica. De aquí la importància d’aquest liveCD ja que facilita la feina i ens permet a tots tindre un rtlinux funcional a casa sense haver de fer cap instal·lació a disc dur.

Evidentment no és la panacea i requereix algunes configuracions per poder treballar. He fet les proves amb els exemples que hi han penjats a la web de SITR.

Lo primer que hem de fer es descarregar la imatge del liveCD, descomprimir-la amb (en el cas de fer-ho desde un GNU/Linux):

bzip2 -d  rtlab_livecd_0.64.6-release.iso.bz2

A continuació ja podem crear el CD amb la iso.

Quan la tinguem reiniciem i arranquem de CD amb el rtlinux liveCD al lector, ens sortirà per pantalla un munt de missatges que corresponent a l’arranc d’una Gentoo (aquest liveCD esta basat en aquesta distribució). Un cop arribem al login entrem com a root, no te cap password assignat així que només hem de pressionar enter.

Lo primer que vaig fer va ser configurar la xarxa, per defecte em detecta automàticament la meva tarja de xarxa així que només vaig fer “dhcpcd eth0”. La meva xarxa te un servidor DHCP que autoconfigura els clients, però en el cas de que la vostra no fos així hauria-ho de configurar-ho amb “net-setup eth0”.

Per defecte arranca amb el teclat en angles, com em molesta molt això vaig decidir canviar-ho modificant l’arxiu /etc/rc.conf amb l’editor nano (nano -w /etc/rc.conf) i ficar:

KEYMAP="es euro2"
CONSOLEFONT="lat9w-16"

Guardem i executem a continuació:

/etc/init.d/keymaps restart
/etc/init.d/consolefont restart

Així farem efectius els canvis.

Una altra cosa que trobava a faltar era la configuració del ratolí a la consola per poder copiar/pegar, per tant vaig editar /etc/conf.d/gpm i vaig descomentar:

MOUSE=imps2
MOUSEDEV=/dev/psaux

A continuació activem el dimoni del ratolí de consola gpm:

/etc/init.d/gpm start

Si no ha hagut cap problema podem moure el ratolí i seleccionar el text amb el botó esquerra per copiar i fer click amb el botó central per pegar.

Ara que ja tinc tot el sistema configurat al meu gust vaig a provar l’rtlinux amb els exemples de la web de SITR. Me’ls descarrego amb l’wget:

wget http://www.etse.urv.es/EngInf/assig/sitr/sitr.tar.gz
tar -zxvf sitr.tar.gz
cd sitr/so

A continuació el pas normal seria executar make per compilar l’exemple, però no funcionaria perquè al Makefile s’inclou un arxiu que al nostre liveCD esta situat en un altre directori, així que editem el Makefile i canviem la ruta de l’include que fa referencia a rtl.mk per:

include /cdroot/usr/rtlinux-3.2-pre1/rtl.mk

Ara si podem executar “make”; i es compilarà l’exemple del so sense problemes.

Abans d’executar-ho hem de iniciar els mòduls base del sistema rtlinux, això es fa d’una forma tan senzilla com executant:

/etc/init.d/rtlinux start

Tenim tot a punt per provar l’exemple així que executem:

./rtrun

L’rtrun no es més que un script que carrega el mòdul de l’exemple rt_process.o utilitzant la comanda insmod. Per comprobar que s’ha carregat podem executar lsmod o per treure’l rmmod. En aquest mòdul estaràn les rttasques.

A continuació ja podem executar el proces linux que es comunica amb el mòdul que crea les rttasques. Això es fa amb “./process”.

Crec que per que funcioni aquesta pràctica es necessari tenir el hardware que hi ha al laboratori de SITR i per tant si ho executem a la nostra casa no passarà res. Hauriem de modificar-la per que utilitzes l’speaker (aquest any podem realitzar la practica a casa utilitzant l’speaker ja que hem de generar ones quadràtiques).

Així que ja tenim el sistema preparat per realitzar la nostra pràctica. Heu de tenir en compte que es tracta d’un liveCD i que totes aquestes modificacions es fan a RAM, es a dir, es perdran per la propera vegada que arranquem.

Finalment només explicar que es possible que ens interessi tenir accés a una partició del nostre disc dur per poder guardar la nostra pràctica, per això podem crear un directori a on muntar-la, per exemple en el meu cas em pot interessar muntar la meva partició del linux que tinc instal·lat al disc dur, miro amb cfdisk a quina partició esta i veig que es la /dev/hda5:

mkdir /mnt/mi_linux
mount -t ext3 /dev/hda5 /mnt/mi_linux

Ara ja tinc accés al meu disc dur al directori /mnt/mi_linux. Només senyalar que linux pot llegir però no escriure de particions NTFS, així que per guardar la nostra practica hem d’utilitzar una partició FAT32 o ext2/3 (les habituals de linux).

Autor: marble

This entry was posted in Linux. Bookmark the permalink.

10 Responses to RTLinux liveCD: Sistema de temps real sense necessitat d’instal·lació!

  1. murdock says:

    Amb un Compaq Presario 2505EA no hi ha teclat :-(( . Bueno a investigar s’ha dit !!!

  2. cdelphi96 says:

    Prova de desavilitar el suport USB de la bios. No he fer servir aquesta distribució però a Debian GNU/Linux cal desabilitar i iniciar amb un kernel de la sèrie 2 o bé si vols iniciar amb el kernel 2.4.18bf24 cal que arre4nquis amb bf24 nousb

  3. murdock says:

    He recordat aquest mateix comentari que em vas fer quan vas instalar el debian al portatil … Ja et dire com ha anat, si no fos per la llibreta de les “xuletes” i dels comentaris dels companys de practiques, ehh Cesar ???

  4. cdelphi96 says:

    si fas servir Suse/RedHat/Mandrake prova amb una versió que hi ha de RPM, encara que jo a títol d’opinió personal, provaria primer de instalar rtlinux compilant i instalant, Salutacions.

  5. murdock says:

    nomes cal desactivar el USB del Compaq i sense problemes. A mes he trobat un error a l’explicació, on posa include /cdroot/usr/rtlinux-4.2-pre1/rtl.mk ha de ser include /cdroot/usr/rtlinux-3.2-pre1/rtl.mk

  6. marble says:

    Gràcies per reportar l’error, he modificat l’article 🙂


    Marble :: http://www.marblestation.com

  7. Anonymous says:

    Hola vaig a la clase de SITR, aquest mati m’he estat barallant amb l’exemple de la Practica per a fer que soni per l’espeaker i no ho he aconseguit, crec que no es dificil, sols qüestio d’encertar el port, ho he estat mirant i segons he trobat s’escriu en el port 42h el valor i es modifica el 61h per a que soni. Crec que seria molt bo que miressem aixo ja que llavors podriem fer la prac desde casa. Jo m’ho seguire mirant, si em funciones ho posare aqui inmediatament.
    Salutacions. Lluis.

  8. Anonymous says:

    Hola companys !!

    A veure si algú hem podeu ajudar. Quan executo el programa hem diu que no pot enviar per la RT FIFO. Llavors he posat el include de rtl_fifo.h, però no el troba.

    Algú s’ha trobat amb el mateix problema (utilitzant el LIVE-CD) ?

  9. Anonymous says:

    Enviar el valor 182 al port 43h per engegar el speaker.

    Llavors has d’enviar la freqüència que desitjes al port 42h. Aquest port és de 8 bits, així que tú deus enviar dos instruccions per fer això. Enviant el byte menys significatiu en primer lloc i després el més significatiu.

    Per a què comenci a sonar has de posar el bit 1 i 0 del port 61h a 1. I els altres bits del port 61h no s’han de modificar (ATENCIÓ !!). Així que deus utilitzar una instrucció IN primer per obtenir el valor del port i llavors fer una OR per actualitzar aquests dos bits. Després un OUT per enviar un nou valor pel port.

    Per apagar el beep s’ha de posar el bit 1 i 0 del port 61h a 0.

    SORT !!

  10. jose says:

    Hola, soc un iniciat del Rtlinux (bueno del soft lliure en general) porto una setmana currant a saco i tinc el cap com un timbal. La historia esta en que m’interessa treballar amb RTlinux i no hi ha manera!!!

    El primer que vaig fer es baixar-me Debian i intentar instalar RTlinux seguint els passos que m’indicaben a trecentes mil pagines. Conclusió despres d’una setmana d’inmersió total nomès me trobat amb errors a l’hora de fer el bzImage!!

    Amb del cd live de rtlab mas de los mismo. El carrego i tal…i perfecte pero alhora de executar cualsevol exemple no se…se compilar un programa fet per mi: exemple gcc jose.c -o jose.o i despres ./jose.o executem….printf(“soc un negat”)

    Algu em pot ajudar????????????

    a percert sap algu com puc modificar cualsevol arxiu Makefile???? probo amb nano o vi i no em surt res

Leave a Reply