From 8c1fd1d8cd9062ad2d9a4caac9045ccb7dc39d19 Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Wed, 29 May 2013 10:48:15 +0200 Subject: [PATCH] [scripts] move common arm setup code to mkloopcard_chroot.include --- scripts/mkloopcard.sh | 11 +- scripts/mkloopcard_beagleboard_chroot_hook.sh | 112 +---------------- scripts/mkloopcard_beaglebone_chroot_hook.sh | 75 +----------- scripts/mkloopcard_chroot.include | 71 +++++++++++ scripts/mkloopcard_efikamx_chroot_hook.sh | 115 +----------------- .../odroid_u2_x2_image_generator_script.sh | 3 +- 6 files changed, 89 insertions(+), 298 deletions(-) create mode 100644 scripts/mkloopcard_chroot.include diff --git a/scripts/mkloopcard.sh b/scripts/mkloopcard.sh index 21611c4..1d65f58 100755 --- a/scripts/mkloopcard.sh +++ b/scripts/mkloopcard.sh @@ -2,7 +2,7 @@ # (c) Copyright 2012 Fabio Erculiani # Licensed under terms of GPLv2 -env-update +/usr/sbin/env-update . /etc/profile export LC_ALL=en_US.UTF-8 @@ -197,11 +197,16 @@ fi # execute CHROOT_SCRIPT hook inside chroot chroot_script_name=$(basename "${CHROOT_SCRIPT}") target_chroot_script="${tmp_dir}"/"${chroot_script_name}" +chroot_hook_inc_name="mkloopcard_chroot.include" +chroot_hook_include="${SABAYON_MOLECULE_HOME}/scripts/${chroot_hook_inc_name}" +target_chroot_hook_inc="${tmp_dir}/${chroot_hook_inc_name}" +cp -p "${chroot_hook_include}" "${target_chroot_hook_inc}" || exit 1 +chmod 0700 "${target_chroot_hook_inc}" || exit 1 cp -p "${CHROOT_SCRIPT}" "${target_chroot_script}" || exit 1 -chmod 700 "${target_chroot_script}" || exit 1 +chmod 0700 "${target_chroot_script}" || exit 1 chown root "${target_chroot_script}" || exit 1 chroot "${tmp_dir}" "/${chroot_script_name}" || exit 1 -rm -f "${target_chroot_script}" +rm -f "${target_chroot_script}" "${target_chroot_hook_inc}" CHROOT_DIR="${tmp_dir}" "${SABAYON_MOLECULE_HOME}"/scripts/mmc_remaster_post.sh diff --git a/scripts/mkloopcard_beagleboard_chroot_hook.sh b/scripts/mkloopcard_beagleboard_chroot_hook.sh index 8a834bc..adf8056 100755 --- a/scripts/mkloopcard_beagleboard_chroot_hook.sh +++ b/scripts/mkloopcard_beagleboard_chroot_hook.sh @@ -1,121 +1,13 @@ #!/bin/bash -# This script is executed inside the image chroot before packing up. -# Architecture/platform specific code goes here, like kernel install -# and configuration -env-update +/usr/sbin/env-update . /etc/profile -sd_enable() { - [[ -x /usr/bin/systemctl ]] && \ - systemctl --no-reload -f enable "${1}.service" -} - -sd_disable() { - [[ -x /usr/bin/systemctl ]] && \ - systemctl --no-reload -f disable "${1}.service" -} - -setup_displaymanager() { - # determine what is the login manager - if [ -n "$(equo match --installed gnome-base/gdm -qv)" ]; then - sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="gdm"/g' /etc/conf.d/xdm - sd_enable gdm - elif [ -n "$(equo match --installed lxde-base/lxdm -qv)" ]; then - sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="lxdm"/g' /etc/conf.d/xdm - sd_enable lxdm - elif [ -n "$(equo match --installed kde-base/kdm -qv)" ]; then - sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="kdm"/g' /etc/conf.d/xdm - sd_enable kdm - else - sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="xdm"/g' /etc/conf.d/xdm - sd_enable xdm - fi -} - -setup_desktop_environment() { - if [ -f "/usr/share/xsessions/LXDE.desktop" ]; then - echo "[Desktop]" > /etc/skel/.dmrc - echo "Session=LXDE" >> /etc/skel/.dmrc - elif [ -n "/usr/share/xsessions/xfce.desktop" ]; then - echo "[Desktop]" > /etc/skel/.dmrc - echo "Session=xfce" >> /etc/skel/.dmrc - - else - # Fluxbox is always there - echo "[Desktop]" > /etc/skel/.dmrc - echo "Session=fluxbox" >> /etc/skel/.dmrc - fi -} - -setup_boot() { - rc-update add sshd default - sd_enable sshd - - rc-update add syslog-ng boot - sd_enable syslog-ng - - rc-update add vixie-cron boot - sd_enable vixie-cron - - # enable dbus, of course, and also NetworkManager - rc-update add dbus boot - rc-update add NetworkManager default - rc-update add NetworkManager-setup default - sd_enable NetworkManager - - rc-update del net.eth0 default - rc-update add xdm default - - eselect uimage set 1 - rc-update --update -} - -setup_startup_caches() { - mount -t proc proc /proc - /lib/rc/bin/rc-depend -u - # Generate openrc cache - [[ -d "/lib/rc/init.d" ]] && touch /lib/rc/init.d/softlevel - [[ -d "/run/openrc" ]] && touch /run/openrc/softlevel - /etc/init.d/savecache start - /etc/init.d/savecache zap - ldconfig - ldconfig - umount /proc -} - - -setup_users() { - # setup root password to... root! - echo root:root | chpasswd - # setup normal user "sabayon" - ( - if [ ! -x "/sbin/sabayon-functions.sh" ]; then - echo "no /sbin/sabayon-functions.sh found" - exit 1 - fi - . /sbin/sabayon-functions.sh - sabayon_setup_live_user "sabayon" || exit 1 - # setup "sabayon" password to... sabayon! - echo "sabayon:sabayon" | chpasswd - - # also add "sabayon" to disk group - usermod -a -G disk sabayon - ) -} - -setup_serial() { - # setup serial login - sed -i "s:^s0.*::" /etc/inittab - echo "s0:12345:respawn:/sbin/agetty 115200 ttyO2 vt100" >> /etc/inittab -} +. /mkloopcard_chroot.include || exit 1 setup_displaymanager setup_desktop_environment setup_users setup_boot -setup_serial -setup_startup_caches exit 0 - diff --git a/scripts/mkloopcard_beaglebone_chroot_hook.sh b/scripts/mkloopcard_beaglebone_chroot_hook.sh index 63e7423..d633746 100755 --- a/scripts/mkloopcard_beaglebone_chroot_hook.sh +++ b/scripts/mkloopcard_beaglebone_chroot_hook.sh @@ -1,82 +1,11 @@ #!/bin/bash -# This script is executed inside the image chroot before packing up. -# Architecture/platform specific code goes here, like kernel install -# and configuration -env-update +/usr/sbin/env-update . /etc/profile -sd_enable() { - [[ -x /usr/bin/systemctl ]] && \ - systemctl --no-reload -f enable "${1}.service" -} - -sd_disable() { - [[ -x /usr/bin/systemctl ]] && \ - systemctl --no-reload -f disable "${1}.service" -} - -setup_boot() { - rc-update add sshd default - sd_enable sshd - - rc-update add syslog-ng boot - sd_enable syslog-ng - - rc-update add vixie-cron boot - sd_enable vixie-cron - - rc-update add dbus boot - rc-update add NetworkManager default - rc-update add NetworkManager-setup default - sd_enable NetworkManager - - # select the first available kernel - eselect uimage set 1 - # cleaning up deps - rc-update --update -} - -setup_users() { - # setup root password to... root! - echo root:root | chpasswd - # setup normal user "sabayon" - ( - if [ ! -x "/sbin/sabayon-functions.sh" ]; then - echo "no /sbin/sabayon-functions.sh found" - exit 1 - fi - . /sbin/sabayon-functions.sh - sabayon_setup_live_user "sabayon" || exit 1 - # setup "sabayon" password to... sabayon! - echo "sabayon:sabayon" | chpasswd - ) -} - -setup_startup_caches() { - mount -t proc proc /proc - /lib/rc/bin/rc-depend -u - # Generate openrc cache - [[ -d "/lib/rc/init.d" ]] && touch /lib/rc/init.d/softlevel - [[ -d "/run/openrc" ]] && touch /run/openrc/softlevel - /etc/init.d/savecache start - /etc/init.d/savecache zap - ldconfig - ldconfig - umount /proc -} - - -setup_serial() { - # Setup serial login - sed -i "s:^s0.*::" /etc/inittab - echo "s0:12345:respawn:/sbin/agetty 115200 ttyO0 vt100" >> /etc/inittab -} +. /mkloopcard_chroot.include || exit 1 setup_boot setup_users -setup_serial -setup_startup_caches exit 0 - diff --git a/scripts/mkloopcard_chroot.include b/scripts/mkloopcard_chroot.include new file mode 100644 index 0000000..71cc791 --- /dev/null +++ b/scripts/mkloopcard_chroot.include @@ -0,0 +1,71 @@ +#!/bin/bash + +sd_enable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload -f enable "${1}.service" +} + +sd_disable() { + [[ -x /usr/bin/systemctl ]] && \ + systemctl --no-reload -f disable "${1}.service" +} + +setup_displaymanager() { + if [ -n "$(equo match --installed gnome-base/gdm -qv)" ]; then + sd_enable gdm + elif [ -n "$(equo match --installed lxde-base/lxdm -qv)" ]; then + sd_enable lxdm + elif [ -n "$(equo match --installed x11-misc/lightdm-base -qv)" ]; then + sd_enable lightdm + elif [ -n "$(equo match --installed kde-base/kdm -qv)" ]; then + sd_enable kdm + else + sd_enable xdm + fi +} + +setup_desktop_environment() { + local session= + if [ -f "/usr/share/xsessions/LXDE.desktop" ]; then + session="LXDE" + elif [ -f "/usr/share/xsessions/xfce.desktop" ]; then + session="xfce" + elif [ -f "/usr/share/xsessions/gnome.desktop" ]; then + session="gnome" + elif [ -f "/usr/share/xsessions/mate.desktop" ]; then + session="mate" + elif [ -f "/usr/share/xsessions/KDE-4.desktop" ]; then + session="KDE-4" + fi + + if [ -n "${session}" ]; then + echo "[Desktop]" > /etc/skel/.dmrc || return 1 + echo "Session=${session}" >> /etc/skel/.dmrc || return 1 + fi +} + +setup_boot() { + sd_enable sshd + sd_enable vixie-cron + sd_enable NetworkManager + eselect uimage set 1 +} + +setup_users() { + # setup root password to... root! + echo root:root | chpasswd + # setup normal user "sabayon" + ( + if [ ! -x "/sbin/sabayon-functions.sh" ]; then + echo "no /sbin/sabayon-functions.sh found" + exit 1 + fi + . /sbin/sabayon-functions.sh + sabayon_setup_live_user "sabayon" || exit 1 + # setup "sabayon" password to... sabayon! + echo "sabayon:sabayon" | chpasswd + + # also add "sabayon" to disk group + usermod -a -G disk sabayon + ) || return 1 +} \ No newline at end of file diff --git a/scripts/mkloopcard_efikamx_chroot_hook.sh b/scripts/mkloopcard_efikamx_chroot_hook.sh index 36b783c..f89174b 100755 --- a/scripts/mkloopcard_efikamx_chroot_hook.sh +++ b/scripts/mkloopcard_efikamx_chroot_hook.sh @@ -3,126 +3,21 @@ # Architecture/platform specific code goes here, like kernel install # and configuration -env-update +/usr/sbin/env-update . /etc/profile -sd_enable() { - [[ -x /usr/bin/systemctl ]] && \ - systemctl --no-reload -f enable "${1}.service" -} - -sd_disable() { - [[ -x /usr/bin/systemctl ]] && \ - systemctl --no-reload -f disable "${1}.service" -} - -setup_displaymanager() { - # determine what is the login manager - if [ -n "$(equo match --installed gnome-base/gdm -qv)" ]; then - sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="gdm"/g' /etc/conf.d/xdm - sd_enable gdm - elif [ -n "$(equo match --installed lxde-base/lxdm -qv)" ]; then - sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="lxdm"/g' /etc/conf.d/xdm - sd_enable lxdm - elif [ -n "$(equo match --installed kde-base/kdm -qv)" ]; then - sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="kdm"/g' /etc/conf.d/xdm - sd_enable kdm - else - sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="xdm"/g' /etc/conf.d/xdm - sd_enable xdm - fi -} - -setup_desktop_environment() { - if [ -f "/usr/share/xsessions/LXDE.desktop" ]; then - echo "[Desktop]" > /etc/skel/.dmrc - echo "Session=LXDE" >> /etc/skel/.dmrc - elif [ -n "/usr/share/xsessions/xfce.desktop" ]; then - echo "[Desktop]" > /etc/skel/.dmrc - echo "Session=xfce" >> /etc/skel/.dmrc - - else - # Fluxbox is always there - echo "[Desktop]" > /etc/skel/.dmrc - echo "Session=fluxbox" >> /etc/skel/.dmrc - fi -} - -setup_boot() { - rc-update add sshd default - sd_enable sshd - - rc-update add syslog-ng boot - sd_enable syslog-ng - - rc-update add vixie-cron boot - sd_enable vixie-cron - - rc-update add dbus boot - rc-update add NetworkManager default - rc-update add NetworkManager-setup default - sd_enable NetworkManager - - rc-update del net.eth0 default - rc-update add xdm default - - eselect uimage set 1 - rc-update --update -} - -setup_startup_caches() { - mount -t proc proc /proc - /lib/rc/bin/rc-depend -u - # Generate openrc cache - [[ -d "/lib/rc/init.d" ]] && touch /lib/rc/init.d/softlevel - [[ -d "/run/openrc" ]] && touch /run/openrc/softlevel - /etc/init.d/savecache start - /etc/init.d/savecache zap - ldconfig - ldconfig - umount /proc -} - - -setup_users() { - # setup root password to... root! - echo root:root | chpasswd - # setup normal user "sabayon" - ( - if [ ! -x "/sbin/sabayon-functions.sh" ]; then - echo "no /sbin/sabayon-functions.sh found" - exit 1 - fi - . /sbin/sabayon-functions.sh - sabayon_setup_live_user "sabayon" || exit 1 - # setup "sabayon" password to... sabayon! - echo "sabayon:sabayon" | chpasswd - - # also add "sabayon" to disk group - usermod -a -G disk sabayon - ) -} - -setup_serial() { - # setup serial login - sed -i "s:^s0.*::" /etc/inittab - echo "s0:12345:respawn:/sbin/agetty 115200 ttymxc0 vt100" >> /etc/inittab - echo "ttymxc0" >> /etc/securetty -} +. /mkloopcard_chroot.include || exit 1 setup_fstab() { - # add /dev/mmcblk0p1 to /etc/fstab - local boot_part_type="${BOOT_PART_TYPE:-ext3}" - echo "/dev/mmcblk0p1 /boot ${boot_part_type} noauto 0 1" >> /etc/fstab + # add /dev/mmcblk0p1 to /etc/fstab + local boot_part_type="${BOOT_PART_TYPE:-ext3}" + echo "/dev/mmcblk0p1 /boot ${boot_part_type} noauto 0 1" >> /etc/fstab } setup_displaymanager setup_desktop_environment setup_users setup_boot -setup_serial setup_fstab -setup_startup_caches exit 0 - diff --git a/scripts/odroid_u2_x2_image_generator_script.sh b/scripts/odroid_u2_x2_image_generator_script.sh index 4af8b1b..4f2b2fa 100755 --- a/scripts/odroid_u2_x2_image_generator_script.sh +++ b/scripts/odroid_u2_x2_image_generator_script.sh @@ -5,7 +5,6 @@ SABAYON_MOLECULE_HOME="${SABAYON_MOLECULE_HOME:-/sabayon}" export SABAYON_MOLECULE_HOME # rootfs and bootfs tarball is generated by beaglebone image -export MAKE_TARBALL="0" export FIRST_PARTITION_OFFSET="5120000" # 5Mb export SD_FUSE="${SABAYON_MOLECULE_HOME}/boot/arm/odroid-u2-x2/sd_fuse/sd_fusing.sh" -exec "${SABAYON_MOLECULE_HOME}"/scripts/mkloopcard.sh "${SABAYON_MOLECULE_HOME}"/scripts/mkloopcard_beagleboard_xm_chroot_hook.sh "$@" +exec "${SABAYON_MOLECULE_HOME}"/scripts/mkloopcard.sh "${SABAYON_MOLECULE_HOME}"/scripts/mkloopcard_odroid_u2_x2_chroot_hook.sh "${@}"