This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Fedora 7 based Systemtap LiveCD for i686 machines
- From: William Cohen <wcohen at redhat dot com>
- To: SystemTAP <systemtap at sources dot redhat dot com>
- Date: Wed, 06 Jun 2007 18:02:17 -0400
- Subject: 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*