You are not logged in.

#1 2021-03-13 20:17:21

klu93
Member
Registered: 2021-03-13
Posts: 4

[SOLVED] HDMI Video Output Works But No Audio (Nvidia GPU)

Hi, I'm running a PC I built that's running a GTX 1080 with Ryzen 3600 and MSI B550 motherboard. I've hooked my PC up to my projector through the gpu's HDMI port, and video output works fine. However, even though the Nvidia HDMI audio drivers are detected, Pulseaudio says that the HDMI ports are all unavailable. Thus, I have had no success getting audio through the HDMI. I know this is not an issue with the projector, since when I plug in my laptop, which is running Linux Mint, then HDMI sound works fine, and is connected as 'EPSON PJ'. Here's what I get from pacmd list-cards from my pc:

klu@klu-gaming ~]$ pacmd list-cards
3 card(s) available.
    index: 0
	name: <alsa_card.pci-0000_2b_00.1>
	driver: <module-alsa-card.c>
	owner module: 6
	properties:
		alsa.card = "0"
		alsa.card_name = "HDA NVidia"
		alsa.long_card_name = "HDA NVidia at 0xfc080000 irq 89"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:2b:00.1"
		sysfs.path = "/devices/pci0000:00/0000:00:03.1/0000:2b:00.1/sound/card0"
		device.bus = "pci"
		device.vendor.id = "10de"
		device.vendor.name = "NVIDIA Corporation"
		device.product.id = "10f0"
		device.product.name = "GP104 High Definition Audio Controller"
		device.string = "0"
		device.description = "GP104 High Definition Audio Controller"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	profiles:
		output:hdmi-stereo: Digital Stereo (HDMI) Output (priority 5900, available: no)
		output:hdmi-surround: Digital Surround 5.1 (HDMI) Output (priority 800, available: no)
		output:hdmi-surround71: Digital Surround 7.1 (HDMI) Output (priority 800, available: no)
		output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) Output (priority 5700, available: no)
		output:hdmi-surround-extra1: Digital Surround 5.1 (HDMI 2) Output (priority 600, available: no)
		output:hdmi-surround71-extra1: Digital Surround 7.1 (HDMI 2) Output (priority 600, available: no)
		output:hdmi-stereo-extra2: Digital Stereo (HDMI 3) Output (priority 5700, available: no)
		output:hdmi-stereo-extra3: Digital Stereo (HDMI 4) Output (priority 5700, available: no)
		output:hdmi-surround-extra3: Digital Surround 5.1 (HDMI 4) Output (priority 600, available: no)
		output:hdmi-surround71-extra3: Digital Surround 7.1 (HDMI 4) Output (priority 600, available: no)
		output:hdmi-stereo-extra4: Digital Stereo (HDMI 5) Output (priority 5700, available: no)
		output:hdmi-surround-extra4: Digital Surround 5.1 (HDMI 5) Output (priority 600, available: no)
		output:hdmi-surround71-extra4: Digital Surround 7.1 (HDMI 5) Output (priority 600, available: no)
		output:hdmi-stereo-extra5: Digital Stereo (HDMI 6) Output (priority 5700, available: no)
		output:hdmi-surround-extra5: Digital Surround 5.1 (HDMI 6) Output (priority 600, available: no)
		output:hdmi-surround71-extra5: Digital Surround 7.1 (HDMI 6) Output (priority 600, available: no)
		output:hdmi-stereo-extra6: Digital Stereo (HDMI 7) Output (priority 5700, available: no)
		output:hdmi-surround-extra6: Digital Surround 5.1 (HDMI 7) Output (priority 600, available: no)
		output:hdmi-surround71-extra6: Digital Surround 7.1 (HDMI 7) Output (priority 600, available: no)
		off: Off (priority 0, available: unknown)
	active profile: <off>
	ports:
		hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: no)
			properties:
				device.icon_name = "video-display"
		hdmi-output-1: HDMI / DisplayPort 2 (priority 5800, latency offset 0 usec, available: no)
			properties:
				device.icon_name = "video-display"
		hdmi-output-2: HDMI / DisplayPort 3 (priority 5700, latency offset 0 usec, available: no)
			properties:
				device.icon_name = "video-display"
		hdmi-output-3: HDMI / DisplayPort 4 (priority 5600, latency offset 0 usec, available: no)
			properties:
				device.icon_name = "video-display"
		hdmi-output-4: HDMI / DisplayPort 5 (priority 5500, latency offset 0 usec, available: no)
			properties:
				device.icon_name = "video-display"
		hdmi-output-5: HDMI / DisplayPort 6 (priority 5400, latency offset 0 usec, available: no)
			properties:
				device.icon_name = "video-display"
		hdmi-output-6: HDMI / DisplayPort 7 (priority 5300, latency offset 0 usec, available: no)
			properties:
				device.icon_name = "video-display"

