127 lines
4.1 KiB
Bash
127 lines
4.1 KiB
Bash
# livecd post script
|
|
#
|
|
# creates a fake installation aimed at producing a kernel image and initrd
|
|
# for livecd boot
|
|
|
|
# make initramfs
|
|
|
|
for i in \
|
|
`find $MOUNTDIR/lib/modules/${KERNEL_MAJVER}${KERNEL_EXTRAVER}/kernel/drivers/ata/ -name *.ko`; do
|
|
modulename=${i/*ata\//}
|
|
echo "alias scsi_hostadapter ${modulename/\.ko/}" >> $MOUNTDIR/etc/modprobe.conf
|
|
done
|
|
|
|
for i in \
|
|
`find $MOUNTDIR/lib/modules/${KERNEL_MAJVER}${KERNEL_EXTRAVER}/kernel/drivers/scsi/ -name *.ko`; do
|
|
modulename=${i/*\//}
|
|
echo "alias scsi_hostadapter ${modulename/\.ko/}" >> $MOUNTDIR/etc/modprobe.conf
|
|
done
|
|
|
|
cat >> $MOUNTDIR/etc/modprobe.conf << _EOF
|
|
alias scsi_hostadapter ehci-hcd
|
|
alias scsi_hostadapter uhci-hcd
|
|
alias scsi_hostadapter ohci-hcd
|
|
alias scsi_hostadapter usb-storage
|
|
#alias init_module cdrom
|
|
alias init_module sg
|
|
alias init_module sr_mod
|
|
alias init_module ide-cd_mod
|
|
alias init_module usbhid
|
|
alias scsi_hostadapter isofs
|
|
alias init_module squashfs
|
|
_EOF
|
|
|
|
[ -e $MOUNTDIR2/boot/isolinux ] || mkdir -p $MOUNTDIR2/boot/isolinux
|
|
|
|
cp $TARGETDIR/platforms/$PLATFORM/initramfs-include.sh $MOUNTDIR/
|
|
|
|
chroot $MOUNTDIR depmod -ae ${KERNEL_MAJVER}${KERNEL_EXTRAVER}
|
|
|
|
LANG=${LANGUAGE}_${COUNTRY} chroot $MOUNTDIR mkinitramfs \
|
|
--with-udev --postrc=/initramfs-include.sh \
|
|
/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
|
|
|
|
COMMON_OPTS="root= console=tty1 initrd=/boot/initrmfs.gz splash=silent,fadein"
|
|
# configure isolinux boot loader
|
|
cat > $MOUNTDIR2/boot/isolinux/isolinux.cfg << _EOF
|
|
timeout 100
|
|
prompt 1
|
|
display menu.txt
|
|
F1 help.txt
|
|
default 1
|
|
label 1
|
|
kernel /boot/vmlinuz
|
|
append video=uvesafb:800x600-32,ywrap,mtrr $COMMON_OPTS quiet
|
|
label 2
|
|
kernel /boot/vmlinuz
|
|
append video=uvesafb:1024x768-32,ywrap,mtrr $COMMON_OPTS quiet
|
|
label 3
|
|
kernel /boot/vmlinuz
|
|
append video=uvesafb:1280x1024-32,ywrap,mtrr $COMMON_OPTS quiet
|
|
label 1-freevideo
|
|
kernel /boot/vmlinuz
|
|
append video=uvesafb:800x600-32,ywrap,mtrr $COMMON_OPTS quiet
|
|
label 2-freevideo
|
|
kernel /boot/vmlinuz
|
|
append video=uvesafb:1024x768-32,ywrap,mtrr $COMMON_OPTS quiet
|
|
label 3-freevideo
|
|
kernel /boot/vmlinuz
|
|
append video=uvesafb:1280x1024-32,ywrap,mtrr $COMMON_OPTS quiet
|
|
label 4
|
|
kernel /boot/vmlinuz
|
|
append video=uvesafb:800x600-32,ywrap,mtrr $COMMON_OPTS quiet postplug=lowresvideo,freevideo
|
|
label 8
|
|
kernel /boot/vmlinuz
|
|
append video=uvesafb:off $COMMON_OPTS debug debug=1
|
|
label 9
|
|
kernel memtest
|
|
_EOF
|
|
|
|
# install isolinux binary
|
|
[ -e $MOUNTDIR/usr/lib/syslinux/isolinux.bin ] && cp $MOUNTDIR/usr/lib/syslinux/isolinux.bin $MOUNTDIR2/boot/isolinux/isolinux.bin ||
|
|
{ echo "Error: /boot/isolinux.bin not found. Please install the syslinux package.";
|
|
exit 1; }
|
|
|
|
# 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
|
|
releaseinfo=`cat $MOUNTDIR/etc/openmamba-release`
|
|
buildinfo="[ $PRODUCT_NAME `date \"+%x %X\"` ]"
|
|
sed -i "s|%releaseinfo%|$releaseinfo|" $MOUNTDIR2/boot/isolinux/menu.txt
|
|
sed -i "s|%buildinfo%|$buildinfo|" $MOUNTDIR2/boot/isolinux/menu.txt
|
|
|
|
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
|