Basic Shell (Console) operation for beginners

Booting, installing, newbie
Message
Author
User avatar
rhadon
Posts: 1292
Joined: Thu 27 Mar 2008, 11:05
Location: Germany

#301 Post by rhadon »

Thanks Mick,

got it. Nice to see you here.

Rolf
Ich verwende "frugal", und das ist gut so. :wink:
Raspberry Pi without Puppy? No, thanks.

Bruce B

#302 Post 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

~

User avatar
rhadon
Posts: 1292
Joined: Thu 27 Mar 2008, 11:05
Location: Germany

#303 Post 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
Ich verwende "frugal", und das ist gut so. :wink:
Raspberry Pi without Puppy? No, thanks.

User avatar
rhadon
Posts: 1292
Joined: Thu 27 Mar 2008, 11:05
Location: Germany

#304 Post 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.
Last edited by rhadon on Sat 25 Jun 2011, 17:33, edited 1 time in total.
Ich verwende "frugal", und das ist gut so. :wink:
Raspberry Pi without Puppy? No, thanks.

User avatar
DaveS
Posts: 3685
Joined: Thu 09 Oct 2008, 16:01
Location: UK

#305 Post by DaveS »

Replace read NUMSAVE with read boot-save?
Spup Frugal HD and USB
Root forever!

Bruce B

#306 Post 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

~

User avatar
rhadon
Posts: 1292
Joined: Thu 27 Mar 2008, 11:05
Location: Germany

#307 Post 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
Ich verwende "frugal", und das ist gut so. :wink:
Raspberry Pi without Puppy? No, thanks.

Bruce B

#308 Post 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

~

User avatar
rhadon
Posts: 1292
Joined: Thu 27 Mar 2008, 11:05
Location: Germany

#309 Post 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
Ich verwende "frugal", und das ist gut so. :wink:
Raspberry Pi without Puppy? No, thanks.

User avatar
Aitch
Posts: 6518
Joined: Wed 04 Apr 2007, 15:57
Location: Chatham, Kent, UK

#310 Post by Aitch »


User avatar
rhadon
Posts: 1292
Joined: Thu 27 Mar 2008, 11:05
Location: Germany

#311 Post 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
Ich verwende "frugal", und das ist gut so. :wink:
Raspberry Pi without Puppy? No, thanks.

Bruce B

#312 Post by Bruce B »

rhadon wrote:So I tested "PDEF1=sda8"
May I accept PDEF1=sda8 as a typo meaning to say PDEV1=sda8 ?

~

User avatar
rhadon
Posts: 1292
Joined: Thu 27 Mar 2008, 11:05
Location: Germany

#313 Post by rhadon »

Bruce B wrote:May I accept PDEF1=sda8 as a typo meaning to say PDEV1=sda8 ?
Yes. :oops:

Rolf
Ich verwende "frugal", und das ist gut so. :wink:
Raspberry Pi without Puppy? No, thanks.

Shep
Posts: 878
Joined: Sat 08 Nov 2008, 07:55
Location: Australia

#314 Post 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.

User avatar
grump
Posts: 124
Joined: Mon 10 Oct 2011, 10:47
Location: Melbourne, Oz

#315 Post 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!

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#316 Post by technosaurus »

Maybe not by the time they get to this page.
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

Mercedes350se
Posts: 790
Joined: Wed 16 Apr 2008, 11:28

save-dvb question

#317 Post 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.

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#318 Post 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... )
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

User avatar
Semme
Posts: 8399
Joined: Sun 07 Aug 2011, 20:07
Location: World_Hub

#319 Post by Semme »

*Pass..
Last edited by Semme on Sun 05 Feb 2012, 05:50, edited 1 time in total.

Mercedes350se
Posts: 790
Joined: Wed 16 Apr 2008, 11:28

#320 Post 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.

Post Reply