No internet connection
  1. Home
  2. Technical Support

Linux host, EDID preferring 640x480

By @crognlie
    2023-12-03 22:47:59.752Zassigned to
    • @david

    Attached my tinypilot (v2.6.1) to a ubuntu host (22.04 LTS), boots to 640x480 - persists across reboot of host and tinypilot.

    $ sudo get-edid | sudo parse-edid
    This is read-edid version 3.0.2. Prepare for some fun.
    Attempting to use i2c interface
    No EDID on bus 0
    No EDID on bus 1
    No EDID on bus 2
    No byte reading on this bus...
    Problem requesting slave address: Bad file descriptor
    1 potential busses found: 3
    256-byte EDID successfully retrieved from i2c bus 3
    Looks like i2c was successful. Have a good day.
    Checksum Correct
    
    Section "Monitor"
            Identifier "TinyPilot"
            ModelName "TinyPilot"
            VendorName "TSB"
            # Monitor Manufactured week 45 of 2020
            # EDID version 1.3
            # Digital Display
            # Display Physical Size not given. Normal for projectors.
            Gamma 2.20
            Option "DPMS" "false"
            Horizsync 18-80
            VertRefresh 24-90
            # Maximum pixel clock is 160MHz
            #Not giving standard mode: 1280x720, 60Hz
            #Not giving standard mode: 1280x960, 60Hz
            #Not giving standard mode: 1280x800, 60Hz
            #Not giving standard mode: 1280x1024, 60Hz
            #Not giving standard mode: 1440x900, 60Hz
            #Not giving standard mode: 1600x900, 60Hz
            #Not giving standard mode: 1280x960, 60Hz
            #Not giving standard mode: 1024x768, 60Hz
    
            #Extension block found. Parsing...
    #WARNING: I may have missed a mode (CEA mode 60)
    #WARNING: I may have missed a mode (CEA mode 61)
    #WARNING: I may have missed a mode (CEA mode 62)
            Modeline        "Mode 2" 25.200 640 656 752 800 480 490 492 525 -hsync -vsync
            Modeline        "Mode 0" 79.75 1920 1976 2168 2416 1080 1083 1088 1102 +hsync +vsync
            Modeline        "Mode 1" 115.00 1920 1968 2000 2080 1080 1083 1088 1106 +hsync +vsync
            Modeline        "Mode 3" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
            Modeline        "Mode 4" 74.250 1280 1390 1420 1650 720 725 730 750 +hsync +vsync
            Modeline        "Mode 5" 74.250 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
            Modeline        "Mode 6" 148.500 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
            Modeline        "Mode 7" 74.250 1920 2558 2602 2750 1080 1084 1089 1125 +hsync +vsync
            Modeline        "Mode 8" 74.250 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
            Modeline        "Mode 9" 74.250 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
            Option "PreferredMode" "Mode 2"
    EndSection
    
    $ sudo lshw | grep -A5 graphics
      *-graphics
           product: VESA VGA
           physical id: 1
           logical name: /dev/fb0
           capabilities: fb
           configuration: depth=32 resolution=640,480
    

    For completeness, from the tinypilot -- though I haven't touched it here:

     $ cat /home/ustreamer/edids/tc358743-edid.hex
    00ffffffffffff005262769800888888
    2d1e0103800000781aee91a3544c9926
    0f50547fef8081c08140810081809500
    a9c081406140271f80f07138164038c0
    350000000000001eec2c80a070381a40
    3020350000000000001e000000fc0054
    696e7950696c6f740a202020000000fd
    00185a125010000a20202020202001aa
    02031ef14b010204131f2021223c3d3e
    2309070766030c00300080e2007f0000
    00000000000000000000000000000000
    00000000000000000000000000000000
    00000000000000000000000000000000
    00000000000000000000000000000000
    00000000000000000000000000000000
    0000000000000000000000000000008e
    
    Solved in post #6, click to view
    • 7 replies
    1. David @david2023-12-04 15:00:48.030Z

      Hi @crognlie, I'm sorry you're experiencing this resolution issue.

      Thanks for all of those details! Your EDID looks correct, so your TinyPilot should prefer 1080p from your target machine. I think there may be a different issue here.

      Can you share a TinyPilot log for me to review? On your TinyPilot web interface, go to System > Logs and click Get Shareable URL. Then paste the link in your reply.

      Are you using an adapter here (like VGA to HDMI)? Or are you just using an HDMI cable to connect your TinyPilot to your display output?

      1. C@crognlie
          2023-12-04 17:17:58.201Z

          Logs

          No adapter, connected directly to the host's GPU HDMI.

          1. David @david2023-12-05 11:31:23.823Z

            Thanks for sharing those logs, @crognlie!

            Those logs suggest your TinyPilot requested (and is receiving) 1920x1080 at 30Hz.

            Could you share a screenshot of the issue?

            You also mentioned that this is at boot - does the issue resolve itself once your target machine has booted?

            1. C@crognlie
                2023-12-05 15:29:48.914Z

                No, it stays at 640x480 after booting.

                1. David @david2023-12-06 12:43:16.401Z

                  Thanks for the screenshot! It looks like your target machine is rendering a 640x480 image and then scaling it to 1920x1080 to output to your TinyPilot. That would also explain why the text is stretched.

                  It looks like you're using Ubuntu Server here. I did a test with an Ubuntu Server VM (following the instructions in this YouTube video) and I think you'll need to update your grub file to change the render resolution. It doesn't look like you can get the command line to output at 1920x1080 (at least in my test), so I used 1280x1024 here.

                  I'd recommend following the YouTube guide I linked, but here's what I did:

                  On your target machine, edit /etc/default/grub (I'd recommend backing up the file):

                  sudo nano /etc/default/grub
                  

                  Change the GRUB_CMDLINE_LINUX_DEFAULT="" line to:

                  GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"
                  

                  Then, at the bottom of the file, add this line:

                  GRUB_GFXPAYLOAD_LINUX=1280x1024
                  

                  Save the file, and run update-grub:

                  sudo update-grub
                  

                  And reboot.

                  If those changes improve your render resolution, but the display is still stretched at 1080p, I can send you a new EDID for your TinyPilot to prefer 1280x1024 as the default resolution.

                  I hope that helps! Please let me know if you have any questions.

                  Reply2 LikesSolution
                  1. C@crognlie
                      2023-12-06 17:30:46.460Z

                      Thanks @david. I'm not sure if there's anything that can be done on the tinypilot side to have better resolutions show up to VESA (such that the default GRUB_GFXPAYLOAD=auto) would find the larger 4:3 modes, but my issue is solved with:

                      GRUB_GFXMODE=1920x1080,1280x1024,800x600,640x480,auto
                      

                      I very much appreciate the time you spent on this. Thanks so much!

                      1. David @david2023-12-07 11:24:54.334Z

                        You're welcome! I'm happy the CLI is more usable now.

                        I'm not sure if there's anything that can be done on the tinypilot side to have better resolutions show up to VESA

                        I don't know if there is. TinyPilot uses its EDID to communicate its display capabilities and preferences to target machines, so there's nothing else TinyPilot can do here as far as I know. Your target machine seemed to output a 1920x1080p signal the whole time - the problem was with the image rendering.

                        I don't know how GRUB_GFXMODE or GRUB_GFXPAYLOAD handle auto here, but that behavior would probably point to the underlying issue.