When you can't select a desired resolution you may need to create a custom xorg.conf for you system.

Before you proceed make sure you know what your doing, using an incorrectly formatted xorg.conf can cripple your system and should be avoided.

To use a custom xorg.conf you simply have to access the configfiles samba share and save a text file name xorg.conf

If your machine doesn't boot after you have done this. Simply delete the file and reboot.

Please select one of the following xorg.conf based on which GPU your machine has.

This is for Nvidia GPU's only

Section "Device"
    Identifier     "nvidia"
    Driver         "nvidia"
#   Option         "Coolbits" "4"
    Option         "DynamicTwinView" "False"
    Option         "NoFlip" "false"
    Option         "NoLogo" "true"
    Option         "ConnectToAcpid" "0"
    Option         "FlatPanelProperties" "Scaling = Native"
    Option         "ModeValidation" "NoVesaModes, NoXServerModes"
    Option         "HWCursor" "false"
# To put Xorg in debug mode change "false" to "true" in the line below:
    Option         "ModeDebug" "false" 
# To use a local edid.bin file uncomment the 4 lines below (change DFP-0 to match your card)
#   Option         "ConnectedMonitor" "DFP-0"
#   Option         "CustomEDID" "DFP-0:/storage/.config/edid.bin"
#   Option         "IgnoreEDID" "false"
#   Option         "UseEDID" "true"
EndSection

Section "Monitor"
    # 1920x1080p @ 60Hz (EIA/CEA-861B)
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync      26-81
    VertRefresh    24-75
    ModeLine       "1920x1080_24" 74.250 1920 2558 2602 2750 1080 1084 1089 1125 +hsync +vsync
    ModeLine       "1920x1080_23.976" 74.175 1920 2558 2602 2750 1080 1084 1089 1125 +hsync +vsync
#    Option         "DPMS"
    Option         "DPI" "96 x 96"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "nvidia0"
    Monitor        "Monitor0"
    Option         "ColorRange" "Full"
#   Option         "ColorRange" "Limited"
#   Option         "ColorSpace" "YCbCr444"
    Option         "ColorSpace" "RGB"
    DefaultDepth    24
    Option         "ModeValidation" "NoVesaModes, NoXServerModes"
    Option         "ExactModeTimingsDVI" "True"
    SubSection     "Display"
       Depth       24
       Modes      "1920x1080_60" "1920x1080_24" "1920x1080_23.976"
    EndSubSection
EndSection

Section "Extensions"
   Option         "Composite" "Disable"
EndSection

To configure the colorspace for an Nvidia GPU you have to uncomment and comment out certain lines in the xorg.conf

#   Option "ColorRange""Full"
    Option "ColorRange""Limited"

Avoid using Option "ColorSpace""YCbCr444" as this is not recommended.

This is for AMD GPU's only

Section "ServerLayout"
    Identifier     "aticonfig Layout"
    Screen      0  "screen" 0 0
EndSection

Section "Device"
        Identifier "Radeon"
        Driver     "Radeon"
        Option     "SWcursor" "off"
        Option     "AccelMethod" "EXA"
        Option     "EnablePageFlip" "on"
EndSection

Section "DRI"
  Mode 0666
EndSection

Section "Screen"
  Identifier     "screen"
  Device         "aticonfig Layout"
  DefaultDepth   24
  SubSection     "Display"
    Option       "ColorRange""Full"
#   Option       "ColorRange""Limited"
    Option       "ColorSpace""RGB"
#   Option       "ColorSpace""YCbCr444"
    Modes        "1920x1080_60" "1920x1080@60"
  Depth          24
  EndSubSection
EndSection

Section "Extensions"
  Option      "Composite"             "false"
EndSection

To configure the colorspace for an AMD GPU you have to uncomment and comment out certain lines in the xorg.conf

#   Option "ColorRange""Full"
    Option "ColorRange""Limited"

Avoid using Option "ColorSpace""YCbCr444" as this is not recommended.

This is for Intel GPU's only

Section "Device"
  Identifier  "Device0"
  Driver      "intel"
  VendorName  "INTEL Corporation"
EndSection

Section "Screen"
  Identifier  "Screen0"
  Device      "Device0"
  Monitor     "HDMI2"
  DefaultDepth  24
  SubSection "Display"
    Depth       24
    Modes     "1920x1080@59.94p" "1920x1080@24p" "1920x1080@60p"
  EndSubSection
EndSection

Section "Monitor"
  Identifier  "HDMI2"
  HorizSync   14.0 - 70.0
  VertRefresh 24.0 - 62.0
#  Option      "DPMS" "true"
  Modeline    "1920x1080@24p"     74.230 1920 2560 2604 2752 1080 1084 1089 1125 +hsync +vsync
  Modeline    "1920x1080@50p"    148.500 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
  Modeline    "1920x1080@59.94p" 148.352 1920 1960 2016 2200 1080 1082 1088 1125 +hsync +vsync
  Modeline    "1920x1080@60p"    148.500 1920 2008 2056 2200 1080 1084 1089 1125 +hsync +vsync
EndSection

Section "Extensions"
  # fixes tearing
  Option      "Composite"           "Disable"
EndSection

Intel doesn't have an option to set colorspace in their xorg.conf yet. If you want to set the colorspace then you will have to create an autostart.sh file and use the following

xrandr --output HDMI3 --set "Broadcast RGB" "Limited 16:235"

Make sure to check the output of xrandr first to see which display is actually connected.

Run the following command to get the active port name:

ls /sys/class/drm

Look for names like card0-HDMI-A-1, card0-HDMI-A-2, card0-DP-1, card0-DP-2, etc. then check their status:

cat /sys/class/drm/card0-HDMI-A-1/status

If the command returns connected this is the active card and HDMI/DP port.

For this step below, your TV/display/AVR must all be powered on, otherwise the EDID data won't be valid / useful.

Next we will create a copy of the EDID binary data and put it where it needs to go. Change the cat command to reflect your active HDMI/DP port:

mkdir -p /storage/.config/firmware/edid
cat /sys/class/drm/card0-HDMI-A-1/edid > /storage/.config/firmware/edid/edid.bin

If your TV/display/AVR isn't returning a valid EDID at all, you may need to acquire a valid EDID by other means and copy it into the correct location above.

Now create a cpio archive file to be loaded at boot using the commands below.

cd ~
mkdir -p cpio/lib/firmware/edid
cp .config/firmware/edid/edid.bin cpio/lib/firmware/edid/
cd cpio/
find . -print | cpio -ov -H newc > ../edid.cpio

Remount the boot filesystem as RW, and move the cpio archive into place

mount -o remount,rw /flash
mv ../edid.cpio /flash/

Lastly, edit the kernel boot parameters to load the cpio archive and the edid data:

nano -w /flash/extlinux.conf

Add to the end of the APPEND line:

initrd=/edid.cpio drm_kms_helper.edid_firmware=HDMI-A-1:edid/edid.bin

If you're trying to force the use of an output which is not the primary (eg, HDMI-A-2), then you may also need to add the following to the APPEND line as well:

video=HDMI-A-1:D

so your APPEND line should look like this (substituting HDMI-A-1 for whatever your output is):

APPEND boot=LABEL=System disk=LABEL=Storage ssh quiet initrd=/edid.cpio drm_kms_helper.edid_firmware=HDMI-A-1:edid/edid.bin video=HDMI-A-1:D

Be sure that the APPEND line is all on a single line, and that nano doesn't introduce any line breaks. If it does, hit backspace then space to correct as needed.

When done, save via CTRL-O, then CTRL-X to exit. Reboot to test.