Open main menu

CDOT Wiki β

Pidora kickstart

Pidora-horizontal.png

Pidora Kickstart

# Build a Raspberry Pi - XFCE install using livemedia-creator

# Note this image will only boot if you reformat the boot partition to vfat
# you can manually reformat the boot partition after image creation or use the script provided below
#
# Reformat boot partition script:
# http://scotland.proximity.on.ca/raspberrypi/test-releases/rpfr18v6/latest/revfat


lang en_US.UTF-8
keyboard us
timezone --utc US/Eastern
auth --useshadow --enablemd5
selinux --disabled
firewall --enabled --service=mdns,ssh
network --bootproto=dhcp --device=eth0 --onboot=on --activate --hostname=raspi.local
services --enabled=NetworkManager,sshd,ntpd --disabled=network


# Only use this with Anaconda for serial console installs, not with livemedia-creator.
# Use this for serial console-only installs
#skipx

# Set a default root password for Rasbberry Pi
rootpw --plaintext raspberrypi

# Repositories
# apparently we must use 'url' for the install repo for livemedia-creator

url --url="http://japan.proximity.on.ca/kojifiles/mash/pidora-18-latest/pidora-18/armhfp/os/"

repo --name=pidora --ignoregroups=true  --baseurl="http://japan.proximity.on.ca/kojifiles/mash/pidora-18-latest/pidora-18/armhfp/os/"


bootloader --location=boot
zerombr
clearpart --all
## Need to create logical volume groups first then partition

part /boot --size 50 --fstype ext4 --label=boot --asprimary
part swap --size 255 --label=swap
part / --size 2000 --fstype ext4 --label=rootfs --asprimary
#
# Add all the packages after the base packages
#
%packages --ignoremissing --instLangs=en

# Exclueded packages
-fedora-release
-fedora-release-notes
-fedora-logos
-generic-release
-system-config-date
-kernel
-xorg-x11-drv-ati
-xorg-x11-drv-cirrus
-xorg-x11-drv-geode
-xorg-x11-drv-intel
-xorg-x11-drv-mga
-xorg-x11-drv-nouveau
-xorg-x11-drv-omap
-xorg-x11-drv-qxl
-xorg-x11-drv-vesa
-xorg-x11-drv-vmware
-smolt
-smolt-firstboot
-kernel-kirkwood
-kernel-imx
-plymouth
-abrt*
-orage
-nfs-utils
-talk
-yp-tools
-ypbind
-coolkey
-system-config-keyboard
-system-config-keyboard-base
-irqbalance
-pcmciautils
-samba

# None of the selected langs should need these
-anthy*
-ibus*
-iok
-im-chooser
-imsettings*
-kasumi
# Apparently the whole system collapses without libthai, how stupid is that...
# -libthai
-m17n*
-scim*

# Prevent fonts from growing out of control
-abyssinica*
-cjkuni*
-ipa-pgothic*
-jomolhari*
-kacst*
-khmeros*
-lklug*
-lohit*
-paktype*
-sil-padauk*
-smc-fonts*
-smc-meera*
-stix-fonts
-thai*
-un-core*
-vlgothic*

#Added Packages
abiword
mc

# Complete package set
abattis-cantarell-fonts
accountsservice
accountsservice-libs
acl
adwaita-cursor-theme
adwaita-gtk2-theme
adwaita-gtk3-theme
aic94xx-firmware
albatross-gtk2-theme
albatross-gtk3-theme
albatross-xfwm4-theme
alsa-firmware
alsa-lib
alsa-tools-firmware
anaconda-yum-plugins
arj
arm-mem
at
atk
atmel-firmware
at-spi2-atk
at-spi2-core
attr
audit
audit-libs
audit-libs-python
authconfig
authconfig-gtk
avahi-autoipd
avahi-glib
avahi-libs
b43-fwcutter
b43-openfwwf
basesystem
bash
bash-completion
bc
bind-libs
bind-libs-lite
bind-license
bind-utils
binutils
bluebird-gtk2-theme
bluebird-gtk3-theme
bluebird-xfwm4-theme
blueman
bluez
bluez-libs
bridge-utils
btrfs-progs
bzip2
bzip2-libs
ca-certificates
cairo
cairo-gobject
c-ares
cdparanoia-libs
celt
checkpolicy
chkconfig
chrony
cifs-utils
cloog-ppl
colord-libs
comps-extras
ConsoleKit
ConsoleKit-libs
ConsoleKit-x11
control-center-filesystem
coreutils
cpio
cpp
cracklib
cracklib-dicts
crda
createrepo
cronie
cronie-anacron
crontabs
cryptsetup
cryptsetup-libs
cups-libs
curl
cyrus-sasl
cyrus-sasl-gssapi
cyrus-sasl-lib
cyrus-sasl-plain
dbus
dbus-glib
dbus-libs
dbus-python
dbus-x11
dconf
dejavu-fonts-common
dejavu-sans-fonts
dejavu-sans-mono-fonts
dejavu-serif-fonts
deltarpm
desktop-backgrounds-basic
desktop-backgrounds-compat
desktop-backgrounds-gnome
desktop-file-utils
device-mapper
device-mapper-event
device-mapper-event-libs
device-mapper-libs
dhclient
dhcp-common
dhcp-libs
diffutils
dmraid
dmraid-events
dnsmasq
dos2unix
dosfstools
dump
e2fsprogs
e2fsprogs-libs
ebtables
ed
elfutils-libelf
emacs-filesystem
enchant
espeak
ethtool
exo
expat
fedora-icon-theme
file
file-libs
filesystem
findutils
finger
fipscheck
fipscheck-lib
firewall-config
firewalld
firstboot
flac
fontconfig
fontpackages-filesystem
fpaste
fprintd
fprintd-pam
freetype
ftp
fxload
gamin
garcon
gawk
gcc
GConf2
gcr
gdbm
gdisk
gdk-pixbuf2
gdm
geoclue
glib2
glibc
glibc-common
glibc-devel
glibc-headers
glib-networking
gmp
gnome-bluetooth-libs
gnome-desktop3
gnome-icon-theme
gnome-icon-theme-legacy
gnome-icon-theme-symbolic
gnome-keyring
gnome-keyring-pam
gnome-python2
gnome-python2-bonobo
gnome-python2-canvas
gnome-python2-gconf
gnome-python2-gnome
gnome-python2-gnomevfs
gnome-session
gnome-settings-daemon
gnome-themes
gnome-themes-standard
gnome-vfs2
gnupg2
gnutls
gobject-introspection
gpgme
gedit
gedit-plugins
#gpg-pubkey
grep
greybird-gtk2-theme
greybird-gtk3-theme
greybird-xfce4-notifyd-theme
greybird-xfwm4-theme
groff-base
gsettings-desktop-schemas
gsm
gstreamer
gstreamer1
gstreamer-plugins-base
gstreamer-tools
gtk2
gtk2-engines
gtk3
gtk-murrine-engine
gtk-unico-engine
gtk-xfce-engine
guake
gvfs
gvfs-obexftp
gzip
harfbuzz
hesiod
hicolor-icon-theme
hostname
hunspell
hunspell-en
hunspell-en-GB
hunspell-en-US
hwdata
ibus-libs
info
initscripts
ip-info
iproute
iprutils
iptables
iptables-services
iptstate
iputils
irda-utils
iso-codes
ivtv-firmware
iw
iwl1000-firmware
iwl100-firmware
iwl105-firmware
iwl135-firmware
iwl2000-firmware
iwl2030-firmware
iwl3945-firmware
iwl4965-firmware
iwl5000-firmware
iwl5150-firmware
iwl6000-firmware
iwl6000g2a-firmware
iwl6000g2b-firmware
iwl6050-firmware
jack-audio-connection-kit
jack-audio-connection-kit-example-clients
jasper-libs
jbigkit-libs
joe
js
json-c
json-glib
jwhois
kbd
kernel-headers
keyutils
keyutils-libs
kmod
kmod-libs
kpartx
krb5-libs
kbd-misc
krb5-workstation
lcms2
lcms-libs
leafpad
less
lftp
libacl
libarchive
libart_lgpl
libassuan
libasyncns
libatasmart
libattr
libbasicobjects
libbcm2835
libblkid
libbluray
libbonobo
libbonoboui
libbsd
libcanberra
libcanberra-gtk2
libcanberra-gtk3
libcap
libcap-ng
libcdio
libcgroup
libcollection
libcom_err
libcroco
libcurl
libdaemon
libdb
libdb4
libdb-utils
libdhash
libdmx
libdrm
libedit
libee
liberation-fonts-common
liberation-mono-fonts
liberation-narrow-fonts
liberation-sans-fonts
liberation-serif-fonts
libertas-usb8388-firmware
libestr
libexif
libffi
libfontenc
libfprint
libgcc
libgcrypt
libglade2
libgnome
libgnomecanvas
libgnome-keyring
libgnomeui
libgomp
libgpg-error
libgsf
libgudev1
libical
libICE
libicu
libIDL
libidn
libimobiledevice
libini_config
libipa_hbac
libjpeg-turbo
libldb
liblognorm
libmcpp
libmicrohttpd
libmnl
libmodman
libmount
libmpc
libnetfilter_conntrack
libnfnetlink
libnl
libnl3
libnm-gtk
libnotify
libogg
libopenraw
libopenraw-gnome
libpath_utils
libpcap
libpciaccess
libpipeline
libplist
libpng
libproxy
libpwquality
libref_array
libreport
libreport-filesystem
libreport-gtk
libreport-newt
libreport-python
librsvg2
libsamplerate
libsecret
libselinux
libselinux-python
libselinux-utils
libsemanage
libsemanage-python
libsepol
libSM
libsndfile
libsoup
libss
libssh2
libsss_idmap
libstdc++
libsysfs
libtalloc
libtasn1
libtdb
libtevent
libthai
libtheora
libtiff
libtool-ltdl
libudisks2
libusb
libusbx
libuser
libuser-python
libutempter
libuuid
libvisual
libvorbis
libwacom
libwacom-data
libwayland-client
libwayland-server
libwbclient
libwnck
libX11
libX11-common
libXau
libxcb
libXcomposite
libXcursor
libXdamage
libXdmcp
libXevie
libXext
libxfce4ui
libxfce4util
libxfcegui4
libXfixes
libXfont
libXft
libXi
libXinerama
libxkbfile
libxklavier
libxml2
libxml2-python
libXmu
libXpm
libXrandr
libXrender
libXres
libXScrnSaver
libxslt
libXt
libXtst
libXv
libXxf86dga
libXxf86misc
libXxf86vm
libyaml
lightdm
lightdm-gobject
lightdm-gtk
linux-atm-libs
linux-firmware
llvm-libs
logrotate
lsof
lua
lzo
m4
mailcap
mailx
make
man-db
man-pages
mcpp
mdadm
mesa-dri-drivers
mesa-dri-filesystem
mesa-libEGL
mesa-libgbm
mesa-libGL
mesa-libglapi
metacity
midori
mlocate
mobile-broadband-provider-info
mpfr
mtdev
mtools
mtr
nled
nano
ncurses
ncurses-base
ncurses-libs
NetworkManager
network-manager-applet
NetworkManager-glib
NetworkManager-openvpn
NetworkManager-pptp
NetworkManager-vpnc
newt
newt-python
nm-connection-editor
nodoka-filesystem
nortc
notification-daemon
notify-python
nspr
nss
nss-myhostname
nss-softokn
nss-softokn-freebl
nss-sysinit
nss-tools
nss-util
ntfs-3g
ntfsprogs
ntpdate
ntsysv
obex-data-server
openjpeg-libs
openldap
openobex
openssh
openssh-askpass
openssh-clients
openssh-server
openssl
openssl-libs
openvpn
orage
ORBit2
orc
p11-kit
PackageKit
PackageKit-glib
PackageKit-yum
PackageKit-yum-plugin
pam
pam_krb5
pam_pkcs11
pango
parted
passwd
passwdqc
passwdqc-lib
pciutils
pciutils-libs
pcre
pcsc-lite-libs
perl
perl-Carp
perl-Device-BCM2835
perl-Filter
perl-libs
perl-macros
perl-Module-Pluggable
perl-parent
perl-PathTools
perl-Pod-Escapes
perl-Pod-Parser
perl-Pod-Perldoc
perl-Pod-Simple
perl-Scalar-List-Utils
perl-Socket
perl-threads
perl-threads-shared
perl-URI
pico
pi3d
pinentry
pinentry-gtk
pinfo
pixman
pkcs11-helper
pkgconfig
pm-utils
policycoreutils
policycoreutils-devel
policycoreutils-python
polkit
polkit-gnome
poppler
poppler-data
poppler-glib
popt
ppl
ppl-pwl
ppp
pptp
prelink
preupgrade
procmail
procps-ng
psacct
psmisc
pth
pulseaudio
pulseaudio-gdm-hooks
pulseaudio-libs
pulseaudio-libs-glib2
pycairo
pygobject2
pygobject3
pygobject3-base
pygpgme
pygtk2
pygtk2-libglade
pyliblzma
pyorbit
pytalloc
python
python3
python-chardet
python-decorator
python-deltarpm
python-ethtool
python-iniparse
python-IPy
python-kitchen
python-libs
python-meh
python-pexpect
python-pwquality
python-pycurl
python-slip
python-slip-dbus
python-urlgrabber
python-rpi.gpio
pyxdg
ql2400-firmware
ql2500-firmware
qrencode-libs
quota
quota-nls
raspberrypi-config
pidora-logos
raspberrypi-firstboot-mod
raspberrypi-headless
raspberrypi-kernel
pidora-release
raspberrypi-release-notes
raspberrypi-rootfs-resize
raspberrypi-system-config-date
raspberrypi-system-config-keyboard
raspberrypi-system-config-keyboard-base
raspberrypi-vc-demo-source
raspberrypi-vc-firmware
raspberrypi-vc-libs
raspberrypi-vc-libs-devel
raspberrypi-vc-static
raspberrypi-vc-utils
raspi-splash
rdate
rdist
readline
recordmydesktop
redhat-menus
rmt
rng-tools
rootfiles
rpm
rpm-build-libs
rpm-libs
rpm-python
rsh
rsync
rsyslog
rtkit
ruby
rubygem-bigdecimal
rubygem-io-console
rubygem-json
rubygem-rdoc
rubygems
ruby-irb
ruby-libs
samba-libs
sed
selinux-policy
selinux-policy-devel
selinux-policy-doc
selinux-policy-targeted
sendmail
setools-libs
setools-libs-python
setroubleshoot
setroubleshoot-plugins
setroubleshoot-server
setserial
setup
setuptool
sg3_utils-libs
sgpio
shadow-utils
shared-mime-info
sl
slang
smartmontools
smp_utils
smp_utils-libs
sos
sound-theme-freedesktop
speex
spherical-cow-backgrounds-gnome
spherical-cow-backgrounds-single
sqlite
sssd
sssd-client
startup-notification
strace
stunnel
sudo
symlinks
system-config-firewall-base
system-config-firewall-tui
system-config-users
systemd
systemd-libs
systemd-sysv
sysvinit-tools
taglib
tar
tcpdump
tcp_wrappers
tcp_wrappers-libs
telnet
Terminal
Thunar
thunar-archive-plugin
thunar-media-tags-plugin
thunar-volman
time
tmpwatch
traceroute
tree
tumbler
tzdata
uboot-tools
udisks
udisks2
unique
units
unzip
upower
usb_modeswitch
usb_modeswitch-data
usbmuxd
usbutils
usermode
usermode-gtk
ustr
util-linux
vconfig
vim-minimal
vpnc
vpnc-script
vte
webkitgtk
webrtc-audio-processing
wget
which
wireless-tools
wiringpi
words
wpa_supplicant
xarchiver
xcb-util
xdg-user-dirs
xdg-user-dirs-gtk
xdg-utils
xfce4-about
xfce4-appfinder
xfce4-datetime-plugin
xfce4-icon-theme
xfce4-mixer
xfce4-notifyd
xfce4-panel
xfce4-places-plugin
xfce4-power-manager
xfce4-quicklauncher-plugin
xfce4-screenshooter
xfce4-screenshooter-plugin
xfce4-session
xfce4-session-engines
xfce4-settings
xfce4-xkb-plugin
xfconf
xfdesktop
xfsprogs
xfwm4
xfwm4-theme-nodoka
xfwm4-themes
xkeyboard-config
xml-common
xorg-x11-drv-evdev
xorg-x11-drv-fbdev
xorg-x11-fonts-ISO8859-1-100dpi
xorg-x11-font-utils
xorg-x11-server-common
xorg-x11-server-utils
xorg-x11-server-Xorg
xorg-x11-utils
xorg-x11-xauth
xorg-x11-xinit
xorg-x11-xkb-utils
xscreensaver-base
xz
xz-libs
yum
yumex
yum-langpacks
yum-metadata-parser
yum-presto
yum-utils
zd1211-firmware
zenity
zip
zlib

