Implementation of Linux GPIO Device Driver on Raspberry Pi Platform

Total Page:16

File Type:pdf, Size:1020Kb

Implementation of Linux GPIO Device Driver on Raspberry Pi Platform Vu Nguyen Implementation of Linux GPIO Device Driver on Raspberry Pi Platform Helsinki Metropolia University of Applied Sciences Bachelor of Engineering Information Technology Bachelor’s Thesis 10 May 2014 Abstract Author(s) Vu Nguyen Title Implementation of Linux GPIO Device Driver on Raspberry Pi Platform Number of Pages 48 pages + 3 appendices Date 10 May 2014 Degree Bachelor of Engineering Degree Programme Information Technology Specialisation option Embedded Engineering Instructor(s) Markku Nuutinen, Project supervisor The project was aimed at implementing a General Purpose Input/Output (GPIO) device driver for the Raspberry Pi model B rev 2.0 platform. Specific attention was given to im- plement the device driver based on the Linux character device driver. Each of the GPIO pins on Raspberry Pi is exposed to userspace for use by a device file in the /dev directory. While a dynamically assigned major number was used to identify the device driver associated with the GPIO device, a minor number was used by the kernel to differentiate between GPIO pins that the device driver controls. Four entry points were implemented to handle low-level hardware GPIO resources on behalf of system calls re- quested by a userspace application. Besides, interrupt handling was implemented as an experimental feature to see how a device driver supports interrupt in an embedded Linux system. The GPIO device driver could be used on the Raspberry Pi platform by loading it either as a kernel module or as an integral component of the Linux kernel. One or more userspace processes could open a device file for reading the logic level of a GPIO pin, controlling the direction of a GPIO pin, and setting its logic level to high state or low state. Besides, inter- rupt handling feature was tested; the result showed that more than one process could share an interrupt resource on a GPIO pin and could disable interrupt on that GPIO pin. There still remain, however, some limitations to the features offered by the driver. Interrupt handling is still an experimental feature. More work needs to be done to make the feature useful for use. Furthermore, the GPIO character device driver is deprecated with a newer version of the Linux kernel by the gpio-sysfs driver. Keywords Linux GPIO driver, Raspberry Pi, Linux character driver, GPIO kernel module Contents 1 Introduction 1 2 Theoretical Background on the Embedded Linux System of the Project 2 2.1 Raspberry Pi Model B Rev 2.0 Platform 2 2.2 Overview of Raspberry Pi GPIO Pins 3 2.3 Raspbian Linux Distribution 5 2.4 Linux Character Device Driver 8 3 Design of the GPIO Device Driver 11 3.1 Project Setup 11 3.2 Design of Per-device Structure and Initialization and Exit Routines 16 3.3 Design of the Entry Points for the GPIO Device Driver 17 3.4 Design of Interrupt Handling Functions 22 4 Implementation of the GPIO Device Driver 23 4.1 Linux Kernel Compilation and Installation 23 4.2 Implementation of Per-device Structure and Initialization and Exit Routines 26 4.3 Implementation of the Entry Points for the GPIO Device Driver 30 4.4 Implementation of Interrupt Handling Functions 35 5 Testing of the GPIO Device Driver 37 5.1 Testing Preparation 37 5.2 Testing of Output Functionality 37 5.3 Testing of Input Functionality 39 5.4 Testing of Interrupt Functionality 42 6 Results and Discussion 45 7 Conclusion 47 References 48 Appendices Appendix 1. Source code for GPIO Linux device driver Appendix 2. Source code for output testing of GPIO device driver Appendix 3. Source code for input testing of GPIO device driver List of Abbreviations API Application programming interface DHCP Dynamic host configuration protocol DMM Digital multimeter DNS Domain name system FAT File allocation table GCC GNU compiler collection GND Ground GPIO General-purpose input/output GPU Graphics processing unit I2C Inter-integrated circuit IC Integrated circuit IDE Integrated development environment IO Input/ouput IP Internet protocol IPC Inter-process communication LAN Local area network LED Light-emitting diode LTS Long term support MAC Media access control PC Personal computer PLD Programmable logic device PWM Pulse-width modulation SD Secure digital SoC System on chip SPI Serial peripheral interface SSH Secure shell UART Universal asynchronous receiver/transmitter USB Universal serial bus UTP Unshielded twisted pair VFS Virtual filesystem 1 1 Introduction Nowadays Linux is an operating system of choice for many computing systems ranging from personal computers (PC), servers, mainframe computers and supercomputers to electronic devices known as embedded systems. An embedded system is a computing system which is specifically designed to carry out a set of dedicated tasks, and it typi- cally uses a custom microcontroller as its main processing unit. Linux is a highly porta- ble operating system; it can run on a variety of hardware architectures such as x86, PowerPC, MIPS, H8, SPARC, or ARM, to name just a few. This portability also comes with limitations, however. It is no doubt that while the modu- lar architecture of Linux makes it easy when porting to different types of architectures, a great deal of effort is required to build new kernel components in order to support a target platform. The real hard work of these efforts is to develop device drivers for a particular target platform. A device driver (kernel module) is a piece of software that consists of a set of low-level interfaces, and is designed to control a hardware device. The Raspberry Pi platform is an example of a target device that Linux can be ported to run on it. GPIO device driver is one of the kernel components that can be developed to support the Raspberry Pi platform. The goal of this project was to implement a GPIO device driver for Raspberry Pi. Specifically, attention was given to the implementation of the GPIO device driver based on Linux character device drivers. The intended result of this work was to give a deeper understanding on the Raspberry Pi platform, to learn what a Linux device driver does and how it works, and finally to implement a GPIO character device driver for the Raspberry Pi platform from scratch. 2 2 Theoretical Background on the Embedded Linux System of the Project 2.1 Raspberry Pi Model B Rev 2.0 Platform The Raspberry Pi model B rev 2.0 platform was chosen for the project to implement the Linux GPIO device driver. This is due to the fact that Raspberry Pi is a low-cost Linux computer which costs approximately $35 from the Farnell distributor. The platform is widely used by hobbyists and professional embedded developers around the world. Therefore, there is a large support from the community when it comes to getting help or information. For convenience, Raspberry Pi will be used when referring to the Raspber- ry Pi model B rev 2.0 platform throughout this report. Figure 1 shows the Raspberry Pi platform used in the project. Figure 1. Raspberry Pi model B rev 2.0 platform Reprinted from Raspberry Pi Wiki (2014) [1] Raspberry Pi is a fan-less embedded computer which is equipped with a wide range of peripherals such as Universal Serial Bus (USB), Ethernet, Universal Asynchronous Receiver/Transmitter (UART), High-Definition Multimedia Interface (HDMI), Serial Pe- ripheral Interface (SPI), Inter-Integrated Circuit (I2C), audio codec and so on. The heart of the platform is a Broadcom BCM2835 System on Chip (SoC) that has an ARM1176JZF-S 700 MHz core processor, an integrated graphics processor VideoCore IV Graphic Processing Unit (GPU), 512MB of RAM for model B rev 2.0, and an SD 3 card in place of a hard disk drive [2]. The platform is powered from an external power supply via a USB micro connector. It is recommended from the official Raspberry Pi website that the board be powered from a good-quality power supply that gives at least 700mA at 5V [3]. This is because if the board is powered by a USB micro connector, there will not be enough current and, as a result, the board my reboot sometimes when it draws too much power. 2.2 Overview of Raspberry Pi GPIO Pins Raspberry Pi comes with a 26-pin connector called P1 and an 8-pin connector called P5. The pins on these connectors expose to users a set of buses such as I2C, SPI, Pulse Width Modulation (PWM), and signals. There are eight GPIO pins on P1 con- nector and four GPIO pins on P5 connector. In addition, the P1 connector has an I2C interface which consists of two pins, a 5-wire SPI interface, and a serial interface with two pins. These pins can be configured to be GPIO pins, thus making the total number of GPIO pins on Raspberry Pi to be 21 pins. A point worth mentioning here is that four GPIO pins on the P5 connector are available only on the Raspberry Pi model B rev 2.0 platform. Figure 2. Mapping between BCM2835 GPIO pins and Raspberry Pi P5 connector Modified from Henderson (2013) [4] Figure 2 shows the mapping between Broadcom BCM2835 SoC's GPIO pins and the Raspberry Pi P5 connector. The P5 connector which consists of eight pins as seen in 4 figure 2 is viewed from the bottom side of the board. Since Raspberry Pi was originally shipped without any header on P5 connector, a double sided 2.54mm header has to be soldered either on top or at the bottom of the board for use. Figure 3. Mapping between BCM2835 GPIO pins and Raspberry Pi P1 connectors Modified from Henderson (2013) [4] As can be seen from figure 3, the pins on the P1 connector, on the other hand, are viewed looking at the platform from above with the USB micro connector at the top-left to the Raspberry Pi and P1 connector to the top-right of the platform.
Recommended publications
  • Shorten Device Boot Time for Automotive IVI and Navigation Systems
    Shorten Device Boot Time for Automotive IVI and Navigation Systems Jim Huang ( 黃敬群 ) <[email protected]> Dr. Shi-wu Lo <[email protected]> May 28, 2013 / Automotive Linux Summit (Spring) Rights to copy © Copyright 2013 0xlab http://0xlab.org/ [email protected] Attribution – ShareAlike 3.0 Corrections, suggestions, contributions and translations You are free are welcome! to copy, distribute, display, and perform the work to make derivative works Latest update: May 28, 2013 to make commercial use of the work Under the following conditions Attribution. You must give the original author credit. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. License text: http://creativecommons.org/licenses/by-sa/3.0/legalcode Goal of This Presentation • Propose a practical approach of the mixture of ARM hibernation (suspend to disk) and Linux user-space checkpointing – to shorten device boot time • An intrusive technique for Android/Linux – minimal init script and root file system changes are required • Boot time is one of the key factors for Automotive IVI – mentioned by “Linux Powered Clusters” and “Silver Bullet of Virtualization (Pitfalls, Challenges and Concerns) Continued” at ALS 2013 – highlighted by “Boot Time Optimizations” at ALS 2012 About this presentation • joint development efforts of the following entities – 0xlab team - http://0xlab.org/ – OSLab, National Chung Cheng University of Taiwan, led by Dr.
    [Show full text]
  • Connecting Peripheral Devices to a Pandaboard Using
    11/16/2012 MARK CONNECTING PERIPHERAL DEVICES TO A BIRDSALL PANDABOARD USING PSI This is an application note that will help somebody use the Serial Programming Interface that is available on the OMAP-based PandaBoard’s expansion connector and also explains how use the SPI to connect with a real-time clock (RTC) chip. Ever since the PandaBoard came out, there has been a community of eager programmers constructing creative projects and asking questions about where else and what more they could do to extend the PandaBoard’s abilities. This application note will document a way to connect devices to a OMAP-based devise like a PandaBoard What is the Serial Programming Interface “Serial Programming Interface” (SPI) is a simple standard that was developed my Motorola. SPI can also be called “4-wire” interface (as opposed to 1, 2 or 3-wire serial buses) and it is sometimes referred to like that because the interface has four wires defined. The first is Master- Out-Slave-In (MOSI) and the second is the Master-In-Slave-Out (MISO). There is also a Serial Clock from the Master (SCLK) and a Chipselect Signal (CS#) which can allow for more than one slave devise to be able to connect with one master. Why do we want to use the SPI? There are various ways to connect a peripheral device to the PandaBoard like USB, SPI, etc... and SPI has some advantages. Using the Serial Programming Interface costs less in terms of power usage and it is easy to connect different devises to the PandaBoard and also to debug any problems that occur all while maintaining an acceptable performance rate.
    [Show full text]
  • Deliverable D4.1
    Deliverable D4.1 – State of the art on performance and power estimation of embedded and high-performance cores Anastasiia Butko, Abdoulaye Gamatié, Gilles Sassatelli, Stefano Bernabovi, Michael Chapman, Philippe Naudin To cite this version: Anastasiia Butko, Abdoulaye Gamatié, Gilles Sassatelli, Stefano Bernabovi, Michael Chapman, et al.. Deliverable D4.1 – State of the art on performance and power estimation of embedded and high- performance cores. [Research Report] LIRMM (UM, CNRS); Cortus S.A.S. 2016. lirmm-03168326 HAL Id: lirmm-03168326 https://hal-lirmm.ccsd.cnrs.fr/lirmm-03168326 Submitted on 12 Mar 2021 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Project Ref. Number ANR-15-CE25-0007 D4.1 – State of the art on performance and power estimation of embedded and high-performance cores Version 2.0 (2016) Final Public Distribution Main contributors: A. Butko, A. Gamatié, G. Sassatelli (LIRMM); S. Bernabovi, M. Chapman and P. Naudin (Cortus) Project Partners: Cortus S.A.S, Inria, LIRMM Every effort has been made to ensure that all statements and information contained herein are accurate, however the Continuum Project Partners accept no liability for any error or omission in the same.
    [Show full text]
  • Universidad De Guayaquil Facultad De Ciencias Matematicas Y Fisicas Carrera De Ingeniería En Networking Y Telecomunicaciones D
    UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS CARRERA DE INGENIERÍA EN NETWORKING Y TELECOMUNICACIONES DISEÑO DE UN SISTEMA INTELIGENTE DE MONITOREO Y CONTROL EN TIEMPO REAL PARA TANQUES DE ALMACENAMIENTO DE GASOLINA UTILIZANDO TECNOLOGÍA DE HARDWARE Y SOFTWARE LIBRE PARA PEQUEÑAS Y MEDIANAS EMPRESAS PROYECTO DE TITULACIÓN Previa a la obtención del Título de: INGENIERO EN NETWORKING Y TELECOMUNICACIONES AUTORES: Chamorro Salazar Hamilton Gabriel TUTOR: Ing. Jacobo Antonio Ramírez Urbina GUAYAQUIL – ECUADOR 2019 I REPOSITORIO NACIONAL EN CIENCIAS Y TECNOLOGIA FICHA DE REGISTRO DE TESIS TITULO: Diseño de un sistema inteligente de monitoreo y control en tiempo real para tanques de almacenamiento de gasolina utilizando tecnología de hardware y software libre para pequeñas y medianas empresas. REVISORES: Ing. Luis Espin Pazmiño, M.Sc Ing. Harry Luna Aveiga, M.Sc INSTITUCIÓN: Universidad de FACULTAD: Ciencias Matemáticas y Guayaquil Físicas. CARRERA: Ingeniería en Networking y Telecomunicaciones FECHA DE PUBLICACIÓN: N° DE PAGS: 143 AREA TEMÁTICA: Tecnología de la Información y Telecomunicaciones PALABRA CLAVES: Telemetría, microcomputadores, sensores, actuadores, sistema digital, tanques de almacenamiento, control en tiempo real RESUMEN: Este proyecto tiene como finalidad investigar y diseñar un sistema de monitoreo y control en tiempo real para tanques de almacenamiento de gasolina utilizando tecnología de hardware y software libre para las pequeñas y medianas empresas. El diseño permite una gestión eficiente de los
    [Show full text]
  • Development Boards This Product Is Rohs Compliant
    Development Boards This product is RoHS compliant. PANDABOARD DEVELOPMENT PLATFORM Features: • Core Logic: OMAP4460 applications Processor • Interface: (1) General Purpose Expansion Header • Wireless Connectivity: 802.11 b/g/n (WiLink™ 6.0) • Memory: 1GB DDR2 RAM (I2C, GPMC, USB, MMC, DSS, ETM) • Debug options: JTAG, UART/RS-232, 1 GPIO button NTL • Full Size SD/MMC card port • Camera Expansion Header • Graphics APIs: OpenGL ES v2.0, OpenGL ES v1.1, • 10/100 Ethernet • Display Connectors: HDMI v1.3, DVI-D. LCD Expansion OpenVGv1.1, and EGL v1.3 • USB: (1) USB 2.0 OTG port, (2) USB 2.0 High-speed port • Audio Connectors: 3.5" In/Out, HDMI audio out For quantities greater than listed, call for quote. MOUSER Pandaboard Price Description STOCK NO. Part No. Each 595-PANDABOARD UEVM4430G-01-00-00 Pandaboard ARM Cortex-A9 MPCore 1GHz OMAP4430 SoC Platform 179.00 595-PANDABOARD-ES UEVM4460G-02-01-00 Pandaboard ARM Cortex-A9 MPCore 1GHz OMAP4460 SoC Platform 185.00 Embedded Modules Embedded BEAGLEBOARD SOC PLATFORMS BeagleBoard.org develops low-cost, fan-less single-board computers based on low-power Texas Instruments processors featuring the ARM Cortex-A8 core with all of the expandability of today's desktop machines, but without the bulk, expense, or noise. BeagleBoard.org provides an open source development platform for A B the creation of high-performance embedded designs. Beagleboard C4 Features: Beagleboard xM Features: Beaglebone Features: • Over 1,200 Dhrystone MIPS using the superscalar • Over 2,000 Dhrystone MIPS using the Super-scalar
    [Show full text]
  • Improving the Beaglebone Board with Embedded Ubuntu, Enhanced GPMC Driver and Python for Communication and Graphical Prototypes
    Final Master Thesis Improving the BeagleBone board with embedded Ubuntu, enhanced GPMC driver and Python for communication and graphical prototypes By RUBÉN GONZÁLEZ MUÑOZ Directed by MANUEL M. DOMINGUEZ PUMAR FINAL MASTER THESIS 30 ECTS, JULY 2015, ELECTRICAL AND ELECTRONICS ENGINEERING Abstract Abstract BeagleBone is a low price, small size Linux embedded microcomputer with a full set of I/O pins and processing power for real-time applications, also expandable with cape pluggable boards. The current work has been focused on improving the performance of this board. In this case, the BeagleBone comes with a pre-installed Angstrom OS and with a cape board using a particular software “overlay” and applications. Due to a lack of support, this pre-installed OS has been replaced by Ubuntu. As a consequence, the cape software and applications need to be adapted. Another necessity that emerges from the stated changes is to improve the communications through a GPMC interface. The depicted driver has been built for the new system as well as synchronous variants, also developed and tested. Finally, a set of applications in Python using the cape functionalities has been developed. Some extra graphical features have been included as example. Contents Contents Abstract ..................................................................................................................................................................................... 5 List of figures .........................................................................................................................................................................
    [Show full text]
  • Low-Power High Performance Computing
    Low-Power High Performance Computing Michael Holliday August 22, 2012 MSc in High Performance Computing The University of Edinburgh Year of Presentation: 2012 Abstract There are immense challenges in building an exascale machine with the biggest issue that of power. The designs of new HPC systems are likely to be radically different from those in use today. Making use of new architectures aimed at reducing power consumption while still delivering high performance up to and beyond a speed of one exaflop might bring about greener computing. This project will make use of systems already using low power processors including the Intel Atom and ARM A9 and compare them against the Intel Westmere Xeon Processor when scaled up to higher numbers of cores. Contents 1 Introduction1 1.1 Report Organisation............................2 2 Background3 2.1 Why Power is an Issue in HPC......................3 2.2 The Exascale Problem..........................4 2.3 Average use................................4 2.4 Defence Advanced Research Projects Agency Report..........5 2.5 ARM...................................6 2.6 Measures of Energy Efficiency......................6 3 Literature Review8 3.1 Top 500, Green 500 & Graph 500....................8 3.2 Low-Power High Performance Computing................9 3.2.1 The Cluster............................ 10 3.2.2 Results and Conclusions..................... 10 3.3 SuperMUC................................ 11 3.4 ARM Servers............................... 12 3.4.1 Calexeda EnergyCoreTM & EnergyCardTM ........... 12 3.4.2 The Boston Viridis Project.................... 12 3.4.3 HP Project Moonshot....................... 13 3.5 The European Exascale Projects..................... 13 3.5.1 Mont Blanc - Barcelona Computing Centre........... 13 3.5.2 CRESTA - EPCC......................... 14 4 Technology Review 15 4.1 Intel Xeon................................
    [Show full text]
  • Openbricks Embedded Linux Framework - User Manual I
    OpenBricks Embedded Linux Framework - User Manual i OpenBricks Embedded Linux Framework - User Manual OpenBricks Embedded Linux Framework - User Manual ii Contents 1 OpenBricks Introduction 1 1.1 What is it ?......................................................1 1.2 Who is it for ?.....................................................1 1.3 Which hardware is supported ?............................................1 1.4 What does the software offer ?............................................1 1.5 Who’s using it ?....................................................1 2 List of supported features 2 2.1 Key Features.....................................................2 2.2 Applicative Toolkits..................................................2 2.3 Graphic Extensions..................................................2 2.4 Video Extensions...................................................3 2.5 Audio Extensions...................................................3 2.6 Media Players.....................................................3 2.7 Key Audio/Video Profiles...............................................3 2.8 Networking Features.................................................3 2.9 Supported Filesystems................................................4 2.10 Toolchain Features..................................................4 3 OpenBricks Supported Platforms 5 3.1 Supported Hardware Architectures..........................................5 3.2 Available Platforms..................................................5 3.3 Certified Platforms..................................................7
    [Show full text]
  • Ten (Or So) Small Computers
    Ten (or so) Small Computers by Jon "maddog" Hall Executive Director Linux International and President, Project Cauã 1 of 50 Copyright Linux International 2015 Who Am I? • Half Electrical Engineer, Half Business, Half Computer Software • In the computer industry since 1969 – Mainframes 5 years – Unix since 1980 – Linux since 1994 • Companies (mostly large): Aetna Life and Casualty, Bell Labs, Digital Equipment Corporation, SGI, IBM, Linaro • Programmer, Systems Administrator, Systems Engineer, Product Manager, Technical Marketing Manager, University Educator, Author, Businessperson, Consultant • Taught OS design and compiler design • Extremely large systems to extremely small ones • Pragmatic • Vendor and a customer Warnings: • This is an overview guide! • Study specifications of each processor at manufacturer's site to make sure it meets your needs • Prices not normally listed because they are all over the map...shop wisely Definitions • Microcontroller vs Microprocessor • CPU vs “Core” • System On a Chip (SoC) • Hard vs Soft Realtime • GPIO Pins – Digital – Analog • Printed Circuit Board (PCB) • Shield, Cape, etc. • Breadboard – Patch cables Definitions (Cont.) • Disks – IDE – SATA – e-SATA • Graphical Processing Unit (GPU) • Field Programmable Gate Array (FPGA) • Digital Signal Processing Chips (DSP) • Unless otherwise specified, all microprocessors are ARM-32 bit Still More Definitions! • Circuit Diagrams • Surface Mount Technology – large robots – Through board holes in PCBs – Surface mount • CAD Files – PCB layout – “Gerbers” for
    [Show full text]
  • Smart Walker IV
    Multidisciplinary Senior Design Conference Kate Gleason College of Engineering Rochester Institute of Technology Rochester, New York 14623 P16041: Smart Walker IV Alex Synesael Alexei Rigaud Electrical Engineering Electrical Engineering Danielle Stone Stephen Hayes Electrical Engineering Electrical Engineering ABSTRACT Diagnostic medical technology in its current form is typically expensive and intrusive to a patient’s lifestyle. The purpose of the Smart Walker IV project was to finalize a robotic assistive walker prototype capable of collecting long-term diagnostic information about a patient’s health and activities. This gives care providers a more complete image of their health than can be achieved during a relatively short visit. In addition to the diagnostic features, Smart Walker is capable of autonomous motion such that it can provide emergency support in the event of a fall, or contact the appropriate third party support. Smart Walker IV is a culmination of three previous prototype versions spanning 2013 through 2015, and is intended to serve as the final revision before the platform is ready to be utilized as a graduate research platform for robotic assistive medical diagnostics. The goal of Smart Walker IV is to complete the build and integration phases from where the previous Smart Walker III team ended. The project progressed through analysis and completion of the existing systems, the design and testing of new diagnostic subsystems, and finally complete system integration and qualification. BACKGROUND Smart Walker began as a diagnostic tool for elderly people, and has since evolved into a research platform. The Smart Walker can take diagnostic measurements, as well as measure vital signs and detect when a patient has fallen.
    [Show full text]
  • Freebsd 11.0
    SEE TEXT ONLY By John Baldwin •• 11.0 WELCOME To FreeBSD 11 The FreeBSD system is constantly Desktop and Laptop changing. FreeBSD 11 brings new FreeBSD 11 offers a variety of improvements for desk- features and fixes from two and a top and laptop users. First, a new system console driv- er is enabled by default. This driver is less VGA- and half years of active development. x86-centric than previous drivers. Rather than depend- Some of these changes have been ing on BIOS ROM support for VGA text modes, the merged to recent 10.x releases console renders text in software on framebuffers. This supports VGA adapters via graphics modes as well as such as 10.2 and 10.3, but most of the UEFI framebuffer. It also supports graphics them are brand new in 11. adapters that disable VGA compatibility when using 4 FreeBSD Journal higher resolution graphics modes such as modern tems that do not support VirtIO devices. In partic- Intel GPUs. Software text rendering allows the ular, Windows can be used out-of-the-box with- console driver to render any glyph, which in turn out requiring additional VirtIO device drivers dur- enables UTF-8 support. In addition, the in-kernel ing installation. graphics drivers include native support for Intel Finally, FreeBSD 11 includes support for PCI- graphics adapters on systems with fourth-genera- express native HotPlug. This includes handling of tion Core (“Haswell”) processors. runtime insertion and removal of ExpressCard • FreeBSD 11 includes broader support for wire- adapters in laptops as well as runtime insertion • less networks.
    [Show full text]
  • An Evaluation of the Pandaboard As a Set-Top-Box in an Android Environment
    UPTEC IT 11 016 Examensarbete 30 hp December 2011 An Evaluation of the PandaBoard as a Set-Top-Box in an Android Environment Torbjörn Svangård 2 Abstract An Evaluation of the PandaBoard as a Set-Top-Box in an Android Enviroment Torbjörn Svangård Teknisk- naturvetenskaplig fakultet UTH-enheten The aim of this thesis is to evaluate the potential of the PandaBoard to take the role as an Android based Set-Top-Box (STB). A STB is a device that converts an external Besöksadress: signal into viewable video on a connected television. The PandaBoard is a low-cost Ångströmlaboratoriet Lägerhyddsvägen 1 development platform intended for mobile software development and is based on a Hus 4, Plan 0 chipset, OMAP4, developed and manufactured by Texas Instruments. Postadress: During the thesis implementation phase a PandaBoard was configured to run Android; Box 536 751 21 Uppsala a popular operating system mainly used in smartphones. A DVB-T2 device was attached to one of the USB-ports on the PandaBoard in order to recieve terrestrial Telefon: digital television broadcasts. 018 – 471 30 03 Telefax: The main obstacle was the fact that despite very promising video accelerated 018 – 471 30 00 hardware specifications on the PandaBoard, they were not available for evalutaion. During the thesis pilot study it became clear that hardware accelerated video playback Hemsida: was not yet supported for the PandaBoard Android-port. Programmable OpenGL ES http://www.teknat.uu.se/student 2.0 shaders was used instead in order to offload the PandaBoard CPU as much as possible. Although this thesis may not be conclusive in terms of the impressive video accelration hardware present on the PandaBoard, the thesis will demonstrate what can be achieved with a dual core ARM Cortex-A9 processor together with OpenGL ES 2.0 on a system running the Android operating system.
    [Show full text]