How to replace 4.4.x Linux kernel in BBB eMMC after cross compiling from source?

I need to recompile my current Beaglebone Black Linux kernel (4.4.91) to set CONFIG_STRICT_DEVMEM=n.
This will allow the use of mmap to access the SPI interface hardware directly, among other things.

So far…
I have loaded the latest version of arm-linux-gnueabihf gcc.
Cloned the latest kernel source (https://github.com/beagleboard/linux/git) which is currently 4.4.91.
Modified the kernel config options to set CONFIG_STRICT_DEVMEM=n.
Compiled the kernel.
Cloned, patched, and compiled u-boot.

At this point the instructions that I have been following diverge and are more concerned with creating a bootable image
on the SD card for testing or for replacing the entire contents of the eMMC on the Beaglebone.

What I want to do is replace the existing kernel on eMMC with minimal impact to the current configuration.
My current filesystem is BeagleBoard.org Debian Image 2016-05-13.

Can someone explain the process to replace the kernel on eMMC?

First cat ./include/generated/utsrelease.h in your build directory:

You'll see something similar like:

#define UTS_RELEASE "4.14.12-00004-gdb0cd0519e45"

That's your Kernel Version, then just follow this:

Copy zImage to /boot/vmlinuz-`Kernel Version`
Copy *.dtb to /boot/dtbs/`Kernel Version`/
Copy modules to /lib/modules/`Kernel Version`
Edit /boot/uEnv.txt and update uname_r=`Kernel Version`

Regards,

Robert,

Thanks that was just what I needed.
I have successfully rebooted the system with the new kernel.

I did have to do some more research since I had neglected to compile and install the modules to a folder, but I was able to get through that.

One thing that bothers me is whether I need to do anything about the kernel headers.

I was wondering since I still can not access /dev/mem.
There is something locking me out that I need to find and change.

I know that the c program that I have to access /dev/mem works since I was able to get it to work with an older kernel but I was forced to upgrade because with the older kernel the pru_rproc driver did not work.

Dennis

Thank you very much, this worked well!

Please, could you tell me, what is the default make path of kernel modules? A have not found them after compilation.

Dne úterý 9. ledna 2018 22:49:08 UTC+1 Dennis K napsal(a):

Thank You very much, it works well!

Please, could you tell me, what is the default path of module compiling output? I have compiled kernel and modules, kernel is in ./linux/arch/arm/boot/, but I can not find .ko files anywhere…

Many thanks.

Dne pátek 5. ledna 2018 22:08:14 UTC+1 RobertCNelson napsal(a):