PDA

View Full Version : [ubuntu] Publish new Kernel in Grub (1.99) Menu



curana
April 7th, 2013, 10:25 AM
Hi,

I installed Ubuntu Server 12.04 LTS and configured a Software-RAID during setup (md) to use both of my SSDs.

Grub says it is version 1.99. Now I installed the new kernel to fix TRIM-support and support for my graphics card. I followed this guide: http://www.upubuntu.com/2013/04/installupgrade-to-linux-kernel-386-in.html and ran


sudo update-grub

but the entries won't show up. In the grub.cfg I can find all entries I want.

What do I need to do to make the kernel bootable? Manual editing in Grub did not help.

Thanks for help.

darkod
April 7th, 2013, 10:33 AM
First you say the entries don't show up in the boot menu, and then that in grub.cfg there are. grub.cfg is what is used for the boot menu. If an entry is there, it should show up.

Since this was a manual kernel install I'm not sure you need to update the initramfs with something like:

sudo update-initramfs -u

Or if that doesn't work, try something like:

sudo update-initramfs -k all -u

In depends how the kernel is installed with the script they prepared, it might not make the initrd file, or something similar.

Otherwise if the script did all the necesary, update-grub would have picked up the kernel and created an entry for it in grub.cfg and the grub menu.

You understand that these kernel are not oficial so you are doing this on your own risk.

curana
April 7th, 2013, 10:44 AM
Nothing worked.

This is my grub.cfg, but really, only the 3.5-Kernel entries show up as right after installation. Maybe it is related to the Software-RAID? I know that I do this on my own risk, but I have no choice. After the grub menu the screen remains black, only access via SSH works and TRIM is not supported for Software-RAID.

Any other idea?


# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
faxgw02_user@faxgw02:~$ cat /boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi

function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}

function recordfail {
set recordfail=1
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}

function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}

