dtb-rebuilder vs. BeagleBoard-DeviceTrees on BeagleBone Black

217 views
Skip to first unread message

Mark A. Yoder

unread,
Oct 7, 2019, 9:28:35 PM10/7/19
to BeagleBoard
I've playing with device trees on the BeagleBone Black and have come across two repos that appear to do similar things.

and

What's the difference between the two?  I've been using the second to experiment with different device trees.  Should I be using the rebuilder?


--Mark

Robert Nelson

unread,
Oct 7, 2019, 9:44:25 PM10/7/19
to Beagle Board
Hi Mark,

I'm EOL'ing mine, the beagleboard one should be use for all current
and future dts patches.

Regards,

--
Robert Nelson
https://rcn-ee.com/

Tarmo Kuuse

unread,
Oct 8, 2019, 6:57:45 AM10/8/19
to BeagleBoard
Hi Robert,

On Tuesday, 8 October 2019 04:44:25 UTC+3, RobertCNelson wrote:
Thank you. That's good to know. 

A kernel upgrade on our devices requires using the dtb-rebuilder to get our modified base DTB-s (am335x-boneblack.dtb). For the 4.19-ti series the most recent supported kernel version in your repo appears to be "4.19.25-ti-r17" from 6 months ago (when looking at commit comments).

The beagleboard repo doesn't list any kernel versions anywhere. When using this repo, how would I recognize which 4.19-ti kernel version I'd be able to apply my modified DTB-s to?

--
Kind regards,
Tarmo

Robert Nelson

unread,
Oct 8, 2019, 10:35:15 AM10/8/19
to beagl...@googlegroups.com, tarmo...@gmail.com
Hi Tarmo,

> Thank you. That's good to know.
>
> A kernel upgrade on our devices requires using the dtb-rebuilder to get our modified base DTB-s (am335x-boneblack.dtb). For the 4.19-ti series the most recent supported kernel version in your repo appears to be "4.19.25-ti-r17" from 6 months ago (when looking at commit comments).
>
> The beagleboard repo doesn't list any kernel versions anywhere. When using this repo, how would I recognize which 4.19-ti kernel version I'd be able to apply my modified DTB-s to?

That shouldn't be an issue going forward.. (easy to say as 4.19-ti has
quieted down, so that might backfire with 5.4-ti)

With the old dtb-rebuilder repo, we'd always push a dts patch to the
kernel build script first, tag it and then manually copy it back to
the dtb-rebuilder. So things would get out of sync if i didn't copy
it over..

With the new repo, everything gets pushed to the
BeagleBoard-DeviceTrees repo first, and the files get sync'ed directly
back to the kernel build script afterwards:

https://github.com/RobertCNelson/ti-linux-kernel-dev/blob/ti-linux-4.19.y/patch.sh#L353-L409

It should be less error prone. I hope..

Tarmo Kuuse

unread,
Oct 9, 2019, 4:12:42 AM10/9/19
to Robert Nelson, beagl...@googlegroups.com
Hi Robert,
Ok, the patch flow process seems sound.

But I have a rather simpler question. How would I match a specific
kernel deb package to a BeagleBoard-DeviceTrees repo commit which went
into _this_ package?

I suspect I can't randomly pick a set of DTB files meant for one kernel,
modify and then apply those to another kernel.

E.g. I've chosen linux-image-4.19.50-ti-r24 as my kernel (from your apt
repo). Now I wish to modify the DTB-s corresponding to _this_ kernel
package. Not for 5.x, not for some newer or older release of 4.19-ti.
How would I find the DTB-s in this package from the
BeagleBoard-DeviceTrees repo?

Off-topic: I'm also assuming that the kernel packages in
repos.rcn-ee.com are all tested and good for production use, which may
or may not be correct.

--
Lugupidamisega/Kind regards
Tarmo Kuuse

Robert Nelson

unread,
Oct 9, 2019, 10:36:45 AM10/9/19
to Tarmo Kuuse, Beagle Board
On Wed, Oct 9, 2019 at 3:12 AM Tarmo Kuuse <tarmo...@gmail.com> wrote:
>
> Hi Robert,
>
> On 08.10.19 17:34, Robert Nelson wrote:
> >> Thank you. That's good to know.
> >>
> >> A kernel upgrade on our devices requires using the dtb-rebuilder to get our modified base DTB-s (am335x-boneblack.dtb). For the 4.19-ti series the most recent supported kernel version in your repo appears to be "4.19.25-ti-r17" from 6 months ago (when looking at commit comments).
> >>
> >> The beagleboard repo doesn't list any kernel versions anywhere. When using this repo, how would I recognize which 4.19-ti kernel version I'd be able to apply my modified DTB-s to?
> >
> > That shouldn't be an issue going forward.. (easy to say as 4.19-ti has
> > quieted down, so that might backfire with 5.4-ti)
> >
> > With the old dtb-rebuilder repo, we'd always push a dts patch to the
> > kernel build script first, tag it and then manually copy it back to
> > the dtb-rebuilder. So things would get out of sync if i didn't copy
> > it over..
> >
> > With the new repo, everything gets pushed to the
> > BeagleBoard-DeviceTrees repo first, and the files get sync'ed directly
> > back to the kernel build script afterwards:
> >
> > https://github.com/RobertCNelson/ti-linux-kernel-dev/blob/ti-linux-4.19.y/patch.sh#L353-L409
> >
> > It should be less error prone. I hope..
>
> Ok, the patch flow process seems sound.
>
> But I have a rather simpler question. How would I match a specific
> kernel deb package to a BeagleBoard-DeviceTrees repo commit which went
> into _this_ package?

Yesterday you have to look at the dates:

https://github.com/RobertCNelson/ti-linux-kernel-dev/blob/ti-linux-4.14.y/patches/soc/ti/beagleboard_dtbs/0001-Add-BeagleBoard.org-DTBS-v4.14.x-ti.patch

******************
Subject: [PATCH] Add BeagleBoard.org DTBS: v4.14.x-ti
https://github.com/beagleboard/BeagleBoard-DeviceTrees/tree/v4.14.x-ti
Signed-off-by: Robert Nelson <robert...@gmail.com>
******************

I'm working on pushing this change to that commit message:

******************
Subject: [PATCH] Add BeagleBoard.org DTBS: v4.14.x-ti
https://github.com/beagleboard/BeagleBoard-DeviceTrees/tree/v4.14.x-ti
+https://github.com/beagleboard/BeagleBoard-DeviceTrees/commit/f15c95bd3d543557fcbbf9e43778c0483391b64e
Signed-off-by: Robert Nelson <robert...@gmail.com>
******************

So now that commit will have the branch and git sha..

> I suspect I can't randomly pick a set of DTB files meant for one kernel,
> modify and then apply those to another kernel.

As long as it's the same branch, it's supposed to work for DT's ABI's rules...

>
> E.g. I've chosen linux-image-4.19.50-ti-r24 as my kernel (from your apt
> repo). Now I wish to modify the DTB-s corresponding to _this_ kernel
> package. Not for 5.x, not for some newer or older release of 4.19-ti.
> How would I find the DTB-s in this package from the
> BeagleBoard-DeviceTrees repo?

Okay, let's see if we can work this out as a new user.. So starting
with "4.19.50-ti-r24" and the beagle repo, we get this:

https://github.com/beagleboard/linux/releases/tag/4.19.50-ti-r24

The only useful link is:
https://github.com/beagleboard/linux/commit/ead458b39df6a532f8e8a55cc641669b6a9e8da0

Which is the defconfig push..

If we go this way:

https://github.com/RobertCNelson/ti-linux-kernel-dev/releases/tag/4.19.50-ti-r24

The only useful link is:
https://github.com/RobertCNelson/ti-linux-kernel-dev/commit/96fca1b9ea8a552c7ea852c3a045a9bbecc79b17

Yeah... so i could find the sha for you, but for the average user it's
a pain.. Let me I think i need to add more useful git sha's for pulled
in repo's to those commits..

4.19.50-ti-r24 was Jul 15th so it should be this commit:
https://github.com/beagleboard/BeagleBoard-DeviceTrees/commit/d142f8a52827cc500888e11bcee75fea625893bb
(even it it wasn't that was for the beaglebone-ai so it should
matter)..

yeah... let's work on that..

> Off-topic: I'm also assuming that the kernel packages in
> repos.rcn-ee.com are all tested and good for production use, which may
> or may not be correct.

"all tested"... Nope..

The "BeagleBoard" linux repo is "build" tested, either manually, or
scanned ever 12 hours (only built on changes..)

http://gfnd.rcn-ee.org:8080/view/BeagleBoard/job/beagleboard_kernel_builder/

The feeder script into the BeagleBoard linux repo is "build" tested on
every change, as i'm working on it: (to make sure a RT or something
else didn't break it)

http://gfnd.rcn-ee.org:8080/view/Builds-v4.19.x-ti/

I run test it when i'm doing something significant.

After a tag get's pushed, the build farm takes over and builds a *.deb
for each distro/release

Which today include:

bionic-armhf
bullseye-armhf
buster-armhf
disco-armhf
eoan-armhf
sid-armhf
stretch-armhf
xenial-armhf

Completed *.deb files are added to the apt repo and rsynced to
repos.rcn-ee.com ...

Then usually every monday morning i update a set of 5 BBB's Running: stretch:

http://gfnd.rcn-ee.org:81/farm/uptime/

U-Boot + Mainline linux
U-Boot + 4.14.x-ti
U-Boot + 4.14.x-ti-rt
U-Boot + 4.19.x-ti
U-Boot + 4.19.x-ti-rt

