Hi,

I hope this is not considered thread-highjacking but it sort of fits into this 
thread, so here it goes:

I'm trying to follow these instructions to build a live CD based on 4.0 
stable:

http://www.onlamp.com/pub/a/bsd/2005/07/14/openbsd_live.html

I'm in trouble when building the RAMDISK kernel with the modified 
Makefile.inc:

cd /usr/src/distrib/i386/ramdisk_cd && make

make stops with an error because it tries to copy too much into a mounted 
device with too little space:

#######make output#######
...
rm -f bsd
ld -Ttext 0xD0200120 -e start -N -S -x -o bsd ${SYSTEM_OBJ} vers.o
text    data    bss     dec     hex
4730816 2163584 867984  7762384 7671d0
cp 
/usr/src/distrib/i386/ramdisk_cd/../../../sys/arch/i386/compile/RAMDISK_CD/bsd 
bsd
cc -DDEBUG -o 
rdsetroot /usr/src/distrib/i386/ramdisk_cd/../../common/elfrdsetroot.c
cp bsd bsd.rd
/usr/src/distrib/i386/ramdisk_cd/rdsetroot bsd.rd < mr.fs
segment 0 rd_root_size_off = 0x490740
rd_root_image_off = 0x490760
rd_root_size  val: 0x001DB000 (3800 blocks)
copying root image...
...copied 1945600 bytes
cp bsd.rd bsd.strip
strip -s -R .comment -K cngetc bsd.strip
gzip -c9 bsd.strip > bsd.gz
dd if=/dev/zero of=/var/tmp/image.27740 bs=10k count=288
288+0 records in
288+0 records out
2949120 bytes transferred in 0.271 secs (10881719 bytes/sec)
vnconfig -v -c svnd0 /var/tmp/image.27740
svnd0: 2949120 bytes on /var/tmp/image.27740
disklabel -w -r svnd0 floppy288
newfs -m 0 -o space -i 524288 -c 80 /dev/rsvnd0a
/dev/rsvnd0a:   5760 sectors in 80 cylinders of 2 tracks, 36 sectors
        2.8MB in 1 cyl groups (80 c/g, 2.81MB/g, 32 i/g)
