Hi, On Sun, Aug 22, 2004 at 01:07:08PM +0200, Osamu Aoki wrote: > Here is the latest stable code for bugreporter-udeb.postinst with > $REPORT_MEDIA_DEV support.
:-( Now I know why REPORT_MEDIA_DEV=nofloppy boot parameter did not work. Because code was buggy just for this feature. I changed it again and worked without exporting these with other packages. Looks like all of these are exported. Nice. Now you can store log to not only to normal floppy but also to * USB memory stick * USB HDD * USB floppy * IDE HDD * IDE ZIP * etc. as long as there is a vfat partition. Osamu
#!/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 if [ "$REPORT_MEDIA_DEV" = "nofloppy" ]; then NO_FLOPPY=1 DEVS="" log "Do not search floppy devices" else DEVS="$REPORT_MEDIA_DEV" log "Search a device from $REPORT_MEDIA_DEV" fi else DEVS="" 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