Brian Vagnoni on 1 Mar 2009 17:28:18 -0800 |
----- Original Message ----- From: Brian Vagnoni > I'm seeing the following as I boot a certain version of firmware on an > embedded device. What command is producing this output in the log? Or > how can I find out which command is producing this output? > > jffs2_scan_eraseblock(): End of filesystem marker found at 0x0 > jffs2_build_filesystem(): unlocking the mtd device... done. > jffs2_build_filesystem(): erasing all blocks after the end marker... > done. > mini_fo: using base directory: / > mini_fo: using storage directory: /jffs ------------------------------- Never mind figured in out. Sorry to bother. Here is the answer if you are mildly interested in OpenWRT. root@OpenWrt:/bin# cat firstboot #!/bin/sh # $Id: firstboot 5544 2006-11-17 03:07:10Z nbd $ . /etc/functions.sh partname="rootfs_data" mtdpart="$(find_mtd_part $partname)" rom=$(awk '/squashfs/ {print $2}' /proc/mounts) jffs=$(awk '/jffs2/ {print $2}' /proc/mounts) dupe() { # <new_root> <old_root> cd $1 echo -n "creating directories... " { cd $2 find . -xdev -type d echo "./dev ./jffs ./mnt ./proc ./tmp" # xdev skips mounted directories cd $1 } | xargs mkdir -p echo "done" echo -n "setting up symlinks... " for file in $(cd $2; find . -xdev -type f;); do case "$file" in ./rom/note) ;; #nothing ./etc/config*|\ ./usr/lib/opkg/info/*) cp -af $2/$file $file;; *) ln -sf /rom/${file#./*} $file;; esac done for file in $(cd $2; find . -xdev -type l;); do cp -af $2/${file#./*} $file done echo "done" } pivot() { # <new_root> <old_root> mount -o move /proc $1/proc && \ pivot_root $1 $1$2 && { mount -o move $2/dev /dev mount -o move $2/tmp /tmp mount -o move $2/sys /sys 2>&- mount -o move $2/jffs /jffs 2>&- return 0 } } fopivot() { # <rw_root> <ro_root> <dupe?> root=$1 { mount -t mini_fo -o base=/,sto=$1 "mini_fo:$1" /mnt 2>&- && root =/mnt } || { [ "$3" = "1" ] && { mount | grep "on $1 type" 2>&- 1>&- || mount -o bind $1 $1 dupe $1 $rom } } pivot $root $2 } ramoverlay() { mkdir -p /tmp/root fopivot /tmp/root /rom 1 } # invoked as an executable [ "${0##*/}" = "firstboot" ] && { [ -z "$mtdpart" ] && { echo "MTD partition not found." exit 1 } [ -z "$rom" ] && { echo "You do not have a squashfs partition; aborting" echo "(firstboot cannot be run on jffs2 based firmwares)" exit 1 } [ "$1" = "switch2jffs" ] && { mount "$mtdpart" /rom/jffs -t jffs2 || exit # try to avoid fs changing while copying mount -o remount,ro none / 2>&- # copy ramoverlay to jffs2 echo -n "copying files ... " cp -a /tmp/root/* /rom/jffs 2>&- echo "done" # switch back to squashfs (temporarily) # and park the ramdisk ontop of /tmp/root pivot /rom /mnt mount -o move /mnt /tmp/root # /jffs is the overlay # /rom is the readonly fopivot /jffs /rom # try to get rid of /tmp/root # this will almost always fail umount /tmp/root 2>&- exit 0 } # script run manually [ \! -z "$jffs" ] && { echo "firstboot has already been run" echo "jffs2 partition is mounted, only resetting files" grep mini_fo /proc/filesystems >&- [ $? != 0 ] && { dupe $jffs $rom exit 0 } || { rm -rf $jffs/* 2>&- mount -o remount $jffs / 2>&- exit 0 } } mtd erase "$partname" mount "$mtdpart" /jffs -t jffs2 fopivot /jffs /rom 1 } root@OpenWrt:/bin# mtd --help mtd: invalid option -- - Usage: mtd [<options> ...] <command> [<arguments> ...] <device> The device is in the format of mtdX (eg: mtd4) or its label. mtd recognizes these commands: unlock unlock the device refresh refresh mtd partition erase erase all data on device write <imagefile>|- write <imagefile> (use - for stdin) to device jffs2write <file> append <file> to the jffs2 partition on the devi ce Following options are available: -q quiet mode (once: no [w] on writing, twice: no status messages) -r reboot after successful command -f force write without trx checks -e <device> erase <device> before executing the command -d <name> directory for jffs2write, defaults to "tmp" -j <name> integrate <file> into jffs2 data when writing an image Example: To write linux.trx to mtd4 labeled as linux and reboot afterwards mtd -r write linux.trx linux root@OpenWrt:/bin# -------------------------------------------------- Brian Vagnoni PGP Digital Fingerprint F076 6EEE 06E5 BEEF EBBD BD36 F29E 850D FC32 3955 -------------------------------------------------- ___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug
|
|