Developing FirstRUN for Puppy CD's initial boot

Under development: PCMCIA, wireless, etc.
Message
Author
gcmartin

Developing FirstRUN for Puppy CD's initial boot

#1 Post by gcmartin »

Its no secret that I am a big fan for the Puppy effort(s). It is fabulous to see a community come together and achieve so much. Its a testament to mankind in the kind of innovation thru cooperation Puppy achieves.

I am NOT a developer nor am I a distro builder. I am an implementer and user of technology for practical purposes.

Having been associated with Unix-Linux (and a host of other OSes) over my years, I quickly "got" (meaning "understood") what Shinobar was offering us when I first saw it. FirstRUN.

Linux has added and moved to X from its beginning with text base, There are 4 things that traditionally plague all users over the planet:
LAN, localization, sound, and video.

In the past, users were forced to stop along the way in answering boot-time questions about these things. And, if you got it wrong, you had to search the system for some tool to fix that (probably easy for system developers), or you started all over.

Shinobar fixed this. For the first time, he gave all distro owners a method to allow any user the opportunity to select and change these basis needs in a single screen "FirstRUN" after reaching desktop without having to stop at various times along the way.. He made it so that you no longer had to stop and answer questions just to get to the X desktop. This was a major and "startling" change in booting of today's OS. Just insert CD and go straight to X! FirstRUN completes the tailoring in one place and user begin the system, immediately.

Since the outset, that single screen has had a name change across most distro which employ it now as "Personalize Settings"

For example when this invokes to the desktop, a user knows
  • sound works, when they hear "woof-woof"
  • the name of the PC and They can set it for their needs
  • Time zone needs
  • keyboard needs
  • Video options for various needs
  • And, it even checks you LAN connections for you and alerts you it there's a miscue.
  • iff there is a "screw up", one can simply go back thru that single screen again for adjustments.
They know this.

This tools has done so much for us in a single screen. Many of us have used this for various good reasons.

As we approach 2012, Barry is also moving to improve the user experience at boot time.

Barry raises a good point as he is looking at improving the startup desktop processing for Woof, WARY and RACY.
This effects an advantage to distro builders as improvements can be made to process the startup/reset of the system experience in a single "friendly" intuitive screen.

The development of the FirstRUN tool, as it exist today, is a combination of its start, along with 'the ideas and offers' that other Puppy distro developers had already filtered into Shinobar. He has been responsive to this.

He has produced a very useful tool for some, but, I have not heard anything negative about its services to Puppy thus far. Thus one would assume it provide a positive experience from the distro developers who employ it to the users who use.

Is there any ideas or suggestions that anyone feels would improve the startup desktop experience in this single screen approach?

P.S. FATDOG can take a user to desktop, but, FATDOG does NOT provide a single screen for changing anything done by the FATDOG boot process.

Whereas, FirstRUN give any distro owner the advantage of a single screen where the user can either undo or correct what was initially booted. This is what makes FirstRUN so powerful.

Question, again
Is there any ideas or suggestions that anyone feels would improve the startup desktop experience in this "single screen approach"? I'm sure everyone would welcome any and all suggestions to support Barry in his efforts.
Old version - FirstRUN 1.84

New Version - FirstRUN 1.9
Image

Minnesota
Posts: 326
Joined: Thu 11 Sep 2008, 11:25

expansion

#2 Post by Minnesota »

Years ago I used a flavor of Linux that automatically set up your attached printer.

That feature would be welcomed with Puppy.

Thanks.

gcmartin

Additions

#3 Post by gcmartin »

If there becomes a 2012 version of startup in "X", like FirstRUN does, he's a couple more ideas.

Ideas for newer single screen tool
  • Put IP address, it available on-screen (not for changing, simply for information awareness)
  • Allowing password to remain the same or be changed(never displayed nor maintained in a FristRUN log)
I am sure that adding additional features has its pluses and minuses. But, the awareness this tool brings to newbies "may" reduce their questions about their PUPs.

Just ideas. I sure there are other ideas as well.

emil
Posts: 633
Joined: Tue 10 Nov 2009, 08:36
Location: Austria
Contact:

#4 Post by emil »

big achievments were made last year. I regard shinobars contributions in so many fields simply amazing (localisation, Grub4Dos, sfs_load, firstrun, pupsaveconfig, frugalinstaller and sure I forgot lots of others). Thank you shinobar!

Better = simpler.
If the woof build stays simple an user interface can be installed on top of it. Its abit like different wm's - it depends on personal preference.

since you asked:
Setup of password and hostname (Maybe put it into "Network security" together with "Firewall" and maybe generator of ssh keys)?
Configuration System Files? (shinobars PupSaveconfig and the swapfile tool)
Software Setup button which leads to an improved and unified package manager GUI (unifying ppm, quick/slickpet, Bootloadmanager, sfs_load on the fly, flash downloader)?

should this things be rushed? - I think not.
Last edited by emil on Thu 20 Oct 2011, 18:55, edited 1 time in total.

amigo
Posts: 2629
Joined: Mon 02 Apr 2007, 06:52

#5 Post by amigo »

Well, it's a sort of oxymoron to create a GUI program to setup X. If you can't manually setup X or write a script which hopefully gives you at least a basic working X configuration, then you'll not be able to run such a first-run program. The idea is certainly not unique. Almost every distro's installer willl guide you through the intricacies of setting up essential things. The big problem is deciding what is essential and what is not. Running any sort of setup program which presents you with choices which don't apply to your needs or usage is tedious.

Lots of folks don't even want any X at all -like for a server where even having X installed is a security risk. So your perfect one-stop do-it-all program will not help them at all.

Almost by definition, a liveCD is gonna need to present the user with at least a couple of choices every time it boots -unless some sort of 'persitsence' is implemented. even then, the range of possibilities is huge -well demonstarted by Puppy. For instance, you have the thing installed, or 'frugally-installed', but then for some reason you want to boot and ignore your 'installation'. Both the ability to have 'persistence' and the ability to ignore persistent data require added code during the boot-up process -which adds time to the bootup process. The more options you contemplate, the more complex the routines. At some point -like now, you have so many options that one can hardly remember how to use them or what options exist -and the large amount of conditionals used to achieve the versatilty penalizes every user in every case by making you either answer too many questions, or by making too many assumptions which don't agree with what you want. And in every case, the boot-time will be much longer than what is really needed to do the job.

User avatar
Lobster
Official Crustacean
Posts: 15522
Joined: Wed 04 May 2005, 06:06
Location: Paradox Realm
Contact:

#6 Post by Lobster »

Better = simpler
'Just works' is about what happens for the user.
Anything that interferes with that process is a bug
or 'geeky stuff' as my sisters inform me . . .

One of the most difficult things for developers to understand
is that most users when for example seeing code lines during
boot up - think the system is 'crashing' or not working right.

When they boot up and have to answer questions
(something they do not do on a smart phone or I p a d)
. . . well the OS is at fault . . . :roll:

If giving people a choice or interaction
- you can set up AND Introduce simultaneously

For example
Welcome to Puppy
Did you hear Puppy bark?
Y/N
Set up sound?

Puppy thinks you are in the US
Is Puppy a smart dog or just a pup?
Smart/Pup

Do you want to go on-line NOW?
Click on connect?
Later Dog / Get me on-line now Buddy

Is that the time (shows time)?
Puppy time is right / Set to MY time

I need some grooming?
Make me look different / You'll do Puppy

========

This may seem cute
but it is basic psychology
getting people to interact with their OS
as a friendly 'buddy' :)
Puppy Raspup 8.2Final 8)
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html :D

User avatar
tasmod
Posts: 1460
Joined: Thu 04 Dec 2008, 13:53
Location: North Lincolnshire. UK
Contact:

#7 Post by tasmod »

One of the things that bugged me about Puppy is the startup screen.

Most other polished distros use a splash screen to hide the text bootup. This is achieved using the frame buffer.

Some also magically setup your locale. (This I suspect is derived from an existing windows install, if it exists, or from the hardware clock.)

Pizzasgood started on this when he produced 'Pebble'. Unfortunately he had other commitments and it stalled.

I've been working on this area but admit it is not a field I'm knowledgeable about.

I liked the graphical boot menu type screen and tried to implement it further in boot process with the console messages backgrounded.

I altered a few scripts and got some results but constant lockups and reboots gets tiring developing something. I'm also not sure if I'm pursuing the right path.

To create a more polished Puppy I feel it really needs this, followed by something like shinobars effort.

Most new computers come with Windows preset to boot and ask simple questions in a graphical format, this doesn't frighten newbys so much.

EDIT:

