You are not logged in.

#1 2008-05-22 04:46:45

lexiw
Member
Registered: 2008-04-29
Posts: 46

Arch Linux and Splashy, a big update

edit 2:
If you don't want to build from sources have a look at this post: http://bbs.archlinux.org/viewtopic.php? … 03#p371403

edit:
UPDATED LINK:
http://slexiw.netsons.org/files/splashy-stuff7.tar.gz

About me:
I'm a professional developer (mainly c/c++) with 10 years of development experience. I've never programmed in bash before so this is my first experience. My Linux knowledge isn't good either but i learned a lot thanks to Arch Linux.

About the thread:
I need a boot splash for a mini-pc I'm building and i want, of course, use Arch Linux. The current status is pretty depressive, initscripts-splash are outdated and there is no real support for user-mode boot splashing system (like splashy).

A few suggestions (IMHO) for the Arch Linux developers:
-Integrate the splash system in the official initscripts. If you write a wrapper like start_daemon and stop_daemon to be used in /etc/rc.multi and /etc/rc.shutdown, we can limit the changes to just /etc/rc.d/functions and at least the initscripts-splash will be more maintainable and the whole code more clean.
-Patch killall5 to add the support to ignore pids. The patch is really small and the one used by Ubuntu is http://patches.ubuntu.com/s/sysvinit/ex … ids.dpatch. There is a package in AUR that uses a different patch: http://aur.archlinux.org/packages.php?ID=16445. I tested it and so far it worked fine, no problems to be reported.
Why do we need a patched killall5? Splashy gets killed early during the shutdown process and the whole purpose of having a splash system is defeated. Currently Splashy cannot handle the reboot/shutdown.

Enough talking, now back to the real stuff. I've modified the initscript-splash package (completely rewritten) and the splashy package (almost completely rewritten).
I've also written a new package to support splashy themes. I'm using these packages for my system and i never had any problem so far.

initscripts-splash:
Rewritten to fit my needs for Splashy. Based on initscripts-2008.05-1 (in testing, if you are not using the testing repo you should better wait till the package hits core).
It only supports MY Splashy package, no other splash system is supported, not even the "old" Splashy package from AUR.

splashy:
Based on the great work done by the maintainers and the contributors of the package in AUR. A lot has been rewritten and it's actually a lot different.

splashy-themes:
Simple package with just 1 theme (for now), depends on archlinux-wallpaper and uses a little hack to use the wallpapers provided. I will provide new themes as soon as i have time.

Splashy now supports:
Progress bar
Text output
Shutdown/Reboot

Still working on resume/suspend and "verbose on error".

Installation tutorial:
-Download, compile and install sysvinit-mod from aur: http://aur.archlinux.org/packages.php?ID=16445
-Remove your old initscripts or initscripts-splash package, remember to back /etc/rc.conf and /etc/inittab before.
-Download, build and install initscripts-splash from http://slexiw.netsons.org/files/initscr … ash.tar.gz
-Download, build and install splashy from http://slexiw.netsons.org/files/splashy.tar.gz
-Download, build and install splashy-themes from http://slexiw.netsons.org/files/splashy-themes.tar.gz
-You may want to restore your old /etc/rc.conf and /etc/inittab now.
-Add SPLASH="splashy" to the end of /etc/rc.conf.
-Edit /etc/splashy/config.xml to select the theme you want (to list the installed themes do "ls /usr/share/splashy/themes/", use the directory name as the theme name).
-Add the "splashy" hook to /etc/mkinitcpio.conf (mine is after v86d and before autodetect)
-Rebuild your initramfs: mkinitcpio -g /boot/kernel26.img
-Add "splash" to the kernel command line, if you are not using uvesafb (v86d hook) add vga=791 too. You should also add "quiet".

If you are still confused follow this guide: http://wiki.archlinux.org/index.php/Splashy

Looking for suggestions, bug reports and patches!
Thank you for reading this, you've done what i couldn't do, i can't believe i wrote all that cr*p.