Then i have 6 X15's running, Debian Buster + 4.19.x-ti, updated every
morning (when idle)..
Then i have 8 Wand's running, Debian Buster + 4.19.x, updated every
morning (when idle)

So yeah, i test what i can, can't test everything especially if Ubuntu
or Debian throws in a wrench with a broken gcc version or something
else in their testing repos..

Robert Nelson

unread,
Oct 9, 2019, 11:43:51 AM10/9/19
to Tarmo Kuuse, Beagle Board
> ******************
> Subject: [PATCH] Add BeagleBoard.org DTBS: v4.14.x-ti
> https://github.com/beagleboard/BeagleBoard-DeviceTrees/tree/v4.14.x-ti
> +https://github.com/beagleboard/BeagleBoard-DeviceTrees/commit/f15c95bd3d543557fcbbf9e43778c0483391b64e
> Signed-off-by: Robert Nelson <robert...@gmail.com>
> ******************

So here's what i came up with, hopefully it's enough, but we could add more:

https://github.com/RobertCNelson/ti-linux-kernel-dev/commit/f9dfbd70c0a4cab2ec81444290ec6fb16d6f645b

kernel v4.14.108 rebase with rt: v4.14.106-rt56 aufs/wireguard/etc
AUFS: sfjro/aufs4-standalone@df5c09a
BBDTBS: beagleboard/BeagleBoard-DeviceTrees@f15c95b
CAN-ISOTP: hartkopp/can-isotp@b31bce9
RT: patch-4.14.106-rt56.patch.xz
TI_AMX3_CM3: http://git.ti.com/gitweb/?p=processor-firmware/ti-amx3-cm3-pm-firmware.git;a=commit;h=6a849767df85ce9399494f53fb5c753665396653
Signed-off-by: Robert Nelson <robert...@gmail.com>

Robert Nelson

unread,
Oct 9, 2019, 12:32:24 PM10/9/19
to Tarmo Kuuse, Beagle Board
Okay this has the best tag, just have to clean it up a little:

https://github.com/beagleboard/linux/releases/tag/4.14.108-ti-xenomai-r120

Robert Nelson

unread,
Oct 9, 2019, 4:57:54 PM10/9/19
to Tarmo Kuuse, Beagle Board
Here's the final version..

https://github.com/beagleboard/linux/releases/tag/4.19.73-ti-r29

What else would be useful? ;)

Tarmo Kuuse

unread,
Oct 10, 2019, 7:17:42 AM10/10/19
to Robert Nelson, Beagle Board
That's beautiful, thank you!

> So yeah, i test what i can, can't test everything especially if Ubuntu
> or Debian throws in a wrench with a broken gcc version or something
> else in their testing repos..

Ok, so you verify that the kernel builds, then package and publish the
result and finally run some integration tests using real hardware.
Sounds great.

Question: when you run the weekly or daily integration tests on your
little farm, how can I consume only the kernel packages that passed?

--
Kind regards
Tarmo

Robert Nelson

unread,
Oct 10, 2019, 10:42:33 AM10/10/19
to Tarmo Kuuse, Beagle Board
This file get's updated..

https://github.com/beagleboard/image-builder/blob/master/configs/kernel.data#L7

Now, before we go more into the details, i don't' "guarantee"
anything.. If your worried about something breaking, have a test node
you test with before you push out to many units..

Tarmo Kuuse

unread,
Oct 10, 2019, 12:31:59 PM10/10/19
to Robert Nelson, Beagle Board
On 10.10.19 17:41, Robert Nelson wrote:
> On Thu, Oct 10, 2019 at 6:17 AM Tarmo Kuuse <tarmo...@gmail.com> wrote:
>> On 09.10.19 23:57, Robert Nelson wrote:
>>> On Wed, Oct 9, 2019 at 11:31 AM Robert Nelson <robert...@gmail.com> wrote:
>>> Here's the final version..
>>>
>>> https://github.com/beagleboard/linux/releases/tag/4.19.73-ti-r29
>>>
>>> What else would be useful? ;)
>>
>> That's beautiful, thank you!
>>
>>> So yeah, i test what i can, can't test everything especially if Ubuntu
>>> or Debian throws in a wrench with a broken gcc version or something
>>> else in their testing repos..
>>
>> Ok, so you verify that the kernel builds, then package and publish the
>> result and finally run some integration tests using real hardware.
>> Sounds great.
>>
>> Question: when you run the weekly or daily integration tests on your
>> little farm, how can I consume only the kernel packages that passed?
>
> This file get's updated..
>
> https://github.com/beagleboard/image-builder/blob/master/configs/kernel.data#L7

Good to know. Thanks.

> Now, before we go more into the details, i don't' "guarantee"
> anything.. If your worried about something breaking, have a test node
> you test with before you push out to many units..

Whaddya mean, test?
https://thedailywtf.com/articles/Flawless-Compilation

--
Kind regards,
Tarmo
Reply all
Reply to author
Forward
0 new messages