Hi all, here is an update of this thread; first, I tried to build
igh-ethernet package in buildroot for a rpi3, however, since rpi3 doesn’t have any
igh-ethernet supported hardware. The
igh-ethernet needs to be compiled with
--enable-generic option, therefore, I needed to add a custom
igh-ethernet package to buildroot, also I enabled udev, taskset packages. Despite this, I had these types of warnings during compilation:
depmod: WARNING: /home/alde/Documents/Elixir/Nerves/repos/valiot_system_rpi3/.nerves/artifacts/valiot_system_rpi3-portable-1.7.2-valiot.7/target/lib/modules/4.19.25/extra/devices/ec_generic.ko needs unknown symbol kernel_bind
depmod: WARNING: /home/alde/Documents/Elixir/Nerves/repos/valiot_system_rpi3/.nerves/artifacts/valiot_system_rpi3-portable-1.7.2-valiot.7/target/lib/modules/4.19.25/extra/master/ec_master.ko needs unknown symbol sched_setscheduler
The following error was shown during runtime:
iex(3)> cmd "modprobe ec_master"
modprobe: can't load module ec_master (extra/master/ec_master.ko): unknown symbol in module, or unknown parameter
At this point I thought it could be a kernel version issue, since when compiling a similar repository (for bbb), the compilation works without warnings, therefore, I lost interest in using
The second option was the arcontis software
atemsys, which it appears to be easier to compile, so I added a custom package to buildroot, however, during compilation I had the same type of warning (only 1 warning) as before:
depmod: WARNING: /home/alde/Documents/Elixir/Nerves/repos/valiot_system_rpi3/.nerves/artifacts/valiot_system_rpi3-portable-1.7.2-valiot.7/target/lib/modules/4.19.25/extra/atemsys.ko needs unknown symbol of_find_compatible_node
Therefore, it also fails at runtime.
My third option was the SOEM project, I had no issue with this library (compiles with no warnings), however, this package is refered by the community more as a library than a master software, therefore, I think that its better to make an Elixir wrapper than add the package in buildroot.
Giving another chance to the previous options (atmsys, igh-ethernet) and looking the bbb project, it seems that by disabling
CONFIG_TRIM_UNUSED_KSYMS=y in linux-x.x.defconfig both packages works in runtime !!!
CONFIG_TRIM_UNUSED_KSYMS=y seem to be to trim exported kernel symbols that are not used, which for me seems that it makes the opposite, I also do not know what kind of problems I am creating when disabling this option :(, Does anyone knows?
Currently, the problem in which I am working with
igh-ethernet is to open a device
/dev/EtherCAT0 that does not exist, but I think it’s a matter of executing some package commands and defining some rules in
/etc/udev/rule.d (this directory does not exist either).
Does anyone know how to define these rules in Nerves?, or does it have to be done in Buildroot?