One of the projects occupying my free time was a trayicon that showed the country flag for the current keyboard. I implemented a first start version similar to firewallstate. This could be expanded, however it did not follow X as to which keyboard was in use after a keyboard change 'on the fly'. It just used 'keymap' at startup.
The right click menu brought up a window where keyboard, locale etc could be changed. It could also bring up shinobars First Run if required.
This is similar to the mainline distros.

However again, I've spent a bit too much time on it and need a code break 8)
Rob
-
The moment after you press "Post" is the moment you actually see the typso 8)

User avatar
tasmod
Posts: 1460
Joined: Thu 04 Dec 2008, 13:53
Location: North Lincolnshire. UK
Contact:

#8 Post by tasmod »

Well, well. Surprised myself.

After posting above I took one more look and discovered where I went wrong with pizzasgoods Pebble. I abandoned extending graphical grub.

This is on a frugal install and is very basic for now. Animation of sorts can be added. All thanks to Pizzasgood.

This is a YouTube video that I took with my mobile phone. I was so pleased that I forgot to speak until part way in. :lol:

Bootsplash video

This is on Puppy 5.2.9 but I can modify it to run on most Puppys.
Last edited by tasmod on Fri 21 Oct 2011, 13:26, edited 2 times in total.
Rob
-
The moment after you press "Post" is the moment you actually see the typso 8)

User avatar
Lobster
Official Crustacean
Posts: 15522
Joined: Wed 04 May 2005, 06:06
Location: Paradox Realm
Contact:

#9 Post by Lobster »

I was so pleased that I forgot to speak until part way in.
lovely jubbly
http://www.urbandictionary.com/define.p ... y%20jubbly

When I boot in I quite often use 'puppy pfix=ram' - unless using fatdog
where it is 'fatdog pfix=ram'

From what I remember of this way of booting
It had an 'f2 extended boot options' text and a scrollable menu
of options . . .

Friendliness for noobs
Options for geeks 8)
Puppy Raspup 8.2Final 8)
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html :D

User avatar
tasmod
Posts: 1460
Joined: Thu 04 Dec 2008, 13:53
Location: North Lincolnshire. UK
Contact:

#10 Post by tasmod »

Lobster,

Still quite pleased with this.

At the moment I have let the splash continue as I need no options.

However, on a remastered live cd or during an 'update puppy' the screen can be paused whilst choice is made then resume again.
Using different screens will create an animation of sorts but at expense of overall package size and boot time slight increase.

I still think it's worth it though.

I've managed to get it to work on a USB as well.

I believe it will work on a Full install as long as lilo or grub is used to boot.
Rob
-
The moment after you press "Post" is the moment you actually see the typso 8)

User avatar
tasmod
Posts: 1460
Joined: Thu 04 Dec 2008, 13:53
Location: North Lincolnshire. UK
Contact:

#11 Post by tasmod »

Hmmm. Interesting.

Based upon my install on Puppy 5.2.9.

I modded initrd.gz and loaded the extra files. Two extra themes were incorporated.

Now just doing some basic file size checks I can see no appreciable size increase as long as I remove the extra themes.
In fact after modding initrd.gz I saved 500k thus leaving room for the extra files.
Rob
-
The moment after you press "Post" is the moment you actually see the typso 8)

Minnesota
Posts: 326
Joined: Thu 11 Sep 2008, 11:25

YES Yes, splash screen

#12 Post by Minnesota »

Yes, I like the idea of a splash screen...and agree with above comments on making Puppy look more professional. PLEASE if possible add animation in the form of a time line or running Puppy or even sound... why.... it it very hard to determine if something is RUNNING. On big systems I used to give messages to my users to "Hang In There, I am Working". That is the purpose of the hour glass. Even better if you can in some way give a estimated time to desktop. Just a few suggestions. Keep up the good work.

User avatar
tasmod
Posts: 1460
Joined: Thu 04 Dec 2008, 13:53
Location: North Lincolnshire. UK
Contact:

#13 Post by tasmod »

Yep, I hope to have that working by to-morrow.

I posted it up even though it's at very early stage for me.

An animation of sorts is the next thing to show.
Rob
-
The moment after you press "Post" is the moment you actually see the typso 8)

User avatar
8-bit
Posts: 3406
Joined: Wed 04 Apr 2007, 03:37
Location: Oregon

#14 Post by 8-bit »

This is just a thought, but how about a full screen gif for the animation?
That way, one file could be used for the animation and not have to switch between graphic files.

User avatar
tasmod
Posts: 1460
Joined: Thu 04 Dec 2008, 13:53
Location: North Lincolnshire. UK
Contact:

