How to have console decorations on Linux Mint (now, easier)

Write tutorials for Linux Mint here
More tutorials on https://github.com/orgs/linuxmint/discu ... /tutorials and (archive) on https://community.linuxmint.com/tutorial
Forum rules
Don't add support questions to tutorials; start your own topic in the appropriate sub-forum instead. Before you post read forum rules
Post Reply
wuying_ren

How to have console decorations on Linux Mint (now, easier)

Post by wuying_ren »

UPDATE 1 (19/01/2009):

- Some minor corrections.
- Uploaded Mint theme again, fixed a problem: nothing appearing when setting resolution to 1024x768 due to a mistake in config file.
- Found what was making kernel packages so big: debug files. Now, you will only need about ~800 MB and your kernel package will be much more small (about 25-30 MB).
- Now it's easier, just install and configure. Added .deb packages for Felicia, working on packages for Elyssa.


UPDATE 2 (22/01/2009):

- Added .deb packages for Elyssa.


Do you want your framebuffer consoles to look like this? (The first screenshot looks like what you'll have on boot, in replacement of usplash)

Image Image

Then, this is your howto. There are two ways: one is easy and funny, the other is a bit more complicated and can be very frustrating...but you can learn some things about kernels :). Anyway, both methods work. Choose whatever you want.

DISCLAIMER: I'm not responsible if anything happens to your installation, computer and/or hamster while following this guide. Just in case... :P

As always, credits are not for me. I've just mixed some how-to's :mrgreen: Credits go to spock for creating and maintaining this awesome kernel patch, and for all the people working with him. Also, credits for Jean-Damien Durand for porting fbcondecor to Debian. And also for anyone I've missed to mention.

- "I'll take the blue pill. I don't want to patch or compile anything."

Ok, then download my packages

- Felicia: kernel_image(25 MB) kernel_headers(6.5 MB)
- Elyssa: kernel_image(19 MB) kernel_headers(9 MB)

Now go straight to step 12 on the red pill section :)

- "I'll take the red pill. Patching sounds interesting."

It's a bit long, but it is very easy. This guide will help you patch and compile a custom kernel with fbcondecor support, but with Mint/Ubuntu default configuration. So, we are not going to re-compile a kernel from scratch nor building a custom configuration. Feel free to do on your own.

WARNING: You'll need ~800MB (> 4GB if you keep using debug files) of free disk space for compiling kernel. Please, check that you have enough space on your root partition. If you have a separated /boot partition, you'll need also some additional space there for the custom kernel.

This howto is compatible with (and has been tested on) Elyssa and Felicia. But it should work with future releases as well as with past ones, choosing the correct fbcondecor patch from spock's website.

Ok, let's go! (Filenames are for reference, they could be different on your system depending on your configuration).

1. First of all, we'll need some packages (build-essential should come installed by default)...

Code: Select all

sudo apt-get install linux-source patch kernel-package libncurses5-dev build-essential
2. Once finished, we'll have a .tar.bz2 package with the kernel source on /usr/src. Go to /usr/src, and untar it:

Code: Select all

cd /usr/src
sudo tar xvjf linux-source-2.6.27.tar.bz2
In Elyssa:

Code: Select all

sudo tar xvjf linux-source-2.6.24.tar.bz2
3. Create a symbolic link, to simplify things

Code: Select all

sudo ln -s linux-source-2.6.27 linux
In Elyssa:

Code: Select all

sudo ln -s linux-source-2.6.24 linux
4. Download fbcondecor patch from spock's website. Choose the one that matches your kernel version:

Code: Select all

sudo wget http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.27.patch
In Elyssa:

Code: Select all

sudo wget http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.24-rc7.patch
5. Now, copy Mint's kernel configuration to the directory /usr/src/linux. This way, we'll have our custom kernel configured like Mint's default one.

Code: Select all

cd linux
sudo cp /boot/config-2.6.27-7-generic .config
In Elyssa:

Code: Select all

sudo cp /boot/config-2.6.24-19-generic .config
6. Patch the kernel source with fbcondecor. First, do a dry-run in order to see if it will work:

Code: Select all

sudo patch -p1 --dry-run < ../fbcondecor-0.9.4-2.6.27.patch
In Elyssa:

Code: Select all

sudo patch -p1 --dry-run < ../fbcondecor-0.9.4-2.6.24-rc7.patch 
If you don't see any error, then patch the kernel without dry-run option:

Code: Select all

sudo patch -p1 < ../fbcondecor-0.9.4-2.6.27.patch
In Elyssa:

Code: Select all

sudo patch -p1 < ../fbcondecor-0.9.4-2.6.24-rc7.patch
7. Ok. Now, the scary part (you can also use my .config file for Felicia, or the one for Elyssa, and go straight to step 11). We need to disable all these options, look for them on .config. Open it with your favourite text editor and do a search for every option. Replace the line from the left with the line from the right.

CONFIG_FB_S3=m -> # CONFIG_FB_S3 is not set
CONFIG_FB_VT8623=m -> # CONFIG_FB_VT8623 is not set
CONFIG_FB_ARK=m -> # CONFIG_FB_ARK is not set
CONFIG_TILEBLITTING=y -> # CONFIG_TILEBLITTING is not set

Search for all the lines containing "DEBUG", and modify them the same way. Otherwise, your kernel source directory will grow up to > 4 GB, and you will have a ~270 MB kernel .deb.

8. It's time to activate some options. We will use menuconfig.

Code: Select all

sudo make menuconfig
Controls: Up/Down to move, Enter to select a sub-menu (a sub-menu is marked with ->>), left/right to move between "Select", "Exit" and "Help" buttons, Esc to go back one menu, Y to get the option selected built-in on the kernel, N to kept the option out of the kernel, M to build it as a module, ? to see Help).

Go to Device Drivers –> Graphics support –> Support for frame buffer devices –> VESA VGA graphics support, and press Y to activate it. You'll see the [M] from the left change to [*]

9. Now go to Device Drivers -> Graphics Support -> Console Display Driver Support -> Framebuffer Console support

Once with "Framebuffer Console support" selected, press Y. You'll see the [M] change to [*], and a new option appearing.

10. Go to the new option, "Support for the Framebuffer Console Decorations", and press Y.

We're done here. Press Esc until it asks you to save the new configuration. Select Yes, and press Enter.

11. Compile the custom kernel. On a Core 2 Duo, this takes about 1-1.5 hours...4-5 for an old Pentium III. Go out for a walk or something while your computer finishes the hard work for you. At the end, you'll have a .deb package, this is the Debian way of doing things. Isn't it great? :D

Code: Select all

sudo make-kpkg clean
sudo make-kpkg --initrd --append_to_version=-fbcon --revision=`date "+%s"` kernel_image kernel_headers kernel_source
Note: Kernel headers will became useful if you need to compile modules for some reason (atheros wireless driver for instance). I don't know if we need kernel source, but creating it does not require a lot of time (compared to the kernel itself).

12. Finished? Great! Install your new custom kernel:

Code: Select all

sudo dpkg -i /usr/src/linux-image-2.6.27.2-fbcon_*_i386.deb
In Elyssa:

Code: Select all

sudo dpkg -i /usr/src/linux-image-2.6.24.2-fbcon_*_i386.deb
If you need to re-compile any modules, install linux-headers also. If any of them fails at building, do this and try again:

Code: Select all

cd /lib/modules/2.6.27.2-fbcon
sudo rm build
sudo ln -s /usr/src/linux-headers-2.6.27.2-fbcon build
13. Now it's time to install fbsplash itself. Add these repos to /etc/apt/sources.list with your favourite text editor:

# fbsplash
deb ftp://ftp.berlios.de/pub/fbsplash/debian/splashutils sid contrib

# fbsplash themes
deb http://jeandamiendurand.free.fr/debian/fbsplash-themes sid contrib

# v86d (for using uvesafb)
deb http://jeandamiendurand.free.fr/debian/v86d sid contrib

14. Install splashutils and v86d. Remove usplash, we don't need it.

Code: Select all

sudo apt-get update

sudo apt-get install splashutils v86d

