Linaro/Yocto/Openwrt

时间:2024-03-20 22:37:43

http://en.wikipedia.org/wiki/Linaro

Linaro

From Wikipedia, the free encyclopedia
Linaro/Yocto/Openwrt
This article appears to be written like an advertisement. Please help improve it by rewriting promotional content from a neutral point of view and removing any inappropriate external links(June 2013)
Linaro
Type Not-for-profit engineering organization
VAT ID No. 990027324
Registration No. 07180318
Founded June 3, 2010
Headquarters
Focus(es) Open-source software for the ARM architecture
Members 25
Website linaro.org

Linaro is a not-for-profit engineering organization that works on consolidating and optimizing open-source software for the ARM architecture, including the GCC toolchain, the Linux kernel, ARM power management, graphics and multimedia interfaces. It was announced at Computex in June 2010 by ARMFreescale SemiconductorIBMSamsungST-Ericsson, andTexas Instruments in a joint press conference.[1] It also provides aligned engineering and investment in upstream open source projects, a monthly release of tools and software[2] and support to silicon companies in upstreaming their system-on-a-chip (SoC) support.

Linaro focuses on optimized open-source support of the ARM v7A architecture and ARM v8 Architecture, for example SoCs that contain ARM Cortex-A9Cortex-A15, Cortex-A53 and Cortex-A57 processor(s). Linaro engineering works with upstream projects on a set of requirements that are determined by the Technical Steering Committee (TSC) and posted in a public roadmap.[3] At the end of each month there is a release of tools and software that acts as a staging tree for code that will be pushed upstream. Linaro works on software that is close to the silicon such as kernel, multimedia, power management, graphics and security. Linaro aims to provide stable, optimized and tested tools and code for multiple software distributions to use and hence reduce low-level fragmentation and improve the optimization of embedded Linux software.[4]

Activities[edit]

Linaro produces ARM tools, Linux kernels and builds of key Linux distributions (including Android and Ubuntu) on member SoCs.

Linaro maintains an automated testing system called LAVA (Linaro Automated Validation Architecture) that Linaro developed.[5] LAVA aims at improving automated testing of the open source components that are used in the major Linux-based software platforms and to increase the confidence in the quality of enablement of the member's platforms.

The Linaro Enterprise Group (LEG) focuses on accelerating Linux development for ARM servers.[6] The Enterprise Group is made up of the following companies: AMD,AppliedMicroARMCalxedaCanonicalCaviumFacebookHiSiliconHPMarvellRed HatSamsungST Ericsson and Texas Instruments. The team's mission is to bring competing companies together to work on common solutions to problems and enable OEM's, commercial Linux providers and System on Chip (SOC) vendors to collaborate in a neutral environment on the development and optimization of the core software needed by the rapidly emerging market for low-power hyperscale servers.

The Linaro Networking Group (LNG) is a coalition of technology companies whose mission is to deliver an enhanced core Linux platform for networking equipment. Its founding members include AppliedMicroARMEneaFreescaleLSIMontaVistaNokia Siemens Networks and Texas Instruments (TI).[7] With ARM-based SoCs part of the transformation occurring in cloud and mobile infrastructure applications such as switching, routing, base-stations and security, LNG’s members collaborate on fundamental software platforms to enable rapid deployment of new services across a range of converged infrastructure platforms.

History[edit]

In 2010 ARM joined with Freescale Semiconductor, IBM, Samsung, ST-Ericsson and Texas Instruments (TI) in forming Linaro as a not for profit open sourceengineering company, to enhance open source innovation for the next wave of always-connected, always-on computing.[8]

Two new members joined Linaro in October 2012. LG Electronics[9] and HiSilicon[10] joined and will contribute resources and work together with the engineers from other Linaro members. Both companies will join the Technical Steering Committee (TSC), which directs the shared Linaro engineering team of over 100 engineers.

Milestones[edit]

March 2010 – Company founded

  • Membership agreements initiated
  • Engineering begins

June 2010 – Company launch

  • Website and wiki opened
  • Engineering organization ramps
  • Open engineering

November 2010 – First release

  • Linaro's 10.11 release is announced at TechCon

May 2011 - Second Release

  • Linaro's 11.05 release and monthly releases announced
  • Linaro Partner Program announced

August 2011

  • First independent Linaro Connect held

January 2012

  • Demo Friday begins to be held at each Linaro Connect

October 2012

  • LG Electronics joins Linaro
  • HiSilicon joins Linaro

November 2012

  • Linaro Enterprise Group (LEG) announced

February 2013

  • Linaro Networking Group (LNG) announced

Release schedule[edit]

