Unoffical empeg BBS

Quick Links: Empeg FAQ | RioCar.Org | Hijack | BigDisk Builder | jEmplode | emphatic
Repairs: Repairs

Page 1 of 3 1 2 3 >
Topic Options
#250953 - 03/03/2005 16:33 Patching the Player for more dynamic FIDs
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Quote:
With player-2.01, one should find 0000 7000 at offset 0x00f4dde


Correction on that. I also see the 0000 7000 at 0x00f4de0 in v2.01:

000f4db0 00 02 00 00 00 02 00 00 00 02 00 00 00 04 00 00 |................|
000f4dc0 00 02 00 00 00 06 00 00 00 02 00 00 00 08 00 00 |................|
000f4dd0 10 00 00 00 10 08 00 00 10 00 00 00 00 10 00 00 |................|
000f4de0 00 70 00 00 00 00 00 00 00 00 00 00 2f 64 65 76 |.p........../dev|
000f4df0 2f 68 64 61 33 00 00 00 2f 64 65 76 2f 64 73 70 |/hda3.../dev/dsp|
000f4e00 00 00 00 00 65 6d 70 65 67 5f 63 6f 64 65 63 5f |....empeg_codec_|
000f4e10 73 6f 75 72 63 65 2e 63 70 70 00 00 54 68 65 72 |source.cpp..Ther|

Quote:

Quote:
3 3 24097 hda3

Bingo, your dynamic partition is 48,194 sectors long. A patched binary, and then 0xAC420 of FID goodness are all yours.

Peter

So, modified with 0xAC42 it should appear like this:

000f4db0 00 02 00 00 00 02 00 00 00 02 00 00 00 04 00 00 |................|
000f4dc0 00 02 00 00 00 06 00 00 00 02 00 00 00 08 00 00 |................|
000f4dd0 10 00 00 00 10 08 00 00 10 00 00 00 00 10 00 00 |................|
000f4de0 42 ac 00 00 00 00 00 00 00 00 00 00 2f 64 65 76 |.p........../dev|
000f4df0 2f 68 64 61 33 00 00 00 2f 64 65 76 2f 64 73 70 |/hda3.../dev/dsp|
000f4e00 00 00 00 00 65 6d 70 65 67 5f 63 6f 64 65 63 5f |....empeg_codec_|
000f4e10 73 6f 75 72 63 65 2e 63 70 70 00 00 54 68 65 72 |source.cpp..Ther|


Edited by mlord (03/03/2005 16:41)

Top
#250954 - 03/03/2005 16:41 Re: Patching the Player for more dynamic FIDs [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Updated my post above with more complete info.

Top
#250955 - 03/03/2005 18:08 Program to patch max_fid within player binary (attached) *DELETED* [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Post deleted by mlord

Top
#250956 - 03/03/2005 18:12 Re: Program to patch max_fid within player binary (attached) [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Mm.. darn.. bug: date on top comments has 2004 instead of 2005.

Cheers

Top
#250957 - 03/03/2005 18:12 Re: Program to patch max_fid within player binary (attached) [Re: mlord]
tfabris
carpal tunnel

Registered: 20/12/1999
Posts: 31571
Loc: Seattle, WA
Or Hijack could just patch the memory footprint of that file "in-place" without even altering the disk. It is the kernel, after all, it can do that, right?
_________________________
Tony Fabris

Top
#250958 - 03/03/2005 18:15 Re: Program to patch max_fid within player binary (attached) [Re: tfabris]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
That is suprisingly difficult, actually. The player is paged in/out of memory (well, probably never *out* since they likely lock the pages down), but it is probably using a read-only shared mapping, which makes it really, REALLY, hard to do.

Cheers


Edited by mlord (03/03/2005 18:16)

Top
#250959 - 03/03/2005 18:17 Re: Program to patch max_fid within player binary (attached) [Re: mlord]
wfaulk
carpal tunnel

Registered: 25/12/2000
Posts: 16706
Loc: Raleigh, NC US
In addition, it seems awfully CPU-intensive compared to a one-time, four-byte change in the executable.

Maybe hijack could contain the modify-the-binary code itself, triggered by a menu somewhere.
_________________________
Bitt Faulk

Top
#250960 - 03/03/2005 18:21 Re: Program to patch max_fid within player binary (attached) *DELETED* [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Post deleted by mlord


Edited by mlord (03/03/2005 18:31)

Top
#250961 - 03/03/2005 18:36 Re: Program to patch max_fid within player binary (attached) [Re: wfaulk]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Quote:
Maybe hijack could contain the modify-the-binary code itself, triggered by a menu somewhere.


I think I'll leave that to userspace, as a simple shell script, which invokes the program I've provided, remounting the root drive rw and then ro again afterwards. The Hijack ;@MENUEXEC could be used to invoke it.

Or even better, a remote shell script that uses FTP to mount the root drive rw, installs the program, chmods it, runs it (SITE EXEC), and then deletes it and remounts the root drive rw again.

cheers