super-block backups (for fsck -b #) at:
 32,
mount /dev/svnd0a /mnt
cp /usr/mdec/boot /usr/src/distrib/i386/ramdisk_cd/boot
strip -s -R .comment -K cngetc /usr/src/distrib/i386/ramdisk_cd/boot
dd if=/usr/src/distrib/i386/ramdisk_cd/boot of=/mnt/boot bs=512
77+1 records in
77+1 records out
39572 bytes transferred in 0.016 secs (2371001 bytes/sec)
dd if=bsd.gz of=/mnt/bsd bs=512

/mnt: write failed, file system is full
dd: /mnt/bsd: No space left on device
5601+0 records in
5600+0 records out
2867200 bytes transferred in 1.233 secs (2324260 bytes/sec)
*** Error code 1

Stop in /usr/src/distrib/i386/ramdisk_cd (line 30 
of /usr/src/distrib/i386/ramdisk_cd/../common/Makefile.inc).

#########################

I haven't really understood what the 2.8MB device is for regarding the whole 
process. Can anybody explain and propose a solution? Can't I just copy the 
stuff to another device, that's bigger? If this is just for creating a floppy 
image that's bootable and is insignificant regarding my live CD, can I just 
delete these instructions from Makefile.inc?

The instructions by Kevin Lo say:
In the /usr/src/distrib/i386/ramdisk_cd directory, copy the two files bsd and 
cdrom36.fs to the /livecd directory.

The cdrom36.fs in my case would be cdrom40.fs and has a fliesize bigger than 
2.8MB anyway? I'm not able to spot any reference to any cdrom{version}.fs 
file being created in the Makefile.inc. What's "my problem"?

Since I haven't been able to apply the patch 
to /usr/src/distrib/i386/common/Makefile.inc with "patch" I deleted the lines 
with a "-" in front of it in the patch file and added the lines with the "+" 
at the appropriate lines. Just to avoid simple mistakes, I'll include the 
whole Makefile.inc here. Sorry, if this is not appropriate.

########Makefile.inc##########

#       $OpenBSD: Makefile.inc,v 1.15 2004/11/25 22:02:08 deraadt Exp $

TOP=            ${.CURDIR}/..

.include "${TOP}/Makefile.inc"
IMAGE=          mr.fs
CBIN?=          instbin
CRUNCHCONF?=    ${CBIN}.conf
LISTS?=         ${.CURDIR}/../common/list
UTILS?=         ${.CURDIR}/../../miniroot

MOUNT_POINT=    /mnt
MTREE=          ${UTILS}/mtree.conf

XNAME?=         floppy
FS?=            ${XNAME}${REV}.fs
VND?=           svnd0
VND_DEV=        /dev/${VND}a
VND_RDEV=       /dev/r${VND}a
VND_CRDEV=      /dev/r${VND}c
PID!=           echo $$$$
REALIMAGE!=     echo /var/tmp/image.${PID}
BOOT=           ${DESTDIR}/usr/mdec/boot
FLOPPYSIZE?=    144
FLOPPYTYPE?=    floppy3

all:    ${FS}

${FS}:  bsd.gz
        dd if=/dev/zero of=${REALIMAGE} bs=10k count=${FLOPPYSIZE}
        vnconfig -v -c ${VND} ${REALIMAGE}
        disklabel -w -r ${VND} ${FLOPPYTYPE}
        newfs -m 0 -o space -i 524288 -c 80 ${VND_RDEV}
        mount ${VND_DEV} ${MOUNT_POINT}
        cp ${BOOT} ${.OBJDIR}/boot
        strip -s -R .comment -K cngetc ${.OBJDIR}/boot
        dd if=${.OBJDIR}/boot of=${MOUNT_POINT}/boot bs=512
        dd if=bsd.gz of=${MOUNT_POINT}/bsd bs=512
        /usr/mdec/installboot -v ${MOUNT_POINT}/boot \
            ${DESTDIR}/usr/mdec/biosboot ${VND_CRDEV}
        @echo ""
        @df -i ${MOUNT_POINT}
        @echo ""
        umount ${MOUNT_POINT}
        vnconfig -u ${VND}
        cp ${REALIMAGE} ${FS}
        rm ${REALIMAGE}

DISKTYPE?=       rdroot
NBLKS?=          3800
# minfree, opt, b/i  trks, sects, cpg
NEWFSARGS= -m 0 -o space -c 16 -i 4096

bsd.gz: bsd.rd
        cp bsd.rd bsd.strip
        strip -s -R .comment -K cngetc bsd.strip
        gzip -c9 bsd.strip > bsd.gz

bsd.rd: ${IMAGE} bsd rdsetroot
        cp bsd bsd.rd
        ${.OBJDIR}/rdsetroot bsd.rd < ${IMAGE}


bsd:
        cd ${.CURDIR}/../../../sys/arch/i386/conf && config ${RAMDISK}
        cd ${.CURDIR}/../../../sys/arch/i386/compile/${RAMDISK} && \
            make clean && make depend && COPTS=-Os make
        cp ${.CURDIR}/../../../sys/arch/i386/compile/${RAMDISK}/bsd bsd

${IMAGE}: ${CBIN} rd_setup do_files rd_teardown

rd_setup: ${CBIN}
        dd if=/dev/zero of=${REALIMAGE} bs=512 count=${NBLKS}
        vnconfig -v -c ${VND} ${REALIMAGE}
        disklabel -w -r ${VND} ${DISKTYPE}
        newfs ${NEWFSARGS} ${VND_RDEV}
        fsck ${VND_RDEV}
        mount ${VND_DEV} ${MOUNT_POINT}

rd_teardown:
        @df -i ${MOUNT_POINT}
        -umount ${MOUNT_POINT}
        -vnconfig -u ${VND}
        cp ${REALIMAGE} ${IMAGE}
        rm ${REALIMAGE}

rdsetroot:      ${TOP}/../common/elfrdsetroot.c
        ${HOSTCC} -DDEBUG -o rdsetroot ${TOP}/../common/elfrdsetroot.c

unconfig:
        -umount -f ${MOUNT_POINT}
        -vnconfig -u ${VND}

.PRECIOUS:      ${IMAGE}

install:
.ifndef NOBSDRD
        cp bsd.rd ${DESTDIR}/snapshot/bsd.rd
.endif
        cp ${FS} ${DESTDIR}/snapshot/${FS}

${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
        crunchgen -E -D ${BSDSRCDIR} -L ${DESTDIR}/usr/lib \
        -c ${CBIN}.c -e ${CBIN} -m ${CBIN}.mk ${CRUNCHCONF}

${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
        make -f ${CBIN}.mk all
        strip -R .comment ${CBIN}

${CRUNCHCONF}: ${LISTS}
        awk -f ${UTILS}/makeconf.awk CBIN=${CBIN} ${LISTS} > ${CRUNCHCONF}

do_files:
        mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
        TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
            REV=${REV} TARGDIR=${MOUNT_POINT} UTILS=${UTILS} \
            sh ${UTILS}/runlist.sh ${LISTS}
        rm ${MOUNT_POINT}/${CBIN}

clean cleandir:
        /bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}*.cache \
            *.o *.lo *.c bsd bsd.rd bsd.gz bsd.strip floppy*.fs \
            rdsetroot boot ${CRUNCHCONF} ${FS}

.include <bsd.obj.mk>
.include <bsd.subdir.mk>

#########################

Any ideas?

I'm well aware that there might be better ways to create a live CD but I'd 
like to play with the instructions from Kevin Lo if it's at all possible.

thanks a bunch,
Tobias W.

Reply via email to