This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fedora 7 based Systemtap LiveCD for i686 machines


Hi All,

I have been working on a Fedora 7 based liveCD that can be used for
the OLS tutorial.  The process of generating the livecd is getting a
bit easier now that livecd-creator can use a kickstart file to
generate the iso image. I started with the
/usr/share/livecd-tools/livecd-fedora-desktop.ks, verified that I
could build a live CD (and a live usb key flash). Then added the RPMs
for systemtap (systemtap, kernel-devel, kernel-debuginfo). These
additional RPMs pushed the size well over the 700MB limit for a CDROM
(about 1GB). I used to USB flash key to veryify that I could boot the
image and run systemtap. I then started editing the list of packages
on the image to reduce the image size under the 700MB limit.  I ended
up using "yum remove [rpm package]" (with question "n") to determine what
other packages were dependent on a that RPM and ended up with a 687MB
image.

The resulting iso image has been uploaded for other people to test out
at:

ftp://sourceware.redhat.com/pub/systemtap/livecds/Fedora-7-systemtap-20070606.iso

For more information about the livecd tools and creating a livecd:

http://fedoraproject.org/wiki/FedoraLiveCD

Attached is the kickstart file (livecd-fedora-7-staptut7.ks) used to
create the livecd on a F7 machine. The following command was run as root to
create the image:

livecd-creator   --config=livecd-fedora-7-staptut8.ks  \
--fslabel=Fedora-7-systemtap-20070606 >& build_stap8.log

Please give it a try and let me know whether how it works.

-Will

lang en_US.UTF-8
keyboard us
timezone US/Eastern
auth --useshadow --enablemd5
selinux --enforcing
firewall --disabled
repo --name=f7 --baseurl=http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Everything/i386/os
repo --name=d7 --baseurl=http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Everything/i386/debug/
xconfig --startxonboot
services --enabled=NetworkManager,dhcdbd --disabled=network,sshd

%packages
# basic desktop packages
@graphical-internet
#@graphics
#@sound-and-video
@gnome-desktop
@base-x
#@games
@base
@core
@admin-tools
#@dial-up
@hardware-support
#@printing
syslinux
kernel

-scim*

-m17n-*

-fonts-*

# dictionaries are big
-aspell-*
-m17n-db-*
-man-pages-*
# gimp help is huge
-gimp-help
# lose the compat stuff
-compat*

# space sucks
-gnome-user-docs
-specspo
-esc
-samba-client
-a2ps
-vino
-redhat-lsb
-sox
-tomboy

# smartcards won't really work on the livecd.  and we _need_ space
-coolkey
-ccid

# duplicate functionality
-pinfo
-vorbis-tools
-wget


# scanning takes quite a bit of space :/
-xsane
-xsane-gimp

# while hplip requires pyqt, it has to go
-hplip

# added games
#monkey-bubble
#ppracer

# we don't include @office so that we don't get OOo.  but some nice bits
#abiword
#gnumeric
evince
#gnome-blog
#planner

# lots of people want...
gparted
ntfs-3g
ntfsprogs

# livecd bits to set up the livecd and be able to install
anaconda
anaconda-runtime

## make sure debuginfo doesn't end up on the live image
#-*debuginfo

# Material added for OLS systemtap tutorial
kernel-devel
kernel-debuginfo
systemtap

#stuff removed to make more room for OLS systemtap tutorial
-mono-*
-beagle-*
-libbeagle
-telnet-*
-libpurple
-nautilus-sendto
-pidgin-*
-evolution
-anthy-*
-ghostscript
-gutenprint
-gutenprint-foomatic
-ImageMagick
-hal-cups-utils
-cups*
-libgnomecups
-gphoto2

-gthumb
-gnome-session
-gnome-volume-manager

-foomatic
-desktop-printing
-hal-cups-utils
-system-config-printer
-system-config-printer-libs
-nautilus
-ekiga

-gucharmap
-gedit

-urw-fonts
-system-config-lvm

-file-roller
-eog
-dejavu-lgc-fonts


# FIXME would prefer not to remove the assistive technology support
-festival
-festvox-slt-arctic-hts
-festival-speechtools-libs
-gnome-speech
-gok
-orca

%post
# FIXME: it'd be better to get this installed from a package
cat > /etc/rc.d/init.d/fedora-live << EOF
#!/bin/bash
#
# live: Init script for live image
#
# chkconfig: 345 00 99
# description: Init script for live image.

. /etc/init.d/functions

if ! strstr "\`cat /proc/cmdline\`" liveimg || [ "\$1" != "start" ] || [ -e /.liveimg-configured ] ; then
    exit 0
fi

exists() {
    which \$1 >/dev/null 2>&1 || return
    \$*
}

touch /.liveimg-configured

# mount live image
if [ -b /dev/live ]; then
   mkdir -p /mnt/live
   mount -o ro /dev/live /mnt/live
fi

# configure X
exists system-config-display --noui --reconfig --set-depth=24

# unmute sound card
exists alsaunmute 0 2> /dev/null

# add fedora user with no passwd
useradd -c "Fedora Live" fedora
passwd -d fedora > /dev/null
# disable screensaver locking
gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /apps/gnome-screensaver/lock_enabled false >/dev/null
# set up timed auto-login for after 60 seconds
sed -i -e 's/\[daemon\]/[daemon]\nTimedLoginEnable=true\nTimedLogin=fedora\nTimedLoginDelay=60/' /etc/gdm/custom.conf
if [ -e /usr/share/icons/hicolor/96x96/apps/fedora-logo-icon.png ] ; then
    cp /usr/share/icons/hicolor/96x96/apps/fedora-logo-icon.png /home/fedora/.face
    chown fedora:fedora /home/fedora/.face
    # TODO: would be nice to get e-d-s to pick this one up too... but how?
fi

# turn off firstboot for livecd boots
echo "RUN_FIRSTBOOT=NO" > /etc/sysconfig/firstboot

# don't start yum-updatesd for livecd boots
chkconfig --level 345 yum-updatesd off

# don't start cron/at as they tend to spawn things which are
# disk intensive that are painful on a live image
chkconfig --level 345 crond off
chkconfig --level 345 atd off
chkconfig --level 345 anacron off
chkconfig --level 345 readahead_early off
chkconfig --level 345 readahead_later off

# Stopgap fix for RH #217966; should be fixed in HAL instead
touch /media/.hal-mtab
EOF
chmod 755 /etc/rc.d/init.d/fedora-live
/sbin/restorecon /etc/rc.d/init.d/fedora-live
/sbin/chkconfig --add fedora-live

# save a little bit of space at least...
rm -f /boot/initrd*

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]