Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HDMI not working #62

Open
tpwrules opened this issue Oct 30, 2024 · 6 comments
Open

HDMI not working #62

tpwrules opened this issue Oct 30, 2024 · 6 comments

Comments

@tpwrules
Copy link

tpwrules commented Oct 30, 2024

I cannot get HDMI to work under NixOS on my Orange Pi 5 Plus with 32G of RAM.

I am using the latest UEFI firmware here with a config essentially identical to the demo Colmena one provided in this repo (including the nixos-rk3588.nixosModules.boards.orangepi5plus.core module, and on the same nixpkgs version as this repo).

The UEFI firmware menu and GRUB show up on HDMI fine but once the kernel starts I lose signal. I can interact with the kernel fine over Ethernet and console UART (except for issue #37). I don't know why the HDMI doesn't work. /proc/cmdline appears to have the relevant command line options still. I tried setting up a display server and that did not help either.

cc @Naxdy who apparently had this working recently

@tpwrules
Copy link
Author

HDMI works fine using tag 2024032400

@Naxdy
Copy link
Contributor

Naxdy commented Oct 31, 2024

I can confirm that it does work for me using the 6.1.75 kernel and mainline mesa. However, the monitor I'm testing won't recognize the device unless I manually specify the resolution to be of an aspect ratio of 16:9. If I try my monitor's native aspect ratio (32:9), it actually won't recognize it, which I think is weird. However, I was able to observe the exact same behavior with my RPi5, so I think this is more something to do with my monitor than with the device.

Which output device did you test with ?

@tpwrules
Copy link
Author

tpwrules commented Nov 1, 2024

I have now tried several monitors from various brands, and also a couple HDMI switchers/converters. I can't get a picture after the kernel starts with any device, but all work fine in TianoCore and GRUB.

Can you share your working configuration flake?

@Naxdy
Copy link
Contributor

Naxdy commented Nov 1, 2024

My config is part of a huge monorepo with many custom modules, but I'll try to paste in the relevant parts here:

My kernel + graphics setup (haven't updated this repo's ref yet):

let
  modDirVersion = "6.1.75";

  linux-src = pkgs.fetchFromGitHub {
    owner = "Joshua-Riek";
    repo = "linux-rockchip";
    rev = "5c43412639fd134f0ba690de2108eaa7ea349e2a";
    hash = "sha256-aKm/RQTRTzLr8+ACdG6QW1LWn+ZOjQtlvU2KkZmYicg=";
  };

  panthor-base = "aa54fa4e0712616d44f2c2f312ecc35c0827833d";
  panthor-head = "c81ebd8e12b64a42a6efd68cc0ed018b57d14e91";

  panthor-patch = pkgs.fetchurl {
    url = "https://github.com/hbiyik/linux/compare/${panthor-base}...${panthor-head}.patch";
    hash = "sha256-/5SvlGsgHbn1i68+GASOeNZmxoZiIt280L6iUFz3MFU=";
  };

  kernel = (pkgs.linuxManualConfig {
    inherit modDirVersion;

    version = "${modDirVersion}-rockchip-joshua";

    src = linux-src;

    kernelPatches = [{
      name = "panthor.patch";
      patch = panthor-patch;
      extraConfig = { };
    }];

    configfile = ./wearable-pc/kernel_config;

    config = import ./wearable-pc/conf.nix;
  }).overrideAttrs (old: {
    nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [
      pkgs.ubootTools
    ];
  });
in
{
  hardware.graphics.package = lib.mkForce pkgs.mesa.drivers; # note this is from `nixos-unstable`, so 24.2.4
  boot.kernelPackages = lib.mkForce (pkgs.linuxPackagesFor kernel);
#...

I'm using systemd-boot:

boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.kernelParams = [ "boot.shell_on_fail" ];

My current nixpkgs revision on the device is a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c

@tpwrules
Copy link
Author

tpwrules commented Nov 1, 2024

I tried switching to systemd-boot without making any other changes and HDMI comes up perfectly first time. Strange! It also fixes the log spam in #37 .

Not sure why the example config uses GRUB, I prefer systemd-boot anyway and was going to switch over once I figured out HDMI. This might pose a problem for the SD images and stuff, but the demo at least should probably be switched over (and the underlying issue fixed). I would bet there is something with device trees.

@cessationoftime
Copy link
Contributor

cessationoftime commented Nov 25, 2024

I suspect the original demo defaulted to grub because the raw-EFI image used comes from nixos-generators and that is configured to use grub by default. I am using systemd as well, though I didn't experience any problems when I used grub with the Orange Pi 5 Plus 32Gb. I considered adding options for systemd to the demo when I rewrote it, but I wrote it before I was sure systemd was going to work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants