Plain english description of what the "maxfid" patch does?

Posted by: jbauer

Plain english description of what the "maxfid" patch does? - 30/09/2006 18:21

After reading all the threads, I'm still confused. I have a lot of FIDS, so I THINK I'd benefit from this - especially if I knew what it did. Do I need it?

- Thanx
- Jon
Posted by: Mataglap

Re: Plain english description of what the "maxfid" patch does? - 30/09/2006 18:35

http://empegbbs.com/ubbthreads/showthreaded.php/Cat/0/Number/287985/page/0/vc/1
Posted by: wfaulk

Re: Plain english description of what the "maxfid" patch does? - 30/09/2006 18:42

There is a maximum number of FIDs that the empeg can handle at one time, about 21000. Each playlist and each track take up one FID. If you try to play a playlist that contains too many FIDs, it won't be able to store them properly, and it will forget what it's been playing when you reboot.

The maximum number of FIDs is determined by the size of a part of your hard drive. This part was allocated at the factory, or the last time you ran the "drive builder" image, if you ever did. The thing is, when it was allocated, it requested 16MB (that might not be the right size, but it's irrelevant). But the way hard drives work, they have to allocate space in chunks of particular sizes. If your particular hard drive allocates in 16MB chunks, then it allocated exactly 16MB. If it allocates in 8MB chunks, you got exactly 16MB. But if it allocates in 32MB chunks, then you got 32MB. Or if it allocates in 10MB chunks, you got 20MB. The problem is that the software thinks that you have 16MB, regardless of how much space is actually there. The maxfid patch checks to see how much space is actually available, and modifies the software so that it will use all of it.

So, if you ever have problems where you play a large playlist and the empeg forgets about it when it restarts, then you have a problem that might be fixed by the maxfid patch. If you don't have that problem, then it's not going to do anything for you. But it shouldn't hurt anything either.
Posted by: pgrzelak

Re: Plain english description of what the "maxfid" patch does? - 30/09/2006 18:44

Basically, the original player application was hard coded with specific limits in mind. No one ever expected (or planned for) multiple 100+ GB drives in the empeg when it was first delivered. Remember - the design was based on 10Mbps, USB1.0, 16MB RAM and the largest shipping drive combination was 60GB (dual 30GBs).

This hard coded limit was based on the design of the player application - using a "scratch partition" of a specific size (I am too lazy to look it up right now), and using each sector in that scratch partition to directly map to a specific FID.

So, now that larger drives and larger collections are available, people are starting to hit that upper bound. They have too much music on the player... In most cases, this does not really hurt anything. The dynamic partition data is out of range and requests to read or write to it error out. The player software does not mind and goes about its business.

The only time this really becomes annoying is when you try to sync. (At least, this is where I personally first noticed it.) Because the FID is out of bounds, emplode would crash on each sync. But the player software would successfully rebuild the databases, so things were okay.

With Roger publishing upgraded, manual steps for doing a disk build, and for Mark putting an updated builder together supporting large drives, the dynamic partition size is not a problem anymore. But the limit is still hard coded in the player application (2.0, 2.01, 3.0a11, etc.).

Maxfid.v7 basically edits the binary of the player application, changing the hard coded limit to a new value. This value is calculated by the maxfid.v7 program.

Basically, that's it. Maxfid.v7 does a poke/zap/bit-edit of the application binary to change the hard coded number to something a bit more large disk friendly. That is why it needs to be done with each player installation but not with each hijack update - you are physically editing the player binary file.

Does that help?
Posted by: jbauer

Re: Plain english description of what the "maxfid" patch does? - 30/09/2006 18:45

Excellent. My empeg is forgetting my playlist upon rebooting, so this is probably the issue.

Thanks for the help!

- Jon
Posted by: wfaulk

Re: Plain english description of what the "maxfid" patch does? - 30/09/2006 18:48

Only if the playlist is very large. If it's just one album or something, then there are other culprits.
Posted by: jbauer

Re: Plain english description of what the "maxfid" patch does? - 30/09/2006 18:54

Quote:
Only if the playlist is very large. If it's just one album or something, then there are other culprits.


I generally do the "randomize everything" deal-e-o, so it's definitely a large playlist...

- Thanx
- Jon
Posted by: tfabris

Re: Plain english description of what the "maxfid" patch does? - 01/10/2006 15:21

Quote:
so it's definitely a large playlist...

Yeah, but it would have to be more than a 21,000-song playlist in order to run into this problem. Is it that many songs?

If not, there are other things that might cause the problem that we'd need to work on.
Posted by: jbauer

Re: Plain english description of what the "maxfid" patch does? - 01/10/2006 21:21

Quote:
Quote:
so it's definitely a large playlist...

Yeah, but it would have to be more than a 21,000-song playlist in order to run into this problem. Is it that many songs?

If not, there are other things that might cause the problem that we'd need to work on.


21,903 to be exact...

- Jon
Posted by: jbauer

Re: Plain english description of what the "maxfid" patch does? - 01/10/2006 21:37

This look right?

empeg:/empeg/bin# ./250635-set_empeg_max_fid.v7
250635-set_empeg_max_fid.v7: version 7 by Mark Lord (March 2005)
/dev/hda3: 48194 sectors
New max_fid value will be 44098 (0000ac42)
before:
00112888: 00000000 00000200 00000200 00000200
00112898: 00000400 00000200 00000600 00000200
001128a8: 00000800 00000010 00000810 00000010
001128b8: 00001000 00007000 00000000 00000000
after:
00112888: 00000000 00000400 00000400 00000400
00112898: 00000880 000003c0 00000c40 000003c0
001128a8: 00000800 00000010 00000810 00000010
001128b8: 00001000 0000ac42 00000000 00000000
empeg:/empeg/bin#

- Jon
Posted by: SE_Sport_Driver

Re: Plain english description of what the "maxfid" patch does? - 02/10/2006 14:49

Quote:
This look right?

empeg:/empeg/bin# ./250635-set_empeg_max_fid.v7
250635-set_empeg_max_fid.v7: version 7 by Mark Lord (March 2005)
/dev/hda3: 48194 sectors
New max_fid value will be 44098 (0000ac42)
before:
00112888: 00000000 00000200 00000200 00000200
00112898: 00000400 00000200 00000600 00000200
001128a8: 00000800 00000010 00000810 00000010
001128b8: 00001000 00007000 00000000 00000000
after:
00112888: 00000000 00000400 00000400 00000400
00112898: 00000880 000003c0 00000c40 000003c0
001128a8: 00000800 00000010 00000810 00000010
001128b8: 00001000 0000ac42 00000000 00000000
empeg:/empeg/bin#

- Jon
'

Oh crap! You just killed your player!!!!

j/k, looks good to go! Did you test it out yet?

While you're at it, use Mark's "fidsift" to sort your fids into folders to increase boot time and databasae rebuild time (awesome little script he did).
Posted by: frog51

Re: Plain english description of what the "maxfid" patch does? - 02/10/2006 16:22

SE_Sport_driver:

heh heh - decrease boot time
Posted by: tanstaafl.

Re: Plain english description of what the "maxfid" patch does? - 02/10/2006 21:52

Quote:

While you're at it, use Mark's "fidsift" to sort your fids into folders


Can you elaborate on this? What does it do, how does it do it, and how do I go about obtaining/installing it?

tanstaafl.
Posted by: mlord

Re: Plain english description of what the "maxfid" patch does? - 02/10/2006 22:24

Quote:
Quote:

While you're at it, use Mark's "fidsift" to sort your fids into folders


Can you elaborate on this? What does it do, how does it do it, and how do I go about obtaining/installing it?

tanstaafl.


This one is more intrusive than the max fids thing. It is easier to use, but may slightly complicate your life next time you add more tunes to the player using v2 software.

It splits the massive /drive0/fids (and /drive1/fids if there's a second drive) directories into lots of much smaller subdirectories. This greatly improves filesystem efficiency on the player, but this really only affects database rebuilds.

It *does* speed up database rebuilds by quite a lot.

The problem with it, is that some versions of the player s/w (dunno which) sometimes download tunes to the original BIG directory, rather than to the appropriate subdir. I think this may be just a JEmplode issue, actually, but it's been over a year since I last peeked at it. Regardless, the sensible thing is to simply rerun it (fidsift.sh) after any new music dowloads.

Cheers
Posted by: jbauer

Re: Plain english description of what the "maxfid" patch does? - 02/10/2006 22:29

Quote:
The problem with it, is that some versions of the player s/w (dunno which) sometimes download tunes to the original BIG directory, rather than to the appropriate subdir. I think this may be just a JEmplode issue, actually, but it's been over a year since I last peeked at it. Regardless, the sensible thing is to simply rerun it (fidsift.sh) after any new music dowloads.

Cheers


Hm. If I ONLY use emplode to upload files, would I still run into that problem?

I'm having an emplode problem now, and I want to get that fixed before I screw with the database. The problem will be posted on another thread...

- Jon
Posted by: tanstaafl.

Re: Plain english description of what the "maxfid" patch does? - 02/10/2006 23:15

Regardless, the sensible thing is to simply rerun it (fidsift.sh) after any new music dowloads.

O-kayyy...

1) Where do I get it?
2) How do I install it?
3) Or if it isn't installed, but just "run", how do I run it?

