Intel HD4000 Support

  • Thread starter Deleted member 13721
  • Start date
D

Deleted member 13721

Guest
Hello,

Just wondering, does FreeBSD 9.1 support the Ivy Bridge HD4000? I'm having issues with it. It tells me "No Screens Found". Is the HD4000 just not supported or did I miss something? I put the appropriate lines into /etc/make.conf, compiled Xorg, installed the most recent Intel driver from ports, and even recompiled the kernel, but no dice.

Any help would be greatly appreciated.
 
I'm trying to get it working with 9.1 RC3. If it's not to be ready until RELEASE, then I can certainly wait.
 
G_Nerc said:
Good day!
I have HD4000 and it well works on FreeBSD-CURRENT amd64

I assume that's 10 CURRENT? Good to know it works somewhere down the pipe. Kinda hoping it will work with 9.1 RELEASE too. :p
 
There is this advice from the freebsd-x11 mailing list:

To get a more resent xorg distribution than the default in ports, please
add WITH_NEW_XORG to /etc/make.conf. That should give you support for
more recent intel graphics cards. You can also get the experimental
xorg repo using svn, see http://wiki.freebsd.org/Xorg for details. The
experimental xorg repo contains the latest xorg packages that has been
ported to FreeBSD, and should in general work, but as usual, no guarantees.
Regards!
--
Niclas Zeising

