Pebble 1.0 BETA - simple bootsplash program

Stuff that has yet to be sorted into a category.
Message
Author
User avatar
dinky
Posts: 699
Joined: Sat 19 Jan 2008, 23:39

#41 Post by dinky »

Brilliant... though truth be told it will be awhile before TigerPup reaches Puppy 4, as far as I know Compiz-Fusion is still being developed for that. Will this update change anything in Pebble for 3.01, or is it just a fix for Puppy 4? Am using Pebble as a default for TigerPup now. Cheers.
~dinky

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#42 Post by Pizzasgood »

I updated it for all supported Puppy versions. The only file that changed for the non-4.00 versions was /bin/pebble. Technically it changed in both initrd.gz and pup_xxx.sfs, but only the one in pup_xxx.sfs really matters for the edits I made.


EDIT: I take that back. I also corrected a bug in /usr/sbin/puppyinstaller for 300 and 301 for certain types of installs (I think it was just things using extlinux or boot-floppies, but don't remember). I actually saw that bug long ago and thought I fixed it, but I guess the fixed version must have been overwritten.
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

User avatar
Archie
Posts: 16
Joined: Sat 03 May 2008, 11:35

#43 Post by Archie »

Thank you for a well-documented Pebble. My Puppy had never looked better. It's just too bad there isn't an easier way to get a widescreen framebuffer.

Thank you for your hard work.

User avatar
nutts4life
Posts: 263
Joined: Fri 15 Feb 2008, 09:52
Location: UK

#44 Post by nutts4life »

PIzzagood and friends,

I'm being a bit dumb, but i'm trying to integrate pebble into my unleashed build for my puplet.

I'm afriad i don't know quite enough about the unleashed build. So i was hoping one of you guys can give me a quick explanation.

This is my assumptions (i'm using 4.0 puppy and i've downloaded all the tar.gz's).

In the 400 directory i've combined the pup_XXX folder with the unleashed_extras folder and called it a pebble folder.

This folder i will put as one of my packages for unleashed.

Now what do i do about the initrd.gz stuff? The boot directory of unleashed contains the makeinitrdgz script and the init-tree and the final built initrd.gz

I assume the init-tree is built at ./createpuppy runtime and then the initrd.gz is built from that.
Where is the init-tree / initrd.gz building files. Are these also in rootfs-system are these the same files as in init-tree-ORIG?

Does that mean i need to move the new-init-stuff as part of my pebble package and that's it?

Thanks for any help.

n4l

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#45 Post by Pizzasgood »

I think there should be a 'boot/initrd-tree0/' directory, and the createpuppy script should combine that with some of the modules from the kernels/ directory to make a boot/initrd-tree/ directory, then it should run the makeinitrdgz.sh script on that, then put the initrd.gz file into isolinux-builds/ directory.

If this is correct, then you'd just need to copy the contents of pebble's new-init-stuff into boot/initrd-tree0. You could verify whether it probably worked by comparing the size of isolinux-builds/initrd.gz before running createpuppy to the size after.
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

davec51
Posts: 530
Joined: Thu 13 Apr 2006, 22:31
Location: Virginia

Splash Intruding on all Windows

#46 Post by davec51 »

I modified the menu.lst, as instructed, changed the initrd.gz, and installed the .pet. I got a beautiful, blue splash on bootup. But then, as I surfed away, suddenly two pinkish/purplish images appeared on my screen on top of everything. They couldn't be put in the background. On inspection, I saw that they were bizarre copies of the splash screen, with poor resolution. I could only get rid of them by reversing what I had done: reinstating my original initrd file and uninstalling the .pet.
Is what I have described possible, or does the phenomenon lie deep in my psyche? I have an old Nvidia Riva128 video card that doesn't support Xorg, so I use VESA; I hope that's the problem.

User avatar
nutts4life
Posts: 263
Joined: Fri 15 Feb 2008, 09:52
Location: UK

#47 Post by nutts4life »

Pizza good,

That worked great! Here are the steps to install pebble on unleasher:

from the puppy version specific directory (301, 400 etc).

- create a folder called pebble-1.0
- copy the contents of unleashed extras into pebble-1.0
- put pebble-1.0 into puppy_unleashed/packages and install as package
- Copy contents of new-init-stuff into puppy_unleashed/boot/init-tree0
- build puppy as normal.

Thanks!

n4l
Last edited by nutts4life on Thu 27 Nov 2008, 22:10, edited 1 time in total.

davec51
Posts: 530
Joined: Thu 13 Apr 2006, 22:31
Location: Virginia

Pebble Woes, Part II

#48 Post by davec51 »

I thought I removed Pebble. There now is no splash screen on bootup, but no text either. I guess I can live with that, but is there any way to get back to normal short of deleting my pup_save.2fs file and starting over?

davec51
Posts: 530
Joined: Thu 13 Apr 2006, 22:31
Location: Virginia

Pebble Problem solved

#49 Post by davec51 »

My previous post said:"I thought I removed Pebble. There now is no splash screen on bootup, but no text either. I guess I can live with that, but is there any way to get back to normal short of deleting my pup_save.2fs file and starting over?"

Easy. I removed "vga=791" from the kernel line in menu.lst. Everything is now just as it was before the fatal Pebble experiment.

User avatar
nutts4life
Posts: 263
Joined: Fri 15 Feb 2008, 09:52
Location: UK

#50 Post by nutts4life »

pizza good,

I can't understand why this isn't working.

I have created my own theme, with 16 images. At image nine i enter a loop which allows me to face 'loading....' in and out.

My theme .conf:

....
loop true
loop_start 7
end_stage

But it doesn't loop! Any ideas?

I'm using puppy 4. I have only put files in the init-tree0 directory now and now where else, initrd.gz compiles fine and has been successful so far.

n4l

User avatar
nutts4life
Posts: 263
Joined: Fri 15 Feb 2008, 09:52
Location: UK

#51 Post by nutts4life »

Pizzasgood,

As you probably have guessed it was me making the mistake.

I'm doing this in unleashed and i modified the init-tree0 not the init-tree folder. Then i only ran the part of the createpuppy to make the initrd.gz (which uses init-tree).

Idiot.

It's working and it's great. Legendary work!!!!!!

n4l

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#52 Post by Pizzasgood »

Sorry for my absence. As my location-blurb says (for now, will change tomorrow) I have been in "limbo" all summer. I'm now back at my grandma's house and will be moving back into my dorm/apartment tomorrow. Then I can visit the forum more regularly (but I do plan to cut back a lot from what I've been doing the last several years - less time reading forum == more time to code).


Anyways, no you weren't imagining things Dave. It sounds like maybe Pebble didn't shut down properly. If it continues running after X is started it will sometimes draw garbled stuff over the screen (if the resolution and colordepth match what you set the vga option to, it shouldn't be garbled, but will still cover everything up).

Either there is some flaw in my work that causes it to not shut down Pebble in certain situations, the .pet didn't install properly, or the files it installed were overwritten.

Or another possibility is that Pebble was somehow started again after you were up and running. Not sure how that would happen, but it's possible.


Sometime after I get unpacked and settled in, I'll take a look at my code. Probably one of the /etc/rc.d/ files I modified has a section which runs in parallel that I didn't notice, which has Pebble code in it, so that it can happen that X is already up and running and Pebble shut down when the Pebble line in that code is finally run, which would restart Pebble. That would fit with how you said you were already surfing when the colors appeared.



Another possibility is that your graphics card and/or Xvesa are just being weird. I don't think so though. An error on my part is much more likely.
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

User avatar
dinky
Posts: 699
Joined: Sat 19 Jan 2008, 23:39

#53 Post by dinky »

Hi pizzasgood, just too let you know, still issue in Pebble with various hardware. have tested it more thoroughly now, and seems to be different depending on what medium I boot from. Usb flash often the splash won't disappear to show me the dialogue asking for a password, though this is never a problem with my usb hard drive. On my main computer the splash doesn't disappear properly with passwords, however it has worked on other machines....

So not perfect, though it's still the default for TigerPup. Not sure how to trouble shoot it. Any ideas? It is a real bug, even if you've been unable to reproduce it.
~dinky

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#54 Post by Pizzasgood »

The only thing I can think of at this point is to figure out exactly which commands aren't working properly and why. That will probably take a while. I think the easiest way to do this would be for me to break up the init script so that it drops out to the commandline before trying to load a save file, then have separate scripts to load the file and to finish booting. Then I could give you a list of things to experiment with and check to see what's working.

I'll probably start on that on the weekend.
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

User avatar
dinky
Posts: 699
Joined: Sat 19 Jan 2008, 23:39

#55 Post by dinky »

Grooviness, more than happy to help with testing
~dinky

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#56 Post by Pizzasgood »

Sorry about taking a week longer than I expected. I've been in too lousy of a mood to mess with this, since rebooting over and over gets really annoying.

Anyways, I started splitting it up, but I noticed an error. Turns out there's a race condition between the pebble script and pebble-daemon. What happens is the script tells the daemon to pause or stop, then continues on it's merry way. Usually (with my tests anyways) the daemon finishes stopping before the script clears the screen. But on the occasions it doesn't, the screen will be cleared and the daemon will still go through another cycle, painting the image over the screen again.

Everything works just fine, except for the residual pixels.


So I fixed that by having the daemon create a file to act as an "I'm done now" flag, and the script waits for that before continuing.

I don't know if this is what was causing the bugs you've been getting or not, so I built a standard 3.01 initrd.gz file for you to test. In case it isn't, I also built two versions with the init script broken into three pieces. The 'yeti' version runs normally until just before it would ask for the password to decrypt the save file. Then it pauses Pebble (which is what it usually does), saves a bunch of variables, and drops out to the commandline.

At this stage you shouldn't see any images. ps should show that pebble-daemon and worm are still running. If there is still an image, see if it refreshes after you run clear. If so, the daemon didn't pause. If not, it paused but the script didn't clear the screen properly.

If things don't seem to be working right, you can play around with some commands. I left some warnings down at the bottom of the page.

Once you're done fiddling, run exec loadsave to run the part of the script that loads the save file. When that's done it dumps you back at the command line so you can fiddle some more.

When ready to finish booting, run exec finishboot. That resumes the bootsplash and completes the boot process (actually, I'm not sure if I ever bothered letting it complete with this command so there's a chance it will fail, but that's not really the point). If you played with the bootsplash prior to this you should probably make sure it's running but paused before executing this.


The 'sasquatch' version does the same thing, but instead of pausing the bootsplash before dropping out it stops it instead. Likewise, it starts it rather than resumes it when you use exec finishboot.




When on the commandline you can play around with bootsplash pause, bootsplash resume, bootsplash stop, and bootsplash start. But try not to run the wrong one - if it's paused, you should only use resume. If it's stopped, you should only use start. If it's running, you should only use pause or stop. Otherwise it can do weird stuff. Also be careful not to use start within two or three seconds of stop, because when it uses stop it runs a small subprocess in parallel that sleeps for a second, then makes sure everything has been shut down and deleted properly. If you start it while this subprocess is running Bad Things happen. I'm pretty sure I triggered several kernel panics his way.


Something that may be worth looking at if the daemon doesn't pause is /tmp/pebble-pipe. That should be a pipe file. I believe that running stat on it should show something like this on the permissions:
Access: (0644/prw-r--r--)
If it's a normal text file it would show something like this:
Access: (0644/-rw-r--r--)
(the 'p' is missing)
If it's not a pipe we'll have to find out why not, but I'll figure that out when we get there.
If it is[/b] a pipe but bootsplash pause doesn't work, something is probably wrong with the script. Try this command to manually tell the daemon to pause:
echo 'p' > /tmp/pebble-pipe
Then you should be able to use clear to clear the screen and it shouldn't be repainted.

If that doesn't work, then probably the problem is in the daemon itself.

If the above stuff doesn't work to pause the daemon, then check if stopping it works. It should, because if the normal method it uses (sending a 'q' into the pipe) fails to work it will killall pebble-daemon which should almost certainly stop it.



I'm thinking that the standard one will have fixed the bugs though.

initrd.gz
initrd_yeti.gz
initrd_sasquatch.gz
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

User avatar
dinky
Posts: 699
Joined: Sat 19 Jan 2008, 23:39

#57 Post by dinky »

Wow, awesome work pizzasgood. I won't have time to test it for a few days, but will get back to you when I do. one other thing. i notice that having Pebble enabled slows down my eeepc booting by 24 seconds... any thoughts on this? Haven't tiimed it on my desktop pc yet. I'm trying to get the eeepc booting as fast as possible in the version I'm building from unleashed, so it would be good to have it faster. Cheers,
~dinky

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#58 Post by Pizzasgood »

Well, an install that happened to use Pebble did seem to boot slowly, but I attributed that to it being a very old and heavily modified install. I also know that there were unresolved errors somewhere inside that save file. So it could have been anything.

I haven't noticed a slowdown on any other system using Pebble, but I never looked for one either. I'll play around with it this weekend and see how much effect it has. Shouldn't be much though, unless being run at a high speed on a slow computer.

Try switching the theme from paw_fade to paw, which would use a lower framerate (5 vs. 20). This can be done by editing /etc/pebble/theme in the initial ramdisk. You could modify the 'fps' line in /etc/pebble/<theme>/theme.conf instead, to set any framerate you want.


Oh, and I think I forgot to mention that when you're testing Pebble, it might make things easier if you set your framebuffer resolution to something higher than 640x480, because then if you drop out to the commandline without Pebble stopping/pausing, the entire screen won't keep getting overwritten as you try to type stuff. Only the center 640x480 pixels.
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#59 Post by Pizzasgood »

I get roughly a two-second difference in 4.00. P4 3.0gHz.
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

User avatar
dinky
Posts: 699
Joined: Sat 19 Jan 2008, 23:39

#60 Post by dinky »

Thanks matey, still working on it. no chance to test it out yet. really busy with my work, and my wife's due with our next baby in a bout a week...lol. Will let you know when I'm able to play around with it.
~dinky

Post Reply