[SOLVED] Intel HD Graphics 4000 - Needed kernel upgrade
SlackwareThis Forum is for the discussion of Slackware Linux.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Hello all, I just bought a new laptop and long story short I needed to upgrade the kernel to 3.4.4 to have a usable system.
System76 Gazelle Professional Laptop
3rd Gen Intel Core i7-3720QM Processor (2.60 GHz 6MB L3 Cache)
Intel HD Graphics 4000
8 GB Dual Channel DDR3 SDRAM at 1600MHz
750 GB 7200 RPM SATA II
Intel Centrino Advanced-N 6235 - 802.11A/B/G/N Wireless LAN + Bluetooth Combo
It came pre-installed with Ubuntu 12.04 LTS 64 bit. My goal is to get Slackware up and running on it. I installed Slackware64-current (Sat Jun 16 16:19:36 UTC 2012) using a USB boot stick and external hard drive with no problems.
First problem: Unable to boot using KMS. The beginning of the boot process works (I can see text flying by), but as soon as the screen is resized the display goes black and occasionally flashes.
Solution: Boot with the "nomodeset" parameter. I'm even able to startx from here to start KDE. This works for both generic and huge kernels. I've attached the outputs of dmesg, lsmod, lspci, and the Xorg log. You can see the vesa driver is being used instead of the Intel driver. Trying to switch away from VT7 to VT1 or 2 causes the system to freeze up. Logging out of KDE causes the system to freeze as well.
Second problem: I want to use the Intel driver (and KMS).
Solution: I decided to try upgrading to the latest kernel (3.4.4). I used make oldconfig, starting with the Slackware kernel config to try to keep as close to vanilla Slackware as possible. I also removed some hardware support for devices my laptop doesn't have. This worked - I can now boot without the nomodeset parameter, and the Intel driver is used when starting X. I discovered a new problem, though...
Third problem: Wireless device not recognized. Checking dmesg shows:
iwlwifi 0000:02:00.0: request for firmware file 'iwlwifi-6000g2b-6.ucode' failed.
Solution: Examining Slackware's installed packages and a bit of searching led me to http://intellinuxwireless.org/iwlwif...184.108.40.206.tgz, which includes iwlwifi-6000g2b-6.ucode. After placing that file in /lib/firmware/ and reloading the iwlwifi kernel module, wireless now works.
The logs-3.2.13.txt attachment has the outputs of dmesg, lsmod, lspci -v, and /var/log/Xorg.0.log from running the vanilla 3.2.13 Slackware kernel. The logs-3.4.4.txt attachment has the outputs of dmesg, lsmod, lspci -v, /var/log/Xorg.0.log, and glxinfo from running my 3.4.4 kernel.
I realize this kind of weird because I'm not actually asking a question, but I wanted to put this information up in case someone else has a similar problem. My Google searches weren't turning up anything useful, so I just tried upgrading the kernel to see if it would work for me.
A computer like that, on an Intel HD X000 video card is quite odd to me. Are you sure there isn't a second video card that the computer is capable of using, say an nVidia 6XXM or an AMD/ATi 7XXX (I'm guessing the model numbers because those tend to come with the newer intel CPU's, at least they do with HP laptops).
As for the Intel WiFi thing, is: iwlwifi-6xxx-ucode in Slackware not compatible? The one in the mirror is not version 220.127.116.11, instead it's version 18.104.22.168 but I would assume it's still somewhat capable (and at least this way pkgtool can keep track of it). Plus you can always use the .SlackBuild and other files Pat provides (e.g. slack-desc) to build a newer version of the iwlwifi-6xxx-ucode package that can still be managed with pkgtool.
For the changing terminals thing, I have no idea. I don't see how a computer with specs like that can't come with a more modern graphics card from AMD/ATi or nvidia, though. Perhaps it's disabled in the BIOS? Although I think lspci would still pick that up. :/
I can assure you the Intel card is the only graphics card. All of the current laptops from System76 currently have only Intel graphics cards. I only play games casually, and in addition I'm voting with my $ for hardware manufacturers that supply open-source drivers, so the Intel integrated graphics card is sufficient for me. For the wireless, Slackware provides /lib/firmware/iwlwifi-6000g2b-5.ucode, but the new kernel I'm using and my hardware require iwlwifi-6000g2b-6.ucode. You're right, I could build a new package, but it's just one file and I'm lazy. From my understanding booting with nomodeset is what keeps me from switching terminals. But with the new kernel I have no problem switching terminals. My problems arose because the hardware is so new.
Often you want to buy laptops that have been out on the market at least 6 months to 1 year to at least let any Linux distribution time to get hardware supported in the Testing/Development branches.
Also, I'm surprised that the Intel HD 4000 is using the older Tungsten Graphics DRI driver in Mesa rather than the newer Gallium3D driver. Your IGP does support the proper shader hardware model to use Gallium3D.
There are some new Gallium3D drivers that I haven't seen since I published my original unofficial Mesa package for 7.11, so you may want to run ./configure against the bare libmesa package to see what is new and available for Gallium3D.
The official intel GPU drivers do not use gallium3d. The gallium3d drivers are something a few of the mesa/vmware developers are working on, so you may want to double check if that's really the driver you want to use.
Yes, Gallium3D for some cards is still considered experimental, but I have gotten Gallium3D to work on various Intel 9x0 based graphics chips like the 945G/M without any penalties.
Intel only says to stick with the Tungsten driver because it works with all their GPUs past and present, not just some of them like the older 740, 810/815, 830, and other pre-9x0 series GPUs, but Gallium3D will support 915 and later GPUs.
There is also a new Radeon Gallium3D driver for newer AMD cards called radeonsi as well as some newer functionality drivers for certain other random hardware and driver formats that have been added recently. You could probably get away with building all the drivers, but for now the above coded option I posted is probably the safest at this time for all hardware.
The new -current update includes a new kernel (still 3.2, but maybe my problem was fixed) so I'd like to try that. Also I'd like to try the Gallium3D driver. I did check configure and i965 is not a valid option for --with-gallium-drivers.
-current also updated kernel-firmware, so maybe it includes iwlwifi-6000g2b-6.ucode.
According to Phoronix the i915 Gallium3D driver supports the following chipsets:
Intel 915/945/G33/Q33/Q35/Pineview IGPs
It's also noted from Phoronix that the 915 and 965 drivers are a bit behind the Tungsten Graphics DRI driver and as of 8.0.3 from checking the configuration files the 965 driver may have been removed/deprecated from the code build which supported the:
Out of my initial three problems number 3 is now solved in -current. kernel-firmware-20120622git-noarch-1.txz contains iwlwifi-6000g2b-6.ucode. Haven't checked yet if 1) and 2) are solved by the newest vanilla Slackware kernel in -current.
With the latest -current updates (new kernel 3.2.21) my graphics card now works (including KMS)! I'm now running a vanilla Slackware install; the only extra step was to make an initrd including the ext4 module as that's my root filesystem. It must have been a kernel bug that was causing my original graphics problems. Marking this as solved as all my original problems have been solved by Slackware itself.
ReaperX7, thanks for all the suggestions but since I have a working setup I'm no longer motivated to investigate further for what would most likely be a small or non-existant performance improvement. I may upgrade kernels, though, since my hardware is so new I might see performance improvements.