It was announced in June 2010 at Computex that Linaro would follow a six-month engineering cycle that would culminate in a release of tools and software that represents an integrated build of software worked on during the cycle.[1] Linaro version 10.11 was released on November 10, 2010. In May 2011 Linaro began a monthly engineering cycle in place of the previous six month cycle.

Platforms[edit]

Linaro runs and continuously tests its output on member platforms. For the ARMv7A code, these include TI's OMAP 3 and OMAP 4, Samsung's Exynos, and ST-Ericsson's NovaThor U8500. For development on platforms prior to silicon availability, e.g. big.LITTLE development starting at the end of 2011 and ARMv8 work begun in 2012, Linaro uses ARM Fast Models and then the ARM Versatile Express platform, when the necessary hardware tiles are available.

Products[edit]

Linaro
Initial release 10 November 2010; 3 years ago[11]
Stable release 13.11 / 28 November 2013; 41 days ago
Platform ARMv7-A
License EPL (default) and other licences

There are three types of software download available from Linaro:

  1. At the end of each monthly cycle Linaro release an integrated build including all the software worked on during the cycle. These images are available from Linaro.org/Downloads

    .

  2. There are monthly versions of upstream software, such as GCC or QEMU. These are downloads from places such aslaunchpad.net/gcc-linaro

    .

  3. Linaro maintains public staging trees of upstream code they are working on. For example the kernel and u-boot trees are kept on git.linaro.org

    .

License[edit]

All code developed within Linaro working groups is open source and therefore available under standard Open Source Initiative (OSI) license terms. For more details see Linaro Membership Rules and Linaro Articles of Association.[12]

Core OS[edit]

Linaro is Linux-based and works with the open source community by providing aligned upstream engineering investment.[13]

[hide]
The Linux operating system family
 
 
Organization
Linux kernel
 
GNU
 
Distribution
Linux
distribution
 
Other
 
Documentation
 
Developers
 
Users
 
Technical
Standards
 
Operation
 
Core components
C standard library
 
Init daemons
 
Sysutils
 
Linux kernel
components
 
Variants
Main line
 
High-performance
computing
 (HPC)
 
Real-time
computing
 (RTC)
 
MMU-less
 
Virtualization
Hypervisor
 
OS-level
virtualization
 
Other
 
Malware
 
User interfaces
 
Graphical UI
 
Linux adoption
Linux range of use
 
Mobile
 
Adopters
 
Media
 
People
 

http://en.wikipedia.org/wiki/Yocto_Project

Yocto Project

From Wikipedia, the free encyclopedia

The Yocto Project is a Linux Foundation workgroup whose goal is to produce tools and processes that will enable the creation of Linux distributions forembedded software that are independent of the underlying architecture of the embedded software itself. The project was announced by the Linux Foundation in 2010.[1] In March 2011, the project aligned itself with OpenEmbedded, an existing framework with similar goals, with the result being The OpenEmbedded-Core Project.

The Yocto Project is an open source project whose focus is on improving the software development process for embedded Linux distributions. The Yocto Project provides interoperable tools, metadata, and processes that enable the rapid, repeatable development of Linux-based embedded systems.

Project Scope[edit]

The Yocto Project has the aim and objective of attempting to improve the lives of developers of customised Linux systems supporting the ARMMIPSPowerPC andx86/x86 64 architectures. It is working towards this by focusing on one set of great tools rather than the several sets of mediocre ones that existed when the project was founded.[neutrality is disputed] A key part of this is an open source build system, based around the OpenEmbedded architecture, that enables developers to create their own Linux distribution specific to their environment. This reference implementation of OpenEmbedded is called Poky.

There are several other sub-projects under the project umbrella which include EGLIBC, pseudo, cross-prelink, eclipse integration, ADT/SDK, the matchbox suite of applications, and many others. One of the central goals of the project is interoperability among these tools.

The project offers different sized targets from "tiny" to fully featured images which are configurable and customisable by the end user. The project encourages interaction with upstream projects and has contributed heavily to OpenEmbedded-Core and BitBake as well as to numerous upstream projects, including the Linux kernel.[citation needed] The resulting images are typically useful in systems where embedded Linux would be used, these being single-use focused systems or systems without the usual screens/input devices associated with desktop Linux systems.

As well as building Linux systems, there is also an ability to generate a toolchain for cross compilation and a Software Development Kit (SDK) tailored to their own distribution, also referred to as the Application Developer Toolkit (ADT). The project tries to be software and vendor agnostic. Thus, for example, you can choose which package manager format you intend to use (debrpm, or ipk).

Within builds, there are options for various build-time sanity/regression tests, and also the option to boot and test certain images under QEMU to validate the build.

Governance[edit]

The Yocto Project is one of the Labs collaborative software projects at the Linux Foundation.