Please assume that I once overheard the word "Linux" in a conversation between a couple of geeks, and that is my total knowledge of the subject.

tanstaafl.
Posted by: SE_Sport_Driver

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 01:35

Basically, you use either hyperterminal or ftp to transfer the fidsift file to your empeg. Then, you "run" it while connected via hyperterminal. Never running it again will not hurt anything, but you'll slowly lose the benefit of having run it. From what I remember, emplode was actually designed with "sifted fids" in mind, but the empeg guys never actually turned the feature on in the player. Mark found a bug with it, but Hijack took care of it. So.... emplode actually works with it just fine and will continue to put the fids in the correct subfolder.

If for some reason you do need to run it again, you just connect via Hyperterminal and type the command again... It'd be just like doing it the first time but it'll run much quicker.

In my test, database rebuilds went from 17 minutes to 8! And copying fids while doing a hard drive upgrade went way faster too. (I think I was mistaken about boot times).

Original Thread on Fidsift.sh - Give it a read.
Posted by: tfabris

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 06:48

I seem to recall that some people, using certain third-party software for the empeg, ran into problems where the software didn't expect the sifted fids, and thus didn't work on a fidsifted player. I don't remember which programs, though (can anyone elaborate?). They might not matter to Doug, though, who pretty much just uses his player to play MP3s (the luddite! ).
Posted by: pgrzelak

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 07:54

mirrordb is one of the programs that does not expect sifted fids. I never did get around to dealing with that.

Pros - faster database building
Cons - need to rerun the program when new files are uploaded, very few programs do not like it

Doug, to run it you would do something very similar to the following:

