Kernel 3.14 Realtime + Custom DTB difficulties

114 views
Skip to first unread message

Torsten Schmickler

unread,
Mar 11, 2015, 5:59:21 AM3/11/15
to beagl...@googlegroups.com
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?
>>For your sanity you have to use the tags, from this tree:
>>
>> 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


Robert Nelson

unread,
Mar 11, 2015, 10:15:53 AM3/11/15
to Beagle Board
On Wed, Mar 11, 2015 at 4:59 AM, Torsten Schmickler
<torsten.s...@gmail.com> wrote:
> 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 )

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
> 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?

"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" : https://github.com/RobertCNelson/ti-linux-kernel-dev

Since "everything" is based off of a moving target:
http://git.ti.com/gitweb/?p=ti-linux-kernel/ti-linux-kernel.git;a=shortlog;h=refs/heads/ti-linux-3.14.y

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:

https://github.com/RobertCNelson/linux-stable-rcn-ee

Regards,

--
Robert Nelson
http://www.rcn-ee.com/
Reply all
Reply to author
Forward
0 new messages