#15 Post by tasmod »

'Fraid not. It's hard coded to jpg.

Remember, the system isn't loaded yet, so there's nothing to interpret it.
Rob
-
The moment after you press "Post" is the moment you actually see the typso 8)

User avatar
tasmod
Posts: 1460
Joined: Thu 04 Dec 2008, 13:53
Location: North Lincolnshire. UK
Contact:

#16 Post by tasmod »

Ok mixed results. Using Luci_529

My own frugal install has a nice bootsplash that fades in and then continues by making the blue dots into red 'running dots' until X starts and the desktop appears.
See YouTube video for dots I mean,

splash

However the problem is at shutdown, the shutdown scripts are unaltered but the console messages are not echoed, but they do run. i.e. the save state at close.

I did make a LiveCd of 529 and had some success with it same as above. However the shutdown is a real problem with black screen, you don't see the option window to save to file !!

If anyone wants to try it out, I can see whether either the forum will cope or I can find a download site.

It consists of a 'new' initrd.gz , a pet of modified startup scripts and an addition of vga=785 to the end of kernel grub line in menu.lst.

I could do with at least a couple of testers.[/url]
Rob
-
The moment after you press "Post" is the moment you actually see the typso 8)

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

#17 Post by technosaurus »

my personal opinion, is that if you are going to have a wizard run when you get to X that may require restarting X, you may as well start up with Xvesa (on my box it takes less than 0.2 seconds to start Xvesa vs 5-10 seconds for Xorg with intel graphics) let the user select Xorg if they want.

here is a short example
Xvesa -screen 1024x768x16 & sleep .2 && jwm -display :0
(see the pupngo thread for more advanced usage)
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
Aitch
Posts: 6518
Joined: Wed 04 Apr 2007, 15:57
Location: Chatham, Kent, UK

#18 Post by Aitch »

I'll re-suggest an idea that may appeal now.....fastboot, or a variant of it

How about a button that simply says 'run' at the grub stage

.....which when hit fires up a saved setup, AS IF THE PC HAD BEEN PUT TO SLEEP

There would only need to be one question....

Have you changed hardware?

if yes, normal load modules boot

if no, run saved 'suspend to ram' settings/ make the suspend.sh script executable.....should fire up in less than 5 seconds

It's been around since 2003....

http://fchabaud.free.fr/English/Tricks/ ... spend.html

I'm sure this is possible, and seems to be the way chrome/android is going with fastboot - away from grub, using UEFI
[fastboot entered with kernel 2.6.29]

http://en.wikipedia.org/wiki/Unified_Ex ... _Interface

http://www.mjmwired.net/kernel/Document ... 6/boot.txt

http://www.mjmwired.net/kernel/Document ... 4/uefi.txt

Aitch :)

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

#19 Post by technosaurus »

The thing is most of those modules do not _need_ to be loaded for the desktop to start up. In fact, using devtmpfs, it is possible to start up the desktop from the initramfs after only mounting sys proc and dev. this can be done within 1 second depending on system BIOS(I have tested it - still a few bugs to work out) from there it is possible to do the rest of the startup as part of for instance the jwm startup command (a script that is in the jwmrc inside the <Startup></Startup> tag ... this is not currently used in Puppy)

Granted this is a pretty drastic departure from the norm and probably beyond what was intended, but it is a possibility.

The other thing that somewhat cripples puppy is the notion of having to have a union file system. This is simply not the case. It is entirely possible to mount the "save file" as / and then mount any number of squash files (or any other loop filesystem for that matter) as an overlay - either clobbering or non-clobbering (I wrote an implementation of this for jwm_tools that also works with puppy as-is) This is basically what tinycore does and what DSL did.

btw did you know a compress 2gb save file only takes up a few kb - quite simple have various sizes on an iso and to decompress one at startup, rather than having the whole 10 minute first shutdown process that sometimes loses firstrun data anyways.

... food for thought
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
Aitch
Posts: 6518
Joined: Wed 04 Apr 2007, 15:57
Location: Chatham, Kent, UK

#20 Post by Aitch »

technosaurus wrote:.....this can be done within 1 second depending on system BIOS(I have tested it - still a few bugs to work out)
Granted this is a pretty drastic departure from the norm and probably beyond what was intended, but it is a possibility.
I'd be most interested, as I'm sure a few others would, if you ever sort out the bugs....

Aitch :)

Post Reply