Grafpup-2.xx fourth (and final) alpha

For talk and support relating specifically to Puppy derivatives
Message
Author
User avatar
Nathan F
Posts: 1764
Joined: Wed 08 Jun 2005, 14:45
Location: Wadsworth, OH (occasionally home)
Contact:

#181 Post by Nathan F »

I see probedisk showed the sata drive as "Direct-Access", just as Dougal told me it would. That invalidates at least one script I wrote.

I wouldn't be too concerned about the probepart output for hda. As Dougal mentioned these utilities are not all that reliable, which is why we're doing these other exercises. I was interested myself in the output, partially for confirmation of the above issue. More reliable for finding your partitions probably would be "cat /proc/partitions", but frankly I don't know how probepart is getting it's information.

Dougal - you had me run a bunch of similar lines but in /proc a while back, and after poking around it seemed most of the info I would need for my hardware showed up there. Any reason why it wouldn't apply to sata hardware as well? As I mentioned before I have absolutely no sata hardware to test, so I', flying a bit blind here. I know ide drives will show up in /proc/ide, but if they are sata would it be /proc/ata?

Nathan
Bring on the locusts ...

User avatar
Dougal
Posts: 2502
Joined: Wed 19 Oct 2005, 13:06
Location: Hell more grotesque than any medieval woodcut

#182 Post by Dougal »

Mike: run

Code: Select all

