Hi, first of all I’ve programmed C for microcotrollers for several years, but just recently entered embedded linux world, so I’ll probably be saying some nonsense stuff. Also sorry for the long text.
I’m trying to setup a system using Beaglebone Black that requires:
- internet connection, using both ethernet and 3G usb dongles.
- GPIO and Analog inputs
- 485 communication on UARTs
I’ve started using buildroot to build all the software components, toolchain, bootloader, kernel and rootfs. Everything worked as I expected, and I’ve managed to build almost all my application on top of it. I’ve decided to do the GPIO/Analog stuff in the end.
When I’ve started do look up how to change pins functions (input, output, uart_tx, uart_rx, etc…) almost every googling about it leads to capemanager, that as fair as i understand is part of kernel v3.8 at https://github.com/beagleboard/kernel.
And the kernel v3.12.10 pointed by buildroot beaglebone_defconfig (git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git) doesn’t have this feature.
As I had no idea on how to start change device tree (it seams very complex at start) I’ve decided to change to this kernel, also because it seams the ‘standard’ kernel for BBB. And then, I’ve build a overlay for device tree that set the correct modes of the pins I need.
But than I’ve started to get some strange behavior on usb port (all this work with buildroot default kernel):
- When I connect (before power on the board) a 3G usb dongle directly at BBB usb, the ethernet port is not reconized most of the times (randomly) that I power the board.
- If I connect a usb hub, with external power source, its not recognized
- If I connect a usb hub, without external power source, the hub is recognized, but the 3g dongle not.
I would appreciate any suggestion on witch path should I take: try to ‘fix this problem’ with usb and kernel 3.8 or go back to buildroot default kernel and change device tree source? Or anything completely different…
Thanks in advance.