sudo apt-get remove usplash
15. Install a theme. You can search for one through internet, or use matrix theme (maintained by Jean-Damien Durand):

Code: Select all

sudo apt-get install matrix-fbsplash-theme
15b. If you like the screenshots up there, it's a custom theme made by me. It only supports 800x600 and 1024x768, but it can support other resolutions with some minor tweaks, just ask for them :) . You can download it here

Once downloaded, extract it to /etc/splash:

Code: Select all

tar xvzf Mint.tar.gz
sudo mv Mint /etc/splash
16. Open /boot/grub/menu.lst with your favourite editor (do a backup of the file, just in case) and search the entry for your new kernel. It will look like this:
title Linux Mint XFCE CE, kernel 2.6.24.6-fbcon
root (hd0,0)
kernel /vmlinuz-2.6.24.6fbcon root=/dev/sda3 ro vga=789
initrd /initrd.img-2.6.24.6-fbcon
Maintain your main entry, just in case. If your custom kernel is not able to boot, or if it puts your screen blank...you know, accidents happen :wink: Anyway, you can use a LiveCD to restore almost whatever that has been messed up.

Add splash=silent,fadein,theme:theme_name quiet CONSOLE=/dev/tty1 vga=789 to the kernel line. It will look like this. Replace theme_name with the name of the folder containing your favourite theme (if it's on /etc/splash/Mint, then replace theme_name with Mint).
title Linux Mint XFCE CE, kernel 2.6.24.6-fbcon
root (hd0,0)
kernel /vmlinuz-2.6.24.6-fbcon root=/dev/sda3 ro splash=silent,fadein,theme:theme_name quiet CONSOLE=/dev/tty1 vga=789
initrd /initrd.img-2.6.24.6-fbcon
17. This will make fbsplash appear just when udev finishes with a resolution of 800x600 and 24-bit colour. If you want 1024x768, use vga=792...Otherwise, there are tables out there with all the vga= possibilities.You can also use vesafb or uvesafb, check jdd's tutorial (link below).

For an early splash (it will appear from the very beggining), do:

Code: Select all

sudo splash_geninitramfs -a /boot/initrd.img-2.6.27.2-fbcon --all
In Elyssa:

Code: Select all

sudo splash_geninitramfs -a /boot/initrd.img-2.6.24.6-fbcon --all
This will add all your themes to your initrd.img, so fbsplash can use them before mounting your root partition. If you just want to add one theme, replace "--all" with the name of the theme. For example:

Code: Select all

sudo splash_geninitramfs -a /boot/initrd.img-2.6.27.2-fbcon Mint
18. Reboot and enjoy :D

If you can't see your chosen theme on other ttys than tty1, use this on /etc/rc.local to set them on boot:
for I in 2 3 4 5 6; do splash_manager -c set -t theme_name --tty=$I; done
That's it. I'll try to update this post with some screenshots later, when I have some more time.

If you have problems, doubts or whatever involving this guide just ask here. I'll try to solve them as quick as I can. Many of the problems are caused by typos or wrong configurations.

Also, if you see any errors, typos, etc...report them to me.

Sources:

- fbsplash on debian/sid and ubuntu
- Lazy Debian: fbcondecor fbsplash and debian
- Jean-Damien Durand's blog
Last edited by wuying_ren on Thu Jan 22, 2009 3:55 am, edited 3 times in total.
Husse

Re: How to have console decorations on Linux Mint

Post by Husse »

All this just to get some nicer looks when you boot :) - ah also TTY1 through 6 :)
Check your signature the links are wrong but do work
wuying_ren

Re: How to have console decorations on Linux Mint

Post by wuying_ren »

Husse wrote:All this just to get some nicer looks when you boot :) - ah also TTY1 through 6 :)
It's not only when you boot, the backgrounds on ttys stay there. I spend much time on them, and the standard black is very tiring for my eyes.

Anyway, you only have to do this once per kernel. I mean that I think the .deb package can be used on other computers. To tell the truth I would like to upload the .deb, but mine is huge and I don't know why. Also, this way people doesn't have to think if my packages are trustworthy or not.