from xrandr, showing that the HDMI video is recognized:

HDMI-0 connected (normal left inverted right x axis y axis)
   1920x1080     60.00 +  59.94    50.00    29.97    25.00    23.98    60.05    60.00    50.04
   1440x576      50.00
   1440x480      59.94
   1280x720      60.00    59.94    50.00
   720x576       50.00
   720x480       59.94
   640x480       59.94    59.93

From what I've found online, the typical issue is that the Nvidia GPU isn't recognized as a sound device, but my problem is that it is recognized, but Pulseaudio doesn't think it's plugged in. Haven't been able to find any solutions for this.

Last edited by klu93 (2021-03-26 18:10:38)

Offline

#2 2021-03-14 17:53:19

klu93
Member
Registered: 2021-03-13
Posts: 4

Re: [SOLVED] HDMI Video Output Works But No Audio (Nvidia GPU)

So been digging around, and found something interesting. The HDMI audio from the PC is connected to an HDMI switch (which is connected to my amp) that then connects to the projector. When the projector is turned off, then the HDMI is detected by Pulseaudio, and I can play audio through the HDMI:

edid-decode (hex):

00 ff ff ff ff ff ff 00 4e e8 01 10 01 00 00 00
1c 1a 01 03 80 52 2e 78 0a 0d c9 a0 57 47 98 27
12 48 4c 21 09 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 02 3a 80 18 71 38 2d 40 58 2c
45 00 c4 8e 21 00 00 1e 01 1d 00 72 51 d0 1e 20
6e 28 55 00 c4 8e 21 00 00 1e 00 00 00 fd 00 17
78 0f 7e 17 00 0a 20 20 20 20 20 20 00 00 00 fc
00 53 57 49 54 43 48 0a 20 20 20 20 20 20 01 0d

02 03 40 72 55 90 84 03 02 0e 0f 07 23 24 05 94
13 12 11 1d 1e 20 21 22 01 1f 38 09 7f 07 0d 7f
07 0f 7f 07 15 07 50 57 06 00 3d 07 c0 67 7f 00
5f 7f 01 83 4f 00 00 68 03 0c 00 41 00 b8 2d 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f3

----------------

Block 0, Base EDID:
  EDID Structure Version & Revision: 1.3
  Vendor & Product Identification:
    Manufacturer: SWH
    Model: 4097
    Serial Number: 1
    Made in: week 28 of 2016
  Basic Display Parameters & Features:
    Digital display
    Maximum image size: 82 cm x 46 cm
    Gamma: 2.20
    RGB color display
    First detailed timing is the preferred timing
  Color Characteristics:
    Red  : 0.6250, 0.3398
    Green: 0.2802, 0.5947
    Blue : 0.1552, 0.0703
    White: 0.2832, 0.2978
  Established Timings I & II:
    DMT 0x04:   640x480    59.940 Hz   4:3    31.469 kHz   25.175 MHz
    DMT 0x09:   800x600    60.317 Hz   4:3    37.879 kHz   40.000 MHz
    DMT 0x10:  1024x768    60.004 Hz   4:3    48.363 kHz   65.000 MHz
    DMT 0x24:  1280x1024   75.025 Hz   5:4    79.976 kHz  135.000 MHz
  Standard Timings: none
  Detailed Timing Descriptors:
    DTD 1:  1920x1080   60.000 Hz  16:9    67.500 kHz  148.500 MHz (708 mm x 398 mm)
                 Hfront   88 Hsync  44 Hback 148 Hpol P
                 Vfront    4 Vsync   5 Vback  36 Vpol P
    DTD 2:  1280x720    60.000 Hz  16:9    45.000 kHz   74.250 MHz (708 mm x 398 mm)
                 Hfront  110 Hsync  40 Hback 220 Hpol P
                 Vfront    5 Vsync   5 Vback  20 Vpol P
  Display Range Limits:
    Monitor ranges (GTF): 23-120 Hz V, 15-126 kHz H, max dotclock 230 MHz
    Display Product Name: 'SWITCH'
  Extension blocks: 1
