Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Sat 19 Apr 2014, 08:41
All times are UTC - 4
 Forum index » Advanced Topics » Additional Software (PETs, n' stuff) » Unsorted
Pebble 1.0 BETA - simple bootsplash program
Moderators: deshlab, Flash, GuestToo, Ian, JohnMurga, Lobster
Post new topic   Reply to topic View previous topic :: View next topic
Page 1 of 7 [96 Posts]   Goto page: 1, 2, 3, 4, 5, 6, 7 Next
Author Message
Pizzasgood


Joined: 04 May 2005
Posts: 6270
Location: Knoxville, TN, USA

PostPosted: Thu 14 Feb 2008, 01:14    Post subject:  Pebble 1.0 BETA - simple bootsplash program
Subject description: Supports 2.14, 2.14R, 3.00, 3.01, and 4.00 - 4.12
 

Changes since 0.95:
* now notices when there is no framebuffer and disables itself
* now works with 2.14 and 2.14R
* now statically compiled
* dropped support for all file types but .jpg (cuts size down a bit)
* implementation on full-hd installs is simplified

Pebble 1.0 - BETA!

Pebble is a very basic boot splash system. It can be disabled with the boot option pfix=nosplash, but there isn't a hot-key to disable it while it's actually booting. Pebble does log the output that is being hidden, and stores it at /tmp/boot-text.log (ignore the ending line about shutting down "worm", that's a harmless glitch (worm is the daemon I wrote that does the input logging)). It does not have internal support for progress bars, but they can be implemented by using staged animation (Make stage_1 an image of a 0% bar, stage_2 and image of a 20% bar, etc., then just incriment the stage at key points. Not ideal, but it works.) One more thing not supported is split screen. Also, you might be wondering about a shutdown screen. I don't have the time to fully add that, but I did include basic support that someone could use to create a shutdown screen from. I'll explain that later.

Those non-supported things I mentioned are on my long-term to-do list, but will not happen in the near future. Don't bug me about them unless you can give me strong motivation, on the order of a year's supply of free Candy Corn, no questions asked. Otherwise, I have more important things to deal with (like paying for college, or sleeping once in a while).

Installing Pebble:
Installing Pebble involves modifying your initrd.gz file. Because of this, I can't just provide a dotpup. What I can do is provide pre-set initrd.gz files for a couple versions of Puppy, and hopefully enough documentation and examples for you to modify things yourself for other versions (I did try to make it as simple as possible when writing Pebble though, because I know the installation can be a pain. And I have to install it over and over for testing purposes!).

For this guide, I will assume you're running Puppy 3.01. I'll also provide packages for 4.00, 3.00, 2.14, and 2.14R 1.0.1, and these instructions will work for those too (just change 3.01 to 3.00 or whatever in any directions I give). For other versions of Puppy, read this anyways to get an idea, then read the section afterwards for technical details. But be warned: you'll probably need to compile the kernel modules and modify the boot scripts yourself.

Okay, first things first. Download pebble_p301-0.95.tar.gz from the bottom of this post. Extract it somewhere (clicking it should bring up a gui, but I prefer just opening a terminal and running tar -xf pebble_p301-1.0.tar.gz). It should spit out two things: a new initrd.gz file, and a petget titled "pebble_postinit-1.0.pet". We'll start with the easy part: Click pebble_postinit-1.0.pet to install it. That will install several things you'll need, including slight tweaks to some system scripts.
WARNING: This will modify /etc/rc.d/rc.country, rc.country-PUP217, rc.local0, and rc.sysinit. If you have any custom changes to those files, back them up and manually apply those changes to the new versions (or the reverse, whichever you prefer). Tkdiff is very handy for this purpose Wink

Okay, next you need to install the new initrd.gz and alter your boot commands. This part is going to be different for each person, though I'll try to cover as many situations as I can. I'll devote a section for each situation, but first I need to explain something common to all: the frame buffer. Specifically, how to set it. It uses the boot option vga=### where ### is either a number or normal. normal is what it defaults to when you don't use this option. Otherwise, it will be the mode that corresponds with the number. Different modes have different color depths and resoultions. For this guide, I will use 785, which is 640x480x64k. You're free to use whatever you want, but keep in mind that Pebble does not scale images yet, so make sure you set it appropriately for the theme you use (using too big a resolution won't hurt, the boot image will just be centered in the middle, surrounded by black). The default theme included with Pebble uses 640x480. The monkey theme is 800x600 (vesa=788). Also something to note: whatever you set will also apply to Puppy's CLI. It won't affect Xwindows, but when you drop out to the commandline, you'll have whatever resolution you use here.

Code:
no framebuffer:  vga = normal
1024x768x64k:  vga=791
1024x768x32k:  vga=790
1024x768x256:  vga=773
800x600x64k:  vga=788
800x600x32k:  vga=787
800x600x256:  vga=771
640x480x64k:  vga=785
640x480x32k:  vga=784
640x480x256:  vga=769

If you need any other modes, a quick web search can probably turn them up.


Now that that's out of the way, on with the installation.

LiveCD
If you use Puppy as a LiveCD, you will need to edit the Puppy iso to add the new initrd.gz file. Isomaster is a program that can do this, which is included with Puppy. Just use it to delete the old one, then plop in the new on I provided.

You also need to modify the isolinux.cfg file that is within the iso. Probably, you'll have to do that by extracting it from the iso, editing it, then putting it back in. Find the line that looks like this:
Code:
append initrd=initrd.gz pmedia=cd

Change it to look like this:
Code:
append initrd=initrd.gz pmedia=cd vga=785

(Don't change it to look exactly like that, just add the vga=785 part. The rest of the line will vary from machine to machine)

Okay, that should do it. At this point you should have a new iso file. If all went well, you should be able to just burn that to a disk and boot. If not, let me know exactly what you did, and post a copy of your isolinux.cfg (please put it within the [code ] [/code ] tags, it's easier to read that way).



Multisession
My sincere apologies, but I don't know how to do it with this yet. I think you might be able to follow the directions above for LiveCD to create a new disk with the boot splash (burnt open for multisession), then remove your normal disk from the drive, insert the new disk, and just let Puppy save to that like it was the original. I suspect that will work, but I'm not certain. One of these days I'll have to test it, unless somebody can confirm that this works.



Frugal/Full HD
I'm going to assume you use Grub. If you use Lilo, add the vga=785 option to the append line of lilo.conf, and make sure you run lilo after you finish everything.
Okay, first you need to add the new initrd.gz file (skip this if you have a Full HD install). Where you put it depends on how you're system is set up. In my case, I have initrd.gz at /mnt/home/boot/puppy301/initrd.gz. You should know where it is on your computer, otherwise use find / -name initrd.gz to find all initrd.gz files on your system, and determine which one to replace. Once you have it located, just delete or rename it, then drop in the new version.

Second step: Dig up your menu.lst file, which for me is at /mnt/home/boot/grub/menu.lst. Find the line that looks like this:
Code:
kernel /boot/puppy301/vmlinuz PMEDIA=satahd

Change it to look like this:
Code:
kernel /boot/puppy301/vmlinuz PMEDIA=satahd vga=785

(Don't change it to look exactly like that, just add the vga=785 part. The rest of the line will vary from machine to machine, and from full-hd to frugal-hd installs)

Now it should be finished. If all goes well, a reboot will start you up with a nice refreshing splash instead of text. If not, let me know exactly what you did, and post a copy of your menu.lst (please put it within the [code ] [/code ] tags, it's easier to read that way).



USB
Okay, first you need to add the new initrd.gz file. Mount your USB drive. The old initrd.gz file should be right there. Just back it up somewhere and drop in the new one.

Next, edit the syslinux.cfg file. Find the line that looks like this:
Code:
default vmlinuz initrd=initrd.gz pmedia=usbflash

Change it to look like this:
Code:
default vmlinuz initrd=initrd.gz pmedia=usbflash vga=785

(Don't change it to look exactly like that, just add the vga=785 part. The rest of the line will vary from machine to machine)

Now it should be finished. If all goes well, a reboot will start you up with a nice refreshing splash instead of text. If not, let me know exactly what you did, and post a copy of your menu.lst (please put it within the [code ] [/code ] tags, it's easier to read that way).

Now it should be finished. If all goes well, a reboot will start you up with a nice refreshing splash instead of text. If not, let me know exactly what you did, and post a copy of your syslinux.cfg (please put it within the [code ] [/code ] tags, it's easier to read that way).



Technical Details
You can skip this if you don't care how it works. If you're interested in themeing, you'll want to read this. Also usefull if you want to add Pebble to a version of Puppy I haven't provided a package for.

Okay, here's the brief overview of how Pebble works. There are three key programs: /bin/pebble-daemon, /bin/pebble, and /bin/worm. You don't need to be concerned with /bin/worm, that's just the daemon that takes care of the input logging (logged to /tmp/boot-text.log). You never interface with it directly - it's controlled by /bin/pebble. /bin/pebble-daemon is the program that does the actual work of displaying the images. It is not controled directly either though, as that would be tedious. Instead, /bin/pebble is the main interface point, but since the name "pebble" isn't very descriptive, it is symlinked to /bin/bootsplash, which is how I call it in all the files I've provided. It is required that you use /bin/bootsplash rather than /bin/pebble, because I also added a symlink /bin/shutdownsplash, and /bin/pebble detects which one you use. The only difference between them is using /bin/shutdownsplash gets the theme from /etc/pebble/theme_shutdown rather than /etc/pebble/theme. This is to allow you to set up a shutdown screen, though I don't currently support that feature. If you want the shutdown splash, you'll have to modify the shutdown scripts appropriately yourself, because I don't have the time to do it, nor to explain it. The commands are the same as for a boot-splash though, but with shutdownsplash instead of bootsplash. That's all I'm going to discuss about it. From here on, I'm talking about the bootsplash.

So to start the daemon, you'd call bootsplash start, and to stop it, you'd do bootsplash stop. I'll go ahead and list all the options you should be using at this point (there are more if you read the scripts and sources, but they're leftovers from various other schemes, which I've neglected to delete in case I need them again):
Quote:
bootsplash start
This starts the daemon. It should only be used at the very beginning, to start things up.
bootsplash pause
This pauses the daemon and restores the normal screen output. You need to use this command before places in the boot process where things need to be shown to the user, such as the keyboard wizard, choosing a save file, etc.
bootsplash resume
This resumes the daemon where it left off, after a pause. Do NOT use this after a switch_root! (that uses revive)
bootsplash switch_root
This is necissary before Puppy does the switch_root or pivot_root. It hibernates the daemon (saves the current state and frame, then shuts down without adjusting the display), and moves any important files (like the pipe) into the new filesystem. Note: This needs to be run before /proc and co. are unmounted (several lines above the switch_root, no biggie)
bootsplash revive
This is what you use in /etc/rc.d/rc.sysinit to start the daemon back up after the switch_root. It will load the previously saved frame and stage and continue where it left off. (In a full-hd install, there never was a swicth_root, so in that case this command will run some special full-hd install only setup things). This command must be run after /proc has been remounted as rw. You can go ahead and move the text to below this though, and redirect it to /dev/console if it isn't already.
bootsplash next
This one increments the stage. (This does not "overflow", so if you have more next's than you have stages, it will just ignore the superfluous calls).
bootsplash previous
This decrements the stage, and is "underflow" safe the same as bootsplash next.
bootsplash stop
This shuts down the daemon and restores the normal output. It gets used at the end of the boot process (I reccomend /etc/rc.d/rc.local0).

In case you're wondering about the stages, it's basically support for multiple animations. See the section on theme format for more info.

These commands will mostly be in the /init (or /sbin/init for 2.xx) file of the initrc.gz file. There are also some in /etc/rc.d/rc.country, rc.country-PUP217, rc.local0, and rc.sysinit, at least in Puppy 3.01. In other versions you'll need them in other spots. Usually you'll want the stop in rc.local0 though.

Just adding all these commands isn't enough though. Puppy needs to have the frame-buffer enabled for this to work. That's easy enough, just boot with the vga=785 option. However, you'd find that doing that alone would render all CLI text invisible. This is because you need to load the fbcon module for the console to output to the framebuffer. Puppy doesn't have that module by default, so I compiled it myself, and added a line in /init to modprobe it (which was nice compared to in older Puppies that didn't have modprobe in initrd.gz, so you had to use zcat piped to insmod on fbcon and all its dependant modules, which was kind of ugly).

And that sums up most all the changes I had to make.

If you want still more info, you can compare the packages I provided with the standards. Also, I uploaded an extra package that contains the originals of all the modified files, along with the source and all the extra modules. I apologize in advance about the source being kind of messy and undocumented. I worked off of the nifty FBV image viewer app to avoid having to immediately write my own image processing rutines (I do plan to do that eventually). Unfortunately, the author of FBV didn't seem to be fond of commenting his code. Also, I haven't gotten around to cleaning up the src directory, so you'll find that the ./configure script is broken. It isn't needed anyways, just use make. Any documentation or license info in there is also the original stuff. Mostly the only things I've altered are main.c and the make file. The original source should be available online, just check his old documentation for a link. If not, I should have it on my drive somewhere. (I fully intend to clean everything up soon, but I'm a pretty busy guy and cleaning is low on my priority list).


Theme Format
First off, the only supported image format is now .jpg. You could recompile it with .png and .bmp if you felt like it, and probably even .gif (but not animated .gif files). You'd have to modify the config.h and Make.conf files appropriately, and by hand (./configure is broken ATM).
Okay, now to explain how this works. So far, it isn't very complex. When Pebble starts, it reads /etc/pebble/theme to get the name of the theme to use. Then it reads /etc/pebble/<theme_name>/theme.conf to get the configuration. So if you have theme set to paw_fade it will load /etc/pebble/paw_fade/theme.conf.

The theme.conf files look like this:
Code:
ram_glutton   false

stage
   fps         20
   images      stage_1
   loop      true
   loop_start   13
end_stage

stage
   fps         30
   images      stage_2
   loop      false
end_stage

This is a very simple example (though they don't get much more complicated). It has a single stage, looped, at 40 "frames per second". I quote that, because it isn't exact and will actually run a little slower than that (improving that is on the to-do list).

Before I continue, I should explain what a stage is. They are basically a method to have multiple animations, so that you can update things throughout the boot process. Each stage is one animation, and they're stored in the order defined. When you run bootsplash next it will move on to the next animation in the sequence, and bootsplash previous goes to the previous animation. In this way, you could implement a loading bar. You'd set the first stage's image to be an empty bar, the second stage's as a 10% bar, the third's as a 20%, etc. Then incriment it every so often within the boot scripts.

It's not as robust as I'd like yet, as it can only be incremented and decremented. You can't just tell it to use stage 4. I'll improve it some day, but it's not high on my priority list.

Okay, so now that that's clear (hopefully), I'll explain the file on a line-by-line basis:
Code:
ram_glutton   false

This can be set to either true or false. It's essentially an option to make a tradeoff, of ram for speed. If you leave it set to false, Pebble will load only one image at a time. When it goes to the next frame, it unloads the old image and loads the next. This can be a little slow. Enabling ram_glutton will cause it to load every single frame (in every single stage!) right at the beginning, and keep them loaded until it's shut down. That means it might take a little longer to start up, but then it will run more quickly and without eating as much CPU time. However, this uses a LOT of ram, as the images are stored completely decompressed within ram. If you have, say, a 40 frame animation using 800x600 jpg images, it can easily use 50+ mb of ram. Thus why it's optional. You should enable it for small animations, especially if it's just a single frame (no such thing as static, just animations with a single frame), otherwise that same image will keep getting loaded and unloaded, which is pretty stupid.
Code:
stage

This initiates a stage section.
Code:
   fps         20

This sets the framerate for the stage, in "frames per second" (yes, each stage can have its own framerate). The actual framerate will be slightly little lower than this, but with version 0.9 it should be pretty close now. You probably shouldn't go higher than 60 either, due to monitor refresh rates...
Code:
   images      stage_1

This one is important. It sets the location to look for the stage's images. How it works is like this: "/etc/pebble/<theme>/<stage_image_option>/*", so if you're using the theme paw_fade, the images this refers to would be at /etc/pebble/paw_fade/stage_1/. Now I need to explain how animation works. Basically, it just goes through all the files in that directory in alphabetical order. So it's best to name them as 0000.jpg, 0001.jpg, 0002.jpg, etc. so that you ensure they get played in the correct sequence. (Starting with 0 and working up will help when you get to the loop_start option...)
Code:
   loop      true

This sets whether it loops or not. If you set it to false, it will just play through the sequence once, then stop on the last frame.
Code:
   loop_start   13

This one only applies if looping is true. It sets which frame (numerically) starts the looping sequence. So in this case, it will play through the entire sequence of frames once, then after finishing the final frame it will warp back to frame 13, then continue through the sequence, always looping back to 13 after it finishes. This is a good way to have an "intro" effect, like the fade-in that the paw_fade uses. In that case though, it has looping set to false, since it doesn't change after the fade. But with this option, you could have it fade in, then have an animation afterward. Then using loop_start would be handy, so you wouldn't have to keep re-playing the intro.
And please take note: This goes by number, NOT filename. It doesn't care if an image is named 13.jpg, m.jpg, or Zeratul.jpg, so long as it comes 14'th when they're put in alphabetical order. No, that isn't a typo. I'm indexing from 0, so the first frame is 0, the second is 1, etc. This is why I suggested naming your images starting with 0000.jpg. If you don't like it, hey, this is open source. Just go add a +1 in the appropriate place, recompile, and add the new binary to /bin in initrd.gz and the normal filesystem.
Code:
end_stage

This ends the stage section.

Then it just goes into another stage section. As you can see, you don't do anything special like numbering the stages. Just define them in order. Also, you can have multiple stages pointing at the same location for images. That might come in handy if you want the first and last sections the same, but need something different in the middle. Or if you want to alter the looping or framerate mid-way through.

And, that's a theme file.


Adding a new theme
If you want to add a new theme, you'll need to edit the initrd.gz file and add it to the relevant place (etc/pebble/). Don't forget to set etc/pebble/theme to contain the name of the theme. During the boot process, any new themes will automatically be copied from initrd.gz into the save_file, as long as they don't already exist (currently, it will not overwrite any existing file other than /etc/pebble/theme, though I plan to improve it so it can tell which files are newer). If you use a Full-HD install, you can actually just install the theme in the main filesystem since you have no initrd.gz file.

To edit initrd.gz, open a terminal in the same location as it (make sure it's a linux partition), and run this:
Code:
mkdir initrd-tree
cd initrd-tree
zcat ../initrd.gz | cpio -i -d

That will make a directory initrd-tree that contains the contents of the initrd.gz file. Go inside and edit away. When you're finished, from inside the initrd-tree directory, run these commands:
Code:
find . | cpio -o -H newc | gzip -9 > ../initrd.gz

That will replace the old initrd.gz file with the new one. Now just copy that into the correct place, and you're good to go!
Note: There may be an error/difference with Puppy's cpio program, resulting in an absurdly large initrd.gz due to dereferencing symlinks. There are a couple solutions. The simplist is to use the dev package I provided below. It includes a script you can just click to build the new initrd.gz file. Make any changes in the new-initrd-stuff directory, and click the makecpioinitrd script. Or, you could just overwrite Puppy's cpio with the one included in the dev package, then follow the first set of instructions I posted. If you happen to have the unleashed-core installed for Puppy 3.xx, you could also steal the cpio program from the boot/ directory of it, as that's the same one I used.



Packages
http://www.browserloadofcoolness.com/software/puppy/pebble/1.0/
The pre-packaged packages are named pebble_p###-1.0.tar.gz, where ### is the version (214, 301, etc).

People who want to make a remaster using Pebble should also grab the packages named pebble_inst###-1.0.tar.gz. What they contain are updated versions of the puppyinstaller and grubconfig scripts. That way when someone runs the installer, it will offer choices to configure Pebble too. The package for Puppy 3.01 will work fine in 3.00 too (puppyinstallyer only had minor changes between versions, and grubconfig had none) so I didn't make a 3.00 only package.


This is the developer package, which includes everything in the above packages, along with original scripts and the source.
pebble_dev-1.0.tar.gz
In the 400/ 300/ 301/ 214/ and 214R/ directories, you'll find these directories:
generic/
initrd-tree_ORIG/
new-init-stuff/
pup_xxx/
unleashed_extras/
z_ORIG_SCRIPTS/
along with this script:
makecpioinitrd
Clicking that script will create a directory "initrd-tree" and populate it with the combined contents of initrd-tree_ORIG and new-init-stuff, then build a new initrd.gz file. You can use that as an easy way to modify things. The z_ORIG_SCRIPTS/ directory has the original versions of the scripts I modified (other than init, which is in initrd-tree_ORIG/). The pup_xxx/ directory is the same as the "postinit" package, and the unleashed_extras/ directory has the install scripts from the other package.

There are two source directories: pebble_src/ and worm_src/. They have the source of worm and pebble_daemon. You can build them with 'make'. DO NOT run ./configure for pebble, as I have not modified that script to work properly and you'll probably break something. The readme and changelog in the pebble_src/ directory are also still the originals from fbv. I'll clean all this up someday...

The generic/ directory holds the pebble script and binaries of pebble_daemon and worm. There is a 'populate' script inside which will copy those files into the /bin directories of the new-initrd-stuff/ and pup_xxx/ directories for all puppy version directories. Otherwise it can be troublesome to keep them all syncronized when I start tweaking things.

The zz_packages/ directory contains a script which will assemble all of the packages I linked to above. I used to do it by hand when I only supported one or two versions of Puppy, but that started to become tedious so I set this up.


Note: The dev package also contains UNTESTED files for 3.02. I haven't even tried to boot that so I have no idea if it works.


Have fun Razz

updated 2008.02.28: fixed harmless glitch in 3.xx full-hd implementations
updated 2008.04.03: fixed another harmless glitch (the "flash" after switch_root)
updated 2008.05.27: added support for Puppy 4.00 (2.6.21.7 kernel only) and improved cleanup code - should now leave behind no temporary files or stalled daemons
updated 2008.11.26: added support for Puppy 4.10 and 4.11 (2.6.25.16 kernel only), corrected a potential race condition, restructured development package to use the original initrd.gz files in place of the initrd-tree_ORIG directories so that the files in /dev don't get corrupted, and added some cleanup scripts to the development package.
updated 2008.12.11: added support for Puppy 4.12 (2.6.25.16 kernel only).

_________________
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


Last edited by Pizzasgood on Thu 11 Dec 2008, 13:42; edited 12 times in total
Back to top
View user's profile Send private message Visit poster's website 
Pizzasgood


Joined: 04 May 2005
Posts: 6270
Location: Knoxville, TN, USA

PostPosted: Thu 14 Feb 2008, 01:21    Post subject:  

For anybody who wants to use this in conjunction with the prettysyslinux thing I set up here:
http://www.murga-linux.com/puppy/viewtopic.php?p=174220
Install Pebble FIRST, then install prettysyslinux SECOND (using the Pebble version of the scripts!).

You can always re-install the prettysyslinux package over Pebble if you installed it previously (and should now anyways, because I updated it tonight). It won't hurt anything.

Techinically, you only need to install the puppyinstaller script after Pebble, because that's the only file that overlaps.

And in case it isn't clear above, the dev package for this version of Pebble does include modified scripts for Puppy 3.02, but I haven't tested those. I haven't even installed 3.02 at all.

_________________
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

Back to top
View user's profile Send private message Visit poster's website 
Pizzasgood


Joined: 04 May 2005
Posts: 6270
Location: Knoxville, TN, USA

PostPosted: Sat 16 Feb 2008, 03:13    Post subject:  

If anyone downloaded this already, as of 02:00 GMT-5 Feb 16 2008, you need to redownload (unless you only care about 2.14/2.14R). Just a small tweak to fix a "done" that would appear in the image right after the switch_root.

If you want to correct that yourself, just edit the etc/rc.d/rc.sysinit script and find the part right after all the functions where it checks if there's an /initrd directory, and move that chunk of code down below the "pebble revive" and above the "Now executing rc.sysinit" part.

_________________
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

Back to top
View user's profile Send private message Visit poster's website 
ecomoney


Joined: 25 Nov 2005
Posts: 2183
Location: Lincolnshire, England

PostPosted: Sat 16 Feb 2008, 03:55    Post subject: Documentation  

Very well documented. How would I add a boot parameter to turn graphical booting off in case of a problematic machine and I needed to see the startup messages?
_________________
Puppy Linux's Mission

Sorry, my server is down atm!
Back to top
View user's profile Send private message Visit poster's website MSN Messenger 
Pizzasgood


Joined: 04 May 2005
Posts: 6270
Location: Knoxville, TN, USA

PostPosted: Sat 16 Feb 2008, 06:17    Post subject:  

Pizzasgood wrote:
Pebble is a very basic boot splash system. It can be disabled with the boot option pfix=nosplash, but there isn't a hot-key to disable it while it's actually booting. Pebble does log the output that is being hidden, and stores it at /tmp/boot-text.log (ignore the ending line about shutting down "worm", that's a harmless glitch (worm is the daemon I wrote that does the input logging)).


Not being sarcastic or anything. That is a reeeaallly long post.

Also, if the machine is having trouble with the framebuffer you might need to use vga=normal pfix=nosplash


EDIT: I went back and bolded the option in the original post. That should help a little.

_________________
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

Back to top
View user's profile Send private message Visit poster's website 
richard.a


Joined: 15 Aug 2006
Posts: 510
Location: Adelaide, South Australia

PostPosted: Sat 16 Feb 2008, 17:26    Post subject:  

Wonder if this is the project you were looking at last year that went on the backburner? And will it work with earlier puppies? I ask that because I've no choice but to install nothing later than 2.10pro/2.11 on some boxen that have Intel810 or SIS chipsets. My customisation is geared around 2.10pro/2.11 and also 2.02r2 as a result.

And I have been looking for 2.14r and can't find an ISO anywhere to download through searching the forums and the many websites Sad

_________________
Have you noticed editing is always needed for the inevitable typos that weren't there when you hit the "post" button?


Back to top
View user's profile Send private message 
trapster


Joined: 28 Nov 2005
Posts: 1997
Location: Maine, USA

PostPosted: Sat 16 Feb 2008, 17:59    Post subject:  

http://www.puppylinux.ca/puppyfiles/
_________________
trapster
Maine, USA

Asus eeepc 1005HA PU1X-BK
Frugal install: Puppeee4.31 + 1.0, Puppy4.10 + Lupu52
Currently using Slacko AND lupu52 w/ fluxbox
Back to top
View user's profile Send private message Visit poster's website 
Pizzasgood


Joined: 04 May 2005
Posts: 6270
Location: Knoxville, TN, USA

PostPosted: Sat 16 Feb 2008, 20:31    Post subject:  

Probably, but I have so many projects on the back burner that I need a new kitchen. I did start working on it back in fall 2006 and in spring 2007, then back in fall of 2007.

As for other Puppies, theoretically, but you'd probably have to recompile the kernel modules unless they use 2.6.18.1. You'd definitely have to modify the init scripts by hand. Comparing the ones I included for 2.14 against the originals from 2.14 (which I also included) using TkDiff or GtkDiff would help explain what to do better than anything I could write up. Mostly you just have to find anyplace where you need the user to see output and add a bootsplash pause before and a bootsplash resume after.

_________________
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

Back to top
View user's profile Send private message Visit poster's website 
Pizzasgood


Joined: 04 May 2005
Posts: 6270
Location: Knoxville, TN, USA

PostPosted: Thu 28 Feb 2008, 22:10    Post subject:  

Minor tweak as of 21:00 28 Feb 2008: moved a variable initialization in /etc/rc.d/rc.syslinux of 3.xx versions to correct the bug where it shows an error message about a syntax error on a full-hd install. This can be done by hand easily: just edit that file and locate the part that says STATUS=0, then move it to just under the ###MAKING FILESYSTEM USABLE#### part, right above the mount statement. Save it. All better.

I updated the packages too, but I also removed the getline and clean_pupstate functions. Those were holdovers from an earlier version. In 1.0 their functionality was moved into the pebble script itself, but I forgot to delete them from the rc.sysinit file. They weren't hurting anything and only wasted about a kilobyte, so it isn't a big deal or anything.

_________________
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

Back to top
View user's profile Send private message Visit poster's website 
dinky


Joined: 19 Jan 2008
Posts: 699

PostPosted: Mon 17 Mar 2008, 21:55    Post subject: Usb save files  

Wow! Really impressed. Have been having a fun time playing around with this. Has worked flawlessly on my frugal hard drive install, less so booting from a live cd to a usb save file. Problems are this:
When I boot the cd, after the boot message the splash screen displays. So far so good. Then when puppy scans my computer for pupsave files, the splash disappears and it asks me what file I wish to boot from. Also good. From then on it's not so great.... once I type in my ecryption password, splash comes back, no matter if I put the wrong password in or not. Also, after about 10 seconds I start seeing boot messages written over the top of the splash screen... any idea how to fix this? Cheers.
Back to top
View user's profile Send private message 
Pizzasgood


Joined: 04 May 2005
Posts: 6270
Location: Knoxville, TN, USA

PostPosted: Tue 18 Mar 2008, 01:31    Post subject:  

Hmmm... I'll look into it sometime tomorrow. Which version of Puppy are you running?
_________________
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

Back to top
View user's profile Send private message Visit poster's website 
dinky


Joined: 19 Jan 2008
Posts: 699

PostPosted: Tue 18 Mar 2008, 04:39    Post subject:  

Thanks for the quick reply. I'm using puppy 3.01, with a version I've remade from wNOP.
I've been creating a pupplet specific for booting up on different computers, thus the need for the usb save file. For now I'm removing the bootscripts of pebble from it, but am hoping to find a way to fix this.. I really like what you've done. Cheers,

~Mitchell
Back to top
View user's profile Send private message 
Pizzasgood


Joined: 04 May 2005
Posts: 6270
Location: Knoxville, TN, USA

PostPosted: Thu 20 Mar 2008, 00:08    Post subject:  

I can't seem to replicate that. Are you sure the encryption behaves correctly when not using Pebble? And what is the text that gets displayed? Could it be that you haven't installed the pebble_postinit-1.0.pet in that save file yet? In that case text would start covering the bootsplash about half-way through. If you this is a remaster of one that had it installed, maybe the remaster didn't cover /etc/rc.d/rc.sysinit, rc.local0, and rc.country.


I did notice another harmless bug though. In some versions of Puppy Pebble won't save it's frame data correctly before the switch_root. This is only with the latest releases due to a bug I introduced when I made it 2.14R compatible. I never really liked the piece of code involved, so I've rewritten that part so it should work write on all Puppies, without the dependency on grep during init. I haven't uploaded it yet though, because I want to sort out what's wrong with dinky's setup first.

_________________
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

Back to top
View user's profile Send private message Visit poster's website 
dinky


Joined: 19 Jan 2008
Posts: 699

PostPosted: Thu 20 Mar 2008, 05:59    Post subject:  

Thanks for your reply. I'll have to play around with it soon when I have some more spare time. I was using a savefile from my pupplet 'Tigerpup version 1.2', and had remastered the live cd to include Pebble. I then copied the new Initrd, Zdrv, and Vmllinuz (apart from initrd I should be the same anyway) and rebooted. This is when I ran into trouble. I am basically running the remasters from a frugal hard-drive install, where I edit the savefile on my pc before creating a remastered version from it. I downloaded your package with all of your scripts, copied the folders from pup301, and unleashed, and created the new initrd... would it still be necessary to run the postinit package on the savefile on my flash drive, running from the livecd? I thought this would have been done with the remaster, as I sorted that out by copying and pasting the correct files on my frugal install. Will let you know what I find... Cheers.
Back to top
View user's profile Send private message 
Pizzasgood


Joined: 04 May 2005
Posts: 6270
Location: Knoxville, TN, USA

PostPosted: Fri 21 Mar 2008, 03:55    Post subject:  

As long as you grabbed all the files from the 301/pup_xxx/ and 301/unleashed_extras/ directories and also made the new initrd.gz file, all should be well. The postinit package just contains the stuff in pup_xxx/.

Double check that the resulting ISO actually has the modified files though. In Puppy 3.xx you can just click the ISO to mount it. You can also click the pup_301.sfs file, but it I don't remember if that works when you're also running from a pup_301.sfs file. You might have to do it manually:
mount pup_301.sfs /mnt/data -o loop
Then a grep bootsplash /etc/rc.d/rc.sysinit should return the five instances of "bootsplash" in it. If it doesn't return anything, the remaster didn't save those files.

If I remember right, the remaster script will ignore some things in /etc, if not the entire directory, so you might have to put those files in during the part where it lets you modify things after copying the original install but before creating the actual iso.

_________________
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

Back to top
View user's profile Send private message Visit poster's website 
Display posts from previous:   Sort by:   
Page 1 of 7 [96 Posts]   Goto page: 1, 2, 3, 4, 5, 6, 7 Next
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » Advanced Topics » Additional Software (PETs, n' stuff) » Unsorted
Jump to:  

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
[ Time: 0.1559s ][ Queries: 12 (0.0061s) ][ GZIP on ]