2

I am considering upgrading the kernel of my Raspberry Pi router to 3.19. But how can I do this?

I have found an out-of-tree nl80211-compatible driver for rtl8188cus that supports hostapd and acs, but it calls for a 3.19 kernel. How do I build this 3.19 kernel, maybe libc, and upgrade my Pi to it?

I have a 20-core server running Ubuntu 14.04 and I have to cross compile using that, or the compiling time will not be tolerable. Please give me instructions on how that is to be done.

EDIT: I have not tried to cary this out yet, as I don't have the expertise in debugging such situations (and previous experiences of failed LFS builds left me pretty scarred.) I need some clear instructions on how this should be done, Cross Linux From Scratch style.

Maxthon Chan
  • 1,051
  • 8
  • 14

1 Answers1

1

It is not quite so traumatic as LFS. The hardest part IMO is getting the cross-compiler set up. There's already plenty of information about that around, here included; I recommend crosstool-ng (here's how I made mine). Distros including Ubuntu usually have cross-compiler packages, but I believe they only target ARMv7, which is fine for the Pi 2 but not previous models.

  • Here's an introduction I wrote to compiling the linux kernel in general. You don't get the benefit of a bootloader menu on the pi, you have to hardcode which kernel image you want to use with the kernel= parameter in config.txt on the first partition.

  • Here's some pi specific notes about the kernel, although you should not have to worry much about that if you either:

    • Use the make ARCH=arm bcmrpi_defconfig default.
    • Use /proc/config.gz as described in the previous link.

    Which you should, because as also mentioned in the previous link, going through all the options takes hours.

The actual kernel source for the pi is here; it is not the vanilla kernel.

goldilocks
  • 60,325
  • 17
  • 117
  • 234