[Fedora-spins] [spin-kickstarts/arm] ARM: add samples of supporting a couple of other arm systems

Dennis Gilmore ausil at fedoraproject.org
Fri Jun 15 00:40:05 UTC 2012


commit f9adcf3fd82e13b1c4f5a6fd5932ec6cdc85fd93
Author: Dennis Gilmore <dennis at ausil.us>
Date:   Thu Jun 14 19:39:10 2012 -0500

    ARM: add samples of supporting a couple of other arm systems

 fedora-arm-beagle-xfce.ks     |   51 ++++
 fedora-arm-panda-xfce-flat.ks |  517 +++++++++++++++++++++++++++++++++++++++++
 fedora-arm-tegra-xfce.ks      |   32 +++
 3 files changed, 600 insertions(+), 0 deletions(-)
---
diff --git a/fedora-arm-beagle-xfce.ks b/fedora-arm-beagle-xfce.ks
new file mode 100644
index 0000000..9d97ac1
--- /dev/null
+++ b/fedora-arm-beagle-xfce.ks
@@ -0,0 +1,51 @@
+
+part /boot/efi --fstype=efi --grow --maxsize=50 --size=20
+%include fedora-arm-base.ks
+%include fedora-xfce-base.ks
+
+
+
+%packages
+#for panda we only want to have the omap kernel installed
+-kernel
+-kernel-highbank
+-kernel-imx
+-kernel-tegra
+kernel-omap
+uboot-beagle
+
+%end
+
+%post
+# install the moodloader bits into the vfat partition at the start of the disk
+# MLO file must be the first thing written to the partition
+cp /usr/share/uboot-beagle/MLO /boot/efi/MLO
+sync
+cp /usr/share/uboot-beagle/u-boot.img /boot/efi/u-boot.img
+
+# setup uEnv.txt on efi  partition to load uEnv.txt on /boot
+cat >> /boot/efi/uEnv.txt << EOF
+bootenv=/uEnv.txt
+loaduimage=ext2load mmc 0:2 ${loadaddr} ${bootenv}
+mmcboot=echo Running script from mmc ...; source ${loadaddr}
+EOF
+
+# setup uEnv.txt on /boot to load kernel
+echo >> /boot/uEnv.txt << EOF
+bootfile=/uImage
+bootinitrd=/uInitrd
+boot=bootm
+console=ttyO2,115200n8
+address_image=0x80300000
+address_initrd=0x81600000
+mmcroot=LABEL=%ROOTFSID% ro
+mmcargs=setenv bootargs console=${console} root=${mmcroot} quiet rootwait rhgb
+loaduimage=run xyz_mmcboot; run mmcargs; ${boot} ${address_image} ${address_initrd}
+xyz_load_image=ext2load mmc 0:2 ${address_image} ${bootfile}
+xyz_load_initrd=ext2load mmc 0:2 ${address_initrd} ${bootinitrd}
+xyz_mmcboot=run xyz_load_image; run xyz_load_initrd; echo Booting from mmc ...
+EOF
+
+sed -i -e "|%ROOTFSID%|$(grep ' / ' /etc/fstab |sed -e 's| .*$||g')|g" /boot/uEnv.txt
+
+%end
diff --git a/fedora-arm-panda-xfce-flat.ks b/fedora-arm-panda-xfce-flat.ks
new file mode 100644
index 0000000..88c6276
--- /dev/null
+++ b/fedora-arm-panda-xfce-flat.ks
@@ -0,0 +1,517 @@
+#version=DEVEL
+# Firewall configuration
+firewall --enabled --service=mdns
+# 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
+# System authorization information
+auth --useshadow --enablemd5
+# System keyboard
+keyboard us
+# System language
+lang en_US.UTF-8
+# SELinux configuration
+selinux --enforcing
+# Installation logging level
+logging --level=info
+
+# System services
+services --disabled="network,sshd" --enabled="NetworkManager"
+# System timezone
+timezone  US/Eastern
+# Disk partitioning information
+part /boot/efi --fstype="efi" --grow --maxsize=20 --size=20
+part / --fstype="ext4" --size=3072
+
+%post
+# FIXME: it'd be better to get this installed from a package
+cat > /etc/rc.d/init.d/livesys << 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" ]; then
+    exit 0
+fi
+
+if [ -e /.liveimg-configured ] ; then
+    configdone=1
+fi
+
+exists() {
+    which \$1 >/dev/null 2>&1 || return
+    \$*
+}
+
+touch /.liveimg-configured
+
+# 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##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 tmp /tmp
+mount -t tmpfs vartmp /var/tmp
+[ -x /sbin/restorecon ] && /sbin/restorecon /var/cache/yum /tmp /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
+
+# 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 || :
+
+# and hack so that we eject the cd on shutdown if we're using a CD...
+if strstr "\`cat /proc/cmdline\`" CDLABEL= ; then
+  cat >> /sbin/halt.local << FOE
+#!/bin/bash
+# XXX: This often gets stuck during shutdown because /etc/init.d/halt
+#      (or something else still running) wants to read files from the block\
+#      device that was ejected.  Disable for now.  Bug #531924
+# we want to eject the cd on halt, but let's also try to avoid
+# io errors due to not being able to get files...
+#cat /sbin/halt > /dev/null
+#cat /sbin/reboot > /dev/null
+#/usr/sbin/eject -p -m \$(readlink -f /run/initramfs/livedev) >/dev/null 2>&1
+#echo "Please remove the CD from your drive and press Enter to finish restarting"
+#read -t 30 < /dev/console
+FOE
+chmod +x /sbin/halt.local
+fi
+
+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\`" liveimg || [ "\$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
+
+# 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
+# xfce configuration
+
+# create /etc/sysconfig/desktop (needed for installation)
+
+cat > /etc/sysconfig/desktop <<EOF
+PREFERRED=/usr/bin/startxfce4
+EOF
+
+cat >> /etc/rc.d/init.d/livesys << EOF
+
+mkdir -p /home/liveuser/.config/xfce4
+
+cat > /home/liveuser/.config/xfce4/helpers.rc << FOE
+MailReader=sylpheed-claws
+FileManager=Thunar
+FOE
+
+# disable screensaver locking (#674410)
+cat >> /home/liveuser/.xscreensaver << FOE
+mode:           off
+lock:           False
+dpmsEnabled:    False
+FOE
+
+# deactivate xfconf-migration (#683161)
+rm -f /etc/xdg/autostart/xfconf-migration-4.6.desktop || :
+
+# deactivate xfce4-panel first-run dialog (#693569)
+mkdir -p /home/liveuser/.config/xfce4/xfconf/xfce-perchannel-xml
+cp /etc/xdg/xfce4/panel/default.xml /home/liveuser/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
+
+# set up auto-login
+cat >> /etc/gdm/custom.conf << FOE
+[daemon]
+AutomaticLoginEnable=True
+AutomaticLogin=liveuser
+FOE
+
+# Show harddisk install on the desktop
+sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop
+mkdir /home/liveuser/Desktop
+cp /usr/share/applications/liveinst.desktop /home/liveuser/Desktop
+
+# this goes at the end after all other changes. 
+chown -R liveuser:liveuser /home/liveuser
+restorecon -R /home/liveuser
+
+EOF
+
+%end
+
+%post
+# install the moodloader bits into the vfat partition at the start of the disk
+# MLO file must be the first thing written to the partition
+cp /usr/share/uboot-panda/MLO /boot/uboot/MLO
+sync
+cp /usr/share/uboot-panda/u-boot.img /boot/uboot/u-boot.img
+
+# setup uEnv.txt on efi  partition to load uEnv.txt on /boot
+cat >> /boot/uboot/uEnv.txt << EOF
+bootenv=/boot/uEnv.txt
+loaduimage=ext2load mmc 0:2 ${loadaddr} ${bootenv}
+mmcboot=echo Running script from mmc ...; source ${loadaddr}
+EOF
+
+# setup uEnv.txt on /boot to load kernel
+echo >> /boot/uEnv.txt << EOF
+bootfile=/boot/uImage
+bootinitrd=/boot/uInitrd
+boot=bootm
+console=ttyO2,115200n8
+address_image=0x80300000
+address_initrd=0x81600000
+mmcroot=LABEL=%ROOTFSID% ro
+mmcargs=setenv bootargs console=${console} root=${mmcroot} quiet rootwait rhgb
+loaduimage=run xyz_mmcboot; run mmcargs; ${boot} ${address_image} ${address_initrd}
+xyz_load_image=ext2load mmc 0:2 ${address_image} ${bootfile}
+xyz_load_initrd=ext2load mmc 0:2 ${address_initrd} ${bootinitrd}
+xyz_mmcboot=run xyz_load_image; run xyz_load_initrd; echo Booting from mmc ...
+EOF
+
+sed -i -e "|%ROOTFSID%|$(grep ' / ' /etc/fstab |sed -e 's| .*$||g')|g" /boot/uEnv.txt
+
+%end
+
+%packages
+ at admin-tools
+ at base
+ at base-x
+ at core
+ at dial-up
+ at fonts
+ at hardware-support
+ at input-methods
+ at printing
+ at xfce-desktop
+ConsoleKit-x11
+NetworkManager-openvpn
+NetworkManager-pptp
+NetworkManager-vpnc
+abiword
+adwaita-cursor-theme
+adwaita-gtk2-theme
+adwaita-gtk3-theme
+alsa-plugins-pulseaudio
+asunder
+catfish
+cheese
+claws-mail
+claws-mail-plugins-archive
+claws-mail-plugins-att-remover
+claws-mail-plugins-attachwarner
+claws-mail-plugins-bogofilter
+claws-mail-plugins-fetchinfo
+claws-mail-plugins-mailmbox
+claws-mail-plugins-newmail
+claws-mail-plugins-notification
+claws-mail-plugins-pgp
+claws-mail-plugins-rssyl
+claws-mail-plugins-smime
+claws-mail-plugins-spam-report
+claws-mail-plugins-tnef
+claws-mail-plugins-vcalendar
+epdfview
+fedora-icon-theme
+firefox
+fpaste
+galculator
+geany
+gigolo
+gnome-bluetooth
+gnumeric
+gparted
+ibus-pinyin-db-android
+icedtea-web
+irssi
+isomd5sum
+kernel-omap
+liferea
+memtest86+
+metacity
+midori
+mutt
+ntfs-3g
+parole
+pavucontrol
+pidgin
+powertop
+pragha
+remmina
+remmina-plugins-rdp
+remmina-plugins-vnc
+ristretto
+rtorrent
+seahorse
+setroubleshoot
+thunar-media-tags-plugin
+transmission
+uboot-panda
+vim-enhanced
+wget
+xdg-user-dirs-gtk
+xfburn
+xfce4-battery-plugin
+xfce4-cellmodem-plugin
+xfce4-clipman-plugin
+xfce4-cpugraph-plugin
+xfce4-datetime-plugin
+xfce4-dict-plugin
+xfce4-diskperf-plugin
+xfce4-eyes-plugin
+xfce4-fsguard-plugin
+xfce4-genmon-plugin
+xfce4-mailwatch-plugin
+xfce4-mount-plugin
+xfce4-netload-plugin
+xfce4-notes-plugin
+xfce4-places-plugin
+xfce4-quicklauncher-plugin
+xfce4-screenshooter-plugin
+xfce4-sensors-plugin
+xfce4-smartbookmark-plugin
+xfce4-systemload-plugin
+xfce4-taskmanager
+xfce4-time-out-plugin
+xfce4-timer-plugin
+xfce4-verve-plugin
+xfce4-weather-plugin
+xfce4-websearch-plugin
+xfce4-xfswitch-plugin
+xfce4-xkb-plugin
+xfwm4-themes
+xscreensaver
+yum-utils
+-acpid
+-anaconda
+-aspell-*
+-autofs
+-coolkey
+-efibootmgr
+-gimp-help
+-gnome-disk-utility
+-grub-efi
+-grub2
+-hpijs
+-hplip
+-ibus-pinyin-db-open-phrase
+-isdn4k-utils
+-kernel
+-kernel-highbank
+-kernel-imx
+-kernel-tegra
+-mpage
+-numactl
+-policycoreutils-gui
+-ql2100-firmware
+-ql2200-firmware
+-ql23xx-firmware
+-ql2400-firmware
+-samba-client
+-sane-backends
+-sox
+-system-config-boot
+-system-config-lvm
+-system-config-network
+-system-config-rootpassword
+-xsane
+-xsane-gimp
+
+%end
diff --git a/fedora-arm-tegra-xfce.ks b/fedora-arm-tegra-xfce.ks
new file mode 100644
index 0000000..1ebfa08
--- /dev/null
+++ b/fedora-arm-tegra-xfce.ks
@@ -0,0 +1,32 @@
+
+%include fedora-arm-base.ks
+%include fedora-xfce-base.ks
+
+
+
+%packages
+#for panda we only want to have the omap kernel installed
+-kernel
+-kernel-highbank
+-kernel-imx
+-kernel-omap
+kernel-tegra
+
+%end
+
+%post
+
+# setup boot.scr
+cat >> /boot/boot.scr.in << EOF
+
+setenv bootargs ro root=%ROOTFSID% rootwait rhgb quiet
+ext2load mmc 0:1 4080000 /uImage
+ext2load mmc 0:1 4400000 /uInitrd
+bootm 4080000 4400000
+EOF
+
+sed -i -e "|%ROOTFSID%|$(grep ' / ' /etc/fstab |sed -e 's| .*$||g')|g" /boot/boot.scr.in
+
+mkimage -A arm -O linux -a 0 -e 0 -T script -C none -n "Fedora Boot Script" -d /boot/boot.scr.in /boot/boot.scr
+
+%end


More information about the spins mailing list