* [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage @ 2007-03-20 10:39 Jimmy Jazz 2007-04-08 1:56 ` Daniel Drake 0 siblings, 1 reply; 19+ messages in thread From: Jimmy Jazz @ 2007-03-20 10:39 UTC (permalink / raw To: gentoo-kernel Hi, I'm not sure i'm using the right list to expose that kind of problem. Sorry for the inconvenient. Anyway, here i'm. I'm using gensplash during the earlier boot process (initramfs) and before switching to the real root partition (switch_root). It behaves normally in silent mode, i mean i have the gentoo logo, the alt+F1 message and the vertical purple bar on the screen, right after the framebuffer (radeonfb) and vtcon are both activated. But issuing alt+F1 and switching to the verbose mode doesn't give me the vertical purple bar and therefore i'm not able to switch back in silent mode again. Alt+F1 key seems to become inactive. Also, both files /etc/splash/livecd-2006.1/images/{verbose,background}-1280x1024.png are present in the cpio archive file and like genkernel, i'm using splash_helper and the initrd.splash script (splash_utils.static is really to huge to be used). My questions are: are there any other useful "hidden" options available with splash_helper like "repaint" to help gentoo to switch in silent mode by pressing alt+F1 again ? How should i call the verbose-xx.png image or any scripts in order to see the right vertical bar on the screen knowing i have only busybox, splash_helper, /dev, /sys and /proc available at that stage? Thank you for your suggestions Jj -- gentoo-kernel@gentoo.org mailing list ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-03-20 10:39 [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage Jimmy Jazz @ 2007-04-08 1:56 ` Daniel Drake 2007-04-10 15:01 ` Jimmy Jazz 0 siblings, 1 reply; 19+ messages in thread From: Daniel Drake @ 2007-04-08 1:56 UTC (permalink / raw To: Jimmy.Jazz; +Cc: gentoo-kernel Jimmy Jazz wrote: > I'm using gensplash during the earlier boot process (initramfs) and > before switching to the real root partition (switch_root). > It behaves normally in silent mode, i mean i have the gentoo logo, the > alt+F1 message and the vertical purple bar on the screen, right after > the framebuffer (radeonfb) and vtcon are both activated. > But issuing alt+F1 and switching to the verbose mode doesn't give me the > vertical purple bar and therefore i'm not able to switch back in silent > mode again. Alt+F1 key seems to become inactive. I think F2 is the keypress you are looking for. Daniel -- gentoo-kernel@gentoo.org mailing list ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-04-08 1:56 ` Daniel Drake @ 2007-04-10 15:01 ` Jimmy Jazz 2007-04-10 15:36 ` Daniel Drake 2007-04-11 9:32 ` Michal Januszewski 0 siblings, 2 replies; 19+ messages in thread From: Jimmy Jazz @ 2007-04-10 15:01 UTC (permalink / raw To: Daniel Drake; +Cc: gentoo-kernel Daniel Drake a écrit : > Jimmy Jazz wrote: >> I'm using gensplash during the earlier boot process (initramfs) and >> before switching to the real root partition (switch_root). >> It behaves normally in silent mode, i mean i have the gentoo logo, the >> alt+F1 message and the vertical purple bar on the screen, right after >> the framebuffer (radeonfb) and vtcon are both activated. >> But issuing alt+F1 and switching to the verbose mode doesn't give me the >> vertical purple bar and therefore i'm not able to switch back in silent >> mode again. Alt+F1 key seems to become inactive. > > I think F2 is the keypress you are looking for. > > Daniel Thank you for your reply. If i understood well F2 is managed from splash_util not splash_helper. Also, my config isn't really gentoo compliant (i don't use genkernel) and i would avoid the need of splash_util.static. I'm loading splash_helper from bzImage via initramfs archive to do the job. At this stage the alt+F1 key gives me the ability to switch to the verbose mode, have a look at the display to see what is going on (i'm kind of curious :) and switch back to the silent mode like i'm able with splash_util. The problem is, i cannot switch back to the silent mode until splash_util is loaded. I could say, the key Alt+F1 is not "bidirectional", in other words the display cannot go back to the precedent mode. Why should i need that ? In fact, i'm loading all the drivers as module and the process takes more time to be performed as it is if the drivers were compiled directly in the kernel or called from /sbin/rc script. The second issue is, i'm no more able to see the purple vertical bar at the right of the screen during the verbose mode. The screen only looks like as an usual tty. I'm quite sure, it was possible in the past. PS: I have tried splashutils 1.4 but it doesn't work for me. The screen stays black... until i press alt+f1 or F2. At first, i thought that could be the radeonfb driver, but it seems not. I didn't take too much time to look after it and i switched back to splashutils 1.3.1 for the moment. Jj -- gentoo-kernel@gentoo.org mailing list ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-04-10 15:01 ` Jimmy Jazz @ 2007-04-10 15:36 ` Daniel Drake 2007-04-10 16:53 ` Jimmy Jazz 2007-04-11 9:32 ` Michal Januszewski 1 sibling, 1 reply; 19+ messages in thread From: Daniel Drake @ 2007-04-10 15:36 UTC (permalink / raw To: gentoo-kernel Jimmy Jazz wrote: > If i understood well F2 is managed from splash_util not splash_helper. Indeed. splash_util listens for input events, but splash_helper does not. The only reason that splash_helper appears to respond to Alt+F1 is that that particular keypress is handled by the kernel as "change to terminal 1". If you could find a way to change back to terminal 16 (which is where splash_helper draws its pretty graphics), you'd be away. Maybe it's possible to use (e.g.) terminal 8 instead, in which case you could use Alt+F8. > The second issue is, i'm no more able to see the purple vertical bar at > the right of the screen during the verbose mode. The screen only looks > like as an usual tty. I'm quite sure, it was possible in the past. I may be wrong, but I think splash_util is required for drawing the progress bar -- I don't think splash_helper can do that. > PS: I have tried splashutils 1.4 but it doesn't work for me. The screen > stays black... until i press alt+f1 or F2. At first, i thought that > could be the radeonfb driver, but it seems not. I didn't take too much > time to look after it and i switched back to splashutils 1.3.1 for the > moment. Probably needs some extra testing with baselayout-1.x. This release was primarily for the baselayout-2 splash plugin, which does work fine on baselayout-2 (entering portage soon). Daniel -- gentoo-kernel@gentoo.org mailing list ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-04-10 15:36 ` Daniel Drake @ 2007-04-10 16:53 ` Jimmy Jazz 2007-04-11 9:34 ` Michal Januszewski 0 siblings, 1 reply; 19+ messages in thread From: Jimmy Jazz @ 2007-04-10 16:53 UTC (permalink / raw To: gentoo-kernel Daniel Drake a écrit : > Jimmy Jazz wrote: >> If i understood well F2 is managed from splash_util not splash_helper. > > Indeed. splash_util listens for input events, but splash_helper does > not. The only reason that splash_helper appears to respond to Alt+F1 > is that that particular keypress is handled by the kernel as "change > to terminal 1". If you could find a way to change back to terminal 16 > (which is where splash_helper draws its pretty graphics), you'd be > away. Maybe it's possible to use (e.g.) terminal 8 instead, in which > case you could use Alt+F8. > Stupid me ! I didn't thought about that :). Perhaps chvt will do it quite easily. >> The second issue is, i'm no more able to see the purple vertical bar at >> the right of the screen during the verbose mode. The screen only looks >> like as an usual tty. I'm quite sure, it was possible in the past. > > I may be wrong, but I think splash_util is required for drawing the > progress bar -- I don't think splash_helper can do that. I will try splash_util and look if it doesn't overvalue my needs. Indeed, bzImage doesn't become too huge. > >> PS: I have tried splashutils 1.4 but it doesn't work for me. The screen >> stays black... until i press alt+f1 or F2. At first, i thought that >> could be the radeonfb driver, but it seems not. I didn't take too much >> time to look after it and i switched back to splashutils 1.3.1 for the >> moment. > > Probably needs some extra testing with baselayout-1.x. This release > was primarily for the baselayout-2 splash plugin, which does work fine > on baselayout-2 (entering portage soon). > > Daniel > I'm eager to see the new features of baselayout-2 :) Thanks for your explanations. Jj -- gentoo-kernel@gentoo.org mailing list ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-04-10 16:53 ` Jimmy Jazz @ 2007-04-11 9:34 ` Michal Januszewski 2007-06-01 15:03 ` Jimmy Jazz 0 siblings, 1 reply; 19+ messages in thread From: Michal Januszewski @ 2007-04-11 9:34 UTC (permalink / raw To: gentoo-kernel [-- Attachment #1: Type: text/plain, Size: 533 bytes --] On Tue, Apr 10, 2007 at 06:53:45PM +0200, Jimmy Jazz wrote: > I will try splash_util and look if it doesn't overvalue my needs. > Indeed, bzImage doesn't become too huge. splash_util, being dynamically linked, won't work from an initramfs unless you're willing to include glibc, libpng, freetype2 etc with it. And that _will_ make the image huge :) Best regards. -- Michal Januszewski JID: spock@im.gentoo.org Gentoo Linux Developer http://people.gentoo.org/spock [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-04-11 9:34 ` Michal Januszewski @ 2007-06-01 15:03 ` Jimmy Jazz 2007-06-02 20:36 ` Michal Januszewski 0 siblings, 1 reply; 19+ messages in thread From: Jimmy Jazz @ 2007-06-01 15:03 UTC (permalink / raw To: gentoo-kernel; +Cc: spock [-- Attachment #1: Type: text/plain, Size: 1733 bytes --] Michal Januszewski a écrit : > On Tue, Apr 10, 2007 at 06:53:45PM +0200, Jimmy Jazz wrote: > > >> I will try splash_util and look if it doesn't overvalue my needs. >> Indeed, bzImage doesn't become too huge. >> > > splash_util, being dynamically linked, won't work from an initramfs unless > you're willing to include glibc, libpng, freetype2 etc with it. And that > _will_ make the image huge :) > > Best regards. > hello, You are right, but that doesn't matter if you are using initramfs into the kernel file instead initrd (My kernel is just 5Mo huge). With the switch_root command you will have the full memory back again :). In fact, i didn't implement splash_util into the cpio file because of some freezes and lack of time :) Anyway, i tried to compile splashutils-1.4.2 without success. It seems we are now unable to use it without the kernel patch which also i cannot install :( [code] You can run `make` now. CC objs/solibsplash.o LD objs/libsplash.so CONF libjpeg MAKE libjpeg CONF freetype2 MAKE freetype2 CONF zlib MAKE zlib CONF libpng MAKE libpng CC objs/kernel/kernel.o kernel.c: In function ‘handle_init’: kernel.c:96: erreur: ‘FB_SPLASH_IO_ORIG_USER’ undeclared (first use in this function) kernel.c:96: erreur: (Each undeclared identifier is reported only once kernel.c:96: erreur: for each function it appears in.) kernel.c: In function ‘main’: kernel.c:262: erreur: ‘FB_SPLASH_IO_ORIG_KERNEL’ undeclared (first use in this function) make: *** [objs/kernel/kernel.o] Erreur 1 [/code] Have you dropped the 100% gensplash userspace solution ? why ? :cry: Jj [-- Attachment #2: Type: text/html, Size: 2338 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-06-01 15:03 ` Jimmy Jazz @ 2007-06-02 20:36 ` Michal Januszewski 0 siblings, 0 replies; 19+ messages in thread From: Michal Januszewski @ 2007-06-02 20:36 UTC (permalink / raw To: gentoo-kernel [-- Attachment #1: Type: text/plain, Size: 1330 bytes --] > Anyway, i tried to compile splashutils-1.4.2 without success. It seems > we are now unable to use it without the kernel patch which also i cannot > install :( > > [code] > CC objs/kernel/kernel.o > kernel.c: In function ‘handle_init’: > kernel.c:96: erreur: ‘FB_SPLASH_IO_ORIG_USER’ undeclared (first use in > this function) > kernel.c:96: erreur: (Each undeclared identifier is reported only once > kernel.c:96: erreur: for each function it appears in.) > kernel.c: In function ‘main’: > kernel.c:262: erreur: ‘FB_SPLASH_IO_ORIG_KERNEL’ undeclared (first use > in this function) > make: *** [objs/kernel/kernel.o] Erreur 1 > [/code] > Have you dropped the 100% gensplash userspace solution ? why ? :cry: No, I haven't. Are you sure your klibc is built against a clean tree that hasn't been patched with splash? You might want to check for the presence of the following file: /usr/lib/klibc/include/linux/console_splash.h If it's not there, you should get a warning about missing fbsplash when merging splashutils. If you get the warning and it still fails to compile, then I have a bug to fix :) Best regards. -- Michal Januszewski JID: spock@im.gentoo.org Gentoo Linux Developer http://people.gentoo.org/spock [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-04-10 15:01 ` Jimmy Jazz 2007-04-10 15:36 ` Daniel Drake @ 2007-04-11 9:32 ` Michal Januszewski 2007-05-31 15:23 ` Jimmy Jazz 1 sibling, 1 reply; 19+ messages in thread From: Michal Januszewski @ 2007-04-11 9:32 UTC (permalink / raw To: gentoo-kernel [-- Attachment #1: Type: text/plain, Size: 2034 bytes --] > If i understood well F2 is managed from splash_util not splash_helper. > Also, my config isn't really gentoo compliant (i don't use genkernel) > and i would avoid the need of splash_util.static. I'm loading > splash_helper from bzImage via initramfs archive to do the job. At this > stage the alt+F1 key gives me the ability to switch to the verbose mode, > have a look at the display to see what is going on (i'm kind of curious > :) and switch back to the silent mode like i'm able with splash_util. > The problem is, i cannot switch back to the silent mode until > splash_util is loaded. I could say, the key Alt+F1 is not > "bidirectional", in other words the display cannot go back to the > precedent mode. Alt+F1 was never meant to be bidirectional -- it's the usual key combination to switch to tty1 (Alt+F2 to tty2, Alt+F3 to tty3 etc). Switching back to verbose during early userspace is currently unsupported. If you need it really badly, let me know and I'll see whether I can hack a simple solution for it. > The second issue is, i'm no more able to see the purple vertical bar at > the right of the screen during the verbose mode. The screen only looks > like as an usual tty. I'm quite sure, it was possible in the past. Is the verbose mode activated at a later time? Are you sure you have compiled splashutils with fbsplash-support enabled? > PS: I have tried splashutils 1.4 but it doesn't work for me. The screen > stays black... until i press alt+f1 or F2. At first, i thought that > could be the radeonfb driver, but it seems not. I didn't take too much > time to look after it and i switched back to splashutils 1.3.1 for the > moment. That could be either a bug in splashutils or a problem with how you're building your initramfs image. Could you provide some more details about how it is created? Best regards. -- Michal Januszewski JID: spock@im.gentoo.org Gentoo Linux Developer http://people.gentoo.org/spock [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-04-11 9:32 ` Michal Januszewski @ 2007-05-31 15:23 ` Jimmy Jazz 2007-06-02 20:50 ` Michal Januszewski 0 siblings, 1 reply; 19+ messages in thread From: Jimmy Jazz @ 2007-05-31 15:23 UTC (permalink / raw To: gentoo-kernel; +Cc: spock Hi, Michal Januszewski a écrit : > > Alt+F1 was never meant to be bidirectional -- it's the usual key > combination to switch to tty1 (Alt+F2 to tty2, Alt+F3 to tty3 etc). > Switching back to verbose during early userspace is currently > unsupported. If you need it really badly, let me know and I'll see > whether I can hack a simple solution for it. I'm really sorry for my late reply. Your mail get lost in my spam filter :( Really your soft is great and doesn't need an hack for me :) > Is the verbose mode activated at a later time? I'm not sure i understand well , but yes it is activated when i press the F2 key. I have just added the following, root=/dev/md/d0p2 splash=silent,theme:livecd-2007.0 quiet CONSOLE=/dev/tty1 at the command line. F2 is of course bidirectional. > Are you sure you have compiled splashutils with fbsplash-support enabled? > No alas, since my kernel is now "full modular" (even vtcon and fb). It works well. As soon as readeonfb and vtcon are loaded, the splash screen appears on the display (the one with the alt-F1 comment of course). I get even more "visible" memory for free than before. Also, i tried to activate fbsplash support in the kernel as well with a little hack in Kconfig (depends on FRAMEBUFFER_CONSOLE && !FB_TILEBLITTING). With or without modules i couldn't compile the kernel. That's why i'm still using media-gfx/splashutils-1.3.1. For example, con2fb_map is not found by the "linker". Just a comment about how you built fbsplash. Why not include splash_helper code directly in a kernel module, instead to call /sbin/splash_helper ? > That could be either a bug in splashutils or a problem with how you're > building your initramfs image. Could you provide some more details about > how it is created? > I'm using initramfs but without the initrd /initramfs-xx line. That means i need a simple file CONFIG_INITRAMFS_SOURCE="/usr/src/initramfs-2.6.22-rc3.lst" to configure the initramfs filesystem and the init file calls switch_root from busybox to switch to the real root filesystem. The initramfs is directly in the "kernel" file. I didn't use /sbin/splash_util.static at all during the boot process. I wasn't able to implement it very well and got many freezes. I didn't find out what was going on :( Perhaps some problems with the pipe file !? If i get more time i will investigate it. Also, i just declared the following lines: [..] # init script file /init /usr/src/initramfs-2.6.22-rc3.skel/init 0755 0 0 file /etc/color-settings /usr/src/initramfs-2.6.22-rc3.skel/etc/color-settings 0755 0 0 file /etc/initrd.splash /usr/src/initramfs-2.6.22-rc3.skel/etc/initrd.splash 755 0 0 # splash screen dir /etc/splash 0755 0 0 dir /etc/splash/livecd-2007.0 0755 0 0 dir /etc/splash/livecd-2007.0/images 0755 0 0 file /sbin/splash_helper /sbin/splash_helper 755 0 0 #file /sbin/splash_util.static /sbin/splash_util.static 755 0 0 file /etc/splash/livecd-2007.0/Vera.ttf /etc/splash/livecd-2007.0/Vera.ttf 644 0 0 file /etc/splash/livecd-2007.0/1280x1024.cfg /etc/splash/livecd-2007.0/1280x1024.cfg 644 0 0 file /etc/splash/livecd-2007.0/images/background-1280x1024.png /etc/splash/livecd-2007.0/images/background-1280x1024.png 644 0 0 file /etc/splash/livecd-2007.0/images/overlay-1024.png /etc/splash/livecd-2007.0/images/overlay-1024.png 644 0 0 file /etc/splash/livecd-2007.0/images/verbose-1280x1024.png /etc/splash/livecd-2007.0/images/verbose-1280x1024.png 644 0 0 [..] initrd.splash is the file you find in splashutils With splashutils 1.3.1 everything is working well except the icons. Indeed, xdm icon appears every now and then and hides the other icons. Certainly, due to the fact 1.3.1 splashutils release doesn't support livecd-2007.0 . If you accept suggestions, i emit this one : It would be great if fbsplash could be loaded as a module and would accept vtcon and fb as modules too :) If you need more information about the messages returned by the kernel during compilation time, just let me know. Thank you for your help, Jj -- gentoo-kernel@gentoo.org mailing list ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-05-31 15:23 ` Jimmy Jazz @ 2007-06-02 20:50 ` Michal Januszewski 2007-06-11 21:31 ` Jimmy Jazz 0 siblings, 1 reply; 19+ messages in thread From: Michal Januszewski @ 2007-06-02 20:50 UTC (permalink / raw To: gentoo-kernel [-- Attachment #1: Type: text/plain, Size: 2678 bytes --] On Thu, May 31, 2007 at 05:23:56PM +0200, Jimmy Jazz wrote: Hi, > > Are you sure you have compiled splashutils with fbsplash-support enabled? > > > No alas, since my kernel is now "full modular" (even vtcon and fb). It works well. > As soon as readeonfb and vtcon are loaded, the splash screen appears on the > display (the one with the alt-F1 comment of course). I get even more > "visible" memory for free than before. Also, i tried to activate fbsplash > support in the kernel as well with a little hack in Kconfig (depends on > FRAMEBUFFER_CONSOLE && !FB_TILEBLITTING). With or without modules i > couldn't compile the kernel. That's why i'm still using > media-gfx/splashutils-1.3.1. For example, con2fb_map is not found by > the "linker". Fbsplash doesn't work as a module, it can only be used when fbcon is compiled into the kernel. > Just a comment about how you built fbsplash. > Why not include splash_helper code directly in a kernel module, instead to > call /sbin/splash_helper ? If you want to have splash_helper's functionality _inside_ the kernel, just use bootsplash. Putting userspace stuff, like JPEG and PNG decoders, where it belongs (i.e. userspace) was the most fundamental design idea behind splashutils :) > I didn't use /sbin/splash_util.static at all during the boot process. I > wasn't able to implement it very well and got many freezes. I didn't > find out what was going on :( Perhaps some problems with the pipe file > !? If i get more time i will investigate it. Perhaps, but putting it inside an initramfs isn't a very good idea. It would be better to aim for a very fast boot during the early-userspace stage and to let the splash daemon be started the normal way (i.e. by the Gentoo baselayout scripts). > With splashutils 1.3.1 everything is working well except the icons. > Indeed, xdm icon appears every now and then and hides the other icons. > Certainly, due to the fact 1.3.1 splashutils release doesn't support > livecd-2007.0 . Right, that's a problem with how anims are handled in 1.3.1 and it's indeed fixed in 1.4.2. > If you accept suggestions, i emit this one : It would be great if > fbsplash could be loaded as a module and would accept vtcon and fb as > modules too :) I'll keep that in mind and maybe implement it when I have some more free time. Have you had a chance to try splashutils 1.4.2 with baselayout-2*? If so, did it fix the missing-splash-screen problem? Best regards. -- Michal Januszewski JID: spock@im.gentoo.org Gentoo Linux Developer http://people.gentoo.org/spock [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-06-02 20:50 ` Michal Januszewski @ 2007-06-11 21:31 ` Jimmy Jazz 2007-06-11 21:59 ` Daniel Drake 0 siblings, 1 reply; 19+ messages in thread From: Jimmy Jazz @ 2007-06-11 21:31 UTC (permalink / raw To: gentoo-kernel, spock Hello Spock, Sorry for the late reply. It becomes an habit :) Anyway, i was busy to get the early boot script work with splashutils daemon last week end. I didn't even have too much time to decipher all the possibilities your program offers. I certainly missed some features it would offer. Also, i still encountered many difficulties with the daemon and i would like to discuss about it with you and perhaps even convince you to bring some modifications to it. The idea is: - to get a usable environment, even with music (debugging could be quite long ;), when you are not able to boot the system anymore (vi, gpm, alias, lvm, mdsetup, vgscan, fsck etc),- to stay full modular and also - to support any filesystem you want (reiserfs, etc.) before you even know anything about your drives. Most everything, i still want to get the system as simple as possible. In fact, after customising a configuration file that handles icon and animation pictures, i begin to get in trouble :) I need the helper after the daemon has stopped (it has displayed a lot of nice icons before) and when the script switched to the real root file system. It hides the console when the script will proceed. As the helper didn't understand services, all the icons are displayed on the screen and are scrambled with vertical stripes. To get rid of that, i need to delete all the icon/anim lines in the configuration file. That is a pity. Indeed, it would certainly be good to add some more options to the helper to avoid the script to have to modify the configuration file every time it calls the helper. Indeed, the file cannot contain pre-declaration of icon/anim directives. Busybox doesn't understand "sed -i", so you need a temporary file and your script becomes... more complicated. About animations, they are looping quite strangely when any other icons are declared in the configuration file. They are displayed too, whatever the services they belong to are. Anyway, i'm quite satisfied with the result. Ash is strong enough to handle the job well. The script stays readable :) I tried to intercept the keyboard keys directly from the script as gentoo baselayout v1 does (interactive mode) but without much success. When the silent mode is called from the helper or the daemon, the script doesn't react to the key i pressed, except the Alt-F1 key managed by the kernel or the F2 key when called from the daemon. I tried stty in raw mode too. I will confess, i didn't remember how ttys are handled by the kernel and who cares ... until you really need them, especially when you try to call extra keys like F3 or something similar :) IMHO, letting the script directly handle the keyboard would help to simplify all the thing, but how ? Also, you asked me if i have tried baselayout version 2 with splashutils. In fact, i will certainly never be able to switch to version 2. It is written mostly in C (and that is a bad idea ;). It isn't flexible enough whereas a rc bash will always be. In my case, it won't call the critical services the kernel will need early enough or even in the right order to help a mdp/lvm boot disk to mount :(. Believe me, only scripts are able to save the world ! Jj -- |\ _,,,---,,_ ZZZzz /,`.-'`' -. ;-;;,_ |,4- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) *My Two Cents Comment** * Large increases in cost with questionable increases in performance can be tolerated only in race horses and women. -- Lord Kelvin -- gentoo-kernel@gentoo.org mailing list ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-06-11 21:31 ` Jimmy Jazz @ 2007-06-11 21:59 ` Daniel Drake 2007-06-11 23:38 ` Jimmy Jazz 0 siblings, 1 reply; 19+ messages in thread From: Daniel Drake @ 2007-06-11 21:59 UTC (permalink / raw To: Jimmy.Jazz; +Cc: gentoo-kernel, spock Jimmy Jazz wrote: > In fact, i will certainly never be able to switch to version 2. It is > written mostly in C (and that is a bad idea ;). It isn't flexible enough > whereas a rc bash will always be. In my case, it won't call the critical > services the kernel will need early enough or even in the right order to > help a mdp/lvm boot disk to mount :(. I'm not sure what you mean here, can you elaborate? Are you worried that your kernel might be broken so much that it won't be able to execute ELF executables? If so, you'd also be screwed on the script approach, because busybox/ash is also written in C. Daniel -- gentoo-kernel@gentoo.org mailing list ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-06-11 21:59 ` Daniel Drake @ 2007-06-11 23:38 ` Jimmy Jazz 2007-06-12 0:08 ` Daniel Drake 2007-06-12 0:12 ` Daniel Drake 0 siblings, 2 replies; 19+ messages in thread From: Jimmy Jazz @ 2007-06-11 23:38 UTC (permalink / raw To: gentoo-kernel, Daniel Drake; +Cc: spock Daniel Drake a écrit : > Are you worried that your kernel might be broken so much that it won't > be able to execute ELF executables? If so, you'd also be screwed on the > script approach, because busybox/ash is also written in C. > Sorry if i didn't make myself clear. The fact the kernel runs or not elf binaries wasn't the idea. You remember me the time i was used to program in C, i always compiled a simple a.out and tried to debug it with adb because i misused pointers of pointer and casting in order to optimize the code because i had less than 64/512ko of ram to reinvent the world (No, i didn't made all that codes in a garage in my backyard, but they were lost in a faulty 10Mo MFM harddisk for sure. So ended my brillant career :). Anyway, a.out format is mostly replaced with elf format nowadays. Actually, i have spoken about the fact that a program written in a compiled language will not be as flexible as an interpreted one. In other word, /sbin/rc should stay a shell script. I'm pretty sure that will not please to some of you gentoo developers ;) Jj -- gentoo-kernel@gentoo.org mailing list ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-06-11 23:38 ` Jimmy Jazz @ 2007-06-12 0:08 ` Daniel Drake 2007-06-17 14:01 ` Jimmy Jazz 2007-06-12 0:12 ` Daniel Drake 1 sibling, 1 reply; 19+ messages in thread From: Daniel Drake @ 2007-06-12 0:08 UTC (permalink / raw To: gentoo-kernel; +Cc: spock Jimmy Jazz wrote: > Actually, i have spoken about the fact that a program written in a > compiled language will not be as flexible as an interpreted one. In > other word, /sbin/rc should stay a shell script. I'm pretty sure that > will not please to some of you gentoo developers ;) I guess that depends on your ability as a C programmer and your definition of 'flexible'. As shell interpreters are typically written in C I don't think you can fairly say that you can do things in shell script which can't be done in C. baselayout-2 doesn't drop any features that I know about, actually it adds several, and it is much much more reliable than its predecessors. It solves all the highly reproducible and extremely difficult to fix problems that I had with baselayout-1. And believe me, I tried to fix them, focusing specifically on the concurrency issues. I now believe it is *impossible* to write an unbreakable and race-free locking mechanism in shell script, which is the only realistic way to avoid some of these bugs. Daniel -- gentoo-kernel@gentoo.org mailing list ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-06-12 0:08 ` Daniel Drake @ 2007-06-17 14:01 ` Jimmy Jazz 2007-06-17 14:57 ` Daniel Drake 0 siblings, 1 reply; 19+ messages in thread From: Jimmy Jazz @ 2007-06-17 14:01 UTC (permalink / raw To: gentoo-kernel; +Cc: dsd Hello Daniel, Daniel Drake a écrit : > I guess that depends on your ability as a C programmer and your > definition of 'flexible'. As shell interpreters are typically written > in C I don't think you can fairly say that you can do things in shell > script which can't be done in C. > First, i didn't want to hurt and i'm happy to see you like C but it seems you misunderstood me :). C is just more powerful when you talk about speed, pointers, functions and procedures. Anyway, C comes from C and ... assembler. Assembler is also powerful but not flexible, mostly because it depends on the hardware you use. It is difficult to read and does not fit for large programs (what about Doom 1 the game ? ;). Also we could talk about another "command interpreter" like irb. It doesn't depend on any platforms or hardwares, it is object-oriented and you can program while using it. That's what i call flexible. Of course {ba,a,k,c,etc}sh are certainly just enough flexible but obviously not powerful. You want more power, you can also write a program in C or in whatever language you like and call it from the shell interpreter. As a result, you will increase the abilities of your shell. Imagine you lack some functionalities in your script. You just need to add them and also rerun the script. Such flexibility is not possible with C or Pascal especially if you don't have either libraries or compilers. It is like in the past with a C64 where you could peek and poke in basic in a program to cheat ! with C you have only {a,s}db like debugger (it is a little bit more difficult then...) But indeed, a script doesn't protect you from syntax errors. In that case you can even not call a shell. You need the rescue cdrom as usual :) > baselayout-2 doesn't drop any features that I know about, actually it > adds several, and it is much much more reliable than its predecessors. > It solves all the highly reproducible and extremely difficult to fix > problems that I had with baselayout-1. Sorry, i didn't go into baselayout-2 too deep but you write rc in C and that is what i have considered a bad idea. You make approximately 11 calls to exec(). If something has changed like the name of a program it calls, you won't be able to remedy it with ease (and don't tell me: just create a link to it ;). Yes, it is difficult to fix problems with a shell script but sometimes that means the script has become too big and it is time to think it differently. I like the ideas in baselayout-1 but unfortunately i didn't have really any use of it except the fact i can control the order the daemons are loaded. Instead /sbin/functions.sh has helped me a lot to write a script that does approximately the same but in ash and with candies too :). I actually use it during the earlier boot stage process when disks are still not recognized. Also i have integrated a modified splash-functions.sh too. It is certainly not universal but it works. I hope i will be able to support crypted raid1 boot disk as well in the future. Also, it isn't fast nor it doesn't innovate, but above all it is aesthetic (in my point of view anyway). > > And believe me, I tried to fix them, focusing specifically on the > concurrency issues. I now believe it is *impossible* to write an > unbreakable and race-free locking mechanism in shell script, which is > the only realistic way to avoid some of these bugs. > > Daniel Right, a shell is not what handles the best concurrency issues but "wait" and "jobs" have been quite improved. If you have an example i could try. Also, that makes life exciting and i cheer you up. I'm sure you will succeed and improve gentoo even better :) | And unless you are missing some kind of feature from baselayout-2, or there is otherwise something that could be done with previous | versions that is no longer possible, then I don't think you have any real reasons (other than political ones) to push off the upgrade... I'm not quite good in politics but i will follow your advice :). I just have feared you will definitely drop baselayout-1. (anyway, maintaining two different kinds of software that do approximately the same thing is a pain). I will need to reconvert sooner or later. Also, we leave in really hard time, everything is moving too fast ;) Jj -- |\ _,,,---,,_ ZZZzz /,`.-'`' -. ;-;;,_ |,4- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) *My Two Cents Comment** * "Don't fear the pen. When in doubt, draw a pretty picture." --Baker's Third Law of Design. -- gentoo-kernel@gentoo.org mailing list ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-06-17 14:01 ` Jimmy Jazz @ 2007-06-17 14:57 ` Daniel Drake 2007-06-20 14:43 ` Jimmy Jazz 0 siblings, 1 reply; 19+ messages in thread From: Daniel Drake @ 2007-06-17 14:57 UTC (permalink / raw To: Jimmy.Jazz; +Cc: gentoo-kernel Jimmy Jazz wrote: > Instead /sbin/functions.sh has helped me a lot to write a script > that does approximately the same but in ash and with candies too :) Now you're making more sense -- you prefer baselayout written in bash because you are copying and mangling its code in ways that the developers didn't intend. I see. FYI, baselayout-2 no longer requires bash. > Right, a shell is not what handles the best concurrency issues but > "wait" and "jobs" have been quite improved. If you have an example i > could try. Also, that makes life exciting and i cheer you up. I'm sure > you will succeed and improve gentoo even better :) The problem is that a few baselayout operations can be running concurrently, and these processes will share the same resources (e.g. service state files). baselayout-1 makes very little effort to serialize access to any of these resources, resulting in several highly repeatable failure conditions due to races. The original bug report: https://bugs.gentoo.org/show_bug.cgi?id=154670 My attempt to fix it: https://bugs.gentoo.org/show_bug.cgi?id=166545 However, it turns out my locking implementation can be easily broken and is not race free. > I'm not quite good in politics but i will follow your advice :). I just > have feared you will definitely drop baselayout-1. (anyway, maintaining > two different kinds of software that do approximately the same thing is > a pain). I will need to reconvert sooner or later. I'm not involved in baselayout development, but yes, I am fairly sure that baselayout-1 will be completely dropped in the near future. It's partially unmaintained at the moment -- there are known bugs which will not be fixed in the 1.x branches. Daniel -- gentoo-kernel@gentoo.org mailing list ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-06-17 14:57 ` Daniel Drake @ 2007-06-20 14:43 ` Jimmy Jazz 0 siblings, 0 replies; 19+ messages in thread From: Jimmy Jazz @ 2007-06-20 14:43 UTC (permalink / raw To: gentoo-kernel, spock, Daniel Drake [-- Attachment #1: Type: text/plain, Size: 5624 bytes --] Daniel Drake a écrit : > Jimmy Jazz wrote: >> Instead /sbin/functions.sh has helped me a lot to write a script that >> does approximately the same but in ash and with candies too :) > > Now you're making more sense -- you prefer baselayout written in bash > because you are copying and mangling its code in ways that the > developers didn't intend. I see. > > FYI, baselayout-2 no longer requires bash. > >> Right, a shell is not what handles the best concurrency issues but >> "wait" and "jobs" have been quite improved. If you have an example i >> could try. Also, that makes life exciting and i cheer you up. I'm sure >> you will succeed and improve gentoo even better :) > > The problem is that a few baselayout operations can be running > concurrently, and these processes will share the same resources (e.g. > service state files). baselayout-1 makes very little effort to serialize > access to any of these resources, resulting in several highly repeatable > failure conditions due to races. > > The original bug report: > https://bugs.gentoo.org/show_bug.cgi?id=154670 > > My attempt to fix it: > https://bugs.gentoo.org/show_bug.cgi?id=166545 > > However, it turns out my locking implementation can be easily broken and > is not race free. > >> I'm not quite good in politics but i will follow your advice :). I >> just have feared you will definitely drop baselayout-1. (anyway, >> maintaining two different kinds of software that do approximately the >> same thing is a pain). I will need to reconvert sooner or later. > > I'm not involved in baselayout development, but yes, I am fairly sure > that baselayout-1 will be completely dropped in the near future. It's > partially unmaintained at the moment -- there are known bugs which will > not be fixed in the 1.x branches. > > Daniel Hello Daniel, I'm made a little draft to illustrate the possibilities of bash to manage threads and lock files even if it doesn't call external scripts from bash. That's a bit more tricky but that works well too ;) The script runs concurrent projects. Every projects has an ordered team affected to it and developers can be shared to more than one team. Every time a manager tries to hire a developer for its project, he will give more money for it ;). To increase the nomber of teams, you need just to uncomment the group[xx] lines or add new one. Take in mind, that is only a shell script. Until you get "XX says: task Y for project n°Z done." the dev XX cannot be affected to an other project. Otherwise you have found a bug :( I voluntarily left a stderr error on line 44 to be displayed to ease the comprehension of the process. Also $$ is useless in a subshell. It will always return the pid of the shell itself and not its own pid :( $PPID shouldn't be interpreted by the current shell or else you won't get the right pid (see the function getpid() in the script). Also, you can call a C program that returns for you the pid of the shell on where it was running. Something like, #include <sys/types.h> #include <unistd.h> #include <stdio.h> int main() { printf("%d\n", getppid()); } will work. Anyway, it is possible to use bash and lock files even if you are not able to determine the pid of the process and use the kill -s 0 ${pid} command. If "set -C" is not supported by the shell, you can still use any "atomic" calls like hard links but you will need to use an intermediate file to do so. (See for examples on the web) islocked() { ln $1 $2 #<------------------ is atomic rm -f ${1:-undefined} } flock() { local keylock="$(basename $1)" local pid="$$" #<-- doesn't work if called from the same script local locked="/var/tmp/lock/${keylock}.lck" local locker="/var/tmp/lock/${keylock}.${pid}" echo ${pid} > ${locker} || return 1 if islocked ${locker} ${locked}; then return 0 fi ... return 1 } Actually, to save the pid in the locker is a good idea and will help to find out any staled scripts still running, but that is not always necessary and required :) It should be executed like a user and needs no extra rights except to be able to write in /var/tmp (as usual it is safer). Because you are not allowed to write in /var/lock, create a new directory /var/tmp/lock and copy the script in /var/tmp. Rename it with whatever name you want and run it there. Moreover to save the believer, pass an option to that script. For the usage, the script is provided as-is ;) If you like the demo, just let me know, i will feel even less lonely on that mailing list ;) If you are convinced, it is even better... If not, life will still go on :) Jj Ps: i hope there is no bug in it. I really didn't have to much time to test it and ... that gives me a lot of headaches as well (i'm not used to it) lol. @Spock also i finally get splashutils to work with ash and without fbsplash. Most of the problems happened by the way how /etc/spash/default/1680x1050.cfg for example refreshs some portions of the screen and makes the lot flicker. Meantimes, i take many times to understand how to "call" icons with the daemon. If you send a svc_start you need to end with a svc_stop too otherwise the icon continues to be displayed again and again :) I still have one weird problem. It happens only on a x86_64 system. The daemon core dumps when called from /sbin/rc but works during the shutdown ?! I do not call expressly splash daemon from init.d as i didn't use the verbose mode for ttys. Thx anyway, Jj [-- Attachment #2: NameYourCompanyHere.sh --] [-- Type: application/x-shellscript, Size: 5318 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage 2007-06-11 23:38 ` Jimmy Jazz 2007-06-12 0:08 ` Daniel Drake @ 2007-06-12 0:12 ` Daniel Drake 1 sibling, 0 replies; 19+ messages in thread From: Daniel Drake @ 2007-06-12 0:12 UTC (permalink / raw To: gentoo-kernel; +Cc: spock Jimmy Jazz wrote: > Actually, i have spoken about the fact that a program written in a > compiled language will not be as flexible as an interpreted one. In > other word, /sbin/rc should stay a shell script. I'm pretty sure that > will not please to some of you gentoo developers ;) And unless you are missing some kind of feature from baselayout-2, or there is otherwise something that could be done with previous versions that is no longer possible, then I don't think you have any real reasons (other than political ones) to push off the upgrade... -- gentoo-kernel@gentoo.org mailing list ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2007-06-20 14:44 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-03-20 10:39 [gentoo-kernel] I'm not able to get the vertical bar with gensplash after issuing alt+f1 key during the earlier boot stage Jimmy Jazz 2007-04-08 1:56 ` Daniel Drake 2007-04-10 15:01 ` Jimmy Jazz 2007-04-10 15:36 ` Daniel Drake 2007-04-10 16:53 ` Jimmy Jazz 2007-04-11 9:34 ` Michal Januszewski 2007-06-01 15:03 ` Jimmy Jazz 2007-06-02 20:36 ` Michal Januszewski 2007-04-11 9:32 ` Michal Januszewski 2007-05-31 15:23 ` Jimmy Jazz 2007-06-02 20:50 ` Michal Januszewski 2007-06-11 21:31 ` Jimmy Jazz 2007-06-11 21:59 ` Daniel Drake 2007-06-11 23:38 ` Jimmy Jazz 2007-06-12 0:08 ` Daniel Drake 2007-06-17 14:01 ` Jimmy Jazz 2007-06-17 14:57 ` Daniel Drake 2007-06-20 14:43 ` Jimmy Jazz 2007-06-12 0:12 ` Daniel Drake
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox