Ensuring the kernel and the drivers you ship meet the requirements of your underlying hardware platform is key to your product’s success. We know that having the wrong driver or an inappropriate integration with your platform can cause a bad experience to the users or, in the worst case, can make your product fail.
Embedded Linux consultancy
Igalia has been working with Linux based distributions since its inception: from classic distributions oriented to desktops like Fedora, Debian or Ubuntu to distributions created specifically for embedded environments.
We are familiar with several build automation tools and frameworks such as the simple but agile Buildroot and the fully cross-compiled framework OpenEmbedded, adopted by the Yocto project, that enables a fast and repeatable development of Linux distributions and ports to specific hardware platforms. We are also experienced in porting software developed for traditional GNU/Linux stacks to other operating systems such as Android.
Linux device drivers
Igalia has a team of engineers specialized in Linux device drivers for a variety of areas. Among them, we highlight our experience in the following ones:
- Graphics drivers: Igalia has been contributing to Mesa, the open-source and user-space library implementation of the OpenGL and Vulkan specifications for a variety of hardware platforms. Specifically, we contribute to the driver for Intel GPUs with OpenGL and Vulkan APIs.
- Networking drivers: We have experience with developing user space network drivers for fast ethernet cards. For example, we have implemented support for the VMDq and RSS features for Intel’s 82599 network cards. We also improved the performance of the Virtio 1.1 guest driver in Snabb.
- Driver integration: We can integrate the Linux kernel and existing drivers to meet your specific software stack needs. We have experience adapting and writing existing Linux device drivers (both user and kernel spaces) to work on new embedded platforms.
We offer a variety of services around Linux embedded environments and device drivers:
- Adapting Linux distributions to specific hardware requirements.
Writing, porting and maintaining drivers either upstream or in your own private repositories.
Porting software from regular GNU/Linux stacks to embedded operating systems.
- Ensuring proper integration of Linux technologies into your platform.