Top
#250962 - 03/03/2005 18:38 Re: Program to patch max_fid within player binary (attached) [Re: wfaulk]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
If we ever added a similar automatic function within Hijack, I'd just hardcode the binary offsets to eliminate the searches.

Cheers

Top
#250963 - 03/03/2005 19:08 Re: Program to patch max_fid within player binary (attached) [Re: mlord]
SE_Sport_Driver
carpal tunnel

Registered: 05/01/2001
Posts: 4903
Loc: Detroit, MI USA
If anyone is going to do that, one for fidsift would be cool too!
_________________________
Brad B.

Top
#250964 - 03/03/2005 20:06 Re: Program to patch max_fid within player binary (attached) [Re: mlord]
Chuck
member

Registered: 06/06/2001
Posts: 183
Could you (or someone with the ability/resources) provide a compiled version of this that will run on the Empeg?

Thanks,
-Chuck

Top
#250965 - 03/03/2005 22:11 set_empeg_max_fid (again) *DELETED* [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Post deleted by mlord

Top
#250966 - 03/03/2005 22:28 set_empeg_max_fid (version 4) [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
UPDATED VERSION!! This one has the right year on the comments, and is also 4x more efficient in how it searches. Also includes a minor bugfix to prevent possible (unlikely) segfault in the event that the search for the patch-point fails. Slightly safer overall, but either version works. Original post now deleted.

ANOTHER UPDATE: this one actually uses the correct new max_fid value from the partition size; the earlier versions forgot to multiply by 2, which normally results in a lower max_fid than that started with!

YET ANOTHER UPDATE: I finally figured out why Peter's number was "off" by 0x1000 in his messages: fixed overhead area for dynamic playlists etc.. in the dynamic data partition. This version of the utility now subtracts this from the new max_fid value (no harm with the previous version, though). As of this version (VERSION 4), it also now prints a version number banner at startup.

Okay, here's some C-code. Works for me on all v2/v3 player versions, and should also work fine on pretty much any other player version. Lots of error-checking included, so I believe it to be very safe.

If compiled for the player, one could just FTP the binary over to an empeg, remount the root drive RW, and then run it with no args. It will figure out how big the /dev/hda3 dynamic data partition is, and hack that value into /empeg/bin/player, all automatically.

Alternatively, one can compile/run it on any Linux/POSIX machine, and supply two command-line parameters: the absolute path to the player binary (must begin with a slash), and the new max_fid value (as otherwise it will use the computer's /dev/hda3 size, which probably won't be correct..).

Cheers


Attachments
250489-set_empeg_max_fid.c (340 downloads)


Top
#250967 - 03/03/2005 22:29 Re: set_empeg_max_fid (version 4) *DELETED* [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Post deleted by mlord

Top
#250968 - 03/03/2005 22:32 Re: set_empeg_max_fid (version 4) [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Sample output from running it on my player:Code:

empeg:/# ./set_empeg_max_fid.v4
./set_empeg_max_fid.v4: version 4 by Mark Lord (March 2005)
/dev/hda3: 16632 sectors
New max_fid value will be 29168 (71f0 0000)
before: 0017b95c: 00 10 00 00 00 70 00 00 00 00 00 00 00 00 00 00
after: 0017b95c: 00 10 00 00 f0 71 00 00 00 00 00 00 00 00 00 00
empeg:/#


Top
#250969 - 03/03/2005 22:38 Re: set_empeg_max_fid (version 4) [Re: mlord]
mcomb
pooh-bah

Registered: 31/08/1999
Posts: 1649
Loc: San Carlos, CA
Quote:
(release early, release often.. the open-source creedo!)


Uh, oh. Isn't that how you got started with hijack? Your not going to start rewriting the player one byte at a time now are you?

-Mike
_________________________
EmpMenuX - ext3 filesystem - Empeg iTunes integration

Top
#250970 - 04/03/2005 02:14 Re: set_empeg_max_fid (version 4) [Re: mlord]
Chuck
member

Registered: 06/06/2001
Posts: 183
Thanks!

Top
#250971 - 04/03/2005 07:55 Re: set_empeg_max_fid (version 4) [Re: mlord]
pupvogel
journeyman

Registered: 29/08/2000
Posts: 96
Loc: Hamburg, Germany
well...this is so cool !?
just a few days after this was brought up, everything works again without having to remount, rebuild...
thanks !!!

empeg:/# ./set_empeg_max_fid.v4
./set_empeg_max_fid.v4: version 4 by Mark Lord (March 2005)
/dev/hda3: 24097 sectors
New max_fid value will be 44098 (ac42 0000)
before: 00112698: 00 10 00 00 00 70 00 00 00 00 00 00 00 00 00 00
after: 00112698: 00 10 00 00 42 ac 00 00 00 00 00 00 00 00 00 00

Top
#250972 - 04/03/2005 08:57 Re: set_empeg_max_fid (version 4) [Re: mlord]
peter
carpal tunnel

Registered: 13/07/2000
Posts: 4172
Loc: Cambridge, England
Quote:
fixed overhead area for dynamic playlists etc.. in the dynamic data partition.

