Basic Shell (Console) operation for beginners
Rhadon,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 )?
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
~
Ok Bruce,
here is what I have:
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.
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:
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.
Rolf
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
My first thought, if initrd is loading, I have access to PSUBDIR and everything is fine. Nice dream.
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).
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.
Rolf
Ich verwende "frugal", und das ist gut so. :wink:
Raspberry Pi without Puppy? No, thanks.
Raspberry Pi without Puppy? No, thanks.
Hi,
IT WORKS
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 onlyReplace 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.
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.
IT WORKS
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
boot-savefile (in PSUBDIR) contains only
Code: Select all
time=n
default=n
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.
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.
Raspberry Pi without Puppy? No, thanks.
Sorry for being not clear. I've edited my post.DaveS wrote:Replace read NUMSAVE with read boot-save?
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 , but high and low is very close 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.
Raspberry Pi without Puppy? No, thanks.
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
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.
Raspberry Pi without Puppy? No, thanks.
long thread, ....so these may have been posted already....
http://www.pixelbeat.org/cmdline.html#monitor
http://www.pixelbeat.org/docs/linux_commands.html
http://linuxcommand.org/index.php
http://www.linuxguide.it/linux_commands_line_en.htm
and, of course
http://puppylinux.org/wikka/BASH
Aitch
http://www.pixelbeat.org/cmdline.html#monitor
http://www.pixelbeat.org/docs/linux_commands.html
http://linuxcommand.org/index.php
http://www.linuxguide.it/linux_commands_line_en.htm
and, of course
http://puppylinux.org/wikka/BASH
Aitch
@ 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
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.
Raspberry Pi without Puppy? No, thanks.
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.
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.
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:
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!
For example the 1st bit of code in this thread:
Code: Select all
# for i in `ls *.deb`; do undeb $i; shift; done
However, the thread contains lots of good stuff for experienced ppl!
- technosaurus
- Posts: 4853
- Joined: Mon 19 May 2008, 01:24
- Location: Blue Springs, MO
- Contact:
-
- Posts: 790
- Joined: Wed 16 Apr 2008, 11:28
save-dvb question
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.
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.
- technosaurus
- Posts: 4853
- Joined: Mon 19 May 2008, 01:24
- Location: Blue Springs, MO
- Contact:
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... )
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].
-
- Posts: 790
- Joined: Wed 16 Apr 2008, 11:28
Thank you. I understand that in this script the command is used for one time "scheduling" of the recording function.technosaurus wrote:at/atd is similar to cron/crond ...
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.