%end


# more configuration
%post --erroronfail --log=ks-log-info.txt

echo "##### $(date) - Post-installation file configuration"


# /etc/fstab
cat << EOF > /etc/fstab
#
# /etc/fstab
# Created by anaconda
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
LABEL="rootfs"          /                       ext4    defaults,noatime                 1 1
LABEL="boot"            /boot                   vfat    noauto,comment=systemd.automount 1 2
EOF


# /etc/hosts
cat << EOF > ${fsdir}/etc/hosts
127.0.0.1       localhost localhost.localdomain raspi.local
EOF


# root password
sed -i 's|^root:.*|root:x:0:0:root:/root:/bin/bash|' /etc/passwd
sed -i 's|^SELINUX=enforcing|SELINUX=permissive|'    /etc/selinux/config



# hostname
cat << EOF > /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=raspi.local
NETWORKWAIT=1
EOF


# should be blacklisted, floods dmesg with logs
# /etc/modprobe.d/blacklist.conf
cat << EOF > /etc/modprobe.d/blacklist.conf
blacklist evbug
EOF

# Optimizing systemd
for i in gdm.service iprupdate.service iprdump.service iprinit.service fedora-storage-init-late.service fedora-storage-init.service plymouth-start.service mdmonitor.service mdmonitor-takeover.service auditd.service avahi-daemon.service avahi-daemon.socket bluetooth.target dev-hugepages.mount dev-mqueue.mount fedora-configure.service fedora-loadmodules.service fedora-readonly.service ip6tables.service sys-kernel-config.mount sys-kernel-debug.mount systemd-readahead-collect.service systemd-readahead-done.service systemd-readahead-done.timer systemd-readahead-replay.service
do
    systemctl disable $i
    systemctl mask $i
