You are not logged in.
Pages: 1
pre-req's:
Arch is fully updated on both machines
thunderbolt 3 cable I'm using is a functional cable, as I use it regularly for my razer external gpu box (it is razer's oem thunderbolt3 cable).
due to the newness of the 9500 model, it may be buggy firmware, but here is what I've put together...
I am attempting to setup a thunderbolt link between two computers (Dell XPS 15 9500, Dell Latitude 7480) using netctl. The most informative link I have been able to find regarding thunderbolt networking on linux is https://christian.kellner.me/2018/05/24 … -on-linux/ where the author explains the patches to NetworkManager.
I have created a special systemd unit on both machines,
My completed steps so far:
ensured `thunderbolt-net` module is loaded
enabled `netctl-ifplugd@thunderbolt0.service` special systemd service
copied `/etc/netcl/examples/ethernet-static` into `/etc/netctl/tb3_local`
altered the profile (see below list) -- I set the static ip to 192.168.3.11 on one machine, and 192.168.3.12 on the other
started the service on both machines
restarted both machines
again ensured `thunderbolt-net` was loaded on both machines
started `sudo dmesg -w` on both machines
plugged the cable into both machines
checked the status (see below) -- I get a ipv6 address assigned to the interface, as seen with `ip addr` but no ipv4
/etc/netctl/tb3_local
Description='A basic static ethernet connection'
Interface=thunderbolt0
Connection=ethernet
IP=static
Address=('192.168.3.11/24')
Gateway='192.168.3.1'
DNS=('192.168.3.1')`status` output looks essentially identical between both machines:
~ » sudo systemctl status netctl-ifplugd@thunderbolt0.service
● netctl-ifplugd@thunderbolt0.service - Automatic wired network connection using netctl profiles
Loaded: loaded (/usr/lib/systemd/system/netctl-ifplugd@.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-08-05 11:10:24 MDT; 46s ago
Docs: man:netctl.special(7)
Main PID: 703 (ifplugd)
Tasks: 1 (limit: 38197)
Memory: 2.0M
CGroup: /system.slice/system-netctl\x2difplugd.slice/netctl-ifplugd@thunderbolt0.service
└─703 /usr/bin/ifplugd -i thunderbolt0 -r /etc/ifplugd/netctl.action -bfIns
Aug 05 11:10:24 pelago systemd[1]: Started Automatic wired network connection using netctl profiles.
Aug 05 11:10:24 pelago ifplugd[703]: ifplugd 0.28 initializing.
Aug 05 11:10:24 pelago ifplugd[703]: Using interface thunderbolt0/02:F2:67:51:6A:6E with driver <thunderbolt-net> (version: 5.7.12-arch1-1)
Aug 05 11:10:24 pelago ifplugd[703]: Using detection mode: IFF_RUNNING
Aug 05 11:10:24 pelago ifplugd[703]: Initialization complete, link beat detected.
Aug 05 11:10:24 pelago ifplugd[703]: Executing '/etc/ifplugd/netctl.action thunderbolt0 up'.
Aug 05 11:10:24 pelago ifplugd[703]: client: <3>Could not start any suitable profile
Aug 05 11:10:24 pelago ifplugd[703]: Program execution failed, return value is 1.
Aug 05 11:10:24 pelago ifplugd[703]: Link beat lost.
Aug 05 11:10:26 pelago ifplugd[703]: Link beat detected.`ip addr` also looks essentially the same between the two machines:
~ » ip addr
...
3: thunderbolt0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 02:f2:67:51:6a:6e brd ff:ff:ff:ff:ff:ff
inet6 fe80::f2:67ff:fe51:6a6e/64 scope link
valid_lft forever preferred_lft foreverThis is the output of dmesg on the 9500, when I plug in the cable:
~ » sudo dmesg -w
...
[ 120.872530] pcieport 0000:00:1c.0: PME: Spurious native interrupt!
[ 126.068115] ucsi_acpi USBC000:00: con1: failed to register partner alternate modes
[ 126.878161] usb usb4-port1: Cannot enable. Maybe the USB cable is bad?
[ 127.163515] audit: type=1130 audit(1596651087.908:53): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=netctl-ifplugd@thunderbolt0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 128.332757] IPv6: ADDRCONF(NETDEV_CHANGE): thunderbolt0: link becomes ready
[ 130.938159] usb usb4-port1: Cannot enable. Maybe the USB cable is bad?
[ 130.938256] usb usb4-port1: attempt power cycleHere is the output from the 7480:
~ » sudo dmesg -w
...
[ 108.031378] ACPI BIOS Error (bug): Failure creating named object [\_GPE.XTBT.SPRT], AE_ALREADY_EXISTS (20200326/dswload2-326)
[ 108.031404] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20200326/psobject-220)
[ 108.031412] ACPI Error: Aborting method \_GPE.XTBT due to previous error (AE_ALREADY_EXISTS) (20200326/psparse-529)
[ 108.031424] ACPI Error: Aborting method \_GPE.XTBT due to previous error (AE_ALREADY_EXISTS) (20200326/psparse-529)
[ 108.032187] ACPI Error: Aborting method \_GPE._E42 due to previous error (AE_ALREADY_EXISTS) (20200326/psparse-529)
[ 108.032199] ACPI: Marking method _E42 as Serialized because of AE_ALREADY_EXISTS error
[ 108.032209] ACPI Error: AE_ALREADY_EXISTS, while evaluating GPE method [_E42] (20200326/evgpe-511)
[ 108.095113] pci 0000:03:00.0: [8086:15da] type 01 class 0x060400
[ 108.095162] pci 0000:03:00.0: enabling Extended Tags
[ 108.095219] pci 0000:03:00.0: supports D1 D2
[ 108.095219] pci 0000:03:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 108.095533] pci 0000:04:00.0: [8086:15da] type 01 class 0x060400
[ 108.095592] pci 0000:04:00.0: enabling Extended Tags
[ 108.095653] pci 0000:04:00.0: supports D1 D2
[ 108.095654] pci 0000:04:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 108.095741] pci 0000:04:01.0: [8086:15da] type 01 class 0x060400
[ 108.095792] pci 0000:04:01.0: enabling Extended Tags
[ 108.095849] pci 0000:04:01.0: supports D1 D2
[ 108.095850] pci 0000:04:01.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 108.095922] pci 0000:04:02.0: [8086:15da] type 01 class 0x060400
[ 108.095974] pci 0000:04:02.0: enabling Extended Tags
[ 108.096032] pci 0000:04:02.0: supports D1 D2
[ 108.096033] pci 0000:04:02.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 108.096135] pci 0000:03:00.0: PCI bridge to [bus 04-3b]
[ 108.096143] pci 0000:03:00.0: bridge window [mem 0xd4000000-0xea0fffff]
[ 108.096149] pci 0000:03:00.0: bridge window [mem 0xb0000000-0xd1ffffff 64bit pref]
[ 108.096207] pci 0000:05:00.0: [8086:15d9] type 00 class 0x088000
[ 108.096227] pci 0000:05:00.0: reg 0x10: [mem 0xea000000-0xea03ffff]
[ 108.096239] pci 0000:05:00.0: reg 0x14: [mem 0xea040000-0xea040fff]
[ 108.096303] pci 0000:05:00.0: enabling Extended Tags
[ 108.096396] pci 0000:05:00.0: supports D1 D2
[ 108.096397] pci 0000:05:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 108.096532] pci 0000:04:00.0: PCI bridge to [bus 05]
[ 108.096543] pci 0000:04:00.0: bridge window [mem 0xea000000-0xea0fffff]
[ 108.096612] pci 0000:04:01.0: PCI bridge to [bus 06-3a]
[ 108.096620] pci 0000:04:01.0: bridge window [mem 0xd4000000-0xe9efffff]
[ 108.096626] pci 0000:04:01.0: bridge window [mem 0xb0000000-0xd1ffffff 64bit pref]
[ 108.096689] pci 0000:04:02.0: PCI bridge to [bus 3b]
[ 108.096697] pci 0000:04:02.0: bridge window [mem 0xe9f00000-0xe9ffffff]
[ 108.096725] pci_bus 0000:04: Allocating resources
[ 108.096741] pci 0000:04:01.0: bridge window [io 0x1000-0x0fff] to [bus 06-3a] add_size 1000
[ 108.096744] pci 0000:03:00.0: bridge window [io 0x1000-0x0fff] to [bus 04-3b] add_size 2000
[ 108.096747] pci 0000:03:00.0: BAR 13: assigned [io 0x2000-0x3fff]
[ 108.096749] pci 0000:04:01.0: BAR 13: assigned [io 0x2000-0x2fff]
[ 108.096750] pci 0000:04:00.0: PCI bridge to [bus 05]
[ 108.096755] pci 0000:04:00.0: bridge window [mem 0xea000000-0xea0fffff]
[ 108.096764] pci 0000:04:01.0: PCI bridge to [bus 06-3a]
[ 108.096766] pci 0000:04:01.0: bridge window [io 0x2000-0x2fff]
[ 108.096771] pci 0000:04:01.0: bridge window [mem 0xd4000000-0xe9efffff]
[ 108.096774] pci 0000:04:01.0: bridge window [mem 0xb0000000-0xd1ffffff 64bit pref]
[ 108.096780] pci 0000:04:02.0: PCI bridge to [bus 3b]
[ 108.096785] pci 0000:04:02.0: bridge window [mem 0xe9f00000-0xe9ffffff]
[ 108.096793] pci 0000:03:00.0: PCI bridge to [bus 04-3b]
[ 108.096795] pci 0000:03:00.0: bridge window [io 0x2000-0x3fff]
[ 108.096800] pci 0000:03:00.0: bridge window [mem 0xd4000000-0xea0fffff]
[ 108.096804] pci 0000:03:00.0: bridge window [mem 0xb0000000-0xd1ffffff 64bit pref]
[ 108.096942] pcieport 0000:03:00.0: enabling device (0006 -> 0007)
[ 108.097227] pcieport 0000:04:01.0: enabling device (0006 -> 0007)
[ 112.659558] dell_wmi: Unknown WMI event type 0x12
[ 112.659560] dell_wmi: Unknown WMI event type 0x12
[ 113.154112] pci_bus 0000:04: Allocating resources
[ 114.169650] audit: type=1130 audit(1596651082.682:56): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=netctl-ifplugd@thunderbolt0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 115.186666] IPv6: ADDRCONF(NETDEV_CHANGE): thunderbolt0: link becomes readyoh, and here is `ip link` after plugging in the cable, the `thunderbolt0` interface is essentially the same on both machines (obviously diff MAC addr):
~ » ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: wlp0s20f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
link/ether cc:f9:e4:9e:8f:72 brd ff:ff:ff:ff:ff:ff
4: thunderbolt0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 02:f2:67:51:6a:6e brd ff:ff:ff:ff:ff:ffthanks in advance
Last edited by bbus (2020-08-19 14:47:23)
Offline
Here is an update, in case someone finds this in the future.
I installed Windows 10 on both laptops, and was able to successfully transfer files over the thunderbolt network. It was so fast. Over 1GB/s. So I know that my cable is good, and also that the firmware is not the problem. I also tried it with Ubuntu, and was also able to successfully connect them to each other, and transfer files, over the thunderbolt0 network interface and the ip addresses assigned to those interfaces by NetworkManager.
When I set up peer-to-peer ethernet connections (e.g. the Latitude 7480 has an ethernet port, and I take two of those that my work has and directly connect them to each other with an ethernet cable) I only have to assign static IP addresses and they can talk to each other. So I'm confused as to what I'm missing. I am under the impression that the thunerbolt_net driver should essentially allow the thunderbolt0 interface to be treated the same as my enp* interface gets treated. Maybe netctl doesn't automatically hook in, or maybe I still have a configuration problem. Not sure.
Offline
Aug 05 11:10:24 pelago systemd[1]: Started Automatic wired network connection using netctl profiles. Aug 05 11:10:24 pelago ifplugd[703]: ifplugd 0.28 initializing. Aug 05 11:10:24 pelago ifplugd[703]: Using interface thunderbolt0/02:F2:67:51:6A:6E with driver <thunderbolt-net> (version: 5.7.12-arch1-1) Aug 05 11:10:24 pelago ifplugd[703]: Using detection mode: IFF_RUNNING Aug 05 11:10:24 pelago ifplugd[703]: Initialization complete, link beat detected. Aug 05 11:10:24 pelago ifplugd[703]: Executing '/etc/ifplugd/netctl.action thunderbolt0 up'. Aug 05 11:10:24 pelago ifplugd[703]: client: <3>Could not start any suitable profile Aug 05 11:10:24 pelago ifplugd[703]: Program execution failed, return value is 1. Aug 05 11:10:24 pelago ifplugd[703]: Link beat lost. Aug 05 11:10:26 pelago ifplugd[703]: Link beat detected.
By default only wireless and DHCP profiles are considered for auto connections.
From netctl special systemd units:
To automatically start a static IP profile the option ExcludeAuto=no needs to be set in it.
--
saint_abroad
Offline
:facepalm:
oh sheesh, you were right. I've read that at least 10 times, but apparently wasn't paying close enough attention to that sentence. Thank you!
Now, I'm wondering if, for a connection like this, it is easier/better to not keep an automatic profile, and only start the profile on the command line when I need. :musing:
Offline
Pages: 1