The clue's in the question... "offset... size..."

This is well cool BTW. Shame it got you so few extra FIDs on your own player!

Peter

Top
#250973 - 04/03/2005 12:32 Re: set_empeg_max_fid (version 4) [Re: pupvogel]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Quote:
/dev/hda3: 24097 sectors
New max_fid value will be 44098 (ac42 0000)


Ooops.. cosmetic issue: the first line above is actually reporting "blocks" rather than sectors. Each block consists of two sectors.

But the program is doing the right thing with it, so no worries. I'll release a v5 shortly that displays the message correctly, just to be nicer about it all.

Cheers

Top
#250974 - 04/03/2005 12:48 set_empeg_max_fid (version 5) [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Here's the updated source code for v5 of set_empeg_max_fid.c (attached).

Just cosmetic changes this time. No need to re-run it if you've already used v4.

-- improved parsing of /proc/partitions
-- fixed display of "sectors" value
-- tidied up display of program name
-- modified license terms to permit embedding within player app in case Peter or others decide to do so. (hint hint..)

Cheers


Attachments
250529-set_empeg_max_fid.c (329 downloads)


Top
#250975 - 04/03/2005 12:48 Re: set_empeg_max_fid (version 5 binary) [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Here's the precompiled empeg executable for v5.

Cheers


Attachments
250530-set_empeg_max_fid.v5 (377 downloads)


Top
#250976 - 04/03/2005 12:56 Re: Program to patch max_fid within player binary (attached) [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Quote:
That is suprisingly difficult, actually. The player is paged in/out of memory (well, probably never *out* since they likely lock the pages down), but it is probably using a read-only shared mapping, which makes it really, REALLY, hard to do.


Actually, I suppose it's an anonymous mapping, not shared, as the loader needs to perform relocation on the loaded image before running it. The place to have it automatically patch things would be in the loader program (userspace): /lib/ld-linux.so.2

Much more difficult within the kernel, though not impossible (obviously). We'd have to detect that ld-linux is mmapping the player, and the player has not been replaced with a shell script for whatever reason, and then we'd have to prefault the page in question (probably a no-op, but gotta check). Not huge I suppose, but more than I'm up for right now.

Cheers

Top
#250977 - 04/03/2005 14:37 Re: set_empeg_max_fid (version 5 binary) [Re: mlord]
SE_Sport_Driver
carpal tunnel

Registered: 05/01/2001
Posts: 4903
Loc: Detroit, MI USA
Dumb Question: Will the benefit anyone who has a large number of FIDS or only those who have no used a standard builder image?
_________________________
Brad B.

Top
#250978 - 04/03/2005 14:38 Re: Program to patch max_fid within player binary (attached) [Re: mlord]
tfabris
carpal tunnel

Registered: 20/12/1999
Posts: 31571
Loc: Seattle, WA
Quote:
Much more difficult within the kernel, though not impossible (obviously).


I just think it's nifty that you're even thinking about how it could be done.

Imagine the empeg kernel having a universal "patch" feature that allowed you to make those kinds of tiny changes to the binaries, on-the-fly, without needing to write a special program to do it each time. It could just be a config.ini setting or something...
_________________________
Tony Fabris

Top
#250979 - 04/03/2005 14:43 Re: set_empeg_max_fid (version 5 binary) [Re: SE_Sport_Driver]
tman
carpal tunnel

Registered: 24/12/2001
Posts: 5528
Everybody. The partition size is rounded up to the nearest cylinder which means it's bigger than 16MB on larger disks.

Top
#250980 - 04/03/2005 14:46 Re: set_empeg_max_fid (version 5 binary) [Re: SE_Sport_Driver]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Anyone with more than 0x6fff (28671) fids can benefit. How much it helps depends on how much space there is in /dev/hda3, but even on stock installs (like my own 30GB unit) it may enable more than the default limit for fids.

Cheers

Top
#250981 - 04/03/2005 14:57 Re: set_empeg_max_fid (version 5 binary) [Re: mlord]
SE_Sport_Driver
carpal tunnel

Registered: 05/01/2001
Posts: 4903
Loc: Detroit, MI USA
Thanks guys! This is great! I can't remember if my primary drive is the 80gb or 100gb, but this should help!

Here is what I got:
Quote:
empeg:/# ./set_empeg_max_fid.v5
set_empeg_max_fid.v5: version 5 by Mark Lord (March 2005)
/dev/hda3: 48194 sectors
New max_fid value will be 44098 (0000ac42)
before: 00112698: 00 10 00 00 00 70 00 00 00 00 00 00 00 00 00 00
after: 00112698: 00 10 00 00 42 ac 00 00 00 00 00 00 00 00 00 00


Now, if only I could get my "down, down, down" playlist to be saved between boots!


Edited by SE_Sport_Driver (04/03/2005 15:00)
_________________________
Brad B.

Top
#250982 - 04/03/2005 16:05 Re: set_empeg_max_fid (version 5 binary) [Re: SE_Sport_Driver]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Quote:

Now, if only I could get my "down, down, down" playlist to be saved between boots!


Mmm.. I wonder what might happen if we also patched the 0000 0010 (0x1000) value to a larger number, and adjusted max_fid to compensate.. Peter?

Top
#250983 - 04/03/2005 16:21 Re: set_empeg_max_fid (version 5 binary) [Re: mlord]
peter
carpal tunnel

Registered: 13/07/2000
Posts: 4172
Loc: Cambridge, England
Quote:
Mmm.. I wonder what might happen if we also patched the 0000 0010 (0x1000) value to a larger number, and adjusted max_fid to compensate.. Peter?

Crikey. OK. What you'd have to do is observe that (0x00001000, 0x00007000) is the ninth and last in an array of (offset,size) pairs. The first four pairs correspond to bookmarks 0-3. "Bookmark Zero" is the saved playlist, and bookmarks 1-3 are the user-visible bookmarks.

As shipped, the four bookmarks are 512 sectors long each (256K bytes). If you were being devious, you could sacrifice one or two bookmarks to the greater good, and increase the size of Bookmark Zero. So the table starts like this:
(0x00000000, 0x00000200)
(0x00000200, 0x00000200)
(0x00000400, 0x00000200)
(0x00000600, 0x00000200)
and if you changed it to be, say
(0x00000000, 0x000003C0)
(0x000003C0, 0x000003C0)
(0x00000780, 0x00000040)
(0x000007C0, 0x00000040)
then both the saved playlist and Bookmark 1 would have much more space, but Bookmarks 2 and 3 could be used only for shortish running orders. Blah blah no guarantee that doesn't shag it royally etc. but it should work.

If you were being proper devious, and you had lots of room (say 0xBC42 sectors, like Paul), you could remap some at the end of the paritition, on the basis no-one has more than say A000 fids:
(0x00000000, 0x00000400)
(0x00000400, 0x00000400)
(0x0000B000, 0x00000400)
(0x0000B400, 0x00000400)
...
(0x00001000, 0x0000A000) (not AC42)

You shouldn't fiddle with or move the small, 16-sector allocations in the middle of the list:
(0x00000800, 0x00000010) and its friends.

Peter

Top
#250984 - 04/03/2005 19:08 Re: set_empeg_max_fid (version 5 binary) [Re: peter]
JBjorgen
carpal tunnel

Registered: 19/01/2002
Posts: 3583
Loc: Columbus, OH
<coy>Ooh I love it when you get proper devious</coy>
_________________________
~ John

Top
#250985 - 04/03/2005 20:29 Re: set_empeg_max_fid (version 5 binary) [Re: peter]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Mmm.. great(!) info, Peter!

Now, as I seem to recall.. the current running order has a fixed 512-byte overhead, plus something like 12-bytes per FID, so the default of 256KB can handle up to 21802 FIDs, I suppose.

I think the simplest thing to do, for players with lots of "slack" on /dev/hda3, would be to have set_empeg_max_fid move the running order to the end of the partition, sized to match the new max_fid value. The space vacated at the beginning of the partition could then be redistributed among the bookmarks.

Nice, simple, safe, and probably a Good Thing(tm) to have it do.

Right?

EDIT: or maybe just swallow the bookmarks into an expanded running order (up to new max_fid), and relocate the affected bookmarks to the end of the partition.. mm.. I might like this option even more.. mmm..


Edited by mlord (04/03/2005 20:38)

Top
#250986 - 04/03/2005 20:46 Re: set_empeg_max_fid (version 5 binary) [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Mmm... yes.. I like Peter's second option.. cannibalize the 3rd & 4th bookmarks to expand the first two, and then reallocate the 3rd/4th from the slack space at the end of the partition.

-ml

Top
#250987 - 04/03/2005 21:15 Re: set_empeg_max_fid (version 5 binary) [Re: mlord]
SE_Sport_Driver
carpal tunnel

Registered: 05/01/2001
Posts: 4903
Loc: Detroit, MI USA
If this works (and I'm sure it will) it will be SO appreciated! This has been the number one nusance with my player for a long time. It's just a great way to rediscover music on your player.
_________________________
Brad B.

Top
#250988 - 05/03/2005 02:25 Re: set_empeg_max_fid (version 5 binary) [Re: peter]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Quote:
You shouldn't fiddle with or move the small, 16-sector allocations in the middle of the list:
(0x00000800, 0x00000010) and its friends.



What about the gap between 0x0820 and 0x1000?

That's a nice 0x7e0 sectors worth of space.. is it really available? I'd like to put bookmark #4 there.

Cheers


Edited by mlord (05/03/2005 03:06)

Top
#250989 - 05/03/2005 03:13 Re: set_empeg_max_fid (version 5 binary) [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Quote:
>You shouldn't fiddle with or move the small,
>16-sector allocations in the middle of the list:
>(0x00000800, 0x00000010) and its friends.

What about the gap between 0x0820 and 0x1000?

That's a nice 0x7e0 sectors worth of space.. is it really available?

I'd like to put bookmarks 3 and 4 there.
Doing so, the offsets table would then look like this:

before:
00112668: 00000000 00000200 00000200 00000200
00112678: 00000400 00000200 00000600 00000200
00112688: 00000800 00000010 00000810 00000010
00112698: 00001000 00007000 00000000 00000000
after:
00112668: 00000000 00000400 00000400 00000400
00112678: 00000820 000003f0 00000c10 000003f0
00112688: 00000800 00000010 00000810 00000010
00112698: 00001000 00007000 00000000 00000000

EDIT: Oh, wait.. v3alpha8 appears to have a different layout.. but everything from 0x840 to 0x1000 still appears vacant.

I now have an unreleased v7 of the utility now that fiddles the bookmarks to larger sizes using this space.


???


Edited by mlord (05/03/2005 03:43)

Top
#250990 - 05/03/2005 18:42 Re: set_empeg_max_fid (version 5 binary) [Re: mlord]
peter
carpal tunnel

Registered: 13/07/2000
Posts: 4172
Loc: Cambridge, England
Quote:
What about the gap between 0x0820 and 0x1000?

It's currently unused, but just in case we need some more (this isn't very likely), try just using 0x880...0x1000.