done


# Enable needed services
for i in sm-client.service nortc.service lightdm.service firstboot-graphical.service polkit.service
do
    systemctl enable $i
done


# Missing symlink for sendmail.pid 
ln -s /var/run /run

# set graphical target
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

echo "##### $(date) - Final configurations"

# Firstboot timezone bug fix
sed -i "s|self.priority = 99|self.priority = 98|" /usr/share/firstboot/modules/date.py


# Firstboot reboot fix
echo '        os.system("/sbin/reboot")' >> /usr/sbin/firstboot


# Turning of quiet mode for debug purposes
#sed -i "s|quiet||" /boot/cmdline.txt


# selinux disabled (memory requirements)
sed -i "s|SELINUX=.*|SELINUX=disabled|" /etc/selinux/config


for X in passwd shadow group gshadow
do
    echo "==================================== $X"
    ls -l /etc/$X
    echo "------------------------------------"
    cat /etc/$X
done
echo "===================================="

pwconv
grpconv


# password for root (password=raspberrypi, overwritten by firstboot)
sed -i 's|root:.*:|root:$6$KW0GGbE5$zlEB9.PbHVh8kmXj1WMFGLJGwwthhU4oXn2oNxHZllbUSzTsVhTZ9jts8RC7uicuUCWyrsZ1e2yEj4ErDLOHQ/:15525:0:99999:7:::|' /etc/shadow

# default network configuration (dhcp)
cat << EOF > /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
NM_CONTROLLED=yes
EOF


# Copying kernel.img for boot purposes
cp /boot/kernel*.img /boot/kernel.img

#headless permissions
chmod u+x /usr/bin/headon


# Enable Headless Mode
ln -s /lib/systemd/system/headless-mode.service /etc/systemd/system/headless-mode.service 
systemctl enable headless-mode.service


%end