[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#267219: Bug to USB stick works !



Here is the latest stable code for bugreporter-udeb.postinst with
$REPORT_MEDIA_DEV support.

On Sun, Aug 22, 2004 at 04:13:11AM +0200, Osamu Aoki wrote:
> 
> Please check test iso image which has USB bug report and my
> cdrom-detect at:
>   http://people.debian.org/~osamu/pub/
> and use:  
>     sarge-i386-netinst-bug.iso     new bugreport to floppy and USB 
>                                    with cdrom-detect fix
#!/bin/sh -e 

. /usr/share/debconf/confmodule

log() {
    logger -t bugreporter-udeb -p user.debug "$@"
}

# REPORT_MEDIA_DEV can be set to use non auto detected devices for report
NO_FLOPPY=0
if [ -n "$REPORT_MEDIA_DEV" ]; then
    DEVS="$REPORT_MEDIA_DEV"
else
    DEVS=""
    if [ "$REPORT_MEDIA_DEV" = "nofloppy" ]; then
	NO_FLOPPY=1
    fi
fi

if [ "" = "$DILOGDIR" ]; then
    DILOGDIR=/var/log/
fi
# make sure we have a directory
if [ ! -d $DILOGDIR ]; then
	mkdir -p $DILOGDIR
fi

copy_cdebconf_db() {
    destdir="$1"
    # Save database to disk
    # kill -? <pid-of-debconf>
    cp -a /var/lib/cdebconf "$destdir"
}

db_input critical bugreporter-udeb/insert_floppy || [ $? -eq 30 ]
db_go

log "Genarate files with HW info, debconf database info etc. into $DILOGDIR"
db_progress START 0 7 debian-installer/bugreporter-udeb/title

/bin/package-versions > $DILOGDIR/package-versions
db_progress STEP 1

/bin/report-hw > $DILOGDIR/hardware-summary
db_progress STEP 1

# Idea from rootskel/src-bootfloppy. [2004-08-20]
mountfloppy() {
    # Try mounting USB memory devices (how about firewire?)
    if [ -x /usr/sbin/usb-discover ]; then
	/usr/sbin/usb-discover
    fi
    # This is currently needed or usb-storage won't load (for ide_fix_driveid).
    modprobe ide-core >/dev/null
    modprobe usb-storage >/dev/null
    modprobe sd_mod >/dev/null
    log "Required modules activated."
    if [ "$DEVS" = "" ]; then
	# Find possible block devices on floppy
	if [ -d /dev/floppy ] && [ "$NO_FLOPPY" = "0" ]; then
	    DEVS="$DEVS `find /dev/floppy -type b -name '?' || true`"
	fi
	# Find possible block devices on scsi (including USB floppy and stick)
	if [ -d /dev/scsi ]; then
	    DEVS="$DEVS `find /dev/scsi -type b || true`"
	    #DEVS="$DEVS `find /dev/scsi -type b \( -name 'part*' -o -name '?' \) ||true`"
	fi
    fi
    log "Devices found: $DEVS"
    db_progress STEP 1

    # Mount first vfat block device on /floppy even if USB storage.
    MOUNTED=0
    for dev in $DEVS; do
	if [ -b "$dev" ] && mount $dev -o rw -tvfat /floppy 2>/dev/null; then
	    MOUNTED=1
	    break
	else
	    log "This can not be mounted as vfat, rw: $dev"
	    umount /floppy 2>/dev/null || true
	fi
    done

    if [ "$MOUNTED" = 0 ]; then
	exit 1
    fi

    log "On /floppy, mounted a vfat/rw/block device: $dev"
    return 0
}

if [ -d /floppy ]; then
    umount /floppy 2>/dev/null || true
else
    mkdir /floppy
fi

# Find a floppy or USB storage and mount it on /floppy
if mountfloppy ; then
    db_progress STEP 1
    # Let's try to save many several install logs.
    for i in 00 01 02 03 04 05 06 07 08 09 \
             10 11 12 13 14 15 16 17 18 19 \
             20 21 22 23 24 25 26 27 28 29 END ; do
	if [ "$i" = "END" ] ; then
	    log "No space in the storage media."
	    exit 1
	fi
	LOGDIR=debian${i}
	if [ ! -e "/floppy/$LOGDIR" ] ; then
	    log "Found an unused directory name: $LOGDIR"
	    break
	fi
    done
    db_progress STEP 1
    log "Save d-i install logs to $LOGDIR"
    mkdir /floppy/$LOGDIR
    for file in \
	    /var/log/messages \
	    /var/log/syslog \
	    /var/log/partman \
	    $DILOGDIR/hardware-summary \
	    $DILOGDIR/package-versions; do 
	if [ -e $file ]; then
	    cp $file /floppy/$LOGDIR/
	fi
    done
    db_progress STEP 1

    umount /floppy 2>/dev/null || true
    db_progress STEP 1
    db_progress STOP
else
    db_progress STEP 4
    db_progress STOP
    db_input critical bugreporter-udeb/no_floppy || [ $? -eq 30 ]
    db_go
fi

Attachment: signature.asc
Description: Digital signature


Reply to: