Embedded Linux Projects Using Yocto Project Cookbook

Total Page:16

File Type:pdf, Size:1020Kb

Embedded Linux Projects Using Yocto Project Cookbook www.it-ebooks.info Embedded Linux Projects Using Yocto Project Cookbook Over 70 hands-on recipes for professional embedded Linux developers to optimize and boost their Yocto know-how Alex González BIRMINGHAM - MUMBAI www.it-ebooks.info Embedded Linux Projects Using Yocto Project Cookbook Copyright © 2015 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: March 2015 Production reference: 1240315 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78439-518-6 www.packtpub.com Cover image by Alex González ([email protected]) www.it-ebooks.info Credits Author Project Coordinator Alex González Rashi Khivansara Reviewers Proofreaders Burt Janz Simran Bhogal Dave (Jing) Tian Clyde Jenkins Javier Viguera Indexer Commissioning Editor Tejal Soni Nadeem N. Bagban Production Coordinator Acquisition Editor Alwin Roy Owen Roberts Cover Work Content Development Editor Alwin Roy Natasha DSouza Technical Editor Prajakta Mhatre Copy Editors Puja Lalwani Aditya Nair Vikrant Phadke www.it-ebooks.info Foreword If we look back at the last 15 years of the field of embedded systems, we will see that everything has changed radically. Embedded systems have become more and more powerful and have gained new functionalities. Today, you can find "embedded" quad-core systems with 1 GB of RAM and several GBs of storage, comparable to a few-years-old desktop computer. Nowadays, it is not unusual that the requirements of an embedded system are low consumption, graphic acceleration, multimedia capabilities, sufficient storage, and so on. On the software side, if we look back again at those 15 years, we will notice that most of the Linux-running embedded systems at that time were in-house developments built from the ground up. Their main functionality was to boot the device and run the specific application (usually not graphical) the device was designed for. A typical system from those days contained a minimal Linux kernel, a small C library (uclibc), BusyBox as the base user space, and then the specific application or set of applications. As the hardware became more powerful and gained more functionalities, the requirements of the software also increased. With embedded systems becoming powerful enough to run distributions that were considered mostly for desktops (such as Debian or Ubuntu), it's no longer as easy as building a minimal set of software packages (uclibc, BusyBox, and a command-line application) anymore. You now have to choose between different windowing systems (X11, Wayland, and so on) and different graphic libraries (Qt, GTK, and so on). Maybe your hardware has dedicated units for video processing (VPU) or graphics processing (GPU) and is running its own firmware, and so on. All of this extra difficulty is what makes an embedded software engineer look for new tools that ease their work and speed up the development. This is the context where different Linux build systems began to appear. The first build system to show up was Buildroot. It has its roots in the uClibc project. The initial goal of Buildroot was to build a root filesystem based on the uclibc library for testing purposes. Buildroot is based on a Makefile's structure, kconfig as the configuration tool, and patches that apply to the different software packages before being built. These days, Buildroot supports multiple architectures, and apart from root filesystem images, it also can build kernel and bootloader images. www.it-ebooks.info A bit later, OpenEmbedded was born. Its goal is a bit different because it is defined as a Linux distribution builder. OpenEmbedded is based on recipes interpreted by the BitBake build engine. BitBake in turn is a tool derived from portage (Gentoo's distribution package manager). An interesting feature about OpenEmbedded is that the recipes can specify dependencies between packages, and later on, BitBake parses all the recipes and creates a queue of tasks in the correct order to fulfill the dependencies. Two examples of distributions created with OpenEmbedded are Angstrom and OpenMoko. Another OpenEmbedded-based distribution was Poky Linux. This has special importance because it's the way that leads to Yocto. The Yocto Project is an open source project whose goal is to provide the tools that help build Linux-based embedded systems. Under the umbrella of the Yocto Project, there are multiple software projects, such as Poky, the BitBake build engine, and even OpenEmbedded-Core. These are probably the main projects, but by no means, the only projects. In this new phase, Poky (the former Linux distribution) became the reference system of the Yocto Project, being the build system of the Yocto Project these days and using the BitBake build engine and OpenEmbedded-Core metadata (recipes, classes, and configuration files) underneath. This is the reason people tend to confuse the Yocto Project with the Poky build system. Poky is a nearly complete solution for embedded software engineering teams. It allows you to create a distribution for your hardware. It also allows you to create a software development kit (SDK) tailored for your distribution. This SDK may be used by other engineers in a team to compile the user-space applications that will later run on your Linux system. The price to pay for the functionality Poky provides is a steep learning curve compared to other build systems. Alex González's contribution with Embedded Linux Projects Using Yocto Project Cookbook is of great help to overcome that steep learning curve. The practical focus of this book and its structure in the form of short recipes help you resolve specific problems that you may find along the way when building an embedded product. So please enjoy and learn from this book. In return for the invested time, you will get deeper knowledge of embedded system development with the help of the Yocto Project. Javier Viguera Embedded Software Engineer at Digi International www.it-ebooks.info About the Author Alex González is software engineering supervisor at Digi International and one of the maintainers of the Digi Embedded Yocto distribution. He started working professionally with embedded systems in 1999 and the Linux kernel in 2004, designing products for voice and video over IP networks, and followed his interests into machine-to-machine (M2M) technologies and the Internet of Things. Born and raised in Bilbao, Spain, Alex has his second home in the UK, where he lived for over 10 years and received his MSc in communication systems from the University of Portsmouth. He currently lives in La Rioja, where he enjoys photography and a good Riojan wine. I would like to thank the Yocto and OpenEmbedded communities, whose dedication keeps the Yocto project running, and the people involved with the Freescale BSP community layer, whose work is the basis for this book. I would also like to thank my family, for the time, space, and support that made this possible, and especially my mum for showing me how to be brave—gracias Ama por enseñarme a ser valiente. www.it-ebooks.info About the Reviewers Burt Janz has been involved with computing systems since he assembled his first microcomputer in the US Navy in 1975. Starting with the development of device drivers and low-level interfaces on *NIX systems in the early 1980s, he has been creating complex software products for over 30 years. His expertise includes the design and implementation of low-level operating system internals and device drivers, complex applications for embedded and handheld devices, and government- and enterprise-level systems. A graduate of Franklin Pierce College in 1988 (BSCS with high honors), Burt was an adjunct professor at Daniel Webster College for 11 years in their evening-based continuing education program, while developing embedded and enterprise-level software during the day. His curricula of instruction included courses ranging from a basic introduction to computers and programming languages (C, C++, and Java), networking theory and network programming, database theory, and schema design to artificial intelligence systems. Along the way, Burt has written magazine articles and other technical commentaries. He was also involved in one of the first over-the-counter Linux distributions, Yggdrasil, in 1994. Burt has designed complete embedded and enterprise-level software systems as a lead architect and has led teams from the requirements and design phases of new products to the phases of completion and delivery to customers. He has experience with x86, 68xxx, PPC, ARM, and SPARC processors. He continues to write kernel threads and kmods, open firmware device trees, drivers for new and proprietary hardware, FPGA I/P core interfaces, applications, libraries, and boot manager code. He can be contacted directly by e-mail at [email protected] or burt.janz@gmail. com or via LinkedIn. www.it-ebooks.info Dave (Jing) Tian is a graduate research fellow and PhD student in the Computer and Information Science and Engineering (CISE) Department at the University of Florida.
Recommended publications
  • RZ/G Verified Linux Package for 64Bit Kernel V1.0.5-RT Release Note For
    Release Note RZ/G Verified Linux Package for 64bit kernel Version 1.0.5-RT R01TU0311EJ0102 Rev. 1.02 Release Note for HTML5 Sep 7, 2020 Introduction This release note describes the contents, building procedures for HTML5 (Gecko) and important points of the RZ/G Verified Linux Package for 64bit kernel (hereinafter referred to as “VLP64”). In this release, Linux packages for HTML5 is preliminary and provided AS IS with no warranty. If you need information to build Linux BSPs without a GUI Framework of HTML5, please refer to “RZ/G Verified Linux Package for 64bit kernel Version 1.0.5-RT Release Note”. Contents 1. Release Items ................................................................................................................. 2 2. Build environment .......................................................................................................... 4 3. Building Instructions ...................................................................................................... 6 3.1 Setup the Linux Host PC to build images ................................................................................. 6 3.2 Building images to run on the board ........................................................................................ 8 3.3 Building SDK ............................................................................................................................. 12 4. Components ................................................................................................................. 13 5. Restrictions
    [Show full text]
  • OM-Cube Project
    OM-Cube project V. Hiribarren, N. Marchand, N. Talfer [email protected] - [email protected] - [email protected] Abstract. The OM-Cube project is composed of several components like a minimal operating system, a multi- media player, a LCD display and an infra-red controller. They should be chosen to fit the hardware of an em- bedded system. Several other similar projects can provide information on the software that can be chosen. This paper aims to examine the different available tools to build the OM-Multimedia machine. The main purpose is to explore different ways to build an embedded system that fits the hardware and fulfills the project. 1 A Minimal Operating System The operating system is the core of the embedded system, and therefore should be chosen with care. Because of its popu- larity, a Linux based system seems the best choice, but other open systems exist and should be considered. After having elected a system, all unnecessary components may be removed to get a minimal operating system. 1.1 A Linux Operating System Using a Linux kernel has several advantages. As it’s a popular kernel, many drivers and documentation are available. Linux is an open source kernel; therefore it enables anyone to modify its sources and to recompile it. Using Linux in an embedded system requires adapting the kernel to the hardware and to the system needs. A simple method for building a Linux embed- ded system is to create a partition on a development host and to mount it on a temporary mount point. This partition is filled as one goes along and then, the final distribution is put on the target host [Fich02] [LFS].
    [Show full text]
  • Fpm Documentation Release 1.7.0
    fpm Documentation Release 1.7.0 Jordan Sissel Sep 08, 2017 Contents 1 Backstory 3 2 The Solution - FPM 5 3 Things that should work 7 4 Table of Contents 9 4.1 What is FPM?..............................................9 4.2 Installation................................................ 10 4.3 Use Cases................................................. 11 4.4 Packages................................................. 13 4.5 Want to contribute? Or need help?.................................... 21 4.6 Release Notes and Change Log..................................... 22 i ii fpm Documentation, Release 1.7.0 Note: The documentation here is a work-in-progress. If you want to contribute new docs or report problems, I invite you to do so on the project issue tracker. The goal of fpm is to make it easy and quick to build packages such as rpms, debs, OSX packages, etc. fpm, as a project, exists with the following principles in mind: • If fpm is not helping you make packages easily, then there is a bug in fpm. • If you are having a bad time with fpm, then there is a bug in fpm. • If the documentation is confusing, then this is a bug in fpm. If there is a bug in fpm, then we can work together to fix it. If you wish to report a bug/problem/whatever, I welcome you to do on the project issue tracker. You can find out how to use fpm in the documentation. Contents 1 fpm Documentation, Release 1.7.0 2 Contents CHAPTER 1 Backstory Sometimes packaging is done wrong (because you can’t do it right for all situations), but small tweaks can fix it.
    [Show full text]
  • Setting up Your Environment
    APPENDIX A Setting Up Your Environment Choosing the correct tools to work with asyncio is a non-trivial choice, since it can significantly impact the availability and performance of asyncio. In this appendix, we discuss the interpreter and the packaging options that influence your asyncio experience. The Interpreter Depending on the API version of the interpreter, the syntax of declaring coroutines change and the suggestions considering API usage change. (Passing the loop parameter is considered deprecated for APIs newer than 3.6, instantiating your own loop should happen only in rare circumstances in Python 3.7, etc.) Availability Python interpreters adhere to the standard in varying degrees. This is because they are implementations/manifestations of the Python language specification, which is managed by the PSF. At the time of this writing, three relevant interpreters support at least parts of asyncio out of the box: CPython, MicroPython, and PyPy. © Mohamed Mustapha Tahrioui 2019 293 M. M. Tahrioui, asyncio Recipes, https://doi.org/10.1007/978-1-4842-4401-2 APPENDIX A SeTTinG Up YouR EnViROnMenT Since we are ideally interested in a complete or semi-complete implementation of asyncio, our choice is limited to CPython and PyPy. Both of these products have a great community. Since we are ideally using a lot powerful stdlib features, it is inevitable to pose the question of implementation completeness of a given interpreter with respect to the Python specification. The CPython interpreter is the reference implementation of the language specification and hence it adheres to the largest set of features in the language specification. At the point of this writing, CPython was targeting API version 3.7.
    [Show full text]
  • Operating System Components for an Embedded Linux System
    INSTITUTEFORREAL-TIMECOMPUTERSYSTEMS TECHNISCHEUNIVERSITATM¨ UNCHEN¨ PROFESSOR G. F ARBER¨ Operating System Components for an Embedded Linux System Martin Hintermann Studienarbeit ii Operating System Components for an Embedded Linux System Studienarbeit Executed at the Institute for Real-Time Computer Systems Technische Universitat¨ Munchen¨ Prof. Dr.-Ing. Georg Farber¨ Advisor: Prof.Dr.rer.nat.habil. Thomas Braunl¨ Author: Martin Hintermann Kirchberg 34 82069 Hohenschaftlarn¨ Submitted in February 2007 iii Acknowledgements At first, i would like to thank my supervisor Prof. Dr. Thomas Braunl¨ for giving me the opportunity to take part at a really interesting project. Many thanks to Thomas Sommer, my project partner, for his contribution to our good work. I also want to thank also Bernard Blackham for his assistance by email and phone at any time. In my opinion, it was a great cooperation of all persons taking part in this project. Abstract Embedded systems can be found in more and more devices. Linux as a free operating system is also becoming more and more important in embedded applications. Linux even replaces other operating systems in certain areas (e.g. mobile phones). This thesis deals with the employment of Linux in embedded systems. Various architectures of embedded systems are introduced and the characteristics of common operating systems for these devices are reviewed. The architecture of Linux is examined by looking at the particular components such as kernel, standard C libraries and POSIX tools for embedded systems. Furthermore, there is a survey of real-time extensions for the Linux kernel. The thesis also treats software development for embedded Linux ranging from the prerequi- sites for compiling software to the debugging of binaries.
    [Show full text]
  • Open Data User Guide.Pdf
    PARTICIPANT’S GUIDE Virtual Machine Connection Details Hostname: hackwe1.cs.uwindsor.ca Operating System: Debian 6.0 (“Squeeze”) IP Address: 137.207.82.181 Middleware: Node.js, Perl, PHP, Python DBMS: MySQL, PostgreSQL Connection Type: SSH Web Server: Apache 2.2 UserID: root Available Text Editors: nano, vi Password: Nekhiav3 UserID: hackwe Feel free to install additional packages or tools. Password: Imusyeg6 Google Maps API Important Paths and Links Follow this quick tutorial to get started Home Directory https://developers.google.com/maps/documentation/javascript/tutorial /home/hackwe The most common objects you will use are LatLng objects which store a lati- tude and longitude, and Marker objects which place a point on a Map object APT Package Management Tool help.ubuntu.com/community/AptGet/Howto LatLng Object developers.google.com/maps/documentation/javascript/reference#LatLng City of Windsor Open Data Catalogue Marker Object www.citywindsor.ca/opendata/Pages/Open-Data- developers.google.com/maps/documentation/javascript/reference#Marker Catalogue.aspx Map Object Windsor Hackforge developers.google.com/maps/documentation/javascript/reference#Map hackf.org WeTech Alliance wetech-alliance.com XKCD xkcd.com PARTICIPANT’S GUIDE Working with Geospatial (SHP) Data in Linux Node.js Python To manipulate shape files in Python 2.x, you’ll need the pyshp package. These Required Libraries instructions will quickly outline how to install and use this package to get GIS data out of *.shp files. node-shp: Github - https://github.com/yuletide/node-shp Installation npm - https://npmjs.org/package/shp To install pyshp you first must have setuptools installed in your python site- packages.
    [Show full text]
  • Op E N So U R C E Yea R B O O K 2 0
    OPEN SOURCE YEARBOOK 2016 ..... ........ .... ... .. .... .. .. ... .. OPENSOURCE.COM Opensource.com publishes stories about creating, adopting, and sharing open source solutions. Visit Opensource.com to learn more about how the open source way is improving technologies, education, business, government, health, law, entertainment, humanitarian efforts, and more. Submit a story idea: https://opensource.com/story Email us: [email protected] Chat with us in Freenode IRC: #opensource.com . OPEN SOURCE YEARBOOK 2016 . OPENSOURCE.COM 3 ...... ........ .. .. .. ... .... AUTOGRAPHS . ... .. .... .. .. ... .. ........ ...... ........ .. .. .. ... .... AUTOGRAPHS . ... .. .... .. .. ... .. ........ OPENSOURCE.COM...... ........ .. .. .. ... .... ........ WRITE FOR US ..... .. .. .. ... .... 7 big reasons to contribute to Opensource.com: Career benefits: “I probably would not have gotten my most recent job if it had not been for my articles on 1 Opensource.com.” Raise awareness: “The platform and publicity that is available through Opensource.com is extremely 2 valuable.” Grow your network: “I met a lot of interesting people after that, boosted my blog stats immediately, and 3 even got some business offers!” Contribute back to open source communities: “Writing for Opensource.com has allowed me to give 4 back to a community of users and developers from whom I have truly benefited for many years.” Receive free, professional editing services: “The team helps me, through feedback, on improving my 5 writing skills.” We’re loveable: “I love the Opensource.com team. I have known some of them for years and they are 6 good people.” 7 Writing for us is easy: “I couldn't have been more pleased with my writing experience.” Email us to learn more or to share your feedback about writing for us: https://opensource.com/story Visit our Participate page to more about joining in the Opensource.com community: https://opensource.com/participate Find our editorial team, moderators, authors, and readers on Freenode IRC at #opensource.com: https://opensource.com/irc .
    [Show full text]
  • Different Display Configurations on the I.MX31 Linux PDK by Multimedia Application Division Freescale Semiconductor, Inc
    Freescale Semiconductor Document Number: AN4182 Application Note Rev. 0, 08/2010 Different Display Configurations on the i.MX31 Linux PDK by Multimedia Application Division Freescale Semiconductor, Inc. Austin, TX This application note provides the necessary information, Contents considerations, and procedures to add or adapt a new Liquid 1. Introduction . 1 2. LCD Generalities . 3 Crystal Display (LCD) panel to the Board Support Package 3. IPU-SDC Generalities . 5 (BSP) distribution for the i.MX31 Product Development Kit 4. Display Configuration in Linux . 23 (PDK). The application note describes the general LCD 5. References . 50 panel information and generalities of the display controller 6. Revision History . 50 module. The application note also describes the development process to adapt a new LCD panel to the BSP, considering that the framework driver structure is already provided by the operating system. NOTE This application note assumes that the reader is familiar with the Linux Target Image Builder (LTIB) and Linux device driver development concepts. 1 Introduction The i.MX31, which is a multimedia processor, supports several types of displays. The display devices are handled by a special module called the Image Processing Unit (IPU). © 2010 Freescale Semiconductor, Inc. All rights reserved. Introduction The IPU module handles other graphic interfaces that include cameras and 2D graphics accelerators. These are the IPU submodules that are connected by a private DMA interface (IDMA) and is used by the IPU to transfer data among the modules and between the IPU and external memory. Figure 1 shows the functional diagram of the IPU module. Sync & IPU Control Pixel 3 Video Camera Camera Memory MCU Sources Interface Processing In te rfa ce Image Enhancement IDMA & Conversion Memory Display D isp lays Display Interface Processing Figure 1.
    [Show full text]
  • Write Image to Framebuffer Linux
    Write Image To Framebuffer Linux I've have to write functions to save off the frame buffer to disk to that they could be viewed at later times. write (image, "jpg", f); Note! image is the variable that stores the image that we want to write (save). This section covers how to install pip, setuptools, and wheel using Linux package managers. DiskInternals Linux Reader is a freeware runs under Windows and allows you to browse Ext2, Ext3, Ext4, ReiserFS and Mac OS X HFS, HFS+ file systems. These instructions are generic for Windows, Linux and Mac OS. js makes dealing with the file system intuitive through the use of a module dealing with the operating system's file system. Supports multi-core, 8 to 64-bit resolutions for grey,RGB,HLS,CIE Lab and Bayer images. A rate limiting factor for x11vnc performance is that graphics hardware is optimized for writing, not reading (x11vnc reads the video framebuffer for the screen image data. Graduate school statement samples why law. 0 is distributed under the zlib license. There are many different applications that can write a CD or DVD image in Linux. Note the tips on suitable utilities to write the hybrid ISO image to bootable media; please do not use UNetbootin, Rufus, or UltraISO as those will cripple the result unfortunately. /RW Open the image in Read-Write mode. The New V-Ray Frame Buffer (VFB 2) is a second generation V-Ray virtual frame buffer. But yes, you can do video from framebuffer. Update 11-12-2012. It lets you organize, explore and share everything you like.
    [Show full text]
  • Interface Design
    Interface Design LCD Touch Interface for ETRAX 100LX By Magnus Kling, Jerker Buud SUBMITTED IN PARTIAL FULFILMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE AT UMEÅ UNIVERSITY UMEÅ, SWEDEN SEPTEMBER 2003 Copyright c 2003 Axis Communication AB ii Abstract In this thesis a liquid-crystal-display (LCD) interface for the ETRAX 100LX processor is presented. The interface is made as an add-on circuit board to an AXIS 82 Developer Board. The LCD controller used on the add-on circuit board is the EPSON S1D13706 LCD controller. To have graphical support for the ETRAX 100LX the Linux framebuffer device was implemented for the CRIS Linux archi- tecture. A touch screen is mounted on the LCD and controlled by a Texas Instru- ment ADS7846 A/D converter and Winbond 78E54 microprocessor. The touch point coordinates are sent to the AXIS 82 Developer Board through the serial port. An example application has been built to simulate a Document Server. The graph- ical user interface is built with EZFB API which uses the Linux framebuffer. Sammanfattning Rapporten tar upp hur ett liquid-crystal-display (LCD) gränssnitt har skapats till en ETRAX 100LX processor. Gränssnittet är tillverkat som ett externt kretskort som sammankopplas med ett AXIS 82 Developer Board. På det externa kretskortet finns en EPSON S1D13706 LCD kontroller. För att få grafiskt stöd till ETRAX 100LX har Linux framebuffer enheten implementerats för CRIS Linux arkitek- turen. En pekskärm var monterad på en LCD och pekskärmen kontrollerades med hjälp av en Texas Instrument ADS7846 A/D omvandlare och en Winbond 78E54 microprocessor.
    [Show full text]
  • Packaging and Distributing Python Projects
    Packaging and Distributing Python Projects Maximilian Nöthe Astroparticle Physics, TU Dortmund Summer School – 2021-06-10 overview Introduction Using setuptools Versions and Semantic Versioning Choosing a License Publishing Binary Wheels A new Alternative: poetry Conda Packages and conda-forge Conclusions and Recommendations M. Nöthe – TU Dortmund Packaging 2 Warning Copying commands or code from PDF files is BIOHAZARD dangerous Radiation Copy from the example files in the repository or type by hand. Typing by hand is best for learning. M. Nöthe – TU Dortmund Packaging 3 The Python Package Index → Python packages are published on the Python Package Index (https://pypi.org) → pip install foo will by default: 1. Search for a package named foo on PyPI 2. Download the best available distribution for your platform 3. Install all dependencies of the package 4. Install the package → There is https://test.pypi.org for people to test their packaging code before publishing to “the real thing”. → It is also possible to self-host a python package index M. Nöthe – TU Dortmund Packaging – Introduction 4 Source Distributions and Wheels Source Distributions Wheels → .zip or .tar.gz archives of the → Standardized format for pre-built project python packages → Simplest solution to publish your → Simple for pure-python packages (no package compiled components) → If a package contains compiled → Platform-dependent wheels for components, these need to be built at packages with compiled components installation time → C-Extensions → Cython-Code → Wrappers for C or C++-Libraries → … M. Nöthe – TU Dortmund Packaging – Introduction 5 Wheels → Platform dependent binary wheels must follow standards to be uploaded to PyPI → This is to ensure they run on many systems (not just on your computer) → Essentially: → Compile using the oldest C-Standard Library a package wants to support → Include all needed libraries in the wheel More on how to actually build wheels for your own projects later.
    [Show full text]
  • Fachhochschule Brandenburg
    Fachhochschule Brandenburg Konzeption und Implementierung einer Videodigitalisierung und Videoausgabe unter Embedded Linux Diplomarbeit zur Erlangung des akademischen Grades Diplom-Informatiker(FH) vorgelegt von Frank Schwanz Brandenburg 2002 Eingereicht am 21. Oktober 2002 1. Gutachter: Dipl. Informatiker Ingo Boersch 2. Gutachter: Dipl. Ing. Henry Westphal Erkl¨arung Hiermit erkl¨are ich, da ich diese Arbeit selbst¨andig und nur mit den zugelassenen und aufgefuhrten¨ Hilfsmitteln erstellt habe. Brandenburg, 21. Oktober 2002 Frank Schwanz Aufgabe Im Rahmen des Projektes Initiative Intelligente Autonome Systeme“ wird ” an der FH Brandenburg ein Kernel fur¨ intelligente autonome Systeme entwi- ckelt. Eine Teilkomponente des R-Cube-Systems ist eine eigenst¨andige Bild- verarbeitungskarte mit StrongARM-Prozessor und ARM-Linux. Zielstellung des Themas ist die Konzeption und Implementierung der Videodigitalisierung und Videoausgabe der Bildverarbeitungskarte. Hierbei sind Schnittstellen zum Auslesen der Bilddaten (vorzugsweise Video4Linux) und Ausgabe von Bilddaten (vorzugsweise Framebuffer-Device) zu entwi- ckeln. Die Umsetzung soll besonderen Wert auf die m¨ogliche Nutzung in kommenden Linux-Kernelversionen sowie die Performance der L¨osung legen. Die Funktionsf¨ahigkeit des Systems ist durch geeignete Teststellungen zu evaluieren. 1 Inhaltsverzeichnis 1 Einleitung 8 1.1 Aufgaben des BV-Boards . 9 1.2 Aufbau der Arbeit . 11 2 Hardware 12 2.1 Das BV-Board . 13 2.2 LART-Board . 14 2.2.1 Die Schnittstellen des LART Boards . 14 2.2.2 Prozessor . 16 2.2.3 Speicher . 19 2.3 Videoerweiterung LartVio . 27 2.3.1 Analoge und digitale Videoubertragung¨ . 28 2.3.2 Der Videodecoder SAA7113 . 29 2.3.3 Der Videoencoder ADV7171 . 30 2.3.4 I2C Bus .
    [Show full text]