./puppyinstaller
(the dot means "current directory", so it's like giving the full path)

You are welcome to run those commands in both Puppy and grafpup... Maybe we'll discover the different kernels detect things differently...


Simon: the "none" entries in the filesystem part of the hda partitions are what yuo usually get in case of a windows Extended partition -- the "none" partitions are usually some kind of "subpartitions" or something... try disktype /dev/hda and see if that helps clarify.

As for the commands not working: isn't there a /sys/block/hda partition at all?

This might mean we should try what Nathan mentioned (and I had given up on...): looking in /proc.

Try running

Code: Select all

find /proc -name 'hda'
and see what you get.
If you get something, try looking into that dir.

Also:

Code: Select all

find /sys -name '1:0:0:0'
Nathan: SATA is shown as Direct-Access, but it seems like there's always "ATA" as the "vendor" (first part of probedisk info).
So you could grep for "ATA" in probedisk output...
You can also grep -i "$MODEL" /proc/scsi/scsi and check the "Vendor"...

As for searching in /sys, Jesse found that for removable USB devices there is the "model" file in /sys/block/sda/device/, so I was thinking maybe all scsi devices have that... I guess not.

Maybe only removables should be checked in /sys and HD's in /proc?
What's the ugliest part of your body?
Some say your nose
Some say your toes
But I think it's your mind

User avatar
Nathan F
Posts: 1764
Joined: Wed 08 Jun 2005, 14:45
Location: Wadsworth, OH (occasionally home)
Contact:

#183 Post by Nathan F »

Maybe only removables should be checked in /sys and HD's in /proc?
Kind of makes me have angry thoughts towards kernel devs for a minute. At least until I step back and think about it for a minute. Anyway, I hate having to look in so many places to get the information about the devices.
So you could grep for "ATA" in probedisk output...
for removable USB devices there is the "model" file in /sys/block/sda/device/
Both those things are useful for me to know, thanks. It just might get me out of having to do a total rewrite of the external script I have pmount set up through, which adds pendrives to fstab.

But pmount is not the problem at this point, at least not the major one. Apparently I have to have a look at /sbin/init in the initrd and at rc.shutdown, to get them to recognize sata drives properly. I wonder, does this work properly in Puppy-2.16alpha?

Nathan
Bring on the locusts ...

msumner
Posts: 205
Joined: Fri 05 Jan 2007, 01:10
Location: Lincolnshire, England.

#184 Post by msumner »

Hi dougal, tried running puppyinstall from the console:

sh-3.00# gunzip puppyinstaller.gz
sh-3.00# ./puppyinstaller
sda "FUJITSU MHV2100B, size 98.5 GB"
sda
sda1: ntfs, size 19.53 GB
sda6: vfat, size 7.829 GB
sda7: ext2, size 10.79 GB, Grafpup version 004 installed
sda8: ext2, size 4.489 GB, Grafpup version 004 installed
sda9: ext3, size 4.297 GB
sda10: vfat, size 2.099 GB
sda4: vfat, size 21.82 GB, Grafpup version 004 installed

sh: locate: command not found
sh: locate: command not found
sh: locate: command not found
sh: locate: command not found
sh: locate: command not found
sh: locate: command not found
sh: locate: command not found
sh: locate: command not found
./puppyinstaller: line 946: 8204 Terminated Xdialog --title "Grafp up Universal Installer" --no-buttons --infobox "Please wait, wiping all files in $DESTPART..." 0 0 50000
./puppyinstaller: line 946: 8208 Terminated Xdialog --title "Grafp up Universal Installer" --no-buttons --infobox "Please wait, copying Grafpup fil es to $DESTPART..." 0 0 120000
./puppyinstaller: line 946: 8275 Terminated Xdialog --title "Grafp up Universal Installer" --no-buttons --infobox "Please wait, executing rc.update script..." 0 0 60000
/usr/local/apps/Utility/ROX-Filer/ROX-Filer: option requires an argument -- D
Try `ROX-Filer/AppRun --help' for more information.
BusyBox v1.01 (2006.08.20-09:28+0000) multi-call binary

Usage: umount [flags] FILESYSTEM|DIRECTORY

Unmount file systems

Flags:
-a Unmount all file systems
-r Try to remount devices as read-only if mount is busy
-f Force umount (i.e., unreachable NFS server)
-l Do not free loop device (if a loop device has been used)

/usr/sbin/grubconfig: line 883: 8454 Terminated XDIALOG_HIGH_DIALO G_COMPAT=false $DIALOG --title "Grubconfig" --no-buttons --infobox "Working, ple ase wait..." 0 0 25000
/usr/sbin/grubconfig: line 369: 8541 Terminated XDIALOG_HIGH_DIALO G_COMPAT=false $DIALOG --title "Grubconfig" --no-buttons --infobox "Working, ple ase wait..." 0 0 25000
chmod: cannot access `/tmp/boot/boot/grub/menu.lst': No such file or directory
/usr/sbin/grubconfig: line 749: 8594 Terminated XDIALOG_HIGH_DIALO G_COMPAT=false $DIALOG --title "Grubconfig" --no-buttons --infobox "Creating /bo ot/grub/$grub_config file on $ROOT_DEVICE.\nPlease wait..." 0 0 25000
/usr/sbin/grubconfig: line 749: 8830 Terminated XDIALOG_HIGH_DIALO G_COMPAT=false $DIALOG --title "Grubconfig" --no-buttons --infobox "Installing t he GRUB Bootloader..." 0 0 25000
/usr/sbin/grubconfig: line 1080: /tmp/grubconfig/null: No such file or directory
sh-3.00#

It seemed to install, and made a save file on shutdown, but gets kernel panic during boot:
VFS:Cannot open root device "sda8" or unknown-block (0,0)
Please append a correct "root=" boot option.
Kernel panic - not syncing: VFS: Unable to mount root fs or unknown block (0,0)
<6>Time: TSC clocksource has been installed. :?
I'm off to bed now. Cheers, Mike

User avatar
Nathan F
Posts: 1764
Joined: Wed 08 Jun 2005, 14:45
Location: Wadsworth, OH (occasionally home)
Contact:

#185 Post by Nathan F »

OK, I may have been barking up the wrong tree with the sata issues. I've been searching all around the net for information about it, and then based on what I read I checked out my kernel config again. There were a few features that should have been compiled right into the kernel, but were modules instead. Hence you can mount the sata drives fine (when the modules have loaded) but the kernel isn't going to recognize the drives at boot time.This is a bit hairy, and the config options have changed in some cases quite radically. So I'm enabling as much sata support in the kernel itself and rebuilding again.

Basically I have to enable each chipset in the kernel itself rather than as modules. I should be able to get this together by tomorrow, then upload a small test. Assuming it passes then beta will follow right after, with Opera, Seamonkey, and Dillo based iso's.

My apologies for being so terrifically dense here. I guess I'm going to have to get some newer hardware to avoid pushing these types of mistakes on the general public. If I still had access to that company computer I'm sure I would have caught this a lot sooner.

Nathan
Bring on the locusts ...

msumner
Posts: 205
Joined: Fri 05 Jan 2007, 01:10
Location: Lincolnshire, England.

#186 Post by msumner »

Hi Nathan, looking forward to testing the new iso. Would be good to have the sata support in the final it if all works ok. I am sure we all appreciate your efforts so I don't think your apologies are needed. :D
Mike

SimonW
Posts: 60
Joined: Wed 28 Mar 2007, 23:15
Location: UK

#187 Post by SimonW »

Hi,
I have a log file of running the revised installer.

My destination was /dev/sda1 which is half of my 160Gb Sata drive.

It appeared to work ok, there is now the usual linux filetree /bin /dev /etc /lib on the drive, and a zdrv_004.sys. I haven't rebooted it yet (its the machine I'm running on).
The log does contain some errors but perhaps they are expected.

