The time now is Thu 25 Feb 2021, 09:12
All times are UTC - 4 |
Author |
Message |
ozsouth
Joined: 01 Jan 2010 Posts: 862 Location: S.E Australia
|
Posted: Thu 06 Feb 2020, 21:41 Post subject:
|
|
@s243a - thanks for your support & for answering my original query. The typo I made is only my later post entry (I shouldn't rush) - the init.fake.gz I posted up top is correct (so I edited my later mistake).
|
Back to top
|
|
 |
ozsouth
Joined: 01 Jan 2010 Posts: 862 Location: S.E Australia
|
Posted: Fri 07 Feb 2020, 00:23 Post subject:
|
|
Ok, this is how enabling xdrv worked for me (try at own risk!):
1. expand initrd.gz (click on it in ROX-Filer) & in /root/initrd-expanded:
2. add folder pup_x
3. edit DISTRO_SPECS (add XDRV line near end)
4. edit init - first line with YDRVSFS should have ydrv ilo adrv. With every reference to a ydrv or Y_BP, add xdrv or X_BP line.
Then:
5. recompress initrd.gz (click on it again in ROX-Filer).
6. edit puppy ... .sfs - add XDRV line near end of /etc/DISTRO_SPECS via updatesfs tool:
http://murga-linux.com/puppy/viewtopic.php?p=1028687#1028687
7. replace old initrd.gz & old puppy ... .sfs & reboot.
|
Back to top
|
|
 |
musher0
Joined: 04 Jan 2009 Posts: 15041 Location: Gatineau (Qc), Canada
|
Posted: Fri 07 Feb 2020, 01:20 Post subject:
|
|
s243a wrote: | musher0 wrote: | In any case, a-f-y-z-drv code aside, we need to remember that we can load ANY sfs
by scripting sfs_load, which makes the number of sfs's a Puppy can load near infinite
-- if we need to. |
It's good to have both options  |
Indeed!
Actually, I should qualify that. It's not "near infinite".
It came back to me that former French forum member ASRI_Education did test
manually how many sfs's a Puppy could load, and that number is 123. Although ASRI
was ( still is! ) extremely bright, I thought he had mildly lost it for this experiment, since
he spent days creating over 120 sfs's from scratch for his test. But now we know.
In any case, it makes sense: 128 bits ( through aufs or similar on a 32-bit PC ) minus
5 for the essential sfs's: the puppy_"schmurf"_version-number, the devx, the zdrv and
the pupsave, plus room for one other, maybe Libre|Open|Office = 123.
Puppy could not accommodate the a-f-y drv's at the time.
Since we now have 64-bit Pups, would it be safe to say that aufs or similar would be
able to accommodate a maximum of 251 sfs's in a Pup? ( 256 minus 5 )
I'm afraid I'm not technical enough to come up with the answer, so I'm asking.
TIA for any insight.
A secondary question comes to my mind: could ozsouth generalize his script to all
letters of the alphabet? It would be a done deal, wouldn't it!
BFN.
_________________ musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)
|
Back to top
|
|
 |
s243a
Joined: 02 Sep 2014 Posts: 2626
|
Posted: Fri 07 Feb 2020, 03:28 Post subject:
|
|
musher0 wrote: |
A secondary question comes to my mind: could ozsouth generalize his script to all
letters of the alphabet? It would be a done deal, wouldn't it!
BFN. |
One could do that by using the ASCII tables. However, are the puppy layers stacked alphabetically? If not then we would have to perhaps apply a permutation, or an easier way to do it would be to hard code it in the loop:
Code: |
for Letter in A B C D E F G ...
|
_________________ Find me on minds and on pearltrees.
|
Back to top
|
|
 |
O.F.I.N.S.I.S.
Joined: 01 Mar 2020 Posts: 162
|
Posted: Sun 01 Mar 2020, 12:29 Post subject:
|
|
You need to modify shinobar's sfs_load as well for the XDRV or you may get into trouble when loading .sfs files at run time.
I'm running GDRV, MDRV, NDRV and VDRV.
|
Back to top
|
|
 |
O.F.I.N.S.I.S.
Joined: 01 Mar 2020 Posts: 162
|
Posted: Sun 01 Mar 2020, 13:10 Post subject:
|
|
In addition to my previous post:
ozsouth wrote: | 6. edit puppy ... .sfs |
Nope.
You don't need to do that!
Near the bottom end of the init script there's this section:
Code: | cp -af /DISTRO_SPECS /pup_new/initrd/
cp /init* /pup_new/initrd/
chmod -x /pup_new/initrd/init
dmesg > /tmp/dmesg.txt |
Just add
Code: | cp -af /DISTRO_SPECS /pup_new/etc/ |
on top of this section.
No need to edit the base .sfs!
Btw.: this works also that way if one wants to rename the base .sfs to a new name. Just change the related entries in initrd's DISTRO_SPECS and you're done!
|
Back to top
|
|
 |
