## page was renamed from DebianInstallerGUIBuild ## Auto-converted by kwiki2moinmoin v2005-10-07 = Debian-Installer: General Overview on the GTK frontend = '''Note''': Development of the graphical debian-installer (g-i) takes place mainly for i386, so instructions and examples below may need to be adapted for other architectures. This page explains how to create a g-i miniiso, that is a miniiso image which contains the GTK frontend and all the related stuff: since this image is very small (10/15MB) and quick to build, it is an ideal playground to experiment with. Daily images including the GTK frontend are part of the regular ISO build process from a year or so. For i386 and AMD64 the following types of images are supported: CD images, hd-media, netboot-gtk. For powerpc currently only the netboot-gtk image is available. Fonts are loaded from udebs. For details, see https://wiki.debian.org/DebianInstaller/GUIFonts. The latest images built this way are available from [[http://www.debian.org/devel/debian-installer|the Debian Installer project page]]. = Manual build of the images = Manual builds can be done by following the instructions below. * checkout the build system:{{{ $ mkdir -p netboot-gtk $ cd netboot-gtk $ git clone git@salsa.debian.org:installer-team/debian-installer.git }}} * run dpkg-checkbuilddeps from the {{{installer}}} directory and make sure you have the dependencies installed * build the image (from the build directory):{{{ $ fakeroot make build_netboot-gtk }}} Note that if you have made changes in the {{{localudebs}}} directory, it is advisable to run {{{'fakeroot make reallyclean'}}} before rebuilding. The result of the build is a "mini.iso", an minimalist image of about 15-20MB (depending on architecture). == Building cdebconf (or the single gtk.so) against the fresh new libs == gtk.so is part of the {{{cdebconf}}} package ({{{cdebconf-gtk-udeb}}} in particular), archived in the GIT repository of the installer. To rebuild {{{cdebconf}}} against directfb rather than X ("yourpath" is the absolute path containing the various libraries): {{{ git clone git@salsa.debian.org:installer-team/cdebconf.git cd cdebconf export LD_LIBRARY_PATH=yourpath/d-i_build/lib export PKG_CONFIG_PATH=${LD_LIBRARY_PATH}/pkgconfig fakeroot dpkg-buildpackage }}} In case you wanted to recompile only gtk.so rather than the various udebs: {{{ git clone git@salsa.debian.org:installer-team/cdebconf.git cd cdebconf sh ./configure cd src/modules/frontend/gtk export LD_LI }}} == Debugging the graphical installer == Here are collected some techniques that may help in debugging the graphical installer. === Testing the installer from local directory === When you build a g-i ISO, everything you find inside the ISO comes of course from a directory of your hard disk: here is explained how to setup a chroot environment with details specific to the case of the debian-installer. Assuming you've just built an ISO with the automating ISO building process described above, let's cd to build/tmp/netboot-gtk/tree : the contents of this directory are what gets packed later inside the initrd during the ISO building process. Now, as root and from inside build/tmp/netboot-gtk/tree , do the following {{{ #chrooting inside the directory that initrd.gz was generated from chroot ./ sh #creating all device files needed to access the framebuffer cd /dev mknod fb0 c 29 0 mknod tty c 5 0 mknod tty0 c 4 0 mknod tty8 c 4 8 #starting the debian-installer debconf-loadtemplate d-i /var/lib/dpkg/info/*.templates export DEBIAN_FRONTEND=gtk debconf -f gtk -o d-i /usr/bin/main-menu }}} This should start the graphical installer from the chroot'ed directory: now you can attach gdb to cdebconf, use tools like ltrace or strace easily. Please note that you need your real system to have been booted with framebuffer mode active (you should have passed something like video=vesa vga=788 to your kernel at boot time). === Testing the installer from an iso image === We noticed that, especially on PowerPC, sometimes the graphical interface crashes and restarts without rest over and over, blocking the user from accessing other terminals inorder to analyze error logs. The suggested woraround is booting the installer in textual mode by entering the following line at boot prompt {{{ install DEBIAN_FRONTEND=newt }}} At the end of the boot process the classical textual, blue interface will show up: you can now switch to VT2 and modify the /etc/directfbrc DirectFrameBuffer configuration file (it's like xorg.conf for the X11 server) {{{ nano /etc/directfbrc }}} Then , type {{{ export DEBIAN_FRONTEND=gtk debian-installer }}} The GTK frontend will start, but this time you'll be able to read error messages on VT1 which usually provide useful informations about the crash