Dougal, the disktype output looks a lot more informative and I will attach it soon.

Nathan, no worries about all this. Puppy is making a great step forward by 'completely' supporting Sata - you're a pioneer!

Happy to test it when available.
Simon.

PS I will have to attach both logs from another machine as Dillo doesn't do attachments.

EDIT: I think the logfiles are now lost as they were on the CF card (in Superfloppy mode with an ext3 filesystem) which I think got trashed by the grub being written onto it. I won't spend more time looking to get them back as the next iso is out, and it works much better. Onwards and upwards....
Last edited by SimonW on Fri 27 Apr 2007, 08:44, edited 1 time in total.

msumner
Posts: 205
Joined: Fri 05 Jan 2007, 01:10
Location: Lincolnshire, England.

#188 Post by msumner »

Hi Nathan, just had a thought, if you have to recompile the kernel, would it be possible to include the suspend patch? You can get it at:
http://www.suspend2.net/
Please don't do this if it is going to cause problems, I can wait till 2.01 if need be. Just a thought.
Mike

User avatar
Dougal
Posts: 2502
Joined: Wed 19 Oct 2005, 13:06
Location: Hell more grotesque than any medieval woodcut

#189 Post by Dougal »

Mike: thanks for that info, I'll have a look at it later.

Nathan: the " sh: locate: command not found" errors Mike got are the kind of errors I got when I tried running the examples in the new version of gtkdialog -- something to do with looking for icons.

Concerning SATA, I'm also curious if enabling those kernel modules will help… I seem to recall Barry having some SATA modules not compiled, so maybe that accounts for some SATA drives not being recognized at all (Beem's case).

There's nothing you can really do about all this new HW coming out… I often think that if I were still at uni I'd be able to go around booting various computers and testing lots of HW, but I'm not, so there's no point in regretting it…

There is one thing that can be done, though (I suggested this to Barry ages ago): create a script that runs every imaginable HW test and sends the output to a file, then gzips it. You can include that script in Grafpup and just ask users (maybe in the "welcome" screen) to run it (giving name as parameter, for unique file naming) and send you the output…

I did something like that a while ago and got info from about 5 people and it's helped me immensely. Even little things, like knowing how the output of some test comes out for some device/fs…

I think I might update that test script of mine and create a new dotpup with it.


Simon: Please try and run

Code: Select all

find /proc -name 'hha'
and

Code: Select all

find /sys -name 'hda'
and

Code: Select all

find /sys -name '1:0:0:0'
And if they find anything, have a look in those dirs…
What's the ugliest part of your body?
Some say your nose
Some say your toes
But I think it's your mind

User avatar
Nathan F
Posts: 1764
Joined: Wed 08 Jun 2005, 14:45
Location: Wadsworth, OH (occasionally home)
Contact:

#190 Post by Nathan F »

http://grafpup.org/iso/testing/grafpup- ... -dillo.iso
Once again, mainly for testing whether or not sata is now going to work. If it does then I mark it as beta and finish uploading everything else, packages and the other two iso's. If not then back to the drawing board.

MIke - I'm going to have to hold off on the suspend patch until 2.01. I did include that suspend script you gave me a link to a month or so ago.

Dougal - You're correct about the locate errors. If gtkdialog can't find the icon it's looking for then it uses the "locate" program to do a search through the path gtk gets it's icons from (usually a theme in /usr/share/icons). This is popping up because I have different icons than Puppy does, and not in the same places either. I have to go through the script and make sure all icon references do exist, which is why I'm not putting the new installer in the iso yet.

