Welcome! Log In Create A New Profile

Advanced

Stuck on waiting for root device...

Posted by oleteacher 
Stuck on waiting for root device...
March 17, 2017 09:28PM
Finally got around to gaining SSH using serial method. All seemed to go well.

Used "Updated 24 Feb 2015" @ http://forum.doozan.com/read.php?2,12096 to create on SD card.

Looking at serial console everything seems to go good until:

Begin: Waiting for root file system ... done.
Gave up waiting for root device.  Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
   - Check root= (did the system wait for the right device?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT!  /dev/mmcblk0p1 does not exist.  Dropping to a shell!
modprobe: module i8042 not found in modules.dep
[   26.069288] uhci_hcd: USB Universal Host Controller Interface driver
[   26.090372] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[   26.111949] usbcore: registered new interface driver usbhid
[   26.117618] usbhid: USB HID core driver


BusyBox v1.22.1 (Debian 1:1.22.0-9+b1) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/bin/sh: can't access tty; job control turned off
(initramfs) [  189.005008] random: nonblocking pool is initialized

(initramfs)

Any input on solution greatly appreciated.

Susan
Re: Stuck on waiting for root device...
March 17, 2017 10:44PM
Susan,

> Finally got around to gaining SSH using serial met
> hod. All seemed to go well.

> Used "Updated 24 Feb 2015" @ http://forum.doozan.c
> om/read.php?2,12096 to create on SD card.

Is this the Pogo V4 box?

That's the 3.18.5 rootfs. Not the latest, but it should be OK.

>
> Looking at serial console everything seems to go g
> ood until:
>
>
> Begin: Waiting for root file system ... done.
> Gave up waiting for root device.  Common problems:
> - Boot args (cat /proc/cmdline)
> - Check rootdelay= (did the system wait long en
> ough?)
> - Check root= (did the system wait for the righ
> t device?)
> - Missing modules (cat /proc/modules; ls /dev)
> ALERT!  /dev/mmcblk0p1 does not exist.  Dropping t
> o a shell!
> modprobe: module i8042 not found in modules.dep
> [   26.069288] uhci_hcd: USB Universal Host Contro
> ller Interface driver
> [   26.090372] ohci_hcd: USB 1.1 'Open' Host Contr
> oller (OHCI) Driver
> [   26.111949] usbcore: registered new interface d
> river usbhid
> [   26.117618] usbhid: USB HID core driver
> 
> 
> BusyBox v1.22.1 (Debian 1:1.22.0-9+b1) built-in sh
> ell (ash)
> Enter 'help' for a list of built-in commands.
> 
> /bin/sh: can't access tty; job control turned off
> (initramfs) [  189.005008] random: nonblocking poo
> l is initialized
> 
> (initramfs)
>
>
> Any input on solution greatly appreciated.
>

So you do have serial console.

1. Power up, interrupt serial console and

printenv
boot

Please post the entire serial log, from u-boot banner until the initramfs prompt (this is where the rootfs could not be mounted, so the kernel throw you out to the temporary rootfs).

Note: whenenver you have booting problem, you should always post which box, and the entire serial log and u-boot envs. It will help me pinpoint the problem quicker.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Stuck on waiting for root device...
March 17, 2017 10:54PM
Yes, it is the Pogo V4. My bad, should have stated that.

Yes, started out with older version. Had issues with newer so picked it at random:)

Unfortunately no boot:(
Re: Stuck on waiting for root device...
March 17, 2017 11:00PM
:) the problem is easy to solve if you do this:

Quote

1. Power up, interrupt serial console and

printenv
boot

Please post the entire serial log, from u-boot banner until the initramfs prompt (this is where the rootfs could not be mounted, so the kernel throw you out to the temporary rootfs).

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Stuck on waiting for root device...
March 17, 2017 11:11PM
bodhi Wrote:
-------------------------------------------------------
> :) the problem is easy to solve if you do this:
>
>
Quote

