Device disconnect
Flags a kernel report that a USB device on an allowlisted port left the companion computer's bus. It records that the device disconnected, not why it did and not what it did while gone.
On this page7
device_disconnectv1.0On by default- Detects
- The kernel reports that a USB device on the allowlist disconnected.
- Threshold
- Any disconnect on an allowlisted port
- Reads
- Companion journal
- Report wording
- Observed: device disconnected
What it reads#
The rule reads kernel messages in the companion journal, the entries journald marks with _TRANSPORT=kernel. It looks for the USB core's disconnect line on a port that is on the allowlist. In INC-0143 the mesh radio sits on port 1-2.3, and the kernel wrote two lines as it left:
15:41:02.604 kernel usb 1-2.3: USB disconnect, device number 5
15:41:02.611 kernel cdc_ether 1-2.3:1.0 usb0: unregister 'cdc_ether' usb-3610000.usb-2.3, CDC Ethernet DeviceThe first line is the USB bus: the device on port 1-2.3 is gone. The second is the network side, 7 ms later: the cdc_ether driver removed usb0, the network interface the radio provided.
The port path stays fixed, and the device number does not. When the radio came back, the kernel enumerated it on the same port as device number 6. The allowlist names ports, which survive a reconnect.
When it fires#
The threshold reads Any disconnect on an allowlisted port, so one line is enough. The event sits on the disconnect line, and in INC-0143 its values place it against the vibration finding before it:
| Value | Example from INC-0143 |
|---|---|
| Line | usb 1-2.3: USB disconnect, device number 5 |
| Time | 15:41:02.604 on the companion journal, ±6 ms |
| After the vibration onset | 1.69 s |
| After the vibration peak | 0.29 s |
| Where | Obstacle belt, Lane 2 |
The onset figure is 15:41:02.604 minus 15:41:00.912, when accel_vibration_metric first read above 24 m/s². The peak figure is measured from the 38.6 m/s² sample at 15:41:02.312.
Wording and evidence level#
Every finding reads Observed: device disconnected. The kernel line shows directly that the device left the bus, so the level is observed.
What the finding does not mean#
- The kernel records the disconnect, not why. The INC-0143 report puts it plainly: a loose connector, a cable fault and a radio reset look the same in this log.
- The device's own state is not observed. The mesh radio keeps no log Foxborne can read. Whether it rebooted, lost power or only lost the USB link during the 29.2 s it was gone is not observed.
- Close in time is not cause. The report files the disconnect as correlated with the vibration: 1.69 s apart against a ±46 ms bound, so the order holds. That vibration unseated the radio's connector stays a hypothesis until the connector is inspected.
- Vibration does not explain every case. A note on the same event records that UGV-06 dropped the same port on a hill climb with no vibration finding.
- A disconnect is not a lost link by itself. What it did to the link shows in other logs. In INC-0143
mavlink-routerdloggedError sending udp packet (Network is unreachable)186 ms later, and range control heard nothing for 31.0 s.
Threshold and overrides#
The threshold is the port allowlist, and the example dataset applies the rule to T4 vehicles. That fits the example's hardware: the T4's mesh radio is a USB Ethernet device, and the Q4's radio uses Ethernet. Change the threshold or the scope under Rules with Edit; the rule saves as device_disconnect 1.1.
Findings already produced keep version 1.0 and its threshold. See Thresholds, scopes and overrides.
Example finding#
In INC-0143, UGV-02 crossed the obstacle belt in Breach lane 2. The kernel logged the radio's USB disconnect at 15:41:02.604, and the Findings row labels it Radio USB disconnected. Range control heard nothing from 15:41:02.713 to 15:41:33.689, and PX4 held the vehicle at 15:41:14.293.
On the event page, USB and network lists the lines for the radio's port until the link came back, 29.198 s later:
15:41:31.802 kernel usb 1-2.3: new high-speed USB device number 6 using tegra-xusb
15:41:32.214 kernel cdc_ether 1-2.3:1.0 usb0: register 'cdc_ether' at usb-3610000.usb-2.3, CDC Ethernet Device, 02:1a:c7:40:5e:21
15:41:32.951 systemd-networkd usb0: Gained carrierSeen before, in the event page's Discussion drawer, shows the same port dropping on three other T4 runs in the previous 30 days. Those radios were back after 3.4 s, 1.9 s and 2.3 s, while the INC-0143 radio stayed gone for 29.2 s.
Related#
- vibration_high records the vibration that came before the INC-0143 disconnect.
- telemetry_gap shows what range control heard while the radio was gone.
- failsafe_entered shows how PX4 answered the lost ground link.
- Inspect an event describes the USB and network section.