q #exit to shell
rw #read/write root filesystem
rwm #read/write music filesystems
cd /empeg/bin #go to a known directory
#upload 182190-fidsift.sh using hyperterm
mv 182190-fidsift.sh fidsift.sh #renaming it to something more convenient
chmod 755 fidsift.sh #makes it executable
./fidsift.sh #runs it, making lots of subdirectories and moving the files on your music filesystems.
rom #read only music filesystems
ro #read only root
exit #exit shell, restart player
#reboot and sync to test
Posted by: Robotic

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 12:57

I'm following along with these threads and am, too, a complete beginner with unix commands in Hyperterm.
I very much appreciate the pixel by pixel explanation (much smaller increments than steps, eh?) you give, Paul!

This line has me stumped-
Quote:
#upload 182190-fidsift.sh using hyperterm

How does one upload using hyperterm? I don't suppose I could drag and drop...
For some of us these 'simple' transactions (move file, run file) are a whole new world.
Posted by: tfabris

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 14:24

Quote:
How does one upload using hyperterm?


Like this.
Posted by: Robotic

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 14:40

Quote:
Quote:
How does one upload using hyperterm?


Like this.

Thanks, Tony! I'll have to digest that in quiet at home and with all of the puzzle pieces in front of me.
Posted by: jbauer

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 14:46

Quote:
Quote:
Quote:
How does one upload using hyperterm?


Like this.

Thanks, Tony! I'll have to digest that in quiet at home and with all of the puzzle pieces in front of me.


You know, when it came time to upload the file, I initiated a transfer using "Zmodem with Crash Recovery" with Hyperterminal and it uploaded just fine...

- Jon
Posted by: tfabris

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 14:55

Quote:
You know, when it came time to upload the file, I initiated a transfer using "Zmodem with Crash Recovery" with Hyperterminal and it uploaded just fine...

You didn't need to say RZ at the shell prompt?
Posted by: jbauer

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 14:56

Quote:
Quote:
You know, when it came time to upload the file, I initiated a transfer using "Zmodem with Crash Recovery" with Hyperterminal and it uploaded just fine...

You didn't need to say RZ at the shell prompt?


Nope, just started the transfer and when it completed, I looked at the directory, and it was in there, I did the chmod, and executed the file. Easy peezy Japanesee.

- Jon
Posted by: tfabris

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 15:01

hm. Anyone know if that's a normal feature of the shell prompt on linux systems? Cuz I was taught a long time ago that you had to tell the shell to start receipt of the file.

Or is it that hyperterminal sends the sz command for you if you haven't typed it yourself?
Posted by: mlord

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 15:12

Quote:

Or is it that hyperterminal sends the sz command for you if you haven't typed it yourself?


Must be. Most sane comms programs do something like that, though it is suprising to think that HT would do it.

Cheers
Posted by: drakino

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 15:16

From the rz man page:
Quote:
Normally, the "rz" command is automatically issued by the calling ZMODEM program, but some defective ZMODEM implementations may require starting rz the old fashioned way.
Posted by: tfabris

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 15:26

Okie dokie. Thanks.
Posted by: wfaulk

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 16:17

From the ZMODEM spec:
Quote:
The sending program may send the string "rz\r" to invoke the receiving program from a possible command mode. The "rz" followed by carriage return activates a ZMODEM receive program or command if it were not already active.

In my experience, most do.
Posted by: tanstaafl.

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 17:26

You didn't need to say RZ at the shell prompt?

Y'know, I used to have a batch file on this computer (work) that utilized FTP to make the empeg into a file taxi. That batch file apparently failed to make the transition when I got a new computer here, but I know I have it on my home computer.

Would it be easier, less complex, to use FTP for this? It seems like I could use that batch file (after a few modifications) to install fidsift.

Probably there is no way to actually run the fidshift.sh script through a batch file, because to execute commands on the empeg I guess I'd have to have hyperterminal running, and if I've gone to all that trouble, it's just a few more keystrokes to run it.

tanstaafl.
Posted by: mlord

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 17:58

Quote:

Probably there is no way to actually run the fidshift.sh script


Just ftp it, chmod it, and run it, all from within ftp:

ftp some.ip.add.ress
cd /
site rw
put fidsift.sh
chmod 755 fidsift.sh
site exec fidsift.sh
...
site ro
quit
Posted by: tanstaafl.

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 18:58

Just ftp it, chmod it, and run it, all from within ftp:

I had already installed it the "hard" way with hyperterminal, but this would be useful for someone who hasn't done it yet.

Just a few notes about doing it with ftp:

You'll need to have ftp.exe on your computer, and in the same directory as the ftp.exe file, you'll need to have the fidsift.sh file.

You will need to know the actual ip address of your empeg. This may change from time to time if you are using DHCP in your network connection and you change some piece of hardware or the way it is connected.

To use Mark's batch file to run the fidsift script (not install and run) just delete the "put..." and the "chmod..." lines. It actually shouldn't hurt anything if you leave them in -- it'll just overwrite the existing fidsift file each time.

Thanks, Mark -- this is pretty much how I remember my file taxi batch file working.

I just added a song to my player to test to see if fidsift improved the database rebuild time. I was a bit disappointed -- it still takes fully one third as long as it used to, I was hoping for instantaneous.

Now that all those fidsift directories are created, will subsequent running of fidsift go faster, or will it recreate them all from scratch? I rarely add more music to my player (other than "Car Talk" every week) since it has been a long time since Mozart had any new hits, so in any case I won't have to run fidsift very often.

tanstaafl.
Posted by: mlord

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 19:07

Quote:

Now that all those fidsift directories are created, will subsequent running of fidsift go faster


Yes. Pretty much instantaneous after the first run.
Posted by: tfabris

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 19:13

Quote:
You'll need to have ftp.exe on your computer, and in the same directory as the ftp.exe file, you'll need to have the fidsift.sh file.