Last edited by lexiw (2008-05-29 15:28:49)

Offline

#2 2008-05-22 07:39:25

INCSlayer
Member
From: Sweden
Registered: 2007-09-06
Posts: 296
Website

Re: Arch Linux and Splashy, a big update

WOW great job im gonna test it big_smile


In Life or Death no one Shall have what is Black Jack Lee's

windoze: "for people that can't spell windows"

Offline

#3 2008-05-22 08:22:31

shazeal
Member
From: New Zealand
Registered: 2007-06-05
Posts: 339

Re: Arch Linux and Splashy, a big update

Oh snap, I just purged the old splashy from my system due to alot of those issues, gonna pull it down and try it out, thanks heaps smile

Offline

#4 2008-05-22 10:03:31

INCSlayer
Member
From: Sweden
Registered: 2007-09-06
Posts: 296
Website

Re: Arch Linux and Splashy, a big update

it works great big_smile

edit it works great on my laptop on my desktop however the backgrounds in the themes wont show

Last edited by INCSlayer (2008-05-22 10:42:23)


In Life or Death no one Shall have what is Black Jack Lee's

windoze: "for people that can't spell windows"

Offline

#5 2008-05-22 10:47:10

lexiw
Member
Registered: 2008-04-29
Posts: 46

Re: Arch Linux and Splashy, a big update

INCSlayer wrote:

it works great big_smile

edit it works great on my laptop on my desktop however the backgrounds in the themes wont show

Can you see the progress bar? Does it works correctly during the shutdown?

Offline

#6 2008-05-22 11:06:51

INCSlayer
Member
From: Sweden
Registered: 2007-09-06
Posts: 296
Website

Re: Arch Linux and Splashy, a big update

yea it works it turns out after some testing that the fault was in uvesafb apparently if i run it then i dont get a background with splashy but if i dont run it everything works fine kinda weird but not a problem for me


In Life or Death no one Shall have what is Black Jack Lee's

windoze: "for people that can't spell windows"

Offline

#7 2008-05-22 12:36:32

Atticus
Member
Registered: 2007-06-14
Posts: 52

Re: Arch Linux and Splashy, a big update

It works perfectly for me, great job!  I had actually just recently given up on arch's splash packages but this made my morning wink

Offline

#8 2008-05-22 13:07:08

Misfit138
Misfit Emeritus
From: USA
Registered: 2006-11-27
Posts: 4,170

Re: Arch Linux and Splashy, a big update

Give this man a cigar.
This is exactly the kind of initiative that Arch promotes its users to take; Patches Welcome!
Well done.
Wiki page next....(?)

Offline

#9 2008-05-22 13:21:26

Allan
Developer
From: Brisbane, AU
Registered: 2007-06-09
Posts: 10,406
Website

Re: Arch Linux and Splashy, a big update

This looks good.  You might want to contact the maintainer of splashy in the AUR (user angvp).  He is actually applying to be a trusted user and is interested in bringing splashy to the community repo.  I'm sure he would be very interested in this.

Offline

#10 2008-05-22 16:44:24

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: Arch Linux and Splashy, a big update

Great job, man.  I haven't tried this just yet, because I'm not all that interested in boot splash stuff, but this is a huge boon to the community who has been looking for this sort of stuff for a while.

Three cheers!

Offline

#11 2008-05-22 16:51:44

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: Arch Linux and Splashy, a big update

lexiw wrote:

-Integrate the splash system in the official initscripts. If you write a wrapper like start_daemon and stop_daemon to be used in /etc/rc.multi and /etc/rc.shutdown, we can limit the changes to just /etc/rc.d/functions and at least the initscripts-splash will be more maintainable and the whole code more clean.

Now, we've gone through this a couple of times, and I don't actually want to integrate splash SPECIFIC stuff in the initscripts.

However, we have the ability to override functions used by the initscripts. All we need to do is extrapolate out the pieces that you would need so that you can override them.

