[solved]Supermicro A1SRi-2758F serial port and NTP
-
Just installed pfSense 2.2.2 on a Supermicro A1SRi-2758F and noticed that NTP is not able to access the receiver through the serial port. No data was coming in at all, a simple "cat /dev/cuau0" showed nothing.
I had a similar issue on a Jetway NF99 and a Intel D2500 motherboard on pfSense 2.1, which was fixed by pfSense 2.2.
Now the very same issue is present on A1SRi-2758F with 2.2.2.
In short, the fix is:```
[2.2.2-RELEASE][root@yourpfsense.local]/root: /etc/rc.conf_mount_rw
[2.2.2-RELEASE][root@yourpfsense.local]/root: echo 'debug.acpi.avoid="_SB_.PCI0.SBRG.UAR1 _SB_.PCI0.SBRG.UAR2"' >> /boot/loader.conf.local
[2.2.2-RELEASE][root@yourpfsense.local]/root: rebootExplained details below: Seems that the cause is not ACPI's fault, but rather the information provided by BIOS is inaccurate, and FreeBSD misunderstands where to attach the ports. The system attached the serial ports to ACPI rather than ISA. Disabling ACPI is often not feasible on modern x64 hardware and not recommended. Luckily you can disable ACPI only for the problematic serial port (uart) device. The device will not attach to acpi, but to isa instead. 1) Confirm your device is attached to acpi at the moment:``` [2.2.2-RELEASE][root@yourpfsense.local]/root: dmesg | egrep "uart|sio|tty|cua" FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512 ioapic0 <version 2.0=""> irqs 0-23 on motherboard hpet0: <high precision="" event="" timer=""> iomem 0xfed00000-0xfed003ff on acpi0 igb0: <intel(r) 1000="" pro="" network="" connection="" version="" -="" 2.4.0=""> port 0xe080-0xe09f mem 0xdf260000-0xdf27ffff,0xdf30c000-0xdf30ffff irq 20 at device 20.0 on pci0 igb1: <intel(r) 1000="" pro="" network="" connection="" version="" -="" 2.4.0=""> port 0xe060-0xe07f mem 0xdf240000-0xdf25ffff,0xdf308000-0xdf30bfff irq 21 at device 20.1 on pci0 igb2: <intel(r) 1000="" pro="" network="" connection="" version="" -="" 2.4.0=""> port 0xe040-0xe05f mem 0xdf220000-0xdf23ffff,0xdf304000-0xdf307fff irq 22 at device 20.2 on pci0 igb3: <intel(r) 1000="" pro="" network="" connection="" version="" -="" 2.4.0=""> port 0xe020-0xe03f mem 0xdf200000-0xdf21ffff,0xdf300000-0xdf303fff irq 23 at device 20.3 on pci0 usbus1: EHCI version 1.0 uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 on acpi0 ugen0.2: <american power="" conversion=""> at usbus0 [2.2.2-RELEASE][root@yourpfsense.local]/root: dmesg | grep uart uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 on acpi0</american></intel(r)></intel(r)></intel(r)></intel(r)></high></version>
- Identify the location of the device in the ACPI namespace:```
[2.2.2-RELEASE][root@yourpfsense.local]/root: sysctl -a | grep 'uart.0'
dev.uart.0.%desc: 16550 or compatible
dev.uart.0.%driver: uart
dev.uart.0.%location: handle=_SB_.PCI0.SBRG.UAR1
dev.uart.0.%pnpinfo: _HID=PNP0501 _UID=0
dev.uart.0.%parent: acpi0
[2.2.2-RELEASE][root@yourpfsense.local]/root: sysctl -a | grep 'uart.1'
dev.uart.1.%desc: 16550 or compatible
dev.uart.1.%driver: uart
dev.uart.1.%location: handle=_SB_.PCI0.SBRG.UAR2
dev.uart.1.%pnpinfo: _HID=PNP0501 _UID=1
dev.uart.1.%parent: acpi03) Disable this location in ACPI:``` [2.2.2-RELEASE][root@yourpfsense.local]/root: /etc/rc.conf_mount_rw [2.2.2-RELEASE][root@yourpfsense.local]/root: echo 'debug.acpi.avoid="\_SB_.PCI0.SBRG.UAR1 \_SB_.PCI0.SBRG.UAR2"' >> /boot/loader.conf.local [2.2.2-RELEASE][root@yourpfsense.local]/root: reboot
- After reboot confirm your device is not attached to acpi anymore:```
[2.2.2-RELEASE][root@yourpfsense.local]/root: dmesg | grep uart
uart0: <16550 or compatible> at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
uart1: <16550 or compatible> at port 0x2f8-0x2ff irq 3 on isa0
Note: You only need to run the command "/etc/rc.conf_mount_rw" if you run NanoBSD version of pfSense. I suppose that all the sister models are affected by this: A1SRi-2558F A1SAi-2750F A1SAi-2550F Also I think other serial port related stuff wouldn't work without this. But this is just a wild guess…
- Identify the location of the device in the ACPI namespace:```
-
So IIUC, you have only used the A1SRi-2758F with 2.2.2, so you don't know if this is a change since 2.2 or 2.0.
I wonder if there are kernel config options or pfSense patches (that may have been missed) that affect this? As you mention in the other thread, machines that were affected by this during 2.2ALPHA were not affected by the 2.2-RELEASE release kernel. Would be interesting to know if this board needed the workaround with 2.2-RELEASE.
-
Does it really matter? It's always recommended to use the latest version…
All I can say is that Jetway NF99 is not affected in v2.2.1 (didn't upgrade the jetway box to v2.2.2 yet)
But looking at the changelogs of pfSense between 2.2 and 2.2.2, I didn't notice any change related to this (I think they use the same FreeBSD base, only targeted OS patches have been merged). -
Does it really matter?
It can help distinguish between a config / build option changing at ESF versus something reverting in FreeBSD codebase. As would knowing if your NF99 shows the problem when you upgrade to 2.2.2
It's great you've found a workaround but it's better to not need it. I'll try to look around and see if it's still a known FreeBSD issue.
-
As would knowing if your NF99 shows the problem when you upgrade to 2.2.2
That is going to be checked when that box goes back into place.
-
Interesting. Isn't this the same motherboard that ESF uses on their high end firewall C2758?
-
Their devices come pre-loaded with pfSense, which may contain hardware-specific optimizations made by the ESF team. It may be very well possible that a similar patch is already included in that appliance. The only way to know this is to buy one.
Public pfSense downloads are "generic" for all hardware. -
Forgot to mention that I'm seeing this with the latest bios currently available from Supermicro (A1SAi5.109, seen as v1.1 build time 01/09/2015 by the BMC console). Did not test with the previous factory-shipped bios version (which was one earlier).
-
Their devices come pre-loaded with pfSense, which may contain hardware-specific optimizations made by the ESF team.
Yes, I read about those tunings but I don't know if that's the case here.
How should users make updates to those units without breaking such optimizations? What about a re-install?This is meant as a question, NOT a rant! I encourage everybody to buy hardware from Netgate/ESF's store if possible.
An answer like "there are unpublished update URLs for these devices" would be completely fine with me. -
Pretty much exactly that^. ;)
The factory installs use a different update URL to ensure they are getting the correctly customised updates and a special USB memstick image is available via the support portal for re-installing.
That said I don't beleive that we apply a tweak such as this for the C2758. I have dealt with a few cases where people had accidentally upgraded to the vanilla image and the console was unaffected.Steve