Incorrect.

All current Windows systems already have FTP.EXE, and it's in the system folder, which is already in the system "path", so you don't need to be in the same folder as FTP.EXE.

You only need to open a command window and CD to whatever folder contains fidsift.sh. Then type FTP.EXE at the command prompt.
Posted by: wfaulk

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 19:14

Quote:
You'll need to have ftp.exe on your computer, and in the same directory as the ftp.exe file, you'll need to have the fidsift.sh file.

More precisely:

ftp.exe is in your default path under Windows, so you can run while your current directory is anywhere. The fidsift.sh file needs to be in your current directory when you run the ftp.exe command. (Even that's not really true, but it's far easier for it to be that way, and people who know how to get around that problem have already stopped reading.)
Posted by: tfabris

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 19:27

Yeah, what he said.
Posted by: Mataglap

Re: Plain english description of what the "maxfid" patch does? - 03/10/2006 20:05

Quote:
...people who know how to get around that problem have already stopped reading.)


LOL. Well, we would have if that had not been at the end of your post!
Posted by: canuckInOR

Re: Plain english description of what the "maxfid" patch does? - 04/10/2006 17:29

Quote:
Quote:
...people who know how to get around that problem have already stopped reading.)

LOL. Well, we would have if that had not been at the end of your post!

Yeah. I was still reading, and I don't even use Windows!
Posted by: tanstaafl.

Re: Plain english description of what the "maxfid" patch does? - 09/10/2006 23:38

Just ftp it, chmod it, and run it, all from within ftp:

ftp some.ip.add.ress
cd /
site rw
put fidsift.sh
chmod 755 fidsift.sh
site exec fidsift.sh
...
site ro
quit


Hmmm.... doesn't work.

Is it because some of the commands (like chmod and site exec) aren't native to ftp and thus ftp can't run them?

My old batch file had "literal site rw" instead of just "site rw", and adding that word made that command work, but none of the others did.

Maybe we really can't run this using ftp? More likely, though, is that I'm doing some bonehead thing that is incorrect and messing up the works...

tanstaafl.
Posted by: tfabris

Re: Plain english description of what the "maxfid" patch does? - 10/10/2006 01:19

If CHMOD isn't native to the DOS FTP application, perhaps there is a similar command built into it that accomplishes the same task? Not sure.

Also: maybe SITE CHMOD would work?
Posted by: mlord

Re: Plain english description of what the "maxfid" patch does? - 10/10/2006 02:35

Stick "site" in front of chmod.

Oh, and apparently some windoze clients prefer "quote" instead of "site" everywhere.

Cheers
Posted by: tanstaafl.

Re: Plain english description of what the "maxfid" patch does? - 16/10/2006 04:38

Stick "site" in front of chmod.

Well, we're getting closer.

I have almost gotten this to work now.

It would appear that any tasks that are not native to the version of ftp.exe supplied with Windows XP must be prefixed with "literal site" before they will work. This is what I have come up with.

I have files called "fidsift.bat", "fidsift.txt", "fidsift.sh", and ftp.exe all located in a directory on my computer, "C:\_FTP"

fidsift.bat
cd C:\_ftp
ftp.exe -s:fidsift.txt


fidsift.txt
open 192.168.0.101
cd /empeg/bin
literal site rw
put fidsift.sh
literal site chmod 755 fidsift.sh
literal site exec fidsift.sh
literal site ro
# quit


I commented out the quit command so the results of the ftp session would remain on-screen.

fidsift.sh
(no, you don't want me to paste that file into this post, it'll mess up everybody's screen formatting that opens this thread! It's the file linked to earlier in this thread)

ftp.exe
This is the executable copied from the windows system32 directory or wherever it normally keeps itself.

Here's what I see when I run the fidsift.bat file:
C:\_ftp>cd C:\_ftp
C:\_ftp>ftp.exe -s:fidsift.txt
ftp> open 192.168.0.101.
220 Connected.
User <192.168.0.101:<none>>:
230 Login okay.
ftp> cd /empeg/bin
250 "/empeg/bin" directory changed
ftp> literal site rw
200 Okay.
ftp> put fidsift.sh
200 Okay.
150 Opening data connection.
226 Okay
ftp: 863 bytes sent in 0.00 seconds 863000.00 Kbytes/sec.
ftp> literal site chmod 755 fidsift.sh
200 Okay.
ftp> literal site exec fidsift.sh

541 ERROR <rc=127>
ftp> literal site ro
200 Okay.
ftp> # quit
Invalid command.
ftp>


Clearly the red highlighted line indicates a problem. That step runs for perhaps two seconds, then shows that error.

Can anyone tell me what that error is about and how to fix it?

Also, by mucking about with this, am I at risk of corrupting some important files in my player?

The object of all this is to have an icon on my computer that I can click on and automatically run a complete fidsift, without having to go through the bother of hyperterminal and making a serial connection and remembering and typing in all sorts of arcane commands.

As I said before, it looks like I am almost there...

tanstaafl.
Posted by: tfabris

Re: Plain english description of what the "maxfid" patch does? - 16/10/2006 06:29

One of the drawbacks of running the thing through FTP instead of at the shell prompt is that you don't see any of the text output from any of the commands.

All FTP is telling us is that the program returned an error. The shell prompt might have been filled with tons of diagnostic text, but we didn't get to see any of it.

So at this point it would be best for you to run fidsift.sh from the shell prompt (change to its directory and type ./fidsift.sh) and see if it gives any sort of output or reason for a problem.
Posted by: Roger

