Introduction to Libdrm
        
        
          Libdrm provides a userspace
          library for accessing the direct rendering manager (DRM) on
          operating systems that support the ioctl interface. Libdrm is a
          low-level library, typically used by graphics drivers such as the
          Mesa DRI drivers, the X drivers, libva and similar projects.
        
        
          ![[Note]](../images/note.png) 
          
            Note
          
          
            Development versions of BLFS may not build or run some packages
            properly if LFS or dependencies have been updated since the most
            recent stable versions of the books.
          
         
        
          Package Information
        
        
        
          libdrm Dependencies
        
        
          Recommended
        
        
          Xorg
          Libraries (for Intel KMS API support required by Mesa)
        
        
          Optional
        
        
          Cairo-1.18.4 (for tests), CMake-4.1.2 (could
          be used to find dependencies without pkgconfig files), docbook-xml-4.5, docbook-xsl-nons-1.79.2, docutils-0.22.2, and libxslt-1.1.43
          (to build manual pages), libatomic_ops-7.8.4 (required by
          architectures without native atomic operations), Valgrind-3.26.0, and CUnit (for AMDGPU tests)
        
       
      
        
          Installation of Libdrm
        
        
          Install libdrm by running the
          following commands:
        
        mkdir build &&
cd    build &&
meson setup --prefix=$XORG_PREFIX \
            --buildtype=release   \
            -D udev=true          \
            -D valgrind=disabled  \
            ..                    &&
ninja
        
          To check the results, issue ninja
          test.
        
        
          Now, as the root user:
        
        ninja install
       
      
        
          Command Explanations
        
        
          --buildtype=release:
          Specify a buildtype suitable for stable releases of the package, as
          the default may produce unoptimized binaries.
        
        
          -D udev=true: This
          parameter enables support for using Udev instead of mknod.
        
        
          -D valgrind=disabled: This
          parameter disables building libdrm with valgrind support. This
          fixes building some packages that use libdrm. Change this parameter
          to "enabled" (or remove it) if you need support for valgrind.