2008

 

Duccio Geronimi

Juri lelli

Matteo Pardi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

[Guida all’uso e alla creazione di una live ubuntu – RTAI 7.10]

Con l’aggiunta di:  Scilab Scicos XRtaiLab NetBeans e DCL

 

 

 english version

 

 scarica la iso

 

 

Indice

 

Capitolo 1  Istruzioni per l’uso

 

            1.1      Avvio della live

           

 

 

 

 

Capitolo 2  Creazione Di Una Ubuntu-Rtai

 

1.1 

2.1      Premessa

2.2      Preparazione

2.3      MesaLib

2.4      eFLTK

2.5      Scaricare RTAI

2.6      Linux Kernel 2.6 (con le patch di Ubuntu 7.10)

2.7      Comedilib

2.8      RTAI

2.9      Comedi

2.10    RTAI-Lab

2.11    Scilab – Scicos

2.12    RTAI-Lab add-on

2.13    Post installazione

 

 

 

 

Capitolo 3  Creazione di un Live-CD

 

3.1      Premessa

3.2      Strumenti necessari

3.3      Estrazione del CD

3.4      Preparativi alle modifiche

3.5      Personalizzazioni

3.6      Ricostruire il CD

 

 

 


 

CAPITOLO 1

istruzioni per l’uso

 

 

1.1 Avvio della live

 

 

Per quanto riguarda la compatibilità con dell’hardware specifico e per le potenzialità e funzioni dei programmi non “RTAI” ci si deve riferire alla guida dell’Ubuntu installata (http://wiki.ubuntu.com)

 

Per avviare il CD-Live potrebbe essere neccessario mettere il vostro lettore cd/dvd come predefinito nella lista dell’hardware di boot.

In alcuni sistemi, principalmente portatili, il bios mette a disposizione un comando Function immediato per la scelta del dispositivo di boot.

Nella totalità dei sistemi però si può entrare all’avvio del computer nel bios e cambiare, nella sezione boot, l’ordine con cui vengono analizzati i dispositivi hardware all’avvio.

 

Per una guida passo passo http://www.megalab.it/articoli.php?id=944

 

Fatto potrete scegliere se usare il cd come live o se installarlo in maniera definitiva sul computer.

 

Una volta avviato potrete sfruttare tutte le potenzialità della Ubuntu-Rtai.

 

NB tutti i documenti che non volete perdere alla fine della sessione andranno espressamente salvati su una dispositivo removimile (usb-pen, CD-R ecc.) o sulla memoria fissa del computer su cui state lavorando, infatti tutte le impostazioni e i documenti non salvati andranno persi al termine della sessione

 

Per avviare i programmi “RTAI” sarà necessario andare su “Applications”  à “RTAI Stuff” e scegliere l’applicazione desiderata.


 

 

CAPITOLO 2

creazione di una Ubuntu-Rtai

 

 

2.1 Premessa

 

 

Guida parzialmente tratta da RTAI & Comedi & Matlab on Ubuntu Gutsy - 2008-02-24 - V3

 

By Arno Stienen  arnoreg at gmail dot com (https://www.rtai.org/RTAILAB/RTAI-UbuntuGutsy-Matlab.txt) e da RTAI-Lab tutorial: Scilab, Comedi, and real-time control Roberto Bucher, Thomas Netter, Simone Mannori. February 28, 2008 (https://www.rtai.org/RTAILAB/RTAI-Lab-tutorial.pdf)

 

 

Questa guida spiega come è stata creata e come ricreare o capire come personalizzare Ubuntu-RTAI 7.10, una distribuzione live derivata da Ubuntu 7.10 che rende disponibile un ambiente real-time (RTAI Linux 3.6) e software per sviluppo di applicazioni in questo ambiente (NetBeans+DCL).

 

Tutto il software necessario sarà  installato (previa pacchettizzazione con checkinstall o alla maniera debian) prima sul sistema host (Ubuntu 7.10 su hd) e dopo su quello guest in ambiente chroot.

 

 

Come regola generale costruiremo pacchetti con questi valori per alcuni campi:

 

0. Maintainer     Il tuo nome (tuaemail@indirizzo.it);

1. Summary      Breve descrizione come quella trovata nel sito web da dove

                        È stata scaricata l'applicazione;

2. Name                       Nome del pacchetto (indicato passo-passo);

3. Version         O il numero di versione ('7.0.3') o la data di download dal

                        cvs ('cvs20042008').

 

 

E' conveniente copiare i vari pacchetti creati in una directory a parte in modo da averli facilmente raggiungibili quando necessario.

 


 

2.2 Preparazione

 

Installare Ubuntu 7.10 su hard disk, in modo da creare i vari pacchetti necessari (librerie e kernel) per poi installarli al momento della costruzione della live in ambiente chroot.

 

Commentare la linea CD-ROM nella lista dei repository e abilitare tutte le altre andando a modificare il file sources.list:

 

           sudo nano /etc/apt/sources.list

           sudo apt-get update

 

Prendere possesso delle directories dei sorgenti:

 

           sudo chown -R [tuousername]:[tuousername] /usr/local/src /usr/src

 

Installare i pacchetti necessari:

 

           sudo apt-get install cvs subversion build-essential automake checkinstall x11proto-xext-dev xlibs-static-dev libxext-dev libxt-dev gettext libncurses5-dev fakeroot kernel-package swig python-dev libtool libboost-program-options-dev libgsl0-dev libxmu-dev libxi-dev flex bison

 

I quali installeranno automaticamente anche:

 

General:

 cvs

 subversion            --> libapr1 libaprutil1 libpq5 libsvn1

 build-essential       --> dpkg-dev g++ g++-4.1 libc6-dev libstdc++6-4.1-dev linux-libc-dev patch

 automake              --> autoconf autotools-dev m4

 checkinstall

MesaLib:

 x11proto-xext-dev     --> libxau-dev x11proto-core-dev x11proto-input-dev

 xlibs-static-dev      --> libfontenc-dev libfreetype6-dev libx11-dev libxdmcp-dev libxfont-dev x11proto-fonts-dev x11proto-kb-dev xtrans-dev zlib1g-dev

 libxext-dev

 libxt-dev             --> libice-dev libsm-dev

EFLTK:

 gettext

Linux Kernel:

 libncurses5-dev

 fakeroot

 kernel-package        --> intltool-debian po-debconf

Comedilib

 swig

 python-dev            --> python2.5-dev

 libtool

Comedi Calibrate:

 libboost-program-options-dev  --> libboost-dev libboost-program-options1.34.1

 libgsl0-dev

RTAI

 libxmu-dev            --> libxmu-headers

 libxi-dev

 

 

 

2.3 MesaLib

 

 

cd /usr/local/src

 

Scaricare MesaLib-7.0.3.tar.bz2 da http://sourceforge.net/projects/mesa3d nella directory corrente.

 

           tar jxf MesaLib-7.0.3.tar.bz2

           cd Mesa-7.0.3

           make linux-x86

           sudo checkinstall  # usare 'mesalib-standalone' come nome;

cd /usr/local/src

 

 

2.4 eFLTK

 

 

(Basato su http://equinox-project.org/cgi-bin/trac.cgi/wiki/UbuntuInstallation)

 

Scaricare nella cartella con la data corrente compilare ed installare

           cd /usr/local/src

           svn co https://ede.svn.sourceforge.net/svnroot/ede/trunk/efltk

           cd efltk

           autoconf

 

Configure (--enable-xft non funziona in Ubuntu 7.10):

 

           ./configure --disable-mysql --disable-unixODBC

           ./emake

 

 

 

Prima di utilizzare checkinstall occorre modificare il file efltk.spec come mostrato in allegato (si può anche sovrascrivere direttamente il file e aggiornare i campi dopo).

 

 

           sudo checkinstall bash emake install  # usare 'efltk' come nome

 

Aggiungere '/usr/local/lib' a /etc/ld.so.conf (ricordarsi di eseguire lo stesso passaggio anche in ambiente chroot al momento della creazione del live cd):

 

           sudo nano /etc/ld.so.conf

           sudo ldconfig

 

           sudo checkinstall bash emake install 

 

 

 

2.5 Scaricare RTAI

 

Scaricare RTAI:

 

 

           cd /usr/local/src

           wget --no-check-certificate https://www.rtai.org/RTAI/rtai-3.6.tar.bz2

           tar xjf rtai-3.6.tar.bz2

           ln -s rtai-3.6 rtai


 

 

2.6 Linux Kernel 2.6 (con le patch di Ubuntu 7.10)

 

 

Scaricare i sorgenti del kernel e dei moduli:

 

 

           cd /usr/src

          sudo apt-get build-dep linux‐image‐2.6.22‐14‐generic  linux‐ubuntu‐modules‐2.6.22‐14‐generic

           apt-get source linux-image-2.6.22-14-generic  linux-ubuntu-modules-2.6.22-14-generic

 

Scaricare anche i sorgenti del kernel vanilla, utili per creare un file di configurazione:

 

 

           wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.14.tar.gz

           tar xzf linux-2.6.22.14.tar.gz

           cd linux-2.6.22.14.tar.gz

 

Patchare il kernel con la patch di RTAI:

 

 

           patch -p1 < /usr/local/src/rtai/base/arch/i386/patches/hal-linux-2.6.22-i386-1.10-12.patch

 

Copiare la configurazione del kernel di Ubuntu (premere invio ad ogni domanda di 'make oldconfig'):

 

 

           cp /boot/config-2.6.22-14-generic .config

           make oldconfig

           make menuconfig

 

 

 

 

E configurare come segue:

 

- Loadable module support ---> Module versioning support ---> disabled

- Processor type and features ---> Symmetric multi-processing support ---> disabled

- Processor type and features ---> Preemption Model

   ---> Preemptible Kernel (Low-Latency Desktop)

- Processor type and features ---> Interrupt pipeline ---> enabled

- Power management options (ACPI, APM)

   ---> Legacy Power Management API ---> disabled

- Power management options (ACPI, APM) ---> Software Suspend ---> disabled

- Power management options (ACPI, APM)

   ---> ACPI (Advanced Configuration and Power Interface) Support

   ---> ACPI Support ---> disabled

- Power management options (ACPI, APM)

                  ---> APM (Advanced Power Management) BIOS Support

                  ---> APM BIOS Support ---> disabled

- Power management options (ACPI, APM)

                ---> CPU Frequency scaling ---> CPU Frequency scaling ---> disabled

- Power management options (ACPI, APM)

                  ---> Power Management support ---> disabled

- Kernel hacking

   ---> Kernel debugging ---> disabled

 

Creare una directory 'rtai' all'interno dei sorgenti del kernel:

 

 

           cd /usr/src/linux-source-2.6.22-2.6.22/debian/binary-custom.d

           mkdir rtai

           cd rtai

 

Copiarvi il file di configurazione:

 

 

           cp /usr/src/linux-2.6.22.14/.config config.i386

 

E la patch da applicare modificandone opportunamente il nome:

 

 

           mkdir patchset

           cd patchset

           cp /usr/local/src/rtai/base/arch/i386/patches/hal-linux-2.6.22-i386-1.10-12.patch 0001-hal-linux-2.6.22-i386-1.10-12.patch

           cd ..

 

Copiare gli altri due file necessari dalla directory 'rt' e modificare 'vars' con i valori voluti:

 

 

           cp ../rt/rules .

           cp ../rt/vars .

           nano vars

 

Compilare il kernel:

 

cd /usr/src/linux-source-2.6.22-2.6.22

CONCURRENCY_LEVEL=2 AUTOBUILD=1 NOEXTRAS=1 fakeroot debian/rules custom-binary-rtai

Il primo valore va impostato al numero di CPU disponibili; su un dual-core questo passo richiede una mezz'ora.

                       

Modificare alcuni file per la compilazione dei moduli:

 

 

           cd /usr/src/linux-ubuntu-modules-2.6.22-2.6.22/debian

           nano control

Aggiungere in fondo al file una sezione di questo tipo:

 

 

==== INIZIARE LA COPIA DALLA PROSSIMA RIGA ==== (Non includere questa linea)

 

Package: linux-ubuntu-modules-2.6.22-14-rtai

Architecture: i386

Section: base

Priority: optional

Provides: ndiswrapper-modules-1.9, apparmor-modules-2.1

Depends: linux-image-2.6.22-14-rtai

Pre-Depends: dpkg (>= 1.10.24)

Description: Ubuntu supplied Linux modules for version 2.6.22 on x86

 This package contains modules supplied by Ubuntu for Linux kernel 2.6.22 on

 x86.

 .

 You likely do not want to install this package directly. Instead, install

 the linux-rtai meta-package, which will ensure that upgrades work

 correctly, and that supporting packages are also installed.

 

==== FERMARSI ALLA RIGA PRECEDENTE ==== (Non includere questa linea)

 

Editare il file 'i386.mk', cancellarne il contenuto e inserire il testo che segue:

 

 

           nano rules.d/i386.mk

 

==== INIZIARE LA COPIA DALLA PROSSIMA RIGA ==== (Non includere questa linea)

 

build_arch      = i386

flavours        = rtai

 

==== FERMARSI ALLA RIGA PRECEDENTE ==== (Non includere questa linea)

 

Compilare i moduli:

 

 

           CONCURRENCY_LEVEL=2 AUTOBUILD=1 fakeroot debian/rules binary-debs

 

Installare i pacchetti appena creati:

 

           cd ..

           sudo dpkg -i linux-image-2.6.22-14-rtai_2.6.22-14.52_i386.deb linux-headers-2.6.22-14-rtai_2.6.22-14.52_i386.deb linux-ubuntu-modules-2.6.22-14-rtai_2.6.22-14.37_i386.deb

 

Riavviare con il nuovo kernel.

 

 


2.7 Comedilib

 

Scaricare i sorgenti di Comedi (premere invio quando viene richiesta la password ed

ignorare gli eventuali warnings):

        cd /usr/local/src

        cvs -d :pserver:anonymous@cvs.comedi.org:/cvs/comedi login

        cvs -d :pserver:anonymous@cvs.comedi.org:/cvs/comedi co comedi

        cvs -d :pserver:anonymous@cvs.comedi.org:/cvs/comedi co comedilib

        cvs -d :pserver:anonymous@cvs.comedi.org:/cvs/comedi co comedi_calibrate

Compilare ed installare comedilib.

 

           cd comedilib

           sh autogen.sh

           ./configure --sysconfdir=/etc

           make

           sudo checkinstall

usare 'comedilib' come nome, comedilib.spec allegato a questa guida

                                    

Compilare e installare comedi_calibrate.

 

           cd ../comedi_calibrate

           aclocal

           automake --add-missing

           autoreconf

           ./configure

           make

           sudo checkinstall

usare 'comedi-calibrate' come nome

 

 

 

2.8 RTAI

 

 

Compilare ed installare RTAI (per ora senza Comedi-support o RTAI-Lab).

 

 

           cd /usr/local/src

           rm rtai

           wget http://www.linuxcnc.org/hardy/dists/hardy/base/source/rtai_3.6-linuxcnc.2.tar.gz

           mv rtai-3.6 rtai-3.6_orig

           tar xzvf rtai_3.6-linuxcnc.2.tar.gz

           cd rtai-3.6/debian

 

Modificare 'control' in modo simile a quello che segue:

 

 

           nano control

 

==== INIZIARE LA COPIA DALLA PROSSIMA RIGA ==== (Non includere questa linea)

 

Source: rtai

Section: misc

Priority: extra

Maintainer: TuoNome TuoCognome (NomeEmail at TuoProvider dot it)

Build-Depends: linux-headers-2.6.22-14-rtai

 

Package: rtai-modules-2.6.22-14-rtai

Architecture: any

Description: Real Time modules for linux-image-2.6.22-14-rtai

Depends: linux-image-2.6.22-14-rtai

 

==== FERMARSI ALLA RIGA PRECEDENTE ==== (Non includere questa linea)

 

Cambiare in '2.6.22-14-rtai' il campo 'KERNEL_VER' del file 'rules':

 

 

           nano rules

 

Compilare:

 

           cd ..

           fakeroot debian/rules binary

 

Installare

 

           cd ..

           dpkg -i rtai-modules-2.6.22-14-rtai_3.6-linuxcnc.2_i386.deb

 

non occore salvare questo pacchetto perché sarà successivamente ricreato

                                                                                                 

 

Aggiungere ':/usr/realtime-2.6.22-14-rtai/bin' alla variabile path in '/etc/environment':

 

           

           sudo nano /etc/environment

 

 stessa modifica in chroot successivamente

 

 


2.9 Comedi

 

 

           cd /usr/local/src/comedi

           sh autogen.sh

           ./configure --enable-kbuild --disable-pcmcia --with-rtaidir=/usr/realtime-2.6.22-14-rtai/

           make

 

Creare lo script di install:

 

 

           nano install-rtai

 

==== INIZIARE LA COPIA DALLA PROSSIMA RIGA ==== (Non includere questa linea)

 

#!/bin/bash

make install

cp include/linux/comedi.h include/linux/comedilib.h /usr/local/include

mkdir -p /usr/local/include/linux

ln -sf /usr/local/include/comedi.h /usr/local/include/linux/comedi.h

ln -sf /usr/local/include/comedilib.h /usr/local/include/linux/comedilib.h

 

==== FERMARSI ALLA RIGA PRECEDENTE ==== (Non includere questa linea)

 

           sudo checkinstall --install=no --fstrans=no bash install-rtai

           sudo dpkg --force-overwrite -i comedi*.deb

           sudo make dev

 

 usare 'comedi' come nome


 

2.10 RTAI-Lab

 

 

 

Occorre modificare il campo 'CONFIGURE' del file di configurazione 'rules':

 

 

           cd /usr/local/src/rtai-3.6/debian

           nano rules

           CONFIGURE := --enable-shm --enable-fpu --enable-compat --disable-leds --enable-rtailab --disable-netrpc --enable-cpus=1 CONFIG_RTAI_RTDM=y --with-comedi=/usr/local --enable-comedi-lxrt --with-efltk=/usr/local

 

Compilare ed installare previa rimozione del precedente pacchetto rtai.

 

 

           cd ..

           rm ../rtai-modules-2.6.22-14-rtai_3.6-linuxcnc.2_i386.deb

           fakeroot debian/rules binary

           cd ..

           sudo apt-get remove --purge rtai-modules-2.6.22-14-rtai_3.6-linuxcnc.2_i386

           sudo dpkg -i rtai-modules-2.6.22-14-rtai_3.6-linuxcnc.2_i386.deb

 

 


2.11. Scilab/Scicos

 

 

           cd /usr/local

 

Scaricare l'ultima versione del codice sorgente di Scilab da www.scilab.org. A volte è possibile che l'ultima versione richieda una patch, controllare www.scicos.org.

 

 

           sudo su

           tar xzvf scilab-4.x.x-src.tar.gz

 

Installare i seguenti pacchetti:

 

 

           apt-get install g77 sablotron tcl8.4-dev tk8.4-dev xaw3dg xaw3dg-dev libpvm3 pvm-dev libgtk2.0-dev

 

Configurare e compilare:

 

 

           cd scilab-4.x.x

           ./configure --without-java --with-tcl-library=/usr/lib --with-tcl-include=/usr/include/tcl8.4

           make all  # NON make install!!!      

           ln -s /usr/local/scilab-4.1.2/bin/scilab /usr/local/bin/scilab

 

Lavorando successivamente in ambiente chroot può essere eseguita anche solo l'ultima istruzione avendo

preventivamente copiato la directory 'scilab-4.x.x' in '/usr/local'.

 

 

 

 


2.12 Rtai-Lab add-on

 

 

           cd /usr/local

 

Scaricare i file necessari per Scilab-4.1.2 da web.dti.supsi.ch/bucher/scilab.html.

 

 

           tar zxvf scilab-4.1.2-rtailab.tgz

           cd scilab-4.1.2-rtailab/macros

           make install

           exit

 

e come utente normale:

 

 

           make user

 

 

2.13 Post Installazione

 

 

 

Se si è installato i pacchetti di Comedi senza passare per la compilazione (come in ambiente chroot),

bisogna creare i dev links.

Creare ed eseguire:

 

           nano makedev

 

==== INIZIARE LA COPIA DALLA PROSSIMA RIGA ==== (Non includere questa linea)

 

#!/bin/bash

for i in `seq 0 15`; do \

       mknod -m 666 /dev/comedi$$i c 98 $$i \

       ; \

done;

 

==== FERMARSI ALLA RIGA PRECEDENTE ==== (Non includere questa linea)

 

           chmod +x makedev

           sudo ./makedev

 

Misurare la latenza del sistema agli interrupt real-time:

 

 

           cd /usr/realtime-2.6.22-14-rtai/testsuite/kern/latency/

           ./run

 

 

Calibrate RTAI, ricordarsi i risultati delle calibrazioni.

 

        sudo insmod /usr/realtime/modules/rtai_hal.ko

        sudo insmod /usr/realtime/modules/rtai_fifos.ko

        sudo insmod /usr/realtime/modules/rtai_calibrate.ko

 

        calibrate -c    # => VALUE_FOR_CPU_FREQUENCY

        calibrate -r    # => SETUP_TIMER_VALUE

        calibrate -k    # => SETUP_LATENCY_VALUE

 

        sudo rmmod rtai_hal

        sudo rmmod rtai_fifos

        sudo rmmod rtai_calibrate

 

Copiare le linee che seguono nello script rlinsmod, rimpiazzando le variabili in MAIUSCOLO con i valori

prima trovati:

 

 

           sudo nano /usr/realtime/bin/rlinsmod

 

==== INIZIARE LA COPIA DALLA PROSSIMA RIGA ==== (Non includere questa linea)

 

# RLINSMOD - RTAI-Lab Insmod.

# Inserts RTAI-Lab and Comedi modules in kernel and

# configures the drivers.

 

/sbin/insmod /usr/realtime-2.6.22-14-rtai/modules/rtai_hal.ko

/sbin/insmod /usr/realtime-2.6.22-14-rtai/modules/rtai_lxrt.ko SetupTimeTIMER=SETUP_TIMER_VALUE Latency=SETUP_LATENCY_VALUE

/sbin/insmod /usr/realtime-2.6.22-14-rtai/modules/rtai_fifos.ko

/sbin/insmod /usr/realtime-2.6.22-14-rtai/modules/rtai_sem.ko

/sbin/insmod /usr/realtime-2.6.22-14-rtai/modules/rtai_mbx.ko

/sbin/insmod /usr/realtime-2.6.22-14-rtai/modules/rtai_msg.ko

#/sbin/insmod /usr/realtime-2.6.22-14-rtai/modules/rtai_netrpc.ko

#/sbin/insmod /usr/realtime-2.6.22-14-rtai/modules/rtai_shm.ko

#/sbin/modprobe comedi

#/sbin/modprobe kcomedilib

#/sbin/insmod /usr/realtime-2.6.22-14-rtai/modules/rtai_comedi.ko

# Hardware dependent lines below. L’esempio è per una NI PCI 6025 DAQ Card.

#/sbin/modprobe ni_pcimio

#/usr/local/sbin/comedi_config -q /dev/comedi0 ni_pcimio

#/usr/local/bin/comedi_calibrate -q -f /dev/comedi0

 

==== FERMARSI ALLA RIGA PRECEDENTE ==== (Non includere questa linea)

 

           sudo chmod +x /usr/realtime/bin/rlinsmod

 

Copiare le linee che seguono nello script rlrmmod:

 

           sudo nano /usr/realtime/bin/rlrmmod

 

==== INIZIARE LA COPIA DALLA PROSSIMA RIGA ==== (Non includere questa linea)

 

# RLRMMOD - RTAI-Lab Rmmod.

# Removes RTAI-Lab and Comedi modules from kernel.

 

#/usr/local/sbin/comedi_config -qr /dev/comedi0

 

#/sbin/modprobe -r ni_pcimio

 

#/sbin/rmmod rtai_comedi

#/sbin/modprobe -r kcomedilib

#/sbin/modprobe -r comedi

#/sbin/rmmod rtai_shm

#/sbin/rmmod rtai_netrpc

/sbin/rmmod rtai_msg

/sbin/rmmod rtai_mbx

/sbin/rmmod rtai_sem

/sbin/rmmod rtai_fifos

/sbin/rmmod rtai_lxrt

/sbin/rmmod rtai_hal

#/sbin/rmmod smi_rt

 

==== FERMARSI ALLA RIGA PRECEDENTE ==== (Non includere questa)

           

 

sudo chmod +x /usr/realtime/bin/rlrmmod

 

Far partire rlinsmod ad ogni riavvio aggiungendo la linea '/usr/realtime/bin/rlinsmod' (senza gli apici) al file rc.local. Mettera quella linea sopra la linea 'exit 0'.

 

 

           sudo nano /etc/rc.local

 

anche in ambiente chroot


 

 

CAPITOLO 3

creazione della live

 

 

                                              

3.1 Premessa

 

 

Sezione tratta da una guida di Alex Joni: http://cvs.linuxcnc.org/cvs/infrastructure/livecd/hardy_i386.livecd?rev=1.3

 

 

 

3.2 Strumenti necessari

 

 

sudo apt-get install squashfs-tools mkisofs

sudo modprobe squashfs

 

scaricare il CD da http://releases.ubuntu.com/

 

           mkdir ~/live

           mv ubuntu-7.10-desktop-i386.iso ~/live

           cd ~/live

 

 

 

3.3 Estrazione del cd

 

           mkdir mnt

           sudo mount -o loop ubuntu-7.10-desktop-i386.iso mnt

 

           mkdir extract-cd

           rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd

 

           mkdir squashfs

           sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs

 

           mkdir edit

           sudo cp -a squashfs/* edit/

 

 

3.4 Preparativi alle modifiche

 

Copiare tutti i pacchetti prima creati (contenuti per esempio in '~/pacchetti') in 'edit/tmp'.

 

           cp ~/packets/* edit/tmp

 

           sudo cp /etc/resolv.conf edit/etc/

           sudo cp /etc/hosts edit/etc/

           sudo cp edit/etc/apt/sources.list edit/etc/apt/sources.list_orig

           sudo cp /etc/apt/sources.list edit/etc/apt

 

           sudo chroot edit

                          #istruizioni indentate in chroot

                          mount -t proc none /proc

                          mount -t sysfs none /sys

                          mount -t devpts none /dev/pts

                          export HOME=/root

                          export LC_ALL=C

 

3.5 Personalizzazioni

 

                          apt-get update

                          apt-get install x11proto-xext-dev xlibs-static-dev libxext-dev libxt-dev gettext libncurses5-dev fakeroot kernel-package swig python-dev libtool libboost-program-options-dev libgsl0-dev libxmu-dev libxi-dev flex bison g77 sablotron tcl8.4-dev tk8.4-dev xaw3dg xaw3dg-dev libpvm3 pvm-dev libgtk2.0-dev sun-java6-jdk netbeans

 

                          cd /tmp

                          dpkg -i *.deb

          

                        #rimuovere il vecchio kernel ('dpkg -l | grep linux' per una lista completa)

                         

                          apt-get remove --purge linux-image-*-generic linux-ubuntu-modules-*-generic

                       

#rimuovere i meta packages

                       

apt-get remove --purge linux-image-generic

                        #pulire i pacchetti pendenti

                          apt-get autoremove

 

 

Ricordarsi di eseguire tutti i passi prima indicati come necessari in ambiente chroot, in particolare eseguire il passo 2.12 meno l'istruzione 'make user'; per quest'ultima eseguire le istruzioni seguenti:

 

           

                          mkdir -p /etc/skel/.Scilab/scilab-scilab-4.1.2

 

                          cat scilab >> /etc/skel/.Scilab/scilab-scilab-4.1.2/.scilab

 

                        #pulizia

                          apt-get clean

                          rm -rf /tmp/*

                          rm /etc/resolv.conf

                          rm /etc/hosts

                          mv /etc/apt/sources.list_orig /etc/apt/sources.list

 

                        #ci servira il file initrd.gz da dentro il chroot

                                               

mkinitramfs -o /initrd.gz 2.6.22-14-rtai

 

                        #uscire dal chroot

                          umount /proc

                          umount /sys

                          umount /dev/pts

                          exit

 

            #kernel

 

           sudo cp /boot/vmlinuz-2.6.22-14-rtai extract-cd/casper/vmlinuz

           sudo mv edit/initrd.gz extract-cd/casper/

 


3.6 Ricostruire il cd

 

Rigenerare il manifesto

 

 

           sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest

Ricreare lo squashfs

 

 

           sudo rm extract-cd/casper/filesystem.squashfs

           sudo mksquashfs edit extract-cd/casper/filesystem.squashfs

 

Cambiare il nome al cd

 

 

           sudo nano extract-cd/README.diskdefines

 

Ricreare il nuovo md5sum.txt

 

 

           sudo rm extract-cd/md5sum.txt

           cd extract-cd

           find . -type f | egrep -v '(boot.cat|md5sum.txt)' | xargs sudo md5sum | sudo tee md5sum.txt

 

Creare la iso.

 

 

           cd extract-cd

           sudo mkisofs -r -V "RTAIbuntu7.10" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-7.10-desktop-RTAI-i386.iso .