Checksum: 0x0d

----------------

Block 1, CTA-861 Extension Block:
  Revision: 3
  Basic audio support
  Supports YCbCr 4:4:4
  Supports YCbCr 4:2:2
  Native detailed modes: 2
  Video Data Block:
    VIC  16:  1920x1080   60.000 Hz  16:9    67.500 kHz  148.500 MHz (native)
    VIC   4:  1280x720    60.000 Hz  16:9    45.000 kHz   74.250 MHz (native)
    VIC   3:   720x480    59.940 Hz  16:9    31.469 kHz   27.000 MHz
    VIC   2:   720x480    59.940 Hz   4:3    31.469 kHz   27.000 MHz
    VIC  14:  1440x480    59.940 Hz   4:3    31.469 kHz   54.000 MHz
    VIC  15:  1440x480    59.940 Hz  16:9    31.469 kHz   54.000 MHz
    VIC   7:  1440x480i   59.940 Hz  16:9    15.734 kHz   27.000 MHz
    VIC  35:  2880x480    59.940 Hz   4:3    31.469 kHz  108.000 MHz
    VIC  36:  2880x480    59.940 Hz  16:9    31.469 kHz  108.000 MHz
    VIC   5:  1920x1080i  60.000 Hz  16:9    33.750 kHz   74.250 MHz
    VIC  20:  1920x1080i  50.000 Hz  16:9    28.125 kHz   74.250 MHz (native)
    VIC  19:  1280x720    50.000 Hz  16:9    37.500 kHz   74.250 MHz
    VIC  18:   720x576    50.000 Hz  16:9    31.250 kHz   27.000 MHz
    VIC  17:   720x576    50.000 Hz   4:3    31.250 kHz   27.000 MHz
    VIC  29:  1440x576    50.000 Hz   4:3    31.250 kHz   54.000 MHz
    VIC  30:  1440x576    50.000 Hz  16:9    31.250 kHz   54.000 MHz
    VIC  32:  1920x1080   24.000 Hz  16:9    27.000 kHz   74.250 MHz
    VIC  33:  1920x1080   25.000 Hz  16:9    28.125 kHz   74.250 MHz
    VIC  34:  1920x1080   30.000 Hz  16:9    33.750 kHz   74.250 MHz
    VIC   1:   640x480    59.940 Hz   4:3    31.469 kHz   25.175 MHz
    VIC  31:  1920x1080   50.000 Hz  16:9    56.250 kHz  148.500 MHz
  Audio Data Block:
    Linear PCM:
      Max channels: 2
      Supported sample rates (kHz): 192 176.4 96 88.2 48 44.1 32
      Supported sample sizes (bits): 24 20 16
    Linear PCM:
      Max channels: 6
      Supported sample rates (kHz): 192 176.4 96 88.2 48 44.1 32
      Supported sample sizes (bits): 24 20 16
    Linear PCM:
      Max channels: 8
      Supported sample rates (kHz): 192 176.4 96 88.2 48 44.1 32
      Supported sample sizes (bits): 24 20 16
    AC-3:
      Max channels: 6
      Supported sample rates (kHz): 48 44.1 32
      Maximum bit rate: 640 kb/s
    Enhanced AC-3 (DD+):
      Max channels: 8
      Supported sample rates (kHz): 48 44.1
    DTS:
      Max channels: 6
      Supported sample rates (kHz): 48 44.1 32
      Maximum bit rate: 1536 kb/s
    MAT (MLP):
      Max channels: 8
      Supported sample rates (kHz): 192 176.4 96 88.2 48 44.1 32
      Supports only Dolby TrueHD
    DTS-HD:
      Max channels: 8
      Supported sample rates (kHz): 192 176.4 96 88.2 48 44.1 32
      Audio Format Code dependent value: 0x01
  Speaker Allocation Data Block:
    FL/FR - Front Left/Right
    LFE1 - Low Frequency Effects 1
    FC - Front Center
    BL/BR - Back Left/Right
    RLC/RRC - Rear Left/Right of Center (Deprecated)
  Vendor-Specific Data Block (HDMI), OUI 00-0C-03:
    Source physical address: 4.1.0.0
    Supports_AI
    DC_36bit
    DC_30bit
    DC_Y444
    Maximum TMDS clock: 225 MHz