As for the sata modules I did extensive research on it, and compiling them into the kernel should be the solution. I checked the old config file from Puppy's kernel and that's how they were done, although you are right and there were a few he didn't compile at all. The problem is, the devs moved them in the config file and renamed them as well. So when I built this kernel starting with Puppy's config, they all go switched off somehow. I've been a little more meticulous this time through, and made sure to poke into every section just in case anything else fell through the cracks.

That's definately a good idea about the hardware test also.

Note that I haven't recompiled any of the extra networking modules yet, so it's possible some of them will be buggy or not work at all until I do. I was able to boot fine with the old aufs and squashfs modules thugh, and use the old ndiswrapper module, so it's just possible that they will all work OK even though the kernel has been once again recompiled.

Nathan
Bring on the locusts ...

User avatar
Dougal
Posts: 2502
Joined: Wed 19 Oct 2005, 13:06
Location: Hell more grotesque than any medieval woodcut

#191 Post by Dougal »

I looked at Jason's latest probedisk/probepart (hoping to find clues as to where else we can find info) and there was a bug at the beginning, which got me looking into it... I ended up doing a serious re-write and also created a script named list-scsi which lists deviced from /proc/scsi/scsi.

I used Jason's code for getting devices from /var/log/messages, but I don't have any sd devices so I'm not sure how well it works...

NOTE: running

Code: Select all

list-scsi sata
will only list SATA drives (hopefully).

Nathan: Another great idea I had -- should also get Barry to do it:
in "testing" versions (alpha, beta) the startup scripts should be made verbose!
Comment out the redirection of output to a file and add echos before probing modules! This way if people have severe problems like freezing, we can know what the cause is.

Simon: I just remembered: /sys/bus/scsi should have your 1:0:0:0 but I don't know if it wil help (it might be the port).
Then for the final release you just uncomment the redirection to file and comment out the echos! (can have something like "##### DEBUG" at the end of those lines).
Attachments
probepart2-probedisk2-list-scsi.tar.gz
(2.23 KiB) Downloaded 355 times
Last edited by Dougal on Thu 26 Apr 2007, 20:51, edited 1 time in total.
What's the ugliest part of your body?
Some say your nose
Some say your toes
But I think it's your mind

SimonW
Posts: 60
Joined: Wed 28 Mar 2007, 23:15
Location: UK

#192 Post by SimonW »

Hi,

Just found out what happened when I ran the new puppy-installer on the Sata drive yesterday. It wrote GRUB onto my CF card (which I normally boot Grafpup from, and can no longer). When Grub is allowed to run, I get a select-partition menu ; I humour it and select sda1 (which was the install destination yesterday) and Grafpup begins to start - it barfs part-way through ( I saw some message about a problem with sda1) and enters a loop with atkbd.c reporting an interrupt problem.
This looks like evidence that 'some' parts of the previous Grafpup iso test release (not todays) recognise sata and not others.

Anyway I will move onto the new iso very soon, I am just repairing the cf card damage done first...!
Simon.

Dougal - will try your cmds when I can. On previous iso release or the new one? (if I have a choice at the time)

plinej
Posts: 1742
Joined: Mon 14 Aug 2006, 02:21

#193 Post by plinej »

Dougal, my usb devices show up as only "/dev/". I'll see if I can't figure out what to add to your scripts.

SimonW
Posts: 60
Joined: Wed 28 Mar 2007, 23:15
Location: UK

#194 Post by SimonW »

Umm,
In the new iso, probedisk doesnt report correctly for my multi-port card reader on Usb.

It reports:
<snip hdds>
/dev/sdc|Direct-Access|OEI-USB Memory Stick 106A
/dev/sd2|Direct-Access|OEI-USB MMC/SD
/dev/sd2|Direct-Access|OEI-USB Smartmedia
/dev/sd2|Direct-Access|OEI-USB Smartmedia
/dev/sd2|Direct-Access|OEI-USB Memory Stick

Note the loss of a way of telling the slots apart!

Now, the probedisk included ina previous iso worked correctly and reported each slot as sda, sdb, sdc, sdd (which is how I programmed my CF card to use in an IDE adapter).
I ran the old version up again, don't have the iso date, but the probedisk was 13,828 bytes dated Jul 23, 2006. I hope that makes some kind of sense.

I may not be able to program my CF card up again with the new iso, unless I find a way around this. I will try another card - I have found some of my cards work & some don't... (lovely).