1. Power up, interrupt serial console and
>
> printenv
> boot
>
> Please post the entire serial log, from u-boot ban
> ner until the initramfs prompt (this is where the
> rootfs could not be mounted, so the kernel throw y
> ou out to the temporary rootfs).

Ok, thank you. Here is what I get after interrupt:

Pogov4> printenv
arcNumber=3960
baudrate=115200
bootcmd=run bootcmd_mmc; run bootcmd_usb; run bootcmd_sata; run bootcmd_pogo; reset
bootcmd_mmc=run mmc_init; run set_bootargs_mmc; run mmc_boot
bootcmd_sata=run sata_init; run set_bootargs_sata; run sata_boot;
bootcmd_usb=run usb_init; run set_bootargs_usb; run usb_boot;
bootdelay=10
console=ttyS0,115200
device=0:1
ethact=egiga0
ethaddr=00:25:31:05:25:4a
if_netconsole=ping $serverip
ipaddr=192.168.0.231
led_error=orange blinking
led_exit=green off
led_init=green blinking
machid=F78
mainlineLinux=yes
mmc_boot=mw 0x800000 0 1; run mmc_load_uimage; if run mmc_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
mmc_init=mmc rescan
mmc_load_uimage=ext2load mmc $device 0x800000 /boot/uImage
mmc_load_uinitrd=ext2load mmc $device 0x1100000 /boot/uInitrd
mmc_root=/dev/mmcblk0p1
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:2M(u-boot),3M(uImage),3M(uImage2),8M(failsafe),112M(root)
partition=nand0,2
preboot_nc=run if_netconsole start_netconsole
rootdelay=10
rootfstype=ext3
sata_boot=mw 0x800000 0 1; run sata_load_uimage; if run sata_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
sata_init=ide reset
sata_load_uimage=ext2load ide $device 0x800000 /boot/uImage
sata_load_uinitrd=ext2load ide $device 0x1100000 /boot/uInitrd
sata_root=/dev/sda1
serverip=192.168.0.220
set_bootargs_mmc=setenv bootargs console=$console root=$mmc_root rootdelay=$rootdelay rootfstype=$rootfstype $mtdparts
set_bootargs_sata=setenv bootargs console=$console root=$sata_root rootdelay=$rootdelay rootfstype=$rootfstype $mtdparts
set_bootargs_usb=setenv bootargs console=$console root=$usb_root rootdelay=$rootdelay rootfstype=$rootfstype $mtdparts
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;
stderr=serial
stdin=serial
stdout=serial
usb_boot=mw 0x800000 0 1; run usb_load_uimage; if run usb_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
usb_init=usb start
usb_load_uimage=ext2load usb $device 0x800000 /boot/uImage
usb_load_uinitrd=ext2load usb $device 0x1100000 /boot/uInitrd
usb_root=/dev/sda1
usb_rootfstype=ext3

Environment size: 2275/131068 bytes
Pogov4> boot