Peter

Top
#250991 - 05/03/2005 18:48 Re: set_empeg_max_fid (version 5 binary) [Re: peter]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Quote:
Quote:
What about the gap between 0x0820 and 0x1000?

It's currently unused, but just in case we need some more (this isn't very likely), try just using 0x880...0x1000.

Peter


Ha! That's what I already chose, and for exactly that reason.

Okay v7 now does all of this nicely. I'll release it sometime this week.

Cheers!

Top
#250992 - 05/03/2005 22:18 set_empeg_max_fid (version 7 source) [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Here is version 7 of set_empeg_max_fid.c

This one does the same max_fid fixes as prior versions, but now also expands the stored running order and bookmarks sizes to handle larger numbers of fids.

Run this on *any* player version to gain support for:

-- running orders (Eg. down-down-down shuffles) of up to 43648 fids, which should now survive reboots with this fix.
-- larger bookmark capacities (a bookmark is merely a saved running order): 43648 fids for bookmark #1, and 40917 fids for bookmarks #2 and #3.

Those features will work regardless of disk size.

In addtion, v7 will automatically reconfigure any slack space at the end of the dynamic data partition on the player (/dev/hda3) for use with fids > 0x6fff, according to available space. The larger the drive, the larger the (free!) gain one typically sees from this.

Cheers


Attachments
250633-set_empeg_max_fid.c (339 downloads)


Top
#250993 - 05/03/2005 22:20 Re: set_empeg_max_fid (version 7 source) [Re: mlord]
SE_Sport_Driver
carpal tunnel

Registered: 05/01/2001
Posts: 4903
Loc: Detroit, MI USA
Thank you, thank you, thank you! You rock Mark. It's like Christmas here!

I'll test it once there is a version ready for the empeg.
_________________________
Brad B.

Top
#250994 - 05/03/2005 22:20 Re: set_empeg_max_fid (version 7 binary) [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Here is the empeg (executable) binary for set_empeg_max_fid.v7 (attached).

Sample output from one of my players running v2.01:

# /set_empeg_max_fid.v7
set_empeg_max_fid.v7: version 7 by Mark Lord (March 2005)
/dev/hda3: 33264 sectors
New max_fid value will be 29168 (000071f0)
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 000071f0 00000000 00000000

Cheers


Attachments
250635-set_empeg_max_fid.v7 (524 downloads)


Top
#250995 - 05/03/2005 22:30 Re: set_empeg_max_fid (version 7 binary) [Re: mlord]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
And here is similar sample output from a v3a8 player.
Note the extra line of output in both the before and after portions:

# /set_empeg_max_fid.v7
set_empeg_max_fid.v7: version 7 by Mark Lord (March 2005)
/dev/hda3: 33264 sectors
New max_fid value will be 29168 (000071f0)
before:
0017a950: 00000000 00000200 00000200 00000200
0017a960: 00000400 00000200 00000600 00000200
0017a970: 00000800 00000010 00000810 00000010
0017a980: 00000820 00000010 00000830 00000010
0017a990: 00001000 00007000 00000000 00000000
after:
0017a950: 00000000 00000400 00000400 00000400
0017a960: 00000880 000003c0 00000c40 000003c0
0017a970: 00000800 00000010 00000810 00000010
0017a980: 00000820 00000010 00000830 00000010
0017a990: 00001000 000071f0 00000000 00000000

Cheers

Top
#250996 - 05/03/2005 22:32 Re: set_empeg_max_fid (version 7 binary) [Re: mlord]
SE_Sport_Driver
carpal tunnel

Registered: 05/01/2001
Posts: 4903
Loc: Detroit, MI USA
Worked perfectly! It's been SOO long since I've been able to save my root playlist! Thank you!

Now I just need the balls to run Alpha8 on this thing so I can crossfade.. hehe.


Edited by SE_Sport_Driver (05/03/2005 22:34)
_________________________
Brad B.

