molecules/scripts/mkloopcard_efikamx_chroot_hook.sh

112 lines
2.7 KiB
Bash
Executable File

#!/bin/sh
# This script is executed inside the image chroot before packing up.
# Architecture/platform specific code goes here, like kernel install
# and configuration
env-update
. /etc/profile
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
elif [ -n "$(equo match --installed lxde-base/lxdm -qv)" ]; then
sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="lxdm"/g' /etc/conf.d/xdm
elif [ -n "$(equo match --installed kde-base/kdm -qv)" ]; then
sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="kdm"/g' /etc/conf.d/xdm
else
sed -i 's/DISPLAYMANAGER=".*"/DISPLAYMANAGER="xdm"/g' /etc/conf.d/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() {
# enable sshd by default
rc-update add sshd default
# enable logger by default
rc-update add syslog-ng boot
rc-update add vixie-cron boot
# enable dbus, of course, and also NetworkManager
rc-update add dbus boot
rc-update add NetworkManager default
rc-update del net.eth0 default
# start X.Org by default
rc-update add xdm default
# select the first available kernel
eselect uimage set 1
# cleaning up deps
rc-update --update
}
setup_startup_caches() {
mount -t proc proc /proc
/lib/rc/bin/rc-depend -u
# Generate openrc cache
touch /lib/rc/init.d/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
echo "s0:12345:respawn:/sbin/agetty 115200 ttymxc0 vt100" >> /etc/inittab
echo "ttymxc0" >> /etc/securetty
}
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
}
setup_displaymanager
setup_desktop_environment
setup_users
setup_boot
setup_serial
setup_fstab
setup_startup_caches
exit 0