Poor man's graphical boot in Slackware revisited...
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.
I have slack 13.1 installed in aspire one 752 netbook with intel graphics running at 1366x768 resolution. It starts kms not from the initrd but somewhere after udev line. I haven't fiddled with it yet guessing that bootsplash with kms requires some additional configuration steps to get going.
Here's what is needs to be passed to the kernel for my Intel KMS to work with fbsplash:
Code:
video=1280x1024-16
So, if your kernel is named Linux, you must pass to lilo on boot:
Code:
Linux video=<xres>x<yres>-16
You can also add this to the append= line in /etc/lilo.conf and rerun lilo.
This will enable 16-bit framebuffer, because fbsplash fails to display an image at 24 bpp, and the boot fails.
If you still use a CRT monitor, you can also set fb refresh rate: video=<xres>x<yres>-16@60.
See /usr/src/linux/Documentation/fb/modedb.txt for reference.
Thank you! I plan to experiment with this when i get into it someday. I just today put 'intel_agp' and 'i915' modules into initrd for early kms start, so next step would be gimping a splash picture.
I was reading the scripts yesterday and realized they arn't 'sh' and non-gnu compatible. For those that care, $(( )) should be changed to 'let' or 'bc' statements, $() should be changed to ` `, and ${#variable} should be changed to 'echo $Variable | wc -m'. This shouldn't affect the majority of Slackware users.
Hi,
I tried the wiki article, however at boot time slackware freezes at a statement:
x respawning too fast disabling for 5 minutes.
m using slack 13.1 x64.
Also there are a lot of lines missing when I compared rc.M with rc.M-Wrap in Kompare(not that I know anything about scripting but still I figured changing a few lines wouls solve problem) and I've only compared the mentioned file..any ideas? thanks
Edit: I've followed article exactly as instructed till the very end and also tested the splash images(they worked when done manually)
but no splash image comes at startup and slack freezes.
One trick to finding out what went wrong is to do things in reverse to undo it. If you still have then problem, then you changed something that wasn't supposed to be changed. Also, keep in mind the that the "-wrap" scripts are only wrappers. They are designed to help communicate the output of the real scripts with the progress bar of the boot splash.... If they were to be replacement scripts then they would not only contain everything in the real scripts, but would additionally contain the stuff to communicate with the progress bar on the boot splash.
Distribution: Void, Linux From Scratch, Slackware64
Posts: 3,150
Original Poster
Rep:
The scripts were written on a slackware 13.1 64 bit so should be no problems there, could you post your original innittab and your changed one so we can compare them? also is there any major changes in the boot sequence between slack and slackware?
I had 'fbfifo: interrupted system call' errors in S-wrap line 44 and 'Segmentation fault' error in line 46 of S-wrap. (EDIT: To clear things up: boot process didn't proceed further after these errors, i had to hit Alt+SysRq+i to get into runlevel 3, after which i was able to login from another machine via ssh and revert the changes.) I did whole setup process twice but all the same. This is 32bit slack 13.1, in 64bit it worked good. I copied wrapper scripts from this thread at first, but later from the wiki page.
I'm probably not going to use this on my netbook, though, since it doesn't load the splash as early as i hoped for with kms, instead it still displays first 4-5 lines of text before going fancy. Thanks anyway, bootsplash makes me want to reboot more often.
Hi, sorry about the file, actually I edited/created the modified file just to upload in this thread as the used one was replaced in reverse procedure, so at that time by mistake I typed rc.K-Wrap, whereas there is no rc.K-Wrap file, and also I have tried again with the modified(and correct) inittab file with only four modifications to the original file viz. change rc.S to rc.S-Wrap, rc.M to rc.M-Wrap, rc.6 to rc.6-Wrap and rc.0 to rc.0-Wrap. I have generated the initrd-tree and tested the ppm image files manually(which works).Also all the -Wrap files are executable and placed under /etc/rc.d/
However after trying again the same error occurs and I get the exact same message, something puts of X, 'coz after waiting 5 minutes it again states that X respawning too fast disabling for 5 minutes. I've attached all the -Wrap files, in case them need to be reviewed.
rc.S-Wrap:
Quote:
#!/bin/sh
#rc.S-Wrap
#This is the wrapper for rc.S
#
if [ -f /etc/output.conf ];then
. /etc/output.conf
else
#1st time so guess
OUT_S=40
OUT_M=40
fi
TOTAL=$((OUT_S+OUT_M))
MULTI=$(echo "scale=2; 100/$TOTAL" | bc -l)
COUNT=1
OUT_S_CHECK=0
#size of term
COLOUMNS=$(tput cols)
BOX=$(($(tput lines)-3))
TEXTLINE=$(($(tput lines)-2))
#log output
S_LOG="Starting rc.S\n"
STARTUP=/etc/rc.d/rc.S
#no kerenel messages
setterm -msg off -cursor off -foreground green
tput clear
while read DATA
do
OUT_S_CHECK=$((OUT_S_CHECK+1))
#count number of echos for next time round
echo "$COUNT\n" > /boot/GSplash/fbfifo
COUNT=$(echo "scale=2; $COUNT+$MULTI" | bc -l)
S_LOG=$(echo "${S_LOG}\n${DATA}")
if [ ${#DATA} -lt $COLOUMNS ];then
XPOS=$((COLOUMNS/2-${#DATA}/2))
else
XPOS=0
DATA=${DATA:0:$COLOUMNS};
fi
tput cup $BOX 0
setterm -clear rest
tput cup $TEXTLINE $XPOS
echo -en "$DATA"
done < /boot/GSplash/fifo
#number of echos has changed
if (( OUT_S != OUT_S_CHECK ));then
echo "OUT_S=$OUT_S_CHECK" > /boot/GSplash/output.conf.temp
fi
echo -e "$S_LOG" > /tmp/S_LOG
Thanks
Last edited by kapz; 09-11-2010 at 06:10 AM.
Reason: Attachment no. limit
the ((expression)) is a shortcut to doing an Arithmetic Evaluation statement. Much like [[ expression ]] is a shortcut to doing Conditional Expressions. In Arithmetic Evaluations under bash, the '$' is not needed. But it also doesn't hurt. Additionally the spacing to the right of (( and the left of )) can be left there or removed.
However, for complete 'sh' compatibility, these types of checks should be avoided. This will only get people into trouble if they manually do something like change the 'sh' symlink or the user's preferred shell to an sh compatible shell that doesn't support these types of expressions... Speaking of which... did kapz do that? Try changing the #!/bin/sh to #!/bin/bash... I'm not sure if the startup will respect that or not... I suppose if the scripts are executed directly, then it would. But if they are 'sourced' or run with 'sh /etc/rc.d/rc-script' then they may not.
Try running the following in whatever shell the startup is using.
Code:
V1=2; V2=2; if (( V1 != V2 )); then echo not equal; else echo equal; fi
Change the V1 and V2 at the start of the line to equal and non equal values to check.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.