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
1
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 igh-ethernet
haha.
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 !!!
The option 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?
Regards.