Create a Dyne:III iso image
by Asbesto, JUL 2010
Contents
Description
Fetch your favorite iso, in the following examples we will take puredyne-911-carrot_and_coriander iso to show that this procedures can apply to a lot of different isos/systems.
The basic procedure is simple:
- mount the ISO image in loop mode;
- copy the content of the image in a directory, except for the main squashfs filesystem (on ubuntu and debian: filesystem.squash; on dynebolic: dyne.sys);
- unsquash the squashfs image file into another directory;
- Add resolv.conf and hosts in /etc by hand or copying from your system;
- mount the dev,proc and sys filesystems into the uncompressed directory;
- do some minor stuff for having the system ready for your tweaks.
Requirements
You need the squashfs-tools.
apt-get install squashfs-tools
HOWTO
You can cut'n paste from here to your shell, as you need.
# CREATING THE DEVELOPMENT SYSTEM FROM THE ISO IMAGE # we choose pd/ as our working directory, so... mkdir pd cd pd sudo mount puredyne.iso /mnt -o loop mkdir extract-cd rsync --exclude=/live/filesystem.squashfs -a /mnt/ extract-cd # for d:b: rsync --exclude=/dyne/dyne.sys -a /mnt extract-cd/ sudo unsquashfs /mnt/live/filesystem.squashfs # for d:b: sudo unsquashfs /mnt/dyne/dyne.sys sudo mv squashfs-root edit # ISO IMAGE CREATED! # USE YOUR DEVELOPMENT SYSTEM # use resolv.conf and hosts from your system, or edit them by hand... sudo cp /etc/resolv.conf edit/etc/ sudo cp /etc/hosts edit/etc/ # if you are into your pd/ directory with the system extracted as above, # just cut'n paste from here to start working on the system. sudo mount --bind /dev/ edit/dev sudo chroot edit mount -t proc none /proc mount -t sysfs none /sys mount -t devpts none /dev/pts # To avoid locale problems during installation of new packages, you need to export 2 system variables: export HOME=/root export LC_ALL=C # You also need to do this as root (that's for some reasons connected with a couple of dbus bugs). # If you are re-chrooting to a system you're working on, don't mind about warnings or errors. dbus-uuidgen > /var/lib/dbus/machine-id dpkg-divert --local --rename --add /sbin/initctl ln -s /bin/true /sbin/initctl #done!
# NOTE: if the above dpkg-divert fail with a "not allowed" message, just remove /sbin/initctl.distrib rm /sbin/initctl dpkg-divert --local --rename --add /sbin/initctl ln -s /bin/true /sbin/initctl
That's all folks!
Suggestions
When you want to remove packages remember to use purge I investigated a bit the matter, not enough to know whats going on but enough to know is a good practice.
Once in the chroot start poking:
# refresh your list apt-get update # some must have apt-get install htop modconf # some multimedia apt-get install cinelerra sox twolame mpeg2dec a52dec libsox-fmt-all a52dec darkice darksnow
rsync to carry the pack for working out of home
rsync --exclude=/edit/dev --exclude=/edit/proc --exclude=/edit/sys -auvz /home/youruser/wherever/src/pd/ /media/usbdisk/pd/
In this way you rsync your pd/ working directory on a same pd/ dir on your usb key, so you can work everywhere on your eeepc.
Closing
cd / aptitude clean rm -rf /tmp/* ~/.bash_history # tolgo rm /etc/resolv.conf perche comunque ci metto i dns dell'MIT rm /var/lib/dbus/machine-id rm /sbin/initctl dpkg-divert --rename --remove /sbin/initctl dpkg -l > packages.txt umount /proc umount /sys umount /dev/pts exit sudo umount edit/dev sudo mv edit/packages.txt extract-cd/live/ # Into the pd dir: # creiamo il file sudo touch extract-cd/live/filesystem.manifest sudo chmod a+w extract-cd/live/filesystem.manifest # sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/live/filesystem.manifest sudo cp extract-cd/live/filesystem.manifest extract-cd/live/filesystem.manifest-desktop sudo sed -i '/ubiquity/d' extract-cd/live/filesystem.manifest-desktop sudo sed -i '/live/d' extract-cd/live/filesystem.manifest-desktop # Compress the filesystem # cancelliamo il vecchio squashfs eventualmente in mezzo alle palle sudo rm extract-cd/live/filesystem.squashfs # creiamo il nuovo squashfs. La pagina Debian live parla di una opzione -nolzma da mettere alla fine, che pero' NON ESISTE: # # https://help.ubuntu.com/community/LiveCDCustomization # # Note: The -nolzma option is only available from Hardy , and was removed in Karmic. # Also, the squashfs has to be generated using a version of mksquashfs that is compatible # with the kernel used on the CD you are customizing. For example, you cannot generate # a jaunty squashfs on karmic, as the jaunty kernel is not able to mount a squashfs # prepared using mksquashfs from karmic. O_o sudo mksquashfs edit extract-cd/live/filesystem.squashfs # Set an image name in extract-cd/README.diskdefines - Maybe is unuseful? # sudo joe extract-cd/README.diskdefines # (you can use "sudo vim extract-cd/README.diskdefines" if you have difficulties understanding joe. AHHAHAHAH) # Remove old md5sum.txt and calculate new md5 sums cd extract-cd sudo rm md5sum.txt find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt # From inside the extract-cd directory: sudo mkisofs -D -r -V "dyneIIIa1" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../dyneIIIa1.iso . isohybrid ../dyneIIIb.iso # HASTA SIEMPRE, COMANDANTE CHE GUEVARA!
Per creare una chiavetta avviabile, basta fare
dd if=dyneIIIb.iso of=/dev/sdXX bs=8192k
Tasks to do
- install all multilanguage documentation for programs and track they're directory if we can squash them or zip, inkscape,gimp,OOffice, some copies maybe from FOSS manuals?
- remove unused themes and languages (localepurge?)
- install some more open fonts
- install some edubuntu software(find out which)
- clean up desktop
- boot and test the video software
Done
- Remove all useless documentation from /usr/share/doc
- Installed Openoffice suite
- Installed Scribus
- English, Italian, Portoguese, French, Swahili and Afrikaans not installed: WE HAVE TO WAIT FOR LANGUAGES DEFINITION FROM THE COMMITTENT.
openoffice.org-help-en-gb openoffice.org-help-en-us openoffice.org-help-fr openoffice.org-help-it openoffice.org-help-pt openoffice.org-l10n-af openoffice.org-l10n-common{a} openoffice.org-l10n-en-gb openoffice.org-l10n-en-za openoffice.org-l10n-fr openoffice.org-l10n-it openoffice.org-l10n-pt openoffice.org-l10n-sw 0 packages upgraded, 13 newly installed, 0 to remove and 35 not upgraded. Need to get 67.7MB/68.0MB of archives. After unpacking 234MB will be used.
Appunti di lavoro
Primo test: OK! boota perfettamente, ci sono alcune ricorrenze di "puredyne" da sistemare e customizzare.
Note
La barra laterale della vecchia db, che contiene le icone dei media montati, della rete di condivisione, il volume, floppy e l'ora, non serve piu', poiche' e' tutto automatizzato sul desktop (finalmente! ) e sulla barra delle icone sotto. C'e' gia' tutto li, inutile duplicare
Elenco di cose da levare di mezzo
- locales inutilizzati
- sw da testare
Roba da mettere
Analisi dei menu' della vecchia db, e di conseguenza installazione di tutto cio' che ivi compare, piu' altro.
VIDEO
- xv -- MESSO. By John Bradley. Vecchio binario statico, piccolo, leggero e veloce, ottimo per editing immagini veloce, crop, resize etc.
- gmp4player -- non trovato nei repo, by cisco systems
- mp4live -- NOT FOUND, fa parte del gruppo di cui sopra, by CISCO
- tvtime -- installato, PAL, freq. table Europe
- ksubtitle -- NOT FOUND, e' forse ksubtitleripper - GUI for KDE to rip DVD subtitles ???
- Seven Gnomes -- NOT FOUND
AUDIO
- xmms -- UNSUPPORTED DEPRECATED. non esiste piu'. audacious settato con la sua vecchia skin e' indistinguibile da xmms.
- amarok -- installato
- hydrogen -- installato - FORSE VANNO INSTALLATI ANCHE DEI SUONI DI BATTERIA? CHECK PLEASE
- freewheeling -- installato
- soundtracker -- NOT FOUND
- cheesetracker -- installato
- ardour 2 -- ??? Installato ardour!
- rosegarden - installato
- rezound - installato
- muse -- NOT FOUND ?!?!??!?!?!?
- icecast2 -- c'e', aggiunti ices e ices2 che servono x strimmare
IMAGE
- Installati geequie e xsane. geequie e' la nuova versione di gqview, non piu' mantenuto
TEXT
- Abiword -- installato. DA INSTALLARE I VARI ASPELL, LI DA COME CONSIGLIATI.
- ted -- NOT FOUND
NET
- nvu --- NOT FOUND
- gpa installato
- mutt installato - DA CONFIGURARE? BOOH!!!
- kiax -- NOT FOUND
- ktorrent, nicotine, bittorrent INSTALLATI
- gnutella NOT FOUND
- MLdonkey NOT FOUND
- pidgin e xchat installati - XCHAT DA CONFIGURARE
- CONFIGURARE IRSSI?
- ncftp installato
- vncviewer installato
- vncserver: INSTALLATO
- vnc2swf NOT FOUND
- rdesktop installato
TOOLS
- installati tutti: nmap, traceroute, guarddog, wireshark, minicom ed aggiunto arping
- kismet, aircrack-ng aggiunti.
FILES
- k3b installato
- rox NON SERVE PIU'
- samba installato
- grsync installato
- xFE file explorer, ma serve? installato.
DEVEL
- glade, fluid, sysprof installati.
- adie NOT FOUND. serve? BOH
UTILS
- iftop installato
- foxcalc, search e wmagn NOT FOUND
DA FIXARE
IMPORTANTI
- HOSTNAME va creato in base al mac address per far funzionare bene samba. DA FARE
- Mozilla Firefox bookmarks e start page
- docs in usr/share/puredyne/doc/C/index.html eccetera per l'help da menu
- About XFCE potrebbe diventare l'about di dyne3?
Settare l'editor default da console
Si usa update-alternatives --config editor che ti fa scegliere l'editor preferito tramite un menu.
Autologin account
Tutte le occorrenze di lintian diventano luther. In particolare i files dentro pd/extract-cd/extra, pd/edit/etc/gdm/custom.conf ed alcuni file dentro pd/extract-cd/isolinux. In questi file c'e' anche il nome assegnato al computer, che ho deciso essere "mir".
Un mega script della madonna dentro usr/share/initramfs-tools/scripts/live-bottom/10adduser per creare sempre lo stesso utente al boot. CHE COLOSSALE CAZZATA. Ho editato lo script commentando via quelle CAZZATE. L'utente luther sara' creato statico, come deve essere.
Fixing
Dentro edit/usr/share/initramfs-tools/scripts/live-bottom/15autologin c'e' questa cagata qua
# chroot needed to handle symlinks correctly if chroot /root [ -f ${GDMCONF} ] then # true hack ! -- nohar chroot /root cp /usr/share/gdm/defaults.conf /etc/gdm/gdm.conf
true hack STA MINCHIA, dato che non esiste alcun /usr/share/gdm/defaults.conf da copiare!!!
Ergo,
root@gemini:/home/asbesto/Desktop/src/pd/edit# cp etc/gdm/custom.conf usr/share/gdm/defaults.conf
Menu di xfce4
Da fare IDENTICO a quello della vecchia db. BAGNO DI SANGUE. Sulla pd sta qui:
/etc/xdg/menus/xfce-applications.menu
dentro sta dir ci sono tutti i menu standard utili. SI FA COSI:
COPIARE /etc/xdg/menus/xfce-applications.menu dentro .config/menus/xfce-applications.menu
editarlo, PORCODIO
COPIARE tutto /usr/share/applications/xfce4* dentro .local/share/applications
EDITARE SE E' IL CASO, PORCO DI DIO
EDITARE La voce relativa all'entry modificata pure dentro /usr/share/desktop-directories !!!!! qui CAMBI IL NOME DEL MENU!!!
Poi devi RIAVVIARE il cazzo di menu con killall -9 xfdesktop e/o xfdesktop --reload. PORCO CRISTO DIO
Reference: http://wiki.xfce.org/howto/customize-menu DI MERDA, UN HOWTO SCRITTO DI MERDA, DIO CANE
Terminale
Il terminale di default si modifica configurando .config/Terminal/terminalrc, in fondo...
Sfondi desktop, icone, grafica
I backgrounds della pd stanno dentro /usr/share/xfce4/backdrops.
Per una questione di hierarchy sposterei gli sfondi che non sono default di xfce4 su una dir tipo /usr/local/share/xfce4/backgrounds sistemando opportunamente i file di config. Vedremo...
C'e' una icona pd dentro /etc/skel/.icons, finisce dentro /home/lintian (viene creata la home al boot). SISTEMATA
La dir. /usr/share/dyne della db, contenente varie cose, e' stata messa dentro /usr/local/share/dyne della pd.
Splash screen: si trova in nella sezione extract-cd del kit di sviluppo, quindi fuori da edit/ : nel mio caso sta dentro /home/asbesto/Desktop/src/pd/extract-cd/isolinux e si chiama ovviamente splash.png, 640x480. SISTEMATO, VEDIAMO SE VA. CI SONO ANCHE ALTRI SFONDI DA PROVARE LI DENTRO.
Splash screen 2: usr/share/images/desktop-base/grubsplash-puredyne-logo-simple.png settato a Volcan.png per grub, usato da /etc/grub.d/05_debian_theme.
Desktop background: lo si configura nella dir /edit/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xls/ editando xfce4-desktop.xml per il Desktop Background e xfce4-session.xml per la Session Background, che e' quella specie di screen splash che compare quando carica X e tutti i suoi pezzi. E' meglio che la session background non sia a tutto schermo altrimenti non si legge quel che sta caricando. FATTO!
C'e' una icona da sistemare qui: /etc/skel/.config/xfce4/panel/xfce4-menu-5.xml. FATTO
Varie
Sistemati gli help del boot, dentro /home/asbesto/Desktop/src/pd/extract-cd/isolinux", ci sono vari testi li' dentro. Pero' non compaiono da nessuna cazzo di parte...
Manuali sucati in wget da dynebolic.org/manual, mirrorato tutto il sito forse? cmq, messi dentro /usr/share/dyne/dynebolic.org/manual/ nelle dir C e ES cosi vengono automaticamente LOCALIZZATI da /usr/bin/xfhelp4, che e' un binario shellscript che va editato: dentro si configura il percorso del manuale, lui controlla la lingua, se e' C carica il manuale C, se e' ES carica ES. FICO. Lancia il default browser su quei manuali in html. SUCA!!!
- Aggiunto il dyne splash, creando .config/autostart/Dynebolic Splash.desktop cosi:
[Desktop Entry] Encoding=UTF-8 Version=0.9.4 Type=Application Name=Dynebolic Splash Comment=Dynebolic Splash Exec=/usr/share/dyne/splash/dynesplash StartupNotify=false Terminal=false Hidden=false
e poi in
e configurandolo dentro .local/share/applications/xfce4-about-xfce.desktop il quale contiene
[Desktop Entry] Version=1.0 Type=Application Encoding=UTF-8 Exec=/usr/share/dyne/splash/dynesplash Icon=help-about StartupNotify=false Terminal=false Categories=X-XFCE;X-Xfce-Toplevel; OnlyShowIn=XFCE; Name=About Dyne:III