OMG! I think all the problems I was having were due to having Direct IO (VT-d) turn on in the BIOS. I disable it and now HD4000 is working.. I'll write more when/if I get the K3000M going.
Before disabling VT-d. The machine would boot in safe mode with HD4000 and K3000m. But when booting in normal mode weird stuff would happen. Like partially initialising the graphics system. I would often get things like this in the log file
Jan 7 00:43:02 debian.home ReportCrash[96]: LaunchServices/5123589: Unable to lookup coreservices session port for session 0x186a0 uid=0 euid=0
Jan 7 00:43:02 debian.home ReportCrash[96]: failed looking up LS service ( scCreateSystemService returned MACH_PORT_NULL, called from SetupCoreApplicationServicesCommunicationPort, so using client-side NULL calls.
Jan 7 00:43:02 debian.home ReportCrash[96]: LaunchServices/5123589: Unable to lookup coreservices session port for session 0x186a0 uid=0 euid=0
Jan 7 00:43:02 debian com.apple.launchd[1] (com.apple.backupd[75]): Job appears to have crashed: Segmentation fault: 11
Jan 7 00:43:02 debian com.apple.launchd[1] (com.apple.backupd): Throttling respawn: Will start in 3 seconds
Jan 7 00:43:03 debian.home apsd[58]: CGSLookupServerRootPort: Failed to look up the port for "com.apple.windowserver.active" (1102)
Jan 7 00:43:03 debian.home ReportCrash[96]: Saved crash report for backupd[75] version 151.5 to /Library/Logs/DiagnosticReports/backupd_2013-01-07-004303_localhost.crash
Jan 7 00:43:03 debian.home ReportCrash[96]: Removing excessive log: file://localhost/Library/Logs/DiagnosticReports/backupd_2013-01-07-002505_localhost.crash
Jan 7 00:43:05 debian.home ReportCrash[96]: failed looking up LS service ( scCreateSystemService returned MACH_PORT_NULL, called from SetupCoreApplicationServicesCommunicationPort, so using client-side NULL calls.
Jan 7 00:43:05 debian.home ReportCrash[96]: LaunchServices/5123589: Unable to lookup coreservices session port for session 0x186a0 uid=0 euid=0
Jan 7 00:43:05 debian.home ReportCrash[96]: failed looking up LS service ( scCreateSystemService returned MACH_PORT_NULL, called from SetupCoreApplicationServicesCommunicationPort, so using client-side NULL calls.
Jan 7 00:43:05 debian.home ReportCrash[96]: LaunchServices/5123589: Unable to lookup coreservices session port for session 0x186a0 uid=0 euid=0
Jan 7 00:43:05 debian.home ReportCrash[96]: failed looking up LS service ( scCreateSystemService returned MACH_PORT_NULL, called from SetupCoreApplicationServicesCommunicationPort, so using client-side NULL calls.
Jan 7 00:43:05 debian.home ReportCrash[96]: LaunchServices/5123589: Unable to lookup coreservices session port for session 0x186a0 uid=0 euid=0
Jan 7 00:43:05 debian.home ReportCrash[96]: failed looking up LS service ( scCreateSystemService returned MACH_PORT_NULL, called from SetupCoreApplicationServicesCommunicationPort, so using client-side NULL calls.
Jan 7 00:43:05 debian.home ReportCrash[96]: LaunchServices/5123589: Unable to lookup coreservices session port for session 0x186a0 uid=0 euid=0
Jan 7 00:43:05 debian.home ReportCrash[96]: failed looking up LS service ( scCreateSystemService returned MACH_PORT_NULL, called from SetupCoreApplicationServicesCommunicationPort, so using client-side NULL calls.
Jan 7 00:43:05 debian.home ReportCrash[96]: LaunchServices/5123589: Unable to lookup coreservices session port for session 0x186a0 uid=0 euid=0
Jan 7 00:43:05 debian com.apple.launchd[1] (com.apple.metadata.mds[38]): Job appears to have crashed: Illegal instruction: 4
Jan 7 00:43:05 debian.home mds[98]: objc[98]: Class is implemented in both /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support/mds and /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support/mds. One of the two will be used. Which one is undefined.
Jan 7 00:43:05 debian.home ReportCrash[96]: failed looking up LS service ( scCreateSystemService returned MACH_PORT_NULL, called from SetupCoreApplicationServicesCommunicationPort, so using client-side NULL calls.
Jan 7 00:43:05 debian.home ReportCrash[96]: LaunchServices/5123589: Unable to lookup coreservices session port for session 0x186a0 uid=0 euid=0
Which looks a bit like the CPU or memory is duff.