Late-2009 iMac - HD4670 - Black Screen on LVDS

Hi there. I’m hoping someone can help here, before I go completely over the edge. I bought an old iMac from eBay recently and decided I’d install Linux on it, as macOS was a bit slow. I’ve tried installing multiple distro’s - Arch, Ubuntu, Mint, Manjaro - but I’m running into issues with the display that are affecting them all.

Spec is: late 2009 iMac (10,1)
3.06Ghz Core 2 Due E7600
12GB RAM
AMD Mobility HD 4670 (256MB)

If I boot a live installer for an distro, the main Mac screen splits into four distorted, identical images. I can add “nomodeset” to the boot options and this will temporarily sort the issue. If I don’t add “nomodeset”, I can plug an external monitor into the mini-display port and the display jumps onto this a few seconds after booting, after which I can install or log into Linux. Weirdly, when I do this, the backlight is on on the Mac screen, but there is nothing displayed on it.

I’ve gone ahead and installed Manjaro KDE onto the machine, which I really like, hence my reasoning for posting here to try and get it working. Once I log in, the OS can see that I have two monitors connected and I can move the pointer over to the Mac screen.

This is a brand new fresh build - I have installed Manjaro multiple times recently/today - so I’ve left it as virgin as possible just now, while I seek help here. I haven’t configured an Xorg .conf files (I previously did and wasn’t sure if that helped or not).

I’ve copied some logs in below - if there’s anything else I can supply, please let me know. Thanks

“mhwd” output:

> 0000:02:00.0 (0300:1002:9488) Display controller ATI Technologies Inc:
--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
           video-linux            2018.05.04                true            PCI
     video-modesetting            2020.01.13                true            PCI
            video-vesa            2017.03.12                true            PCI

“xrandr --listmonitors” shows:

Monitors: 2
 0: +*DisplayPort-0 1920/531x1080/299+1+0  DisplayPort-0
 1: +LVDS 1920/475x1080/267+0+1080  LVDS

“xrandr -q” shows:

Screen 0: minimum 320 x 200, current 1921 x 2160, maximum 8192 x 8192
LVDS connected 1920x1080+0+1080 (normal left inverted right x axis y axis) 475mm x 267mm
   1920x1080     59.93*+
   1680x1050     60.00  
   1400x1050     60.00  
   1280x1024     59.95  
   1440x900      59.99  
   1280x960      59.99  
   1280x854      59.95  
   1280x800      59.96  
   1280x720      59.97  
   1152x768      59.95  
   1024x768      59.95  
   800x600       59.96  
   848x480       59.94  
   720x480       59.94  
   640x480       59.94  
DisplayPort-0 connected primary 1920x1080+1+0 (normal left inverted right x axis y axis) 531mm x 299mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1680x1050     59.88  
   1280x1024     75.02    60.02  
   1440x900      59.90  
   1280x960      60.00  
   1280x800      59.91  
   1152x864      75.00  
   1280x720      60.00    50.00    59.94  
   1024x768      75.03    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   720x576       50.00  
   720x576i      50.00  
   720x480       60.00    59.94  
   720x480i      60.00    59.94  
   640x480       75.00    72.81    66.67    60.00    59.94  
   720x400       70.08  
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
VGA-0 disconnected (normal left inverted right x axis y axis)

“journalctl --boot=-1 --priority=3 --catalog --no-pager” - shows:

Sep 23 14:50:29 andy-imac101 kernel: sd 6:0:0:0: [sdd] No Caching mode page found
Sep 23 14:50:29 andy-imac101 kernel: sd 6:0:0:0: [sdd] Assuming drive cache: write through
Sep 23 14:50:34 andy-imac101 kernel: [drm:radeon_atom_pick_dig_encoder [radeon]] *ERROR* chosen encoder in use 0
Sep 23 14:50:49 andy-imac101 systemd[404]: Failed to start Update XDG user dir configuration.
░░ Subject: A start job for unit UNIT has failed
░░ Defined-By: systemd
░░ Support: https://forum.manjaro.org/c/support
░░ 
░░ A start job for unit UNIT has finished with a failure.
░░ 
░░ The job identifier is 24 and the job result is failed.

“inxi --admin --verbosity=7 --filter --width” gives:

System:
  Kernel: 5.15.65-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    parameters: BOOT_IMAGE=/boot/vmlinuz-5.15-x86_64
    root=UUID=cc35906a-4ea4-4ce8-80e9-61a7acec40c9 rw quiet
    udev.log_priority=3
  Desktop: KDE Plasma v: 5.25.5 tk: Qt v: 5.15.5 wm: kwin_x11 vt: 1 dm: SDDM
    Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Desktop System: Apple product: iMac10,1 v: 1.0
    serial: <superuser required> Chassis: type: 13 v: Mac-F2268CC8
    serial: <superuser required>
  Mobo: Apple model: Mac-F2268CC8 serial: <superuser required> UEFI: Apple
    v: 215.0.0.0.0 date: 06/14/2019
Battery:
  Device-1: hidpp_battery_0 model: Logitech M570 serial: <filter> charge: 45%
    rechargeable: yes status: discharging
Memory:
  RAM: total: 11.68 GiB used: 1.49 GiB (12.8%)
  RAM Report: permissions: Unable to run dmidecode. Root privileges
    required.
CPU:
  Info: model: Intel Core2 Duo E7600 bits: 64 type: MCP arch: Penryn level: v2
    built: 2008 process: Intel 45nm family: 6 model-id: 0x17 (23)
    stepping: 0xA (10) microcode: 0xA0B
  Topology: cpus: 1x cores: 2 smt: <unsupported> cache: L1: 128 KiB
    desc: d-2x32 KiB; i-2x32 KiB L2: 3 MiB desc: 1x3 MiB
  Speed (MHz): avg: 1606 high: 1611 min/max: 1596/3059 scaling:
    driver: acpi-cpufreq governor: schedutil cores: 1: 1602 2: 1611
    bogomips: 12210
  Flags: acpi aperfmperf apic arch_perfmon bts clflush cmov constant_tsc
    cpuid cx16 cx8 de ds_cpl dtes64 dtherm dts est flexpriority fpu fxsr ht
    lahf_lm lm mca mce mmx monitor msr mtrr nopl nx pae pat pbe pdcm pebs pge
    pni pse pse36 pti rep_good sep sse sse2 sse4_1 ssse3 syscall tm tm2
    tpr_shadow tsc vme vmx vnmi vpid xsave xtpr
  Vulnerabilities:
  Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf mitigation: PTE Inversion; VMX: EPT disabled
  Type: mds status: Vulnerable: Clear CPU buffers attempted, no microcode;
    SMT disabled
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data status: Unknown: No mitigations
  Type: retbleed status: Not affected
  Type: spec_store_bypass status: Vulnerable
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines, STIBP: disabled, RSB filling,
    PBRSB-eIBRS: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: AMD RV730/M96-XT [Mobility Radeon HD 4670] vendor: Apple
    driver: radeon v: kernel arch: TeraScale process: TSMC 55-65nm
    built: 2005-13 pcie: gen: 2 speed: 5 GT/s lanes: 16 ports:
    active: DP-1,LVDS-1 empty: DP-2,VGA-1 bus-ID: 02:00.0 chip-ID: 1002:9488
    class-ID: 0300
  Device-2: Apple Built-in iSight type: USB driver: uvcvideo bus-ID: 1-4:4
    chip-ID: 05ac:8502 class-ID: 0e02 serial: <filter>
  Display: x11 server: X.Org v: 21.1.4 compositor: kwin_x11 driver: X:
    loaded: radeon unloaded: modesetting alternate: fbdev,vesa gpu: radeon
    display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1921x2160 s-dpi: 96 s-size: 506x570mm (19.92x22.44")
    s-diag: 762mm (30.01")
  Monitor-1: DP-1 mapped: DisplayPort-0 pos: primary,top-right
    model: Acer K242HL serial: <filter> built: 2015 res: 1920x1080 hz: 60
    dpi: 92 gamma: 1.2 size: 531x299mm (20.91x11.77") diag: 609mm (24")
    ratio: 16:9 modes: max: 1920x1080 min: 720x400
  Monitor-2: LVDS-1 mapped: LVDS pos: bottom-l model: Apple Color LCD
    serial: <filter> built: 2009 res: 1920x1080 hz: 60 dpi: 103 gamma: 1.2
    size: 475x267mm (18.7x10.51") diag: 545mm (21.5") ratio: 16:9 modes:
    max: 1920x1080 min: 640x480
  OpenGL: renderer: AMD RV730 (DRM 2.50.0 / 5.15.65-1-MANJARO LLVM 14.0.6)
    v: 3.3 Mesa 22.1.7 compat-v: 3.0 direct render: Yes
Audio:
  Device-1: NVIDIA MCP79 High Definition Audio driver: snd_hda_intel v: kernel
    bus-ID: 00:08.0 chip-ID: 10de:0ac0 class-ID: 0403
  Device-2: AMD RV710/730 HDMI Audio [Radeon HD 4000 series] vendor: Apple
    driver: snd_hda_intel v: kernel pcie: gen: 2 speed: 5 GT/s lanes: 16
    bus-ID: 02:00.1 chip-ID: 1002:aa38 class-ID: 0403
  Sound Server-1: ALSA v: k5.15.65-1-MANJARO running: yes
  Sound Server-2: JACK v: 1.9.21 running: no
  Sound Server-3: PulseAudio v: 16.1 running: yes
  Sound Server-4: PipeWire v: 0.3.57 running: yes
Network:
  Device-1: NVIDIA MCP79 Ethernet driver: forcedeth v: kernel port: 21e0
    bus-ID: 00:0a.0 chip-ID: 10de:0ab0 class-ID: 0200
  IF: enp0s10 state: down mac: <filter>
  Device-2: Qualcomm Atheros AR928X Wireless Network Adapter vendor: Apple
    AirPort Extreme driver: ath9k v: kernel pcie: gen: 1 speed: 2.5 GT/s
    lanes: 1 bus-ID: 03:00.0 chip-ID: 168c:002a class-ID: 0280
  IF: wlp3s0 state: up mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: noprefixroute scope: link
  WAN IP: <filter>
Bluetooth:
  Device-1: Apple Built-in Bluetooth 2.0+EDR HCI type: USB driver: btusb
    v: 0.8 bus-ID: 4-1.1:3 chip-ID: 05ac:8215 class-ID: fe01 serial: <filter>
  Report: rfkill ID: hci0 rfk-id: 0 state: up address: see --recommends
Logical:
  Message: No logical block device data found.
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 4.56 TiB used: 9.71 GiB (0.2%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/sda maj-min: 8:0 vendor: Samsung model: ST1000LM024 HN-M101MBB
    size: 931.51 GiB block-size: physical: 4096 B logical: 512 B speed: 3.0 Gb/s
    type: HDD rpm: 5400 serial: <filter> rev: 0003 scheme: GPT
  ID-2: /dev/sdb maj-min: 8:16 type: USB vendor: Seagate
    model: Expansion Desk size: 3.64 TiB block-size: physical: 4096 B
    logical: 512 B type: N/A serial: <filter> rev: 0911 scheme: GPT
  ID-3: /dev/sdd maj-min: 8:48 type: USB vendor: Verbatim model: STORE N GO
    size: 7.46 GiB block-size: physical: 512 B logical: 512 B type: N/A
    serial: <filter> rev: 5.00 scheme: MBR
  SMART Message: Unknown USB bridge. Flash drive/Unsupported enclosure?
  Optical-1: /dev/sr0 vendor: OPTIARC model: DVD RW AD-5680H rev: 3AHB
    dev-links: cdrom
  Features: speed: 24 multisession: yes audio: yes dvd: yes
    rw: cd-r,cd-rw,dvd-r state: running
Partition:
  ID-1: / raw-size: 463.94 GiB size: 455.58 GiB (98.20%) used: 9.68 GiB (2.1%)
    fs: ext4 dev: /dev/sda3 maj-min: 8:3 label: N/A
    uuid: cc35906a-4ea4-4ce8-80e9-61a7acec40c9
  ID-2: /boot/efi raw-size: 260 MiB size: 256 MiB (98.46%) used: 28 MiB
    (10.9%) fs: vfat dev: /dev/sda1 maj-min: 8:1 label: N/A uuid: C4A7-1619
Swap:
  Alert: No swap data was found.
Unmounted:
  ID-1: /dev/sda2 maj-min: 8:2 size: 463.81 GiB fs: apfs label: N/A
    uuid: c0454238-0e29-498b-8326-900e00e9819a
  ID-2: /dev/sda4 maj-min: 8:4 size: 3.51 GiB fs: <superuser required>
    label: N/A uuid: N/A
  ID-3: /dev/sdb1 maj-min: 8:17 size: 3.64 TiB fs: ntfs label: N/A
    uuid: 6BAA584727BD3F99
  ID-4: /dev/sdd1 maj-min: 8:49 size: 3.32 GiB fs: iso9660
  ID-5: /dev/sdd2 maj-min: 8:50 size: 4 MiB fs: vfat label: MISO_EFI
    uuid: C80E-8B3F
USB:
  Hub-1: 1-0:1 info: Full speed or root hub ports: 7 rev: 2.0 speed: 480 Mb/s
    chip-ID: 1d6b:0002 class-ID: 0900
  Device-1: 1-1:2 info: Seagate RSS LLC Desktop HDD 5TB (ST5000DM000)
    type: Mass Storage driver: uas interfaces: 1 rev: 2.1 speed: 480 Mb/s
    power: 30mA chip-ID: 0bc2:331a class-ID: 0806 serial: <filter>
  Hub-2: 1-3:3 info: Terminus FE 2.1 7-port Hub ports: 7 rev: 2.0
    speed: 480 Mb/s power: 100mA chip-ID: 1a40:0201 class-ID: 0900
  Device-1: 1-3.5:5 info: Logitech Unifying Receiver
    type: Keyboard,Mouse,HID driver: logitech-djreceiver,usbhid interfaces: 3
    rev: 2.0 speed: 12 Mb/s power: 98mA chip-ID: 046d:c52b class-ID: 0300
  Device-2: 1-3.6:7 info: INSTANT USB Keyboard type: Keyboard,Mouse
    driver: hid-generic,usbhid interfaces: 2 rev: 1.1 speed: 1.5 Mb/s
    power: 100mA chip-ID: 30fa:2031 class-ID: 0300
  Device-3: 1-4:4 info: Apple Built-in iSight type: Video driver: uvcvideo
    interfaces: 3 rev: 2.0 speed: 480 Mb/s power: 500mA chip-ID: 05ac:8502
    class-ID: 0e02 serial: <filter>
  Hub-3: 2-0:1 info: Full speed or root hub ports: 5 rev: 2.0
    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Device-1: 2-4:3 info: Verbatim Flash Drive type: Mass Storage
    driver: usb-storage interfaces: 1 rev: 2.0 speed: 480 Mb/s power: 200mA
    chip-ID: 18a5:0302 class-ID: 0806 serial: <filter>
  Device-2: 2-5:4 info: Apple Internal Memory Card Reader type: Mass Storage
    driver: usb-storage interfaces: 1 rev: 2.0 speed: 480 Mb/s power: 500mA
    chip-ID: 05ac:8403 class-ID: 0806 serial: <filter>
  Hub-4: 3-0:1 info: Full speed or root hub ports: 7 rev: 1.1 speed: 12 Mb/s
    chip-ID: 1d6b:0001 class-ID: 0900
  Device-1: 3-5:2 info: Apple Built-in IR Receiver type: HID
    driver: appleir,usbhid interfaces: 1 rev: 2.0 speed: 1.5 Mb/s power: 100mA
    chip-ID: 05ac:8242 class-ID: 0300
  Hub-5: 4-0:1 info: Full speed or root hub ports: 5 rev: 1.1 speed: 12 Mb/s
    chip-ID: 1d6b:0001 class-ID: 0900
  Hub-6: 4-1:2 info: Broadcom BCM2046B1 USB 2.0 Hub (part of BCM2046
    Bluetooth) ports: 3 rev: 2.0 speed: 12 Mb/s chip-ID: 0a5c:4500
    class-ID: 0900
  Device-1: 4-1.1:3 info: Apple Built-in Bluetooth 2.0+EDR HCI
    type: Bluetooth driver: btusb interfaces: 4 rev: 2.0 speed: 12 Mb/s
    chip-ID: 05ac:8215 class-ID: fe01 serial: <filter>
Sensors:
  System Temperatures: cpu: 50.0 C mobo: N/A
  Fan Speeds (RPM): cpu: 1200
Info:
  Processes: 169 Uptime: 18m wakeups: 3 Init: systemd v: 251
  default: graphical tool: systemctl Compilers: gcc: 12.2.0 clang: 14.0.6
  Packages: pm: pacman pkgs: 1206 libs: 317 tools: pamac pm: flatpak pkgs: 0
  Shell: Zsh v: 5.9 default: Bash v: 5.1.16 running-in: konsole inxi: 3.3.21

as you started the setup did you choose propietary or open graphics driver ?
i’m using a different model (2011-2012) so called 12,2 and choose the propietary driver install. no complaints but the driver is called “BART”.

btw: what happens if you boot into a live-iso ? i would try this first.

NOTE: (it’s about deepin, but that will be identical)

Do not have a secondary monitor or even a plug in the secondary video port. Deepin will not display the Desktop Environment properly if a secondary video port is detected as active.

So do not connect a secondary display while installation, due to the fact that this will confuse.

Thanks for the reply. I think I chose proprietary this time, although I did choose open source almost exclusively all the times before. I may have a look for the Bart driver.

Almost every live CD ends up with the display split into four - except, interestingly enough, Deepin. It did work straight off the bat, but it did add the nomodeset property during install.

first try to boot a manjaro-live-system and check this. as the report explained, do not connect an external display during install because the apple-bios will confuse the system. by the way are you able to boot from usb at the 2009-model ?
another thing is that you might think over replacing the cooling-paste of the cpu and gpu and if so to upgrade the mxm-gpu to a newer modell ? there are some options including the 2GB-AMD-Radeon that will make your system a way more snappier especially if you want to use additional displays.

So tried the Manjaro Live system without the external monitor connected - screen is split in four. If I add nomodeset, I can’t launch X as it says no screens found.

Fatal server error:
(EE) no screens found (EE)
(EE) Please consult the The X.Org Foundation support at http://wiki.x.org for help
(EE) Please also check the log file at "var/log/Xorg.0.log" for additional information (EE)
(EE) Server terminated with error (1) Closing log file
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

I also downloaded and tried to install Deepin again. Normal install splits the screen into four again - choosing safe graphics boots the live environment and I can install from there, but this is only a temporary fix.

I’ve tried the Archlabs iso this morning - screen splits into four, can’t boot to live environment with nomodeset (same error as the Manjaro one above).

I’m 99.9% sure that the logs I posted for Manjaro yesterday show that the ‘radeon’ driver has loaded correctly, so I don’t think that’s the issue. Xrandr shows both monitors connected. I’m dual booting the machine with Monterey and macos can see both monitors and use them in tandem with no issues, so I don’t think this is a hardware problem.

I’m leaning towards it potentially being something to do with the EDID for the Apple monitor - possibly trying to use a resolution or frequency that isn’t supported, but I’m not sure what I can try to get it working. My external monitor (Acer) is running at 60Hz, while the Apple one is using 59.93Hz. I don’t know if this is an issue, as xrandr has combined both into a virtual monitor (screen 0) - if both monitors are using different frequencies, would this mess up things?

I did notice previously when I had Deepin installed in safe mode, that the Apple screen was listed as running at 77Hz. I tried manually setting this in Manjaro, but it didn’t make a difference (again, is this because the Acer is running at 60Hz?)

And finally, another weird thing I noticed is that if I try disabling the Apple screen from the OS or xrandr, it disables the Acer in the DisplayPort too…!! So then I have two black screens. If I hit Escape to revert the change, the Acer stays black, but the Apple screen comes on and is split into four. It’s bizarre.

Another theory I have is that somehow, the LVDS (Apple) and DisplayPort-0 (Acer) connections are being confused within the OS? That somehow, because they are being merged into the virtual screen, that switching off one, powers them both down. I don’t know enough about how displays and screens, etc, work in Linux to know for sure. Is there any way to disable the virtual screen and have both display individually?

I recon this may be related to this: drm/radeon: Fix eDP for single-display iMac10,1 (v2) · ev3dev/ev3-kernel@89308cb · GitHub

Yeah that sounds similar to my issue. How do your go about installing one of those patches? Or is it already included in the latest kernel?

You need someone sharper than me for that, I’m afraid. I’m just good at finding stuff :smile: : Apply a patch while building kernel

1 Like