The moment the projector is turned on, the audio stops working. After decoding the edid, I get the following from xrandr --verbose:

edid-decode (hex):

00 ff ff ff ff ff ff 00 4c a3 08 a5 01 01 01 01
20 14 01 03 80 a0 5a 78 0e de 50 a3 54 4c 99 26
0f 50 54 20 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 02 3a 80 18 71 38 2d 40 58 2c
45 00 40 84 63 00 00 1e 02 3a 80 d0 72 38 2d 40
10 2c 45 80 40 84 63 00 00 1e 00 00 00 fd 00 18
55 0f 5c 11 00 0a 20 20 20 20 20 20 00 00 00 fc
00 45 50 53 4f 4e 20 50 4a 0a 20 20 20 20 01 c4

02 03 2d b6 56 90 1f 20 21 22 05 14 04 13 0f 0e
1e 1d 03 02 12 11 07 06 16 15 01 20 83 4f 00 00
6c 03 0c 00 11 00 38 2d c0 15 ff 1c ff 01 1d 80
18 71 1c 16 20 58 2c 25 00 40 84 63 00 00 9e 01
1d 80 d0 72 1c 16 20 10 2c 25 80 40 84 63 00 00
9e 01 1d 00 72 51 d0 1e 20 6e 28 55 00 40 84 63
00 00 1e 8c 0a d0 8a 20 e0 2d 10 10 3e 96 00 40
84 63 00 00 18 00 00 00 00 00 00 00 00 00 00 c7

----------------

Block 0, Base EDID:
  EDID Structure Version & Revision: 1.3
  Vendor & Product Identification:
    Manufacturer: SEC
    Model: 42248
    Serial Number: 16843009
    Made in: week 32 of 2010
  Basic Display Parameters & Features:
    Digital display
    Maximum image size: 160 cm x 90 cm
    Gamma: 2.20
    RGB color display
    Default (sRGB) color space is primary color space
    First detailed timing is the preferred timing
  Color Characteristics:
    Red  : 0.6396, 0.3291
    Green: 0.2998, 0.5996
    Blue : 0.1494, 0.0595
    White: 0.3125, 0.3281
  Established Timings I & II:
    DMT 0x04:   640x480    59.940 Hz   4:3    31.469 kHz   25.175 MHz
  Standard Timings: none
  Detailed Timing Descriptors:
    DTD 1:  1920x1080   60.000 Hz  16:9    67.500 kHz  148.500 MHz (1600 mm x 900 mm)
                 Hfront   88 Hsync  44 Hback 148 Hpol P
                 Vfront    4 Vsync   5 Vback  36 Vpol P
    DTD 2:  1920x1080   50.000 Hz  16:9    56.250 kHz  148.500 MHz (1600 mm x 900 mm)
                 Hfront  528 Hsync  44 Hback 148 Hpol P
                 Vfront    4 Vsync   5 Vback  36 Vpol P
  Display Range Limits:
    Monitor ranges (GTF): 24-85 Hz V, 15-92 kHz H, max dotclock 170 MHz
    Display Product Name: 'EPSON PJ'
  Extension blocks: 1
Checksum: 0xc4

----------------

Block 1, CTA-861 Extension Block:
  Revision: 3
  Underscans IT Video Formats by default
  Supports YCbCr 4:4:4
  Supports YCbCr 4:2:2
  Native detailed modes: 6
  Video Data Block:
    VIC  16:  1920x1080   60.000 Hz  16:9    67.500 kHz  148.500 MHz (native)
    VIC  31:  1920x1080   50.000 Hz  16:9    56.250 kHz  148.500 MHz
    VIC  32:  1920x1080   24.000 Hz  16:9    27.000 kHz   74.250 MHz
    VIC  33:  1920x1080   25.000 Hz  16:9    28.125 kHz   74.250 MHz
    VIC  34:  1920x1080   30.000 Hz  16:9    33.750 kHz   74.250 MHz
    VIC   5:  1920x1080i  60.000 Hz  16:9    33.750 kHz   74.250 MHz
    VIC  20:  1920x1080i  50.000 Hz  16:9    28.125 kHz   74.250 MHz
    VIC   4:  1280x720    60.000 Hz  16:9    45.000 kHz   74.250 MHz
    VIC  19:  1280x720    50.000 Hz  16:9    37.500 kHz   74.250 MHz
    VIC  15:  1440x480    59.940 Hz  16:9    31.469 kHz   54.000 MHz
    VIC  14:  1440x480    59.940 Hz   4:3    31.469 kHz   54.000 MHz
    VIC  30:  1440x576    50.000 Hz  16:9    31.250 kHz   54.000 MHz
    VIC  29:  1440x576    50.000 Hz   4:3    31.250 kHz   54.000 MHz
    VIC   3:   720x480    59.940 Hz  16:9    31.469 kHz   27.000 MHz
    VIC   2:   720x480    59.940 Hz   4:3    31.469 kHz   27.000 MHz
    VIC  18:   720x576    50.000 Hz  16:9    31.250 kHz   27.000 MHz
    VIC  17:   720x576    50.000 Hz   4:3    31.250 kHz   27.000 MHz
    VIC   7:  1440x480i   59.940 Hz  16:9    15.734 kHz   27.000 MHz
    VIC   6:  1440x480i   59.940 Hz   4:3    15.734 kHz   27.000 MHz
    VIC  22:  1440x576i   50.000 Hz  16:9    15.625 kHz   27.000 MHz
    VIC  21:  1440x576i   50.000 Hz   4:3    15.625 kHz   27.000 MHz
    VIC   1:   640x480    59.940 Hz   4:3    31.469 kHz   25.175 MHz
  Audio Data Block:
  Speaker Allocation Data Block:
    FL/FR - Front Left/Right
    LFE1 - Low Frequency Effects 1
    FC - Front Center
    BL/BR - Back Left/Right
    RLC/RRC - Rear Left/Right of Center (Deprecated)
  Vendor-Specific Data Block (HDMI), OUI 00-0C-03:
    Source physical address: 1.1.0.0
    DC_36bit
    DC_30bit
    DC_Y444
    Maximum TMDS clock: 225 MHz
    Video latency: 43 ms
    Audio latency: Audio not supported
    Interlaced video latency: 57 ms
    Interlaced audio latency: Audio not supported
  Detailed Timing Descriptors:
    DTD 3:  1920x1080i  60.000 Hz  16:9    33.750 kHz   74.250 MHz (1600 mm x 900 mm)
                 Hfront   88 Hsync  44 Hback 148 Hpol P
                 Vfront    2 Vsync   5 Vback  15 Vpol P Vfront +0.5 Odd Field
                 Vfront    2 Vsync   5 Vback  15 Vpol P Vback  +0.5 Even Field
    DTD 4:  1920x1080i  50.000 Hz  16:9    28.125 kHz   74.250 MHz (1600 mm x 900 mm)
                 Hfront  528 Hsync  44 Hback 148 Hpol P
                 Vfront    2 Vsync   5 Vback  15 Vpol P Vfront +0.5 Odd Field
                 Vfront    2 Vsync   5 Vback  15 Vpol P Vback  +0.5 Even Field
    DTD 5:  1280x720    60.000 Hz  16:9    45.000 kHz   74.250 MHz (1600 mm x 900 mm)
                 Hfront  110 Hsync  40 Hback 220 Hpol P
                 Vfront    5 Vsync   5 Vback  20 Vpol P
    DTD 6:   720x480    59.940 Hz   3:2    31.469 kHz   27.000 MHz (1600 mm x 900 mm)
                 Hfront   16 Hsync  62 Hback  60 Hpol N
                 Vfront    9 Vsync   6 Vback  30 Vpol N