If anybody knows why my kernel package is about 270 mb and/or a way to reduce it, I wouldn't mind to upload it.
ashneo76

Re: How to have console decorations on Linux Mint (now, easier)

Post by ashneo76 »

Thanks for your detailed tutorial but I get the following error when using those deb files. Maybe its because I have ATI and apparently you have nVidia.

Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/dkms
run-parts: executing /etc/kernel/postinst.d/nvidia-common
run-parts: /etc/kernel/postinst.d/nvidia-common exited with return code 20
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-2.6.27.2-fbcon.postinst line 1181.
dpkg: error processing linux-image-2.6.27.2-fbcon (--install):
subprocess post-installation script returned error exit status 2
Errors were encountered while processing:
linux-image-2.6.27.2-fbcon

I tried the red pill initially but got stuck at the step 7 to edit the .config file. I don't understand what you mean to say? Could please explain it again?
Thanks a lot, bro.
ashneo76

Re: How to have console decorations on Linux Mint (now, easier)

Post by ashneo76 »

Well, I decided to go on ahead with the step 8 onwards.. (Well, if 4 GB is the price to pay for a cool looking console.. I'll pay it.. :P) But I get stuck again.. No menu option with the name:" Console Decorations" gets enabled.. Did I patch it wrong? Should I run the patch from inside the source directory?
Let me try and see..

Keeping my fingers crossed..
wuying_ren

Re: How to have console decorations on Linux Mint (now, easier)

Post by wuying_ren »

Hi ashneo76!

About the "DEBUG" part...you have to change any line containing the word "DEBUG" on the .config file. For example:

CONFIG_DEBUG_NX_TEST=y -> # CONFIG_DEBUG_NX_TEST is not set

I think there is a way to strip these debug symbols using a command or an option during the kernel build, but I can't seem to find it...

And about the error you posted (I have nvidia, so it's not an ATi issue), I solved it deleting /etc/kernel/postinst.d/nvidia-common (make a backup first). I don't know why it crashes.

Anyway, did you try looking at my .config file? The link is included in the tutorial.

Good luck :D
soundcheck

Re: How to have console decorations on Linux Mint (now, easier)

Post by soundcheck »

ashneo76 wrote:Thanks for your detailed tutorial but I get the following error when using those deb files. Maybe its because I have ATI and apparently you have nVidia.

Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/dkms
run-parts: executing /etc/kernel/postinst.d/nvidia-common
run-parts: /etc/kernel/postinst.d/nvidia-common exited with return code 20
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-2.6.27.2-fbcon.postinst line 1181.
dpkg: error processing linux-image-2.6.27.2-fbcon (--install):
subprocess post-installation script returned error exit status 2
Errors were encountered while processing:
linux-image-2.6.27.2-fbcon

I tried the red pill initially but got stuck at the step 7 to edit the .config file. I don't understand what you mean to say? Could please explain it again?
Thanks a lot, bro.
Just try to remove the nvidia-common directory if you run ATI and start over the compiliation.
I have no clue why these dead nvidia-bodies are keep on all Ubuntu systems by default.
Husse

Re: How to have console decorations on Linux Mint (now, easier)

Post by Husse »

@ margueratesullivan
This is a forum for Linux support - you are way out of line, in fact I don't understand how you got the idea to write your post here
dlkreations

Re: How to have console decorations on Linux Mint (now, easier)

Post by dlkreations »

Probably did a Google search for "decorations" and somehow it gave this link...... still very odd, since I did a Google search and didn't come up with anything for Mint or Linux on the first couple of pages.

EDIT: I did try "console decorations" in Google, and this thread was the first search result that came up. I still don't see how this person would be searching for Console Decorations.
Husse

Re: How to have console decorations on Linux Mint (now, easier)

Post by Husse »

@ dlkreations
Your comment made me wonder - and yes you have a console as some architectural element and a table (not a spread sheet taable :)) so it seems to have been decorations for that kind of console she was looking for (how consoling :))
http://www.merriam-webster.com/dictionary/console
Post Reply

Return to “Tutorials”