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

820 views
Skip to first unread message

Dennis K

unread,
Jan 5, 2018, 3:59:46 PM1/5/18
to BeagleBoard

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?

Robert Nelson

unread,
Jan 5, 2018, 4:08:14 PM1/5/18
to Beagle Board, den...@activesignaltech.com
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 Nelson
https://rcn-ee.com/

Dennis K

unread,
Jan 9, 2018, 4:49:08 PM1/9/18
to BeagleBoard
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

jirk...@gmail.com

unread,
Apr 5, 2018, 3:34:44 PM4/5/18
to BeagleBoard
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):

jirk...@gmail.com

unread,
Apr 5, 2018, 3:34:44 PM4/5/18
to BeagleBoard
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):
Reply all
Reply to author
Forward
0 new messages