2

I am trying to install the latest kernel 3.14.4 on my Ubuntu 14.04. But it gives me an error when I try to install using make file. I have also done the make oldconfig, it took more than 3 hours to complete, and when I try to make install, a few errors are thrown in the terminal:

VirtualBox:/home/sonyx64/Documents/linux-3.14.4# make install

sh /home/sonyx64/Documents/linux-3.14.4/arch/x86/boot/install.sh 3.14.4 arch/x86/boot/bzImage \
    System.map "/boot"
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.14.4 /boot/vmlinuz-3.14.4
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.14.4 /boot/vmlinuz-3.14.4
update-initramfs: Generating /boot/initrd.img-3.14.4
WARNING: missing /lib/modules/3.14.4
Device driver support needs thus be built-in linux image!
depmod: ERROR: could not open directory /lib/modules/3.14.4: No such file or directory
depmod: FATAL: could not search modules: No such file or directory
depmod: WARNING: could not open /tmp/mkinitramfs_Xm5CtY/lib/modules/3.14.4/modules.order: No such file or directory
depmod: WARNING: could not open /tmp/mkinitramfs_Xm5CtY/lib/modules/3.14.4/modules.builtin: No such file or directory
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.14.4 /boot/vmlinuz-3.14.4
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.14.4 /boot/vmlinuz-3.14.4
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.14.4 /boot/vmlinuz-3.14.4
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-3.15.0-1-generic
Found initrd image: /boot/initrd.img-3.15.0-1-generic
Found linux image: /boot/vmlinuz-3.14.4
Found initrd image: /boot/initrd.img-3.14.4
Found linux image: /boot/vmlinuz-3.14.4.old
Found initrd image: /boot/initrd.img-3.14.4
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
Wilf
  • 30,194
  • 17
  • 108
  • 164

1 Answers1

3

As explained here (and here), you should be able download the deb files from http://kernel.ubuntu.com and install them.

To do this, run these commands in Terminal:

To download for 32bit:

wget kernel.ubuntu.com/~kernel-ppa/mainline/v3.14.4-utopic/linux-headers-3.14.4-031404_3.14.4-031404.201405130853_all.deb

wget kernel.ubuntu.com/~kernel-ppa/mainline/v3.14.4-utopic/linux-headers-3.14.4-031404-generic_3.14.4-031404.201405130853_i386.deb

wget kernel.ubuntu.com/~kernel-ppa/mainline/v3.14.4-utopic/linux-image-3.14.4-031404-generic_3.14.4-031404.201405130853_i386.deb

To download for 64bit

wget kernel.ubuntu.com/~kernel-ppa/mainline/v3.14.4-utopic/linux-headers-3.14.4-031404_3.14.4-031404.201405130853_all.deb

wget kernel.ubuntu.com/~kernel-ppa/mainline/v3.14.4-utopic/linux-headers-3.14.4-031404-generic_3.14.4-031404.201405130853_amd64.deb

wget kernel.ubuntu.com/~kernel-ppa/mainline/v3.14.4-utopic/linux-image-3.14.4-031404-generic_3.14.4-031404.201405130853_amd64.deb

To find your current kernel architecture (*bit), see this question

To install the downloaded deb files, run

sudo dpkg -i linux-headers-3.14.4-*.deb linux-image-3.14.4-*.deb

Then reboot.

To uninstall, run

sudo apt-get remove linux-headers-3.14.4-* linux-image-3.14.4-*

You will need to reboot and choose it in Grub to use the kernel, you can find the kernel you are currently using by running:

uname -r
Wilf
  • 30,194
  • 17
  • 108
  • 164
  • you mean we cannot use the kernel downloaded from kernel.org????? – vijayraj34 May 28 '14 at 15:50
  • you could probably use that, but this should work. – Wilf May 28 '14 at 15:52
  • I have 32 bit lts, which one i should choose?? – vijayraj34 May 28 '14 at 17:25
  • 32bit........... thats why i put in this link - if you run uname -mpi and get i386, i586 or i686 etc you need 32bit, where as if you end up with x86_64 you need 64bit. I think you need to download and install all of the debs (wget will download the files) - if you a=only install 1 or 2 it will likely return the error that the 3rd needs to be installed.. You need to run the commands in terminal. – Wilf May 28 '14 at 17:28
  • Can you give me the explanation of this command?? >apt-get source linux-image-$(uname -r) – vijayraj34 May 28 '14 at 17:36
  • apt-get is the package manager, and source tells it download (and i think install) the source code of the given packages (look for source in the output of man apt-get for a better explanation). The $(uname -r) gives the currently used (and therefore already installed) version of the kernel, and the linux-image- is start of the name of each kernel package. Basically it downloads and probably installs the source of the kernel currently in use. – Wilf May 28 '14 at 17:54
  • I truly appreciate the time you spent to help me. Actually i am trying to make my own system call -> for that we need image of the kernel and i am in a confusion to download which one. – vijayraj34 May 28 '14 at 18:00
  • apt-get source linux-image-$(uname -r) will download the source of the current kernel - which would be what you need to create a syscall for the current kernel. (This seems a completely different question to this one, i would suggest making a new question for it). For making a basic system call, this video seems to give a great guide on how to do it. – Wilf May 28 '14 at 18:16
  • 1
    yeah i followed this video and also blogs. Now i cleared my doubts, thank you. – vijayraj34 May 28 '14 at 18:26