BeagleBone Black switching to 3.14 kernel

It is time to make another big software push for BeagleBone Black. We
have several recent updates from Robert, including managing the kernel
as Debian packages.

To try out the new code, use one of the recent images from:
http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#2014-08-05

Then, you'll need to switch to the 3.14 kernel:
sudo apt-get update ; sudo apt-get install linux-image-3.14.17-ti-r10

Report issues to one of these trackers:
https://github.com/beagleboard/linux
http://bugs.elinux.org/projects/debian-image-releases

The device tree overlay support is still under development as is
built-in 'config-pin/cape-universal' support, so static configuration
of the .dtb is currently required. Your help is requested to make sure
the default .dtb file includes as many configurations as possible that
can be enabled from userspace.

Update summary:
* Repo moved to https://github.com/beagleboard/linux
* Layout of Debian images now enable 'apt-get' updates to the kernel,
but you need to grab a newer starting distro image
* The false-start on the cape-firmware repo has been abandoned and
device tree overlays are now part of the kernel tree
* The kernel currently uses DMA for the USB and includes SGX support

I've setup a buildbot hosted at http://builds.beagleboard.org, but I'm
still working on getting it to handle pull requests, multiple
branches, etc. like the MachineKit folks are doing, as well as pushing
out the builds.

After a bit more feedback, I'll push out some blog posts, etc. to get
more people involved. Thanks for your help!

The device tree overlay support is still under development as is

We are going to try and do as much as possible in userspace, using
idea's from Charles's universal pinmux.

For stuff that we can't use that for, we are doing:

https://github.com/beagleboard/linux/blob/3.14/arch/arm/boot/dts/am335x-boneblack.dts#L30

Regards,

*The device tree overlay support is still under development as is*

* built-in 'config-pin/cape-universal' support, so static configuration*
* of the .dtb is currently required. Your help is requested to make sure*
* the default .dtb file includes as many configurations as possible that*
* can be enabled from userspace.*

Would it not be prudent to at least provide *some* mechanism to disable /
enable device tree files. Before moving to the "next latest greatest" ?
Sure, hacking the main firmware file works I suppose, but that is not a
real solution.

Absolutely. I don't think we'll switch this to the default kernel until we
enable device tree overlay support and CapeMgr, but I'm asking for help in
the meantime in enabling as much as possible using
config-pin/cape-universal and the gpio/pinmux helpers. For power and many
more reasons, it will be better to have a more trimmed down .dtb, but I
believe ease-of-use will be greatly improved by making overlays the
exception rather than the rule.

Thanks for the update Jason… I didn’t realize the kernel repo had moved - I was wondering why there wasn’t much activity recently! I was looking at the 3.8 branch and noticed that Robert had added SGX… it would appear that 3.8 will also now have SGX working, not only 3.14, right? I didn’t see any commits regarding DMA for USB though…

Thanks for posting,
I'll try that :wink:

So, at this point in time. What can we expect that is better with 3.14 versus 3.8 ? I do not personally have a problem using #include for various “capes” if need be, but I am wondering if USB hotplug, and / or if USB support is better. As was with 3.15.

usb/ethernet/pm is better.

Right now we are integrating Charles's universal pinmux, which will
allow you to 'mux' enabled peripherals on the fly.

Regards,

Thanks Robert. pm == power management ? If so how is it better ?

echo mem > /sys/power/state

actually works..

Regards,

Very nice. thanks Robert.

Will the kernel have PREEMPT enabled as its now disabled for debian ?

Jason Kridner <jkridner@beagleboard.org> writes:

It is time to make another big software push for BeagleBone Black. We
have several recent updates from Robert, including managing the kernel
as Debian packages.

To try out the new code, use one of the recent images from:
http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#2014-08-05

Then, you'll need to switch to the 3.14 kernel:
sudo apt-get update ; sudo apt-get install linux-image-3.14.17-ti-r10

It seems like this image has a greatly reduced set of modules (namely
the `rt2x00` driver isn't built, although looking at the .config diff it
looks like many drivers are omitted). Could the build configuration be
modified to include a wider breadth of drivers?

Out of curiosity, currently apt knows of three kernel series (run on a
2014-09-03 installation): `-ti`, `-bone`, and what is presumably the
unsuffixed Debian upstream kernels. From what trees do these builds
originate? Who maintains them? I guess the `-ti` kernel is new
preferred kernel?

Cheers,

- Ben

Jason Kridner <jkridner@beagleboard.org> writes:

It is time to make another big software push for BeagleBone Black. We
have several recent updates from Robert, including managing the kernel
as Debian packages.

To try out the new code, use one of the recent images from:
http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#2014-08-05

Then, you'll need to switch to the 3.14 kernel:
sudo apt-get update ; sudo apt-get install linux-image-3.14.17-ti-r10

