Kernel 3.14 Realtime + Custom DTB difficulties

Hello community,

when I started to work with the BeagleBoard developing with Linux was very new to me and I was glad to find many discussions and information - especially I found a lot of helping advice in this group. So far I got along with the things I could find and I want to thank everyone for contributing to this wonderful project. But right now got to a point where I’m stuck.

To give you a short overview: My project needs ideally a stable Kernel-version with LTS( I figured 3.14 would be a good choice ) and Realtime Preempt Patch. Apart from this I need to use both CAN-Interfaces for a CAN-bus application and one SPI Interface to communicate with a FRAM. I will also need to include the two modules, CAN-bus application and FRAM, into the kernel. So I will have to compile a modified Kernel, which includes both and also uses the RT-Preempt configuration - please correct me if I’m wrong.

This far I tried to go several ways.

  • I tried to go with the Mainline 3.14 Kernel of Robert Nelson ( https:``//github.com/RobertCNelson/bb-kernel.git )
    • Enabled the Rt in patch.sh and rebuild it
    • Tried to enable the SPI- and CAN-Interfaces with the DTB-rebuilder https://github.com/RobertCNelson/dtb-rebuilder.git which leads to a booting error ( Kernel booting gets stuck at: Waiting for root file system ) and i figured, that the DTB-rebuilder only works for the TI trunk of the 3.14 Kernel. Did I get that right, or is there a way to use the DTB-rebuilder with the mainline 3.14 version?
  • I then tried to directly go with the 3.14-ti-rt version (git checkout origin/ti-linux-rt-3.14.y), but I get the following Error compiling it:
  • Applying: ARM: dts: am335x-bone*: Fix model name and update compatibility information
  • Applying: bbb: force usb0 to perhiperal mode, fixes: http://bugs.elinux.org/issues/127
  • error: patch failed: arch/arm/boot/dts/am335x-bone-common.dtsi:94
  • error: arch/arm/boot/dts/am335x-bone-common.dtsi: patch does not apply
  • Patch failed at 0001 bbb: force usb0 to perhiperal mode, fixes: http://bugs.elinux.org/issues/127

One thing that I can not figure out here is how to choose the the tag to check out. It’s probably git basics, but I don’t see it yet. When I start the build of ti-linux-rt-3.14.y it would automatically start checking out and compiling the newest version of the branch, which is 3.14.34-rt-56 right now.
How would I be able to go with 3.14.34-rt-52 for example?

I found https://www.mail-archive.com/beagleboard@googlegroups.com/msg18437.html

For your sanity you have to use the tags, from this tree:

>>
>> [https://github.com/beagleboard/linux/tree/3.14.17-ti-r19](https://github.com/beagleboard/linux/tree/3.14.17-ti-r19)
>>
>> Since our base is always a moving target ( ti's 3.14 bsp ) branch, 

it’s going to be painful working from my git tree directly.

concerning the patch error message, but wasn’t able to make it work in my case. How would I have to change the setting of building the kernel to NOT work from the git tree directly? But more important, is there a more reasonable way to do all this, or am I on the right way here?

Best Regards,
Torsten Schmickler

Hello community,

when I started to work with the BeagleBoard developing with Linux was very
new to me and I was glad to find many discussions and information -
especially I found a lot of helping advice in this group. So far I got along
with the things I could find and I want to thank everyone for contributing
to this wonderful project. But right now got to a point where I'm stuck.

To give you a short overview: My project needs ideally a stable
Kernel-version with LTS( I figured 3.14 would be a good choice ) and
Realtime Preempt Patch. Apart from this I need to use both CAN-Interfaces
for a CAN-bus application and one SPI Interface to communicate with a FRAM.
I will also need to include the two modules, CAN-bus application and FRAM,
into the kernel. So I will have to compile a modified Kernel, which includes
both and also uses the RT-Preempt configuration - please correct me if I'm
wrong.

This far I tried to go several ways.

I tried to go with the Mainline 3.14 Kernel of Robert Nelson (
GitHub - RobertCNelson/bb-kernel )

That "3.14" is eol...

- Enabled the Rt in patch.sh and rebuild it
- Tried to enable the SPI- and CAN-Interfaces with the DTB-rebuilder
GitHub - RobertCNelson/dtb-rebuilder which leads to a booting
error ( Kernel booting gets stuck at: Waiting for root file system ) and i
figured, that the DTB-rebuilder only works for the TI trunk of the 3.14
Kernel. Did I get that right, or is there a way to use the DTB-rebuilder
with the mainline 3.14 version?

"CONFIG_PREEMPT_RT_FULL" doesn't boot, right now only
"CONFIG_PREEMPT_RTB" works in my 3.14.x-ti branch..

I then tried to directly go with the 3.14-ti-rt version (git checkout
origin/ti-linux-rt-3.14.y), but I get the following Error compiling it:

Applying: ARM: dts: am335x-bone*: Fix model name and update compatibility
information
Applying: bbb: force usb0 to perhiperal mode, fixes:
http://bugs.elinux.org/issues/127
error: patch failed: arch/arm/boot/dts/am335x-bone-common.dtsi:94
error: arch/arm/boot/dts/am335x-bone-common.dtsi: patch does not apply
Patch failed at 0001 bbb: force usb0 to perhiperal mode, fixes:
http://bugs.elinux.org/issues/127

One thing that I can not figure out here is how to choose the the tag to
check out. It's probably git basics, but I don't see it yet. When I start
the build of ti-linux-rt-3.14.y it would automatically start checking out
and compiling the newest version of the branch, which is 3.14.34-rt-56 right
now.

See the "readme.md" : GitHub - RobertCNelson/ti-linux-kernel-dev: vendor bsp...

Since "everything" is based off of a moving target:

The tag's of previous releases are useless...

How would I be able to go with 3.14.34-rt-52 for example?

Grab it from here:

Regards,