Linux is the world’s most ubiquitous operating system. Originally developed for personal computers and released in 1991, Linux quickly spread across platforms and established itself as one of the most successful free and open source software projects of all time. Today you’ll find Linux in automobiles and rockets, airliners and air conditioning control systems, movie theaters and military technology.
Embedded Linux Development
From heavy industrial systems through to consumer kitchen electronics, Witekio’s embedded Linux experience in unsurpassed and clients regularly return to our teams to provide the embedded software they need to move their innovations to market.
At Witekio our engineers can customize an embedded Linux system tailored to your specific needs and end users. With more than two decades of experience in developing custom BSPs and adapting the Linux operating system to diverse products and industries, Witekio has the expertise to help you develop your own custom embedded Linux system.
Why Linux Embedded?
There are many reasons to choose Linux for embedded systems. The first and perhaps most obvious is the price: Linux is free. With no cost to adopting the operating system, embedded Linux puts you ahead of commercial alternatives from a financial perspective on day one.
Yet beyond the cost advantage, embedded Linux development also offers a range of other advantages for embedded systems. Linux comes with robust features thanks to its multi-threaded, multi-function OS. Like other Unix based systems, embedded Linux offers graphical features, communications features and all the other standard elements that IoT developers expect.
Embedded Linux systems are also infinitely scalable and can run on everything from the smallest boards and flash storage through to the most powerful cloud servers. This means easier and more rapid upgrades to firmware and embedded systems and improved compatibility across devices, workstations, and servers.
Linux is easily customized meaning that adaptation to a specific use case, device, or product platform is not only possible but fast. The sheer number of different Linux deployment use cases is overwhelming, and it is the first operating system to power human-built devices on another planet.
Importantly, the breadth of adoption of Linux and its deployment as Linux for embedded systems means that there is an enormous support community of developers and other Linux experts. Should a product run into problems in design, development or after launch and deployment, this support community and the extensive documentation that has developed around Linux after years of embedded systems use is more than helpful. There are Linux User Groups in many countries that can help with problems small and large, and an extensive community of users keen to contribute.
Embedded Linux Development
Witekio developers are experts in Linux embedded systems development, Yocto, and buildroot. As a one-stop shop for the development, design, and delivery of Linux systems for IoT and embedded systems, we serve clients in every industrial vertical no matter their size. The adaptable Linux kernel sits at the heart of many of our hundreds of projects every year, and our end-to-end offer means we can always meet your needs for security, performance, and end-user experience.
There are six primary components in our Embedded Linux Development offer:
The design of an embedded Linux system is essential to delivering a final product that meets the needs of the end user and the expectations of the product owners. A stable, scalable, and easily updateable embedded system architecture built on the back of market leading IoT expertise are the hallmarks of Witekio’s embedded Linux system design.
With the broad experience that comes from serving clients in a variety of verticals across more than two decades, Witekio’s Linux developers have the skills to deliver and optimize Linux codebases and deploy custom operating systems tailored to every project. Whether low-level work or a platform for applications on mobile devices, Witekio can deliver for you.
Today’s IoT devices demand connectivity to the cloud and to each other. The future success of your connected Linux-based product and its capacity to expand and grow as you continue to innovate relies on making the right connectivity choices during the development phase aided by Witekio experts.
If little attention is paid to Linux device security, your IoT and embedded software solutions risk falling victim to bad actors, data leaks, a collapse in end user confidence and trust, and potentially irreparable impacts to your professional reputation. By making the right choices during the development phase of your embedded Linux project, you can mitigate risks and avoid problems before they emerge.
While Linux is a popular choice for embedded software and IoT device software projects, it is possible that a previous iteration of a product used a different operating system or kernel. In such cases a migration is required and, whether this is to add functionality available on Linux or a device moving closer to a planned end of support point, Witekio has the know-how and expertise to make execute the OS migration effectively.
Finally, thanks to Witekio’s deep understanding of Linux, our engineers and developers can improve the performance of a device, decrease the load on a battery, improve the end user experience, and optimize the code of the kernel to deliver a fully functional and optimized user experience.
Every IoT device demands investment in security. Embedded device security, like cybersecurity in general, requires adopting end-to-end security protocols and attack surface reduction. Focusing on those two Linux security avenues delivers a better, more secure, and more robust embedded system, and Witekio has the experience to secure your devices efficiently and effectively.
End-to-end security means optimizing security across five channels. First is the device authentication to server. The board inside your IoT device needs to be reviewed for known attack vectors – in particular passwords hardcoded in the device – and the data connection between the device and the server needs to be secured to maintain the integrity of the data and avoid leaks and hacks.
Second is the server authentication to the device, a common attack vector in poorly secured systems. The connection between the device and the server needs to be secured in both directions. Third, the embedded Linux on your device needs to have secure session keys established. The public keys and the exchange of these keys between servers and devices keep the data safe and securing them helps avoid the reputational and financial costs of hacks.
Fourth and finally, end-to-end security of the embedded Linux system on a device means maintaining both the integrity and confidentiality of your data. End users value this security and by maintaining their trust you can remain a preferred partner moving forward.
Attack surface reduction is also a multi-faceted security element of an embedded Linux system. Witekio engineers work to complete an attack surface analysis by probing your device for vulnerabilities and assessing the extent of your exposure to risk. Based on this analysis, a full risk assessment is developed, and while selecting Linux for your embedded system can help reduce the risk of an attack by a bad actor, there are still opportunities to beef-up device security.
Having completed both an attack surface analysis and risk assessment, Witekio experts can design a custom security solution for your embedded Linux system, often including one or more of at least three strategies: reducing the amount of code, diminishing the number of device and server entry points, and eliminating any service not used or under-used by end users.
Linux Kernel Debugging
There are different means of Linux kernel debugging available to device owners and developers that adopt Linux for embedded systems:
Debugging with printk: Possible the most basic way to debug is by reviewing the output of the printk. Most everyday debugging is done by adding print statement to the code of the kernel using the printk function. It is a simple, effective, and inexpensive means to determine where a problem in the embedded Linux deployment.
Debugging with KGDB: With two machines connected via a serial connection, a third alternative debugging tool is KGDB. Also available on a GNU General Public License, it’s a specific version of Gdb modified to allow the debugging of the kernel for specific Linux architectures.
Witekio has expertise debugging the Linux kernel on all the most popular standardized embedded device build systems. Whether it is Yocto, OpenEmbedded, Buildroot, OpenWrt or LTIB, Witekio engineers have the experience and knowledge to ensure that your device is bug free on launch, and that upgrades are pushed smoothly and without introducing additional code issues to the device.
Developing and deploying an embedded Linux system is only part of ensuring a secure, reliable, and robust product or device. Once the device is on the market, it needs to be maintained and security issues addressed before they become overwhelming. Witekio, as experts in embedded Linux systems, have all the experience necessary to help device owners maintain their Linux devices after deployment and across its lifespan.
Witekio helps device owners to keep all their Linux BSPs, Linux Kernel, and other Linux modules up to date. We monitor security issues and provide patches for Linux software components, and work to increase the robustness of the BSP thanks to continuous improvements in the test suite. Through its maintenance service, the Witekio team provides and released fully tested revisions of your Linux operating system at least four times per year.
Thanks to Witekio’s embedded Linux maintenance offer, device owners win on several fronts. They become less reactive and more proactive thanks to the monitoring that Witekio does consistently on their behalf across the year. There are productivity gains, too, thanks to Witekio engineers developing the update patches and Common Vulnerabilities and Exposures database integrations, saving precious developer hours. The vulnerability monitoring means improvements in overall system security and – on the financial side – there are cost control benefits from having a fixed-rate contract instead of outsourcing under stress and at high marginal costs only when issues arise.
Embedded Linux Development on Hardware
Embedded Linux development is common on a variety of hardware; indeed, that heterogeneity is part of what makes Linux so popular for development projects, and what’s responsible for Linux being deployed on everything from mobile phones to Mars missions!
Witekio works with hardware partners to develop embedded Linux software for clients in a variety of domains. Nvidia’s Jetson platform, for example, is a popular choice for clients that have grand ambitions for their products in AI or image processing. The Jetson platform is a Linux system that is reliable, easy to customizer, and production ready. Witekio supports the entire software manufacturing process, tools, and instructions, to bring your device to life including flashing, secure boot provisioning, unique device certificates and provisioning.
Witekio works with manufacturers including market-leaders like Texas Instruments (AM335X, AM437X) and ST Microelectronics, and including the latter’s STM32MP1 platform. We bring our embedded Linux software development expertise to their cards and are one of the most important partners to NXP and their i.MX family of processors.
In addition to working closely with these hardware partners for Linux on CPUs, we have built a near 20 year-long collaboration with The Linux Foundation and the Witekio team regularly share their deep knowledge at Embedded Linux Conferences, in Linux training sessions, and in workshops for clients.