Differenze tra le versioni di "Un pinguino per ogni bambino/Guida per gli sviluppatori"

Da Lecco.
 
(LXLauncher: trovato qualche riferimento)
 
(122 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Con questa guida viene spiegato passo passo come realizzare BimboTux "from scratch", ovvero partendo da un sistema Debian minimale. BimboTux infatti non è altro che una Debian altamente personalizzata, pensata attorno ad un unico scopo: fornire un sistema operativo completo a misura di bambino.
+
Con questa guida viene spiegato passo passo come realizzare [[Un pinguino per ogni bambino|BimboTux]] "from scratch", ovvero partendo da un sistema Debian minimale. BimboTux infatti non è altro che una Debian altamente personalizzata, pensata attorno ad un unico scopo: fornire un sistema operativo completo a misura di bambino.
  
 
Alla fine della guida viene anche spiegato come costruire l'immagine da masterizzare su un CD-ROM che distribuiamo.
 
Alla fine della guida viene anche spiegato come costruire l'immagine da masterizzare su un CD-ROM che distribuiamo.
Riga 16: Riga 16:
 
*XOrg: il server grafico
 
*XOrg: il server grafico
 
<!-- *SLiM: Simple Login Manager -->
 
<!-- *SLiM: Simple Login Manager -->
 +
*nodm: per l'avvio automatico di XOrg
 
*FVWM: il window manager
 
*FVWM: il window manager
 
*Some Juicy Fonts: font in stile "scrittura a mano"
 
*Some Juicy Fonts: font in stile "scrittura a mano"
Riga 29: Riga 30:
 
*PySyCache: giochi didattici per imparare l'uso del mouse
 
*PySyCache: giochi didattici per imparare l'uso del mouse
 
*Linux Letters and Numbers: giochino didattico per imparare numeri e lettere
 
*Linux Letters and Numbers: giochino didattico per imparare numeri e lettere
*lbreakout2<!-- DESCRIZIONE -->
+
*lbreakout2: giochino
*Circus Linux!: giochino
+
*Circus Linux!: giochino circense
 
*Ri-li: giochino ferroviario
 
*Ri-li: giochino ferroviario
*SuperTux: giochino
+
*SuperTux: gioco d'avventura
 
*Frozen-Bubble: giochino
 
*Frozen-Bubble: giochino
*Pingus: giochino
+
*Pingus: gioco d'avventura e strategia
 
*KHangMan: il classico gioco dell'impiccato
 
*KHangMan: il classico gioco dell'impiccato
  
 
Le dipendenze si risolvono con
 
Le dipendenze si risolvono con
  # aptitude install alsa-base cups xorg <!-- slim -->fvwm ttf-sjfonts lxlauncher sudo \
+
  # aptitude install alsa-base cups xorg <!-- slim -->nodm fvwm ttf-sjfonts lxlauncher sudo \
  gnome-themes tuxpaint tuxtype gcompris-sound-it gnucap gnuchess \
+
  gnome-themes kde-l10n-it tuxpaint tuxtype ktouch gcompris-sound-it gnucap gnuchess \
  childsplay-alphabet-sounds-it ktuberling kde-l10n-it pysycache lletters \
+
  childsplay-alphabet-sounds-it ktuberling pysycache lletters \
  lbreakout2 circuslinux ri-li supertux frozen-bubble pingus
+
  lbreakout2 circuslinux ri-li supertux frozen-bubble pingus khangman
  
 
=== Configurazione di FVWM ===
 
=== Configurazione di FVWM ===
Riga 58: Riga 59:
  
 
==== .fvwm2rc ====
 
==== .fvwm2rc ====
Lo script seguente è rilasciato dall'autore sotto [http://creativecommons.org/licenses/publicdomain/deed.it pubblico dominio]. C'è un commento esplicativo quasi per ogni riga.
+
[http://glux.leadhoster.com/.fvwm2rc Il file] è rilasciato dagli autori sotto [http://creativecommons.org/licenses/publicdomain/deed.it pubblico dominio]. C'è un commento esplicativo quasi per ogni riga. Scaricarlo ed inserirlo in <tt>~/.fvwm/</tt>, come illustrato qui sopra.
<pre>
 
################################## .fvwm2rc  ##################################
 
# Version: BimboTux 0.1.0                                                    #
 
# Authors: Carlo Stemberger, Gianni Fioretta                                  #
 
# Last updated: 02/Apr/2009                                                  #
 
# Released by the authors into the public domain.                             #
 
###############################################################################
 
 
 
#----------------------------------------------------- Impostazioni globali --#
 
# percorso immagini
 
#ImagePath /usr/share/pixmaps: /usr/include/X11/pixmaps
 
 
 
# un'unica pagina (niente desktop virtuali)
 
DeskTopSize 1x1
 
 
 
# mini-icone
 
#Style * MiniIcon mini.x.xpm
 
 
 
#----------------------------------------------------------------- Finestre --#
 
# COMPORTAMENTO
 
# posizionamento: ignora la posizione suggerita dal programma lanciato
 
Style * NoPPosition
 
 
 
# attivazione finestra con un click
 
Style * ClickToFocus
 
 
 
# riduzione a icona: non appare nessuna icona sul desktop
 
Style * NoIcon
 
 
 
# BARRA DEL TITOLO
 
# font: SteveHand
 
Style * Font "StringEncoding=UTF-8:xft:Steve:bold:pixelsize=20"
 
#Style * Font -adobe-helvetica-bold-r-*-*-20-*-*-*-*-*-*-*
 
 
 
# colore del testo e dello sfondo, finestra attiva: bianco e blu acciaio
 
Style * HilightFore white, HilightBack steelblue
 
 
 
# colore del testo e dello sfondo, finestre inattive: nero e grigio
 
Style * Color Black/Grey
 
 
 
# spessore del bordo e delle maniglie: 7
 
Style * BorderWidth 7, HandleWidth 7
 
 
 
# barra del titolo "piatta", niente effetto "bottone"
 
TitleStyle -- Flat
 
 
 
# BOTTONI
 
# mini-icona del programma lanciato, a sinistra
 
ButtonStyle 1 MiniIcon -- Flat
 
 
 
# icona "chiudi"
 
#ButtonStyle 2 Pixmap mini.cross.xpm -- Flat # non funziona ###################
 
 
 
# icona "riduci a icona"
 
#ButtonStyle 4 Pixmap mini.lower2.xpm -- Flat # non funziona ##################
 
 
 
# COMPORTAMENTO DEL MOUSE
 
# mini-icona del programma lanciato
 
Mouse 0 1 A # non fa niente
 
 
 
# bottoni della barra del titolo
 
Mouse 0 2 A Close
 
Mouse 0 4 A Maximize 100 100
 
Mouse 0 6 A Iconify
 
 
 
#---------------------------------------------------------------- Menu Esci --#
 
AddToMenu "HaltMenu"
 
+ "Arresta la macchina%mini.stop.xpm%"  Exec    sudo shutdown -h now
 
 
 
#------------------------------------------------- Barra delle applicazioni --#
 
Style FvwmTaskBar NoTitle, Sticky, BorderWidth 0, HandleWidth 0
 
AddToFunc InitFunction I Module FvwmTaskBar
 
AddToFunc RestartFunction I Module FvwmTaskBar
 
*FvwmTaskBarStartName Esci
 
*FvwmTaskBarStartMenu HaltMenu
 
*FvwmTaskBarStartIcon mini.stop.xpm
 
*FvwmTaskBar: UseSkipList
 
WindowsSkipList: lxlauncher
 
 
 
#--------------------------------------------- Programmi lanciati all'avvio --#
 
DestroyFunc StartFunction
 
AddToFunc StartFunction
 
+ I Exec exec /usr/bin/lxlauncher &
 
</pre>
 
  
 
=== Configurazione di Sudo ===
 
=== Configurazione di Sudo ===
Riga 206: Riga 123:
 
-->
 
-->
  
=== Partenza di X automatica dopo il login da console ===
+
=== Configurare le librerie Qt con tema GTK+ ===
Innanzitutto occorre settare l'opzione <tt>allowed_users=anybody</tt> nel file <tt>/etc/X11/Xwrapper.config</tt>. Il risultato dovrebbe essere simile a così:
+
Impostare il tema Qt per integrarsi come aspetto con le GTK+ usando il programma Qt Configuration.
<pre>
 
# Xwrapper.config (Debian X Window System server wrapper configuration file)
 
#
 
# This file was generated by the post-installation script of the x11-common
 
# package using values from the debconf database.
 
#
 
# See the Xwrapper.config(5) manual page for more information.
 
#
 
# This file is automatically updated on upgrades of the x11-common package
 
# *only* if it has not been modified since the last upgrade of that package.
 
#
 
# If you have edited this file but would like it to be automatically updated
 
# again, run the following command as root:
 
#  dpkg-reconfigure x11-common
 
allowed_users=anybody
 
nice_value=0
 
</pre>
 
 
 
Bisogna ora creare (da superutente) lo script di controllo <tt>startx.sh</tt> che va inserito in <tt>/usr/bin</tt>
 
<pre>
 
#!/bin/bash
 
 
function check {
 
if [[ -f /tmp/login ]]; then
 
if [[ ! -f /tmp/.X0-lock ]]; then
 
rm /tmp/login
 
return 0
 
else
 
return 1
 
fi
 
else
 
touch /tmp/login
 
return 0
 
fi
 
}
 
 
check
 
 
if [[ $? -eq 0 ]]; then
 
 
startx 1>/dev/null 2>/dev/null
 
 
fi
 
</pre>
 
senza dimenticarsi di dargli i permessi di esecuzione con <tt>chmod a+x /usr/bin/startx.sh</tt>.
 
 
 
A questo punto lo script va richiamato in automatico, mettendo in <tt>~/.bash_profile</tt> le seguenti righe:
 
<pre>
 
case "$TERM" in
 
linux) /usr/bin/startx.sh & ;;
 
*) ;;
 