Re: Plain english description of what the "maxfid" patch does? - 16/10/2006 06:51

Quote:
ftp.exe
This is the executable copied from the windows system32 directory or wherever it normally keeps itself.


You don't need to do this. It'll run fine from exactly where it is.
Posted by: tfabris

Re: Plain english description of what the "maxfid" patch does? - 16/10/2006 07:06

Quote:
You don't need to do this. It'll run fine from exactly where it is.

We already told him (earlier in the thread). Not my fault he's still ignoring us.
Posted by: mlord

Re: Plain english description of what the "maxfid" patch does? - 16/10/2006 10:09

Quote:
..
ftp> literal site exec fidsift.sh

541 ERROR <rc=127>


Since you put fidsift.sh into /empeg/bin, you will now also need to prefix it when running it as a command. So, this line instead:

literal site exec /empeg/bin/fidsift.sh

Expanded explanation for Windows users:
Linux (and most other non-Windows OSs) tries to help prevent you from being tricked into running malicious copies of commonly named commands. Thus, by default, it will NOT automatically search the "current working directory" for commands, because some prankster might have stuck their own version of ls or something there. Thus, to run a command from any directory not on the user's PATH, it has to be prefixed with the full or relative directory path.


Cheers

Posted by: tanstaafl.

Re: Plain english description of what the "maxfid" patch does? - 17/10/2006 03:51

literal site exec /empeg/bin/fidsift.sh

Yes!

I would not have figured that out on my own. Thank you, Mark. You have, then, had some experience with Linux?

I can click on my handy little icon now and do a fidsift operation in just under nine seconds, from click to final screen refresh. I assume that after fidsift has been run the first time, it takes much less time for subsequent runs because it is just updating or adding to the initially creaded subdirectory structure?

Since fidsift.sh is installed in the /empeg/bin directory, it is redundant to do the "put" and "chmod" steps. Is there any great benefit to leaving them in, or taking them out? One advantage to leaving them is that with the three fidsift.* files (.sh, .bat, and .txt) I have a self-contained setup system to install fidsift from scratch on any player.

tanstaafl.
Posted by: tfabris

Re: Plain english description of what the "maxfid" patch does? - 17/10/2006 04:05

Since there's no if/then functionality in the FTP scripts, if you want it to work both "from scratch" as well as working for later fidsifts, then you have no choice but to do the PUTs every time. They won't hurt anything.

Oh, and: The only reason that I didn't suggest path-speccing fidsift before (The thing Mark showed you that solved your problem) is that you said there was a long pause between the time it tried to execute fidsift and the time it returned the error. I assumed that if it simply couldn't find fidsift then it would have returned the error instantly. Clearly, I was wrong.
Posted by: mlord

Re: Plain english description of what the "maxfid" patch does? - 17/10/2006 11:33

Quote:

I assume that after fidsift has been run the first time, it takes much less time for subsequent runs because it is just updating or adding to the initially creaded subdirectory structure?


Just doing a (very quick) update. And it is even faster the second time, well, because the files have already been fidsifted, speeding things up.
Quote:

Since fidsift.sh is installed in the /empeg/bin directory, it is redundant to do the "put" and "chmod" steps. Is there any great benefit to leaving them in .. ?



Leave them in -- that way it will still work automatically after the next time you reinstall player software on that machine.

Cheers
Posted by: tanstaafl.

Re: Plain english description of what the "maxfid" patch does? - 19/10/2006 06:03

... it will still work automatically after the next time you reinstall player softw are on that machine.

Just to wrap this whole thing up... I am attaching a zip file to this post that contains everything you need to set up a fully automated fidsift installation and operation. You will need to have your player set up to operate with an ethernet connection.

(1) Create a directory on your Windows computer: C:\fidsift
(if you use some other directory, modify the fidsift.bat file appropriately.)

(2) Copy the attached zip file into that directory and unzip it.

(3) Edit the fidsift.txt file, changing Open <your.empeg.ip.addr> to the actual ip address that your player uses when running emplode on ethernet, so it looks something like this: Open 192.168.0.101 (your numbers will vary, of course)

(4) Double-click on the fidsift.bat file.

That's all you have to do. Much simpler than mucking about with Hyperterminal, serial null-modem cable, and arcane Linux commands. Run the fidsift routine after every re-synch if you like -- it takes less than 10 seconds to run, start to finish.

Fidsift has reduced the time it takes to rebuild the database on my player from 10+ minutes to 2:35.

The zip file contains fidsift.bat, fidsift.txt, fidsift.sh, and ftp.exe. Yes, I know that ftp.exe isn't required, but somehow it makes me more comfortable to have the complete package all wrapped up neatly, and I know that this particular version of ftp.exe does work in this procedure, so it eliminates one possible failure point.

Many thanks to Mark Lord for helping me sort this out.

tanstaafl.
Posted by: Robotic

Re: Plain english description of what the "maxfid" patch does? - 19/10/2006 13:03

Wow! This looks so much easier than before.
Could this be used on an un-fidsifted empeg?
Or is it only for maintenance fidsifting?

I'm currently at 19,xxx on my 'big mix', while I still have about 40GB free (and more music underway).
Posted by: tanstaafl.

Re: Plain english description of what the "maxfid" patch does? - 19/10/2006 23:23

Could this be used on an un-fidsifted empeg?

Yes.

It works both for installing fidsift, and for periodically updating it.

The first time it runs, it will take several minutes. After that, it's just a few seconds.

tanstaafl.
Posted by: Robotic

Re: Plain english description of what the "maxfid" patch does? - 25/11/2006 00:39

