Page 16 of 18

Posted: Fri 24 Jun 2011, 09:58
by rhadon
Thanks Mick,

got it. Nice to see you here.

Rolf

Posted: Fri 24 Jun 2011, 12:00
by Bruce B
rhadon wrote:If I can't solve this for me, is it OK to post such questions here (maybe initrd isn't so interesting for others here) or should I post in a separate thread, maybe in Users ( For the regulars )?
Rhadon,

This is why I think couldn't follow. I did what you apparently want to do, and I used a different approach.

I you want to work on this together, please specify exactly what you want and we'll give it a try. But patience, it could take a few days between breaks and all.

Bruce

~

Posted: Fri 24 Jun 2011, 16:31
by rhadon
Ok Bruce,

here is what I have:

Code: Select all

#!/bin/sh
PSUBDIR="/lupu-525"		#given by init script
ONEPART="sda2"			#given by init script

ls /mnt/home/$PSUBDIR/boot-savefile>/dev/null
if [ "$?" = "0" ] 
then
	TST1=`grep "time=" /mnt/home/$PSUBDIR/boot-savefile | cut -f 2 -d '='`
	TST2=`grep "default=" /mnt/home/$PSUBDIR/boot-savefile | cut -f 2 -d '='`
	echo "Savefile #" $TST2 "will start automatically in " $TST1 "seconds." # in init script >/dev/console must be added
   read -t $TST1 NUMSAVE 
	[ -z "$NUMSAVE" ] && NUMSAVE=$TST2	
else
	read NUMSAVE			# this is the original place during boot where to select the savefile, ~ line#782 in init script
fi
echo "NUMSAVE="$NUMSAVE		# for testing
This works fine as a stand alone script. It fails in init script.. OK, it is clear, that /mnt/home/ doesn't work.

My first thought, if initrd is loading, I have access to PSUBDIR and everything is fine. Nice dream. :lol:

At this point of the init script it seems to me that nothing is mounted.
#mount gives nothing back. With #ls I can see that I'm in the init-tree.

My idea was/is to mount $ONEPART (here sda2), searching for boot-savefile in $PSUBDIR and to umount it later.
The way I know, #mount /dev/$ONEPART /mnt/$ONEPART doesn't work.

In the README.txt I find:

Code: Select all

