I’m looking at the /lib/modules directory of my beaglebone-xm running jessie (linux arm 4.4.1-armv7-x5) and I see two sub-directories:
4.1.17-ti-rt-r47
and
4.4.1-armv7-x5
What is the intended usage of these two directories. It appears that some of the .ko modules appear in both. That is, the directories are not exact duplicates of each other.
-David
If you look in /boot, you should also see the same drectories. But since module are compiled against a kernel, on a per kernal basis. You need new modules for a new kernel. e.g. you probably have had two different kernels installed.
If this helps you understand better:
william@beaglebone:~$ ls /lib/modules
4.4.14-ti-r34 4.4.14-ti-rt-r34 4.4.8-ti-r22 4.4.9-bone-rt-r10
william@beaglebone:~$ ls /boot/
SOC.sh config-4.4.14-ti-r34 initrd.img-4.4.14-ti-r34 uboot
System.map-4.4.14-ti-r34 config-4.4.14-ti-rt-r34 initrd.img-4.4.14-ti-rt-r34 vmlinuz-4.4.14-ti-r34
System.map-4.4.14-ti-rt-r34 config-4.4.8-ti-r22 initrd.img-4.4.8-ti-r22 vmlinuz-4.4.14-ti-rt-r34
System.map-4.4.8-ti-r22 config-4.4.9-bone-rt-r10 initrd.img-4.4.9-bone-rt-r10 vmlinuz-4.4.8-ti-r22
System.map-4.4.9-bone-rt-r10 dtbs uEnv.txt vmlinuz-4.4.9-bone-rt-r10
Hi David,
I'm looking at the /lib/modules directory of my beaglebone-xm running jessie
(linux arm 4.4.1-armv7-x5) and I see two sub-directories:
4.1.17-ti-rt-r47
and
4.4.1-armv7-x5
What is the intended usage of these two directories. It appears that some
of the .ko modules appear in both. That is, the directories are not exact
duplicates of each other.
A Couple Reasons:
TI actually dropped "official" support for OMAP3/DM37xx devices after
v3.14.x, so we just use a mainline generic kernel (4.4.1 in that
image's case for the xM).. Whereas the 4.1.x-ti based kernel has
official support from TI for am335x/am4x/am5x devices..
THUMB2:
The omap3/dm37xx, have an early r1pX Cortex-A8 core, this has lots of
fun thumb2 errata. So the 4.4.1 based kernel was built in non-thumb2
mode.. Whereas the v4.1.x-ti based kernel has THUMB2 enabled by
default..
http://cateee.net/lkddb/web-lkddb/THUMB2_KERNEL.html
Regards,
Hmm, this explains the lack of support for hid functionality in the gadget libraries. The driver usb_f_hid.ko is present in the ti versions but not the generic arm version.
I decided to move my development efforts to the BBB. The Jessie release does have the usb_f_hid.ko driver. The downside is that now I need a USB HUB since the BBB has only one host usb port. Oh well. Mebbe I should get an x15 (I love the choice of name - I remember the stream of new articles talking about yeager and the x15.
-David
Hmm, this explains the lack of support for hid functionality in the gadget
libraries. The driver usb_f_hid.ko is present in the ti versions but not
the generic arm version.
You could just rebuild the kernel...
I decided to move my development efforts to the BBB. The Jessie release
does have the usb_f_hid.ko driver. The downside is that now I need a USB
HUB since the BBB has only one host usb port. Oh well. Mebbe I should get
an x15 (I love the choice of name - I remember the stream of new articles
talking about yeager and the x15.
Regards,
I just read the following:
Hi David,
…
A Couple Reasons:
TI actually dropped “official” support for OMAP3/DM37xx devices after
v3.14.x, so we just use a mainline generic kernel (4.4.1 in that
image’s case for the xM)… Whereas the 4.1.x-ti based kernel has
official support from TI for am335x/am4x/am5x devices…
…
Regards,
–
Robert Nelson
https://rcn-ee.com/
Does this mean that the 4.9 kernel doesn’t have official support for the Beaglebone Black (am335x?)…
I’m wondering if that is why I’m having problems with the configs usb_f_hid.ko gadget driver. I tracked
down, I think, what the problem might be, but I’m not exactly sure how to fix it. When looking for an
“in” endpoint, the hid driver has several (the fs, hs, and ss endpoints), but I’m not sure that the
usb_gadget_ep_match_desc
function actually matches any of the endpoints and I think it ends up returning a null endpoint
descriptor which is then dereferenced by “alloc_ep_req” in the hidg_bind process. I’m not exactly sure why it wouldn’t
get a descriptor, but there are several ways that the above function can return 0 instead of 1 (meaning
it didn’t match). I’m in the process of tracking this down, but maybe there is something I need in the
kernel that isn’t supported/provided anymore for am335x?
Sorry to pick on you again to ask these questions (I asked you about the HID driver in another thread),
but you seem to be the most knowledgeable about ti/linux/beaglebone support in general. If I knew where
else to direct these questions, I’d direct them there.