So, if you would be willing to provide a patch against git (http://projects.archlinux.org/?p=initsc … ;a=summary) which extrapolates the pieces you need, we could get that applied, and you simply need to dump your overriding functions in /etc/rc.d/functions.d/. NOTE: submit the patch to the bug tracker, it will get lost if you just post it on the forums.

Alternatively, you can just tell us (http://bugs.archlinux.org/) which pieces you want extrapolated, but this will take much longer, as I don't think anyone dealing with this stuff is really gung-ho about splash support.

lexiw wrote:

-Patch killall5 to add the support to ignore pids. The patch is really small and the one used by Ubuntu is http://patches.ubuntu.com/s/sysvinit/ex … ids.dpatch. There is a package in AUR that uses a different patch: http://aur.archlinux.org/packages.php?ID=16445. I tested it and so far it worked fine, no problems to be reported.
Why do we need a patched killall5? Splashy gets killed early during the shutdown process and the whole purpose of having a splash system is defeated. Currently Splashy cannot handle the reboot/shutdown.

This seems a little silly to me. I'm sure there's 10 or 20 other ways you could implement the same functionality without needing to patch a quasi-critical binary just for splash support. The patch affects all users. Splashy does not.

Offline

#12 2008-05-22 17:02:42

lexiw
Member
Registered: 2008-04-29
Posts: 46

Re: Arch Linux and Splashy, a big update

INCSlayer wrote:

yea it works it turns out after some testing that the fault was in uvesafb apparently if i run it then i dont get a background with splashy but if i dont run it everything works fine kinda weird but not a problem for me

I know, uvesafb sometimes just doesn't work. Once in a while it fails to load for me.

Misfit138 wrote:

Give this man a cigar.
This is exactly the kind of initiative that Arch promotes its users to take; Patches Welcome!
Well done.
Wiki page next....(?)

Thank you very much smile

Allan wrote:

This looks good.  You might want to contact the maintainer of splashy in the AUR (user angvp).  He is actually applying to be a trusted user and is interested in bringing splashy to the community repo.  I'm sure he would be very interested in this.

I will as soon as my work is ready and the code cleaned up.

phrakture wrote:

Great job, man.  I haven't tried this just yet, because I'm not all that interested in boot splash stuff, but this is a huge boon to the community who has been looking for this sort of stuff for a while.

Three cheers!

Thank you! I was frustrated for the lack of splash support in Arch Linux and i hope my work will be useful for the community.

Thank you again guys, those are the posts that keeps me working wink

Here's a little update for you:
Added support for jpeg images
Added a new theme (archlinux-burn)
Reworked the code a bit to remove some "sleep x" (yeah, it's a bit faster now)
The hook is now more "splashy standard".

A little note about splashy-themes: ideally we would have a theme for every wallpaper from archlinux-wallpaper plus other themes.
If you would like to submit a theme, send me a mail smile

http://slexiw.netsons.org/files/initscr … ash.tar.gz
http://slexiw.netsons.org/files/splashy.tar.gz
http://slexiw.netsons.org/files/splashy-themes.tar.gz

ReDownload, ReBuild and ReInstall the three packages, edit your /etc/splashy/config.xml to select a theme (remember that *-43 themes are for 4:3 screens), rebuild your initramfs and enjoy smile

Offline

#13 2008-05-22 17:13:20

lexiw
Member
Registered: 2008-04-29
Posts: 46

Re: Arch Linux and Splashy, a big update

phrakture wrote:
lexiw wrote:

-Integrate the splash system in the official initscripts. If you write a wrapper like start_daemon and stop_daemon to be used in /etc/rc.multi and /etc/rc.shutdown, we can limit the changes to just /etc/rc.d/functions and at least the initscripts-splash will be more maintainable and the whole code more clean.

Now, we've gone through this a couple of times, and I don't actually want to integrate splash SPECIFIC stuff in the initscripts.

However, we have the ability to override functions used by the initscripts. All we need to do is extrapolate out the pieces that you would need so that you can override them.

So, if you would be willing to provide a patch against git (http://projects.archlinux.org/?p=initsc … ;a=summary) which extrapolates the pieces you need, we could get that applied, and you simply need to dump your overriding functions in /etc/rc.d/functions.d/. NOTE: submit the patch to the bug tracker, it will get lost if you just post it on the forums.

Alternatively, you can just tell us (http://bugs.archlinux.org/) which pieces you want extrapolated, but this will take much longer, as I don't think anyone dealing with this stuff is really gung-ho about splash support.

I will probably provide a patch after i studied the code a little deeper smile The /etc/rc.d/functions.d/ solution seems the right way to implement it.

phrakture wrote:
lexiw wrote:

-Patch killall5 to add the support to ignore pids. The patch is really small and the one used by Ubuntu is http://patches.ubuntu.com/s/sysvinit/ex … ids.dpatch. There is a package in AUR that uses a different patch: http://aur.archlinux.org/packages.php?ID=16445. I tested it and so far it worked fine, no problems to be reported.
Why do we need a patched killall5? Splashy gets killed early during the shutdown process and the whole purpose of having a splash system is defeated. Currently Splashy cannot handle the reboot/shutdown.

This seems a little silly to me. I'm sure there's 10 or 20 other ways you could implement the same functionality without needing to patch a quasi-critical binary just for splash support. The patch affects all users. Splashy does not.

I could not find an alternative solution by myself, as i stated my Linux knowledge isn't more than average. If you could provide me some hints I'll be happy to do some further research on the issue and provide a patch. I'll be glad to drop the sysvinit-mod dependency.
Without the right know-how i just went the "mainstream way" and did what Debian/Ubuntu did.

Edit:
I didn't know you could ovveride functions, this will be a great boost for the initscripts-splash project smile Thank you!

Last edited by lexiw (2008-05-22 17:35:15)

Offline

#14 2008-05-22 21:25:22

LTSmash
Member
From: Aguascalientes - Mexico
Registered: 2008-01-02
Posts: 348
Website

Re: Arch Linux and Splashy, a big update

Have you provided already a PKGBUILD or instructions for installing?

http://slexiw.netsons.org/files/initscr … ash.tar.gz
http://slexiw.netsons.org/files/splashy.tar.gz
http://slexiw.netsons.org/files/splashy-themes.tar.gz

ReDownload, ReBuild and ReInstall the three packages, edit your /etc/splashy/config.xml to select a theme (remember that *-43 themes are for 4:3 screens), rebuild your initramfs and enjoy smile

Because that's a bit unclear (at least for me)...


Proud Ex-Arch user.
Still an ArchLinux lover though.

Currently on Kubuntu 9.10

Offline

#15 2008-05-22 21:35:30

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: Arch Linux and Splashy, a big update

lexiw wrote:

I didn't know you could ovveride functions, this will be a great boost for the initscripts-splash project smile Thank you!

I just made this change here: http://projects.archlinux.org/?p=initsc … 46040bf089

It makes me feel dumb for implementing it poorly to begin with. The problem with the original way was that it required rc.d daemons to call source_functions

They no longer have to

Offline

#16 2008-05-22 21:51:53

lexiw
Member
Registered: 2008-04-29
Posts: 46

Re: Arch Linux and Splashy, a big update

LTSmash wrote:

Have you provided already a PKGBUILD or instructions for installing?

http://slexiw.netsons.org/files/initscr … ash.tar.gz
http://slexiw.netsons.org/files/splashy.tar.gz
http://slexiw.netsons.org/files/splashy-themes.tar.gz

ReDownload, ReBuild and ReInstall the three packages, edit your /etc/splashy/config.xml to select a theme (remember that *-43 themes are for 4:3 screens), rebuild your initramfs and enjoy smile

Because that's a bit unclear (at least for me)...

Yes, in the first post. The tarballs containes all the files needed to build the packages.

phrakture wrote:

I just made this change here: http://projects.archlinux.org/?p=initsc … 46040bf089

It makes me feel dumb for implementing it poorly to begin with. The problem with the original way was that it required rc.d daemons to call source_functions

They no longer have to

Wow, the same thing i did today and that i was going to request in the bug tracker. That's awesome smile

Offline

#17 2008-05-22 21:55:32

LTSmash
Member
From: Aguascalientes - Mexico
Registered: 2008-01-02
Posts: 348
Website

Re: Arch Linux and Splashy, a big update

Yes, in the first post. The tarballs containes all the files needed to build the packages.

Do you mind to update the instructions on the first post (since i believe you have already made some importan changes)?


Proud Ex-Arch user.
Still an ArchLinux lover though.

Currently on Kubuntu 9.10

Offline

#18 2008-05-22 21:56:29

LTSmash
Member
From: Aguascalientes - Mexico
Registered: 2008-01-02
Posts: 348
Website

Re: Arch Linux and Splashy, a big update

I'll be glad to drop the sysvinit-mod dependency.

ohhh, please forget it I thought you changed something


Proud Ex-Arch user.
Still an ArchLinux lover though.

Currently on Kubuntu 9.10

Offline

#19 2008-05-22 22:17:49

rocktorrentz
Member
From: Southampton, England
Registered: 2007-08-05
Posts: 141

Re: Arch Linux and Splashy, a big update

The whole thing works perfectly on my system big_smile Thank you very much! Am I right in thinking that these changes are being included in the distro in the near future?

Offline

#20 2008-05-23 00:10:40

Atticus
Member
Registered: 2007-06-14
Posts: 52

Re: Arch Linux and Splashy, a big update

Looks like the splashy-themes md5sum in the PKGBUILD is incorrect (hasn't been updated).

Offline

#21 2008-05-23 00:41:52

lexiw
Member
Registered: 2008-04-29
Posts: 46

Re: Arch Linux and Splashy, a big update

Atticus wrote:

Looks like the splashy-themes md5sum in the PKGBUILD is incorrect (hasn't been updated).

Yeah, I'm working hard on splashy/initscripts-splash now. I reworked the whole code (once again) to use /etc/rc.d/functions.d/ but I still can't decide how to handle daemons correctly. There are 2 different behaviors, boot and shutdown are different.
1) During boot some daemons could start other daemons (ie hal/dbus).
2) During shutdown the DAEMONS array is different from "ls /var/run/daemons/" thanks to problem (1) and because some daemons aren't daemons at all (ie microcode)
So:
1) During boot i can't use both the DAEMONS list (to count the daemons) AND the stat_busy/stat_done of the daemons to increase the progress bar. I must patch rc.multi to fix the problem.
2) During shutdown i can use "ls /var/run/daemons/" to get a correct daemons count but if i use stat_busy/stat_done to increase the progress bar the boot will act weird (for the problem 1). I still can't use stat_busy/stat_done with "ls /var/run/daemons/" because microcode isn't in that list but it's still in the DAEMONS array and thus get stopped. The actual fix is to patch rc.shutdown.

If i don't find a clean solution I'll send to the devs a patch to add 3 wrapper functions to /etc/rc.d/functions.
Something like this in /etc/rc.d/functions to be used in /etc/rc.multi and /etc/rc.shutdown:
start_daemon() {
    /etc/rc.d/$@ start
}
stop_daemon() {
    /etc/rc.d/$@ stop
}
start_daemon_bkgd() {
    stat_bkgd "Starting $@"
    (/etc/rc.d/$@ start) &>/dev/null
}
I will later override these functions in a /etc/rc.d/function.d/ script. I'm still not sure about this solution, i think i need more brainstorming.

Right now the initscripts are barely touched and thus the dependency on initscripts-splash will probably dropped (YAY!). When the daemons problem is solved i will probably fill a feature request if needed.

Last edited by lexiw (2008-05-23 00:42:52)

Offline

#22 2008-05-23 00:52:31

SpookyET
Member
Registered: 2008-01-27
Posts: 410

Re: Arch Linux and Splashy, a big update

This is awesome. Gives this man your first born child. I've been wanting this for a while. I was a bit more leaned to fbsplash since with kernel26-ice since it can make your ttys look awesome. But, I don't care for it as much now. You only use tty1-6 when X is broken. However, I think USplash is better. Since Ubuntu is so popular, there are many gorgeous USPLASH themes. Maybe a tool can be written or it already exists that can convert usplash themes to splashy.

Now, we need uswsusp-splashy. It's a bit tricky to compile it. I was able to make a uswsusp-fbsplash package after a lot of hell. I failed to create uswsusp-splashy. At the time, I have tried, it bitched about libsplashy.

Offline

#23 2008-05-23 01:02:03

Statix
Member
From: Hangzhou, China
Registered: 2008-02-16
Posts: 240

Re: Arch Linux and Splashy, a big update

This is awesome. First time I've actually got my system to boot with splashscreens.

When I try to use archlinux-burn I'm getting image not found errors when I mkinitcpio. It seems the images are not there or corrupted. (I've reinstalled the package, so it's not a corrupt download.)

Also, I don't have a background when I boot up like the one I get when I shut down. (I just get the archlinux logo at the top left with the normal boot text) I'm not sure if this is how it is supposed to be or not.

Last edited by Statix (2008-05-23 01:02:54)


Madly in love with Arch64, Openbox, DotA, and of course... penguins!
Happy to help if you're not a Help Vampire. Use your wonderful resources like ArchWiki, Google, and our wonderful search page.

Offline

#24 2008-05-23 01:18:58

lexiw
Member
Registered: 2008-04-29
Posts: 46

Re: Arch Linux and Splashy, a big update

Statix wrote:

This is awesome. First time I've actually got my system to boot with splashscreens.

When I try to use archlinux-burn I'm getting image not found errors when I mkinitcpio. It seems the images are not there or corrupted. (I've reinstalled the package, so it's not a corrupt download.)

Also, I don't have a background when I boot up like the one I get when I shut down. (I just get the archlinux logo at the top left with the normal boot text) I'm not sure if this is how it is supposed to be or not.

Have you upgraded just splashy-boot after my last update (you need splashy with jpeg support)? Have you correctly installed arch-wallpaper? Tell me the output of "ls -l /usr/share/splashy/themes/archlinux-burn/" and try if setting the default theme works

SpookyET wrote:

Now, we need uswsusp-splashy. It's a bit tricky to compile it. I was able to make a uswsusp-fbsplash package after a lot of hell. I failed to create uswsusp-splashy. At the time, I have tried, it bitched about libsplashy.

It will be my next step, but looking at splashy's git there seems to be an imminent 0.4 release.

Tomorrow there will be an update (and i hope, the final one) to the packages.

Offline

#25 2008-05-23 01:19:40

LTSmash
Member
From: Aguascalientes - Mexico
Registered: 2008-01-02
Posts: 348
Website

Re: Arch Linux and Splashy, a big update

SpookyET wrote:

This is awesome. Gives this man your first born child. I've been wanting this for a while. I was a bit more leaned to fbsplash since with kernel26-ice since it can make your ttys look awesome. But, I don't care for it as much now. You only use tty1-6 when X is broken. However, I think USplash is better. Since Ubuntu is so popular, there are many gorgeous USPLASH themes. Maybe a tool can be written or it already exists that can convert usplash themes to splashy.

Now, we need uswsusp-splashy. It's a bit tricky to compile it. I was able to make a uswsusp-fbsplash package after a lot of hell. I failed to create uswsusp-splashy. At the time, I have tried, it bitched about libsplashy.

Well actually USPLASH isn't better, but it is more popular... maybe if the upstreams for splashy an usplash merged both proyects things would be great...


Proud Ex-Arch user.
Still an ArchLinux lover though.

Currently on Kubuntu 9.10

Offline

Board footer

Powered by FluxBB