The project's governance is divided loosely into administrative and technical arms, although many members participate in both camps.

At a technical level, the project is overseen by the project architect Richard Purdie (a Linux Foundation Fellow) who has a long history of involvement with many of the project's components and technologies. The architect maintains a hierarchy of maintainers for the different components of the system, much as the Linux kernel is maintained.

The administrative arm consists of an Advisory Board made up of representatives from the project's member organizations, including several major silicon vendors and software vendors as well as representatives from groups such as software consultants and community members. The member organizations of this board provide resources to the project. There are also several Advisory Board working groups that handle administrative functions for the project such as finance, infrastructure, advocacy and outreach, and community management.

http://en.wikipedia.org/wiki/OpenWrt

OpenWrt

From Wikipedia, the free encyclopedia
Linaro/Yocto/Openwrt
This article may rely excessively on sources too closely associated with the subject, preventing the article from being verifiable and neutral. Please help improve it by replacing them with more appropriate citationsto reliable, independent, third-party sources(November 2013)
OpenWrt
Linaro/Yocto/Openwrt
OpenWrt 10.03.1-RC5 ("Backfire")
Company / developer OpenWrt Project
OS family Unix-like
Working state Current
Source model Free and open source software
Initial release January 2004
Latest stable release 12.09 (Attitude Adjustment)(April 25, 2013; 8 months ago)[±][1]
Latest unstable release -- (Barrier Breaker)(26 April 2013; 8 months ago)[±][2]
Available language(s) 22 languages[3]
Update method opkg
Package manager opkg
Supported platforms 50 different platforms using the followingInstruction setsAVR32,ARMCRISm68k,MIPSPowerPC,SPARCSuperH,Ubicom32x86,x86-64[4]
Kernel type Monolithic(Linux)
Userland BusyBoxGNU
Default user interface CLI, WebUIs
License Free software, mainly the GNU GPL, and other licenses
Official website openwrt.org

OpenWrt is an operating system / embedded operating system based on the Linux kernel, and primarily used on embedded devices to route network traffic. The main components are the Linux kernel, util-linuxuClibc and BusyBox. All components have been optimized for size, to be small enough for fitting into the limited storage and memory available in home routers.

OpenWrt is configured using a command-line interface (ash shell), or a web interface (LuCI

). There are about 3500 optional software packages available for installation via the opkg package management system.

OpenWrt can be run on CPE routers, residential gatewayssmartphones (e.g. Neo FreeRunner), pocket computers (e.g. Ben NanoNote), and laptops (e.g. One Laptop per Child (OLPC)). Also, it is possible to run OpenWrt on ordinary computers (e.g. x86 architecture). Many patches from the OpenWrt source base have been included upstream in the Linux kernel mainline.

History[edit]

The project came into being because Linksys built the firmware for their WRT54G wireless router from publicly available code licensed under the GPL. Under the terms of that license, they were required to make the source code of their modified version available under the same license, enabling independent developers to create additional derivative versions. Support was originally limited to the WRT54G series, but has since been expanded to include many other chipsets, manufacturers and device types, including Plug Computers and Openmoko mobile phones.

Using this code as a base and later as a reference, developers created a Linux distribution that offers many features not previously found in consumer-level routers. Some features formerly required proprietary software. Before the introduction of OpenWrt 8.09, using Linux 2.6.25 and the b43 kernel module, WLAN for many Broadcom-based routers was only available through the proprietary wl.o module that was also provided for Linux kernel version 2.4.x only.

The code names of OpenWrt branches are named after alcoholic beverages, usually including their recipes in the SSH login screen as well, cf. White RussianKamikazeBackfireAttitude AdjustmentBarrier Breaker.

The bleeding edge development trunk

was confusingly also called Kamikaze

until February 2011 but with r25514 it was renamed as "Attitude Adjustment" and is now being constantly renamed to the next stable name.

Releases[edit]