esac
 
</pre>
 
  
 
=== Aggiungere l'icona a SuperTux ===
 
=== Aggiungere l'icona a SuperTux ===
Riga 267: Riga 131:
  
 
=== Regolazione di ALSA ===
 
=== Regolazione di ALSA ===
Avviare alsamixer e controllare la configurazione attuale di ALSA. Di default i canali dovrebbero essere tutti a 0 e muti: attivare quelli che interessano premento il tasto "M" e regolare il volume con i tasti freccia "Su" e "Giù".
+
Avviare alsamixer e controllare la configurazione attuale di ALSA. Di default i canali dovrebbero essere tutti a 0 e muti: attivare quelli che interessano premendo il tasto "M" e regolare il volume con i tasti freccia "Su" e "Giù".
  
 
=== Realizzazione di un CD live ===
 
=== Realizzazione di un CD live ===
Questo paragrafo è da aggiornare
 
 
 
La versione di BimboTux da noi proposta è un CD live installabile: questo significa che è possibile usare l'intero sistema operativo direttamente da CD-ROM, senza installare né modificare alcunché sul disco rigido del computer, ma che volendo è anche installabile la distribuzione in modo molto semplice, attraverso una procedura guidata.
 
La versione di BimboTux da noi proposta è un CD live installabile: questo significa che è possibile usare l'intero sistema operativo direttamente da CD-ROM, senza installare né modificare alcunché sul disco rigido del computer, ma che volendo è anche installabile la distribuzione in modo molto semplice, attraverso una procedura guidata.
  
