Pidora kickstart
Revision as of 16:22, 23 May 2013 by Oatley (talk | contribs) (Created page with '{{Pidora}}Category:Raspberry PiCategory:Pidora 18 (Raspberry Pi Fedora Remix) == Pidora Kickstart == <pre> # Build a Raspberry Pi - XFCE install using livemedia-creator…')
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/" #url --url="http://japan.proximity.on.ca/repos/f18-rpfr-build/latest/armv6hl/" # and get updates for the builders repo --name=pidora --ignoregroups=true --baseurl="http://japan.proximity.on.ca/kojifiles/mash/pidora-18-latest/pidora-18/armhfp/os/" #repo --name=rpfr18v6 --ignoregroups=true --baseurl="http://japan.proximity.on.ca/repos/f18-rpfr-build/latest/armv6hl/" #repo --name=rpfr18g6 --baseurl="http://scotland.proximity.on.ca/~agreene/v6-groups/"# # Define how large you want your rootfs to be # 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 #Headless mode service to stop firstboot #cat << EOF > /lib/systemd/system/headless-mode.service #[Unit] #Description=Checking the status of headless mode #After=livesys.service plymouth-quit.service #Before=firstboot-graphical.service display-manager.service getty@tty1.service #[Service] #Type=simple #ExecStart=/usr/bin/headon #ExecStartPost=/bin/systemctl disable firstboot-graphical.service #TimeoutSec=0 #RemainAfterExit=yes #SysVStartPriority=99 #[Install] #WantedBy=graphical.target #EOF # Enable Headless Mode ln -s /lib/systemd/system/headless-mode.service /etc/systemd/system/headless-mode.service systemctl enable headless-mode.service #headless mode settings #cat << FOF > /usr/bin/headon #!/bin/bash #headless="/.headless" #echo "Headless Mode Enabled" #if [ -e "$headless" ] #then # systemctl enable sshd.service # systemctl start sshd.service # ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target #else # systemctl stop headless-mode.service # systemctl disable headless-mode.service # systemctl enable firstboot-graphical.service # systemctl start firstboot-graphical.service #fi #if [ -s "$headless" ] #then #echo "ip_address=$(sed 's/*.[0-9]/&/' $headless) #cat << EOF > /etc/sysconfig/network-scripts/ifcfg-eth0 #DEVICE=eth0 #IPADDR=$ip_address #NETMASK=255.255.255.0 #BOOTPROTO=static #ONBOOT=yes #NM_CONTROLLED=yes #EOF >> /usr/bin/headon #else #cat << EOF > /etc/sysconfig/network-scripts/ifcfg-eth0 #DEVICE=eth0 #BOOTPROTO=dhcp #ONBOOT=yes #NM_CONTROLLED=yes #EOF #fi" >> /usr/bin/headon #FOF %end