BeagleBone Black Kernel Main Differences

These are a newbie questions, but it would be fine if a wiki exists with clear explanantion about.

  • Which are the main differences between branches (ex. v4.1 vs v4.4)?

  • Which are the features of every kernel branch (ex. v4.4)?

  • What are the differences between ‘bone-kernel’, ‘ti-channel’, ‘bone-xenomai-channel’ and other ones available?

  • Which ones of the previous questions are available for real-time (rt)?
    I’m trying to find a solution for an issue I have, and as I have read in some forums, changing the kernel would help me, but I don’t know which could be the right kernel, so that is why I’m asking here.

I went through a “trying all the kernels” about a year ago, with no significant improvements to the issues I was having.

More details about your issues would help those with more experience than I give you specific advice.

While things continue to improve, the state of the art on Beaglebone for hard real-time appears to be the “Machinekit” images that run a port of LinuxCNC on a Xenomai patched kernel and use the PRU for stepper motor control.

Even so, I don’t think a Xenomai process can do much better than ~70-100 uSec, hence the usage of the PRU for stepper motor control which may need more like 20 uSec or less.

These are a newbie questions, but it would be fine if a wiki exists with clear explanantion about.

  • Which are the main differences between branches (ex. v4.1 vs v4.4)?

  • Which are the features of every kernel branch (ex. v4.4)?

  • What are the differences between ‘bone-kernel’, ‘ti-channel’, ‘bone-xenomai-channel’ and other ones available?

  • Which ones of the previous questions are available for real-time (rt)?
    I’m trying to find a solution for an issue I have, and as I have read in some forums, changing the kernel would help me, but I don’t know which could be the right kernel, so that is why I’m asking here.

So instead of asking questions that would require a book in text to answer. Why don’t you tell us what you need from a kernel, and if kernel x.y-z would work for that purpose.

These are a newbie questions, but it would be fine if a wiki exists with clear explanantion about.

  • Which are the main differences between branches (ex. v4.1 vs v4.4)?

Other than the obvious answer that V4.4 has for features/drivers than V4.1, TI continue to move their custom processor patches into mainline, so V4.4 will require less patches than V4.1. The goal is to eventually move all patches into mainline so that a standard kernel will work on a board with a TI processor.

  • Which are the features of every kernel branch (ex. v4.4)?

Best to look here:

http://kernelnewbies.org/Linux_4.1

Do the same for 4.2, 4.3 and 4.4 to get an idea of what changed.

  • What are the differences between ‘bone-kernel’, ‘ti-channel’, ‘bone-xenomai-channel’ and other ones available?

bone-kernel is maintained by Robert Nelson and is targeted at the BB and BBB. The PRU is implemented with UIO
ti-channel is maintained by TI and is developed for all TI processors. Some subsystems seem to be updated sooner than the bone-kernel. The PRU is implemented with RPMSG/REMOTEPROC
xenomai is a dual kernel, one for realtime to achieve about 40uS latency under load conditions and the other is the regular Linux kernel
ti-rt used the preempt features to reduce the interrupt latency to about 100uS

  • Which ones of the previous questions are available for real-time (rt)?

As I explained before, xenomai is faster, but development is way more complicated. In most situations, ti-rt is more than fast enough, but there are some drivers that don’t work properly with the ti-rt kernel.

Regards,
John

Thanks all!!

I’m looking for a kernel that allow me to control a screen with touchpanel and a integrated speaker (I have published a concrete thread for this without any response yet), so understansing the differences between kernels could help me to know which is the best for my application, or at least, how I can proceed to solve the issues I have now.

The application needs to control some peripherals more than the screen, and this is why I’m asking about ‘rt’ versions too.