Closed flocentblack closed 5 years ago
Guess for gcc6 you have to add -no-pie to the LDFLAGS in all makefiles.
Uh, and remove the *.o files from daemons/common
Thanks. Got further this time, but another error:
$ make
mkdir -p kernel-module/igb && make subdir=kernel-module/igb -C kernel-module/igb
make[1]: Entering directory '/home/supereb/avb4linux/kernel-module/igb'
make -C /lib/modules/4.9.168-rt125-patched-pcm-motu-avb-64ch/build O=/lib/modules/4.9.168-rt125-patched-pcm-motu-avb-32ch/build SUBDIRS=/home/supereb/avb4linux/kernel-module/igb modules
make[2]: Entering directory '/usr/src/linux-source-4.9'
make[3]: Entering directory '/usr/src/linux-source-4.9'
CC [M] /home/supereb/avb4linux/kernel-module/igb/igb_main.o
/home/supereb/avb4linux/kernel-module/igb/igb_main.c: In function ‘igb_read’:
/home/supereb/avb4linux/kernel-module/igb/igb_main.c:10321:2: warning: ignoring return value of ‘copy_to_user’, declared with attribute warn_unused_result [-Wunused-result]
copy_to_user(buf, &adapter->last_event, sizeof(adapter->last_event));
^~~~~~~~~~~~~~~~
CC [M] /home/supereb/avb4linux/kernel-module/igb/e1000_82575.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/e1000_i210.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/e1000_mac.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/e1000_nvm.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/e1000_phy.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/e1000_manage.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/igb_param.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/igb_ethtool.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/kcompat.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/e1000_api.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/e1000_mbx.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/igb_vmdq.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/igb_procfs.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/igb_hwmon.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/igb_debugfs.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/alsa.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/avpdu.o
CC [M] /home/supereb/avb4linux/kernel-module/igb/igb_ptp.o
LD [M] /home/supereb/avb4linux/kernel-module/igb/igb_avb.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/supereb/avb4linux/kernel-module/igb/igb_avb.mod.o
LD [M] /home/supereb/avb4linux/kernel-module/igb/igb_avb.ko
make[3]: Leaving directory '/usr/src/linux-source-4.9'
make[2]: Leaving directory '/usr/src/linux-source-4.9'
make[1]: Leaving directory '/home/supereb/avb4linux/kernel-module/igb'
mkdir -p daemons/mrpd && make subdir=daemons/mrpd -C daemons/mrpd
make[1]: Entering directory '/home/supereb/avb4linux/daemons/mrpd'
cc -c -I../common -O2 -Wall -Wextra -Wno-parentheses -ggdb -D_GNU_SOURCE -o mrpd.o mrpd.c
cc -c -I../common -O2 -Wall -Wextra -Wno-parentheses -ggdb -D_GNU_SOURCE -o mvrp.o mvrp.c
cc -c -I../common -O2 -Wall -Wextra -Wno-parentheses -ggdb -D_GNU_SOURCE -o msrp.o msrp.c
cc -c -I../common -O2 -Wall -Wextra -Wno-parentheses -ggdb -D_GNU_SOURCE -o mmrp.o mmrp.c
cc -c -I../common -O2 -Wall -Wextra -Wno-parentheses -ggdb -D_GNU_SOURCE -o mrp.o mrp.c
cc -c -I../common -O2 -Wall -Wextra -Wno-parentheses -ggdb -D_GNU_SOURCE -o ../common/parse.o ../common/parse.c
cc -c -I../common -O2 -Wall -Wextra -Wno-parentheses -ggdb -D_GNU_SOURCE -o ../common/eui64set.o ../common/eui64set.c
cc mrpd.o mvrp.o msrp.o mmrp.o mrp.o ../common/parse.o ../common/eui64set.o -o mrpd
make[1]: Leaving directory '/home/supereb/avb4linux/daemons/mrpd'
mkdir -p daemons/maap/linux/build/ && make subdir=daemons/maap/linux/build/ -C daemons/maap/linux/build/
make[1]: Entering directory '/home/supereb/avb4linux/daemons/maap/linux/build'
cc -O2 -Wall -I../../common -c -o maap_daemon.o ../src/maap_daemon.c
cc -O2 -Wall -I../../common -c -o maap_log_linux.o ../src/maap_log_linux.c
cc -O2 -Wall -I../../common -c -o maap_timer_linux.o ../src/maap_timer_linux.c
cc -O2 -Wall -I../../common -c -o intervals.o ../../common/intervals.c
cc -O2 -Wall -I../../common -c -o maap.o ../../common/maap.c
cc -O2 -Wall -I../../common -c -o maap_net.o ../../common/maap_net.c
cc -O2 -Wall -I../../common -c -o maap_packet.o ../../common/maap_packet.c
cc -O2 -Wall -I../../common -c -o maap_parse.o ../../common/maap_parse.c
cc -O2 -Wall -I../../common -c -o maap_log_queue.o ../../common/maap_log_queue.c
cc maap_daemon.o maap_log_linux.o maap_timer_linux.o intervals.o maap.o maap_net.o maap_packet.o maap_parse.o maap_log_queue.o -lrt -lpthread -o maap_daemon
make[1]: Leaving directory '/home/supereb/avb4linux/daemons/maap/linux/build'
ARCH=I210
mkdir -p daemons/gptp/linux/build/ && make subdir=daemons/gptp/linux/build/ -C daemons/gptp/linux/build/
make[1]: Entering directory '/home/supereb/avb4linux/daemons/gptp/linux/build'
g++ -Wall -g -I. -I../../common -I../src -I/home/supereb/header/include/ -DPTP_HW_CROSSTSTAMP -std=c++0x -Wnon-virtual-dtor -c ../../common/ptp_message.cpp -o obj/ptp_message.o
g++ -Wall -g -I. -I../../common -I../src -I/home/supereb/header/include/ -DPTP_HW_CROSSTSTAMP -std=c++0x -Wnon-virtual-dtor -c ../../common/ap_message.cpp -o obj/ap_message.o
g++ -Wall -g -I. -I../../common -I../src -I/home/supereb/header/include/ -DPTP_HW_CROSSTSTAMP -std=c++0x -Wnon-virtual-dtor -c ../../common/avbts_osnet.cpp -o obj/avbts_osnet.o
g++ -Wall -g -I. -I../../common -I../src -I/home/supereb/header/include/ -DPTP_HW_CROSSTSTAMP -std=c++0x -Wnon-virtual-dtor -c ../../common/ether_port.cpp -o obj/ether_port.o
g++ -Wall -g -I. -I../../common -I../src -I/home/supereb/header/include/ -DPTP_HW_CROSSTSTAMP -std=c++0x -Wnon-virtual-dtor -c ../../common/common_port.cpp -o obj/common_port.o
g++ -Wall -g -I. -I../../common -I../src -I/home/supereb/header/include/ -DPTP_HW_CROSSTSTAMP -std=c++0x -Wnon-virtual-dtor -c ../../common/ieee1588clock.cpp -o obj/ieee1588clock.o
g++ -Wall -g -I. -I../../common -I../src -I/home/supereb/header/include/ -DPTP_HW_CROSSTSTAMP -std=c++0x -Wnon-virtual-dtor -c ../src/linux_hal_common.cpp -o obj/linux_hal_common.o
g++ -Wall -g -I. -I../../common -I../src -I/home/supereb/header/include/ -DPTP_HW_CROSSTSTAMP -std=c++0x -Wnon-virtual-dtor -c ../src/linux_hal_persist_file.cpp -o obj/linux_hal_persist_file.o
g++ -Wall -g -I. -I../../common -I../src -I/home/supereb/header/include/ -DPTP_HW_CROSSTSTAMP -std=c++0x -Wnon-virtual-dtor -c ../../common/gptp_log.cpp -o obj/gptp_log.o
g++ -Wall -g -I. -I../../common -I../src -I/home/supereb/header/include/ -DPTP_HW_CROSSTSTAMP -std=c++0x -Wnon-virtual-dtor -c ../src/platform.cpp -o obj/platform.o
cc -Wall -g -I. -I../../common -I../src -I/home/supereb/header/include/ -DPTP_HW_CROSSTSTAMP -c ../../common/ini.c -o obj/ini.o
g++ -Wall -g -I. -I../../common -I../src -I/home/supereb/header/include/ -DPTP_HW_CROSSTSTAMP -std=c++0x -Wnon-virtual-dtor -c ../../common/gptp_cfg.cpp -o obj/gptp_cfg.o
g++ -Wall -g -I. -I../../common -I../src -I/home/supereb/header/include/ -DPTP_HW_CROSSTSTAMP -std=c++0x -Wnon-virtual-dtor -c ../src/linux_hal_generic.cpp -o obj/linux_hal_generic.o
g++ -Wall -g -I. -I../../common -I../src -I/home/supereb/header/include/ -DPTP_HW_CROSSTSTAMP -std=c++0x -Wnon-virtual-dtor -c ../src/linux_hal_generic_adj.cpp -o obj/linux_hal_generic_adj.o
g++ -Wall -g -I. -I../../common -I../src -I/home/supereb/header/include/ -DPTP_HW_CROSSTSTAMP -std=c++0x -Wnon-virtual-dtor obj/ptp_message.o obj/ap_message.o obj/avbts_osnet.o obj/ether_port.o obj/common_port.o obj/ieee1588clock.o obj/linux_hal_common.o obj/linux_hal_persist_file.o obj/gptp_log.o obj/platform.o obj/ini.o obj/gptp_cfg.o obj/linux_hal_generic.o obj/linux_hal_generic_adj.o ../src/daemon_cl.cpp -o obj/daemon_cl -lpthread -lrt
make[1]: Leaving directory '/home/supereb/avb4linux/daemons/gptp/linux/build'
mkdir -p daemons/shaper && make subdir=daemons/shaper -C daemons/shaper
make[1]: Entering directory '/home/supereb/avb4linux/daemons/shaper'
cc -O2 -g -Wall -Wextra -c src/shaper_daemon.c -o build/shaper_daemon.o
cc -O2 -g -Wall -Wextra -c src/shaper_log_queue.c -o build/shaper_log_queue.o
cc -O2 -g -Wall -Wextra -c src/shaper_log_linux.c -o build/shaper_log_linux.o
src/shaper_log_linux.c: In function ‘shaperLogBuffer’:
src/shaper_log_linux.c:455:1: internal compiler error: in build2_stat, at tree.c:4464
}
^
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-6/README.Bugs for instructions.
Makefile:29: recipe for target 'build/shaper_log_linux.o' failed
make[1]: [build/shaper_log_linux.o] Error 1
make[1]: Leaving directory '/home/supereb/avb4linux/daemons/shaper'
Makefile:56: recipe for target 'shaper' failed
make: [shaper] Error 2
Your gcc seems to be completely broken. What fancy version and distribution is that?
The good news: The shaper_daemon is currently not used, so you may remove all references to it from from the master Makefile and the avb_up.sh/avb_down.sh scripts.
Btw i tested with ubuntu 16.04 and 18.04. Everything compiles just fine. ..
Haha.. used it to comile the pcm.c patched kernels, but maybe an update broke it.
gcc 4:6.3.0-4 gcc 6.3.0-18+deb9u1
MX Linux 18.2
Removed all shaper references. I was able to compile and install.
EDIT: Away from computer but based on the result I was getting below, I'm second guessing whether I did make install. I had not finished my first cup of coffee yet... Will try again tonight.
$ sudo sh ./avb_up.sh eth1 44100 rmmod: ERROR: Module igb is not currently loaded rmmod: ERROR: Module igb_avb is in use insmod: ERROR: could not load module /home/supereb/.avb/igb_avb.ko: No such file or directory driver: igb_avb version: 5.3.2_AVB firmware-version: 3.16, 0x800004ff, 1.304.0 expansion-rom-version: bus-info: 0000:02:00.0 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes supports-priv-flags: no Starting daemons on eth1 ./avb_up.sh: 30: ./avb_up.sh: /home/supereb/.avb/daemon_cl: not found ./avb_up.sh: 31: ./avb_up.sh: /home/supereb/.avb/mrpd: not found ./avb_up.sh: 32: ./avb_up.sh: /home/supereb/.avb/maap_daemon: not found ./avb_up.sh: 37: ./avb_up.sh: /home/supereb/.avb/avb-user: not found
------------------------------------------------------------------------
I noticed that the .avb folder was not created in the home directory.
I noticed you added some pre-requisites. I'm not sure I have my head wrapped around what is required to make this work.
What do you mean by install kernel headers? What/where are the kernel headers? Am I compiling a new kernel? Would 4.9 already have ptp 1588 clock and i2c algobit support by default? Something I set in make menuconfig?
Sorry for all the newbie questions. I know how to use google, but with this stuff I don't yet know enough to know what I should be searching for. I really appreciate all of the trouble you've gone to so far in creating this as well as helping me get this working!
If ptp or the i2c-algo is not there, the indmof of the igb-avb module will fail with "unknown symbol in module". You can also check in /lib/modules/
You apparently have not done the "sudo make install", otherwise you should have the .avb directory.
Remember, you have to adjust the values of OWN_MAC, AVB_DEVICE_SOURCE_MAC and AVB_DEVICE_TALKER_MAC_BASE in kernel-module/igb/avh-config.h!
Thanks!
I did set OWN_MAC, AVB_DEVICE_SOURCE_MAC and AVB_DEVICE_TALKER_MAC_BASE.
I noticed that the original entries began with 0x and ended with ul, so I placed the mac/maap addresses in between 0x--------ul. Is this correct?
MAAP_LOCALLY_ADMINISTRATORED_BASE can be left as-is?
that's all correct
Progress! I was able play music "through" the interface, using AVB by connecting a pair of AVB in channels to a pair of AVB out channels using qjackctrl!
No xruns, but I am getting this faint crackle that is source dependent, which sounds like a clocking issue.
I noticed a couple of error messages as well as " unhandled from mrpd".Here is some of the output of avb_up.sh:
rmmod: ERROR: Module igb_avb is not currently loaded
driver: igb_avb
version: 5.3.2_AVB
firmware-version: 3.16, 0x800004ff, 1.304.0
expansion-rom-version:
bus-info: 0000:02:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
Starting daemons on eth1
INFO : GPTP [07:14:52:828] gPTP starting
ERROR : GPTP [07:14:52:828] Using clock device: /dev/ptp0
STATUS : GPTP [07:14:52:828] Starting PDelay
process_events()
ERROR : GPTP [07:14:52:924] Error (TX) timestamping PDelay request, error=-72
ERROR : GPTP [07:14:54:003] Error (TX) timestamping PDelay request, error=-72
STATUS : GPTP [07:14:54:561] LINKUP
STATUS : GPTP [07:14:54:561] Link Speed: 1000000 kb/sec
STATUS : GPTP [07:14:55:604] AsCapable: Enabled
STATUS : GPTP [07:14:55:829] *** Announce Timeout Expired - Becoming Master
STATUS : GPTP [07:14:55:829] New Grandmaster "6C:B3:11:FF:FE:52:2D:BB" (previous "00:00:00:00:00:00:00:00")
index=5
rc = 0, mrp_register_domain
rc = 0, mrp_join_vlan
PARSE: C=6,P=3,V=0002
Mac: 6c-b3-11-52-2d-bb S+L:L=0001f200a9130000, D=2 PARSE: I=0002
rc = 0, done sending ready rc = 0, advertising stream PARSE: L=0001f200a9130000, D=2 VNE 0002 R=000000000000 VN/MT
VNE 0002 R=000000000000 VN/MT unhandled from mrpd PARSE: S=6CB311522DBB0000,A=91E0F000FE00,V=0002,Z=224,I=1,P=112,L=95 SNE L:D=2,S=0001f200a9130000 R=000000000000 VN/MT
EVENT on STREAM ID=0001fffffff200ffffffa9130000 with state ready got a new/join indication listener: mode 0 stream: 0 1fffffff2 0ffffffa913 0 0 listener: 0 0 0 0 0 0 SNE L:D=2,S=0001f200a9130000 R=000000000000 VN/MT
SNE T:S=6cb311522dbb0000,A=91e0f000fe00,V=0002,Z=224,I=1,P=112,L=95 R=000000000000 VN/MT
talker: mode 0 stream: 6cffffffb311522dffffffbb 0 0 dst_mac: ffffff91ffffffe0fffffff0 0fffffffe 0 vid: 2 SNE T:S=6cb311522dbb0000,A=91e0f000fe00,V=0002,Z=224,I=1,P=112,L=95 R=000000000000 VN/MT
talker 548656268749075, entity 7832623968108555707 VNE 0002 R=0001f200a913 VN/IN
VNE 0002 R=0001f200a913 VN/IN unhandled from mrpd SNE L:D=2,S=6cb311522dbb0000 R=0001f200a913 VO/IN
EVENT on STREAM ID=6cffffffb311522dffffffbb0000 with state ready got a new/join indication listener: mode 0 stream: 6cffffffb311522dffffffbb 0 0 listener: 0 1fffffff2 0ffffffa913 SNE L:D=2,S=6cb311522dbb0000 R=0001f200a913 VO/IN
VNE 0002 R=0001f200a913 QA/IN
VNE 0002 R=0001f200a913 QA/IN unhandled from mrpd SNE T:S=0001f200a9130000,A=91e0f000bba6,V=0002,Z=224,I=1,P=112,L=95 R=0001f200a913 VO/IN
talker: mode 0 stream: 0 1fffffff2 0ffffffa913 0 0 dst_mac: ffffff91ffffffe0fffffff0 0ffffffbbffffffa6 vid: 2 SNE T:S=0001f200a9130000,A=91e0f000bba6,V=0002,Z=224,I=1,P=112,L=95 R=0001f200a913 VO/IN
SNE L:D=2,S=6cb311522dbb0000 R=0001f200a913 VO/IN
EVENT on STREAM ID=6cffffffb311522dffffffbb0000 with state ready got a new/join indication listener: mode 0 stream: 6cffffffb311522dffffffbb 0 0 listener: 0 1fffffff2 0ffffffa913 SNE L:D=2,S=6cb311522dbb0000 R=0001f200a913 VO/IN
VNE 0002 R=0001f200a913 QA/IN
VNE 0002 R=0001f200a913 QA/IN unhandled from mrpd SNE T:S=0001f200a9130000,A=91e0f000bba6,V=0002,Z=224,I=1,P=112,L=95 R=0001f200a913 VO/IN
talker: mode 0 stream: 0 1fffffff2 0ffffffa913 0 0 dst_mac: ffffff91ffffffe0fffffff0 0ffffffbbffffffa6 vid: 2 SNE T:S=0001f200a9130000,A=91e0f000bba6,V=0002,Z=224,I=1,P=112,L=95 R=0001f200a913 VO/IN
EXCITING!
The error messages are no problem. The "unhandled .." is also ok.
There are 3 possible sources for the crackling:
1) less than 8 channels of the AVB stream that goes to the computer are connected inside the Motu Webapp.
2) The priority of the interrupt used for AVB (in proc/interrupts this is the
The driver takes the presentation time of the AVB stream coming from the device, adds an offset to it and uses this value as the presentation time of the AVB stream going out to the device. If this value is to small there will be crackling.
The offset is defined in kernel-module/alsa.c as
so, we actually reduce the presentation time by 375 microseconds, since that's the value my 16A can handle.
You may instead start with an offset of 0 and then lower the value until crackling starts.
You did mention that! Now I know what you meant by having all 8 channels connected to the computer, I had only 2/2. I'll correct this tonight and re-test.
Schönes Wochenende!
One last thing. Use buffersizes that are multiples of 6. If you use reaper, use buffersizes that are a multiple of 48.
Everything is working great once I increased the priority of the ethernet interrupts and adjusted the presentation offset to 250uS.
Thank you for all of your help!
Here is the output of make after pulling the changes: $ make mkdir -p kernel-module/igb && make subdir=kernel-module/igb -C kernel-module/igb make[1]: Entering directory '/home/supereb/avb4linux/kernel-module/igb' make -C /lib/modules/4.9.168-rt125-patched-pcm-motu-avb-64ch/build O=/lib/modules/4.9.168-rt125-patched-pcm-motu-avb-32ch/build SUBDIRS=/home/supereb/avb4linux/kernel-module/igb modules make[2]: Entering directory '/usr/src/linux-source-4.9' make[3]: Entering directory '/usr/src/linux-source-4.9' CC [M] /home/supereb/avb4linux/kernel-module/igb/igb_main.o /home/supereb/avb4linux/kernel-module/igb/igb_main.c: In function ‘igb_read’: /home/supereb/avb4linux/kernel-module/igb/igb_main.c:10321:2: warning: ignoring return value of ‘copy_to_user’, declared with attribute warn_unused_result [-Wunused-result] copy_to_user(buf, &adapter->last_event, sizeof(adapter->last_event)); ^
~~~~~~~~~~~~~~~ CC [M] /home/supereb/avb4linux/kernel-module/igb/e1000_82575.o CC [M] /home/supereb/avb4linux/kernel-module/igb/e1000_i210.o CC [M] /home/supereb/avb4linux/kernel-module/igb/e1000_mac.o CC [M] /home/supereb/avb4linux/kernel-module/igb/e1000_nvm.o CC [M] /home/supereb/avb4linux/kernel-module/igb/e1000_phy.o /home/supereb/avb4linux/kernel-module/igb/e1000_phy.c: In function ‘e1000_read_phy_reg_mphy’: /home/supereb/avb4linux/kernel-module/igb/e1000_phy.c:3294:2: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation] if (locked) ^~ /home/supereb/avb4linux/kernel-module/igb/e1000_phy.c:3296:3: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’ if (!ready) ^~ /home/supereb/avb4linux/kernel-module/igb/e1000_phy.c: In function ‘e1000_write_phy_reg_mphy’: /home/supereb/avb4linux/kernel-module/igb/e1000_phy.c:3359:2: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation] if (locked) ^~ /home/supereb/avb4linux/kernel-module/igb/e1000_phy.c:3361:3: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’ if (!ready) ^~ CC [M] /home/supereb/avb4linux/kernel-module/igb/e1000_manage.o CC [M] /home/supereb/avb4linux/kernel-module/igb/igb_param.o CC [M] /home/supereb/avb4linux/kernel-module/igb/igb_ethtool.o CC [M] /home/supereb/avb4linux/kernel-module/igb/kcompat.o CC [M] /home/supereb/avb4linux/kernel-module/igb/e1000_api.o CC [M] /home/supereb/avb4linux/kernel-module/igb/e1000_mbx.o CC [M] /home/supereb/avb4linux/kernel-module/igb/igb_vmdq.o CC [M] /home/supereb/avb4linux/kernel-module/igb/igb_procfs.o CC [M] /home/supereb/avb4linux/kernel-module/igb/igb_hwmon.o CC [M] /home/supereb/avb4linux/kernel-module/igb/igb_debugfs.o CC [M] /home/supereb/avb4linux/kernel-module/igb/alsa.o CC [M] /home/supereb/avb4linux/kernel-module/igb/avpdu.o CC [M] /home/supereb/avb4linux/kernel-module/igb/igb_ptp.o LD [M] /home/supereb/avb4linux/kernel-module/igb/igb_avb.o Building modules, stage 2. MODPOST 1 modules CC /home/supereb/avb4linux/kernel-module/igb/igb_avb.mod.o LD [M] /home/supereb/avb4linux/kernel-module/igb/igb_avb.ko make[3]: Leaving directory '/usr/src/linux-source-4.9' make[2]: Leaving directory '/usr/src/linux-source-4.9' make[1]: Leaving directory '/home/supereb/avb4linux/kernel-module/igb' mkdir -p daemons/mrpd && make subdir=daemons/mrpd -C daemons/mrpd make[1]: Entering directory '/home/supereb/avb4linux/daemons/mrpd' cc -c -I../common -O2 -Wall -Wextra -Wno-parentheses -ggdb -D_GNU_SOURCE -o mrpd.o mrpd.c cc -c -I../common -O2 -Wall -Wextra -Wno-parentheses -ggdb -D_GNU_SOURCE -o mvrp.o mvrp.c cc -c -I../common -O2 -Wall -Wextra -Wno-parentheses -ggdb -D_GNU_SOURCE -o msrp.o msrp.c cc -c -I../common -O2 -Wall -Wextra -Wno-parentheses -ggdb -D_GNU_SOURCE -o mmrp.o mmrp.c cc -c -I../common -O2 -Wall -Wextra -Wno-parentheses -ggdb -D_GNU_SOURCE -o mrp.o mrp.c cc mrpd.o mvrp.o msrp.o mmrp.o mrp.o ../common/parse.o ../common/eui64set.o -o mrpd /usr/bin/ld: ../common/parse.o: relocation R_X86_64_32 against.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: ../common/eui64set.o: relocation R_X86_64_32 against symbol
eui64set_compare' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: final link failed: Nonrepresentable section on output collect2: error: ld returned 1 exit status Makefile:21: recipe for target 'mrpd' failed make[1]: [mrpd] Error 1 make[1]: Leaving directory '/home/supereb/avb4linux/daemons/mrpd' Makefile:37: recipe for target 'mrpd' failed make: [mrpd] Error 2