(Taken from http://lists.freebsd.org/pipermail/freebsd-x11/2012-October/012517.html)

As totally unsupported help, I can offer you the attached tar file which configures ports that work for me (also HD 4000).

Unpack tar into /usr/ports.

Don't forget to add this to your /etc/make.conf:

Code:
WITH_NEW_XORG="YES"
WITH_KMS="YES"

Rebuild order is (I think):

  1. graphics/libdrm
  2. graphics/libGL
  3. graphics/libGLU
  4. graphics/dri
  5. x11-drivers/xf86-video-intel

Doesn't seem like I needed to rebuild x11-servers/xorg-server after all?
(Still on version 1.10.6)

Included in my /etc/X11/xorg.conf I have:

Code:
Section "ServerFlags"
        Option          "DRI2"          "True"
        Option          "AIGLX"         "True"
EndSection

and in the "Device" section there is also:

Code:
        Option      "AccelMethod" "sna"

Dom
 

Attachments

  • FreeBSD-Mesa-8.0.5-intel-2.20.12.tar.bz2
    6.9 KB · Views: 342
dohmniq said:
There is this advice from the freebsd-x11 mailing list:



(Taken from http://lists.freebsd.org/pipermail/freebsd-x11/2012-October/012517.html)

As totally unsupported help, I can offer you the attached tar file which configures ports that work for me (also HD 4000).

Unpack tar into /usr/ports.

Don't forget to add this to your /etc/make.conf:

Code:
WITH_NEW_XORG="YES"
WITH_KMS="YES"

Rebuild order is (I think):

  1. graphics/libdrm
  2. graphics/libGL
  3. graphics/libGLU
  4. graphics/dri
  5. x11-drivers/xf86-video-intel

Doesn't seem like I needed to rebuild x11-servers/xorg-server after all?
(Still on version 1.10.6)

Included in my /etc/X11/xorg.conf I have:

Code:
 Section "ServerFlags"
        Option          "DRI2"          "True"
        Option          "AIGLX"         "True"
EndSection

and in the "Device" section there is also:

Code:
        Option      "AccelMethod" "sna"

Dom

Thanks, although it did not work. It still refuses to run X, with the messages:


Code:
X.Org X Server 1.10.6
Release Date: 2012-02-10
X Protocol Version 11, Revision 0
Build Operating System: FreeBSD 9.1-RC3 amd64 
Current Operating System: FreeBSD ShankRiver 9.1-RC3 FreeBSD 9.1-RC3 #0: Wed Nov  7 18:35:10 EST 2012     root@ShankRiver:/usr/obj/usr/src/sys/SHANKRIVER amd64
Build Date: 08 November 2012  01:34:56AM
 
Current version of pixman: 0.24.2
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Fri Nov  9 16:21:46 2012
(==) Using default built-in configuration (21 lines)
(EE) Failed to load module "fbdev" (module does not exist, 0)
(EE) No devices detected.

Fatal server error:
no screens found

Please consult the The X.Org Foundation support 
         at http://wiki.x.org
 for help. 
Please also check the log file at "/var/log/Xorg.0.log" for additional information.

xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
 
This line in your output:

Code:
(==) Using default built-in configuration (21 lines)

Suggests that your /etc/X11/xorg.conf file isn't being read. Whereas my /var/log/Xorg.0.log says:

Code:
[    36.933] (==) Using config file: "/etc/X11/xorg.conf"

My /etc/X11/xorg.conf reads:
(Quite a lot was auto-generated by PCBSD)

Code:
Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
        Option          "AutoAddDevices" "false"
        Option          "AutoEnableDevices" "false"
EndSection

Section "Files"
        ModulePath   "/usr/local/lib/xorg/modules"
        FontPath     "/usr/local/lib/X11/fonts/misc/"
        FontPath     "/usr/local/lib/X11/fonts/TTF/"
        FontPath     "/usr/local/lib/X11/fonts/OTF/"
        FontPath     "/usr/local/lib/X11/fonts/Type1/"
        FontPath     "/usr/local/lib/X11/fonts/100dpi/"
        FontPath     "/usr/local/lib/X11/fonts/75dpi/"
EndSection

Section "Module"
        Load  "dbe"
        Load  "dri"
        Load  "dri2"
        Load  "extmod"
        Load  "record"
        Load  "glx"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/sysmouse"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
        Identifier   "Monitor0"
EndSection

Section "ServerFlags"
        Option          "DRI2"          "True"
        Option          "AIGLX"         "True"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "DRI"                       # [<bool>]
        #Option     "ColorKey"                  # <i>
        #Option     "VideoKey"                  # <i>
        Option     "FallbackDebug"      "True"  # [<bool>]
        #Option     "Tiling"                    # [<bool>]
        #Option     "LinearFramebuffer"         # [<bool>]
        #Option     "Shadow"                    # [<bool>]
        #Option     "SwapbuffersWait"           # [<bool>]
        #Option     "TripleBuffer"              # [<bool>]
        #Option     "XvPreferOverlay"           # [<bool>]
        #Option     "DebugFlushBatches" "True"  # [<bool>]
        #Option     "DebugFlushCaches"  "True"  # [<bool>]
        #Option     "DebugWait" "True"          # [<bool>]
        #Option     "HotPlug"                   # [<bool>]
        #Option     "RelaxedFencing"            # [<bool>]
        Option      "AccelMethod" "sna"
        Identifier  "Card0"
        Driver      "intel"
        BusID       "PCI:0:2:0"              # YOU WILL HAVE TO CHECK THIS!
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        SubSection "Display"
                Depth     32
        EndSubSection
EndSection

Note the comment "YOU WILL HAVE TO CHECK THIS!" as your Intel HD 4000 may be at a different PCI address to mine.

To check, run # pciconf -lv and you should see an entry like this:

Code:
vgapci1@pci0:0:2:0:     class=0x030000 card=0x05721028 chip=0x01668086 rev=0x09 hdr=0x00
    vendor     = 'Intel Corporation'
    class      = display
    subclass   = VGA

From which you can set the BusID. I think mine is actually wrong by virtue of being the old Xorg BusID addressing style but it still works.

I've attached a sample Xorg.0.log (bzip2 compressed) for you to compare against.
 

Attachments

  • Xorg.0.log.bz2
    5.6 KB · Views: 232
dohmniq said:
This line in your output:



Suggests that your /etc/X11/xorg.conf file isn't being read. Whereas my /var/log/Xorg.0.log says:

Code:
[    36.933] (==) Using config file: "/etc/X11/xorg.conf"

My /etc/X11/xorg.conf reads:
(Quite a lot was auto-generated by PCBSD)

Code:
Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
        Option          "AutoAddDevices" "false"
        Option          "AutoEnableDevices" "false"
EndSection

Section "Files"
        ModulePath   "/usr/local/lib/xorg/modules"
        FontPath     "/usr/local/lib/X11/fonts/misc/"
        FontPath     "/usr/local/lib/X11/fonts/TTF/"
        FontPath     "/usr/local/lib/X11/fonts/OTF/"
        FontPath     "/usr/local/lib/X11/fonts/Type1/"
        FontPath     "/usr/local/lib/X11/fonts/100dpi/"
        FontPath     "/usr/local/lib/X11/fonts/75dpi/"
EndSection

Section "Module"
        Load  "dbe"
        Load  "dri"
        Load  "dri2"
        Load  "extmod"
        Load  "record"
        Load  "glx"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/sysmouse"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
        Identifier   "Monitor0"
EndSection

Section "ServerFlags"
        Option          "DRI2"          "True"
        Option          "AIGLX"         "True"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "DRI"                       # [<bool>]
        #Option     "ColorKey"                  # <i>
        #Option     "VideoKey"                  # <i>
        Option     "FallbackDebug"      "True"  # [<bool>]
        #Option     "Tiling"                    # [<bool>]
        #Option     "LinearFramebuffer"         # [<bool>]
        #Option     "Shadow"                    # [<bool>]
        #Option     "SwapbuffersWait"           # [<bool>]
        #Option     "TripleBuffer"              # [<bool>]
        #Option     "XvPreferOverlay"           # [<bool>]
        #Option     "DebugFlushBatches" "True"  # [<bool>]
        #Option     "DebugFlushCaches"  "True"  # [<bool>]
        #Option     "DebugWait" "True"          # [<bool>]
        #Option     "HotPlug"                   # [<bool>]
        #Option     "RelaxedFencing"            # [<bool>]
        Option      "AccelMethod" "sna"
        Identifier  "Card0"
        Driver      "intel"
        BusID       "PCI:0:2:0"              # YOU WILL HAVE TO CHECK THIS!
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        SubSection "Display"
                Depth     32
        EndSubSection
EndSection

Note the comment "YOU WILL HAVE TO CHECK THIS!" as your Intel HD 4000 may be at a different PCI address to mine.

To check, run # pciconf -lv and you should see an entry like this:

Code:
vgapci1@pci0:0:2:0:     class=0x030000 card=0x05721028 chip=0x01668086 rev=0x09 hdr=0x00
    vendor     = 'Intel Corporation'
    class      = display
    subclass   = VGA

From which you can set the BusID. I think mine is actually wrong by virtue of being the old Xorg BusID addressing style but it still works.

I've attached a sample Xorg.0.log (bzip2 compressed) for you to compare against.


Code:
This is what my pciconf -lv says about my intel video.

vgapci1@pci0:0:2:0:     class=0x030000 card=0x14571043 chip=0x01668086 rev=0x09 
hdr=0x00
    vendor     = 'Intel Corporation'
    class      = display
    subclass   = VGA

All of the information is the same except the card field.:\

I get different results if I put the xorg.conf in the proper folder. It will specify vesa and give me x86 opcode errors when I try to start X. If I change the driver to Intel, it tells me "No devices detected".

The files you provided previously(Mesa, etc), are for 32 bit or 64 bit?
 
The tar contains Makefiles, patches, etc. which are all text files but no binaries so 32bit/64bit-ness doesn't really apply.

As we have nearly the same hardware at the same bus ID, could you try my xorg.conf and then attach your Xorg.0.log (bzip2 compressed) to a reply?
 
Well I was about to collect the Xorg log, after seeing it not work again. I just decided to try putting it back exactly as it was in yours (without the extra 0) and amazingly this time it actually loaded an Xwindows desktop.

Thank you very much for your help. I can finally run FreeBSD on my Intel graphics.:e
 
wblock@ said:
BusID is not needed at all unless there is more than one video card.

This is a dual GPU laptop(Nvidia Optimus). I didn't mention that before, because I didn't think it was important.
 
In that case, the usual advice is to disable one of the video cards in the BIOS. But it would also be nice if you could just set up xorg.conf for the one that works and ignore the other one.
 
wblock@ said:
In that case, the usual advice is to disable one of the video cards in the BIOS. But it would also be nice if you could just set up xorg.conf for the one that works and ignore the other one.

I've heard there are some laptops that do allow you to disable Optimus and just use the Intel graphics, this laptop does not give me an option to turn off Optimus. The autoconfig for X failed to identify my devices properly, but with some help it all worked out.:p.

Maybe the FreeBSD foundation will get FreeBSD capable of dealing with Optimus someday. Then we could all use our Nvidia cards again. Until then I'm content to use the Intel.
 
zspider said:
Maybe the FreeBSD foundation will get FreeBSD capable of dealing with Optimus someday.
That's the tail wagging the dog. I don't see people saying "Maybe Microsoft will get Windows capable of dealing with XXX someday". If the vendor doesn't supply the driver then there's a ton of work FreeBSD needs to accomplish that same task.
 
Notice how I said someday, I don't expect it to happen anytime soon, if ever. It was also not a complaint, so there's no need to get up in peoples face about it.
 
That's quite interesting! I had seen in another thread that you have an Optimus-enabled laptop and I wasn't expecting it to work at all. I've seen many Linux users not being able to make either GPUs work (they just got black screens). Only machines with a hardware or BIOS on-off switch occasionally worked.
 
zspider said:
Notice how I said someday, I don't expect it to happen anytime soon, if ever. It was also not a complaint, so there's no need to get up in peoples face about it.

My point is that many people expect the operating system to somehow have control over proprietary device driver software when they rarely do.
 
drhowarddrfine said:
My point is that many people expect the operating system to somehow have control over proprietary device driver software when they rarely do.

I know, short of Nvidia wanting to do it, and the necessary infrastructure on the FreeBSD side, it can never happen. The Intel graphics is respectable, it's been running nicely since I got it working. Forgive me for misunderstanding what you said earlier.:)
 
Hi, Mr. dohmniq,

Thank you for your post. I've tried to upgrade Mesa and xf86-video-intel by using your tar file, since I want to use the sna acceleration. Unfortunately, I got an error at compile of xf86-video-intel. The error message is following. Do you have some ideas?

Code:
/usr/local/include/intel_bufmgr.h:108 error: expected declaration specifiers or '...' before 'drm_clip_rect_t'
I'm using a fresh FreeBSD 9-Stable. I followed the order you wrote. Thank you in advance.

Regards, Taka
 
drhowarddrfine said:
That's the tail wagging the dog. I don't see people saying "Maybe Microsoft will get Windows capable of dealing with XXX someday". If the vendor doesn't supply the driver then there's a ton of work FreeBSD needs to accomplish that same task.

However, to put this in context, Microsoft does provide a stable driver ABI for the third party to code their driver(s) against, which probably makes it a lot easier for said third party to write and maintain a driver.
 
Back
Top