It says that audio is not supported here. However, when I connect the projector to my laptop and run xrandr, I am able to run

 xrandr --output HDMI-0 --set audio on

. This seems to be what's allowing the audio to play over HDMI. Unfortunately, it seems like I don't have this option on my Arch Linux PC. When I attempt to run

--set audio on

, I get the following message:

[klu@klu-gaming ~]$ xrandr --output DP-4 --set audio on
X Error of failed request:  BadName (named color or font does not exist)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  11 (RRQueryOutputProperty)
  Serial number of failed request:  45
  Current serial number in output stream:  45

My xrandr version on Arch Linux is 1.5.1, while it is 1.5.0 on my Linux Mint laptop. Is it really because of a version difference? Why would the --set audio option be removed? How can I add it? It seems that this would be the key to enabling audio for the projector.

Offline

#3 2021-03-14 19:35:30

Ropid
Member
Registered: 2015-03-09
Posts: 1,069

Re: [SOLVED] HDMI Video Output Works But No Audio (Nvidia GPU)

The "--set" xrandr parameter is about "properties" that an output can have.

You can see the properties of your outputs by running:

xrandr --verbose

The properties are coming from the Xorg driver module and are not standardized like the other parameters of the 'xrandr' command. The different driver modules have differently named properties. That's why you only have it on your laptop.

There might be something about audio in the Nvidia driver documentation. You can find Nvidia's documentation in /usr/share/doc/nvidia/. You can open this URL here in your browser to view the HTML version:

file:///usr/share/doc/nvidia/html/index.html

I remember there's an appendix chapter with all options that can be used in an xorg.conf file. I'd look in there and search for "audio" and "sound". Hopefully there's an interesting option.

Offline

#4 2021-03-14 21:51:57

klu93
Member
Registered: 2021-03-13
Posts: 4

Re: [SOLVED] HDMI Video Output Works But No Audio (Nvidia GPU)

Thanks for the tip. Unfortunately looking through the Nvidia docs didn't reveal anything too insightful for me. The main thing that was helpful was the section on ELD, but I'm not able to edit those files. It also said this which seems to be exactly my use case:
"In particular, an A/V receiver with an HDMI input may be used to receive the HDMI signal, process just the audio portion of the signal, and either ignore the video portion completely, or pass that video on to a display device."
Unfortunately, the doc gave zero information about how to set up such a stream. I played around a little more, and also found that if I connect the PC to the HDMI switch with the projector off, and then turn the projector on, then ALSA/pulseaudio still thinks the audio is playing through the HDMI switch, and then video and audio will both work through the HDMI. However, the moment any setting for the display changes, I guess they switch to trying to use the Epson projector, and when that happens they decide that you can't play audio through it and therefore there are no longer any audio devices through that channel. I looked at "/proc/asound/card0/eld#0.0", and when the projector is off then this file will show that monitor is present and eld is valid. Once the projector is turned on, this file is rewritten, and shows that monitor is not present and eld is not valid. I can't make any changes to these files even with sudo. I actually plugged the laptop directly to the projector through HDMI and it still considered it a valid sound device, so for some reason I guess the Nvidia GPU refuses to acknowledge the Epson projector as a valid sound output. Not sure where to go from here, I think I've isolated the problem but I'm not experienced enough to figure out the fix.

Offline

#5 2021-03-26 18:09:45

klu93
Member
Registered: 2021-03-13
Posts: 4

Re: [SOLVED] HDMI Video Output Works But No Audio (Nvidia GPU)

I was able to figure out the solution. I saved the EDID hex of the HDMI switch as a .txt file, and then converted it to a binary file using edid-decode:

 edid-decode edid.txt edid.bin 

. I then followed the instructions here: https://wiki.archlinux.org/index.php/ke … s_and_EDID
This forces the HDMI output to be the HDMI switch instead of the projector, and because the HDMI switch supports audio, pulseaudio recognizes it as a sink, and xrandr considers it a monitor. It was a journey but feels good to get it figured out.

Offline

Board footer

Powered by FluxBB