Plodding on!
Simon.

plinej
Posts: 1742
Joined: Mon 14 Aug 2006, 02:21

#195 Post by plinej »

dougal, the device issue with your scripts is because the device is not in the same line in /var/log/messages as the scsi number, model, & vendor. Here's an example of a search for 5 lines before and 5 lines after while grepping for a usb model:

Code: Select all

sh-3.00# cat /var/log/messages | grep -a5 -b5 'JetFlash'
35105-Apr 18 10:13:27 (none) user.info kernel: usb 4-3: new high speed USB device using ehci_hcd and address 3
35210-Apr 18 10:13:28 (none) user.info kernel: usb 4-3: configuration #1 chosen from 1 choice
35298-Apr 18 10:13:28 (none) user.info kernel: scsi1 : SCSI emulation for USB Mass Storage devices
35391-Apr 18 10:13:28 (none) user.debug kernel: usb-storage: device found at 3
35464-Apr 18 10:13:28 (none) user.debug kernel: usb-storage: waiting for device to settle before scanning
35564:Apr 18 10:13:33 (none) user.notice kernel: scsi 1:0:0:0: Direct-Access     JetFlash TS1GJF110        0.00 PQ: 0 ANSI: 2
35684-Apr 18 10:13:33 (none) user.notice kernel: SCSI device sdb: 2007040 512-byte hdwr sectors (1028 MB)
35784-Apr 18 10:13:33 (none) user.notice kernel: sdb: Write Protect is off
35853-Apr 18 10:13:33 (none) user.debug kernel: sdb: Mode Sense: 00 00 00 00
35924-Apr 18 10:13:33 (none) user.err kernel: sdb: assuming drive cache: write through
36005-Apr 18 10:13:33 (none) user.notice kernel: SCSI device sdb: 2007040 512-byte hdwr sectors (1028 MB)
--
146988-Apr 25 16:02:28 (none) user.info kernel: usb 4-3: new high speed USB device using ehci_hcd and address 12
147094-Apr 25 16:02:28 (none) user.info kernel: usb 4-3: configuration #1 chosen from 1 choice
147182-Apr 25 16:02:28 (none) user.info kernel: scsi10 : SCSI emulation for USB Mass Storage devices
147276-Apr 25 16:02:28 (none) user.debug kernel: usb-storage: device found at 12
147350-Apr 25 16:02:28 (none) user.debug kernel: usb-storage: waiting for device to settle before scanning
147450:Apr 25 16:02:33 (none) user.notice kernel: scsi 10:0:0:0: Direct-Access     JetFlash TS1GJF110        0.00 PQ: 0 ANSI: 2
147571-Apr 25 16:02:33 (none) user.notice kernel: SCSI device sdc: 2007040 512-byte hdwr sectors (1028 MB)
147671-Apr 25 16:02:33 (none) user.notice kernel: sdc: Write Protect is off
147740-Apr 25 16:02:33 (none) user.debug kernel: sdc: Mode Sense: 00 00 00 00
147811-Apr 25 16:02:33 (none) user.err kernel: sdc: assuming drive cache: write through
147892-Apr 25 16:02:33 (none) user.notice kernel: SCSI device sdc: 2007040 512-byte hdwr sectors (1028 MB)
That may give you someplace to start. Unfortunately I've got some things going on right now so I can't look furthur into it.

User avatar
Nathan F
Posts: 1764
Joined: Wed 08 Jun 2005, 14:45
Location: Wadsworth, OH (occasionally home)
Contact:

#196 Post by Nathan F »

Simon - This is the first iso I have included Jason's updated probedisk and probepart in. These are scripts which replace the old binary version. I'll attach the binaries so you can try with them, and it might also be a good idea to test with Dougal's rewrites also.

Dougal - Yes the messages should probably be verbose in the test iso's. It should be easy to accomplish that with a modification to isolinux.cfg, and I could turn off the framebuffer while I'm at it so the screen isn't taken up by the bootsplash.

The script does mention it is loading modules, but it probably would be better if it mentioned each one. I think Barry's whole idea has been to make the bootup less scary for newbies, and since the newer kernel comes with the loglevel patch already incorporated in I just left those parts well enough alone. I think this would end up being a pretty major rewrite though, especially since we need a really easy way to turn the verbhose messages and logging on and off.