Top
#250997 - 06/03/2005 09:21 Re: set_empeg_max_fid (version 7 source) [Re: mlord]
bonzi
pooh-bah

Registered: 13/09/1999
Posts: 2401
Loc: Croatia
Sigh, the last excuse for not upgrading disks and memory gone....
_________________________
Dragi "Bonzi" Raos Q#5196 MkII #080000376, 18GB green MkIIa #040103247, 60GB blue

Top
#250998 - 06/03/2005 10:27 Re: set_empeg_max_fid (version 7 source) [Re: mlord]
peter
carpal tunnel

Registered: 13/07/2000
Posts: 4172
Loc: Cambridge, England
Quote:
-- running orders (Eg. down-down-down shuffles) of up to 43648 fids, which should now survive reboots with this fix.

It's actually not quite as simple a calculation as that. Each bookmark, including the saved running order, saves both the shuffled and unshuffled order. So the space taken up is 512 bytes, plus 8 bytes per distinct fid (i.e. 8 times the length of the shuffled running order), plus 4 bytes per appearance of each fid (i.e. 4 times the length of the unshuffled running order). Calculations based on "12 bytes per fid" are only accurate if each fid appears in only one playlist. If each fid appears in an average of two playlists, it's 16 bytes per fid -- three playlists, 20 bytes per fid, and so on.

Peter

Top
#250999 - 06/03/2005 11:53 Re: set_empeg_max_fid (version 7 source) [Re: peter]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Right. I figured something like that, thus the up to wording.

In practice, on one of my own players with around 7000 tracks, this can now make a difference on down-down-down shuffles. So one doesn't even need to be in Paul's league to benefit.

Cheers

Top
#251000 - 06/03/2005 13:16 Re: set_empeg_max_fid (version 7 source) [Re: mlord]
pgrzelak
carpal tunnel

Registered: 15/08/2000
Posts: 4859
Loc: New Jersey, USA
Although, it certainly helps. Thanks again!!!
_________________________
Paul Grzelak
200GB with 48MB RAM, Illuminated Buttons and Digital Outputs

Top
#251001 - 06/03/2005 16:57 Re: set_empeg_max_fid (version 7 source) [Re: pgrzelak]
peter
carpal tunnel

Registered: 13/07/2000
Posts: 4172
Loc: Cambridge, England
Quote:
Although, it certainly helps. Thanks again!!!

You know, even though many of the usual suspects seem to be reading this thread already, it's probably worth a new thread somewhere titled as a cure for forgotten down-down-down running-orders -- it seems a shame to have such useful hackery hidden in a thread apparently about memory boards.

Peter

Top
#251002 - 06/03/2005 18:14 Re: set_empeg_max_fid (version 7 source) [Re: peter]
drakino
carpal tunnel

Registered: 08/06/1999
Posts: 7868
Quote:
it's probably worth a new thread


Done. tearing this subthread out where I did seemed to be the cleanest way to do it without duplicating posts. Forgot the new board lets me do that easially.

Top
#251003 - 06/03/2005 18:17 Re: Patching the Player for more dynamic FIDs [Re: mlord]
SE_Sport_Driver
carpal tunnel

Registered: 05/01/2001
Posts: 4903
Loc: Detroit, MI USA
Forgive my "gushing", but I am just LOVING the fact that I can start shuffleing the root playlist again!
_________________________
Brad B.

Top
#251004 - 06/03/2005 23:18 Re: set_empeg_max_fid (version 7 source) [Re: drakino]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Cool! Thanks, Tom!

Top
#251005 - 15/03/2005 17:46 Re: set_empeg_max_fid (version 7 binary) [Re: mlord]
frog51
pooh-bah

Registered: 09/08/2000
Posts: 2091
Loc: Edinburgh, Scotland
Not getting this to work at all. When I run it I get:

empeg:/# ./max_fid.v7
max_fid.v7: version 7 by Mark Lord (March 2005)
/empeg/bin/player: Text file busy
empeg:/#

What would this mean?
_________________________
Rory
MkIIa, blue lit buttons, memory upgrade, 1Tb in Subaru Forester STi
MkII, 240Gb in Mark Lord dock
MkII, 80Gb SSD in dock

Top
#251006 - 15/03/2005 18:44 Re: set_empeg_max_fid (version 7 binary) [Re: frog51]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
That would mean you should first kill off the player app (serial port: control^C) before trying to modify it.

Top
#251007 - 15/03/2005 18:58 Re: set_empeg_max_fid (version 7 binary) [Re: mlord]
frog51
pooh-bah

Registered: 09/08/2000
Posts: 2091
Loc: Edinburgh, Scotland
Darn - I was afraid of that. Now I need to go and find that serial cable

Cheers Mark
_________________________
Rory
MkIIa, blue lit buttons, memory upgrade, 1Tb in Subaru Forester STi
MkII, 240Gb in Mark Lord dock
MkII, 80Gb SSD in dock

Top
#251008 - 15/03/2005 19:04 Re: set_empeg_max_fid (version 7 binary) [Re: frog51]
wfaulk
carpal tunnel

