Differences between kernels?

Is there a document or something that describes the differences between the --bone, --armv7, and --ti kernels? Why to choose one over the other? etc…

I’ve been using the --ti --lts-4_14, but recent versions are completely broken for advanced WIFI use cases so I’m kind of trying to figure out what options I have to replace it. Sometime between 4.14.13-ti-r25 and the current 4.14 version, someone made the boneheaded (pun intended, no offense intended) to include the USB wifi adapters as builtins instead of modules. This completely breaks any usage of external wifi modules that work “better” (or in some cases, actually work). We cannot blacklist the builtin modules (even tried the command line params, didn’t work). And even without blacklist, they don’t work as the firmwares needed by the wifi adapters are not included in the initial rd. I’m not sure why they are now built in instead of modules, but it’s certainly a huge step backwards IMO.

I can stay on 4.14.13-ti-r25 which works fine, but I’m not sure what fixes and such I’d be missing out on going forward. The --bone kernels don’t seem to have btrfs which, while not critical, is something we’ve been looking closer at for the COW and compression. The armv7 kernel seems to work for both btrfs and wifi, but I really don’t know what else I’m missing out on with that version.

Bone = am335x targets, no smp
armv7 = all armv7 including things that will slow done am335x

Ti = utilizes TI sdk kernel… aka ti engineers get paid to support that kernel… patches end up mainline…

That’s me, was trying to speed up boot times, we can revert it back to modules.

Let me know which ones have btrfs disabled, as they should be enabled again.

Regards

Bone = am335x targets, no smp

Ti = utilizes TI sdk kernel… aka ti engineers get paid to support that kernel… patches end up mainline…

If I’m ONLY targeting the BeagleBone Blacks and PocketBeagles where we know we don’t need SMP, is there a reason to go -ti vs. -bone?

The -bone images seems to boot slightly faster.

I’ve been using the --ti --lts-4_14, but recent versions are completely broken for advanced WIFI use cases so I’m kind of trying to figure out what options I have to replace it. Sometime between 4.14.13-ti-r25 and the current 4.14 version, someone made the boneheaded (pun intended, no offense intended) to include the USB wifi adapters as builtins instead of modules. This completely breaks any usage of external wifi modules that work “better” (or in some cases, actually work). We cannot blacklist the builtin modules (even tried the command line params, didn’t work). And even without blacklist, they don’t work as the firmwares needed by the wifi adapters are not included in the initial rd. I’m not sure why they are now built in instead of modules, but it’s certainly a huge step backwards IMO.

That’s me, was trying to speed up boot times, we can revert it back to modules.

That would be great if we could. They really aren’t working as modules. With the -bone kernel, I can easily get the Wifi built onto the SanCloud BeagleBone Enhanced to work. I haven’t managed to get it to work at all with the latest -ti 4.14 kernels. wlan0 doesn’t even appear due to the lack of firmware.

I’m also getting a strange stack trace in dmsg with 4.14.25-ti-r38. It seems to be ignorable, but it’s concerning to see:

`

[ 71.453332] WARNING: CPU: 0 PID: 1119 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x78/0x88
[ 71.453338] sysfs: cannot create duplicate filename ‘/bus/platform/devices/4a300000.pruss’
[ 71.453343] Modules linked in: pruss_soc_bus(+) uio_pruss(+) btusb btrtl btbcm btintel bluetooth ecdh_generic 8021q garp mrp stp llc evdev uio_pdrv_genirq uio usb_f_acm u_serial usb_f_ecm usb_f_rndis u_ether libcomposite iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_filter ip_tables x_tables
[ 71.453467] CPU: 0 PID: 1119 Comm: systemd-udevd Not tainted 4.14.25-ti-r38 #1
[ 71.453472] Hardware name: Generic AM33XX (Flattened Device Tree)
[ 71.453516] [] (unwind_backtrace) from [] (show_stack+0x20/0x24)
[ 71.453537] [] (show_stack) from [] (dump_stack+0x8c/0xa0)
[ 71.453553] [] (dump_stack) from [] (__warn+0xf8/0x110)
[ 71.453564] [] (__warn) from [] (warn_slowpath_fmt+0x58/0x74)
[ 71.453576] [] (warn_slowpath_fmt) from [] (sysfs_warn_dup+0x78/0x88)
[ 71.453590] [] (sysfs_warn_dup) from [] (sysfs_do_create_link_sd+0xc4/0xd4)
[ 71.453601] [] (sysfs_do_create_link_sd) from [] (sysfs_create_link+0x38/0x44)
[ 71.453614] [] (sysfs_create_link) from [] (bus_add_device+0x78/0x134)
[ 71.453637] [] (bus_add_device) from [] (device_add+0x298/0x5d0)
[ 71.453654] [] (device_add) from [] (of_device_add+0x44/0x4c)
[ 71.453667] [] (of_device_add) from [] (of_platform_device_create_pdata+0x84/0xb4)
[ 71.453678] [] (of_platform_device_create_pdata) from [] (of_platform_bus_create+0x178/0x310)
[ 71.453689] [] (of_platform_bus_create) from [] (of_platform_populate+0x84/0x120)
[ 71.453721] [] (of_platform_populate) from [] (pruss_soc_bus_probe+0x13c/0x26c [pruss_soc_bus])
[ 71.453766] [] (pruss_soc_bus_probe [pruss_soc_bus]) from [] (platform_drv_probe+0x60/0xc0)
[ 71.453777] [] (platform_drv_probe) from [] (driver_probe_device+0x2a8/0x460)
[ 71.453787] [] (driver_probe_device) from [] (__driver_attach+0x100/0x10c)
[ 71.453799] [] (__driver_attach) from [] (bus_for_each_dev+0x8c/0xd0)
[ 71.453810] [] (bus_for_each_dev) from [] (driver_attach+0x2c/0x30)
[ 71.453819] [] (driver_attach) from [] (bus_add_driver+0x16c/0x26c)
[ 71.453828] [] (bus_add_driver) from [] (driver_register+0x88/0x104)
[ 71.453838] [] (driver_register) from [] (__platform_driver_register+0x50/0x58)
[ 71.453854] [] (__platform_driver_register) from [] (pruss_soc_bus_driver_init+0x20/0x1000 [pruss_soc_bus])
[ 71.453873] [] (pruss_soc_bus_driver_init [pruss_soc_bus]) from [] (do_one_initcall+0x64/0x19c)
[ 71.453894] [] (do_one_initcall) from [] (do_init_module+0x74/0x20c)
[ 71.453907] [] (do_init_module) from [] (load_module+0x21c4/0x2890)
[ 71.453919] [] (load_module) from [] (SyS_init_module+0x1b8/0x1d4)
[ 71.453936] [] (SyS_init_module) from [] (__sys_trace_return+0x0/0x10)

`

I can stay on 4.14.13-ti-r25 which works fine, but I’m not sure what fixes and such I’d be missing out on going forward. The --bone kernels don’t seem to have btrfs which, while not critical, is something we’ve been looking closer at for the COW and compression. The armv7 kernel seems to work for both btrfs and wifi, but I really don’t know what else I’m missing out on with that version.

Let me know which ones have btrfs disabled, as they should be enabled again.

Hmm… just tested with 4.15.9-bone4 and it seems to be working there. I’m not sure what version I was using a few weeks ago where it didn’t. Not a concern then. :slight_smile:

Thanks for the quick follow up!
Dan