OK!
I know it's Friday night, but what the heck- seems like a good time to fiddle with my 2x60GB empeg.
The goal: install maxfid and fidsift.
The setup:
WinME - emplode - player version 2.0 (developer?) + Hijack v464
Current player load: 20,500+ mp3 files, est. free space 36.2/111GB.
The drives were installed and configured by Stu at Eutronix. I can't tell whether the developer version of the player software is loaded.
Is there a quick check somewhere? I'll check the FAQ.

It seems the way to proceed is to first load the MaxFID patch, then follow it up with tanstaafl's .bat file for Mark's FIDsift.

Ah- but maybe first I'll throw over an album and see how long that takes, just to benchmark things a little. I'll do that and scour the FAQ for developer-player answers. I think there should be some mention of it in the boot log...
edit: yes- it is the developer version. Funny thing- I tried capturing the boot log in Hyperterminal with the 'capture text' feature, but the resulting file is not a nice looking document.

Can I assume that the .bat file may be run concurrently with emplode? I'll also assume that the safe bet is to run it with emplode not connected.

It took about 12 and a half minutes to sync a 35.4MB album with the majority of the time spent rebuilding the database.

update: When I tried to set the drives read-write for the maxfid prep, I got the message:
EXT2-fs warning: checktime reached, running e2fsck is recommended
So- I've started down that road... just so all the t's are dotted and so forth. It's been at it on the first drive for almost half an hour, but I am full of patience.
update2:
It took about a half hour per drive to do the check, then another few minutes to transfer and run the maxfid patch- many thanks to pgrzelak for the steps in this thread.
Next step is the fidsift...
...hmm. I followed the instructions in the post above- created the fidsift directory on C:, changed the text file to my IP (192.168.1.4), and double clicked on the .bat file.
This resulted in a Windows error:
"Error Starting Program
The FTP.EXE file is
linked to missing export WS2_32.DLL:getnameinfo."
Posted by: tanstaafl.

Re: Plain english description of what the "maxfid" patch does? - 25/11/2006 18:05

Quote:

Can I assume that the .bat file may be run concurrently with emplode?


Yes.

Quote:

...hmm. I followed the instructions in the post above- created the fidsift directory on C:, changed the text file to my IP (192.168.1.4), and double clicked on the .bat file.
This resulted in a Windows error:

"Error Starting Program
The FTP.EXE file is
linked to missing export WS2_32.DLL:getnameinfo."


This would suggest to me that the FTP program on your computer may be broken somehow. Does it work in other circumstances?

Oh, wait -- I wonder if it might not have been a mistake on my part to include my ftp.exe file in the zip file that you expanded in your fidsift directory. I bet there is an incompatibility between that ftp.exe file and the one that is native to your Windows installation.

Try deleting the "new" ftp.exe file and then (as Tony and others have pointed out) the batch file will default to using your native ftp executable.

Quote:
Ah- but maybe first I'll throw over an album and see how long that takes, just to benchmark things a little


The benchmark won't tell you much the first time you run it because the fidsift program takes quite a while to run. But, after that, since the fidsifted directory structure is now created, and the files are fidsifted, the next time you run it it takes but a few (~10) seconds to run. At that point you will see meaningful benchmark comparisons.

tanstaafl.
Posted by: Robotic

Re: Plain english description of what the "maxfid" patch does? - 25/11/2006 18:40

Hi tanstaafl!
Thanks for the tip- I removed the ftp.exe bundled in the zip file and the .bat file went to work.
It seemed to occupy itself for about 15 seconds, then claim to be finished.
Quote:
User (192.168.1.4:(none)):
230 Login okay.
fpt> cd /empeg/bin
250 "/empeg/bin" derectory changed
fpt> literal site rw
200 Okay.
ftp> put fidsift.sh
200 Okay.
150 Opening data connection.
226 Okay.
ftp: 863 bytes sent in o.ooSeconds 863000.00Kbytes/sec.
ftp> literal site chmod 755 fidsift.sh
200 Okay.
ftp> literal site exec /empeg/bin/fidsift.sh


... I waited no more than half a minute...
Didn't time it, though. It might have been merely 10 seconds. I was spacing out, thinking it might take many minutes to complete the task. I was surprised when the window continued with...

Quote:
Connection closed by remote host.
ftp> quit

C:\fidsift>
C:\fidsift>
C:\fidsift>
C:\fidsift>

I'll run it again and see what happens. I just wanted to transcribe the text before doing that.
Posted by: Robotic

Re: Plain english description of what the "maxfid" patch does? - 25/11/2006 18:56

Ah!

I ran it about 5 times, each time it seemed to end on the same 'interrupted' note. It ran for various lengths of time- sometimes about a minute.
Note: close the DOS window before trying another time. It didn't seem to like opening the connection twice.
Just got what seems to be the correct exit:
Quote:
ftp> literal site exec /empeg/vin/fidsift.sh
200 Okay.
ftp> literal site ro
200 Okay.
ftp> quit
221 Happy Fishing.

C:\fidsift>
C:\fidsift>
C:\fidsift>
C:\fidsift>

YAY!!
Anything else to do?

Edit:
Ok- each time I run the .bat file it sifts fids for exactly one minute before the connection is closed. It takes three minutes plus another 3-5 seconds to get the Happy ending. That is, I have to re-run the .bat file 4 times to completion of the task. I have done this three times now- the first time without much attention to detail, the next two checking the run times and number of times.
3:05 isn't 10 seconds, though. I wonder if there's something amiss. At any rate, I'm glad to see the Happy Fishing message and feel confident that the drives are once again set read only.