Legend: Old version Older version, still supported Current version Future release
Tagged Code Name Version Release date Linux kernel C standard library Binary packages Source packages Notes
(default) (available)
N/A pre Buildroot-NG 0.x N/A N/A uClibc   474 ≈ 310  
r6268 White Russian 0.9 2006-01 2.4.30 uClibc   ≈ 360 ≈ 140 NVRAM-based, nas,wl. Supported platform: brcm-2.4.
r7428 Kamikaze 7.06 2007-06 2.6.19 uClibc   ≈ 750 ≈ 450 Using opkg. Supported platforms: atheros-2.6au1000-2.6,brcm-2.4brcm47xx-2.6ixp4xx-2.6,imagicbox-2.6,rb532-2.6 and x86-2.6.
r7832 Kamikaze 7.07 2007-07 2.6.21 uClibc   ≈ 790 ≈ 475 New platform: amcc-2.6.
r8679 Kamikaze 7.09 2007-09 2.6.21 uClibc   ≈ 630 ≈ 500  
r14547 Kamikaze 8.09 2008-09 2.6.26 uClibc   ≈ 1,400 ≈ 875  
r16279 Kamikaze 8.09.1 2009-06 2.6.26 uClibc   ≈ 1,400 ≈ 875  
r18961 Kamikaze 8.09.2 2010-01-10[5] 2.6.26 uClibc   ≈ 1,400 ≈ 875  
r20742 Backfire 10.03 2010-04-07[6] 2.6.32 uClibc   ≈ 2,350 ≈ 1,050 Supported platforms:adm5120_mips,adm5120_mipsel,ar7ar71xx,atherosau1000,avr32brcm-2.4,brcm47xxbrcm63xx,cobaltep80579,ifxmipsixp4xx,kirkwoodocteon,orionppc40x,ppc44xrb532rdc,x86 and xburst.
r29594 Backfire 10.03.1 2011-12-21[7] 2.6.32 uClibc eglibc
glibc
≈ 2,950 ≈ 1,175  
r36088 Attitude Adjustment 12.09 2013-04-25[8] 3.3 uClibc eglibc ≈ 3,450 ≈ 1,150 CoDel backported from Linux 3.5 to 3.3. New platforms:ramipsbcm2708(Raspberry Pi) and others.
trunk Barrier Breaker development continuously 3.10.21[9] uClibc musl
eglibc
growing growing New platforms:i.MX23i.MX6[10]and mvebu.

Features[edit]

OpenWrt follows the bazaar-philosophy and is known for an abundance of options. Features include:

Web interface[edit]

Before release 8.09, OpenWrt had a minimal web interface. In OpenWrt releases 8.09 and newer, a more capable web interface is included.[16] This interface is based on LuCI, a MVC framework written in Lua programming language.[15]

The X-Wrt project provides an alternative web interface, named webif² in the package repositories, for the current and previous versions of OpenWrt.

The Gargoyle Router Management Utility[17] is a web interface for OpenWrt with a strong emphasis on usability. It was originally available as a set of packages for OpenWrt. As the author of Gargoyle started to make modifications to the base system layout of OpenWrt, the package system was dropped and the only currently available downloads are full firmware images. Gargoyle makes extensive use of JavaScript, to offload as much work as possible to the client computer, and is focused on ease of use, striving to reach a level comparable to the appliance feeling of commercial router firmwares.

  • Linaro/Yocto/Openwrt

    LuCI

  • Linaro/Yocto/Openwrt

    X-Wrt

  • Linaro/Yocto/Openwrt

    Gargoyle

Hardware incompatibilities[edit]

With the Attitude Adjustment (12.09)

release of OpenWrt, all hardware devices with 16 MB or less RAM are no longer supported as they can run out of memory easily. Older Backfire (10.03)

is recommended instead for bcm47xx devices, as issues for those devices came from dropping support for the legacy Broadcom target brcm-2.4.[18][19]

Derivatives[edit]

Development[edit]

OpenWrt's development environment and build system are based on a heavily modified Buildroot system. It is a set of Makefiles and patches that automates the process of building a complete Linux-based OpenWrt system for an embedded device, by building and using an appropriate cross-compilation toolchain.[23][24]

Embedded devices usually use a different processor than the one found in host computers used for building their OpenWrt system images, requiring a cross-compilation toolchain. Such a compilation toolchain runs on a host system, but generates code for a targeted embedded device and its processor's instruction set architecture (ISA). For example, if a host system uses x86 and a target system uses MIPS32, the regular compilation toolchain of the host runs on x86 and generates code for x86 architecture, while the cross-compilation toolchain runs on x86 and generates code for the MIPS32 architecture. OpenWrt Buildrootautomates this whole process to work on the instruction set architectures of most embedded devices and host systems.[23][25]

OpenWrt Buildroot provides the following features:[23][25]

  • makes it easy to port software across architectures
  • uses kconfig (Linux kernel menuconfig) for the configuration of all options
  • provides an integrated cross-compiler toolchain (gcclduClibc etc.)
  • provides an abstraction for autotools (automakeautoconf), cmake and SCons
  • handles standard OpenWrt image build workflow: downloading, patching, configuration, compilation and packaging
  • provides a number of common fixes for known badly behaving packages.

Besides building system images, OpenWrt development environment also provides a mechanism for simplified cross-platform building of OpenWrt software packages. Source code for each software package is required to provide a Makefile-like set of building instructions, and an optional set of patches for bug fixes or footprint optimizations.[26]

See also[edit]