From 485b35dcefe9df7a05756e8aea5d1a23cd517d3f Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Mon, 8 Jul 2013 13:49:10 +0300 Subject: [PATCH] documentation: Removed deprecated kernel-manual. Fixes [YOCTO #4810] I removed this manual from the tip of the repo. We carried a symlink to it for the 1.4 and 1.4.1 release. Now it is time to get rid of it. Removing this manual should get rid of the folder in the poky/documentation folder for future clones of that repo. This bug was entered because someone tried to make the manual for YP 1.5. It is debatable as to whether this is a fix or not. You might argue that the bug is not even a bug. (From yocto-docs rev: 6e2a14f9be5f37f16b91c0c8931df558aa9ef155) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- .../figures/kernel-architecture-overview.png | Bin 40748 -> 0 bytes .../kernel-manual/figures/kernel-title.png | Bin 13970 -> 0 bytes .../kernel-manual/kernel-concepts.xml | 392 ------- .../kernel-manual/kernel-doc-intro.xml | 78 -- documentation/kernel-manual/kernel-how-to.xml | 918 ---------------- .../kernel-manual-customization.xsl | 11 - .../kernel-manual-eclipse-customization.xsl | 27 - documentation/kernel-manual/kernel-manual.xml | 106 -- documentation/kernel-manual/kernel-style.css | 979 ------------------ 9 files changed, 2511 deletions(-) delete mode 100755 documentation/kernel-manual/figures/kernel-architecture-overview.png delete mode 100644 documentation/kernel-manual/figures/kernel-title.png delete mode 100644 documentation/kernel-manual/kernel-concepts.xml delete mode 100644 documentation/kernel-manual/kernel-doc-intro.xml delete mode 100644 documentation/kernel-manual/kernel-how-to.xml delete mode 100644 documentation/kernel-manual/kernel-manual-customization.xsl delete mode 100644 documentation/kernel-manual/kernel-manual-eclipse-customization.xsl delete mode 100644 documentation/kernel-manual/kernel-manual.xml delete mode 100644 documentation/kernel-manual/kernel-style.css diff --git a/documentation/kernel-manual/figures/kernel-architecture-overview.png b/documentation/kernel-manual/figures/kernel-architecture-overview.png deleted file mode 100755 index 2aad172db3b84382f5be412447a005f3846a5c9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 40748 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 diff --git a/documentation/kernel-manual/figures/kernel-title.png b/documentation/kernel-manual/figures/kernel-title.png deleted file mode 100644 index 59d86c00dca5e2475f7cdee54f82d6ff8c027a47..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 13970 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 aPq<~j#3nFF7$gwjFL`NYsj7E|LH`F~EY|Y? diff --git a/documentation/kernel-manual/kernel-concepts.xml b/documentation/kernel-manual/kernel-concepts.xml deleted file mode 100644 index 12909942571..00000000000 --- a/documentation/kernel-manual/kernel-concepts.xml +++ /dev/null @@ -1,392 +0,0 @@ - %poky; ] > - - - -Yocto Project Kernel Concepts - -
- Introduction - - This chapter provides conceptual information about the kernel: - - Kernel Goals - Kernel Development and Maintenance Overview - Kernel Architecture - Kernel Tools - - -
- -
- Kernel Goals - - The complexity of embedded kernel design has increased dramatically. - Whether it is managing multiple implementations of a particular feature or tuning and - optimizing board specific features, both flexibility and maintainability are key concerns. - The Linux kernels available through the Yocto Project are presented with the embedded - developer's needs in mind and have evolved to assist in these key concerns. - For example, prior methods such as applying hundreds of patches to an extracted - tarball have been replaced with proven techniques that allow easy inspection, - bisection and analysis of changes. - Application of these techniques also creates a platform for performing integration and - collaboration with the thousands of upstream development projects. - - - With all these considerations in mind, the Yocto Project's kernel and development team - strives to attain these goals: - - Allow the end user to leverage community best practices to seamlessly - manage the development, build and debug cycles. - Create a platform for performing integration and collaboration with the - thousands of upstream development projects that exist. - Provide mechanisms that support many different work flows, front-ends and - management techniques. - Deliver the most up-to-date kernel possible while still ensuring that - the baseline kernel is the most stable official release. - Include major technological features as part of the Yocto Project's - upward revision strategy. - Present a kernel Git repository that, similar to the upstream - kernel.org tree, - has a clear and continuous history. - Deliver a key set of supported kernel types, where each type is tailored - to meet a specific use (e.g. networking, consumer, devices, and so forth). - Employ a Git branching strategy that, from a developer's point of view, - results in a linear path from the baseline kernel.org, - through a select group of features and - ends with their BSP-specific commits. - - -
- -
- Yocto Project Kernel Development and Maintenance Overview - - Kernels available through the Yocto Project, like other kernels, are based off the Linux - kernel releases from . - At the beginning of a major development cycle, the Yocto Project team - chooses its kernel based on factors such as release timing, the anticipated release - timing of final upstream kernel.org versions, and Yocto Project - feature requirements. - Typically, the kernel chosen is in the - final stages of development by the community. - In other words, the kernel is in the release - candidate or "rc" phase and not yet a final release. - But, by being in the final stages of external development, the team knows that the - kernel.org final release will clearly be within the early stages of - the Yocto Project development window. - - - This balance allows the team to deliver the most up-to-date kernel - possible, while still ensuring that the team has a stable official release for - the baseline Linux kernel version. - - - The ultimate source for kernels available through the Yocto Project are released kernels - from kernel.org. - In addition to a foundational kernel from kernel.org, the - kernels available contain a mix of important new mainline - developments, non-mainline developments (when there is no alternative), - Board Support Package (BSP) developments, - and custom features. - These additions result in a commercially released Yocto Project Linux kernel that caters - to specific embedded designer needs for targeted hardware. - - - Once a kernel is officially released, the Yocto Project team goes into - their next development cycle, or upward revision (uprev) cycle, while still - continuing maintenance on the released kernel. - It is important to note that the most sustainable and stable way - to include feature development upstream is through a kernel uprev process. - Back-porting hundreds of individual fixes and minor features from various - kernel versions is not sustainable and can easily compromise quality. - - - During the uprev cycle, the Yocto Project team uses an ongoing analysis of - kernel development, BSP support, and release timing to select the best - possible kernel.org version. - The team continually monitors community kernel - development to look for significant features of interest. - The team does consider back-porting large features if they have a significant advantage. - User or community demand can also trigger a back-port or creation of new - functionality in the Yocto Project baseline kernel during the uprev cycle. - - - Generally speaking, every new kernel both adds features and introduces new bugs. - These consequences are the basic properties of upstream kernel development and are - managed by the Yocto Project team's kernel strategy. - It is the Yocto Project team's policy to not back-port minor features to the released kernel. - They only consider back-porting significant technological jumps - and, that is done - after a complete gap analysis. - The reason for this policy is that back-porting any small to medium sized change - from an evolving kernel can easily create mismatches, incompatibilities and very - subtle errors. - - - These policies result in both a stable and a cutting - edge kernel that mixes forward ports of existing features and significant and critical - new functionality. - Forward porting functionality in the kernels available through the Yocto Project kernel - can be thought of as a "micro uprev." - The many “micro uprevs” produce a kernel version with a mix of - important new mainline, non-mainline, BSP developments and feature integrations. - This kernel gives insight into new features and allows focused - amounts of testing to be done on the kernel, which prevents - surprises when selecting the next major uprev. - The quality of these cutting edge kernels is evolving and the kernels are used in leading edge - feature and BSP development. - -
- -
- Kernel Architecture - - This section describes the architecture of the kernels available through the - Yocto Project and provides information - on the mechanisms used to achieve that architecture. - - -
- Overview - - As mentioned earlier, a key goal of the Yocto Project is to present the - developer with - a kernel that has a clear and continuous history that is visible to the user. - The architecture and mechanisms used achieve that goal in a manner similar to the - upstream kernel.org. - - - You can think of a Yocto Project kernel as consisting of a baseline Linux kernel with - added features logically structured on top of the baseline. - The features are tagged and organized by way of a branching strategy implemented by the - source code manager (SCM) Git. - For information on Git as applied to the Yocto Project, see the - "Git" section in the - Yocto Project Development Manual. - - - The result is that the user has the ability to see the added features and - the commits that make up those features. - In addition to being able to see added features, the user can also view the history of what - made up the baseline kernel. - - - The following illustration shows the conceptual Yocto Project kernel. - - - - - - In the illustration, the "Kernel.org Branch Point" - marks the specific spot (or release) from - which the Yocto Project kernel is created. - From this point "up" in the tree, features and differences are organized and tagged. - - - The "Yocto Project Baseline Kernel" contains functionality that is common to every kernel - type and BSP that is organized further up the tree. - Placing these common features in the - tree this way means features don't have to be duplicated along individual branches of the - structure. - - - From the Yocto Project Baseline Kernel, branch points represent specific functionality - for individual BSPs as well as real-time kernels. - The illustration represents this through three BSP-specific branches and a real-time - kernel branch. - Each branch represents some unique functionality for the BSP or a real-time kernel. - - - In this example structure, the real-time kernel branch has common features for all - real-time kernels and contains - more branches for individual BSP-specific real-time kernels. - The illustration shows three branches as an example. - Each branch points the way to specific, unique features for a respective real-time - kernel as they apply to a given BSP. - - - The resulting tree structure presents a clear path of markers (or branches) to the - developer that, for all practical purposes, is the kernel needed for any given set - of requirements. - -
- -
- Branching Strategy and Workflow - - The Yocto Project team creates kernel branches at points where functionality is - no longer shared and thus, needs to be isolated. - For example, board-specific incompatibilities would require different functionality - and would require a branch to separate the features. - Likewise, for specific kernel features, the same branching strategy is used. - - - This branching strategy results in a tree that has features organized to be specific - for particular functionality, single kernel types, or a subset of kernel types. - This strategy also results in not having to store the same feature twice - internally in the tree. - Rather, the kernel team stores the unique differences required to apply the - feature onto the kernel type in question. - - The Yocto Project team strives to place features in the tree such that they can be - shared by all boards and kernel types where possible. - However, during development cycles or when large features are merged, - the team cannot always follow this practice. - In those cases, the team uses isolated branches to merge features. - - - - BSP-specific code additions are handled in a similar manner to kernel-specific additions. - Some BSPs only make sense given certain kernel types. - So, for these types, the team creates branches off the end of that kernel type for all - of the BSPs that are supported on that kernel type. - From the perspective of the tools that create the BSP branch, the BSP is really no - different than a feature. - Consequently, the same branching strategy applies to BSPs as it does to features. - So again, rather than store the BSP twice, the team only stores the unique - differences for the BSP across the supported multiple kernels. - - - While this strategy can result in a tree with a significant number of branches, it is - important to realize that from the developer's point of view, there is a linear - path that travels from the baseline kernel.org, through a select - group of features and ends with their BSP-specific commits. - In other words, the divisions of the kernel are transparent and are not relevant - to the developer on a day-to-day basis. - From the developer's perspective, this path is the "master" branch. - The developer does not need to be aware of the existence of any other branches at all. - Of course, there is value in the existence of these branches - in the tree, should a person decide to explore them. - For example, a comparison between two BSPs at either the commit level or at the line-by-line - code diff level is now a trivial operation. - - - Working with the kernel as a structured tree follows recognized community best practices. - In particular, the kernel as shipped with the product, should be - considered an "upstream source" and viewed as a series of - historical and documented modifications (commits). - These modifications represent the development and stabilization done - by the Yocto Project kernel development team. - - - Because commits only change at significant release points in the product life cycle, - developers can work on a branch created - from the last relevant commit in the shipped Yocto Project kernel. - As mentioned previously, the structure is transparent to the developer - because the kernel tree is left in this state after cloning and building the kernel. - -
- -
- Source Code Manager - Git - - The Source Code Manager (SCM) is Git. - This SCM is the obvious mechanism for meeting the previously mentioned goals. - Not only is it the SCM for kernel.org but, - Git continues to grow in popularity and supports many different work flows, - front-ends and management techniques. - - - You can find documentation on Git at . - You can also get an introduction to Git as it applies to the Yocto Project in the - "Git" - section in the Yocto Project Development Manual. - These referenced sections overview Git and describe a minimal set of - commands that allows you to be functional using Git. - - You can use as much, or as little, of what Git has to offer to accomplish what - you need for your project. - You do not have to be a "Git Master" in order to use it with the Yocto Project. - - -
-
- -
- Kernel Configuration - - Kernel configuration, along with kernel features, defines how a kernel - image is built for the Yocto Project. - Through configuration settings, you can customize a Yocto Project kernel to be - specific to particular hardware. - For example, you can specify sound support or networking support. - This section describes basic concepts behind Kernel configuration within the - Yocto Project and references you to other areas for specific configuration - applications. - - - - Conceptually, configuration of a Yocto Project kernel occurs similarly to that needed for any - Linux kernel. - The build process for a Yocto Project kernel uses a .config file, which - is created through the Linux Kernel Configuration (LKC) tool. - You can directly set various configurations in the - .config file by using the menuconfig - tool as built by BitBake. - You can also define configurations in the file by using configuration fragments. - - It is not recommended that you edit the .config file directly. - - Here are some brief descriptions of the ways you can affect the - .config file: - - The menuconfig Tool: - One of many front-ends that allows you to define kernel configurations. - Some others are make config, - make nconfig, and make gconfig. - In the Yocto Project environment, you must use BitBake to build the - menuconfig tool before you can use it to define - configurations: - - $ bitbake linux-yocto -c menuconfig - - After the tool is built, you can interact with it normally. - You can see how menuconfig is used to change a simple - kernel configuration in the - "Configuring the Kernel" - section of the Yocto Project Development Manual. - For general information on menuconfig, see - . - - Configuration Fragments: A file with a - list of kernel options just as they would appear syntactically in the - .config file. - Configuration fragments are typically logical groupings and are assembled - by the OpenEmbedded build system to produce input used by the LKC - that ultimately generates the .config file. - The - KERNEL_FEATURES - variable can be used to list configuration fragments. - For further discussion on applying configuration fragments, see the - "Linux Kernel Configuration" - section in the Yocto Project Board Support Package (BSP) Guide. - - - -
- -
- Kernel Tools - - Since most standard workflows involve moving forward with an existing tree by - continuing to add and alter the underlying baseline, the tools that manage - the Yocto Project's kernel construction are largely hidden from the developer to - present a simplified view of the kernel for ease of use. - - - Fundamentally, the kernel tools that manage and construct the - Yocto Project kernel accomplish the following: - - Group patches into named, reusable features. - Allow top-down control of included features. - Bind kernel configurations to kernel patches and features. - Present a seamless Git repository that blends Yocto Project value - with the kernel.org history and development. - - -
-
- diff --git a/documentation/kernel-manual/kernel-doc-intro.xml b/documentation/kernel-manual/kernel-doc-intro.xml deleted file mode 100644 index c1cc22bb7a3..00000000000 --- a/documentation/kernel-manual/kernel-doc-intro.xml +++ /dev/null @@ -1,78 +0,0 @@ - %poky; ] > - - - -Yocto Project Kernel Architecture and Use Manual - -
- Introduction - - The Yocto Project presents kernels as a fully patched, history-clean Git - repositories. - Each repository represents selected features, board support, - and configurations extensively tested by the Yocto Project. - Yocto Project kernels allow the end user to leverage community - best practices to seamlessly manage the development, build and debug cycles. - - - This manual describes Yocto Project kernels by providing information - on history, organization, benefits, and use. - The manual consists of two sections: - - Concepts: Describes concepts behind a kernel. - You will understand how a kernel is organized and why it is organized in - the way it is. You will understand the benefits of a kernel's organization - and the mechanisms used to work with the kernel and how to apply it in your - design process. - Using a Kernel: Describes best practices - and "how-to" information - that lets you put a kernel to practical use. - Some examples are how to examine changes in a branch and how to - save kernel modifications. - - - - - For more information on the Linux kernel, see the following links: - - The Linux Foundation's guide for kernel development - process - - A fairly encompassing guide on Linux kernel development - - - - - - - For more discussion on the Yocto Project kernel, you can see these sections - in the Yocto Project Development Manual: - - - "Kernel Overview" - - "Kernel Modification Workflow" - - - "Patching the Kernel" - - "Configuring the Kernel" - - - - - For general information on the Yocto Project, visit the website at - . - -
- - - - - - - -
- diff --git a/documentation/kernel-manual/kernel-how-to.xml b/documentation/kernel-manual/kernel-how-to.xml deleted file mode 100644 index 9d9aef6d064..00000000000 --- a/documentation/kernel-manual/kernel-how-to.xml +++ /dev/null @@ -1,918 +0,0 @@ - %poky; ] > - - - -Working with the Yocto Project Kernel - - -
- Introduction - - This chapter describes how to accomplish tasks involving a kernel's tree structure. - The information is designed to help the developer that wants to modify the Yocto - Project kernel and contribute changes upstream to the Yocto Project. - The information covers the following: - - Tree construction - Build strategies - Workflow examples - - -
- -
- Tree Construction - - This section describes construction of the Yocto Project kernel source repositories - as accomplished by the Yocto Project team to create kernel repositories. - These kernel repositories are found under the heading "Yocto Linux Kernel" at - &YOCTO_GIT_URL;/cgit.cgi - and can be shipped as part of a Yocto Project release. - The team creates these repositories by - compiling and executing the set of feature descriptions for every BSP/feature - in the product. - Those feature descriptions list all necessary patches, - configuration, branching, tagging and feature divisions found in a kernel. - Thus, the Yocto Project kernel repository (or tree) is built. - - - The existence of this tree allows you to access and clone a particular - Yocto Project kernel repository and use it to build images based on their configurations - and features. - - - You can find the files used to describe all the valid features and BSPs - in the Yocto Project kernel in any clone of the Yocto Project kernel source repository - Git tree. - For example, the following command clones the Yocto Project baseline kernel that - branched off of linux.org version 3.4: - - $ git clone git://git.yoctoproject.org/linux-yocto-3.4 - - For another example of how to set up a local Git repository of the Yocto Project - kernel files, see the - "Yocto Project Kernel" bulleted - item in the Yocto Project Development Manual. - - - Once you have cloned the kernel Git repository on your local machine, you can - switch to the meta branch within the repository. - Here is an example that assumes the local Git repository for the kernel is in - a top-level directory named linux-yocto-3.4: - - $ cd ~/linux-yocto-3.4 - $ git checkout -b meta origin/meta - - Once you have checked out and switched to the meta branch, - you can see a snapshot of all the kernel configuration and feature descriptions that are - used to build that particular kernel repository. - These descriptions are in the form of .scc files. - - - You should realize, however, that browsing your local kernel repository - for feature descriptions and patches is not an effective way to determine what is in a - particular kernel branch. - Instead, you should use Git directly to discover the changes in a branch. - Using Git is an efficient and flexible way to inspect changes to the kernel. - For examples showing how to use Git to inspect kernel commits, see the following sections - in this chapter. - - Ground up reconstruction of the complete kernel tree is an action only taken by the - Yocto Project team during an active development cycle. - When you create a clone of the kernel Git repository, you are simply making it - efficiently available for building and development. - - - - The following steps describe what happens when the Yocto Project Team constructs - the Yocto Project kernel source Git repository (or tree) found at - given the - introduction of a new top-level kernel feature or BSP. - These are the actions that effectively create the tree - that includes the new feature, patch or BSP: - - A top-level kernel feature is passed to the kernel build subsystem. - Normally, this feature is a BSP for a particular kernel type. - The file that describes the top-level feature is located by searching - these system directories: - - The in-tree kernel-cache directories, which are located - in meta/cfg/kernel-cache - Areas pointed to by SRC_URI statements - found in recipes - - For a typical build, the target of the search is a - feature description in an .scc file - whose name follows this format: - - <bsp_name>-<kernel_type>.scc - - - Once located, the feature description is either compiled into a simple script - of actions, or into an existing equivalent script that is already part of the - shipped kernel. - Extra features are appended to the top-level feature description. - These features can come from the - KERNEL_FEATURES - variable in recipes. - Each extra feature is located, compiled and appended to the script - as described in step three. - The script is executed to produce a series of meta-* - directories. - These directories are descriptions of all the branches, tags, patches and configurations that - need to be applied to the base Git repository to completely create the - source (build) branch for the new BSP or feature. - The base repository is cloned, and the actions - listed in the meta-* directories are applied to the - tree. - The Git repository is left with the desired branch checked out and any - required branching, patching and tagging has been performed. - - - - The kernel tree is now ready for developer consumption to be locally cloned, - configured, and built into a Yocto Project kernel specific to some target hardware. - The generated meta-* directories add to the kernel - as shipped with the Yocto Project release. - Any add-ons and configuration data are applied to the end of an existing branch. - The full repository generation that is found in the - official Yocto Project kernel repositories at - http://git.yoctoproject.org/cgit.cgi - is the combination of all supported boards and configurations. - The technique the Yocto Project team uses is flexible and allows for seamless - blending of an immutable history with additional patches specific to a - deployment. - Any additions to the kernel become an integrated part of the branches. - - -
- -
- Build Strategy - - Once a local Git repository of the Yocto Project kernel exists on a development system, - you can consider the compilation phase of kernel development - building a kernel image. - Some prerequisites exist that are validated by the build process before compilation - starts: - - - - The - SRC_URI points - to the kernel Git repository. - A BSP build branch exists. - This branch has the following form: - - <kernel_type>/<bsp_name> - - - - - The OpenEmbedded build system makes sure these conditions exist before attempting compilation. - Other means, however, do exist, such as as bootstrapping a BSP, see - the "Workflow Examples". - - - - Before building a kernel, the build process verifies the tree - and configures the kernel by processing all of the - configuration "fragments" specified by feature descriptions in the .scc - files. - As the features are compiled, associated kernel configuration fragments are noted - and recorded in the meta-* series of directories in their compilation order. - The fragments are migrated, pre-processed and passed to the Linux Kernel - Configuration subsystem (lkc) as raw input in the form - of a .config file. - The lkc uses its own internal dependency constraints to do the final - processing of that information and generates the final .config file - that is used during compilation. - - - - Using the board's architecture and other relevant values from the board's template, - kernel compilation is started and a kernel image is produced. - - - - The other thing that you notice once you configure a kernel is that - the build process generates a build tree that is separate from your kernel's local Git - source repository tree. - This build tree has a name that uses the following form, where - ${MACHINE} is the metadata name of the machine (BSP) and "kernel_type" is one - of the Yocto Project supported kernel types (e.g. "standard"): - - linux-${MACHINE}-<kernel_type>-build - - - - - The existing support in the kernel.org tree achieves this - default functionality. - - - - This behavior means that all the generated files for a particular machine or BSP are now in - the build tree directory. - The files include the final .config file, all the .o - files, the .a files, and so forth. - Since each machine or BSP has its own separate build directory in its own separate branch - of the Git repository, you can easily switch between different builds. - -
- -
- Workflow Examples - - - As previously noted, the Yocto Project kernel has built-in Git integration. - However, these utilities are not the only way to work with the kernel repository. - The Yocto Project has not made changes to Git or to other tools that - would invalidate alternate workflows. - Additionally, the way the kernel repository is constructed results in using - only core Git functionality, thus allowing any number of tools or front ends to use the - resulting tree. - - - - This section contains several workflow examples. - Many of the examples use Git commands. - You can find Git documentation at - . - You can find a simple overview of using Git with the Yocto Project in the - "Git" - section of the Yocto Project Development Manual. - - -
- Change Inspection: Changes/Commits - - - A common question when working with a kernel is: - "What changes have been applied to this tree?" - - - - In projects that have a collection of directories that - contain patches to the kernel, it is possible to inspect or "grep" the contents - of the directories to get a general feel for the changes. - This sort of patch inspection is not an efficient way to determine what has been - done to the kernel. - The reason it is inefficient is because there are many optional patches that are - selected based on the kernel type and the feature description. - Additionally, patches could exist in directories that are not included in the search. - - - - A more efficient way to determine what has changed in the branch is to use - Git and inspect or search the kernel tree. - This method gives you a full view of not only the source code modifications, - but also provides the reasons for the changes. - - -
- What Changed in a Kernel? - - - Following are a few examples that show how to use Git commands to examine changes. - Because Git repositories in the Yocto Project do not break existing Git - functionality, and because there exists many permutations of these types of - Git commands, many methods exist by which you can discover changes. - - In the following examples, unless you provide a commit range, - kernel.org history is blended with Yocto Project - kernel changes. - You can form ranges by using branch names from the kernel tree as the - upper and lower commit markers with the Git commands. - You can see the branch names through the web interface to the - Yocto Project source repositories at - . - For example, the branch names for the linux-yocto-3.4 - kernel repository can be seen at - . - - To see a full range of the changes, use the - git whatchanged command and specify a commit range - for the branch (<commit>..<commit>). - - - - Here is an example that looks at what has changed in the - emenlow branch of the - linux-yocto-3.4 kernel. - The lower commit range is the commit associated with the - standard/base branch, while - the upper commit range is the commit associated with the - standard/emenlow branch. - - $ git whatchanged origin/standard/base..origin/standard/emenlow - - - - - To see a summary of changes use the git log command. - Here is an example using the same branches: - - $ git log --oneline origin/standard/base..origin/standard/emenlow - - The git log output might be more useful than - the git whatchanged as you get - a short, one-line summary of each change and not the entire commit. - - - - If you want to see code differences associated with all the changes, use - the git diff command. - Here is an example: - - $ git diff origin/standard/base..origin/standard/emenlow - - - - - You can see the commit log messages and the text differences using the - git show command: - Here is an example: - - $ git show origin/standard/base..origin/standard/emenlow - - - - - You can create individual patches for each change by using the - git format-patch command. - Here is an example that that creates patch files for each commit and - places them in your Documents directory: - - $ git format-patch -o $HOME/Documents origin/standard/base..origin/standard/emenlow - - -
- -
- Show a Particular Feature or Branch Change - - - Developers use tags in the Yocto Project kernel tree to divide changes for significant - features or branches. - Once you know a particular tag, you can use Git commands - to show changes associated with the tag and find the branches that contain - the feature. - - Because BSP branch, kernel.org, and feature tags are all - present, there could be many tags. - - The git show <tag> command shows changes that are tagged by - a feature. - Here is an example that shows changes tagged by the systemtap - feature: - - $ git show systemtap - - You can use the git branch --contains <tag> command - to show the branches that contain a particular feature. - This command shows the branches that contain the systemtap - feature: - - $ git branch --contains systemtap - - - - - You can use many other comparisons to isolate BSP and kernel changes. - For example, you can compare against kernel.org tags - such as the v3.4 tag. - -
-
- -
- Development: Saving Kernel Modifications - - - Another common operation is to build a BSP supplied by the Yocto Project, make some - changes, rebuild, and then test. - Those local changes often need to be exported, shared or otherwise maintained. - - - - Since the Yocto Project kernel source tree is backed by Git, this activity is - much easier as compared to with previous releases. - Because Git tracks file modifications, additions and deletions, it is easy - to modify the code and later realize that you need to save the changes. - It is also easy to determine what has changed. - This method also provides many tools to commit, undo and export those modifications. - - - - This section and its sub-sections, describe general application of Git's - push and pull commands, which are used to - get your changes upstream or source your code from an upstream repository. - The Yocto Project provides scripts that help you work in a collaborative development - environment. - For information on these scripts, see the - "Using Scripts to Push a Change - Upstream and Request a Pull" and - "Using Email to Submit a Patch" - sections in the Yocto Project Development Manual. - - - - There are many ways to save kernel modifications. - The technique employed - depends on the destination for the patches: - - - Bulk storage - Internal sharing either through patches or by using Git - External submissions - Exporting for integration into another Source Code - Manager (SCM) - - - - - Because of the following list of issues, the destination of the patches also influences - the method for gathering them: - - - Bisectability - Commit headers - Division of subsystems for separate submission or review - - - -
- Bulk Export - - - This section describes how you can "bulk" export changes that have not - been separated or divided. - This situation works well when you are simply storing patches outside of the kernel - source repository, either permanently or temporarily, and you are not committing - incremental changes during development. - - This technique is not appropriate for full integration of upstream submission - because changes are not properly divided and do not provide an avenue for per-change - commit messages. - Therefore, this example assumes that changes have not been committed incrementally - during development and that you simply must gather and export them. - - - # bulk export of ALL modifications without separation or division - # of the changes - - $ git add . - $ git commit -s -a -m <msg> - or - $ git commit -s -a # and interact with $EDITOR - - - - - The previous operations capture all the local changes in the project source - tree in a single Git commit. - And, that commit is also stored in the project's source tree. - - - - Once the changes are exported, you can restore them manually using a template - or through integration with the default_kernel. - - -
- -
- Incremental/Planned Sharing - - - This section describes how to save modifications when you are making incremental - commits or practicing planned sharing. - The examples in this section assume that you have incrementally committed - changes to the tree during development and now need to export them. - The sections that follow - describe how you can export your changes internally through either patches or by - using Git commands. - - - - During development, the following commands are of interest. - For full Git documentation, refer to the Git documentation at - . - - - # edit a file - $ vi <path>/file - # stage the change - $ git add <path>/file - # commit the change - $ git commit -s - # remove a file - $ git rm <path>/file - # commit the change - $ git commit -s - - ... etc. - - - - - Distributed development with Git is possible when you use a universally - agreed-upon unique commit identifier (set by the creator of the commit) that maps to a - specific change set with a specific parent. - This identifier is created for you when - you create a commit, and is re-created when you amend, alter or re-apply - a commit. - As an individual in isolation, this is of no interest. - However, if you - intend to share your tree with normal Git push and - pull operations for - distributed development, you should consider the ramifications of changing a - commit that you have already shared with others. - - - - Assuming that the changes have not been pushed upstream, or pulled into - another repository, you can update both the commit content and commit messages - associated with development by using the following commands: - - - $ Git add <path>/file - $ Git commit --amend - $ Git rebase or Git rebase -i - - - - - Again, assuming that the changes have not been pushed upstream, and that - no pending works-in-progress exist (use git status to check), then - you can revert (undo) commits by using the following commands: - - - # remove the commit, update working tree and remove all - # traces of the change - $ git reset --hard HEAD^ - # remove the commit, but leave the files changed and staged for re-commit - $ git reset --soft HEAD^ - # remove the commit, leave file change, but not staged for commit - $ git reset --mixed HEAD^ - - - - - You can create branches, "cherry-pick" changes, or perform any number of Git - operations until the commits are in good order for pushing upstream - or for pull requests. - After a push or pull command, - commits are normally considered - "permanent" and you should not modify them. - If the commits need to be changed, you can incrementally do so with new commits. - These practices follow standard Git workflow and the kernel.org best - practices, which is recommended. - - It is recommended to tag or branch before adding changes to a Yocto Project - BSP or before creating a new one. - The reason for this recommendation is because the branch or tag provides a - reference point to facilitate locating and exporting local changes. - - - -
- Exporting Changes Internally by Using Patches - - - This section describes how you can extract committed changes from a working directory - by exporting them as patches. - Once the changes have been extracted, you can use the patches for upstream submission, - place them in a Yocto Project template for automatic kernel patching, - or apply them in many other common uses. - - - - This example shows how to create a directory with sequentially numbered patches. - Once the directory is created, you can apply it to a repository using the - git am command to reproduce the original commit and all - the related information such as author, date, commit log, and so forth. - - The new commit identifiers (ID) will be generated upon re-application. - This action reflects that the commit is now applied to an underlying commit - with a different ID. - - - # <first-commit> can be a tag if one was created before development - # began. It can also be the parent branch if a branch was created - # before development began. - - $ git format-patch -o <dir> <first commit>..<last commit> - - - - - In other words: - - # Identify commits of interest. - - # If the tree was tagged before development - $ git format-patch -o <save dir> <tag> - - # If no tags are available - $ git format-patch -o <save dir> HEAD^ # last commit - $ git format-patch -o <save dir> HEAD^^ # last 2 commits - $ git whatchanged # identify last commit - $ git format-patch -o <save dir> <commit id> - $ git format-patch -o <save dir> <rev-list> - - -
- -
- Exporting Changes Internally by Using Git - - - This section describes how you can export changes from a working directory - by pushing the changes into a master repository or by making a pull request. - Once you have pushed the changes to the master repository, you can then - pull those same changes into a new kernel build at a later time. - - - - Use this command form to push the changes: - - $ git push ssh://<master_server>/<path_to_repo> - <local_branch>:<remote_branch> - - - - - For example, the following command pushes the changes from your local branch - yocto/standard/common-pc/base to the remote branch with the same name - in the master repository //git.mycompany.com/pub/git/kernel-3.4. - - $ git push ssh://git.mycompany.com/pub/git/kernel-3.4 \ - yocto/standard/common-pc/base:yocto/standard/common-pc/base - - - - - A pull request entails using the git request-pull command to compose - an email to the - maintainer requesting that a branch be pulled into the master repository, see - for an example. - - Other commands such as git stash or branching can also be used to save - changes, but are not covered in this document. - - -
-
- -
- Exporting Changes for External (Upstream) Submission - - - This section describes how to export changes for external upstream submission. - If the patch series is large or the maintainer prefers to pull - changes, you can submit these changes by using a pull request. - However, it is common to send patches as an email series. - This method allows easy review and integration of the changes. - - Before sending patches for review be sure you understand the - community standards for submitting and documenting changes and follow their best practices. - For example, kernel patches should follow standards such as: - - - - Documentation/SubmittingPatches (in any linux - kernel source tree) - - - - - - The messages used to commit changes are a large part of these standards. - Consequently, be sure that the headers for each commit have the required information. - For information on how to follow the Yocto Project commit message standards, see the - "How to Submit a - Change" section in the Yocto Project Development Manual. - - - - If the initial commits were not properly documented or do not meet those standards, - you can re-base by using the git rebase -i command to - manipulate the commits and - get them into the required format. - Other techniques such as branching and cherry-picking commits are also viable options. - - - - Once you complete the commits, you can generate the email that sends the patches - to the maintainer(s) or lists that review and integrate changes. - The command git send-email is commonly used to ensure - that patches are properly - formatted for easy application and avoid mailer-induced patch damage. - - - - The following is an example of dumping patches for external submission: - - # dump the last 4 commits - $ git format-patch --thread -n -o ~/rr/ HEAD^^^^ - $ git send-email --compose --subject '[RFC 0/N] <patch series summary>' \ - --to foo@yoctoproject.org --to bar@yoctoproject.org \ - --cc list@yoctoproject.org ~/rr - # the editor is invoked for the 0/N patch, and when complete the entire - # series is sent via email for review - - -
- -
- Exporting Changes for Import into Another SCM - - - When you want to export changes for import into another - Source Code Manager (SCM), you can use any of the previously discussed - techniques. - However, if the patches are manually applied to a secondary tree and then - that tree is checked into the SCM, you can lose change information such as - commit logs. - This process is not recommended. - - - - Many SCMs can directly import Git commits, or can translate Git patches so that - information is not lost. - Those facilities are SCM-dependent and you should use them whenever possible. - -
-
- -
- Working with the Yocto Project Kernel in Another SCM - - - This section describes kernel development in an SCM other than Git, - which is not the same as exporting changes to another SCM described earlier. - For this scenario, you use the OpenEmbedded build system to - develop the kernel in a different SCM. - The following must be true for you to accomplish this: - - The delivered Yocto Project kernel must be exported into the second - SCM. - Development must be exported from that secondary SCM into a - format that can be used by the OpenEmbedded build system. - - - -
- Exporting the Delivered Kernel to the SCM - - - Depending on the SCM, it might be possible to export the entire Yocto Project - kernel Git repository, branches and all, into a new environment. - This method is preferred because it has the most flexibility and potential to maintain - the meta data associated with each commit. - - - - When a direct import mechanism is not available, it is still possible to - export a branch (or series of branches) and check them into a new repository. - - - - The following commands illustrate some of the steps you could use to - import the yocto/standard/common-pc/base - kernel into a secondary SCM: - - $ git checkout yocto/standard/common-pc/base - $ cd .. ; echo linux/.git > .cvsignore - $ cvs import -m "initial import" linux MY_COMPANY start - - - - - You could now relocate the CVS repository and use it in a centralized manner. - - - - The following commands illustrate how you can condense and merge two BSPs into a - second SCM: - - $ git checkout yocto/standard/common-pc/base - $ git merge yocto/standard/common-pc-64/base - # resolve any conflicts and commit them - $ cd .. ; echo linux/.git > .cvsignore - $ cvs import -m "initial import" linux MY_COMPANY start - - -
- -
- Importing Changes for the Build - - - Once development has reached a suitable point in the second development - environment, you need to export the changes as patches. - To export them, place the changes in a recipe and - automatically apply them to the kernel during patching. - -
-
- -
- Creating a BSP Based on an Existing Similar BSP - - - This section overviews the process of creating a BSP based on an - existing similar BSP. - The information is introductory in nature and does not provide step-by-step examples. - For detailed information on how to create a new BSP, see - the "Creating a New BSP Layer Using the yocto-bsp Script" section in the - Yocto Project Board Support Package (BSP) Developer's Guide, or see the - Transcript:_creating_one_generic_Atom_BSP_from_another - wiki page. - - - - The basic steps you need to follow are: - - Make sure you have set up a local Source Directory: - You must create a local - Source Directory - by either creating a Git repository (recommended) or - extracting a Yocto Project release tarball. - Choose an existing BSP available with the Yocto Project: - Try to map your board features as closely to the features of a BSP that is - already supported and exists in the Yocto Project. - Starting with something as close as possible to your board makes developing - your BSP easier. - You can find all the BSPs that are supported and ship with the Yocto Project - on the Yocto Project's Download page at - . - Be sure you have the Base BSP: - You need to either have a local Git repository of the base BSP set up or - have downloaded and extracted the files from a release BSP tarball. - Either method gives you access to the BSP source files. - Make a copy of the existing BSP, thus isolating your new - BSP work: - Copying the existing BSP file structure gives you a new area in which to work. - Make configuration and recipe changes to your new BSP: - Configuration changes involve the files in the BSP's conf - directory. - Changes include creating a machine-specific configuration file and editing the - layer.conf file. - The configuration changes identify the kernel you will be using. - Recipe changes include removing, modifying, or adding new recipe files that - instruct the build process on what features to include in the image. - Prepare for the build: - Before you actually initiate the build, you need to set up the build environment - by sourcing the environment initialization script. - After setting up the environment, you need to make some build configuration - changes to the local.conf and bblayers.conf - files. - Build the image: - The OpenEmbedded build system uses BitBake to create the image. - You need to decide on the type of image you are going to build (e.g. minimal, base, - core, sato, and so forth) and then start the build using the bitbake - command. - - -
- -
- "-dirty" String - - - If kernel images are being built with "-dirty" on the end of the version - string, this simply means that modifications in the source - directory have not been committed. - - $ git status - - - - - You can use the above Git command to report modified, removed, or added files. - You should commit those changes to the tree regardless of whether they will be saved, - exported, or used. - Once you commit the changes you need to rebuild the kernel. - - - - To brute force pickup and commit all such pending changes, enter the following: - - $ git add . - $ git commit -s -a -m "getting rid of -dirty" - - - - - Next, rebuild the kernel. - -
-
-
- diff --git a/documentation/kernel-manual/kernel-manual-customization.xsl b/documentation/kernel-manual/kernel-manual-customization.xsl deleted file mode 100644 index 6f46df22893..00000000000 --- a/documentation/kernel-manual/kernel-manual-customization.xsl +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/documentation/kernel-manual/kernel-manual-eclipse-customization.xsl b/documentation/kernel-manual/kernel-manual-eclipse-customization.xsl deleted file mode 100644 index 7992173c6c9..00000000000 --- a/documentation/kernel-manual/kernel-manual-eclipse-customization.xsl +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/documentation/kernel-manual/kernel-manual.xml b/documentation/kernel-manual/kernel-manual.xml deleted file mode 100644 index 859bceabc5e..00000000000 --- a/documentation/kernel-manual/kernel-manual.xml +++ /dev/null @@ -1,106 +0,0 @@ - %poky; ] > - - - - - - - - - - - - The Yocto Project Kernel Architecture and Use Manual - - - - - Bruce Ashfield - - Wind River Corporation - - bruce.ashfield@windriver.com - - - - - - 0.9 - 24 November 2010 - The initial document draft released with the Yocto Project 0.9 Release. - - - 1.0 - 6 April 2011 - Released with the Yocto Project 1.0 Release. - - - 1.0.1 - 23 May 2011 - Released with the Yocto Project 1.0.1 Release. - - - 1.1 - 6 October 2011 - Released with the Yocto Project 1.1 Release. - - - 1.2 - April 2012 - Released with the Yocto Project 1.2 Release. - - - 1.3 - October 2012 - Released with the Yocto Project 1.3 Release. - - - 1.4 - Sometime in 2013 - Released with the Yocto Project 1.4 Release. - - - - - ©RIGHT_YEAR; - Linux Foundation - - - - - Permission is granted to copy, distribute and/or modify this document under - the terms of the Creative Commons Attribution-Share Alike 2.0 UK: England & Wales as published by Creative Commons. - - - Due to production processes, there could be differences between the Yocto Project - documentation bundled in the release tarball and the - Yocto Project Kernel Architecture and Use Manual on - the Yocto Project website. - For the latest version of this manual, see the manual on the website. - - - - - - - - - - - - - - - diff --git a/documentation/kernel-manual/kernel-style.css b/documentation/kernel-manual/kernel-style.css deleted file mode 100644 index a90d4af291a..00000000000 --- a/documentation/kernel-manual/kernel-style.css +++ /dev/null @@ -1,979 +0,0 @@ -/* - Generic XHTML / DocBook XHTML CSS Stylesheet. - - Browser wrangling and typographic design by - Oyvind Kolas / pippin@gimp.org - - Customised for Poky by - Matthew Allum / mallum@o-hand.com - - Thanks to: - Liam R. E. Quin - William Skaggs - Jakub Steiner - - Structure - --------- - - The stylesheet is divided into the following sections: - - Positioning - Margins, paddings, width, font-size, clearing. - Decorations - Borders, style - Colors - Colors - Graphics - Graphical backgrounds - Nasty IE tweaks - Workarounds needed to make it work in internet explorer, - currently makes the stylesheet non validating, but up until - this point it is validating. - Mozilla extensions - Transparency for footer - Rounded corners on boxes - -*/ - - - /*************** / - / Positioning / -/ ***************/ - -body { - font-family: Verdana, Sans, sans-serif; - - min-width: 640px; - width: 80%; - margin: 0em auto; - padding: 2em 5em 5em 5em; - color: #333; -} - -h1,h2,h3,h4,h5,h6,h7 { - font-family: Arial, Sans; - color: #00557D; - clear: both; -} - -h1 { - font-size: 2em; - text-align: left; - padding: 0em 0em 0em 0em; - margin: 2em 0em 0em 0em; -} - -h2.subtitle { - margin: 0.10em 0em 3.0em 0em; - padding: 0em 0em 0em 0em; - font-size: 1.8em; - padding-left: 20%; - font-weight: normal; - font-style: italic; -} - -h2 { - margin: 2em 0em 0.66em 0em; - padding: 0.5em 0em 0em 0em; - font-size: 1.5em; - font-weight: bold; -} - -h3.subtitle { - margin: 0em 0em 1em 0em; - padding: 0em 0em 0em 0em; - font-size: 142.14%; - text-align: right; -} - -h3 { - margin: 1em 0em 0.5em 0em; - padding: 1em 0em 0em 0em; - font-size: 140%; - font-weight: bold; -} - -h4 { - margin: 1em 0em 0.5em 0em; - padding: 1em 0em 0em 0em; - font-size: 120%; - font-weight: bold; -} - -h5 { - margin: 1em 0em 0.5em 0em; - padding: 1em 0em 0em 0em; - font-size: 110%; - font-weight: bold; -} - -h6 { - margin: 1em 0em 0em 0em; - padding: 1em 0em 0em 0em; - font-size: 110%; - font-weight: bold; -} - -.authorgroup { - background-color: transparent; - background-repeat: no-repeat; - padding-top: 256px; - background-image: url("figures/kernel-title.png"); - background-position: left top; - margin-top: -256px; - padding-right: 50px; - margin-left: 0px; - text-align: right; - width: 740px; -} - -h3.author { - margin: 0em 0me 0em 0em; - padding: 0em 0em 0em 0em; - font-weight: normal; - font-size: 100%; - color: #333; - clear: both; -} - -.author tt.email { - font-size: 66%; -} - -.titlepage hr { - width: 0em; - clear: both; -} - -.revhistory { - padding-top: 2em; - clear: both; -} - -.toc, -.list-of-tables, -.list-of-examples, -.list-of-figures { - padding: 1.33em 0em 2.5em 0em; - color: #00557D; -} - -.toc p, -.list-of-tables p, -.list-of-figures p, -.list-of-examples p { - padding: 0em 0em 0em 0em; - padding: 0em 0em 0.3em; - margin: 1.5em 0em 0em 0em; -} - -.toc p b, -.list-of-tables p b, -.list-of-figures p b, -.list-of-examples p b{ - font-size: 100.0%; - font-weight: bold; -} - -.toc dl, -.list-of-tables dl, -.list-of-figures dl, -.list-of-examples dl { - margin: 0em 0em 0.5em 0em; - padding: 0em 0em 0em 0em; -} - -.toc dt { - margin: 0em 0em 0em 0em; - padding: 0em 0em 0em 0em; -} - -.toc dd { - margin: 0em 0em 0em 2.6em; - padding: 0em 0em 0em 0em; -} - -div.glossary dl, -div.variablelist dl { -} - -.glossary dl dt, -.variablelist dl dt, -.variablelist dl dt span.term { - font-weight: normal; - width: 20em; - text-align: right; -} - -.variablelist dl dt { - margin-top: 0.5em; -} - -.glossary dl dd, -.variablelist dl dd { - margin-top: -1em; - margin-left: 25.5em; -} - -.glossary dd p, -.variablelist dd p { - margin-top: 0em; - margin-bottom: 1em; -} - - -div.calloutlist table td { - padding: 0em 0em 0em 0em; - margin: 0em 0em 0em 0em; -} - -div.calloutlist table td p { - margin-top: 0em; - margin-bottom: 1em; -} - -div p.copyright { - text-align: left; -} - -div.legalnotice p.legalnotice-title { - margin-bottom: 0em; -} - -p { - line-height: 1.5em; - margin-top: 0em; - -} - -dl { - padding-top: 0em; -} - -hr { - border: solid 1px; -} - - -.mediaobject, -.mediaobjectco { - text-align: center; -} - -img { - border: none; -} - -ul { - padding: 0em 0em 0em 1.5em; -} - -ul li { - padding: 0em 0em 0em 0em; -} - -ul li p { - text-align: left; -} - -table { - width :100%; -} - -th { - padding: 0.25em; - text-align: left; - font-weight: normal; - vertical-align: top; -} - -td { - padding: 0.25em; - vertical-align: top; -} - -p a[id] { - margin: 0px; - padding: 0px; - display: inline; - background-image: none; -} - -a { - text-decoration: underline; - color: #444; -} - -pre { - overflow: auto; -} - -a:hover { - text-decoration: underline; - /*font-weight: bold;*/ -} - - -div.informalfigure, -div.informalexample, -div.informaltable, -div.figure, -div.table, -div.example { - margin: 1em 0em; - padding: 1em; - page-break-inside: avoid; -} - - -div.informalfigure p.title b, -div.informalexample p.title b, -div.informaltable p.title b, -div.figure p.title b, -div.example p.title b, -div.table p.title b{ - padding-top: 0em; - margin-top: 0em; - font-size: 100%; - font-weight: normal; -} - -.mediaobject .caption, -.mediaobject .caption p { - text-align: center; - font-size: 80%; - padding-top: 0.5em; - padding-bottom: 0.5em; -} - -.epigraph { - padding-left: 55%; - margin-bottom: 1em; -} - -.epigraph p { - text-align: left; -} - -.epigraph .quote { - font-style: italic; -} -.epigraph .attribution { - font-style: normal; - text-align: right; -} - -span.application { - font-style: italic; -} - -.programlisting { - font-family: monospace; - font-size: 80%; - white-space: pre; - margin: 1.33em 0em; - padding: 1.33em; -} - -.tip, -.warning, -.caution, -.note { - margin-top: 1em; - margin-bottom: 1em; - -} - -/* force full width of table within div */ -.tip table, -.warning table, -.caution table, -.note table { - border: none; - width: 100%; -} - - -.tip table th, -.warning table th, -.caution table th, -.note table th { - padding: 0.8em 0.0em 0.0em 0.0em; - margin : 0em 0em 0em 0em; -} - -.tip p, -.warning p, -.caution p, -.note p { - margin-top: 0.5em; - margin-bottom: 0.5em; - padding-right: 1em; - text-align: left; -} - -.acronym { - text-transform: uppercase; -} - -b.keycap, -.keycap { - padding: 0.09em 0.3em; - margin: 0em; -} - -.itemizedlist li { - clear: none; -} - -.filename { - font-size: medium; - font-family: Courier, monospace; -} - - -div.navheader, div.heading{ - position: absolute; - left: 0em; - top: 0em; - width: 100%; - background-color: #cdf; - width: 100%; -} - -div.navfooter, div.footing{ - position: fixed; - left: 0em; - bottom: 0em; - background-color: #eee; - width: 100%; -} - - -div.navheader td, -div.navfooter td { - font-size: 66%; -} - -div.navheader table th { - /*font-family: Georgia, Times, serif;*/ - /*font-size: x-large;*/ - font-size: 80%; -} - -div.navheader table { - border-left: 0em; - border-right: 0em; - border-top: 0em; - width: 100%; -} - -div.navfooter table { - border-left: 0em; - border-right: 0em; - border-bottom: 0em; - width: 100%; -} - -div.navheader table td a, -div.navfooter table td a { - color: #777; - text-decoration: none; -} - -/* normal text in the footer */ -div.navfooter table td { - color: black; -} - -div.navheader table td a:visited, -div.navfooter table td a:visited { - color: #444; -} - - -/* links in header and footer */ -div.navheader table td a:hover, -div.navfooter table td a:hover { - text-decoration: underline; - background-color: transparent; - color: #33a; -} - -div.navheader hr, -div.navfooter hr { - display: none; -} - - -.qandaset tr.question td p { - margin: 0em 0em 1em 0em; - padding: 0em 0em 0em 0em; -} - -.qandaset tr.answer td p { - margin: 0em 0em 1em 0em; - padding: 0em 0em 0em 0em; -} -.answer td { - padding-bottom: 1.5em; -} - -.emphasis { - font-weight: bold; -} - - - /************* / - / decorations / -/ *************/ - -.titlepage { -} - -.part .title { -} - -.subtitle { - border: none; -} - -/* -h1 { - border: none; -} - -h2 { - border-top: solid 0.2em; - border-bottom: solid 0.06em; -} - -h3 { - border-top: 0em; - border-bottom: solid 0.06em; -} - -h4 { - border: 0em; - border-bottom: solid 0.06em; -} - -h5 { - border: 0em; -} -*/ - -.programlisting { - border: solid 1px; -} - -div.figure, -div.table, -div.informalfigure, -div.informaltable, -div.informalexample, -div.example { - border: 1px solid; -} - - - -.tip, -.warning, -.caution, -.note { - border: 1px solid; -} - -.tip table th, -.warning table th, -.caution table th, -.note table th { - border-bottom: 1px solid; -} - -.question td { - border-top: 1px solid black; -} - -.answer { -} - - -b.keycap, -.keycap { - border: 1px solid; -} - - -div.navheader, div.heading{ - border-bottom: 1px solid; -} - - -div.navfooter, div.footing{ - border-top: 1px solid; -} - - /********* / - / colors / -/ *********/ - -body { - color: #333; - background: white; -} - -a { - background: transparent; -} - -a:hover { - background-color: #dedede; -} - - -h1, -h2, -h3, -h4, -h5, -h6, -h7, -h8 { - background-color: transparent; -} - -hr { - border-color: #aaa; -} - - -.tip, .warning, .caution, .note { - border-color: #fff; -} - - -.tip table th, -.warning table th, -.caution table th, -.note table th { - border-bottom-color: #fff; -} - - -.warning { - background-color: #f0f0f2; -} - -.caution { - background-color: #f0f0f2; -} - -.tip { - background-color: #f0f0f2; -} - -.note { - background-color: #f0f0f2; -} - -.glossary dl dt, -.variablelist dl dt, -.variablelist dl dt span.term { - color: #044; -} - -div.figure, -div.table, -div.example, -div.informalfigure, -div.informaltable, -div.informalexample { - border-color: #aaa; -} - -pre.programlisting { - color: black; - background-color: #fff; - border-color: #aaa; - border-width: 2px; -} - -.guimenu, -.guilabel, -.guimenuitem { - background-color: #eee; -} - - -b.keycap, -.keycap { - background-color: #eee; - border-color: #999; -} - - -div.navheader { - border-color: black; -} - - -div.navfooter { - border-color: black; -} - - - /*********** / - / graphics / -/ ***********/ - -/* -body { - background-image: url("images/body_bg.jpg"); - background-attachment: fixed; -} - -.navheader, -.note, -.tip { - background-image: url("images/note_bg.jpg"); - background-attachment: fixed; -} - -.warning, -.caution { - background-image: url("images/warning_bg.jpg"); - background-attachment: fixed; -} - -.figure, -.informalfigure, -.example, -.informalexample, -.table, -.informaltable { - background-image: url("images/figure_bg.jpg"); - background-attachment: fixed; -} - -*/ -h1, -h2, -h3, -h4, -h5, -h6, -h7{ -} - -/* -Example of how to stick an image as part of the title. - -div.article .titlepage .title -{ - background-image: url("figures/white-on-black.png"); - background-position: center; - background-repeat: repeat-x; -} -*/ - -div.preface .titlepage .title, -div.colophon .title, -div.chapter .titlepage .title, -div.article .titlepage .title -{ -} - -div.section div.section .titlepage .title, -div.sect2 .titlepage .title { - background: none; -} - - -h1.title { - background-color: transparent; - background-image: url("figures/yocto-project-bw.png"); - background-repeat: no-repeat; - height: 256px; - text-indent: -9000px; - overflow:hidden; -} - -h2.subtitle { - background-color: transparent; - text-indent: -9000px; - overflow:hidden; - width: 0px; - display: none; -} - - /*************************************** / - / pippin.gimp.org specific alterations / -/ ***************************************/ - -/* -div.heading, div.navheader { - color: #777; - font-size: 80%; - padding: 0; - margin: 0; - text-align: left; - position: absolute; - top: 0px; - left: 0px; - width: 100%; - height: 50px; - background: url('/gfx/heading_bg.png') transparent; - background-repeat: repeat-x; - background-attachment: fixed; - border: none; -} - -div.heading a { - color: #444; -} - -div.footing, div.navfooter { - border: none; - color: #ddd; - font-size: 80%; - text-align:right; - - width: 100%; - padding-top: 10px; - position: absolute; - bottom: 0px; - left: 0px; - - background: url('/gfx/footing_bg.png') transparent; -} -*/ - - - - /****************** / - / nasty ie tweaks / -/ ******************/ - -/* -div.heading, div.navheader { - width:expression(document.body.clientWidth + "px"); -} - -div.footing, div.navfooter { - width:expression(document.body.clientWidth + "px"); - margin-left:expression("-5em"); -} -body { - padding:expression("4em 5em 0em 5em"); -} -*/ - - /**************************************** / - / mozilla vendor specific css extensions / -/ ****************************************/ -/* -div.navfooter, div.footing{ - -moz-opacity: 0.8em; -} - -div.figure, -div.table, -div.informalfigure, -div.informaltable, -div.informalexample, -div.example, -.tip, -.warning, -.caution, -.note { - -moz-border-radius: 0.5em; -} - -b.keycap, -.keycap { - -moz-border-radius: 0.3em; -} -*/ - -table tr td table tr td { - display: none; -} - - -hr { - display: none; -} - -table { - border: 0em; -} - - .photo { - float: right; - margin-left: 1.5em; - margin-bottom: 1.5em; - margin-top: 0em; - max-width: 17em; - border: 1px solid gray; - padding: 3px; - background: white; -} - .seperator { - padding-top: 2em; - clear: both; - } - - #validators { - margin-top: 5em; - text-align: right; - color: #777; - } - @media print { - body { - font-size: 8pt; - } - .noprint { - display: none; - } - } - - -.tip, -.note { - background: #f0f0f2; - color: #333; - padding: 20px; - margin: 20px; -} - -.tip h3, -.note h3 { - padding: 0em; - margin: 0em; - font-size: 2em; - font-weight: bold; - color: #333; -} - -.tip a, -.note a { - color: #333; - text-decoration: underline; -} - -.footnote { - font-size: small; - color: #333; -} - -/* Changes the announcement text */ -.tip h3, -.warning h3, -.caution h3, -.note h3 { - font-size:large; - color: #00557D; -} - -- 2.47.3