Registered: 25/12/2000
Posts: 16706
Loc: Raleigh, NC US
Just kill -2 <pid>
_________________________
Bitt Faulk

Top
#251009 - 15/03/2005 19:07 Re: set_empeg_max_fid (version 7 binary) [Re: frog51]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
It can be done entirely over FTP if really necessary, just requires a few more hoops to jump through:

-- remount rw: site rw
-- rename the existing /empeg/bin/player to something else
-- make a new copy of it under the original name
-- chmod 755 on the new copy (original name)
-- delete the original (now renamed) file (yes, you can do that even while it is still running)
-- patch the new one (original name)
-- remount ro: site ro
-- reboot: site reboot

Cheers

Top
#251010 - 15/03/2005 21:31 Re: set_empeg_max_fid (version 7 binary) [Re: mlord]
frog51
pooh-bah

Registered: 09/08/2000
Posts: 2091
Loc: Edinburgh, Scotland
Sounds reasonable, but I bet I could have messed up something trying those steps (can you tell I used to be a programmer, so instead I spent 15 minutes looking for the cable and now all is well.

I only have 14000 tracks so hadn't had a fail on down, down, down - but it seems to cope with it faster now. There used to be a significant pause before.

So, many thanks!
_________________________
Rory
MkIIa, blue lit buttons, memory upgrade, 1Tb in Subaru Forester STi
MkII, 240Gb in Mark Lord dock
MkII, 80Gb SSD in dock

Top
#251011 - 15/03/2005 21:32 Re: set_empeg_max_fid (version 7 binary) [Re: wfaulk]
frog51
pooh-bah

Registered: 09/08/2000
Posts: 2091
Loc: Edinburgh, Scotland
ahhh - never thought of trying -2, and obviously -9 just kept respawning
_________________________
Rory
MkIIa, blue lit buttons, memory upgrade, 1Tb in Subaru Forester STi
MkII, 240Gb in Mark Lord dock
MkII, 80Gb SSD in dock

Top
#251012 - 15/03/2005 22:54 Re: set_empeg_max_fid (version 7 binary) [Re: frog51]
tman
carpal tunnel

Registered: 24/12/2001
Posts: 5528
Faster? There shouldn't be any speed difference.

Top
#251013 - 15/03/2005 23:27 Re: set_empeg_max_fid (version 7 binary) [Re: frog51]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
I dunno where any speed difference would come from.

But "only 14000" tracks is plenty enough to benefit. If each track appears in two playlists, that's a shuffle of 28000 on down-down-down.. well past the previous player limitations here.

Cheers

Top
#251014 - 16/03/2005 07:50 Re: set_empeg_max_fid (version 7 binary) [Re: mlord]
frog51
pooh-bah

Registered: 09/08/2000
Posts: 2091
Loc: Edinburgh, Scotland
It always seemed to pause and wait - when I had only a few tracks on and pressed down/down/down, I'd get the hourglass then it would go straight into the new playlist.

With many tracks there would be a pause in the music, after a long period of time with the hourglass.

Now the pause is gone again
_________________________
Rory
MkIIa, blue lit buttons, memory upgrade, 1Tb in Subaru Forester STi
MkII, 240Gb in Mark Lord dock
MkII, 80Gb SSD in dock

Top
#251015 - 16/03/2005 12:28 Re: set_empeg_max_fid (version 7 binary) [Re: frog51]
tman
carpal tunnel

Registered: 24/12/2001
Posts: 5528
If anything, it should be a tiny fraction slower if you've got a huge playlist. Before it'd truncate your playlist when it ran out of room but now the playlist area has grown so it will write more.

Top
#251016 - 16/03/2005 12:58 Re: set_empeg_max_fid (version 7 binary) [Re: tman]
frog51
pooh-bah

Registered: 09/08/2000
Posts: 2091
Loc: Edinburgh, Scotland
wonder if it was truncating and getting upset about it before? I know sometimes after uploading new tracks the rebuild database would fail, and I'd need to pull power, wait for the empeg to do its long rebuild, then resync with emplode - that no longer happens (or has not yet, even though I added 200 tracks last night)
_________________________
Rory
MkIIa, blue lit buttons, memory upgrade, 1Tb in Subaru Forester STi
MkII, 240Gb in Mark Lord dock
MkII, 80Gb SSD in dock

Top
#251017 - 17/03/2005 22:07 Re: set_empeg_max_fid (version 7 binary) [Re: mlord]
Taym
carpal tunnel

Registered: 18/06/2001
Posts: 2504
Loc: Roma, Italy
Quote:
It can be done entirely over FTP if really necessary, just requires a few more hoops to jump through:
...
-- patch the new one (original name)


Mark, how can I do this? I am afraid I'm missing the proper command. I could do all up to that step. I have the set_empeg_max_fix.v7 in /empeg/bin/player , but then?

_________________________
= Taym =
MK2a #040103216 * 100Gb *All/Colors* Radio * 3.0a11 * Hijack = taympeg

Top
#251018 - 17/03/2005 22:26 Re: set_empeg_max_fid (version 7 binary) [Re: Taym]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
Quote:

Mark, how can I do this? I am afraid I'm missing the proper command. I could do all up to that step. I have the set_empeg_max_fix.v7 in /empeg/bin/player , but then?



Just run the set_empeg_max_fix.v7 program (no args required).

But your original text worries me.. /empeg/bin/player is a file, not a directory. It's not possible to have set_empeg_max_fix.v7 "in /empeg/bin/player", unless the instructions messed you up somewhere..

Cheers

Top
#251019 - 17/03/2005 22:39 Re: set_empeg_max_fid (version 7 binary) [Re: mlord]
Taym
carpal tunnel

Registered: 18/06/2001
Posts: 2504
Loc: Roma, Italy
Sorry, I meant set_empeg_max_fix.v7 is in /empeg/bin/

But now I have my ftp client open on /empeg/bin . What should I type at the command prompt?
_________________________
= Taym =
MK2a #040103216 * 100Gb *All/Colors* Radio * 3.0a11 * Hijack = taympeg

Top
#251020 - 17/03/2005 23:10 Re: set_empeg_max_fid (version 7 binary) [Re: Taym]
mlord
carpal tunnel

Registered: 29/08/2000
Posts: 14482
Loc: Canada
site rw
cd /empeg/bin
chmod 755 set_empeg_max_fix.v7
site exec /empeg/bin/set_empeg_max_fix.v7
site ro
site reboot


Edited by mlord (17/03/2005 23:10)

Top
#251021 - 18/03/2005 00:11 Re: set_empeg_max_fid (version 7 binary) [Re: mlord]
Taym
carpal tunnel

Registered: 18/06/2001
Posts: 2504
Loc: Roma, Italy
Thank you thank you. I worked perfectly! Sorry, I also realized you had mentioned the SITE EXEC command before.

Now that I think about it, is this also fixing the random-marked fids bug? Were those two issue related?
_________________________
= Taym =
MK2a #040103216 * 100Gb *All/Colors* Radio * 3.0a11 * Hijack = taympeg

Top
#251022 - 18/03/2005 00:51 Re: set_empeg_max_fid (version 7 binary) [Re: Taym]
tman
carpal tunnel

Registered: 24/12/2001
Posts: 5528
Quote:
Now that I think about it, is this also fixing the random-marked fids bug? Were those two issue related?

Nope and nope.

Top
#251023 - 17/04/2005 12:55 Re: set_empeg_max_fid (version 7 binary) [Re: tman]
MRB
new poster

Registered: 17/04/2005
Posts: 16
Hi Guys - I am new to this scene and have just bought an empeg and I have today managed to upgrade to 2 x 80Gb drives, I have read this thread numerous times and I dont seem to be able to get it into my thick skull, can someone please give me a basic step by step explanation on how to complete this.
Also I have aquired an illumination Kit and I wondered if there was anyone in the UK who could do the fitting?

Top
#251024 - 30/09/2006 17:01 Re: set_empeg_max_fid (version 7 binary) [Re: MRB]
Robotic
pooh-bah

Registered: 06/04/2005
Posts: 2026
Loc: Seattle transplant
Quote:
Hi Guys - I am new to this scene and have just bought an empeg and I have today managed to upgrade to 2 x 80Gb drives, I have read this thread numerous times and I dont seem to be able to get it into my thick skull, can someone please give me a basic step by step explanation on how to complete this.


Curious- MRB's post shows a time of 06:55 17/04/2005 in the thread, but 19:30 29/09/2006 in the main index.

Meanwhile, I, too, would greatly appreciate a "layman's" version of the maxfid fix! I'm nearing 20k tracks and still have 40GB free on my dual 60GB empeg. I'm truly impressed with the programming effort shown in this thread (ok- all over this BBS, too!) and wish I could follow along to enjoy the benefits.
_________________________
10101311 (20GB- backup empeg)
10101466 (2x60GB, Eutronix/GreenLights Blue) (Stolen!)

Top
#251025 - 30/09/2006 17:18 Re: set_empeg_max_fid (version 7 binary) [Re: Robotic]
pgrzelak
carpal tunnel

Registered: 15/08/2000
Posts: 4859
Loc: New Jersey, USA
Greetings!

I am not quite sure what you mean by a "layman's" version, but will this help?
_________________________
Paul Grzelak
200GB with 48MB RAM, Illuminated Buttons and Digital Outputs

Top
#251026 - 30/09/2006 17:49 Re: set_empeg_max_fid (version 7 binary) [Re: pgrzelak]
Robotic
pooh-bah

Registered: 06/04/2005
Posts: 2026
Loc: Seattle transplant
Quote:
Greetings!

I am not quite sure what you mean by a "layman's" version, but will this help?

Yes, Paul! Thanks! I was just reading that one, too!
_________________________
10101311 (20GB- backup empeg)
10101466 (2x60GB, Eutronix/GreenLights Blue) (Stolen!)

Top
Page 1 of 3 1 2 3 >