Edit2:
The first time I asked for a 'big mix' (currently 16876 files) I got flashes of a 'no memory' error inside a rectangular box. The empeg kept chugging away at the task, though, and completed it. Touching a button made the error message disappear.
I then rebooted the empeg through Hijack and asked for another 'big mix'. No problems or error messages. Each big mix playlist takes about 25 seconds to build.
Posted by: tanstaafl.

Re: Plain english description of what the "maxfid" patch does? - 25/11/2006 19:33

I wonder if there's something amiss.

It would seem so, but I am afraid I am way out of my depth here.

I just tested the fidsift.bat file on my player, and it ran in 9.7 seconds from the time I clicked on the shortcut to the batch file, to the closing of the DOS window. This is on a player with dual 80 GB drives and 16,438 fids.

A quick test to see if you really are properly fidsifted would be to add an album and re-synch. Your database rebuild time should be cut by about a factor of four, if my experience is anything to go by.

tanstaafl.
Posted by: tanstaafl.

Re: Plain english description of what the "maxfid" patch does? - 25/11/2006 19:37

The zip file contains fidsift.bat, fidsift.txt, fidsift.sh, and ftp.exe. Yes, I know that ftp.exe isn't required, but somehow it makes me more comfortable to have the complete package all wrapped up neatly, and I know that this particular version of ftp.exe does work in this procedure, so it eliminates one possible failure point.

Well, this is what happens when I try to get too clever. Do NOT use the version of ftp.exe included in the batch file. It is a perfectly good file, but your Windows installation may not be happy with it as this version of ftp.exe may be calling for a different .dll file or something than the ftp.exe that came bundled with your particular Windows installation.

Once you have expanded the zip file, delete the ftp.exe file so that Windows will use the one that is native to your operating system.

tanstaafl.
Posted by: Robotic

Re: Plain english description of what the "maxfid" patch does? - 25/11/2006 20:25

Quote:
A quick test to see if you really are properly fidsifted would be to add an album and re-synch. Your database rebuild time should be cut by about a factor of four, if my experience is anything to go by.

tanstaafl.

I just threw one over and started a timer, but the empeg decided it was time to check disk integrity- that adds about an hour, I imagine.
I'm leaving the house for the day, though, so my 'quick' test will finish when I'm not here. The really sad part is that I won't have the empeg in the car with me for the day.

I'll post up later in the weekend when I can do more testing.
I think there should be a way to surf the directory structure on the empeg via Hyperterminal or maybe even via ftp. That would allow me to see the expected fidsift directories.
I'm a little out of my depth, too, but the swimming is sure fun!
Posted by: mlord

Re: Plain english description of what the "maxfid" patch does? - 26/11/2006 01:24

Quote:
..
The first time I asked for a 'big mix' (currently 16876 files) I got flashes of a 'no memory' error inside a rectangular box.


The author of that .bat file could add a literal site swapon /dev/hda?? (fixme) line to the script before it runs fidsift.sh to take care of that issue.
Posted by: Robotic

Re: Plain english description of what the "maxfid" patch does? - 26/11/2006 04:28

I arrived home to Emplode sitting at the home screen and I just threw another album over. The database rebuild took about the same length of time as before... about 12 minutes.
Next thing I'm going to try is running the fidsifter via Hyperterm and the serial port, but not tonight.

Thanks, Mark, for the tip about the error message.
Thanks, tanstaafl, for sharing your .bat file.
I should learn more about how to take it farther.
Posted by: tfabris

Re: Plain english description of what the "maxfid" patch does? - 26/11/2006 06:00

Quote:
Do NOT use the version of ftp.exe included in the batch file.

It's never a good idea to redistribute someone else's random EXE file without knowing (in great detail) what linked libraries it needs to use.

The problem wasn't that Windows was unhappy with the file... it was the other way around. That version of FTP was unhappy with the Windows libraries from his version of Windows. That stuff is interdependent.

So yeah, um, don't do that.
Posted by: Robotic

Re: Plain english description of what the "maxfid" patch does? - 31/01/2008 05:51

Here we are, better than a year later and I've just now gotten my head around running fidsift from HyperTerminal. I'm much more lazy than stupid. lol

Of course, in the intervening months, I've loaded several gigs onto the empeg and also changed operating systems (WinME to Win2k) on my PC, so there were a few things to sort out at first.

Emplode reports about 12GB free of 111GB available (2x60GB drives). It took a while, but Emplode finally listed 25588 tracks under the 'All' header.

At first I tried running tanstaafl's script, but couldn't determine successful completion of fidsift. I could get the player into a horrible mode that ate up memory and made the player unusable until the next power cycling. The player would take 15-20 seconds to register button presses, for example. After a reboot, all would be well, but I couldn't really see improvements in database rebuilds or 'big mix' playlist building.
Emplode always insisted on full disk checks, too, which took a lot of time to get through. Obviously, I was doing it wrongTM.

Dropping back to the serial port and COM1, I dove in via HyperTerm and executed the fidsift file (the batch file was successful at delivering the file via FTP, just not executing it all the time). Via HT, I watched as fidsift built 80-something directories and completed happily after a little more than 15 minutes. A second running took only a few seconds.

Now, database rebuilds are definitely less than 10 minutes and 'big mix' playlist builds take only 10 seconds! Ahhh

I'd like to know if it's possible for me to make two connections at once to the empeg... one serial port and the other ethernet. If I could do that, I could watch HT for action while testing the batch file via FTP. I'd like to know what it's really doing.
Posted by: Robotic

Re: Plain english description of what the "maxfid" patch does? - 04/02/2008 06:30