Smithy

Joined: 12 Dec 2011 Posts: 1157
|
Posted: Mon 16 Mar 2020, 18:30 Post subject:
|
|
Tried it and got B,C,D.E and G. No problems or lags or anything as far as I could tell..Difficulty level=7, if you get one letter wrong..Like a crossword, had to use good old rsh editinit, 'cos rox lies, wouldn't sqoosh it back up.
Good job! Things like Wine and java and office stuff.
|
Back to top
|
|
 |
ozsouth
Joined: 01 Jan 2010 Posts: 862 Location: S.E Australia
|
Posted: Mon 16 Mar 2020, 22:08 Post subject:
|
|
@Smithy - excellent!
@O.F.I.N.S.I.S. - After thinking this over, Slacko pups should have no problem simply copying the init DISTRO_SPECS to /etc, but Ubuntu based ones apparently need the 2 multiarch entry lines at the end of the puppy... .sfs version of DISTRO_SPECS.
sfs_load is indeed an issue - could edit /usr/sbin/sfs_load, I suppose, but it looks complicated.
As I don't use it, deleting /usr/sbin/sfs_load & /usr/share/applications/SFS_Load.desktop then running fixmenus will solve issue for me. If I make B, C, D & E drives, won't need sfs_load. Alternatively, I could just use sfs_load, as was suggested earlier.
|
Back to top
|
|
 |
O.F.I.N.S.I.S.
Joined: 01 Mar 2020 Posts: 162
|
Posted: Tue 17 Mar 2020, 09:31 Post subject:
|
|
ozsouth wrote: | @O.F.I.N.S.I.S. - After thinking this over, Slacko pups should have no problem simply copying the init DISTRO_SPECS to /etc, but Ubuntu based ones apparently need the 2 multiarch entry lines at the end of the puppy... .sfs version of DISTRO_SPECS. |
I'm doing this in Ubuntu based Puppy.
So, you might think editing the base .sfs is the better way than to just to copy those two lines from .sfs DISTRO_SPECS to the initrd DISTRO_SPECS - of course only if they are not already inside the initrd DISTRO_SPECS. Which should be the case, if the developer knows his job well enough.
There are many ways are leading to Rome...
_________________ Our Future Is Not Set In Stone
https://www.youtube.com/channel/UCyfyaxCNMduwyXlQFRQKhhQ
https://soundcloud.com/user-633698367
My own build of Bionic64
|
Back to top
|
|
 |
Smithy

