Hi all, I've got an Advantech UNO-1150G industrial PC running OpenBSD 6.1 acting as an ADSL router, public NTP server and DNS server. dmesg info:
> OpenBSD 6.1 (GENERIC) #291: Sat Apr 1 13:49:08 MDT 2017 > dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC > cpu0: Geode(TM) Integrated Processor by AMD PCS ("AuthenticAMD" 586-class) > 499 MHz > cpu0: FPU,DE,PSE,TSC,MSR,CX8,SEP,PGE,CMOV,CFLUSH,MMX,MMXX,3DNOW2,3DNOW > real mem = 259272704 (247MB) > avail mem = 241598464 (230MB) > mpath0 at root > scsibus0 at mpath0: 256 targets > mainbus0 at root > bios0 at mainbus0: date 09/15/10, BIOS32 rev. 0 @ 0xfaa00, SMBIOS rev. 2.2 @ > 0xf0000 (28 entries) > bios0: vendor Phoenix Technologies, LTD version "6.00 PG" date 09/15/2010 > acpi at bios0 function 0x0 not configured > apm0 at bios0: Power Management spec V1.2 (slowidle) > pcibios0 at bios0: rev 2.1 @ 0xf0000/0xdfb4 > pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xfded0/224 (12 entries) > pcibios0: bad IRQ table checksum > pcibios0: PCI BIOS has 12 Interrupt Routing table entries > pcibios0: PCI Exclusive IRQs: 5 7 10 11 > pcibios0: no compatible PCI ICU found > pcibios0: Warning, unable to fix up PCI interrupt routing > pcibios0: PCI bus #0 is the last bus > bios0: ROM list: 0xc0000/0x8000 0xc8000/0xa800 0xef000/0x1000! > cpu0 at mainbus0: (uniprocessor) > mtrr: K6-family MTRR support (2 registers) > amdmsr0 at mainbus0 > pci0 at mainbus0 bus 0: configuration mode 1 (bios) > pchb0 at pci0 dev 1 function 0 "AMD Geode LX" rev 0x33 > vga1 at pci0 dev 1 function 1 "AMD Geode LX Video" rev 0x00 > wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation) > wsdisplay0: screen 1-5 added (80x25, vt100 emulation) > glxsb0 at pci0 dev 1 function 2 "AMD Geode LX Crypto" rev 0x00: RNG AES > unknown vendor 0x13fe product 0xa102 (class communications subclass > multi-port serial, rev 0x01) at pci0 dev 11 function 0 not configured > unknown vendor 0x13fe product 0xf100 (class communications subclass > multi-port serial, rev 0x01) at pci0 dev 11 function 1 not configured > rl0 at pci0 dev 12 function 0 "Realtek 8139" rev 0x10: irq 11, address > 00:d0:c9:e0:f4:75 > rlphy0 at rl0 phy 0: RTL internal PHY > rl1 at pci0 dev 13 function 0 "Realtek 8139" rev 0x10: irq 10, address > 00:d0:c9:e0:f4:74 > rlphy1 at rl1 phy 0: RTL internal PHY > glxpcib0 at pci0 dev 15 function 0 "AMD CS5536 ISA" rev 0x03: rev 3, 32-bit > 3579545Hz timer, watchdog, gpio, i2c > gpio0 at glxpcib0: 32 pins > iic0 at glxpcib0 > maxtmp0 at iic0 addr 0x4c: lm86 > pciide0 at pci0 dev 15 function 2 "AMD CS5536 IDE" rev 0x01: DMA, channel 0 > wired to compatibility, channel 1 wired to compatibility > wd0 at pciide0 channel 0 drive 0: <CF Card> > wd0: 1-sector PIO, LBA48, 7623MB, 15613920 sectors > wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2 > pciide0: channel 1 ignored (disabled) > auglx0 at pci0 dev 15 function 3 "AMD CS5536 Audio" rev 0x01: irq 7, CS5536 > AC97 > ac97: codec id 0x414c4760 (Avance Logic ALC655 rev 0) > audio0 at auglx0 > ohci0 at pci0 dev 15 function 4 "AMD CS5536 USB" rev 0x02: irq 10, version > 1.0, legacy support > ehci0 at pci0 dev 15 function 5 "AMD CS5536 USB" rev 0x02: irq 10 > usb0 at ehci0: USB revision 2.0 > uhub0 at usb0 configuration 1 interface 0 "AMD EHCI root hub" rev 2.00/1.00 > addr 1 > isa0 at glxpcib0 > isadma0 at isa0 > com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo > com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo > pckbc0 at isa0 port 0x60/5 irq 1 irq 12 > pckbd0 at pckbc0 (kbd slot) > wskbd0 at pckbd0: console keyboard, using wsdisplay0 > pcppi0 at isa0 port 0x61 > spkr0 at pcppi0 > wbsio0 at isa0 port 0x2e/2: W83627HF rev 0x41 > lm1 at wbsio0 port 0x290/8: W83627HF > npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16 > usb1 at ohci0: USB revision 1.0 > uhub1 at usb1 configuration 1 interface 0 "AMD OHCI root hub" rev 1.00/1.00 > addr 1 > vscsi0 at root > scsibus1 at vscsi0: 256 targets > softraid0 at root > scsibus2 at softraid0: 256 targets > root on wd0a (0d087b092632bbb5.a) swap on wd0b dump on wd0b > pppoe0: received unexpected PADO > pppoe0: received unexpected PADO > pppoe0: received unexpected PADO For the most part, this machine runs fine, however intermittently, the machine loses contact with the switch to which it's connected to. The rack has 5 servers, a ARM-based PC and the switch, all of which run from a pair of 12V 105Ah AGM batteries, charged from mains power and solar. Switch is a Linksys LGS326-AU. No other devices plugged into this switch have connectivity issues. The port the industrial PC is connected to is a plain access port with no VLAN tagging, trunking or other funny stuff (although all of the above get used elsewhere in the network). When the link drops out, there's nothing in `dmesg`. If I tether my phone and hit the machine via SSH, I find it is unable to ping anything on the internal network via IPv4 or IPv6, or vice versa. Very occasionally, I also get issues with the ADSL side. The machine in a past life ran Ubuntu 12.04 LTS quite reliably for many years until it was decided that its meagre CPU couldn't quite keep up with the needs of the energy management system it was collecting data for. After that, I had it running Gentoo with, mixed results (similar problems, but worse), before moving to OpenBSD which has been comparatively stable. Initially I had the server plugged in via a cross-over cable to the switch (sometimes they are hard to tell apart), which made matters slightly worse causing the card to negotiate half-duplex. Swapping that to a straight-through cable helped a lot, so I expect the problem is at the Ethernet level, but I'm a bit stuck as to how to debug it further. Is there some sort of debugging flag I can turn on in the kernel to log more detail about what's going on with rl0 when the loss of connectivity is being experienced? -- Stuart Longland (aka Redhatter, VK4MSL) I haven't lost my mind... ...it's backed up on a tape somewhere.