After a LOT of searching and putting things together from different distros, I decided to write one complete post with all I did, to get native resolution in my laptop.
Dell XPS 15z (Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz)
+ Optimus ( 2nd Generation Core Processor Family Integrated Graphics Controller + Nvidia GeForce 525M)
Currently running kernel: 3.8.2-206.fc18.x86_64.
The initial problem was not having native resolution. After install, I could only select a maximum resolution of 1280 x 1024, which for a screen that has 1920 x 1080 is terrible, at best.
I know I can't use only the NVidia card because this laptop doesn't allow it to be the only one active, there is no BIOS setting for that. I first installed Bumblebee from here
using proprietary drivers (which worked fine, by the way) to get access to the GPU, needed for some programs I need to work with. I would recommend doing this first as it guides you through the blacklisting of nouveau driver.
So the real problem was how to get "nomodeset" out of my boot command line without bringing back the "freezing boot problem". I needed "nomodeset" (selecting safe graphics mode) during install because of my hardware and that option keeps intel driver from starting, it brings up vesa driver insead. Without the safe graphics mode the installation process wouldn't even start, so I really needed it, but after install, this flag is always placed in the default grub command line.
I then stumbled upon this page
. It shows you how to use Intel driver i915 (in a different distro), but the solution did not work for me. Every time I took out "nomodeset" from the grub command line, the boot process would just freeze before any GUI (I have an encrypted partition and I wouldn't even get to the part where the password is asked).
Adding "no splash" to the grub command line showed me that boot was hanging with the following error:
[Firmware Bug] ACPI(PEGP) defines _DOD but not _DOS
This proves that the problem is no related with display brightness, something surprisingly common.
The only way I could get pass that was to add the following to grub:
acpi_osi=linux noapic nolapic
Using only the first one would get pass the error, but also makes my keyboard unresponsive, thus the noapic and nolapic.
In the post I referenced above, there was an indication to add "video=i915:modeset=1" to the grub line. This ALWAYS brings back the problem, even with acpi_osi=linux, noapic and nolapic in the same line.
In the end, what I did was change the default grub to add the followig:
acpi_osi=linux noapic nolapic i915.i915_enable_rc6=1 i915.lvds_downclock=1 i915.i915_enable_fbc=1 pcie_aspm=force
In Fedora's case, since it uses grub2, it should be changed in the file
and the variable "GRUB_CMDLINE_LINUX" should be changed. In my case it first looked like this:
GRUB_CMDLINE_LINUX="nomodeset rd.md=0 rd.lvm=0 rd.dm=0 $([ -x /usr/sbin/rhcrashkernel-param ] && /usr/sbin/rhcrashkernel-param || :) rd.luks=0 vconsole.keymap=us rhgb no splash"
and then I changed to
GRUB_CMDLINE_LINUX="acpi_osi=linux noapic nolapic rd.md=0 rd.lvm=0 rd.dm=0 $([ -x /usr/sbin/rhcrashkernel-param ] && /usr/sbin/rhcrashkernel-param || :) rd.luks=0 vconsole.keymap=us rhgb i915.i915_enable_rc6=1 i915.lvds_downclock=1 i915.i915_enable_fbc=1 pcie_aspm=force"
(since the error was gone, in the end I took out the "no splash" but that didn't affect anything)
All the extra intel stuff was taken from the link I referenced above.
After the changes, you need to run
grub2-mkconfig -o /boot/grub2/grub.cfg
So the new grub line will be generated.
After this single step (and, of courese, rebooting), all was solved. I got back my native resolution using Intel's driver.
was filed but it was under Fedora 16, which came to the end of its life before more could be developed. At no point did someone try to boot with "no splash", which was the only way I could see the real error.