Joined: 12 Dec 2011 Posts: 1157
|
Posted: Tue 17 Mar 2020, 09:58 Post subject:
|
|
Hi ozsouth, O.F.I.N.S.I.S. I managed to do two initrd.gz files, one was artful and one bionic 1903 32 bits.
In both final cases I didn't touch the etc distrospecs in either the main puppy sfs or the initrd.gz
Just mentioning because these are ubuntu based? Unless there may be problems down the line.
I'll post these sort of templates in case anyone wants to experiment without having to go through the typing!
Code: | #OZSOUTH TEMPLATE
#MAKE SOME EMPTY FOLDERS INSIDE THE EXPANDED INTIRD.GZ LIKE pup_b pup_c pup_d etc.
#These will become the drvs.
[color=red]#ROUND ABOUT LINE 78[/color]
#precaution - if DISTRO_SPECS was not processed by 3builddistro...
[ ! "$DISTRO_ZDRVSFS" ] && DISTRO_ZDRVSFS="zdrv_${DISTRO_FILE_PREFIX}_${DISTRO_VERSION}.sfs"
[ ! "$DISTRO_FDRVSFS" ] && DISTRO_FDRVSFS="fdrv_${DISTRO_FILE_PREFIX}_${DISTRO_VERSION}.sfs"
[ ! "$DISTRO_ADRVSFS" ] && DISTRO_ADRVSFS="adrv_${DISTRO_FILE_PREFIX}_${DISTRO_VERSION}.sfs"
[ ! "$DISTRO_YDRVSFS" ] && DISTRO_YDRVSFS="ydrv_${DISTRO_FILE_PREFIX}_${DISTRO_VERSION}.sfs"
[ ! "$DISTRO_XDRVSFS" ] && DISTRO_XDRVSFS="xdrv_${DISTRO_FILE_PREFIX}_${DISTRO_VERSION}.sfs"
[ ! "$DISTRO_BDRVSFS" ] && DISTRO_BDRVSFS="bdrv_${DISTRO_FILE_PREFIX}_${DISTRO_VERSION}.sfs"
[ ! "$DISTRO_CDRVSFS" ] && DISTRO_CDRVSFS="cdrv_${DISTRO_FILE_PREFIX}_${DISTRO_VERSION}.sfs"
[ ! "$DISTRO_DDRVSFS" ] && DISTRO_DDRVSFS="ddrv_${DISTRO_FILE_PREFIX}_${DISTRO_VERSION}.sfs"
[ ! "$DISTRO_EDRVSFS" ] && DISTRO_EDRVSFS="edrv_${DISTRO_FILE_PREFIX}_${DISTRO_VERSION}.sfs"
[ ! "$DISTRO_GDRVSFS" ] && DISTRO_GDRVSFS="gdrv_${DISTRO_FILE_PREFIX}_${DISTRO_VERSION}.sfs"
[ ! "$DISTRO_PUPPYSFS" ] && DISTRO_PUPPYSFS="puppy_${DISTRO_FILE_PREFIX}_${DISTRO_VERSION}.sfs"
[color=red]#ROUND ABOUT LINE 85[/color]
# filenames specified in DISTRO_SPECS: DISTRO_ZDRVSFS, DISTRO_PUPPYSFS...
Z_DEF_FN="$DISTRO_ZDRVSFS"
F_DEF_FN="$DISTRO_FDRVSFS"
A_DEF_FN="$DISTRO_ADRVSFS"
Y_DEF_FN="$DISTRO_YDRVSFS"
X_DEF_FN="$DISTRO_XDRVSFS"
B_DEF_FN="$DISTRO_BDRVSFS"
C_DEF_FN="$DISTRO_CDRVSFS"
D_DEF_FN="$DISTRO_DDRVSFS"
E_DEF_FN="$DISTRO_EDRVSFS"
G_DEF_FN="$DISTRO_GDRVSFS"
P_DEF_FN="$DISTRO_PUPPYSFS"
[color=red]#ROUND ABOUT LINE 1038[/color]
#have basic system, now try to add optional stuff
find_onepupdrv "$F_PART" "$F_BP_FN" "$F_DEF_FN" "f"
[ "$ONE_FN" ] && FDRV="$ONE_PART,$ONE_FS,$ONE_FN"
[ "$FDRV" ] && { LOADMSG="fdrv"; setup_onepupdrv "$FDRV" "f"; }
find_onepupdrv "$Z_PART" "$Z_BP_FN" "$Z_DEF_FN" "z"
[ "$ONE_FN" ] && ZDRV="$ONE_PART,$ONE_FS,$ONE_FN"
[ "$ZDRV" ] && { LOADMSG="zdrv"; setup_onepupdrv "$ZDRV" "z"; }
find_onepupdrv "$Y_PART" "$Y_BP_FN" "$Y_DEF_FN" "y"
[ "$ONE_FN" ] && YDRV="$ONE_PART,$ONE_FS,$ONE_FN"
[ "$YDRV" ] && { LOADMSG="ydrv"; setup_onepupdrv "$YDRV" "y" "p"; }
find_onepupdrv "$A_PART" "$A_BP_FN" "$A_DEF_FN" "a"
[ "$ONE_FN" ] && ADRV="$ONE_PART,$ONE_FS,$ONE_FN"
[ "$ADRV" ] && { LOADMSG="adrv"; setup_onepupdrv "$ADRV" "a" "p"; }
find_onepupdrv "$B_PART" "$B_BP_FN" "$B_DEF_FN" "b"
[ "$ONE_FN" ] && BDRV="$ONE_PART,$ONE_FS,$ONE_FN"
[ "$BDRV" ] && { LOADMSG="bdrv"; setup_onepupdrv "$BDRV" "b" "p"; }
find_onepupdrv "$C_PART" "$C_BP_FN" "$C_DEF_FN" "c"
[ "$ONE_FN" ] && CDRV="$ONE_PART,$ONE_FS,$ONE_FN"
[ "$CDRV" ] && { LOADMSG="cdrv"; setup_onepupdrv "$CDRV" "c" "p"; }
find_onepupdrv "$D_PART" "$D_BP_FN" "$D_DEF_FN" "d"
[ "$ONE_FN" ] && DDRV="$ONE_PART,$ONE_FS,$ONE_FN"
[ "$DDRV" ] && { LOADMSG="ddrv"; setup_onepupdrv "$DDRV" "d" "p"; }
find_onepupdrv "$E_PART" "$E_BP_FN" "$E_DEF_FN" "e"
[ "$ONE_FN" ] && EDRV="$ONE_PART,$ONE_FS,$ONE_FN"
[ "$EDRV" ] && { LOADMSG="edrv"; setup_onepupdrv "$EDRV" "e" "p"; }
find_onepupdrv "$G_PART" "$G_BP_FN" "$G_DEF_FN" "g"
[ "$ONE_FN" ] && GDRV="$ONE_PART,$ONE_FS,$ONE_FN"
[ "$GDRV" ] && { LOADMSG="gdrv"; setup_onepupdrv "$GDRV" "g" "p"; }
[color=red]# TOWARDS THE END OF SCRIPT ROUND ABOUT LINE 1405 ADD O.F.I.N.S.I.S. cp -af /DISTRO_SPECS /pup_new/etc/
[/color]
fi
cp -af /DISTRO_SPECS /pup_new/etc/
cp -a /DISTRO_SPECS /pup_new/initrd/
cp /init* /pup_new/initrd/
chmod -x /pup_new/initrd/init
dmesg > /tmp/dmesg.txt
###FINISHED EDITING### |
|
Back to top
|
|
 |