So, yah- it's completely possible to execute fidsift.sh via tanstaafl's batch file (ethernet) while viewing a Hyperterminal session (COM1).

The batch file is working well now. I suppose there must have been something about ftp connection time-outs during the time that fidsift.sh was trying to do its job. Running the file directly via Hyperterminal the first time seems to have sorted everything out. The batch file can easily take care of shorter sortings.

I was getting 'nomem' errors regularly after running the batch file sifts, so I added one more line to fidsift.txt file:
literal site reboot
No more worries after a reboot!
Posted by: Robotic

Re: Plain english description of what the "maxfid" patch does? - 28/02/2008 06:54

Hmm.. I still have issues with Emplode doing a full disk scan after running fidsift from the batch file.
It seems that the windows ftp is timing out before fidsift is finished and then (I'm guessing) leaving the drives mounted rw.

So, I went looking around online for help with the ftp command line and tried to find a way to make it *not* time out.
I wasn't successful in learning about ftp options. frown
I did find this knowledgebase article from MS that said the timeout is defaulted to 60 seconds and only a special hotfix will allow you to select a different setting by editing the registry.
Not good news.

I was able to execute fidsift through my Filezilla FTP client, but it, too, timed out! I could change the timeout settings easily, though, and it worked after that.

It seems that ftp.exe likes to time out after only 10 seconds, so that's weird. Filezilla was defaulted at 20 seconds and still timed out earlier than that! WTF? Changing Filezilla's timeout to 200 seemed to help, but more likely by that time fidsift had been run enough to finish what it had (stutteringly) started.

I wish I could:
a. get feedback to the cmd window of how things are going with the batch file execution steps
b. extend the timeout so that fidsift is not interrupted
c. know that the batch file has completed all of its tasks before the cmd window disappears in a puff of pixels.

Heck- maybe I should go about this a different way...
I've never delved into the config.ini file, but I have to bet that there's a way to use Mark's EXEC functionality to run fidsift all on the empeg. Am I wrong on that?

*sigh* It does work- it is working- sort of. I'd sure like to make it work better.
Posted by: frog51

Re: Plain english description of what the "maxfid" patch does? - 28/02/2008 12:54

Just trying to remember how I do it, as I only ever connect using telnet or cuteftp, and it just works(tm)

Pretty certain I run it from a command prompt using telnet. Maybe I rw, rwm first...

Or could you not write it into the script to do the whole rw&&rwm&&fidsift&&ro in background in which case presumably an ftp timeout wouldn't be an issue.
Posted by: mlord

Re: Plain english description of what the "maxfid" patch does? - 28/02/2008 13:30

Originally Posted By: Robotic
..Heck- maybe I should go about this a different way...I've never delved into the config.ini file, but I have to bet that there's a way to use Mark's EXEC functionality to run fidsift all on the empeg.


You already are using Mark's EXEC functionality here, to run Mark's fidsift.sh on the empeg.

I strongly recommend that you (a) get yourself a real O/S to run FTP from smile , and, even better, (b) connect via the serial port and run the fidsift.sh command from there.

FTP is a dicey enough environment for this stuff, let alone trying to use it from an "O/S" that doesn't really grok the internet.

Cheers
Posted by: Robotic

Re: Plain english description of what the "maxfid" patch does? - 28/02/2008 15:17

Originally Posted By: mlord
You already are using Mark's EXEC functionality here, to run Mark's fidsift.sh on the empeg.

LOL- I am also learning new things every time I attack the empeg and other facets of home computing. wink

Thanks for the input, Mark and Rory.

I prefer not to use the serial port because it means (whaa!) that I have to remove the empeg from my beautiful Mark Lord Home Dock, remove the power cord from the dock, fiddle with plugging in the empeg with cables from the back of the desk, and only then am I able to fire up HyperTerminal for the fun bits.
I was quite excited by the prospect of running everything with the empeg docked from a simple double-click.

As for the failings and weaknesses of MS and Win2k vs. the power of Linux, I can only say that I continue to learn and am not afraid of doing so. I know computing as a Windows experience, primarily, and am trying to set myself up with more options wrt OSes. It's a hobby that I'm having fun with, anyway.

Thanks again, guys!
Posted by: mlord

Re: Plain english description of what the "maxfid" patch does? - 28/02/2008 17:20

Originally Posted By: Robotic
I prefer not to use the serial port because it means (whaa!) that I have to remove the empeg from my beautiful Mark Lord Home Dock, remove the power cord from the dock, fiddle with plugging in the empeg with cables from the back of the desk, and only then am I able to fire up HyperTerminal for the fun bits.


??? Oh, you must have one of the 13 docks ever produced that did not have a serial port on the back!

Cheers
Posted by: Robotic

Re: Plain english description of what the "maxfid" patch does? - 28/02/2008 17:37

Originally Posted By: mlord
Originally Posted By: Robotic
I prefer not to use the serial port because it means (whaa!) that I have to remove the empeg from my beautiful Mark Lord Home Dock, remove the power cord from the dock, fiddle with plugging in the empeg with cables from the back of the desk, and only then am I able to fire up HyperTerminal for the fun bits.


??? Oh, you must have one of the 13 docks ever produced that did not have a serial port on the back!

Cheers

Actually, it does have one. I couldn't get it to work for me when I first set things up, so maybe I'm a dummy that just needs to review his install basics. wink
I don't know how to make the fan run, either. crazy

I'll play with it tonight and see what I can come up with.
Thanks!
Posted by: LittleBlueThing

Re: Plain english description of what the "maxfid" patch does? - 28/02/2008 17:56

I'm sure it's worth bringing in July if you have no joy getting it going...