Per lo scopo si farà uso di una macchina Debian con installati i pacchetti ufficiali <tt>cdebootstrap</tt> e <tt>live-helper</tt>. La versione di <tt>live-helper</tt> presente in Lenny non è abbastanza aggiornata e non funziona: occorre pescare il programma dai repository di Squeeze o Sid. Per ogni necessità di chiarimento fare riferimento al [http://live.debian.net/manual/ manuale] -- purtroppo al momento ancora in fase di realizzazione -- e al [http://wiki.debian.org/DebianLive/ wiki] del progetto Debian Live.
+
Per lo scopo si farà uso di una macchina Debian con installati i pacchetti ufficiali <tt>cdebootstrap</tt> e <tt>live-build</tt>: occorre pescarli dai repository di Squeeze o Sid. Per ogni necessità di chiarimento fare riferimento al [http://live.debian.net/manual/it/ manuale].
  
 
Creare una cartella di lavoro; dal suo interno lanciare
 
Creare una cartella di lavoro; dal suo interno lanciare
$ lh config --bootappend-live "locale=it_IT.UTF-8 keyb=it" --hostname bimbotux -d squeeze \
+
<pre>
--mirror-bootstrap "URL" --mirror-binary "<nowiki>http://ftp.it.debian.org/debian/</nowiki>" --debian-installer live [-b usb-hdd]
+
$ lh config --bootappend-live "live-config.hostname=bimbotux live-config.locales=it_IT.UTF-8 \
sostituendo ad <tt>URL</tt> l'URL del mirror da cui scaricare i pacchetti necessari all'assemblaggio della live; nel caso in cui si sia creata una cache locale usando [http://guide.debianizzati.org/index.php/Apt-Proxy:_un_proxy_per_i_pacchetti_Debian apt-proxy], l'indirizzo sarà un qualcosa di analogo a <tt><nowiki>http://localhost:9999/debian/</nowiki></tt>. Attenzione: apt-proxy sembra avere una qualche incompatibilità con l'installer Debian, quindi non usarlo quando si mette l'opzione <tt>--debian-installer live</tt>. L'opzione '''-b usb-hdd''' serve a generare un'immagine da copiare su chiavetta USB bootabile.
+
live-config.timezone=Europe/Rome live-config.keyboard-layouts=it" \
 +
-d squeeze --mirror-bootstrap "URL" --mirror-binary "<nowiki>http://ftp.it.debian.org/debian/</nowiki>" --debian-installer live [-b usb-hdd] \
 +
[--debian-installer-distribution daily] [--debian-installer-gui disabled]
 +
</pre>
 +
sostituendo ad <tt>URL</tt> l'URL del mirror da cui scaricare i pacchetti necessari all'assemblaggio della live; nel caso in cui si sia creata una cache locale [http://www.oneopensource.it/18/08/2009/approx-velocizzare-gli-aggiornamenti-di-debianubuntu-con-una-cache-apt/ usando] [http://www.ossblog.it/post/4850/approx-caching-proxy-per-sistemi-debian-ed-ubuntu approx], l'indirizzo sarà un qualcosa di analogo a <tt><nowiki>http://localhost:9999/debian/</nowiki></tt>.
 +
L'opzione <tt>-b usb-hdd</tt> serve a generare un'immagine da copiare su chiavetta USB bootabile.
 
Per copiare la live ottenuta su chiavetta bisognerà lanciare il comando
 
Per copiare la live ottenuta su chiavetta bisognerà lanciare il comando
 
  $ dd if=binary.img of=/dev/sd'''x''' bs=1M
 
  $ dd if=binary.img of=/dev/sd'''x''' bs=1M
 
dove '''x''' sta per la lettera equivalente al vostro dispositivo.
 
dove '''x''' sta per la lettera equivalente al vostro dispositivo.
 +
Usando il ramo testing di Debian, a volte può capitare che l'installer presenti dei bug; per scavalcare il problema può essere utile, in questi casi, l'opzione <tt>--debian-installer-distribution daily</tt>, che permette di utilizzare l'ultima versione dell'installer, nella quale può darsi che i bug siano stati risolti.
  
 
Verrà a questo punto creato lo scheletro dei file di configurazione necessari a live-helper per generare l'immagine della nostra live.
 
Verrà a questo punto creato lo scheletro dei file di configurazione necessari a live-helper per generare l'immagine della nostra live.
  
Creare all'interno della directory <tt>config/chroot_local-packageslists</tt> un file chiamato ad esempio <tt>bimbotuxpkg</tt> contenente l'elenco dei pacchetti da installare:
+
Scaricare all'interno della directory <tt>config/chroot_local-packageslists</tt> il file <tt>[http://github.com/Stemby/BimboTux/blob/master/files/bimbotuxpkg.list bimbotuxpkg.list]</tt>, contenente l'elenco dei pacchetti da installare.
<pre>
 
### bimbotuxpkg ###
 
alsa-base
 
cups
 
xorg
 
fvwm
 
ttf-sjfonts
 
lxlauncher
 
sudo
 
gnome-themes
 
tuxpaint
 
tuxtype
 
gcompris-sound-it
 
gnucap
 
gnuchess
 
childsplay-alphabet-sounds-it
 
ktuberling
 
kde-l10n-it
 
pysycache
 
lletters
 
lbreakout2
 
circuslinux
 
ri-li
 
supertux
 
frozen-bubble
 
pingus
 
</pre>
 
  
In <tt>config/chroot</tt> sostituire
+
Inserire in <tt>config/chroot_local-includes/etc/skel/.fvwm/</tt> il file [[Un_pinguino_per_ogni_bambino/Guida per gli sviluppatori#.fvwm2rc|.fvwm2rc]]: creare il percorso con <tt>mkdir -p</tt>.
LH_PACKAGES_LISTS="standard"
 
con
 
LH_PACKAGES_LISTS="standard bimbotuxpkg"
 
  
Inserire in <tt>config/chroot_local-includes/etc/skel/.fvwm/</tt> il file [[Un_pinguino_per_ogni_bambino#.fvwm2rc|.fvwm2rc]]: creare il percorso con <tt>mkdir -p</tt>.
+
Mettere [[Un_pinguino_per_ogni_bambino/Guida per gli sviluppatori#Configurazione_di_Sudo|sudoers]] in <tt>config/chroot_local-includes/etc/</tt> e cambiargli i permessi:
 +
$ chmod 440 sudoers
  
Mettere [[Un_pinguino_per_ogni_bambino#Configurazione_di_Sudo|sudoers]] in <tt>config/chroot_local-includes/etc/</tt> e cambiargli i permessi:
+
In attesa che [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=585932 questo bug] venga chiuso, inserire il file <tt>[http://github.com/Stemby/BimboTux/raw/master/files/.profile .profile]</tt> appositamente modificato in <tt>config/chroot_local-includes/etc/skel/</tt>.
$ chmod 440 sudoers
 
 
<!--
 
<!--
Copiare tutta la cartella [[Un_pinguino_per_ogni_bambino#Cambiare_il_tema_GTK.2B_e_le_icone|gnome-brave]] in <tt>config/chroot_local-includes/usr/share/icons/</tt>: creare il percorso con <tt>mkdir -p</tt>.-->
+
Copiare tutta la cartella [[Un_pinguino_per_ogni_bambino/Guida per gli sviluppatori#Cambiare_il_tema_GTK.2B_e_le_icone|gnome-brave]] in <tt>config/chroot_local-includes/usr/share/icons/</tt>: creare il percorso con <tt>mkdir -p</tt>.-->
  
Inserire in <tt>config/chroot_local-includes/etc/skel/</tt> il file [[Un_pinguino_per_ogni_bambino#Cambiare_il_tema_GTK.2B_e_le_icone|.gtkrc-2.0]].
+
Inserire in <tt>config/chroot_local-includes/etc/skel/</tt> il file [[Un_pinguino_per_ogni_bambino/Guida per gli sviluppatori#Cambiare_il_tema_GTK.2B_e_le_icone|.gtkrc-2.0]].
  
Inserire il file [[Un_pinguino_per_ogni_bambino#Partenza_di_X_automatica_dopo_il_login_da_console|Xwrapper.config]] modificato in <tt>config/chroot_local-includes/etc/X11/</tt>; creare il percorso con <tt>mkdir -p</tt>.
+
Inserire nella directory <tt>config/chroot_local-includes/usr/share/applications/</tt> [[Un_pinguino_per_ogni_bambino/Guida per gli sviluppatori#Aggiungere l'icona a SuperTux|il file <tt>supertux.desktop</tt>]] modificato; creare il percorso con <tt>mkdir -p</tt>.
<!--
+
 
Inserire nella directory <tt>config/chroot_local-includes/usr/share/desktop-directories/</tt> [[Un_pinguino_per_ogni_bambino#Localizzazione_italiana_di_LXLauncher|i quattro file di localizzazione]]; creare il percorso con <tt>mkdir -p</tt>.-->
+
Per avere Ri-li già localizzato in italiano, scaricare in <tt>config/chroot_local-includes/etc/skel/</tt> [http://glux.leadhoster.com/.ri-li.pref questo file].
  
 
Infine, premunirsi di adeguata pazienza e far partire la costruzione dell'immagine:
 
Infine, premunirsi di adeguata pazienza e far partire la costruzione dell'immagine:
  # lh_build
+
  # lh build
 +
 
 +
Nel caso si riscontrassero errori nella generazione dell'immagine, è utile creare un file di log con
 +
# lh build 2>&1 | tee build.log
  
 
=== Da fare ===
 
=== Da fare ===
==== .bash_profile ====
 
*Quando si passa ad una console tty, fatto il login compare un errore, in quanto .bash_profile prova ad avviare X che sta già girando
 
 
 
==== Live CD ====
 
==== Live CD ====
*Cambiare immagine del boot loader: levare lo [http://guide.debianizzati.org/index.php/Debian_Swirl Swirl] e mettere qualcosa di più mirato
+
*personalizzare i vari campi dell'header dell'immagine ISO tramite le varie opzioni <tt>lh config --iso-*</tt>
 +
*Cambiare immagine del boot loader: levare lo [http://guide.debianizzati.org/index.php/Debian_Swirl Swirl] e mettere qualcosa di più mirato; probabilmente questo si fa con l'opzione <tt>lh config  --syslinux-splash <u>FILE</u></tt>
 +
*<s>Al momento il comando dato in fase di costruzione della live per impostare la tastiera come italiana non funziona: attendere la chiusura di [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=558702 questo] bug</s>
 +
*l'ora è sbagliata: probabilmente è colpa di Virtualbox che non usa l'orologio del BIOS senza Guest Addition (verificarlo con un CD vero); altrimenti forse bisogna giocare con <tt>live-config.utc=*</tt> (in questo caso capire perché)
  
 
==== Installer ====
 
==== Installer ====
*L'installer propone <tt>debian</tt> come hostname; mettere <tt>bimbotux</tt> come default
+
*GUI install non funziona: la versione giornaliera dell'installer è al momento [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=558908 buggata] e di conseguenza l'ho disabilitata con un'opzione di lh config (altrimenti il build fallisce); riprovare tra qualche giorno
 +
*text install non funziona: se si usa la daily dell'installer fallisce la procedura poco dopo aver installato il sistema base; altrimenti il testo già alla prima schermata è tutto rimpicciolito e distorto e risulta illeggibile
 +
*La tastiera è americana, anche se in fase di installazione si è scelta la tastiera italiana
 +
*L'installer propone <tt>debian</tt> come hostname; mettere <tt>bimbotux</tt> come default; forse si fa con <tt>lh config --bootappend-install <u>PARAMETRO</u></tt>
 +
 
 +
==== Qt Configuration ====
 +
*Impostarlo di default come GTK+
 +
*Verificare se si riesce a fare a meno di questo programma, usando direttamente uno o più file di configurazione
  
 
==== LXLauncher ====
 
==== LXLauncher ====
*Cambiare sfondo, vedi [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553639 qui].
+
*Cambiare sfondo, vedi [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553639 qui]. WiildOs usa LXLauncher: [http://wiildos.wikispaces.com/L%27interfaccia+grafica#Personalizzare%20l%27interfaccia qui] qualche riferimento per la personalizzazione.
  
 
==== /etc/apt/sources.list ====
 
==== /etc/apt/sources.list ====
*Non è adeguatamente configurato: risultano attivi solo i repository security
+
*Non è adeguatamente configurato: risulta attivo solo il cd e i repository security (di Sid, che non esistono neppure) sono commentati
  
==== FVWM ====
+
==== <del>FVWM</del> ====
 
*Finestre
 
*Finestre
 
**Bottoni graficamente personalizzati
 
**Bottoni graficamente personalizzati
Riga 359: Riga 207:
 
**Capire perché chiudendo una finestra a volte non ne resta neppure una selezionata e sistemare
 
**Capire perché chiudendo una finestra a volte non ne resta neppure una selezionata e sistemare
 
*Barra delle applicazioni
 
*Barra delle applicazioni
 +
**L'icona "stop" non è più visibile, è cambiato il path: da <tt>/usr/include/X11/pixmaps/mini.stop.xpm</tt> a <tt>/usr/share/pixmaps/fvwm/mini.stop.xpm</tt>
 
**Cambiare font
 
**Cambiare font
 
**Fare in modo che, massimizzando le finestre, la barra non venga coperta
 
**Fare in modo che, massimizzando le finestre, la barra non venga coperta
Riga 364: Riga 213:
 
==== LBreakout2 ====
 
==== LBreakout2 ====
 
*[http://lgames.sourceforge.net/index.php?project=LBreakout2 Da localizzare]: occorre scaricare i sorgenti e inviare la patch all'autore
 
*[http://lgames.sourceforge.net/index.php?project=LBreakout2 Da localizzare]: occorre scaricare i sorgenti e inviare la patch all'autore
*Manca il bottone su LXLauncher, vedi [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=330119 qui]; nell'attesa che il pacchetto entri in Squeeze, occorre pescarlo da Sid.
 
*Decidere se tenerlo o meno
 
  
 
==== GCompris ====
 
==== GCompris ====
 
*Fare in modo che di default, già dall'installazione, parta a schermo intero
 
*Fare in modo che di default, già dall'installazione, parta a schermo intero
 
*L'icona ''GCompris Admnistration'' è da localizzare e da spostare nella scheda '''Preferenze'''
 
*L'icona ''GCompris Admnistration'' è da localizzare e da spostare nella scheda '''Preferenze'''
 +
 +
==== KTouch ====
 +
La disposizione delle dita sulla tastiera è strana, non coerente ad esempio con [http://www.dattilocorso.com/introduccion.htm?n=Invitato&e=Invitado&t=1& questa]: verificare qual è lo standard e modificare la configurazione di conseguenza.
  
 
==== Ri-li ====
 
==== Ri-li ====
*Fare in modo che sia già configurato (localizzato italiano) al promo avvio. La configurazione è in <tt>~/.ri-li.pref</tt>, che però è un file binario
+
*Probabilmente c'è un bug nella gestione dell'audio: sembra che dopo un po' si auto-setti al massimo volume. Verificare e segnalarlo allo sviluppatore
  
 
==== Linux Letters and Numbers ====
 
==== Linux Letters and Numbers ====
Riga 378: Riga 228:
  
 
==== PySyCache ====
 
==== PySyCache ====
*'''Non si riesce a lanciare da LXLauncher, mentre funziona da terminale e (testato su una Debian) dal menu di Gnome: capire perché e sistemare'''. Vedi [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553636 qui].
+
*<s>'''Non si riesce a lanciare da LXLauncher, mentre funziona da terminale e (testato su una Debian) dal menu di Gnome: capire perché e sistemare'''. Vedi [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553636 qui].</s>
*Parzialmente da localizzare
+
*<s>Parzialmente da localizzare: contattare l'autore per chiedergli se lo sviluppo è ancora attivo, perché [http://www.pysycache.org/web/en/particip-it.html la procedura presente sul sito ufficiale] non funziona, oppure i contenuti inseriti vengono ignorati.</s> Ho fatto io: aspettare che [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=578573 la patch] venga applicata in Debian, oppure applicarla manualmente.
 +
*PySyCache Admin è da spostare nella scheda '''Preferenze''', e bisogna correggere la grafia del nome (maiuscole)
  
 
==== Pingus ====
 
==== Pingus ====
Riga 387: Riga 238:
  
 
==== Uomo Patata ====
 
==== Uomo Patata ====
*Installare la localizzazione italiana: dovrebbe essere [http://packages.debian.org/search?lang=it&searchon=names&keywords=kde-l10n-it questo] pacchetto
+
*Tra le dipendenze mette Iceweasel: perché? R: forse basta usare <tt>lh config --apt-recommends false</tt>
*Tra le dipendenze mette Iceweasel: perché?
+
 
 +
==== KHangMan ====
 +
*Impostare di default l'italiano come lingua delle parole
  
 
==== Pacchetti Debian ====
 
==== Pacchetti Debian ====
 
*Installare CUPS
 
*Installare CUPS
*SLiM, ma unicamente quando installato (non nella live)
+
*Valutare se sostituire nodm con SLiM (utile quando BimboTux viene installato)
 +
*Capire se si riesce a levare KNetAttach; l'eseguibile è <tt>/usr/lib/kde4/libexec/knetattach</tt> (vedi anche [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=582844 qui])
  
 
==== Funzionalità da implementare ====
 
==== Funzionalità da implementare ====
 
*Lettore multimediale
 
*Lettore multimediale
*Lettore e-book
+
*Lettore e-book: [http://packages.debian.org/it/squeeze/fbreader FBReader] o forse [http://packages.debian.org/sid/calibre calibre] (da provare) o ancora [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=590180 Sigil]
 
*Tema musicale
 
*Tema musicale
 +
 +
==== Elenco e-book ====
 +
Aggiungere qui sotto i libri che si desidera aggiungere nella prossima versione di BimboTux. '''Attenzione''': deve esserne possibile la redistribuzione, quindi fate attenzione alla licenza sotto cui sono rilasciati (da segnare nell'elenco).
  
 
=== Suggerimenti ===
 
=== Suggerimenti ===
Riga 404: Riga 261:
 
**[http://packages.debian.org/sid/trayer Trayer] o, forse meglio, [http://fbpanel.sourceforge.net/ fbpanel]
 
**[http://packages.debian.org/sid/trayer Trayer] o, forse meglio, [http://fbpanel.sourceforge.net/ fbpanel]
 
**[http://pekwm.org/projects/pekwm pekwm] ([http://adrinux.files.wordpress.com/2008/07/pekwm.jpg qui] uno screenshot notevole)
 
**[http://pekwm.org/projects/pekwm pekwm] ([http://adrinux.files.wordpress.com/2008/07/pekwm.jpg qui] uno screenshot notevole)
 
+
**[http://code.google.com/p/tint2/ tint2]
== Download ==
+
**[http://www.freedesktop.org/wiki/Software/LightDM LightDM], che a quanto pare è diventato il display manager di default su Ubuntu
L'ultima immagine da noi realizzata (solo per architettura x86 32bit, al momento) è scaricabile via BitTorrent attraverso [http://linuxtracker.org/index.php?page=torrent-details&id=9ad1c40c2e249d3745a7dba5601a5d812b41a719 LinuxTracker].
+
**[http://www.unicog.org/main/pages.php?page=NumberRace The Number Race]
 
+
*Valutare se includere [http://educazionik.sourceforge.net/ Educazionik] ed eventualmente pacchettizzarlo
<blockquote>
+
*Sviluppare un programma basato su [http://packages.debian.org/squeeze/festival festival] per far capire ai bambini il risultato dell'associazione tra le varie lettere
Versione: 0.1.0<br />
+
*Aggiungere un semplice mixer (tipo quello di Gnome) per regolare il volume senza dover passare da alsamixer
Dimensione: 553MB<br />
+
*Aggiungere [http://wiki.ooo4kids.org/index.php/Main_Page/it OOo4Kids] come "suite per ufficio" adatta a dei bambini
[http://linuxtracker.org/download.php?id=9ad1c40c2e249d3745a7dba5601a5d812b41a719&f=BimboTux-0.1.0.torrent Torrent]<br />
+
*Aggiungere programma di riconoscimento vocale, per scrivere sotto dettatura; forse [http://packages.debian.org/it/squeeze/sphinx2-bin sphinx2-bin] (o la libreria su cui si basa) potrebbe essere utile
md5: <tt>9d02ab355885a4776ca7c24116765b13</tt>
+
*Valutare se includere [http://www.oneopensource.it/22/02/2010/gnome-nanny-parental-control-su-ubuntu/ Gnome Nanny] (controllo parentale)
</blockquote>
+
*Verificare bene [http://kidoz.net/ di cosa si tratti] e se può tornarci utile
 
+
*Testare [http://packages.debian.org/it/squeeze/klavaro Klavaro], [http://packages.debian.org/it/squeeze/tipptrainer Tipptrainer], [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=625615 TIPP10] e <s>[http://packages.debian.org/squeeze/gtypist GNU Typist]</s>
In alternativa si può scaricare via FTP dai seguenti server:
+
*Provare [http://packages.debian.org/sid/ktoon KToon]
*[ftp://cicciocolombo.no-ip.org/]
+
*Tenere d'occhio [http://wiki.lxde.org/en/LXDM LXDM]: potrebbe essere il display manager che fa per noi
**Nome utente: <tt>Glux</tt>
+
*Altro software da valutare: [http://www.ivana.it/softdid/download/nicola/anagrammi/anagrammi.htm Anagrammi]
**Password: <tt>Glux</tt>
+
*Aggiungere [http://packages.debian.org/search?searchon=names&keywords=flobopuyo FloboPuyo]
*[ftp://gigiv.zapto.org/]
+
*Provare [http://seanh.sdfeu.org/storymaps/ StoryMaps]
**Nome utente: <tt>tux</tt>
 
**Password: <tt>bimbotux</tt>
 

Versione attuale delle 09:41, 8 feb 2013

Con questa guida viene spiegato passo passo come realizzare BimboTux "from scratch", ovvero partendo da un sistema Debian minimale. BimboTux infatti non è altro che una Debian altamente personalizzata, pensata attorno ad un unico scopo: fornire un sistema operativo completo a misura di bambino.

Alla fine della guida viene anche spiegato come costruire l'immagine da masterizzare su un CD-ROM che distribuiamo.

Documentazione

Chi volesse contribuire al progetto potrebbe iniziare leggendo questa guida, comprendente una buona bibliografia.

Per quanto riguarda la scelta dei software da includere, si può iniziare scavando tra le pagine del Servizio Documentazione Software Didattico.

Infine questo è il sito che si occupa di software libero nella scuola della Italian Linux Society.

Dipendenze

Partendo da un sistema Debian 6 (Squeeze) minimale, bisogna aggiungere

  • ALSA: il server audio
  • CUPS: il server di stampa
  • XOrg: il server grafico
  • nodm: per l'avvio automatico di XOrg
  • FVWM: il window manager
  • Some Juicy Fonts: font in stile "scrittura a mano"
  • LXLauncher: interfaccia stile EeePC
  • Sudo: per permettere agli utenti di spegnere il pc
  • GNOME Themes: per cambiare il tema GTK+
  • Tux Paint: programma di disegno per bambini
  • Tux Typing: per imparare ad usare la tastiera
  • KTouch: per imparare ad usare la tastiera
  • GCompris: giochi didattici per bambini dai 2 anni in su
  • Childsplay: giochi educativi per bambini
  • Uomo Patata: giochino
  • PySyCache: giochi didattici per imparare l'uso del mouse
  • Linux Letters and Numbers: giochino didattico per imparare numeri e lettere
  • lbreakout2: giochino
  • Circus Linux!: giochino circense
  • Ri-li: giochino ferroviario
  • SuperTux: gioco d'avventura
  • Frozen-Bubble: giochino
  • Pingus: gioco d'avventura e strategia
  • KHangMan: il classico gioco dell'impiccato

Le dipendenze si risolvono con

# aptitude install alsa-base cups xorg nodm fvwm ttf-sjfonts lxlauncher sudo \
gnome-themes kde-l10n-it tuxpaint tuxtype ktouch gcompris-sound-it gnucap gnuchess \
childsplay-alphabet-sounds-it ktuberling pysycache lletters \
lbreakout2 circuslinux ri-li supertux frozen-bubble pingus khangman

Configurazione di FVWM

Il Desktop Environment proposto è utilizzabile dall'utente finale in modo semplicissimo ed estremamente intuitivo. Essendo destinato all'età prescolare, le scritte sono pochissime mentre le icone, molto grosse, permettono ai bambini di gestire il computer autonomamente.

Il desktop è organizzato a schede (tab), in modo del tutto analogo all'Easy Mode dell'EeePc. Il risultato è ottenuto grazie ad LXLauncher, uno dei programmi facenti parte del Desktop Environment LXDE.

Per le scritte in stampatello minuscolo viene utilizzato il font SteveHand; Delphine per quelle interamente in stampatello maiuscolo.

Rappresentazione grafica

           +--- .fvwm2rc   <-- file di configurazione
           |
~/.fvwm ---+

.fvwm2rc

Il file è rilasciato dagli autori sotto pubblico dominio. C'è un commento esplicativo quasi per ogni riga. Scaricarlo ed inserirlo in ~/.fvwm/, come illustrato qui sopra.

Configurazione di Sudo

Per permettere ad un utente normale di spegnere la macchina, occorre configurare Sudo come indicato.

Lanciare il comando

# visudo

e aggiungere la seguente riga:

ALL	ALL=NOPASSWD: /sbin/shutdown

Ora il file /etc/sudoers dovrebbe assomigliare a questo:

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults	env_reset

# Uncomment to allow members of group sudo to not need a password
# %sudo ALL=NOPASSWD: ALL

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root	ALL=(ALL) ALL
ALL	ALL=NOPASSWD: /sbin/shutdown

Cambiare il tema GTK+ e le icone

Creare il file ~/.gtkrc-2.0 contenente queste righe:

include "/usr/share/themes/Glossy/gtk-2.0/gtkrc"
gtk-icon-theme-name = "Tango"

dove Tango è il nome del tema delle icone.

Configurare le librerie Qt con tema GTK+

Impostare il tema Qt per integrarsi come aspetto con le GTK+ usando il programma Qt Configuration.

Aggiungere l'icona a SuperTux

In attesa che questa patch venga inclusa in una nuova versione del pacchetto ufficiale Debian, per avere disponibile l'icona del gioco occorre metter mano nel file /usr/share/applications/supertux.desktop, modificando la riga riguardante l'icona come segue:

Icon=/usr/share/games/supertux/images/icon.xpm

Regolazione di ALSA

Avviare alsamixer e controllare la configurazione attuale di ALSA. Di default i canali dovrebbero essere tutti a 0 e muti: attivare quelli che interessano premendo il tasto "M" e regolare il volume con i tasti freccia "Su" e "Giù".

Realizzazione di un CD live

La versione di BimboTux da noi proposta è un CD live installabile: questo significa che è possibile usare l'intero sistema operativo direttamente da CD-ROM, senza installare né modificare alcunché sul disco rigido del computer, ma che volendo è anche installabile la distribuzione in modo molto semplice, attraverso una procedura guidata.

Per lo scopo si farà uso di una macchina Debian con installati i pacchetti ufficiali cdebootstrap e live-build: occorre pescarli dai repository di Squeeze o Sid. Per ogni necessità di chiarimento fare riferimento al manuale.

Creare una cartella di lavoro; dal suo interno lanciare

$ lh config --bootappend-live "live-config.hostname=bimbotux live-config.locales=it_IT.UTF-8 \
live-config.timezone=Europe/Rome live-config.keyboard-layouts=it" \
-d squeeze --mirror-bootstrap "URL" --mirror-binary "http://ftp.it.debian.org/debian/" --debian-installer live [-b usb-hdd] \
[--debian-installer-distribution daily] [--debian-installer-gui disabled]

sostituendo ad URL l'URL del mirror da cui scaricare i pacchetti necessari all'assemblaggio della live; nel caso in cui si sia creata una cache locale usando approx, l'indirizzo sarà un qualcosa di analogo a http://localhost:9999/debian/. L'opzione -b usb-hdd serve a generare un'immagine da copiare su chiavetta USB bootabile. Per copiare la live ottenuta su chiavetta bisognerà lanciare il comando

$ dd if=binary.img of=/dev/sdx bs=1M

dove x sta per la lettera equivalente al vostro dispositivo. Usando il ramo testing di Debian, a volte può capitare che l'installer presenti dei bug; per scavalcare il problema può essere utile, in questi casi, l'opzione --debian-installer-distribution daily, che permette di utilizzare l'ultima versione dell'installer, nella quale può darsi che i bug siano stati risolti.

Verrà a questo punto creato lo scheletro dei file di configurazione necessari a live-helper per generare l'immagine della nostra live.

Scaricare all'interno della directory config/chroot_local-packageslists il file bimbotuxpkg.list, contenente l'elenco dei pacchetti da installare.

Inserire in config/chroot_local-includes/etc/skel/.fvwm/ il file .fvwm2rc: creare il percorso con mkdir -p.

Mettere sudoers in config/chroot_local-includes/etc/ e cambiargli i permessi:

$ chmod 440 sudoers

In attesa che questo bug venga chiuso, inserire il file .profile appositamente modificato in config/chroot_local-includes/etc/skel/.

Inserire in config/chroot_local-includes/etc/skel/ il file .gtkrc-2.0.

Inserire nella directory config/chroot_local-includes/usr/share/applications/ il file supertux.desktop modificato; creare il percorso con mkdir -p.

Per avere Ri-li già localizzato in italiano, scaricare in config/chroot_local-includes/etc/skel/ questo file.

Infine, premunirsi di adeguata pazienza e far partire la costruzione dell'immagine:

# lh build

Nel caso si riscontrassero errori nella generazione dell'immagine, è utile creare un file di log con

# lh build 2>&1 | tee build.log

Da fare

Live CD

  • personalizzare i vari campi dell'header dell'immagine ISO tramite le varie opzioni lh config --iso-*
  • Cambiare immagine del boot loader: levare lo Swirl e mettere qualcosa di più mirato; probabilmente questo si fa con l'opzione lh config --syslinux-splash FILE
  • Al momento il comando dato in fase di costruzione della live per impostare la tastiera come italiana non funziona: attendere la chiusura di questo bug
  • l'ora è sbagliata: probabilmente è colpa di Virtualbox che non usa l'orologio del BIOS senza Guest Addition (verificarlo con un CD vero); altrimenti forse bisogna giocare con live-config.utc=* (in questo caso capire perché)

Installer

  • GUI install non funziona: la versione giornaliera dell'installer è al momento buggata e di conseguenza l'ho disabilitata con un'opzione di lh config (altrimenti il build fallisce); riprovare tra qualche giorno
  • text install non funziona: se si usa la daily dell'installer fallisce la procedura poco dopo aver installato il sistema base; altrimenti il testo già alla prima schermata è tutto rimpicciolito e distorto e risulta illeggibile
  • La tastiera è americana, anche se in fase di installazione si è scelta la tastiera italiana
  • L'installer propone debian come hostname; mettere bimbotux come default; forse si fa con lh config --bootappend-install PARAMETRO

Qt Configuration

  • Impostarlo di default come GTK+
  • Verificare se si riesce a fare a meno di questo programma, usando direttamente uno o più file di configurazione

LXLauncher

  • Cambiare sfondo, vedi qui. WiildOs usa LXLauncher: qui qualche riferimento per la personalizzazione.

/etc/apt/sources.list

  • Non è adeguatamente configurato: risulta attivo solo il cd e i repository security (di Sid, che non esistono neppure) sono commentati

FVWM

  • Finestre
    • Bottoni graficamente personalizzati
    • Rendere il bottone in alto a sinistra (mini-icona) non "cliccabile"
    • Fare in modo che i bottoni non restino cliccati anche quando si allontana il mouse
    • Capire perché chiudendo una finestra a volte non ne resta neppure una selezionata e sistemare
  • Barra delle applicazioni
    • L'icona "stop" non è più visibile, è cambiato il path: da /usr/include/X11/pixmaps/mini.stop.xpm a /usr/share/pixmaps/fvwm/mini.stop.xpm
    • Cambiare font
    • Fare in modo che, massimizzando le finestre, la barra non venga coperta

LBreakout2

  • Da localizzare: occorre scaricare i sorgenti e inviare la patch all'autore

GCompris

  • Fare in modo che di default, già dall'installazione, parta a schermo intero
  • L'icona GCompris Admnistration è da localizzare e da spostare nella scheda Preferenze

KTouch

La disposizione delle dita sulla tastiera è strana, non coerente ad esempio con questa: verificare qual è lo standard e modificare la configurazione di conseguenza.

Ri-li

  • Probabilmente c'è un bug nella gestione dell'audio: sembra che dopo un po' si auto-setti al massimo volume. Verificare e segnalarlo allo sviluppatore

Linux Letters and Numbers

  • Da localizzare, qui le istruzioni.

PySyCache

  • Non si riesce a lanciare da LXLauncher, mentre funziona da terminale e (testato su una Debian) dal menu di Gnome: capire perché e sistemare. Vedi qui.
  • Parzialmente da localizzare: contattare l'autore per chiedergli se lo sviluppo è ancora attivo, perché la procedura presente sul sito ufficiale non funziona, oppure i contenuti inseriti vengono ignorati. Ho fatto io: aspettare che la patch venga applicata in Debian, oppure applicarla manualmente.
  • PySyCache Admin è da spostare nella scheda Preferenze, e bisogna correggere la grafia del nome (maiuscole)

Pingus

  • Non funziona su alcune macchine: indicare i requisiti minimi
  • Refusi:
    • nel capitolo "Troppo in alto, il Pingus morirà", "a reparare la strada" → "a preparare la strada"

Uomo Patata

  • Tra le dipendenze mette Iceweasel: perché? R: forse basta usare lh config --apt-recommends false

KHangMan

  • Impostare di default l'italiano come lingua delle parole

Pacchetti Debian

  • Installare CUPS
  • Valutare se sostituire nodm con SLiM (utile quando BimboTux viene installato)
  • Capire se si riesce a levare KNetAttach; l'eseguibile è /usr/lib/kde4/libexec/knetattach (vedi anche qui)

Funzionalità da implementare

  • Lettore multimediale
  • Lettore e-book: FBReader o forse calibre (da provare) o ancora Sigil
  • Tema musicale

Elenco e-book

Aggiungere qui sotto i libri che si desidera aggiungere nella prossima versione di BimboTux. Attenzione: deve esserne possibile la redistribuzione, quindi fate attenzione alla licenza sotto cui sono rilasciati (da segnare nell'elenco).

Suggerimenti

  • Provare i seguenti programmi (qui una guida):
  • Valutare se includere Educazionik ed eventualmente pacchettizzarlo
  • Sviluppare un programma basato su festival per far capire ai bambini il risultato dell'associazione tra le varie lettere
  • Aggiungere un semplice mixer (tipo quello di Gnome) per regolare il volume senza dover passare da alsamixer
  • Aggiungere OOo4Kids come "suite per ufficio" adatta a dei bambini
  • Aggiungere programma di riconoscimento vocale, per scrivere sotto dettatura; forse sphinx2-bin (o la libreria su cui si basa) potrebbe essere utile
  • Valutare se includere Gnome Nanny (controllo parentale)
  • Verificare bene di cosa si tratti e se può tornarci utile
  • Testare Klavaro, Tipptrainer, TIPP10 e GNU Typist
  • Provare KToon
  • Tenere d'occhio LXDM: potrebbe essere il display manager che fa per noi
  • Altro software da valutare: Anagrammi
  • Aggiungere FloboPuyo
  • Provare StoryMaps