Progetto

Generale

Profilo

GeoMorphixRemaster » Cronologia » Versione 2

Amministratore Truelite, 08-03-2006 15:46

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