/initrd/pup_rw
This is the writable folder. Usually it is tmpfs (temporary filesystem) in ram.
However, a personal storage file (named "pup_save.2fs" or similar) or partition 
could be mounted directly on here (in which case it won't be on /initrd/pup_ro1).
So this seems to be the right place to mount sda2 temporarily. But how? All commands in ini about mounting are looking so complicated, I don't understand.

At ~line 176 there's a function called mntfunc(). I assume, most mounting will be done with this function. It seems to check for different file systems. Maybe a better solution than trying myself?

For now I think I must at least specify more, like file system (here ext3) .

What do you think? Is it a workable way?

Opinions from others are also appreciated. :wink:

Rolf

Posted: Sat 25 Jun 2011, 08:43
by rhadon
Hi,

IT WORKS :D :D :lol:

Code: Select all

    TST3=`echo $PUPSFS | cut -d , -f 2`
	mntfunc $TST3 /dev/$PDEV1 /mnt/dev_ro2 
	ls /mnt/dev_ro2$PSUBDIR/boot-savefile >/dev/null
	if [ "$?" = "0" ] 
	then
		TST1=$(grep "time=" /mnt/dev_ro2$PSUBDIR/boot-savefile | cut -f 2 -d '=')
		TST2=$(grep "default=" /mnt/dev_ro2$PSUBDIR/boot-savefile | cut -f 2 -d '=')
		echo "If no input +[ENTER], savefile #" $TST2 "will start automatically in " $TST1 "seconds." >dev/console
		umntfunc /mnt/dev_ro2
		read -t $TST1 NUMSAVE 
		[ -z "$NUMSAVE" ] && NUMSAVE=$TST2
	else
		umntfunc /mnt/dev_ro2
		echo "To start automatically you can use a textfile named boot-savefile" >/dev/console
		echo "with time=n and default=n in PSUBDIR" >/dev/console
		read NUMSAVE 
	fi
If you replace the original line read NUMSAVE in the init script (in Lupu-525 it's line #782) with the complete code above, you should be able to use a textfile named boot-save to boot automatically one of your savefiles or pfix=ram.

boot-savefile (in PSUBDIR) contains only

Code: Select all

time=n 
default=n
Replace n with your desired values.

It works for frugal installs on HD and with PSUBDIR.
I don't think it works from CD or without using a subdirectory (now).

I like to hear, what I could do better. :wink:

Rolf

Edit:
Just tested a little bit more, it seems to work also fine with Icepuppy-013 and Spup-120.50 but not (now) with Puppy 4.31 or Puppy 4.20. The boot-savefile will not be detected.

Posted: Sat 25 Jun 2011, 15:42
by DaveS
Replace read NUMSAVE with read boot-save?

Posted: Sat 25 Jun 2011, 16:03
by Bruce B
Rolf,

I guess you have it fixed. Nice feeling of satisfaction huh?

Init is a file Barry has been working on and improving for years. I find it fascinating because it reveals how Puppy is so versatile.

Congratulations

Bruce

~

Posted: Sat 25 Jun 2011, 17:27
by rhadon
DaveS wrote:Replace read NUMSAVE with read boot-save?
Sorry for being not clear. I've edited my post.

You need to replace read NUMSAVE with the complete code above. It's looking for the boot-savefile and if it's not available, you can select as usual.

Just tested a little bit more, it seems to work also fine with Icepuppy-013 and Spup-120.50 but not (now) with Puppy 4.31 or Puppy 4.20. The boot-savefile will not be detected.

Another bug:
I've had Puppy 4.31 on sda2 and sda10 (the same name of psubdir). Booting from sda10 with Grub, initrd finds only the pupsave files from sda2 and boot from there.
Edit: Seems to be bug in the initscript of 4.31 itself and has nothing to do with my changes. :)

@Bruce,

Thanks again. Yes it's a great feeling :D , but high and low is very close :roll: It's a big step for me but far away from being sophisticated.

Rolf

Posted: Sun 26 Jun 2011, 13:17
by Bruce B
Rolf

Something like this, but this init is from Lupu 5.20
PCPARTSALL="`probepart_init -k`"
Run probepart_init -k to see how it formats

Then for the value is the output for /sda10

In other words, you no longer run probepart for that install. Init thinks there is only one partition to search

~

Posted: Mon 27 Jun 2011, 20:53
by rhadon
Thanks Bruce,

I appreciate your help.

Maybe it will take some days till I test, because I was running in serious problems and for now I have only 2 partitions.

I tried to get Lupu-525 running on sda6 with raiserfs. It worked. So I tried to get a savefile.rfs running.

Then I made some faults, I really should have known better.

Well, I have back my 2 main partitions, sda1 and sda2. All what I now really miss is one file (~7GB) which was on sda9. Maybe I must create new Partitions and restore this file with an old one, but if I do so, I have no more chance to restore the actual one. Will try it with testdisk again.

Rolf

Posted: Wed 29 Jun 2011, 18:41
by Aitch

Posted: Tue 05 Jul 2011, 17:11
by rhadon
@ Bruce
Thanks again mate.

After playing with probepart_init, I found an older explanation from you here.

So I tested "PDEF1=sda8" in my menu.lst (that's my actual 2nd partition with PSUBDIR=lupu-525) and it works fine.

Rolf

Posted: Fri 08 Jul 2011, 05:28
by Bruce B
rhadon wrote:So I tested "PDEF1=sda8"
May I accept PDEF1=sda8 as a typo meaning to say PDEV1=sda8 ?

~

Posted: Fri 08 Jul 2011, 07:54
by rhadon
Bruce B wrote:May I accept PDEF1=sda8 as a typo meaning to say PDEV1=sda8 ?
Yes. :oops:

Rolf

Posted: Sat 08 Oct 2011, 05:38
by Shep
Very quiet in here ....

I'm trying to store a newline character in a shell variable, e.g.,

C=$(printf "a\nb")
printf "$C" | od -c

Works as expected, and stores the 3 characters.

But if I delete the b, to store just 2 characters, it also drops the \n and stores just one character. Why is this? :?: :?:

How to make it store a trailing newline? (EDIT: solved: C=$(printf "a\\\nb")

I know about
C='
'
but I'd like to make the printf method work.

Posted: Mon 24 Oct 2011, 00:05
by grump
All this makes my head hurt. I think you (meaning the main contributors to this thread) vastly over-estimate the abilities of a 'beginner', unless you think of a 'beginner' as a person who is already an experienced coder in other languages.

For example the 1st bit of code in this thread:

Code: Select all

# for i in `ls *.deb`; do undeb $i; shift; done 
has at least 3 programming concepts that would be meaningless to the average true 'beginner'.

However, the thread contains lots of good stuff for experienced ppl!

Posted: Mon 24 Oct 2011, 00:31
by technosaurus
Maybe not by the time they get to this page.

save-dvb question

Posted: Sat 04 Feb 2012, 02:15
by Mercedes350se
I found this script at:

http://turtlespond.net/scripts/scripts/save-dvb

but it states, in part, "Scheduling is via atd ... ".

Searching I found this site:

http://www.simplehelp.net/2009/05/04/ho ... t-command/

Unfortunately my full 3.01 HDD install does not seem to have this command.

What can I do?

Edit: I found this tutorial quite interesting because it does, in part, what I hope to achieve eventually.

http://turtlespond.net/bash_scripting_t ... index.html

It may be of some use to some one else.

Posted: Sun 05 Feb 2012, 02:16
by technosaurus
at/atd is similar to cron/crond

see also:
http://www.wensley.org.uk/dvb
http://ffmpeg.org/ffmpeg.html#Video-and-Audio-grabbing
(I don't know a light command line way to change channels though... )

Posted: Sun 05 Feb 2012, 02:32
by Semme
*Pass..

Posted: Sun 05 Feb 2012, 05:35
by Mercedes350se
technosaurus wrote:at/atd is similar to cron/crond ...
Thank you. I understand that in this script the command is used for one time "scheduling" of the recording function.

So what I need to be able to do is:

1. monitor the time presumably of the RTC - I do not want to download any programs to connect to a time server i.e. up to me to ensure that the RTC is reasonably correct.

2. when the scheduled start time is reached recording will start, and

3. when the duration/stop time is reached stop recording.