[molecules/*] add basic and untested .spec file for the Efika MX
This commit is contained in:
parent
29119b2b48
commit
eb41b3e1b9
BIN
boot/arm/efikamx/boot.scr
Executable file
BIN
boot/arm/efikamx/boot.scr
Executable file
Binary file not shown.
12
boot/arm/efikamx/boot.script
Executable file
12
boot/arm/efikamx/boot.script
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
setenv ramdisk uInitrd;
|
||||||
|
setenv kernel uImage;
|
||||||
|
setenv bootargs console=tty1 console=/dev/${console} root=/dev/mmcblk0p2 rootwait rw quiet rootfstype=ext3;
|
||||||
|
${loadcmd} ${ramdiskaddr} ${ramdisk};
|
||||||
|
if imi ${ramdiskaddr}; then; else
|
||||||
|
setenv bootargs ${bootargs} noinitrd;
|
||||||
|
setenv ramdiskaddr "";
|
||||||
|
fi;
|
||||||
|
${loadcmd} ${kerneladdr} ${kernel}
|
||||||
|
if imi ${kerneladdr}; then
|
||||||
|
bootm ${kerneladdr} ${ramdiskaddr}
|
||||||
|
fi;
|
14
molecules/efikamx.common
Normal file
14
molecules/efikamx.common
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# List of packages to add
|
||||||
|
packages_to_add:
|
||||||
|
app-misc/sabayonlive-tools,
|
||||||
|
app-misc/sabayon-skel,
|
||||||
|
app-admin/syslog-ng,
|
||||||
|
net-misc/cnetworkmanager,
|
||||||
|
net-misc/ntp,
|
||||||
|
sys-apps/keyboard-configuration-helpers,
|
||||||
|
sys-apps/language-configuration-helpers,
|
||||||
|
sys-kernel/linux-efikamx,
|
||||||
|
sys-process/vixie-cron
|
||||||
|
|
||||||
|
# List of packages to remove
|
||||||
|
packages_to_remove:
|
24
molecules/sabayon-arm-efikamx-base-2G.spec
Normal file
24
molecules/sabayon-arm-efikamx-base-2G.spec
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
%import /sabayon/molecules/arm-base.common
|
||||||
|
%import /sabayon/molecules/efikamx.common
|
||||||
|
|
||||||
|
# Release desc (the actual release description)
|
||||||
|
release_desc: armv7a Efika MX
|
||||||
|
|
||||||
|
# Release Version (used to generate release_file)
|
||||||
|
release_version: 8
|
||||||
|
|
||||||
|
# Specify image file name (image file name will be automatically
|
||||||
|
# produced otherwise)
|
||||||
|
image_name: Sabayon_Linux_8_armv7a_EfikaMX_Base_2GB.img
|
||||||
|
|
||||||
|
# Specify the image file size in Megabytes. This is mandatory.
|
||||||
|
# To avoid runtime failure, make sure the image is large enough to fit your
|
||||||
|
# chroot data.
|
||||||
|
image_mb: 2000
|
||||||
|
|
||||||
|
# Path to boot partition data (MLO, u-boot.img etc)
|
||||||
|
source_boot_directory: /sabayon/boot/arm/efikamx
|
||||||
|
|
||||||
|
# External script that will generate the image file.
|
||||||
|
# The same can be copied onto a MMC by using dd
|
||||||
|
image_generator_script: /sabayon/scripts/efikamx_image_generator_script.sh
|
7
scripts/efikamx_image_generator_script.sh
Executable file
7
scripts/efikamx_image_generator_script.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
export BOOT_PART_TYPE=ext3
|
||||||
|
export BOOT_PART_TYPE_INSIDE_ROOT=1
|
||||||
|
export ROOT_PART_TYPE=ext4
|
||||||
|
|
||||||
|
exec /sabayon/scripts/mkloopcard.sh /sabayon/scripts/mkloopcard_efikamx_chroot_hook.sh "$@"
|
@ -35,6 +35,12 @@ BOOT_DIR="${4}"
|
|||||||
CHROOT_DIR="${5}"
|
CHROOT_DIR="${5}"
|
||||||
# Should we make a tarball of the rootfs and bootfs?
|
# Should we make a tarball of the rootfs and bootfs?
|
||||||
MAKE_TARBALL="${MAKE_TARBALL:-1}"
|
MAKE_TARBALL="${MAKE_TARBALL:-1}"
|
||||||
|
# Boot partition type
|
||||||
|
BOOT_PART_TYPE="${BOOT_PART_TYPE:-vfat}"
|
||||||
|
# Root partition type
|
||||||
|
ROOT_PART_TYPE="${ROOT_PART_TYPE:-ext3}"
|
||||||
|
# Copy /boot content from Root partition to Boot partition?
|
||||||
|
BOOT_PART_TYPE_INSIDE_ROOT="${BOOT_PART_TYPE_INSIDE_ROOT:-}"
|
||||||
|
|
||||||
cleanup_loopbacks() {
|
cleanup_loopbacks() {
|
||||||
cd /
|
cd /
|
||||||
@ -44,9 +50,10 @@ cleanup_loopbacks() {
|
|||||||
sync
|
sync
|
||||||
[[ -n "${tmp_file}" ]] && rm "${tmp_file}" 2> /dev/null
|
[[ -n "${tmp_file}" ]] && rm "${tmp_file}" 2> /dev/null
|
||||||
[[ -n "${tmp_dir}" ]] && { umount "${tmp_dir}" &> /dev/null; rmdir "${tmp_dir}" &> /dev/null; }
|
[[ -n "${tmp_dir}" ]] && { umount "${tmp_dir}" &> /dev/null; rmdir "${tmp_dir}" &> /dev/null; }
|
||||||
|
[[ -n "${boot_tmp_dir}" ]] && { umount "${boot_tmp_dir}" &> /dev/null; rmdir "${boot_tmp_dir}" &> /dev/null; }
|
||||||
sleep 1
|
sleep 1
|
||||||
[[ -n "${vfat_part}" ]] && losetup -d "${vfat_part}" 2> /dev/null
|
[[ -n "${boot_part}" ]] && losetup -d "${boot_part}" 2> /dev/null
|
||||||
[[ -n "${ext_part}" ]] && losetup -d "${ext_part}" 2> /dev/null
|
[[ -n "${root_part}" ]] && losetup -d "${root_part}" 2> /dev/null
|
||||||
[[ -n "${DRIVE}" ]] && losetup -d "${DRIVE}" 2> /dev/null
|
[[ -n "${DRIVE}" ]] && losetup -d "${DRIVE}" 2> /dev/null
|
||||||
# make sure to have run this
|
# make sure to have run this
|
||||||
[[ -n "${tmp_dir}" ]] && CHROOT_DIR="${tmp_dir}" /sabayon/scripts/mmc_remaster_post.sh
|
[[ -n "${tmp_dir}" ]] && CHROOT_DIR="${tmp_dir}" /sabayon/scripts/mmc_remaster_post.sh
|
||||||
@ -98,29 +105,36 @@ echo "ExtFS size : ${EXTSIZE} bytes"
|
|||||||
echo "ExtFS offset : ${EXTOFFSET} bytes"
|
echo "ExtFS offset : ${EXTOFFSET} bytes"
|
||||||
|
|
||||||
# Get other two loopback devices first
|
# Get other two loopback devices first
|
||||||
vfat_part=$(losetup -f --offset "${STARTOFFSET}" --sizelimit "${MAGICSIZE}" "${FILE}" --show)
|
boot_part=$(losetup -f --offset "${STARTOFFSET}" --sizelimit "${MAGICSIZE}" "${FILE}" --show)
|
||||||
if [ -z "${vfat_part}" ]; then
|
if [ -z "${boot_part}" ]; then
|
||||||
echo "Cannot setup the vfat partition loopback"
|
echo "Cannot setup the boot partition loopback"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
ext_part=$(losetup -f --offset "${EXTOFFSET}" --sizelimit "${EXTSIZE}" "${FILE}" --show)
|
root_part=$(losetup -f --offset "${EXTOFFSET}" --sizelimit "${EXTSIZE}" "${FILE}" --show)
|
||||||
if [ -z "${ext_part}" ]; then
|
if [ -z "${root_part}" ]; then
|
||||||
echo "Cannot setup the ext3 partition loopback"
|
echo "Cannot setup the ${ROOT_PART_TYPE} partition loopback"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "VFAT Partiton at : ${vfat_part}"
|
echo "Boot Partiton at : ${boot_part}"
|
||||||
echo "ExtFS Partition at : ${ext_part}"
|
echo "Root Partition at : ${root_part}"
|
||||||
|
|
||||||
# Format vfat
|
# Format boot
|
||||||
echo "Formatting VFAT ${vfat_part}..."
|
echo "Formatting ${BOOT_PART_TYPE} ${boot_part}..."
|
||||||
mkfs.vfat -n "boot" -F 32 "${vfat_part}" || exit 1
|
"mkfs.${BOOT_PART_TYPE}" -n "boot" -F 32 "${boot_part}" || exit 1
|
||||||
|
|
||||||
# Format extfs
|
# Format extfs
|
||||||
echo "Formatting ExtFS ${ext_part}..."
|
echo "Formatting ${ROOT_PART_TYPE} ${root_part}..."
|
||||||
mkfs.ext3 -L "Sabayon" "${ext_part}" || exit 1
|
"mkfs.${ROOT_PART_TYPE}" -L "Sabayon" "${root_part}" || exit 1
|
||||||
|
|
||||||
|
boot_tmp_dir=$(mktemp -d)
|
||||||
|
if [[ -z "${boot_tmp_dir}" ]]; then
|
||||||
|
echo "Cannot create temporary dir (boot)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
chmod 755 "${boot_tmp_dir}" || exit 1
|
||||||
|
|
||||||
tmp_dir=$(mktemp -d)
|
tmp_dir=$(mktemp -d)
|
||||||
if [[ -z "${tmp_dir}" ]]; then
|
if [[ -z "${tmp_dir}" ]]; then
|
||||||
@ -132,13 +146,12 @@ chmod 755 "${tmp_dir}" || exit 1
|
|||||||
sleep 2
|
sleep 2
|
||||||
sync
|
sync
|
||||||
|
|
||||||
echo "Setting up the boot directory content, mounting on ${tmp_dir}"
|
echo "Setting up the boot directory content, mounting on ${boot_tmp_dir}"
|
||||||
mount "${vfat_part}" "${tmp_dir}"
|
mount "${boot_part}" "${boot_tmp_dir}"
|
||||||
cp -R "${BOOT_DIR}"/* "${tmp_dir}"/ || exit 1
|
cp -R "${BOOT_DIR}"/* "${boot_tmp_dir}"/ || exit 1
|
||||||
umount "${tmp_dir}" || exit 1
|
|
||||||
|
|
||||||
echo "Setting up the extfs directory content, mounting on ${tmp_dir}"
|
echo "Setting up the extfs directory content, mounting on ${tmp_dir}"
|
||||||
mount "${ext_part}" "${tmp_dir}"
|
mount "${root_part}" "${tmp_dir}"
|
||||||
rsync -a -H -A -X --delete-during "${CHROOT_DIR}"/ "${tmp_dir}"/ --exclude "/proc/*" --exclude "/sys/*" \
|
rsync -a -H -A -X --delete-during "${CHROOT_DIR}"/ "${tmp_dir}"/ --exclude "/proc/*" --exclude "/sys/*" \
|
||||||
--exclude "/dev/pts/*" --exclude "/dev/shm/*" || exit 1
|
--exclude "/dev/pts/*" --exclude "/dev/shm/*" || exit 1
|
||||||
|
|
||||||
@ -229,6 +242,14 @@ if [ -n "${RELEASE_FILE}" ]; then
|
|||||||
echo "${RELEASE_STRING} ${RELEASE_VERSION} ${RELEASE_DESC}" > "${release_file}"
|
echo "${RELEASE_STRING} ${RELEASE_VERSION} ${RELEASE_DESC}" > "${release_file}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# BOOT_PART_TYPE_INSIDE_ROOT
|
||||||
|
if [ -n "${BOOT_PART_TYPE_INSIDE_ROOT}" ]; then
|
||||||
|
echo "Copying data from ${tmp_dir}/boot to ${boot_tmp_dir} as requested..."
|
||||||
|
cp -Rp "${tmp_dir}/boot/*" "${boot_tmp_dir}/" || exit 1
|
||||||
|
fi
|
||||||
|
umount "${boot_tmp_dir}" || exit 1
|
||||||
|
|
||||||
|
|
||||||
if [ -n "${DESTINATION_IMAGE_DIR}" ] && [ "${MAKE_TARBALL}" = "1" ]; then
|
if [ -n "${DESTINATION_IMAGE_DIR}" ] && [ "${MAKE_TARBALL}" = "1" ]; then
|
||||||
# Create the rootfs tarball
|
# Create the rootfs tarball
|
||||||
ROOTFS_TARBALL="${DESTINATION_IMAGE_DIR}/${IMAGE_NAME}.rootfs.tar.xz"
|
ROOTFS_TARBALL="${DESTINATION_IMAGE_DIR}/${IMAGE_NAME}.rootfs.tar.xz"
|
||||||
|
111
scripts/mkloopcard_efikamx_chroot_hook.sh
Executable file
111
scripts/mkloopcard_efikamx_chroot_hook.sh
Executable file
@ -0,0 +1,111 @@
|
|||||||
|
#!/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} defaults 0 1" >> /etc/fstab
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_displaymanager
|
||||||
|
setup_desktop_environment
|
||||||
|
setup_users
|
||||||
|
setup_boot
|
||||||
|
setup_serial
|
||||||
|
setup_fstab
|
||||||
|
setup_startup_caches
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
Loading…
Reference in New Issue
Block a user