Progetto

Generale

Profilo

GeoMorphixRemaster » Cronologia » Versione 1

Amministratore Truelite, 26-01-2006 17:05
Ported the first page from internal labs.truelite about GeoMorphix

1 1 Amministratore Truelite
= Come rimasterizzare GeoMorphix? =
2
3
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.
4
5
== Estrazione dei dati ==
6
7
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:
8
9
{{{
10
mount /cdrom
11
cp -a /cdrom newmorph
12
}}}
13
14
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:
15
16
{{{
17
mount -o loop MorphixCombined-LightGUI-0.5-pre4.iso /cdrom
18
cp -a /cdrom newmorph
19
}}}
20
21
e a questo punto avremo in newmorph tutti i file che ci servono per iniziare con la nostra rimasterizzazione.
22
23
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.
24
25
== Creare un nuovo modulo principale ==
26
27
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.
28
29
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:
30
31
{{{
32
cd newmorph/mainmod
33
extract_compressed_fs light.mod > /home/morphing/orginal.iso
34
}}}
35
36
dato che nel nostro caso il modulo di Morphix Light GUI è light.mod.
37
38
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:
39
40
{{{
41
cd /home/morphing
42
mkdir temp
43
mount -o loop orginal.iso temp
44
cp -a temp newmodule
45
}}}
46
47
con le utilità di Morphix è comunque possibile anche estrarre direttamente il contenuto del modulo in una directory usando il comando:
48
49
{{{
50
module-extractor newmorph/mainmod/light.mod newmodule
51
}}}
52
53
(in questo caso occorrerà prevedere che in /tmp ci sia lo spazio sufficiente per contentere tutti i dati, altrimenti il comando fallirà).
54
55
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:
56
57
{{{
58
mount -t proc proc newmodule/proc
59
mount -t sysfs sysfs newmodule/sys
60
chroot newmodule
61
}}}
62
63
e a questo punto ci si troverà all'interno del chroot.
64
65
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.
66
67
Nel nostro caso i pacchetti che si possono installare dalle fonti usuali già presenti nella distribuzione standard sono i seguenti:
68
69
{{{
70
apt-get update
71
apt-get install grass qgis thuban mapserver-bin gdal-bin python-gdal
72
apt-get install mapserver-bin perl-mapscript python-mapscript cgi-mapserver 
73
apt-get install php-mapscript 
74
apt-get install octave gpx2shp gpsdrive shapelib odbc-postgresql
75
apt-get install r-recommended r-cran-dbi r-cran-mapproj 
76
apt-get install r-cran-mapdata r-gnome r-mathlib 
77
apt-get install gmt xmaxima gpsbabel gpstrans gpsd gpsd-clients
78
apt-get install apache2
79
}}}
80
81
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:
82
83
{{{
84
deb http://pkg-grass.alioth.debian.org/debian-gis unstable main contrib
85
}}}
86
87
e poi potremo installare i seguenti pacchetti con:
88
89
{{{
90
apt-get install libpostgis1-pg74 libgdal1-grass avce00 qgis-plugin-grass
91
}}}
92
93
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:
94
95
{{{
96
su postgres
97
psql template1
98
\l
99
}}}
100
101
che permettono il collegamento al database di default messo dall'installer di Debian.
102
103
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.
104
105
Una volta completate le installazioni si potrà provvedere a ripulire quanto non serve più; i passi sono i seguenti:
106
107
{{{
108
rm -f /var/tmp/*
109
rm -f /var/cache/apt/*
110
touch /var/cache/apt/archives/lock
111
apt-get clean
112
}}}
113
114
Infine vanno fermati eventuali servizi avviati nell'installazione (nel caso specifico apache e postgresql) con:
115
116
{{{
117
/etc/init.d/postgresql stop
118
/etc/init.d/apache2 stop
119
}}}
120
121
Una volta usciti dal chroot occorre poi smontare i filesystem virtuali, onde evitare di inserirne il contenuto nell'immagine del CD:
122
123
{{{
124
umount newmodule/proc
125
umount newmodule/sys
126
}}}
127
128
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.
129
130
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:
131
132
{{{
133
cp myimage/background.png newmodule/morphix/background.png
134
cp /usr/share/pixmaps/debian-logo.png newmodule/morphix/debguin.png
135
}}}
136
137
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.
138
139
A questo punto, per le release di morphix fino alla 0.4, si può riceare il nuovo modulo usando il comando:
140
141
{{{
142
mkisofs -iso-level 4 -R -U -V "GeoMorphix" -P "GeoMorphix" -hide-rr-moved \
143
-cache-inodes -no-bak -pad newmodule \
144
 | nice -5 create_compressed_fs - 65536 \
145
> newmorph/mainmod/light.mod
146
}}}
147
148
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:
149
150
{{{
151
echo "deb http://www.morphix.org/debian ./" >> /etc/apt/sources.list
152
apt-get install morphix-modulebuilder morphix-moduleextractor
153
}}}
154
155
e con questi si può usare il comando module-builder per creare il nuovo modulo nel nuovo formato con:
156
157
{{{
158
monk:/home/morphing# export TMPDIR=/var/tmp
159
monk:/home/morphing# module-builder -t ext3 newmodule newmorph/mainmod/light.mod
160
Building module, epoch 1112452955, please wait...
161
...
162
...
163
}}}
164
165
alla fine del procedimento (che è piuttosto lungo) si otterrà un nuovo modulo direttamente nella directory newmorph/mainmod dell'immagine di installazione.
166
167
== Personalizzare moduli del kernel e script di lancio della live ==
168
169
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.
170
171
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:
172
173
{{{
174
extract_compressed_fs /mnt/target/base/morphix > /tmp/morphix-uncompressed.iso
175
}}}
176
177
poi si deve montare l'immagine in loopback e copiare il contenuto su una nuova directory:
178
179
{{{
180
mount -o loop /tmp/morphix-uncompressed.iso /mnt
181
cp -a /mnt newbase
182
umount /mnt
183
}}}
184
185
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:
186
187
{{{
188
mkisofs -R -U -V "Morphix" -P "Morphix" -cache-inodes -no-bak -pad newbase > /tmp/tempiso.iso
189
nice -5 create_compressed_fs /tmp/tempiso.iso 65536 > fuss-cd/base/morphix
190
}}}
191
192
== Modifica della immagine di installazione ==
193
194
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.
195
196
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).
197
198
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:
199
200
{{{
201
mkdir newsplash
202
cd newsplash
203
cat ../newmorph/boot/grub/message | cpio -idvm
204
}}}
205
206
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:
207
208
{{{
209
find * | cpio -o > ../message
210
cd ..
211
mv message newmorph/boot/grub/
212
}}}
213
214
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.
215
216
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:
217
218
{{{
219
gunzip newmorph/boot/miniroot.gz
220
mount -o loop newmorph/boot/miniroot temp/
221
cd temp
222
}}}
223
224
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
225
226
Una volta completate tutte le modifiche basterà ricreae l'immagine compressa nell'immagine del CD, eseguendo i seguenti comandi:
227
228
{{{
229
cd /home/morphing
230
umount temp
231
gzip newmorph/boot/miniroot
232
}}}
233
234
== Creazione del minimod con le impostazioni ==
235
236
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:
237
238
{{{
239
extract_compressed_fs newmorph/minimod/new-light4.mod > mini.iso
240
mount -o loop mini.iso temp/
241
cp -a temp/ newmini
242
}}}
243
244
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:
245
246
{{{
247
mkisofs -iso-level 4 -R -U -V "Morphix fs" -P "Morphix" -cache-inodes \
248
-no-bak -pad ./newmini | nice -5 create_compressed_fs - 65536 >newmini.mod
249
}}}
250
251
poi basterà copiare questa al posto della precedente:
252
253
{{{
254
cp newmini.mod newmorph/minimod/new-light4.mod
255
}}}
256
257
== Creazione della nuova versione ==
258
259
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:
260
261
{{{
262
cd newmorph
263
mkisofs -graft-points -pad -l -r -J -v -V "GeoMorphix LiveCD" -b \
264
boot/grub/iso9660_stage1_5 -c base/boot.cat -no-emul-boot \
265
-boot-load-size 4 -boot-info-table -hide -rr -moved -o ../geomorphix.iso .
266
}}}
267
268
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:
269
270
{{{
271
cdrecord -v speed=8 dev=0,0,0 geomorphix.iso
272
}}}
273
274
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:
275
276
{{{
277
qemu -cdrom geomorphix.iso
278
}}}