Well here is a little description of what DrakX needs to work in comparison to the standard newt install. ******************************************************************************** * CVS ************************************************************************** ******************************************************************************** Like all good free software, DrakX is in CVS :) You can access it using: % export CVSROOT=:pserver:anoncvs@linux-mandrake.com:/home/cvs/cooker % cvs login % Passwd: cvs % cvs checkout gi This is only read-only access. If you want more, tell me (pixel@mandrakesoft.com) Alas, all is not in CVS as a lot of things are binary files. For the other things, take cooker-contrib others/src/gi.tar.bz2 Please note that redoing *all* the stuff is not for the faint of heart. I myself sometimes wonder what the whole make does :-% Instead, changing some .pm files is quite easy (nice interpreted language) ******************************************************************************** * Making your custom install cdrom ********************************************* ******************************************************************************** If you have your own rpms you want to add, or make your own updated cdrom, you just have to update: - Mandrake/base/hdlist: use ``misc/genhdlist .'' - Mandrake/base/depslist: use ``misc/gendepslist -h Mandrake/base/depslist Mandrake/base/hdlist'' Optionnally, you can modify Mandrake/base/compss, compssList and compssUsers. Also, mdkinst_stage2.gz must be remade if you modify files in Mandrake/mdkinst. See below for information about these files. ******************************************************************************** * FILES ************************************************************************ ******************************************************************************** First he are the different things needed : Mandrake/base/hdlist table of rpm's headers. ! Need to be remade when Mandrake/RPMS changes (with ``misc/genhdlist .'') ! Mandrake/base/depslist for each packages, tell which package it depends on. Also contains the size for some (obscure) bloody reasons. ! Need to be remade when Mandrake/RPMS changes ! (with ``misc/gendepslist -h Mandrake/base/depslist Mandrake/base/hdlist'') Mandrake/base/compss obsoletes comps. It store packages in different categories, a bit like the %{GROUP} field Mandrake/base/compssUsers obsoletes comps. It contains the different user classes like ``Graphics Manipulation'' and ``Games'' Mandrake/base/compssList for each packages, it gives the appreciation for each type of user. used to preselect packages used to decide to show or hide packages. Mandrake/mdkinst live system used on certain installs. See ``Ramdisk or not'' below for more. Mandrake/base/mdkinst_stage2.gz for the ramdisk. live sytem in ext2 filesystem gzipped. generated from Mandrake/mdkinst tree using misc/make_mdkinst_stage2 See ``Ramdisk or not'' below for more. images/gi_*.img boot images to use with DrakX. Use: - gi_hd for hard-disk install - gi_cdrom for cdrom install - gi_network for ftp/nfs install - gi_pcmcia for pcmcia install (see ``PCMCIA install'' below for more) Some optional files : Mandrake/base/depslist.html html formatted depslist ******************************************************************************** * logs ************************************************************************* ******************************************************************************** During install, a lot of interesting stuff can be found in different places: in consoles and in files. To switch to console 2 for example, do Ctrl-Alt-F2 from the X install. - alt-F1: the stdout of the install. Not very interesting stuff - alt-F2: simple shell. Quite a lot of commands are available but as they are written in perl (for space), they do not handle the very same options as normal. After install, you can do ``chroot /mnt'' to see your system just like after rebooting. ``rpm -qa'' works for example. - alt-F3: a lot of interesting things. Be carefull, some ``ERROR'' messages are not interesting. - alt-F4: kernel's place. aka the output of dmesg. - alt-F5: the graphical install lives there (may switch to console 7 one day :) - alt-F7: the output of commands (like lilo or mke2fs). - /tmp/ddebug.log: same (or nearly the same) as alt-F3 - /tmp/syslog: same as alt-F4 - /mnt/root/ddebug.log: at the end of each step, DrakX tries to backup /tmp/ddebug.log to /mnt/root. Available only after mounting of /. - /mnt/root/install.log: the log of the installation (or upgrade) of the rpms (just like rpm's /mnt/tmp/(install|upgrade).log) - /mnt/root/auto_inst.cfg.pl: a kickstart file generated at the end of each step. Can be used in 2 ways: kickstart install or ``defcfg'' install. Hopefully you know about kickstart. ``defcfg'' is a way to customize the default values in install. For example, French can be the default language with a qwerty keyboard, the auto-partitionning partitions can be changed, the default user class can be set to developer (!)... ******************************************************************************** * po translation files ********************************************************* ******************************************************************************** DrakX uses .po files for its translation. A script takes the different strings out of the .pm files. It generates the DrakX.pot file which contains all the english strings to translate. To add a new language, you just have to add it to lang.pm (if it's not there already) and put the .po in the perl-install/po directory (see ``Ramdisk or not'' to know if you have to regenerate the mdkinst_stage2.gz) ******************************************************************************** * PCMCIA install *************************************************************** ******************************************************************************** If the media you use to install is a pcmcia device, you have two choices: - use the gi_pcmcia boot disk - use another boot disk and it will ask you a supplementary disk. Give it the gi_pcmcia disk. ******************************************************************************** * Ramdisk or not *************************************************************** ******************************************************************************** The DrakX install is much bigger than the newt one. So the ramdisk which was used is getting big, and costs a lot in memory (eg: the mdkinst_stage2 is 14MB - 23/09/99) | | newt | DrakX |-------+---------+---------------------------------------------------------- | nfs | live | live | ftp | ramdisk | ramdisk | http | ramdisk | not yet :( | hd | ramdisk | live if Mandrake/mdkinst/usr/bin/runinstall2 is a link, | | | ramdisk otherwise | cdrom | ramdisk | live if memory < 40MB, ramdisk otherwise When i say live, it means that the install1 stage will *mount* the Mandrake/mdkinst and use it that way. The ramdisk is used in place of the live in some cases. This ramdisk is filled with mdkinst_stage2.gz For cdrom install, the ramdisk is used to speed up things (access time is quite high on cdrom drives) For pcmcia, it depends on the type of install. ******************************************************************************** * modules ********************************************************************** ******************************************************************************** Modules can be found in at least 3 places: - in /modules/modules.cgz - in /lib/modules/ - in /lib/modules/modules.cpio.bz2 /modules/modules.cgz is used in stage1. It contains only modules interesting for one kind of install. For example in an gi_hd install, it contains scsi modules. For an gi_network install, it contains network card modules. /lib/modules/ contains modules that should be in /lib/modules/modules.cpio.bz2 but are not for speed up. The serial.o module is there to speed up mouseconfig. /lib/modules/modules.cpio.bz2 contains every module except those of /lib/modules/ To install a module, use modprobe which is in /usr/bin. It's a perl wrapper around /usr/bin/insmod. It uses the dependencies found in /lib/modules/modules.dep (stage1). /usr/bin/insmod is a wrapper around /usr/bin/insmod_. It just extracts the module out of /lib/modules/modules.cpio.bz2 in /tmp. Then it calls insmod_. /usr/bin/insmod_ is the real prog (which you usually find in /sbin/). You need to give it the complete path. ******************************************************************************** * Making screenshots *********************************************************** ******************************************************************************** you can use Xnest and export the install display. The problem is to get the proper fonts. One solution is: - modify your /etc/X11/fs/config: - move /usr/X11R6/lib/X11/fonts to /usr/X11R6/lib/X11/fonts2 - tell xfs to take this into account - install DrakX's fonts in /usr/X11R6/lib/X11/fonts/misc - makes Xnest happy by adding the directories it needs - launch Xnest - do a network install giving ``linux display=YOUR_IP:1'' - takes the screenshots!! perl -pi -e 's|(/usr/X11R6/lib/X11/fonts)|${1}2|' /etc/X11/fs/config cd /usr/X11R6/lib/X11 ; mv fonts fonts2 killall -USR1 xfs ( cd /usr/X11R6/lib/X11 mkdir fonts cp -a $MIRROR_ROOT/Mandrake/mdkinst/usr/X11R6/lib/X11/fonts misc for i in 100dpi 75dpi Speedo TrueType Type1; do ln -s misc $i; done ) Xnest -name Xnest -geometry 640x480 :1 & # with DISPLAY=:0 xwd -name Xnest | convert - screenshot.png