SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
You could try grabbing the latest 2.6.21.* kernel instead of the 2.6.22.1 kernel until they release the new bootsplash patch and compile that. Other than that, the only thing I would try is every possible combination of adding initrd.gz to initrd.splash and vice versa (ie try 'cat initrd.gz >> initrd.splash', 'cat initrd.splash >> initrd.gz', 'zcat initrd.gz >> initrd.splash', gunzipping initrd.gz and typing 'cat initrd.splash >> initrd' and gzipping the resulting initrd file, etc.), but it seems to me that you have already tried most or all of the combinations.
Custom kernel compilation is the easy way out and should solve the problem (hopefully).
Hi, T3slider, thanks .. but I've tried all those combinations.
-----------------
STATUS:
I have now found a 2.6.22* bootsplash patch and configured/installed a new 2.6.22.1 kernel.
I built it with reiserfs support built-in to the kernel, thereby nullifying the need for an initrd.gz and enabling me to use my initrd.bootsplash again.
The product; the bootsplash is working fine again (as it used to) ....
and on this new kernel; I again can't access my Slackware partition through /media
(I am right back where I started from) <Sigh> .
The problem therefore must not be kernel version specific, so is it possible that it has something to do with KDEbase or some other portion of KDE??
Assistance with this will be gratefully received as now I don't know where to go from here to solve this problem?
So orbit, I finally got around to looking into this a little further. I seem to have found some answers that are missing from the page referred to in the previous post also.
Catting the bootslpash image onto the initrd created with initramfs support will not work.
What you need to do is cd into your initrd skeleton directory(part of the mkinitrd package) and run 'splash -s -f /path/to/bootsplash.cfg > bootsplash'. Then recreate your initrd normally with mkinitrd. The splash program is part of the bootsplash set of utils. You should be able to use the package available for slack-11 from linuxpackages for the binaries and example rc scripts.
Your suggestion worked like a treat, thank you VERY much!!
This had been bugging me for ages (I had almost given up on getting this working under slack12).
I now have initrd bootsplash AND reiserfs access to Slack.. Awesome
Did you get the progress bar working? I am still mostly running slack-11 and used the modified init scripts included with the package on linuxpackages to save a little work. There was a package for slack-12 but it appears to have been removed from the site because of bad package naming. So, you'd need to modify your own scripts for slack-12 to get it working. You can use the scripts for the slack-11 package as a guide to modify your own. Basically you just need to 'source' the rc.bootsplash file at the top of rc.S, rc.M and rc.6 and then 'pepper' the files with lines like this:
progressbar ??
replacing the question marks with the percentage that the progressbar should show at that point in the scripts.
Ok, I have tried the 2.6.22.1 sources, but unfortunately the bootsplash patch from bootsplash.org is only for kernel 2.6.21.* and does not apply correctly on the newer kernel.
I won't be able to proceed with this part of the process until bootsplash.org release a newer patch.
Can anyone offer any other suggestions as to what can be done to fix this initrd.gz/initrd.splash issue?
I'll welcome any positive input as this is starting to drive me nuts.
Regards
Orbit
keep trying, i've always wanted to add my own splash to the startup process, if you can do it, i'll give it a try
http://slackwiki.org/Bootsplash
for your bootsplash needs.
People seem to either not know about the wiki, or forget it's there.
Now ... Help me understand what's going on here.. you want to access your SLACKWARE partition from SLACKWARE in its Hal automounting directory /media ?
Now ... Help me understand what's going on here.. you want to access your SLACKWARE partition from SLACKWARE in its Hal automounting directory /media ?
Oh no, not this again. See the last page of the HAL stickied thread for that off-topic discussion. Yes, it's stupid. Yes, it's pointless. But some people want to access their root partition through media:/ in Konqueror like they can the rest of their partitions. We all know that you can just type / and browse through your entire mounted directory listing, but some people don't want that. For whatever reason. Since it worked in Slackware 11.0 I guess people got used to it and want the same functionality in Slackware 12.0.
Bottom line: compile filesystems as modules and use an initrd (or just use the generic kernel). Then you have your media:/ goodness. And now you can have a bootsplash too.
I am new to this forum, but I have used its resources to solve my problems, so I decided to contribute too. My name is Oliwer and I am from Poland. I use Slackware since 2003 from 9.0 version onwords and I have HP Pavilion dv6331ea laptop with all features fully operational under Linux.
I had the same problems with bootsplash and lack of root at /media like you and I managed to resolve them after several days of persistently sitting at my computer.
Here is how to build a proper initrd under Slackware 12 and have the root accessable from /media.
All the zcat-ing or appending initrd.gz to the end of the initrd.splash in nonesense. You cannot just append one file to the end of other. In fact it is relatively easy to make your initrd with splash.
So, follow the steps and they might work for you as well:
1. Make a new initrd with whatever modules you need. Go to /boot and issue mkinitrd -c -m module list - this will clear the existing tree (-c option) and add the necessary modules like ext3 or any other.
After this point you will have the initrd.gz in /boot as well as the initrd-tree directory.
2. Now lets do the actual bootsplash. You must have at least 1 bootsplash theme installed in /etc/bootsplash/themes/ directory. I assume you have configured the theme correctly, although I will post my cfg file for reference. Now, to create the actual bootsplash you need the 'splash' command from the splash utilities. After you have installed it issue:
/sbin/splash -s -f /etc/bootsplash/themes/yourtheme/config/bootsplash-1024x768.cfg >> /boot/initrd-tree/bootsplash
Replace 'yourtheme' with the name of your theme. This will create the actual bootsplash file already in the initrd-tree directory. Notice the name is not initrd.spalsh, but bootsplash. It should appear in the root directory of the initrd-tree.
3. Now we can create a proper operational initrd.splash file with modules necessary to mount your root partition (ext3 in my case). To do this go to /boot and issue:
mkinitrd -o initrd.splash
Notice that I skipped the -c parameter which wipes the existing initrd-tree with our bootsplash, so avoid this option. After issuing the above command you will have the initrd.splash prepared by the mkinitrd included in the Slackware. It is not corrupted and boots correctly.
4. Update your /etc/lilo.conf to include initrd=/boot/initrd.splash and run lilo to update the bootloader.
5. Reboot and enjoy your bootsplash!
Now, each time you add a new theme you must delete the /boot/initrd-tree/bootsplash file and re-run the splash command again and mkinitrd -o /boot/initrd.splashx to create another initrd without deleting the previous one. This way you can have a few themes and simply change the number of the splash initrd in the lilo.conf re-run lilo and you have a different splash screen. Simple enough.
Now the media issue. When you use the initrd with ext3 or any other module to mount your root fs the media will work OK. If you however compile the module into the kernel to avoid using initrd.gz, like I tied, root partition will not work in the /media. Therefore, if you create the initrd in the proper way as described above with the splash support, your root will be visible and accessable in the /media folder.
Naturally, I could have missed something here, so corrections welcome.
I use the standard Slackware 12.0 with 2.6.21.5 generic kernel.
Good luck!
Oliwer
PS. If you want any other help or how to do the progressbar ask.
Very good! Nice concise but detailed info. Still, there are a couple of points in this discussion to clear up:
This solution applies to the 2.6 kernel series with intramfs. Most of the documentation and implementations of bootsplash were done for kernels in the 2.4 series where you could indeed simply 'cat' the bootsplash image onto an existing uncompressed initrd. Of course the initrd could then be optionally compressed for use. This doesn't work with initrds/kernels using initramfs because catting the file onto the cpio archive corrupts the archive. What you describe is exactly what I said -use the splash utility to create the image as a file *inside* the directory which is to made into the cpio archive. I didn't work out the commands for doing it with mkinitrd because I always make my initrds manually when I need one.
One other point to make about initrds is this -it can be or contain anything you want and can be ignored completely by the kernel by passing 'noinitrd' in the kernel command line. The contents of the file can still be accessed throught the /dev/initrd device (but only once). You can use an initrd anyway you want...
About the /media access and HAL -I think I understand why it works that way. Since we are talking about auto-mounting, HAL/KDE depend on udev signalling events. These events are usually signalled as requests for a kernel *module*. I had the same situation when designing a USB automounter for kernel-2.4(using hotplug) -if you compile all the features statically in the kernel there is no module-loading event and hence it is harder to detect and act on. That seems to be the same sort of thing which HAL is dealing with
Very good! Nice concise but detailed info. Still, there are a couple of points in this discussion to clear up:
Yes, thanks for the clarification.
Quote:
Originally Posted by gnashley
This solution applies to the 2.6 kernel series with intramfs.
Indeed. I have Slackware 12 and it runs only 2.6.21 kernel. I should have made it clear.
Quote:
Originally Posted by gnashley
Most of the documentation and implementations of bootsplash were done for kernels in the 2.4 series where you could indeed simply 'cat' the bootsplash image onto an existing uncompressed initrd. Of course the initrd could then be optionally compressed for use. This doesn't work with initrds/kernels using initramfs because catting the file onto the cpio archive corrupts the archive.
I did not know this, but the corruption was apparent.
Quote:
Originally Posted by gnashley
What you describe is exactly what I said -use the splash utility to create the image as a file *inside* the directory which is to made into the cpio archive. I didn't work out the commands for doing it with mkinitrd because I always make my initrds manually when I need one.
Yes, I have also done it manually initially. Actually, I was adding the resume command to init to be able to use S4 hibernation command with initrd. I saw parallels and I figured I could use mkinitrd instead of uncompressing and compressing the initrd.gz file. It is much easier to regenerate initrd.
Quote:
Originally Posted by gnashley
One other point to make about initrds is this -it can be or contain anything you want and can be ignored completely by the kernel by passing 'noinitrd' in the kernel command line. The contents of the file can still be accessed throught the /dev/initrd device (but only once). You can use an initrd anyway you want...
Absolutely. That's the beauty of Linux :-)
Quote:
Originally Posted by gnashley
About the /media access and HAL -I think I understand why it works that way. Since we are talking about auto-mounting, HAL/KDE depend on udev signalling events. These events are usually signalled as requests for a kernel *module*. I had the same situation when designing a USB automounter for kernel-2.4(using hotplug) -if you compile all the features statically in the kernel there is no module-loading event and hence it is harder to detect and act on. That seems to be the same sort of thing which HAL is dealing with
You are absolutely right. I also figured that it has something to do with actually loading the module. The fact of loading is picked up by HAL and the root partition is added to the /media folder. Otherwise, no event, no detection, and user cannot mount / by clicking on it.
Anyhow, I also managed to add the progress bar to my favorite bootsplash called drops-bs. Now, I have a nicely working progress bar. If anyone needs instructions, I'll be glad to post the cfg file.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.