|
|
(31 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
− | ==Custom_Kickstart_file==
| + | <noinclude>[[Category:Testing]]</noinclude> |
− | modified from:
| + | *<big>'''Look at: [[Tutorials/Introduction to the Sugar Interface]]'''</big>. |
− | http://kojipkgs.fedoraproject.org//work/tasks/5707/5925707/fedora-livecd-soas-f110c70.ks
| + | :For annotated screenshots of Sugar Features mentioned here |
| | | |
− | *Modified file:
| + | {{Note/note|NOTE:|This page is linked to the [[fedora:QA:Desktop_validation_results_template#Sugar_.28non-blocking.2C_all_arches.29|Fedora Project wiki QA test template]].}} |
− | #version=DEVEL
| |
− | # Firewall configuration
| |
− | firewall --enabled --service=mdns,presence
| |
− | # X Window System configuration information
| |
− | xconfig --startxonboot
| |
− | repo --name="fedora" --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
| |
− | repo --name="updates" --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
| |
− | # Keyboard layouts
| |
− | keyboard 'us'
| |
− | # System timezone
| |
− | timezone US/Eastern
| |
− | # System language
| |
− | lang en_US.UTF-8
| |
− | # System authorization information
| |
− | auth --useshadow --enablemd5
| |
− | # SELinux configuration
| |
− | selinux --enforcing
| |
| | | |
− | # System services
| + | ==[[Sugar_on_a_Stick/10|'''Sugar on a Stick (SoaS-spin)''']]== |
− | services --disabled="network,sshd" --enabled="NetworkManager"
| + | ===1 - SoaS boots to the (name) selection screen.=== |
− | # Disk partitioning information
| + | :Live version should boot directly to this screen with no login to liveuser first. |
− | part / --fstype="ext4" --size=3072
| + | ::Some versions will boot to the (Click to change color) screen first and require using the (<=) arrow to get to the name screen. |
| + | *f21 Soas will add 2 fields: '''Select gender'''; '''Select age''' then proceed to the F3 Screen. |
| + | :Some School deployments can inquire the gender and age response information. |
| + | ::It is unnecessary to enter information here. |
| | | |
− | %post
| + | ===2 - SoaS installed to hard disk with {{Code|liveinst}} from root terminal,=== |
− | # FIXME: it'd be better to get this installed from a package
| + | : boots to (lightdm or gdm) using the name and password for the user as setup in anaconda. |
− | cat > /etc/rc.d/init.d/livesys << EOF
| + | ===3 - Jabber.sugarlabs.org should connect and display XO "Buddies" === |
− | #!/bin/bash
| + | : ''Network Neighborhood'' screen (F1). |
− | #
| + | : If connected to a wireless network: |
− | # live: Init script for live image
| + | : Wireless access points will be shown as colored circles on the ''Network Neighborhood'' screen (F1). |
− | #
| + | : Collaboration:While connected to an access point, it should be able to connect to another XO via a shared activity (Icons for activity on f1 if present). Click on the icon and drop down menu will show '''Join''' Activity should start showing what the other XO User is sharing. |
− | # chkconfig: 345 00 99
| |
− | # description: Init script for live image.
| |
− | ### BEGIN INIT INFO
| |
− | # X-Start-Before: display-manager
| |
− | ### END INIT INFO
| |
| | | |
− | . /etc/init.d/functions | + | ===4 - When a USB storage device is inserted, it should show up in the Frame.=== |
| + | : One can successfully [[Tutorials/Copy_with_drag_%26_drop|'''drag-drop''']] items in the Journal to a mounted USB . |
| + | : One can successfully install an [http://activities.sugarlabs.org/en-US/sugar/ '''Activity bundle''' ] (xxx.xo file) when dragged from a mounted USB to the Journal. |
| + | : One can successfully unmount the USB device with a right click on the USB device icon in the Frame. |
| | | |
− | if ! strstr "\`cat /proc/cmdline\`" rd.live.image || [ "\$1" != "start" ]; then
| + | ===5 -Functions in My Settings (Sugar control panel).=== |
− | exit 0
| + | :: All functions should work correctly |
− | fi
| + | ::except for Web Sevices which does not work as installed |
| + | ===6 - Applications in the ''Home Screen''=== |
| + | : (F3) circular favourites screen |
| + | :: All applications should start, work, and stop |
| | | |
− | if [ -e /.liveimg-configured ] ; then
| + | ==Sugar-desktop== |
− | configdone=1
| + | ===7 -Sugar-desktop installed in another Desktop=== |
− | fi
| + | :With '''{{Code|dnf install @sugar-desktop sugar-runner }}''' in root terminal |
− | | + | :Start from menu item in DE - Education - sugar |
− | exists() {
| + | :log out/log in to (lightdm or gdm) session "Sugar" should run sugar-desktop full screen. |
− | which \$1 >/dev/null 2>&1 || return
| + | ::(You may have to shutdown/reboot to see sugar listed in gdm or lightdm) |
− | \$*
| + | :sugar-desktop installed from netinstall or DVD should work. |
− | }
| + | ::Note the sugar entity in Education/Sugar (sugar-runner) is different than found when you logout/login to sugar in gdm (different name; color and ssh key for jabber) |
− | | + | {{Note/note|NOTE:|Tests 3 thru 6 should be run on this test case.}} |
− | # Make sure we don't mangle the hardware clock on shutdown
| |
− | ln -sf /dev/null /etc/systemd/system/hwclock-save.service
| |
− | | |
− | livedir="LiveOS"
| |
− | for arg in \`cat /proc/cmdline\` ; do
| |
− | if [ "\${arg##rd.live.dir=}" != "\${arg}" ]; then
| |
− | livedir=\${arg##rd.live.dir=}
| |
− | return
| |
− | fi
| |
− | if [ "\${arg##live_dir=}" != "\${arg}" ]; then
| |
− | livedir=\${arg##live_dir=}
| |
− | return
| |
− | fi
| |
− | done
| |
− | | |
− | # enable swaps unless requested otherwise
| |
− | swaps=\`blkid -t TYPE=swap -o device\`
| |
− | if ! strstr "\`cat /proc/cmdline\`" noswap && [ -n "\$swaps" ] ; then
| |
− | for s in \$swaps ; do
| |
− | action "Enabling swap partition \$s" swapon \$s
| |
− | done
| |
− | fi
| |
− | if ! strstr "\`cat /proc/cmdline\`" noswap && [ -f /run/initramfs/live/\${livedir}/swap.img ] ; then
| |
− | action "Enabling swap file" swapon /run/initramfs/live/\${livedir}/swap.img
| |
− | fi
| |
− | | |
− | mountPersistentHome() {
| |
− | # support label/uuid
| |
− | if [ "\${homedev##LABEL=}" != "\${homedev}" -o "\${homedev##UUID=}" != "\${homedev}" ]; then
| |
− | homedev=\`/sbin/blkid -o device -t "\$homedev"\`
| |
− | fi
| |
− | | |
− | # if we're given a file rather than a blockdev, loopback it
| |
− | if [ "\${homedev##mtd}" != "\${homedev}" ]; then
| |
− | # mtd devs don't have a block device but get magic-mounted with -t jffs2
| |
− | mountopts="-t jffs2"
| |
− | elif [ ! -b "\$homedev" ]; then
| |
− | loopdev=\`losetup -f\`
| |
− | if [ "\${homedev##/run/initramfs/live}" != "\${homedev}" ]; then
| |
− | action "Remounting live store r/w" mount -o remount,rw /run/initramfs/live
| |
− | fi
| |
− | losetup \$loopdev \$homedev
| |
− | homedev=\$loopdev
| |
− | fi
| |
− | | |
− | # if it's encrypted, we need to unlock it
| |
− | if [ "\$(/sbin/blkid -s TYPE -o value \$homedev 2>/dev/null)" = "crypto_LUKS" ]; then
| |
− | echo
| |
− | echo "Setting up encrypted /home device"
| |
− | plymouth ask-for-password --command="cryptsetup luksOpen \$homedev EncHome"
| |
− | homedev=/dev/mapper/EncHome
| |
− | fi
| |
− | | |
− | # and finally do the mount
| |
− | mount \$mountopts \$homedev /home
| |
− | # if we have /home under what's passed for persistent home, then
| |
− | # we should make that the real /home. useful for mtd device on olpc
| |
− | if [ -d /home/home ]; then mount --bind /home/home /home ; fi
| |
− | [ -x /sbin/restorecon ] && /sbin/restorecon /home
| |
− | if [ -d /home/liveuser ]; then USERADDARGS="-M" ; fi
| |
− | }
| |
− | | |
− | findPersistentHome() {
| |
− | for arg in \`cat /proc/cmdline\` ; do
| |
− | if [ "\${arg##persistenthome=}" != "\${arg}" ]; then
| |
− | homedev=\${arg##persistenthome=}
| |
− | return
| |
− | fi
| |
− | done
| |
− | }
| |
− | | |
− | if strstr "\`cat /proc/cmdline\`" persistenthome= ; then
| |
− | findPersistentHome
| |
− | elif [ -e /run/initramfs/live/\${livedir}/home.img ]; then
| |
− | homedev=/run/initramfs/live/\${livedir}/home.img
| |
− | fi
| |
− | | |
− | # if we have a persistent /home, then we want to go ahead and mount it
| |
− | if ! strstr "\`cat /proc/cmdline\`" nopersistenthome && [ -n "\$homedev" ] ; then
| |
− | action "Mounting persistent /home" mountPersistentHome
| |
− | fi
| |
− | | |
− | # make it so that we don't do writing to the overlay for things which
| |
− | # are just tmpdirs/caches
| |
− | mount -t tmpfs -o mode=0755 varcacheyum /var/cache/yum
| |
− | mount -t tmpfs vartmp /var/tmp
| |
− | [ -x /sbin/restorecon ] && /sbin/restorecon /var/cache/yum /var/tmp >/dev/null 2>&1
| |
− | | |
− | if [ -n "\$configdone" ]; then
| |
− | exit 0
| |
− | fi
| |
− | | |
− | # add fedora user with no passwd
| |
− | action "Adding live user" useradd \$USERADDARGS -c "Live System User" liveuser
| |
− | passwd -d liveuser > /dev/null
| |
− | usermod -aG wheel liveuser > /dev/null
| |
− | | |
− | # Remove root password lock
| |
− | passwd -d root > /dev/null
| |
− | | |
− | # turn off firstboot for livecd boots
| |
− | systemctl --no-reload disable firstboot-text.service 2> /dev/null || :
| |
− | systemctl --no-reload disable firstboot-graphical.service 2> /dev/null || :
| |
− | systemctl stop firstboot-text.service 2> /dev/null || :
| |
− | systemctl stop firstboot-graphical.service 2> /dev/null || :
| |
− | | |
− | # don't use prelink on a running live image
| |
− | sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null || :
| |
− | | |
− | # turn off mdmonitor by default
| |
− | systemctl --no-reload disable mdmonitor.service 2> /dev/null || :
| |
− | systemctl --no-reload disable mdmonitor-takeover.service 2> /dev/null || :
| |
− | systemctl stop mdmonitor.service 2> /dev/null || :
| |
− | systemctl stop mdmonitor-takeover.service 2> /dev/null || :
| |
− | | |
− | # don't enable the gnome-settings-daemon packagekit plugin
| |
− | gsettings set org.gnome.settings-daemon.plugins.updates active 'false' || :
| |
− | | |
− | # don't start cron/at as they tend to spawn things which are
| |
− | # disk intensive that are painful on a live image
| |
− | systemctl --no-reload disable crond.service 2> /dev/null || :
| |
− | systemctl --no-reload disable atd.service 2> /dev/null || :
| |
− | systemctl stop crond.service 2> /dev/null || :
| |
− | systemctl stop atd.service 2> /dev/null || :
| |
− | | |
− | # Mark things as configured
| |
− | touch /.liveimg-configured
| |
− | | |
− | # add static hostname to work around xauth bug
| |
− | # https://bugzilla.redhat.com/show_bug.cgi?id=679486
| |
− | echo "localhost" > /etc/hostname
| |
− | | |
− | EOF
| |
− | | |
− | # bah, hal starts way too late
| |
− | cat > /etc/rc.d/init.d/livesys-late << EOF
| |
− | #!/bin/bash
| |
− | #
| |
− | # live: Late init script for live image
| |
− | #
| |
− | # chkconfig: 345 99 01
| |
− | # description: Late init script for live image.
| |
− | | |
− | . /etc/init.d/functions
| |
− | | |
− | if ! strstr "\`cat /proc/cmdline\`" rd.live.image || [ "\$1" != "start" ] || [ -e /.liveimg-late-configured ] ; then
| |
− | exit 0
| |
− | fi
| |
− | | |
− | exists() {
| |
− | which \$1 >/dev/null 2>&1 || return
| |
− | \$*
| |
− | }
| |
− | | |
− | touch /.liveimg-late-configured
| |
− | | |
− | # read some variables out of /proc/cmdline
| |
− | for o in \`cat /proc/cmdline\` ; do
| |
− | case \$o in
| |
− | ks=*)
| |
− | ks="--kickstart=\${o#ks=}"
| |
− | ;;
| |
− | xdriver=*)
| |
− | xdriver="\${o#xdriver=}"
| |
− | ;;
| |
− | esac
| |
− | done
| |
− | | |
− | # if liveinst or textinst is given, start anaconda
| |
− | if strstr "\`cat /proc/cmdline\`" liveinst ; then
| |
− | plymouth --quit
| |
− | /usr/sbin/liveinst \$ks
| |
− | fi
| |
− | if strstr "\`cat /proc/cmdline\`" textinst ; then
| |
− | plymouth --quit
| |
− | /usr/sbin/liveinst --text \$ks
| |
− | fi
| |
− | | |
− | # configure X, allowing user to override xdriver
| |
− | if [ -n "\$xdriver" ]; then
| |
− | cat > /etc/X11/xorg.conf.d/00-xdriver.conf <<FOE
| |
− | Section "Device"
| |
− | Identifier "Videocard0"
| |
− | Driver "\$xdriver"
| |
− | EndSection
| |
− | FOE
| |
− | fi
| |
− | | |
− | EOF
| |
− | | |
− | chmod 755 /etc/rc.d/init.d/livesys
| |
− | /sbin/restorecon /etc/rc.d/init.d/livesys
| |
− | /sbin/chkconfig --add livesys
| |
− | | |
− | chmod 755 /etc/rc.d/init.d/livesys-late
| |
− | /sbin/restorecon /etc/rc.d/init.d/livesys-late
| |
− | /sbin/chkconfig --add livesys-late
| |
− | | |
− | # enable tmpfs for /tmp
| |
− | systemctl enable tmp.mount
| |
− | | |
− | # work around for poor key import UI in PackageKit
| |
− | rm -f /var/lib/rpm/__db*
| |
− | rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
| |
− | echo "Packages within this LiveCD"
| |
− | rpm -qa
| |
− | # Note that running rpm recreates the rpm db files which aren't needed or wanted
| |
− | rm -f /var/lib/rpm/__db*
| |
− | | |
− | # go ahead and pre-make the man -k cache (#455968)
| |
− | /usr/bin/mandb
| |
− | | |
− | # save a little bit of space at least...
| |
− | rm -f /boot/initramfs*
| |
− | # make sure there aren't core files lying around
| |
− | rm -f /core*
| |
− | | |
− | # convince readahead not to collect
| |
− | # FIXME: for systemd
| |
− | | |
− | %end
| |
− | | |
− | %post --nochroot
| |
− | cp $INSTALL_ROOT/usr/share/doc/*-release-*/GPL $LIVE_ROOT/GPL
| |
− | | |
− | # only works on x86, x86_64
| |
− | if [ "$(uname -i)" = "i386" -o "$(uname -i)" = "x86_64" ]; then
| |
− | if [ ! -d $LIVE_ROOT/LiveOS ]; then mkdir -p $LIVE_ROOT/LiveOS ; fi
| |
− | cp /usr/bin/livecd-iso-to-disk $LIVE_ROOT/LiveOS
| |
− | fi
| |
− | %end
| |
− | | |
− | %post
| |
− | | |
− | # Rebuild initrd for Sugar boot screen
| |
− | KERNEL_VERSION=$(rpm -q kernel --qf '%{version}-%{release}.%{arch}\n')
| |
− | /usr/sbin/plymouth-set-default-theme sugar
| |
− | /sbin/dracut -f /boot/initramfs-$KERNEL_VERSION.img $KERNEL_VERSION
| |
− | | |
− | # Note that running rpm recreates the rpm db files which aren't needed or wanted
| |
− | rm -f /var/lib/rpm/__db*
| |
− | | |
− | # Get proper release naming in the control panel
| |
− | #modified from koji ,ks by tg
| |
− | cat >> /boot/olpc_build << EOF
| |
− | Sugar on a Stick 10 (Remix) | |
− | Fedora release 20
| |
− | EOF
| |
− | | |
− | # Add our activities to the favorites
| |
− | cat > /usr/share/sugar/data/activities.defaults << EOF
| |
− | org.laptop.WebActivity
| |
− | org.laptop.HelpActivity
| |
− | org.laptop.Chat
| |
− | org.laptop.sugar.ReadActivity
| |
− | org.laptop.sugar.GetBooksActivity
| |
− | org.laptop.AbiWordActivity
| |
− | org.laptop.TurtleArtActivity
| |
− | org.laptop.Calculate
| |
− | org.laptop.Clock
| |
− | org.laptop.ImageViewerActivity
| |
− | org.laptop.Memorize
| |
− | org.laptop.physics
| |
− | org.laptop.Pippy
| |
− | org.laptop.RecordActivity
| |
− | org.laptop.Oficina
| |
− | org.laptop.StopWatchActivity
| |
− | org.laptop.community.Finance
| |
− | org.laptop.community.TypingTurtle
| |
− | org.laptop.sugar.Jukebox
| |
− | org.gnome.Labyrinth
| |
− | com.laptop.Ruler
| |
− | org.sugarlabs.AbacusActivity
| |
− | org.sugarlabs.IRC
| |
− | org.sugarlabs.InfoSlicer
| |
− | org.sugarlabs.PortfolioActivity
| |
− | org.sugarlabs.VisualMatchActivity
| |
− | com.garycmartin.Moon
| |
− | mulawa.Countries
| |
− | tv.alterna.Clock
| |
− | vu.lux.olpc.Maze
| |
− | vu.lux.olpc.Speak
| |
− | EOF
| |
− | | |
− | cat > /etc/sysconfig/desktop <<EOF
| |
− | PREFERRED=/usr/bin/sugar
| |
− | DISPLAYMANAGER=/usr/sbin/lightdm
| |
− | EOF
| |
− | | |
− | # set up lightdm autologin
| |
− | sed -i 's/^#autologin-user=.*/autologin-user=liveuser/' /etc/lightdm/lightdm.conf
| |
− | sed -i 's/^#autologin-user-timeout=.*/autologin-user-timeout=0/' /etc/lightdm/lightdm.conf
| |
− | | |
− | # Don't use the default system user (in SoaS liveuser) as nick name
| |
− | gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t string /desktop/sugar/user/default_nick disabled >/dev/null
| |
− | | |
− | # Disable the logout menu item in Sugar
| |
− | gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /desktop/sugar/show_logout false >/dev/null
| |
− | | |
− | # Enable Sugar power management
| |
− | gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /desktop/sugar/power/automatic True >/dev/null
| |
− | | |
− | cat >> /etc/rc.d/init.d/livesys << EOF
| |
− | # set up lightdm autologin
| |
− | sed -i 's/^#autologin-user=.*/autologin-user=liveuser/' /etc/lightdm/lightdm.conf
| |
− | sed -i 's/^#autologin-user-timeout=.*/autologin-user-timeout=0/' /etc/lightdm/lightdm.conf
| |
− | #sed -i 's/^#show-language-selector=.*/show-language-selector=true/' /etc/lightdm/lightdm-gtk-greeter.conf
| |
− | | |
− | # set Sugar as default session, otherwise login will fail
| |
− | sed -i 's/^#user-session=.*/user-session=sugar/' /etc/lightdm/lightdm.conf
| |
− | EOF
| |
− | | |
− | cat >> /etc/rc.d/init.d/livesys-late << EOF
| |
− | | |
− | # disable screensaver locking
| |
− | cat >> /usr/share/glib-2.0/schemas/org.gnome.desktop.screensaver.gschema.override << FOE
| |
− | [org.gnome.desktop.screensaver]
| |
− | lock-enabled=false
| |
− | FOE
| |
− | | |
− | # and hide the lock screen option
| |
− | cat >> /usr/share/glib-2.0/schemas/org.gnome.desktop.lockdown.gschema.override << FOE
| |
− | [org.gnome.desktop.lockdown]
| |
− | disable-lock-screen=true
| |
− | FOE
| |
− | | |
− | # rebuild schema cache with any overrides we installed
| |
− | glib-compile-schemas /usr/share/glib-2.0/schemas
| |
− | | |
− | EOF
| |
− | | |
− | chmod 755 /etc/rc.d/init.d/livesys-late
| |
− | /sbin/restorecon /etc/rc.d/init.d/livesys-late
| |
− | /sbin/chkconfig --add livesys-late
| |
− | | |
− | %end
| |
− | | |
− | %packages
| |
− | @anaconda-tools
| |
− | @base-x
| |
− | @core
| |
− | @guest-desktop-agents
| |
− | @hardware-support
| |
− | @input-methods
| |
− | @input-methods
| |
− | @standard
| |
− | @sugar-desktop
| |
− | alsa-plugins-pulseaudio
| |
− | alsa-utils
| |
− | anaconda
| |
− | gstreamer-plugins-espeak
| |
− | gstreamer1-plugins-bad-free
| |
− | gstreamer1-plugins-base
| |
− | gstreamer1-plugins-good
| |
− | kernel
| |
− | livecd-tools
| |
− | memtest86+
| |
− | pulseaudio
| |
− | pulseaudio-utils
| |
− | qemu-guest-agent
| |
− | rp-pppoe
| |
− | sugar-cp-updater
| |
− | sugar-logos
| |
− | #next 2 Added by TG
| |
− | lightdm
| |
− | -gdm
| |
− | -@dial-up
| |
− | -@fonts
| |
− | -@gnome-desktop
| |
− | -@multimedia
| |
− | -@printing
| |
− | -PackageKit
| |
− | -autofs
| |
− | -coolkey
| |
− | -eekboard-libs
| |
− | -firefox
| |
− | -foomatic
| |
− | -glx-utils
| |
− | -hpijs
| |
− | -hplip
| |
− | -icedtea-web
| |
− | -isdn4k-utils
| |
− | -libfprint
| |
− | -mpage
| |
− | -nmap-ncat
| |
− | -numactl
| |
− | -open-vm-tools*
| |
− | -openbox
| |
− | -plymouth-system-theme
| |
− | -plymouth-theme-charge
| |
− | -ql2100-firmware
| |
− | -ql2200-firmware
| |
− | -ql23xx-firmware
| |
− | -rdate
| |
− | -rdist
| |
− | -realmd
| |
− | -sane-backends
| |
− | -sane-backends-drivers-scanners
| |
− | -sox
| |
− | -sugar-ruler
| |
− | -wget
| |
− | -xsane
| |
− | -xsane-gimp
| |
− | -yp-tools
| |
− | -ypbind
| |
− | | |
− | %end
| |