diff options
author | Martin Dengler <martin@martindengler.com> | 2009-08-24 10:28:13 (GMT) |
---|---|---|
committer | Martin Dengler <martin@martindengler.com> | 2009-08-24 10:28:13 (GMT) |
commit | e813dfb576a6dc6439dac1facf2c2adc77a210dc (patch) | |
tree | 80c0b7b494ff4c2e4935ce88277302214ff5cef8 /soas-xo.ks | |
parent | d0c03585a49c0e439160e628cdf170b790bad4df (diff) | |
parent | 124bc767b635c2d57750e16b86e17d88f0e26e24 (diff) |
merge branch xo-strawberry with mainline
Diffstat (limited to 'soas-xo.ks')
-rw-r--r-- | soas-xo.ks | 489 |
1 files changed, 489 insertions, 0 deletions
diff --git a/soas-xo.ks b/soas-xo.ks new file mode 100644 index 0000000..2cb44ed --- /dev/null +++ b/soas-xo.ks @@ -0,0 +1,489 @@ +%include soas-sugar.ks +%include soas-aslo-and-content.ks + +##repo --name=olpc-kernel-xo-1 --cost=5 --baseurl=http://dev.laptop.org/~mdengler/xo-1 +#repo --name=olpc-kernel --cost=5 --baseurl=http://dev.laptop.org/~dilinger/olpc-2.6.30-xo1 +repo --name=olpc --cost=3 --baseurl=http://dev.laptop.org/~dsd/xo1-rpms + +%packages --excludedocs --instLangs en:es:ar:pl:pt_BR:pt:it:fr:ht:el:mn:mr_IN:th:am_ET:km_KH:ne_NP:ur_PK:rw:ja:de:tr:te:ps:fa_AF:si + +libertas-usb8388-firmware + +ntpdate +xcompmgr + +# sound backend +-alsa-plugins-pulseaudio +-pulseaudio + +yum-presto + +%end + +%post + + + +################## +# BEGIN olpc.fth +cat > /boot/olpc.fth <<EOF +\ olpc.fth + +: set-path-macros ( -- ) + button-o game-key? if " \boot-alt" else " \boot" then pn-buf place + + " /chosen" find-package if ( phandle ) + " bootpath" rot get-package-property 0= if ( propval$ ) + get-encoded-string ( bootpath$ ) + [char] \ left-parse-string 2nip ( dn$ ) + dn-buf place ( ) + then + then + + " nand" dn-buf count sindex 0>= if + " root=mtd0 rootfstype=jffs2" + else + " root=LABEL=OLPCRoot" + then + " ROOTDEV" \$set-macro +; + +: olpc-fth-boot-me + set-path-macros + " ro \${ROOTDEV} console=ttyS0,115200 console=tty0 fbcon=font:SUN12x22" expand$ to boot-file + " \${DN}\${PN}\vmlinuz" expand$ to boot-device + " \${DN}\${PN}\initrd.img" expand$ to ramdisk + + setup-smbios + unfreeze + dcon-unfreeze + visible + + boot +; + +olpc-fth-boot-me + +EOF + +# END olpc.fth +################## + + + +################## +# BEGIN dcon-unfreeze-failsafe + + +cat > /etc/event.d/dcon-unfreeze-failsafe <<EOF +# this service unfreezes the DCON +# Sugar should do this but a) it might not; and b) we might not be running Sugar +# + + +description "unfreeze DCON" +author "Martin Dengler <martin@martindengler.com>" + +start on started prefdm +stop on stopping prefdm +stop on starting shutdown + +stop on runlevel 0 +stop on runlevel 1 +stop on runlevel 6 + +script +echo 0 > /sys/devices/platform/dcon/freeze +end script +EOF + +chmod a+rx /etc/event.d/dcon-unfreeze-failsafe + +# END dcon-unfreeze-failsafe +################## + + + +CREATE_USERNAME=liveuser + +################## +# BEGIN avoid livesys script at every boot + + +cat >> /etc/fstab <<EOF +/tmp /tmp tmpfs rw 0 0 +none /ofw promfs defaults 0 0 +EOF + +mkdir /ofw + + +/usr/sbin/useradd -m -c "SoaS user" -G audio,wheel $CREATE_USERNAME +/usr/bin/passwd -d $CREATE_USERNAME + +# allow sudo for olpc user +echo "%wheel ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers + +# permanently set %__dbi_cdb rpm macro to work around jffs2's lack of writeable mmap() +mkdir -p /etc/rpm +echo "%__dbi_cdb create private nommap" > /etc/rpm/macros.rpmdb + + +# amend build +sed -i -e 's/SoaS/SoaS-XO/g' /etc/fedora-release + + +# 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 + + +# 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 + + +# nicer console font for our little screen +# FIXME: olpc-configure sets this up too, but it's too late for first boot. +# but perhaps we could fix that so that it gets applied. +echo "SYSFONT=sun12x22" >> /etc/sysconfig/i18n + + +# make sure the fonts are not too big in GNOME +# FIXME: remove when http://dev.laptop.org/ticket/9331 is fixed +gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t float /desktop/gnome/font_rendering/dpi 201 >/dev/null + + +# make sure the fonts are not too big in Sugar +# FIXME: remove when http://dev.laptop.org/ticket/9331 is fixed +echo "Xft.dpi: 201" > /home/$CREATE_USERNAME/.Xresources +chown $CREATE_USERNAME:$CREATE_USERNAME /home/$CREATE_USERNAME/.Xresources + + +# use smaller font size for XO +# FIXME: fix upstream at http://dev.sugarlabs.org/ticket/954 +sed -i -e 's/Sans Serif 10/Sans Serif 7/g' /usr/share/sugar/data/sugar-100.gtkrc + + +# install activities +BUNDLES_DIR=/usr/share/sugar/bundles +ACTIVITIES_DIR=/home/$CREATE_USERNAME/Activities +chown -R $CREATE_USERNAME:$CREATE_USERNAME $BUNDLES_DIR +mkdir /home/$CREATE_USERNAME/Activities +chown -R $CREATE_USERNAME:$CREATE_USERNAME $ACTIVITIES_DIR +cd $BUNDLES_DIR +chmod a+x install-activity.py +for file in *.xo; do + su $CREATE_USERNAME -c "./install-activity.py $file" +done +rm -f install-activity.py + +# execute sample content script and clean up afterwards +chmod a+x copy-to-datastore.py +su $CREATE_USERNAME -c ./copy-to-datastore.py +rm -f *.pdf copy-to-datastore.py + + +# add more activities to the favorites +cat > /usr/share/sugar/data/activities.defaults << FOE +com.garycmartin.Moon +org.laptop.AbiWordActivity +org.laptop.Calculate +org.laptop.Chat +org.laptop.Memorize +org.laptop.Pippy +org.laptop.TurtleArtActivity +org.laptop.WebActivity +org.vpri.EtoysActivity +org.laptop.Oficina +org.laptop.RecordActivity +org.gnome.Labyrinth +org.laptop.physics +vu.lux.olpc.Speak +org.worldwideworkshop.olpc.JigsawPuzzle +FOE + +# END avoid livesys scripts at every boot +################## + + +################## +# BEGIN liveuser .xsession + +cat >> /home/$CREATE_USERNAME/.xsession <<EOF + +# full debugging on +export LM_DEBUG=net +export GABBLE_DEBUG=all +export GABBLE_LOGFILE=/home/$CREATE_USERNAME/.sugar/default/logs/telepathy-gabble.log +export SALUT_DEBUG=all +export SALUT_LOGFILE=/home/$CREATE_USERNAME/.sugar/default/logs/telepathy-salut.log +export GIBBER_DEBUG=all +export PRESENCESERVICE_DEBUG=1 +export SUGAR_LOGGER_LEVEL=debug + +# Uncomment the following line to enable core dumps +#ulimit -c unlimited + +# Uncomment the following line to debug sugar startup problems +#exec xterm + +# If you drop out of this script, the normal olpc-session will proceed +# Uncomment the following line to prevent it +#exit 0 + + +# xcompmgr is disabled in SoaS Strawberry because it is lightly tested +# and known to cause undesired visual artifacts; for example, palettes +# can fail to disappear often enough to be very annoying +# +#(sleep 5 ; xcompmgr ) & + + +# unset dpms and screensaver (blanking) to avoid confusion and +# conflict with olpc-powerd, which is taking care of that type of +# behavior +xset -dpms s off + + +EOF + +# END olpc .xsession +################## + + + +################## +# BEGIN ntpdate + +ntpdate_file=/etc/NetworkManager/dispatcher.d/42-ntpdate +if [ ! -e $ntpdate_file ] ; then + cat > $ntpdate_file <<EOF +#!/bin/bash + +if [ "\$2" = "up" ] ; then + sleep 5 + /usr/sbin/ntpdate 0.pool.ntp.org >> /tmp/ntpdate.log 2>&1 +fi +EOF + +chmod u+rx $ntpdate_file + +fi + +# END ntpdate +################## + + + +################## +# BEGIN smolt + +smolt_file=/etc/NetworkManager/dispatcher.d/43-smolt +if [ ! -e $smolt_file ] ; then + cat > $smolt_file <<EOF +#!/bin/bash + +export PATH=/bin:/usr/bin + +if [ "\$2" = "up" ] ; then + sleep 15 + ( nice /usr/bin/smoltSendProfile -a --submitOnly -b -c || /usr/sbin/smoltSendProfile -a --submitOnly -b ) >> /tmp/smolt.log 2>&1 +fi +EOF + +fi + +chmod u+rx $smolt_file + +# END smolt +################## + + +################## +# BEGIN make sugar default +cat > /home/$CREATE_USERNAME/.dmrc <<EOF +[Desktop] +Layout=olpc +Session=sugar +EOF +# END make sugar default +################## + + + +################## +# BEGIN set sugar power management on +gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s -t bool /desktop/sugar/power/automatic True >/dev/null +# END set sugar power management on +################## + + + +################## +# BEGIN enable serial console + +echo ttyS0 >> /etc/securetty + +cat > /etc/event.d/ttyS0 <<EOF +# ttyS0 - serial console +start on stopped rc2 +start on stopped rc3 +start on stopped rc4 +start on stopped prefdm + +stop on runlevel 0 +stop on runlevel 1 +stop on runlevel 6 + +respawn +exec agetty ttyS0 115200 +EOF + +# END enable serial console +################## + + + +################## +# BEGIN make /var/log/messages a+r so Log activity can see it +chmod a+r /var/log/messages +# END make /var/log/messages a+r so Log activity can see it +################## + + +################## +# BEGIN add yum repos +cat >> /etc/yum.repos.d/sugar.repo << FOE +[sugar] +name=Sugar +failovermethod=priority +baseurl=http://download.sugarlabs.org/soas/repositories/2/ +enabled=1 +gpgcheck=0 +FOE + +cat >> /etc/yum.repos.d/olpc-xo-1.repo << FOE +[olpc-xo-1] +name=OLPC XO-1 +failovermethod=priority +baseurl=http://dev.laptop.org/~mdengler/xo-1 +enabled=1 +gpgcheck=0 +FOE + +cat >> /etc/yum.repos.d/olpc.repo << FOE +[olpc] +name=OLPC XO-1 +failovermethod=priority +baseurl=http://dev.laptop.org/~dsd/xo1-rpms +enabled=1 +gpgcheck=0 +FOE + +# END add yum repos +################## + + +################## +# BEGIN setup services +for service in auditd cpuspeed cups dnsmasq exim firstboot iptables ip6tables irda mdmonitor netfs network nfs nfslock nscd portreserve rpcbind rpcgssd rpcidmapd ; do + /sbin/chkconfig --level 2345 $service off +done + +################## +# BEGIN configure powerd + +#FIXME olpc-utils needs a patch to fix ttyS0 not starting, without which rtcwake is broken +# see http://lists.sugarlabs.org/archive/sugar-devel/2009-August/018378.html +sed -i -e 's/start on stopped prefdm/start on stopped prefdm\n\n#FIXME remove when olpc-utils is patched or\n# http:\/\/lists.sugarlabs.org\/archive\/sugar-devel\/2009-August\/018378.html\n# is otherwise fixed\nstart on runlevel [2345]/' /etc/event.d/ttyS0 + +mv /etc/powerd/powerd.conf /etc/powerd/standard.conf +ln -s soas.conf /etc/powerd/powerd.conf +cat > /etc/powerd/soas.conf <<FOE +# +# Config file for powerd +# +# config_BATTERY_TIME_{DIM,SLEEP,BLANK} +# config_EBOOK_TIME_{DIM,SLEEP,BLANK} +# config_PLUGGED_TIME_{DIM,SLEEP,BLANK} +# These are the time in seconds (measured from last user +# activity) until a) the laptop screen dims, b) the laptop +# sleeps, and c) the laptop screen blanks. All three can be +# scheduled in any order. +# +# config_MAX_SLEEP_BEFORE_SHUTDOWN +# Once the laptop sleeps and the screen is blank, it will shut +# down after this amount of time. +# +# config_ALLOW_SHUTDOWN_WHEN_PLUGGED +# If this is disabled, the laptop will never automatically shut +# down when using external power. (It may still sleep, however.) +# +# config_IDLE_DIM_LEVEL +# Brightness level when the screen is automatically dimmed. Set +# to 15 to prevent dimming. Set to 0 to allow the backlight to +# go off completely. +# +# config_CONFIRM_SECONDS +# How long the shutdown/suspend confirmation splash screen stays +# visible before the laptop automatically suspends. +# +# config_WAKE_ON_WLAN +# Allows wireless to continue operating when the laptop is +# sleeping. Note that the wireless configuration may allow +# shutting down the wireless entirely (e.g., with +# "echo 0 >/sys/power/wlan-enabled"), which may override this +# setting. +# +# config_CPU_IDLE_LIMIT +# If the cpu is idle less than this percentage, then the laptop +# won't suspend. +# +# config_SLEEP_WHEN_LID_CLOSED +# This is normally left enabled, and causes the laptop to go to sleep +# when closed. If disabled, it will stay awake when the lid is +# closed, and will only sleep because of other timeouts. +# +config_BATTERY_TIME_DIM="180" +config_BATTERY_TIME_SLEEP="360" +config_BATTERY_TIME_BLANK="99999" +config_EBOOK_TIME_DIM="99999" +config_EBOOK_TIME_SLEEP="20" +config_EBOOK_TIME_BLANK="99999" +config_PLUGGED_TIME_DIM="99999" +config_PLUGGED_TIME_SLEEP="99999" +config_PLUGGED_TIME_BLANK="99999" +config_IDLE_DIM_LEVEL="0" +config_MESH_DURING_SUSPEND="no" +config_MAX_SLEEP_BEFORE_SHUTDOWN="99999" +config_ALLOW_SHUTDOWN_WHEN_PLUGGED="no" +config_CONFIRM_SECONDS="7" +config_CPU_IDLE_LIMIT="10" +config_SLEEP_WHEN_LID_CLOSED="yes" +FOE + + + +for service in avahi-daemon sshd ; do + /sbin/chkconfig --level 2345 $service on +done +# something triggers prompting, so just turn it off with a big hammer +sed -i -e 's/PROMPT=yes/PROMPT=no/;' /etc/sysconfig/init +# END setup services +################## + +%end + + +################## +# FIXME: remove when it's clear why non-OLPC kernel's being installed +# (and installed second) +%post --nochroot +cp -p ../cache/olpc*/packages/kernel-2.6.30_xo1*.rpm $INSTALL_ROOT +%end +%post +set -x +ls -l /boot +rpm -ivh --force $(/bin/ls /kernel-2.6.30_xo1*.rpm | tail -1) +ls -l /boot +%end +################## |