O.F.I.N.S.I.S.
Joined: 01 Mar 2020 Posts: 162
|
Posted: Tue 17 Mar 2020, 14:51 Post subject:
|
|
@Smithy
Yes, this works also if defined only inside of the init script.
BUT: other programs depending on that data (not exclusively the sfs_load) don't include the init script. They simply do:
Code: | . /etc/DISTRO_SPECS |
Keep this in mind!
And: since you put it into the init script, why not to put it into the DISTRO_SPECS instead?
It's more save in general to prevent problems that way and it should be exactly the same amount of work.
However, many ways leading to Rome...
_________________ Our Future Is Not Set In Stone
https://www.youtube.com/channel/UCyfyaxCNMduwyXlQFRQKhhQ
https://soundcloud.com/user-633698367
My own build of Bionic64
|
Back to top
|
|
 |
Smithy

Joined: 12 Dec 2011 Posts: 1157
|
Posted: Tue 17 Mar 2020, 18:09 Post subject:
|
|
Thanks O.F.I.N.S.I.S.
I will do that. I had a bit of a disaster making a quite complicated jack/qjackctl *.drv
Maybe that had something to do with it. A P.Widgets *.drv was not a problem. I've shoved jack/qjackctl now in the main puppy sfs,
but will give a wine *drv a go at some point, see if that works ok.
I hope that (appian) ways to Rome will be a happy and healthier one towards late Summer.
|
Back to top
|
|
 |
nic007

Joined: 13 Nov 2011 Posts: 3444 Location: Cradle of Humankind
|
Posted: Thu 19 Mar 2020, 06:04 Post subject:
|
|
Thanks for the template Smithy. I got this to work for the first time without any issues it seems. Is the order of layer preference (higher in preference level): adrv, xdrv, ydrv, bdrv, cdrv, ddrv, edrv, gdrv, base sfs, zdrv, fdrv?
_________________ nicOS-Utility-Suite
|
Back to top
|
|
 |
nic007

Joined: 13 Nov 2011 Posts: 3444 Location: Cradle of Humankind
|
Posted: Thu 19 Mar 2020, 06:17 Post subject:
|
|
s243a wrote: | musher0 wrote: | In any case, a-f-y-z-drv code aside, we need to remember that we can load ANY sfs
by scripting sfs_load, which makes the number of sfs's a Puppy can load near infinite
-- if we need to. |
It's good to have both options  |
It's useful having these extra drives sfs's load on top of the base sfs in order of preference which is not the case when loading extra sfs's on the fly.
_________________ nicOS-Utility-Suite
|
Back to top
|
|
 |
Smithy

Joined: 12 Dec 2011 Posts: 1157
|
Posted: Thu 19 Mar 2020, 17:53 Post subject:
|
|
Hi nic, according to ozsouth, the section around 1046:
#have basic system, now try to add optional stuff
The drvs will load up in ascending order.
Maybe a test run of a small text file made into a bunch of *.drvs will show that this works.
I ended up editing the init distrospecs file AS WELL and putting:
#for the partition, path and actual files loaded, see PUPSFS and ZDRV in /etc/rc.d/PUPSTATE
DISTRO_PUPPYSFS='puppy_upupbb_19.03.sfs'
DISTRO_ZDRVSFS='zdrv_upupbb_19.03.sfs'
DISTRO_FDRVSFS='fdrv_upupbb_19.03.sfs'
DISTRO_ADRVSFS='adrv_upupbb_19.03.sfs'
DISTRO_YDRVSFS='ydrv_upupbb_19.03.sfs'
DISTRO_BDRVSFS='bdrv_upupbb_19.03.sfs'
DISTRO_CDRVSFS='cdrv_upupbb_19.03.sfs'
DISTRO_DDRVSFS='ddrv_upupbb_19.03.sfs'
DISTRO_EDRVSFS='edrv_upupbb_19.03.sfs'
DISTRO_GDRVSFS='gdrv_upupbb_19.03.sfs'
DISTRO_XDRVSFS='xdrv_upupbb_19.03.sfs'
I THINK that was what O.F.I.N.S.I.S. meant in his caution?
That could do with clarification, so there's no trouble down the line.
I was also wondering what type of programmes might be calling for distrospecs.
|
Back to top
|
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|