It seems like this image has a greatly reduced set of modules (namely
the `rt2x00` driver isn't built, although looking at the .config diff it
looks like many drivers are omitted). Could the build configuration be
modified to include a wider breadth of drivers?

enabled them last week:

sudo apt-get update ; sudo apt-get install linux-image-3.14.17-ti-r19

( i need to add a : linux-image-bb.org-v3.14-meta-package )

Out of curiosity, currently apt knows of three kernel series (run on a
2014-09-03 installation): `-ti`, `-bone`, and what is presumably the
unsuffixed Debian upstream kernels. From what trees do these builds
originate? Who maintains them? I guess the `-ti` kernel is new
preferred kernel?

So the "-bone" is close to mainline (small # of patches). The "-ti" we
are a basing on a ti branch: (git.ti.com, patchset >20Mb).. Plus the
'debian' linux-image-armmp will also work once we switch to jessie..
(you can even install ubuntu's linux-image *.deb) the bootloader will
find it.

v3.14-ti repo: https://github.com/beagleboard/linux/tree/3.14

Regards,

Robert Nelson <robertcnelson@gmail.com> writes:

Jason Kridner <jkridner@beagleboard.org> writes:

It is time to make another big software push for BeagleBone Black. We
have several recent updates from Robert, including managing the kernel
as Debian packages.

To try out the new code, use one of the recent images from:
http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#2014-08-05

Then, you'll need to switch to the 3.14 kernel:
sudo apt-get update ; sudo apt-get install linux-image-3.14.17-ti-r10

It seems like this image has a greatly reduced set of modules (namely
the `rt2x00` driver isn't built, although looking at the .config diff it
looks like many drivers are omitted). Could the build configuration be
modified to include a wider breadth of drivers?

enabled them last week:

sudo apt-get update ; sudo apt-get install linux-image-3.14.17-ti-r19

Oops, should have checked this.

( i need to add a : linux-image-bb.org-v3.14-meta-package )

Out of curiosity, currently apt knows of three kernel series (run on a
2014-09-03 installation): `-ti`, `-bone`, and what is presumably the
unsuffixed Debian upstream kernels. From what trees do these builds
originate? Who maintains them? I guess the `-ti` kernel is new
preferred kernel?

So the "-bone" is close to mainline (small # of patches). The "-ti" we
are a basing on a ti branch: (git.ti.com, patchset >20Mb).. Plus the
'debian' linux-image-armmp will also work once we switch to jessie..
(you can even install ubuntu's linux-image *.deb) the bootloader will
find it.

v3.14-ti repo: https://github.com/beagleboard/linux/tree/3.14

Thanks for the clarifcation!

Cheers,

- Ben

Robert Nelson <robertcnelson@gmail.com> writes:

So the "-bone" is close to mainline (small # of patches). The "-ti" we
are a basing on a ti branch: (git.ti.com, patchset >20Mb).. Plus the
'debian' linux-image-armmp will also work once we switch to jessie..
(you can even install ubuntu's linux-image *.deb) the bootloader will
find it.

v3.14-ti repo: https://github.com/beagleboard/linux/tree/3.14

How do you go about generating the .debs? There doesn't appear any
packaging in the beagleboard/linux tree and the .debs don't appear to
have corresponding source debs.

Cheers,

- Ben

We are using the in-tree "make deb-pkg"

After i push a tag to:

https://github.com/beagleboard/linux/

Like: 3.14.17-ti-r19

https://github.com/beagleboard/linux/tree/3.14.17-ti-r19

I'll fire off a native build (wheezy *.deb is built in a clean wheezy chroot)

fakeroot make -j5 ARCH=arm LOCALVERSION=-ti-r19 CROSS_COMPILE=
KDEB_PKGVERSION=1wheezy KBUILD_DEBARCH=armhf deb-pkg

This generates:

linux-headers-3.14.17-ti-r19_1wheezy_armhf.deb
linux-image-3.14.17-ti-r19_1wheezy_armhf.deb
linux-libc-dev_1wheezy_armhf.deb

(and) (which i haven't enabled in the 3.14 branch)

linux-firmware-image-3.16.2-armv7-lpae-x2_1jessie_armhf.deb

linux-headers-*
linux-firmware-image-*
linux-image-*

get pushed to repos.rcn-ee.net (reprepro)

linux-libc-dev_1wheezy_armhf.deb -> /dev/null

So unfortunately the src package is not generated via "make deb-pkg"
thus we rely on the git tag's..

PS you can build a *.deb via cross on x86:

make -j5 ARCH=arm LOCALVERSION=-git<sha>
CROSS_COMPILE=<bin/arm-cross-> KDEB_PKGVERSION=1cross
KBUILD_DEBARCH=armhf deb-pkg

Regards,

Robert Nelson <robertcnelson@gmail.com> writes:

I must be missing something, apt-get is not finding any of the linux-image-* files. Do I need to add a repository ?
Thanks

Yeap, you didn't read the note in the second paragraph.

http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#2014-09-03

Regards,