MMC rescan: current device # 0 initialized OK
2877273 bytes read in 1435 ms (1.9 MiB/s)
6535284 bytes read in 1670 ms (3.7 MiB/s)
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   Linux-3.18.5-kirkwood-tld-1
   Created:      2017-03-18   1:28:36 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2877209 Bytes = 2.7 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 01100000 ...
   Image Name:   initramfs-3.18.5-kirkwood-tld-1
   Created:      2015-02-19   1:49:36 UTC
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    6535220 Bytes = 6.2 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
Using machid 0xf78 from environment

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.18.5-kirkwood-tld-1 (root@tldDebian) (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 PREEMPT Thu Feb 5 17:58:07 PST 2015
[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=0005397f
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine model: Seagate GoFlex Net
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mmcblk0p1 rootdelay=10 rootfstype=ext3 mtdparts=orion_nand:2M(u-boot),3M(uImage),3M(uImage2),8M(failsafe),112M(root)
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Memory: 114936K/131072K available (5640K kernel code, 365K rwdata, 1920K rodata, 268K init, 305K bss, 16136K reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xffe00000   (2048 kB)
[    0.000000]     vmalloc : 0xc8800000 - 0xff000000   ( 872 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc076a240   (7561 kB)
[    0.000000]       .init : 0xc076b000 - 0xc07ae000   ( 268 kB)
[    0.000000]       .data : 0xc07ae000 - 0xc08096fc   ( 366 kB)
[    0.000000]        .bss : 0xc08096fc - 0xc0855d84   ( 306 kB)
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000024] sched_clock: 32 bits at 166MHz, resolution 6ns, wraps every 25769803770ns
[    0.000626] Console: colour dummy device 80x30
[    0.000672] Calibrating delay loop... 795.44 BogoMIPS (lpj=3977216)
[    0.090158] pid_max: default: 32768 minimum: 301
[    0.090366] Security Framework initialized
[    0.090524] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.090556] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.091670] Initializing cgroup subsys devices
[    0.091720] Initializing cgroup subsys freezer
[    0.091769] Initializing cgroup subsys net_cls
[    0.091802] Initializing cgroup subsys blkio
[    0.091957] CPU: Testing write buffer coherency: ok
[    0.092629] Setting up static identity map for 0x557418 - 0x557470
[    0.093092] mvebu-soc-id: MVEBU SoC ID=0x6281, Rev=0x3
[    0.096820] devtmpfs: initialized
[    0.100906] prandom: seed boundary self test passed
[    0.106904] prandom: 100 self tests passed
[    0.106932] pinctrl core: initialized pinctrl subsystem
[    0.107685] regulator-dummy: no parameters
[    0.114766] NET: Registered protocol family 16
[    0.115492] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.140177] cpuidle: using governor ladder
[    0.170174] cpuidle: using governor menu
[    0.170808] Feroceon L2: Enabling L2
[    0.170873] Feroceon L2: Cache support initialised.
[    0.171457] [Firmware Info]: /ocp@f1000000/ethernet-controller@72000/ethernet0-port@0: local-mac-address is not set
[    0.177783] No ATAGs?
[    0.212562] vgaarb: loaded
[    0.213118] usbcore: registered new interface driver usbfs
[    0.213236] usbcore: registered new interface driver hub
[    0.213356] usbcore: registered new device driver usb
[    0.214949] Switched to clocksource orion_clocksource
[    0.270267] NET: Registered protocol family 2
[    0.271372] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.271409] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.271440] TCP: Hash tables configured (established 1024 bind 1024)
[    0.271543] TCP: reno registered
[    0.271567] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.271599] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.271891] NET: Registered protocol family 1
[    0.272414] RPC: Registered named UNIX socket transport module.
[    0.272432] RPC: Registered udp transport module.
[    0.272442] RPC: Registered tcp transport module.
[    0.272452] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.272840] Unpacking initramfs...
[    1.087449] Freeing initrd memory: 6384K (c1100000 - c173c000)
[    1.087647] NetWinder Floating Point Emulator V0.97 (double precision)
[    1.089618] futex hash table entries: 256 (order: -1, 3072 bytes)
[    1.089665] Initialise system trusted keyring
[    1.089816] audit: initializing netlink subsys (disabled)
[    1.089894] audit: type=2000 audit(1.080:1): initialized
[    1.091060] zpool: loaded
[    1.091085] zbud: loaded
[    1.091520] VFS: Disk quotas dquot_6.5.2
[    1.091607] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    1.092463] NFS: Registering the id_resolver key type
[    1.092522] Key type id_resolver registered
[    1.092535] Key type id_legacy registered
[    1.092574] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.092595] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    1.092911] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    1.093383] msgmni has been set to 236
[    1.093606] Key type big_key registered
[    1.097954] alg: No test for stdrng (krng)
[    1.098017] Key type asymmetric registered
[    1.098042] Asymmetric key parser 'x509' registered
[    1.098178] bounce: pool size: 64 pages
[    1.098314] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    1.098347] io scheduler noop registered
[    1.098369] io scheduler deadline registered
[    1.098450] io scheduler cfq registered (default)
[    1.100368] kirkwood-pinctrl f1010000.pin-controller: registered pinctrl driver
[    1.101315] irq: Cannot allocate irq_descs @ IRQ33, assuming pre-allocated
[    1.101904] irq: Cannot allocate irq_descs @ IRQ65, assuming pre-allocated
[    1.102671] mv_xor f1060800.xor: Marvell shared XOR driver
[    1.135060] mv_xor f1060800.xor: Marvell XOR: ( xor cpy )
[    1.175045] mv_xor f1060800.xor: Marvell XOR: ( xor cpy )
[    1.175319] mv_xor f1060900.xor: Marvell shared XOR driver
[    1.215041] mv_xor f1060900.xor: Marvell XOR: ( xor cpy )
[    1.255040] mv_xor f1060900.xor: Marvell XOR: ( xor cpy )
[    1.255661] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    1.257603] console [ttyS0] disabled
[    1.257693] f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 26, base_baud = 10416666) is a 16550A
[    1.855982] console [ttyS0] enabled
[    1.861678] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xf1
[    1.868059] nand: Hynix H27U1G8F2BTR-BC
[    1.871885] nand: 128MiB, SLC, page size: 2048, OOB size: 64
[    1.877555] Scanning device for bad blocks
[    1.996830] 5 cmdlinepart partitions found on MTD device orion_nand
[    2.003073] Creating 5 MTD partitions on "orion_nand":
[    2.008225] 0x000000000000-0x000000200000 : "u-boot"
[    2.013774] 0x000000200000-0x000000500000 : "uImage"
[    2.019299] 0x000000500000-0x000000800000 : "uImage2"
[    2.024858] 0x000000800000-0x000001000000 : "failsafe"
[    2.030561] 0x000001000000-0x000008000000 : "root"
[    2.037389] libphy: Fixed MDIO Bus: probed
[    2.041926] libphy: orion_mdio_bus: probed
[    2.054642] mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4
[    3.133186] mv643xx_eth_port mv643xx_eth_port.0 eth0: port 0 with MAC address 00:25:31:05:25:4a
[    3.142221] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    3.148763] ehci-pci: EHCI PCI platform driver
[    3.153296] ehci-orion: EHCI orion driver
[    3.157562] orion-ehci f1050000.ehci: EHCI Host Controller
[    3.163064] orion-ehci f1050000.ehci: new USB bus registered, assigned bus number 1
[    3.170940] orion-ehci f1050000.ehci: irq 29, io mem 0xf1050000
[    3.195004] orion-ehci f1050000.ehci: USB 2.0 started, EHCI 1.00
[    3.201242] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    3.208038] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.215261] usb usb1: Product: EHCI Host Controller
[    3.220124] usb usb1: Manufacturer: Linux 3.18.5-kirkwood-tld-1 ehci_hcd
[    3.226826] usb usb1: SerialNumber: f1050000.ehci
[    3.232578] hub 1-0:1.0: USB hub found
[    3.236442] hub 1-0:1.0: 1 port detected
[    3.241666] mousedev: PS/2 mouse device common for all mice
[    4.255002] rtc-mv f1010300.rtc: internal RTC not ticking
[    4.260697] i2c /dev entries driver
[    4.267775] hidraw: raw HID events driver (C) Jiri Kosina
[    4.273702] drop_monitor: Initializing network drop monitor service
[    4.280338] TCP: cubic registered
[    4.283656] NET: Registered protocol family 17
[    4.288312] Key type dns_resolver registered
[    4.293745] Loading compiled-in X.509 certificates
[    4.298606] registered taskstats version 1
[    4.304175] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    4.313734] Freeing unused kernel memory: 268K (c076b000 - c07ae000)
Loading, please wait...
[    4.418086] systemd-udevd[57]: starting version 215
[    4.436102] random: systemd-udevd urandom read with 6 bits of entropy available
[    4.651300] SCSI subsystem initialized
[    4.734534] sata_mv f1080000.sata: slots 32 ports 2
[    4.779232] scsi host0: sata_mv
[    4.795115] scsi host1: sata_mv
[    4.798755] ata1: SATA max UDMA/133 irq 32
[    4.802842] ata2: SATA max UDMA/133 irq 32
[    5.185019] ata1: SATA link down (SStatus 0 SControl F300)
[    5.555029] ata2: SATA link down (SStatus 0 SControl F300)
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Waiting for root file system ... done.
Gave up waiting for root device.  Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
   - Check root= (did the system wait for the right device?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT!  /dev/mmcblk0p1 does not exist.  Dropping to a shell!
modprobe: module i8042 not found in modules.dep
[   26.084798] uhci_hcd: USB Universal Host Controller Interface driver
[   26.105626] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[   26.127110] usbcore: registered new interface driver usbhid
[   26.132675] usbhid: USB HID core driver


BusyBox v1.22.1 (Debian 1:1.22.0-9+b1) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/bin/sh: can't access tty; job control turned off
(initramfs) 

Re: Stuck on waiting for root device...
March 17, 2017 11:37PM
Susan,

Yours is an older version of u-boot. Again, posting the serial log from the u-boot banner would help telling me right away which version. For example, the log should begin here:

Quote

U-Boot 2016.05-tld-1 (Jun 12 2016 - 13:41:47 -0700)
Pogoplug V4

But based on the envs, looks like 2014.xx version?

Here is the problem:

1. You have chosen to boot with the DTB appended to uImage

mmc_boot=mw 0x800000 0 1; run mmc_load_uimage; if run mmc_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
mmc_init=mmc rescan
mmc_load_uimage=ext2load mmc $device 0x800000 /boot/uImage
mmc_load_uinitrd=ext2load mmc $device 0x1100000 /boot/uInitrd

But, the DTB that was appended to uImage was an incorrect file:
[    0.000000] Machine model: Seagate GoFlex Net

So in the rootfs that you have (3.18.5-kirkwood-tld-1), you need to redo the uImgage to append the Pogo V4 DTB

Quote

4. Create uImage with embbeded DTB (If this is not first time installation, please see Note 2 below).

I'm using the GoFlex Net booting with USB drive as an example here. Please replace its name (kirkwood-goflexnet.dtb) with the box you are installing on (for example, kirkwood-pogo_e02.dtb). Look inside /media/sdb1/boot/dts/ for the correct DTB file name for your box.

cd /media/sdb1/boot
cp -a zImage-3.18.5-kirkwood-tld-1 zImage.fdt
cat dts/kirkwood-goflexnet.dtb >> zImage.fdt
mv uImage uImage.orig
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Linux-3.18.5-kirkwood-tld-1 -d zImage.fdt uImage
sync

That bold line above should have been:

cat dts/kirkwood-pogoplug_v4.dtb >> zImage.fdt

So you don't need to install new u-boot yet. Just redo the uImage as I described above and it should boot. If it still throw you out to initramfs, then we can add another bootarg to help the kernel to find the right rootfs.


BTW, with the new u-boot (20116.05), the u-boot envs are set up to find the rootfs automatically. The version you have installed did not.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Stuck on waiting for root device...
March 18, 2017 12:05AM
Arggg:) Now I cannot get SD card to mount even after format.

Think been at this way too many hours today, time to rest the head. Will get back on this tomorrow and try again.

Will follow your new instructions (if can get SD card to mount) and report back. Thank you so much for help.

Susan
Re: Stuck on waiting for root device...
March 18, 2017 06:03AM
Your help solved the issue bodhi, thank you!

Now I will have to read up on installing new uboot and debian. Basically all I am wanting to do is setup PHP development area (and attached two USB drives) so we can use it in classroom project.

Thank you again,

Susan
Re: Stuck on waiting for root device...
March 18, 2017 01:58PM
oleteacher Wrote:
-------------------------------------------------------
> Your help solved the issue bodhi, thank you!
>
> Now I will have to read up on installing new uboot
> and debian. Basically all I am wanting to do is se
> tup PHP development area (and attached two USB dri
> ves) so we can use it in classroom project.
>
> Thank you again,
>
> Susan

Cool!

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Author:

Your Email:


Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: