Progetto

Generale

Profilo

GeoMorphixRemaster » Cronologia » Versione 3

Amministratore Truelite, 08-03-2006 15:46

1 2 Amministratore Truelite
[[TracNav(TOC)]]
2 1 Amministratore Truelite
3 3 Amministratore Truelite
h1. Come rimasterizzare [[GeoMorphix]]?
4 1 Amministratore Truelite
5
6 3 Amministratore Truelite
Tratteremo la rimasterizzazione di [[GeoMorphix]], a partire sia da una versione base di Morphix, attraverso la creazione di un nuovo mainmod, che per quanto riguarda le personalizzazioni relative all'installazione e avvio del sistema.
7
8
9
h2. Estrazione dei dati
10
11
12 1 Amministratore Truelite
In generale il primo passo per la rimasterizzazione è quello di procurarsi una copia del CD originale, da cui partire per le modifiche, per questo inizieremo scegliendo una directory di lavoro (nel nostro caso /home/morphing) e copieremo lì tutti i dati con:
13
14 3 Amministratore Truelite
<pre>
15 1 Amministratore Truelite
mount /cdrom
16
cp -a /cdrom newmorph
17 3 Amministratore Truelite
</pre>
18 1 Amministratore Truelite
19
alternativamente, se si dispone dell'immagine ISO del CD si può montare in loopback quest'ultima e recuperare i dati da lì, con le istruzioni alternative:
20
21 3 Amministratore Truelite
<pre>
22
mount -o loop [[MorphixCombined]]-LightGUI-0.5-pre4.iso /cdrom
23 1 Amministratore Truelite
cp -a /cdrom newmorph
24 3 Amministratore Truelite
</pre>
25 1 Amministratore Truelite
26
e a questo punto avremo in newmorph tutti i file che ci servono per iniziare con la nostra rimasterizzazione.
27
28
In seguito illustreremo i vari passi necessari alle varie personalizzazioni possibili; ciascuno di questi sarà descritto facendo riferimento alla nostra directory di lavoro, che resta /home/morphing.
29
30
31 3 Amministratore Truelite
h2. Creare un nuovo modulo principale
32
33
34 1 Amministratore Truelite
Il primo passo di una rimasterizzazione è quello che prevede la personalizzazione del contenuto del sistema, questo nel caso di Morphix è completamente costituito dal modulo principale (quello che viene chiamato mainmod), che si trova nella sottodirectory omonima.
35
36
Se abbiamo estratto i dati da un CD potremo usere come base quello già presente; il modulo altro non è che una immagine di un filesystem opportunamente compressa; il procedimento per estrarne il contenuto è il seguente:
37
38 3 Amministratore Truelite
<pre>
39 1 Amministratore Truelite
cd newmorph/mainmod
40
extract_compressed_fs light.mod > /home/morphing/orginal.iso
41 3 Amministratore Truelite
</pre>
42 1 Amministratore Truelite
43
dato che nel nostro caso il modulo di Morphix Light GUI è light.mod.
44
45
Questo estrae l'immagine ISO compressa e la salva nella nostra directory di lavoro; a questo punto sarà possibile accedere ai contenuti e copiarli su una opportuna directory con i seguenti passi:
46
47 3 Amministratore Truelite
<pre>
48 1 Amministratore Truelite
cd /home/morphing
49
mkdir temp
50
mount -o loop orginal.iso temp
51
cp -a temp newmodule
52 3 Amministratore Truelite
</pre>
53 1 Amministratore Truelite
54
con le utilità di Morphix è comunque possibile anche estrarre direttamente il contenuto del modulo in una directory usando il comando:
55
56 3 Amministratore Truelite
<pre>
57 1 Amministratore Truelite
module-extractor newmorph/mainmod/light.mod newmodule
58 3 Amministratore Truelite
</pre>
59 1 Amministratore Truelite
60
(in questo caso occorrerà prevedere che in /tmp ci sia lo spazio sufficiente per contentere tutti i dati, altrimenti il comando fallirà).
61
62
Fatto questo si disporrà dell'immagine completa del sistema e si potrà eseguire un chroot per effettuare le modifiche che ci servono, e nel caso installare quanto dovuto, prima vale però la pena di montare, sia il filesystem /proc che /sys; si procederà pertanto con:
63
64 3 Amministratore Truelite
<pre>
65 1 Amministratore Truelite
mount -t proc proc newmodule/proc
66
mount -t sysfs sysfs newmodule/sys
67
chroot newmodule
68 3 Amministratore Truelite
</pre>
69 1 Amministratore Truelite
70
e a questo punto ci si troverà all'interno del chroot.
71
72
A questo punto si dovrà passare all'installazione di quanto voluto, per questo si può sfruttare direttamente il package system di Debian; nel nostro caso sarà anzitutto necessario impostare un opportuno valore per il server DNS, modificando /etc/resolv.conf.
73
74
Nel nostro caso i pacchetti che si possono installare dalle fonti usuali già presenti nella distribuzione standard sono i seguenti:
75
76 3 Amministratore Truelite
<pre>
77 1 Amministratore Truelite
apt-get update
78
apt-get install grass qgis thuban mapserver-bin gdal-bin python-gdal
79
apt-get install mapserver-bin perl-mapscript python-mapscript cgi-mapserver 
80
apt-get install php-mapscript 
81
apt-get install octave gpx2shp gpsdrive shapelib odbc-postgresql
82
apt-get install r-recommended r-cran-dbi r-cran-mapproj 
83
apt-get install r-cran-mapdata r-gnome r-mathlib 
84
apt-get install gmt xmaxima gpsbabel gpstrans gpsd gpsd-clients
85
apt-get install apache2
86 3 Amministratore Truelite
</pre>
87 1 Amministratore Truelite
88
Poi si possono modificare opportunamente le fonti di APT, in particolare per avere alcuni pacchetti molto utili non ancora presenti in Debian, ma realizzati dal progetto Debian-GIS, occorrerà aggiungere la seguente riga ad /etc/apt/sources.list:
89
90 3 Amministratore Truelite
<pre>
91 1 Amministratore Truelite
deb http://pkg-grass.alioth.debian.org/debian-gis unstable main contrib
92 3 Amministratore Truelite
</pre>
93 1 Amministratore Truelite
94
e poi potremo installare i seguenti pacchetti con:
95
96 3 Amministratore Truelite
<pre>
97 1 Amministratore Truelite
apt-get install libpostgis1-pg74 libgdal1-grass avce00 qgis-plugin-grass
98 3 Amministratore Truelite
</pre>
99 1 Amministratore Truelite
100
Si tenga presente che l'installazione di postgres necessita di creare il database e che postgis va ad eseguire a sua volta delle operazioni su di esso; pertanto può essere opportuno cancellare tutti gli eventuali dati precedenti (e cioè la directory /var/lib/postgres) per evitare problemi. Si verifichi che il DB è partito con i comandi:
101
102 3 Amministratore Truelite
<pre>
103 1 Amministratore Truelite
su postgres
104
psql template1
105
\l
106 3 Amministratore Truelite
</pre>
107 1 Amministratore Truelite
108
che permettono il collegamento al database di default messo dall'installer di Debian.
109
110
Si ricordi infine di fermare il database (con /etc/init.d/postgresql stop}) prima di uscire dal chroot, onde avere i file in uno stato coerente per la successiva creazione dell'immagine del modulo.
111
112
Una volta completate le installazioni si potrà provvedere a ripulire quanto non serve più; i passi sono i seguenti:
113
114 3 Amministratore Truelite
<pre>
115 1 Amministratore Truelite
rm -f /var/tmp/*
116
rm -f /var/cache/apt/*
117
touch /var/cache/apt/archives/lock
118
apt-get clean
119 3 Amministratore Truelite
</pre>
120 1 Amministratore Truelite
121
Infine vanno fermati eventuali servizi avviati nell'installazione (nel caso specifico apache e postgresql) con:
122
123 3 Amministratore Truelite
<pre>
124 1 Amministratore Truelite
/etc/init.d/postgresql stop
125
/etc/init.d/apache2 stop
126 3 Amministratore Truelite
</pre>
127 1 Amministratore Truelite
128
Una volta usciti dal chroot occorre poi smontare i filesystem virtuali, onde evitare di inserirne il contenuto nell'immagine del CD:
129
130 3 Amministratore Truelite
<pre>
131 1 Amministratore Truelite
umount newmodule/proc
132
umount newmodule/sys
133 3 Amministratore Truelite
</pre>
134 1 Amministratore Truelite
135
Altro materiale che si può installare all'interno del nostro nuovo modulo, anche senza operare nel chroot, sono alcuni file usati dal sistema di avvio di Morphix, e che stanno dentro la directory newmodule/morphix.
136
137
Anzitutto ci sono le seguenti immagini, che vengono usate rispettivamente come background del desktop e come icona di sistema, che si possono sostituire con le seguenti istruzioni:
138
139 3 Amministratore Truelite
<pre>
140 1 Amministratore Truelite
cp myimage/background.png newmodule/morphix/background.png
141
cp /usr/share/pixmaps/debian-logo.png newmodule/morphix/debguin.png
142 3 Amministratore Truelite
</pre>
143 1 Amministratore Truelite
144
Poi si possono modificare i file che controllano quanto viene installato/avviato al lancio del sistema, questi stanno in newmodule/morphix/init.d, in particolare X11-setup può essere modificato per far lanciare altri programmi all'avvio.
145
146
A questo punto, per le release di morphix fino alla 0.4, si può riceare il nuovo modulo usando il comando:
147
148 3 Amministratore Truelite
<pre>
149 1 Amministratore Truelite
mkisofs -iso-level 4 -R -U -V "GeoMorphix" -P "GeoMorphix" -hide-rr-moved \
150
-cache-inodes -no-bak -pad newmodule \
151
 | nice -5 create_compressed_fs - 65536 \
152
> newmorph/mainmod/light.mod
153 3 Amministratore Truelite
</pre>
154 1 Amministratore Truelite
155
In realtà questo non funziona se si usa la 0.5, dato che è stato modificato il formato del modulo; per ricrearlo si devono allora installare i programmi di utilità che si scaricano dal sito di Morphix; questo comporta l'aggiunta di una riga a /etc/apt/sources.list ed i seguenti comandi:
156
157 3 Amministratore Truelite
<pre>
158 1 Amministratore Truelite
echo "deb http://www.morphix.org/debian ./" >> /etc/apt/sources.list
159
apt-get install morphix-modulebuilder morphix-moduleextractor
160 3 Amministratore Truelite
</pre>
161 1 Amministratore Truelite
162
e con questi si può usare il comando module-builder per creare il nuovo modulo nel nuovo formato con:
163
164 3 Amministratore Truelite
<pre>
165 1 Amministratore Truelite
monk:/home/morphing# export TMPDIR=/var/tmp
166
monk:/home/morphing# module-builder -t ext3 newmodule newmorph/mainmod/light.mod
167
Building module, epoch 1112452955, please wait...
168
...
169
...
170 3 Amministratore Truelite
</pre>
171 1 Amministratore Truelite
172
alla fine del procedimento (che è piuttosto lungo) si otterrà un nuovo modulo direttamente nella directory newmorph/mainmod dell'immagine di installazione.
173
174
175 3 Amministratore Truelite
h2. Personalizzare moduli del kernel e script di lancio della live
176
177
178 1 Amministratore Truelite
Prima di utilizzare il contenuto del mainmod Morphix usa un sistema iniziale (quello che costituisce il grosso di una base, che viene mantenuto nel file base/moprhix. E' qui che vengono lanciati gli script di autoconfigurazione e di creazione dell'utente di default della live.
179
180
Il file base/moprhix è nello stesso formato dei moduli, per cui i passi per poterlo modificare sono analoghi a quelli della creazione di un modulo, anzitutto lo si deve estrarre in una iso con:
181
182 3 Amministratore Truelite
<pre>
183 1 Amministratore Truelite
extract_compressed_fs /mnt/target/base/morphix > /tmp/morphix-uncompressed.iso
184 3 Amministratore Truelite
</pre>
185 1 Amministratore Truelite
186
poi si deve montare l'immagine in loopback e copiare il contenuto su una nuova directory:
187
188 3 Amministratore Truelite
<pre>
189 1 Amministratore Truelite
mount -o loop /tmp/morphix-uncompressed.iso /mnt
190
cp -a /mnt newbase
191
umount /mnt
192 3 Amministratore Truelite
</pre>
193 1 Amministratore Truelite
194
quindi si possono effettuare le modifiche al contenuto (aggiungere moduli del kernel sotto newbase/lib/modules o modificare gli script in newbase/etc/init.d), una volta finito si potrà rigenerare il nuovo file della base con:
195
196 3 Amministratore Truelite
<pre>
197 1 Amministratore Truelite
mkisofs -R -U -V "Morphix" -P "Morphix" -cache-inodes -no-bak -pad newbase > /tmp/tempiso.iso
198
nice -5 create_compressed_fs /tmp/tempiso.iso 65536 > fuss-cd/base/morphix
199 3 Amministratore Truelite
</pre>
200 1 Amministratore Truelite
201
202 3 Amministratore Truelite
h2. Modifica della immagine di installazione
203
204
205 1 Amministratore Truelite
In questo caso opereremo direttamente all'interno dei dati del CD, cioè dentro quanto si trova sotto la directory newmorph; andando a modificare i file usati da Morphix durante l'avvio.
206
207
I primi file che ci può interessare di cambiare sono quelli relativi alle informazioni di base sul CD, ad esempio l'icona del CD (cdrom.ico), la pagina HTML di spiegazione (index.html) e le varie immagini da essa utilizzate (dentro images).
208
209
Un po' più complesso è invece modificare le immagini usate all'avvio di GRUB; queste sono memorizzate all'interno del sistema di splash screen grafico di GRUB; che è contenuto nel file boot/grub/message; se le si vogliono modificare il primo passo è estrarle in una opportuna directory, perciò faremo:
210
211 3 Amministratore Truelite
<pre>
212 1 Amministratore Truelite
mkdir newsplash
213
cd newsplash
214
cat ../newmorph/boot/grub/message | cpio -idvm
215 3 Amministratore Truelite
</pre>
216 1 Amministratore Truelite
217
Questo scompatterà nella directory newsplash i file che ci servono, di cui quello che interessa è background.pcx, che potrà essere modificato a piacimento. Si potranno anche modificare i testi delle varie opzioni contenuti nei file tests.*. Una volta completate le modifiche si potrà ricreare il messaggio iniziale con:
218
219 3 Amministratore Truelite
<pre>
220 1 Amministratore Truelite
find * | cpio -o > ../message
221
cd ..
222
mv message newmorph/boot/grub/
223 3 Amministratore Truelite
</pre>
224 1 Amministratore Truelite
225
Se si vogliono modificare le immagini visualizzate durante il processo di avvio del kernel occorrerà operare sul filesystem iniziale; con la versione 0.5 di Morphix però non viene più utilizzata l'immagine di un floppy (precedentemente in base/boot.img) ma direttamente GRUB, che lancia il kernel ed usa un RAM disk compresso, che è mantenuto direttamente in boot/miniroot.gz.
226
227
Pertanto se si vuole modificarne il contenuto il sistema più semplice è quello di montare in loopback quest'ultimo; si dovranno cioè eseguire i seguenti passi:
228
229 3 Amministratore Truelite
<pre>
230 1 Amministratore Truelite
gunzip newmorph/boot/miniroot.gz
231
mount -o loop newmorph/boot/miniroot temp/
232
cd temp
233 3 Amministratore Truelite
</pre>
234 1 Amministratore Truelite
235
Le immagini usate nell'avvio sono mantenute nella directory bootsplash/images, basterà allora modificare queste ultime inserendo al loro posto le opportune versioni modificate, con diverse immagini. Allo stesso modo si possono modificare le barre di progresso che invece si trovano sotto bootsplash/config nei vari file .cfg
236
237
Una volta completate tutte le modifiche basterà ricreae l'immagine compressa nell'immagine del CD, eseguendo i seguenti comandi:
238
239 3 Amministratore Truelite
<pre>
240 1 Amministratore Truelite
cd /home/morphing
241
umount temp
242
gzip newmorph/boot/miniroot
243 3 Amministratore Truelite
</pre>
244 1 Amministratore Truelite
245
246 3 Amministratore Truelite
h2. Creazione del minimod con le impostazioni
247
248
249 1 Amministratore Truelite
In questo caso l'estrazione è analoga a quella del modulo principale; si procede ad estrarre l'immagine iso, a montarla ed estrarne il contenuto su una nuova directory newmini con i comandi:
250
251 3 Amministratore Truelite
<pre>
252 1 Amministratore Truelite
extract_compressed_fs newmorph/minimod/new-light4.mod > mini.iso
253
mount -o loop mini.iso temp/
254
cp -a temp/ newmini
255 3 Amministratore Truelite
</pre>
256 1 Amministratore Truelite
257
A questo punto i file da modificare sono nella sottodirectory files di newmini, in particolare la home dell'utente sta in un file .tar.gz che va estratto, dopo di che si potranno modificare le impostazioni nei vari dotfiles e ricrearlo, una volta sostituito il precedente .tar.gz con il nuovo si potrà ricreare l'immagine del nuovo minimodulo con:
258
259 3 Amministratore Truelite
<pre>
260 1 Amministratore Truelite
mkisofs -iso-level 4 -R -U -V "Morphix fs" -P "Morphix" -cache-inodes \
261
-no-bak -pad ./newmini | nice -5 create_compressed_fs - 65536 >newmini.mod
262 3 Amministratore Truelite
</pre>
263 1 Amministratore Truelite
264
poi basterà copiare questa al posto della precedente:
265
266 3 Amministratore Truelite
<pre>
267 1 Amministratore Truelite
cp newmini.mod newmorph/minimod/new-light4.mod
268 3 Amministratore Truelite
</pre>
269 1 Amministratore Truelite
270
271 3 Amministratore Truelite
h2. Creazione della nuova versione
272
273
274 1 Amministratore Truelite
Una volta compiute tutte le modifiche volute, secondo i vari casi illustrati in precedenza, si potrà creare la nuova immagine ISO, questo si potrà realizzare con il seguente comando:
275
276 3 Amministratore Truelite
<pre>
277 1 Amministratore Truelite
cd newmorph
278 3 Amministratore Truelite
mkisofs -graft-points -pad -l -r -J -v -V "GeoMorphix [[LiveCD]]" -b \
279 1 Amministratore Truelite
boot/grub/iso9660_stage1_5 -c base/boot.cat -no-emul-boot \
280
-boot-load-size 4 -boot-info-table -hide -rr -moved -o ../geomorphix.iso .
281 3 Amministratore Truelite
</pre>
282 1 Amministratore Truelite
283
e a questo punto avremo in /home/morphing la nostra nuova immagine fresca che potremo masterizzare con in nostro programma preferito, nel caso si voglia usare cdrecord il comando è banalmente il seguente:
284
285 3 Amministratore Truelite
<pre>
286 1 Amministratore Truelite
cdrecord -v speed=8 dev=0,0,0 geomorphix.iso
287 3 Amministratore Truelite
</pre>
288 1 Amministratore Truelite
289
Alternativamente si può controllare il funzionamento dell'immagine appena creata eseguendola direttamente con l'emulatore qemu (in questo caso saranno richieste parecchie risorse, è bene avere a disposizione una macchina potente) con il comando:
290
291 3 Amministratore Truelite
<pre>
292 1 Amministratore Truelite
qemu -cdrom geomorphix.iso
293 3 Amministratore Truelite
</pre>