Hang in there guys, it will eventually all come together.

Nathan
Attachments
probepart.gz
(10.54 KiB) Downloaded 570 times
probedisk.gz
(7.91 KiB) Downloaded 619 times
Bring on the locusts ...

msumner
Posts: 205
Joined: Fri 05 Jan 2007, 01:10
Location: Lincolnshire, England.

#197 Post by msumner »

:D Hi Nathan, I am up and running with the new iso on a type 2 install!
Seems to be running fine. The live cd also picked up the save files during boot.

Tried a frugal but it keeps hanging at boot. Just trying to see if I have done something stupid.

Cheers, Mike
EDIT
The frugal seemed to hang after it picked up the old grf.save.sfs files that were hanging around from all the previous attempts. I deleted them, and tried again, and this time, it mounted sda8, the FAT32 partition which has the working type2 install. Lots of error msgs, one of which was:

Mtng graf_005.sfs off /dev/sda8...mounting on (/initrd) /graf-rofailed

Then a kernel panic.
So is it trying to mount the save file for the type 2 install?

User avatar
Nathan F
Posts: 1764
Joined: Wed 08 Jun 2005, 14:45
Location: Wadsworth, OH (occasionally home)
Contact:

#198 Post by Nathan F »

Hmm, there should be no save file for a type 2 install, that's just basically everything expanded onto the hard drive in a conventional manner. What does your boot prompt look like (in menu.1st)? It's failing to mount the main filesystem (graf_005.sfs) is what is going on here. Not sure why at this point, but obviously we've come a bit further along than before.

Ah wait, I see a little more what you're talking about now. For some reason it's trying to get the frugal install files from the wrong partition, the one with the full install. Again, I think the first step is to look at menu.1st, along with some idea how your partitions are layed out, including which partition has the frugal install.

Nathan
Bring on the locusts ...

User avatar
WhoDo
Posts: 4428
Joined: Wed 12 Jul 2006, 01:58
Location: Lake Macquarie NSW Australia

#199 Post by WhoDo »

Nathan F wrote:For some reason it's trying to get the frugal install files from the wrong partition, the one with the full install. Again, I think the first step is to look at menu.1st, along with some idea how your partitions are layed out, including which partition has the frugal install.
Sorry to butt in here, guys, but that sounds like you need to use the hide/unhide grub boot options to mask the other partition from the one you are booting. Here is how I would do it:

Code: Select all

# Linux bootable partition config begins
  title Grafpup-Frugal (on /dev/hda1)
  hide (hd0,3)
  unhide (hd0,0)
  rootnoverify (hd0,0)
  kernel /boot/vmlinuz root=/dev/ram0
  initrd /boot/initrd.gz
 # Linux bootable partition config ends
# Linux bootable partition config begins
  title PuppyLinux-Full (on /dev/hda4)
  hide (hd0,0)
  unhide (hd0,3)
  root (hd0,3)
  kernel /boot/vmlinuz root=/dev/hda4 ro vga=normal
# Linux bootable partition config ends
Hope that helps. At least you won't need to go hunting for and deleting pup_save.2fs files that may be backups or whatever.
[i]Actions speak louder than words ... and they usually work when words don't![/i]
SIP:whodo@proxy01.sipphone.com; whodo@realsip.com

msumner
Posts: 205
Joined: Fri 05 Jan 2007, 01:10
Location: Lincolnshire, England.

#200 Post by msumner »

Hi Whodo, the fullHDD still works, but I get:
"Error 17: Cannot mount selected partition" when I try the frugal.
Do I need to use sd rather than hd somewhere?
Here is my menu.lst entry:

# Other bootable partition frugal config begins
title Grafpupfrugal (on /dev/sda6)
hide (hd0,7)
unhide (hd0,0)
rootnoverify (hd0,0)
kernel /boot/vmlinuz root=/dev/ram0 loglevel=3 PMEDIA=satahd
initrd /boot/initrd.gz
# frugal ends
#
# Linux bootable partition config begins
title grafpupfullHDD (on /dev/sda8)
hide (hd0,0)
unhide (hd0,7)
root (hd0,7)
kernel /boot/vmlinuz root=/dev/sda8 ro vga=normal
# Linux bootable partition config ends

Cheers, Mike

Post Reply