Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/soas-xo.ks
diff options
context:
space:
mode:
authorMartin Dengler <martin@martindengler.com>2009-08-24 10:28:13 (GMT)
committer Martin Dengler <martin@martindengler.com>2009-08-24 10:28:13 (GMT)
commite813dfb576a6dc6439dac1facf2c2adc77a210dc (patch)
tree80c0b7b494ff4c2e4935ce88277302214ff5cef8 /soas-xo.ks
parentd0c03585a49c0e439160e628cdf170b790bad4df (diff)
parent124bc767b635c2d57750e16b86e17d88f0e26e24 (diff)
merge branch xo-strawberry with mainline
Diffstat (limited to 'soas-xo.ks')
-rw-r--r--soas-xo.ks489
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
+##################