insmod raid
insmod mdraid1x
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(mduuid/05402317abe5dc8812216ead4df36d02)'
search --no-floppy --fs-uuid --set=root 4917e9f5-b674-41d0-921a-5f2eceb62f71
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=auto
load_video
insmod gfxterm
insmod raid
insmod mdraid1x
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(mduuid/05402317abe5dc8812216ead4df36d02)'
search --no-floppy --fs-uuid --set=root 4917e9f5-b674-41d0-921a-5f2eceb62f71
set locale_dir=($root)/boot/grub/locale
set lang=de_DE
insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ]; then
set timeout=-1
else
set timeout=2
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
set gfxpayload="${1}"
if [ "${1}" = "keep" ]; then
set vt_handoff=vt.handoff=7
else
set vt_handoff=
fi
}
if [ "${recordfail}" != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "${linux_gfx_mode}" != "text" ]; then load_video; fi
menuentry 'Ubuntu, mit Linux 3.8.6-030806-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod raid
insmod mdraid1x
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(mduuid/05402317abe5dc8812216ead4df36d02)'
search --no-floppy --fs-uuid --set=root 4917e9f5-b674-41d0-921a-5f2eceb62f71
linux /boot/vmlinuz-3.8.6-030806-generic root=UUID=4917e9f5-b674-41d0-921a-5f2eceb62f71 ro
initrd /boot/initrd.img-3.8.6-030806-generic
}
menuentry 'Ubuntu, mit Linux 3.8.6-030806-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod raid
insmod mdraid1x
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(mduuid/05402317abe5dc8812216ead4df36d02)'
search --no-floppy --fs-uuid --set=root 4917e9f5-b674-41d0-921a-5f2eceb62f71
echo 'Linux 3.8.6-030806-generic wird geladen …'
linux /boot/vmlinuz-3.8.6-030806-generic root=UUID=4917e9f5-b674-41d0-921a-5f2eceb62f71 ro recovery nomodeset
echo 'Initiale Ramdisk wird geladen …'
initrd /boot/initrd.img-3.8.6-030806-generic
}
submenu "Previous Linux versions" {
menuentry 'Ubuntu, mit Linux 3.5.0-26-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod raid
insmod mdraid1x
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(mduuid/05402317abe5dc8812216ead4df36d02)'
search --no-floppy --fs-uuid --set=root 4917e9f5-b674-41d0-921a-5f2eceb62f71
linux /boot/vmlinuz-3.5.0-26-generic root=UUID=4917e9f5-b674-41d0-921a-5f2eceb62f71 ro
initrd /boot/initrd.img-3.5.0-26-generic
}
menuentry 'Ubuntu, mit Linux 3.5.0-26-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod raid
insmod mdraid1x
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(mduuid/05402317abe5dc8812216ead4df36d02)'
search --no-floppy --fs-uuid --set=root 4917e9f5-b674-41d0-921a-5f2eceb62f71
echo 'Linux 3.5.0-26-generic wird geladen …'
linux /boot/vmlinuz-3.5.0-26-generic root=UUID=4917e9f5-b674-41d0-921a-5f2eceb62f71 ro recovery nomodeset
echo 'Initiale Ramdisk wird geladen …'
initrd /boot/initrd.img-3.5.0-26-generic
}
menuentry 'Ubuntu, mit Linux 3.5.0-23-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod raid
insmod mdraid1x
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(mduuid/05402317abe5dc8812216ead4df36d02)'
search --no-floppy --fs-uuid --set=root 4917e9f5-b674-41d0-921a-5f2eceb62f71
linux /boot/vmlinuz-3.5.0-23-generic root=UUID=4917e9f5-b674-41d0-921a-5f2eceb62f71 ro
initrd /boot/initrd.img-3.5.0-23-generic
}
menuentry 'Ubuntu, mit Linux 3.5.0-23-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod raid
insmod mdraid1x
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(mduuid/05402317abe5dc8812216ead4df36d02)'
search --no-floppy --fs-uuid --set=root 4917e9f5-b674-41d0-921a-5f2eceb62f71
echo 'Linux 3.5.0-23-generic wird geladen …'
linux /boot/vmlinuz-3.5.0-23-generic root=UUID=4917e9f5-b674-41d0-921a-5f2eceb62f71 ro recovery nomodeset
echo 'Initiale Ramdisk wird geladen …'
initrd /boot/initrd.img-3.5.0-23-generic
}
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod raid
insmod mdraid1x
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(mduuid/05402317abe5dc8812216ead4df36d02)'
search --no-floppy --fs-uuid --set=root 4917e9f5-b674-41d0-921a-5f2eceb62f71
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod raid
insmod mdraid1x
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(mduuid/05402317abe5dc8812216ead4df36d02)'
search --no-floppy --fs-uuid --set=root 4917e9f5-b674-41d0-921a-5f2eceb62f71
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

darkod
April 7th, 2013, 11:18 AM
No ideas really. Maybe they didn't create the kernel good so that it can work on mdadm?

That's the problem with unofficial kernels, you never know what should or shouldn't work. Maybe you can try contacting the author, ealving a comment on that website, etc.

curana
April 7th, 2013, 11:56 AM
The kernel is downloaded from http://kernel.ubuntu.com. You think they don't do their kernels correctly? I can not really imagine :)

darkod
April 7th, 2013, 01:49 PM
The link you said you used in your first post makes no reference to ubuntu.com. The wget link is of dropbox, so you download what someone put in dropbox not from ubuntu.com, and the website www.upubuntu.com is not the same as the official ubuntu.com as far as I know.

That's why I thought it's a kernel someone did before ubuntu releases it officially for your version. They will probably not release it at all. Otherwise you could have upgraded it from the repos, without downloading it yourself. 12.04 comes with 3.2.0 and it's still at 3.2.0 as far as I know, not even at 3.5.0.

You are talking about kernel 3.8 so I have no clue how compatible it is even if you download it from ubuntu.com.

curana
April 7th, 2013, 03:14 PM
Ok, that is confusing. Kernel 3.5 is the standard in 12.04 LTS.

darkod
April 7th, 2013, 04:01 PM
No, 3.5.0 is standard in 12.10.

I think with the latest updates (since 12.04 is LTS and will have long support) they might have issued 3.5 for 12.04, but it definitely came with 3.2 by default.

In any case, as far as I can understand the wiki kernel.ubuntu.com it seems only for developers and contributors. I'm not sure if they even recommend 3.8.6 for testing. You might try one of the 3.8.0 options, but 3.8.6 seems really too new and still in very early phase of development.

You could probably google around for the correct full procedure to install 3.8.0 manually and how to insert it into grub.