130 lines
4.4 KiB
Bash
130 lines
4.4 KiB
Bash
# livecd post script
|
|
#
|
|
# creates a fake installation aimed at producing a kernel image and initrd
|
|
# for livecd boot
|
|
|
|
# make initramfs
|
|
|
|
[ -e $MOUNTDIR2/boot/isolinux ] || mkdir -p $MOUNTDIR2/boot/isolinux
|
|
|
|
chroot $MOUNTDIR depmod -a ${KERNEL_MAJVER}${KERNEL_EXTRAVER}
|
|
|
|
# temporary workaround to disable nouveau driver in favour of nvidia proprietary until
|
|
# it gets 3D support
|
|
echo "blacklist nouveau" > $MOUNTDIR/etc/modprobe.d/nouveau.conf
|
|
|
|
LANG=${LANGUAGE}_${COUNTRY} chroot $MOUNTDIR dracut \
|
|
--filesystems "ext3 ext4 unionfs squashfs isofs reiserfs reiser4" \
|
|
--nomdadmconf --nolvmconf \
|
|
/boot/initramfs-${KERNEL_MAJVER}${KERNEL_EXTRAVER}.img.gz \
|
|
${KERNEL_MAJVER}${KERNEL_EXTRAVER}
|
|
|
|
# Note: isolinux requires 8.3 filenames
|
|
cp $MOUNTDIR/boot/initramfs-${KERNEL_MAJVER}${KERNEL_EXTRAVER}.img.gz \
|
|
$MOUNTDIR2/boot/initrmfs.gz
|
|
|
|
cp $MOUNTDIR/boot/vmlinuz-${KERNEL_MAJVER}${KERNEL_EXTRAVER} \
|
|
$MOUNTDIR2/boot/vmlinuz
|
|
|
|
# configure isolinux boot loader
|
|
cat > $MOUNTDIR2/boot/isolinux/isolinux.cfg << _EOF
|
|
PROMPT 0
|
|
TIMEOUT 20
|
|
DEFAULT vesamenu.c32
|
|
MENU TITLE ${buildinfo} (${KERNEL_MAJVER}${KERNEL_EXTRAVER} kernel)
|
|
MENU BACKGROUND openmamba.png
|
|
MENU COLOR TITLE 1;32;49 #ff00993d #00000000 std
|
|
|
|
LABEL kms
|
|
MENU LABEL default
|
|
kernel /boot/vmlinuz
|
|
append initrd=/boot/initrmfs.gz root=live:LABEL=${MAKEDIST_TARGET}_${PLATFORM} ro selinux=0 quiet splash vga=789
|
|
LABEL vga1024
|
|
MENU LABEL VGA 1024x768 (no modeset)
|
|
kernel /boot/vmlinuz
|
|
append initrd=/boot/initrmfs.gz root=live:LABEL=${MAKEDIST_TARGET}_${PLATFORM} ro selinux=0 quiet splash vga=792 nomodeset
|
|
LABEL vga800
|
|
MENU LABEL VGA 800x600 (no modeset)
|
|
kernel /boot/vmlinuz
|
|
append initrd=/boot/initrmfs.gz root=live:LABEL=${MAKEDIST_TARGET}_${PLATFORM} ro selinux=0 quiet splash vga=789 nomodeset
|
|
LABEL debug
|
|
MENU LABEL Debug mode
|
|
kernel /boot/vmlinuz
|
|
append initrd=/boot/initrmfs.gz root=live:LABEL=${MAKEDIST_TARGET}_${PLATFORM} ro selinux=0 rddebug rdshell
|
|
MENU SEPARATOR
|
|
LABEL memtest
|
|
MENU LABEL Memory test
|
|
kernel memtest
|
|
MENU SEPARATOR
|
|
MENU SEPARATOR
|
|
LABEL -
|
|
MENU LABEL $PRODUCT_NAME build:`date -R`
|
|
MENU DISABLE
|
|
_EOF
|
|
|
|
# install isolinux binary
|
|
[ -e $MOUNTDIR/usr/share/syslinux/isolinux.bin ] && cp $MOUNTDIR/usr/share/syslinux/isolinux.bin $MOUNTDIR2/boot/isolinux/isolinux.bin ||
|
|
{ echo "Error: /usr/share/syslinux/isolinux.bin not found. Please install the syslinux package.";
|
|
exit 1; }
|
|
|
|
# copy syslinux addons to final root /boot dir
|
|
cp $MOUNTDIR/usr/share/syslinux/vesamenu.c32 $MOUNTDIR2/boot/isolinux/
|
|
|
|
# install memtest
|
|
[ -e $MOUNTDIR/boot/memtest.bin ] && cp $MOUNTDIR/boot/memtest.bin $MOUNTDIR2/boot/isolinux/memtest ||
|
|
{ echo "Error: /boot/memtest.bin not found. Please install the memtest86 package.";
|
|
exit 1; }
|
|
|
|
# copy static files for specific platform
|
|
[ -e $TARGETDIR/platforms/$PLATFORM/root ] &&
|
|
cp -a $TARGETDIR/platforms/$PLATFORM/root/* $MOUNTDIR2/
|
|
|
|
# copy localized static files for specific platform
|
|
[ "$LANGUAGE" -a -e $TARGETDIR/platforms/$PLATFORM/root-$LANGUAGE ] &&
|
|
cp -a $TARGETDIR/platforms/$PLATFORM/root-$LANGUAGE/* $MOUNTDIR2/
|
|
|
|
# add buildinfo
|
|
buildinfo="`cat $MOUNTDIR/etc/openmamba-release` [$PRODUCT_NAME build:`date +%c`]"
|
|
sed -i "s|%buildinfo%|$buildinfo|" $MOUNTDIR2/boot/isolinux/menu.txt
|
|
|
|
echo "Adding binary packages from pkggroups.db..."
|
|
. $LOCALSTATEDIR/.${MEDIA_NAMES[0]}.distinfo
|
|
LANG=${LANGUAGE:0:2} . $MOUNTDIR/usr/share/openmamba/pkggroups.db
|
|
|
|
#INSTALLED=(`echo "$INSTALLED"|sort|uniq`)
|
|
#ALL_PKGS=(`echo "$ALL_PKGS"|sort|uniq`)
|
|
#
|
|
#unset SELECTED_PACKAGES
|
|
#i=0
|
|
#for p in ${ALL_PKGS[*]}; do
|
|
# while [[ ${INSTALLED[i]} < $p ]]; do
|
|
## SELECTED_PACKAGES="$SELECTED_PACKAGES ${INSTALLED[i]}"
|
|
# i=`expr $i + 1`
|
|
# done
|
|
# SELECTED_PACKAGES="$SELECTED_PACKAGES $p"
|
|
#done
|
|
|
|
add_binary_packages_to_repository $MOUNTDIR2/openmamba "$ALL_PKGS $EXTRA_PKGS" "$INSTALLED"
|
|
echo "Generating APT database..."
|
|
ln -s RPMS/$arch $MOUNTDIR2/openmamba/RPMS.$arch
|
|
genbasedir $MOUNTDIR2/openmamba
|
|
mkdir $MOUNTDIR2/.disk
|
|
cat $MOUNTDIR/etc/openmamba-release > $MOUNTDIR2/.disk/info
|
|
|
|
# Finally produce the media
|
|
MOUNTDIR=$MOUNTDIR2 produce_media $MEDIA_NAME
|
|
|
|
for i in $SUBPLATFORM; do
|
|
. $TARGETDIR/platforms/$i/settings.inc
|
|
CURR_MEDIA_NAME=`PLATFORM=$i media_name`
|
|
cat >> $LOCALSTATEDIR/.$MEDIA_NAME.inc.html << _EOF
|
|
<br><p><b>Root target(s):</b>
|
|
<div><table width="90%"><tr><td>
|
|
_EOF
|
|
cat $LOCALSTATEDIR/.$CURR_MEDIA_NAME.inc.html >> \
|
|
$LOCALSTATEDIR/.$MEDIA_NAME.inc.html
|
|
echo "</td></tr></table></div>" >> $LOCALSTATEDIR/.$MEDIA_NAME.inc.html
|
|
done
|
|
|
|
exit 0
|