The lab portion to the "Getting Started with Buildroot" class given as part of the E-ALE training at SCaLE 17x. March 9 2019
https://e-ale.org/
https://cm.e-ale.org/2019/SCaLE17x/buildroot/
This document discusses replacing Apple software with Linux on Apple hardware without losing functionality. It recommends Ubuntu or Linux Mint desktop distributions and provides options for emulating critical apps like Mail, Calendar, Office suites, accounting software, media players, photo managers and virtual machines. Tips are included for graphics drivers, scrolling, networking and migrating from iPhoto. The conclusion states that going Apple-free is initially frustrating but ultimately rewarding as it allows more control and ownership over one's digital environment and creations.
The document provides an overview and introduction to building custom embedded Linux systems using Yocto Project and OpenEmbedded. It discusses build host requirements, the workflow and layers model, and provides pointers to upstream documentation and resources. The summary highlights key aspects:
- Yocto Project uses a layers model where a BSP layer, core metadata layers (e.g. poky), and additional application layers are combined to build customized embedded images
- Build hosts need certain packages installed like git, tar and development tools as well as some non-standard ones like bc, lzop, and u-boot-tools
- Network issues can cause build failures so it is recommended to pre-fetch sources and share caches between
The document discusses compiling and using U-Boot on the BeagleBone board. It describes how pulling the SD card in and out for each compile was slowing down development. The author configured U-Boot to load kernels over the network via TFTP to speed up the process. Key steps included setting up a DHCP and TFTP server to distribute images, compiling U-Boot for the BeagleBone, and modifying boot commands to load from the TFTP server instead of the SD card.
This document discusses using Puppet for scalable systems management. It begins with challenges faced by system administrators and an introduction to Puppet. It covers installing and configuring Puppet, including certificate signing. It also discusses managing infrastructure with Puppet through classes, modules, and templates. Examples of Puppet configuration are provided.
This document provides instructions on how to install a virtual machine. It begins by introducing virtual machines and their documentation. It then provides steps to install the JDK, RPM packages, and create a virtual machine host. These steps include installing KVM, QEMU, libvirt, configuring networking, and starting the libvirt daemon. The document then discusses expanding disk capacity by adding a new disk, partitioning it, and formatting the new partition. Finally, it outlines creating a load balancer and nodes by defining virtual machine configurations.
Using cobbler in a not so small environment 1.77chhorn
- cobbler basics
- why cobbler was chosen at a company
- how enterprise-requirements were met
- surrounding infrastructure (monitoring etc.)
- on community interaction
This document discusses tools for managing large scale computing environments: Cobbler, Puppet, and Func. Cobbler is a provisioning system that automates OS installation and configuration. Puppet is a configuration management tool that defines system configurations and ensures consistency. Func provides a Python API to manage systems, allowing them to be treated as Python objects. It includes modules to control services, run commands, and integrate with monitoring tools like Nagios. These tools help reduce complexity and enable consistent configuration of large numbers of systems.
A Journey to Boot Linux on Raspberry PiJian-Hong Pan
Each processor/chip architecture has its own procedure to boot the kernel. It works with desgined partition layout and vendor specific firmwares/bootloaders in the boot partition. We can learn the related knowledge from the Raspbian image for Raspberry Pi, which is the board we can obtain easily. However, the diversity between the special booting procedures with specific firmwares/bootloaders increases the complexity for distribution maintainers. It will be great if there is a way to make it more generic that can be applied to most of the chip architectures/boards to boot up the system.
After referring to some Linux distributions, we learned U-Boot may play a role in the solution. It splits the booting procedure into hardware specific and generic system parts. This helps distribution maintainers deploy the generic system with OSTree, including device trees.
Let’s deep dive into this magic booting procedure!
This document discusses replacing Apple software with Linux on Apple hardware without losing functionality. It recommends Ubuntu or Linux Mint desktop distributions and provides options for emulating critical apps like Mail, Calendar, Office suites, accounting software, media players, photo managers and virtual machines. Tips are included for graphics drivers, scrolling, networking and migrating from iPhoto. The conclusion states that going Apple-free is initially frustrating but ultimately rewarding as it allows more control and ownership over one's digital environment and creations.
The document provides an overview and introduction to building custom embedded Linux systems using Yocto Project and OpenEmbedded. It discusses build host requirements, the workflow and layers model, and provides pointers to upstream documentation and resources. The summary highlights key aspects:
- Yocto Project uses a layers model where a BSP layer, core metadata layers (e.g. poky), and additional application layers are combined to build customized embedded images
- Build hosts need certain packages installed like git, tar and development tools as well as some non-standard ones like bc, lzop, and u-boot-tools
- Network issues can cause build failures so it is recommended to pre-fetch sources and share caches between
The document discusses compiling and using U-Boot on the BeagleBone board. It describes how pulling the SD card in and out for each compile was slowing down development. The author configured U-Boot to load kernels over the network via TFTP to speed up the process. Key steps included setting up a DHCP and TFTP server to distribute images, compiling U-Boot for the BeagleBone, and modifying boot commands to load from the TFTP server instead of the SD card.
This document discusses using Puppet for scalable systems management. It begins with challenges faced by system administrators and an introduction to Puppet. It covers installing and configuring Puppet, including certificate signing. It also discusses managing infrastructure with Puppet through classes, modules, and templates. Examples of Puppet configuration are provided.
This document provides instructions on how to install a virtual machine. It begins by introducing virtual machines and their documentation. It then provides steps to install the JDK, RPM packages, and create a virtual machine host. These steps include installing KVM, QEMU, libvirt, configuring networking, and starting the libvirt daemon. The document then discusses expanding disk capacity by adding a new disk, partitioning it, and formatting the new partition. Finally, it outlines creating a load balancer and nodes by defining virtual machine configurations.
Using cobbler in a not so small environment 1.77chhorn
- cobbler basics
- why cobbler was chosen at a company
- how enterprise-requirements were met
- surrounding infrastructure (monitoring etc.)
- on community interaction
This document discusses tools for managing large scale computing environments: Cobbler, Puppet, and Func. Cobbler is a provisioning system that automates OS installation and configuration. Puppet is a configuration management tool that defines system configurations and ensures consistency. Func provides a Python API to manage systems, allowing them to be treated as Python objects. It includes modules to control services, run commands, and integrate with monitoring tools like Nagios. These tools help reduce complexity and enable consistent configuration of large numbers of systems.
A Journey to Boot Linux on Raspberry PiJian-Hong Pan
Each processor/chip architecture has its own procedure to boot the kernel. It works with desgined partition layout and vendor specific firmwares/bootloaders in the boot partition. We can learn the related knowledge from the Raspbian image for Raspberry Pi, which is the board we can obtain easily. However, the diversity between the special booting procedures with specific firmwares/bootloaders increases the complexity for distribution maintainers. It will be great if there is a way to make it more generic that can be applied to most of the chip architectures/boards to boot up the system.
After referring to some Linux distributions, we learned U-Boot may play a role in the solution. It splits the booting procedure into hardware specific and generic system parts. This helps distribution maintainers deploy the generic system with OSTree, including device trees.
Let’s deep dive into this magic booting procedure!
Puppet can be used effectively and at scale without running as root. In many organizations, particularly large ones, different teams are responsible for different pieces of the infrastructure. In my case, I am on a team responsible for installation, configuration, upkeep, and monitoring of an application, but we are denied root access. Despite this, we have a rich puppet infrastructure thats saves us time and reduces configuration drift. I will present our model for success in this kind of limited environment, including recipes for using puppet as non root and some encouraging words and ideas for those who want to implement puppet, but the rest of their organization isn't ready yet.
Spencer Krum
Systems Admin, UTI Worldwide
Spencer is a Linux and application administrator with UTI Worldwide, a shipping and logistics firm. He lives and works in Portland. He has been using Linux and Puppet for years. Spencer is co-authoring (with William Van Hevelingen and Ben Kero) the second edition of Pro Puppet by James Turnbull and Jeff McCune, which should be available from Apress in alpha/beta E-Book in time for Puppet Conf '13. He enjoys hacking, tennis, StarCraft, and Hawaiian food.
Cumulus Linux supports great networking, what’s next? Matt Peterson (@dorkmatt) our resident expert from the office of the CTO shares his previous experience, his views on devops, and how Cumulus Networks makes it easier to manage networks with ONIE, ZTP and no CLI! “Devops is a lifestyle, shared responsibility”. With Linux as the networks OS, “it’s all just one apt-get away!”
FUSE allows processes to mount their own private filesystems without requiring root privileges. Some examples of FUSE filesystems include encrypted volumes using encfs and remote filesystems mounted over SSH using sshfs. These filesystems can be mounted automatically and only be visible to the mounting process, providing security and privacy for personal data even from the root user.
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !Pierre-jean Texier
The document discusses adding new platform support for SWUpdate in 30 minutes using Yocto/OE. It provides an overview of SWUpdate and the update process. It then demonstrates how to generate a clean Yocto/OE setup for the Microchip SAMA5D27-SOM1-EK1 board using KAS. Specific steps are outlined for creating a partition scheme, machine configuration, and deployment/testing of SWUpdate on the target board.
This document discusses kernel modules in Linux. Key points include:
- Kernel modules can be loaded and unloaded at runtime to extend kernel functionality without recompiling. This saves memory and allows hardware-specific modules.
- A basic "Hello World" module is presented to demonstrate initializing and exiting functions.
- Compiling modules inside or outside the kernel tree is described. Tools for loading, uninstalling, and listing modules are also covered.
- The document explains how to define module parameters and export symbols for other modules to use. Kconfig files are used to configure modules.
The document discusses Hadoop and HDFS. It provides an overview of HDFS architecture and how it is designed to be highly fault tolerant and provide high throughput access to large datasets. It also discusses setting up single node and multi-node Hadoop clusters on Ubuntu Linux, including configuration, formatting, starting and stopping the clusters, and running MapReduce jobs.
This document provides instructions for setting up a continuous integration environment for Nuxeo modules using Ubuntu Server 7.10 virtualized with VmWare. It describes installing Ubuntu, configuring it with tools like MySQL, Maven, and Subversion. It then covers setting up Continuum and Archiva for continuous integration and artifact deployment. The document demonstrates configuring a sample Nuxeo module project in Eclipse to build with Maven and deploy artifacts to the Archiva repository for continuous integration with each code change.
What would it look like if we encapsulated an entire Haskell development environment in a docker container? How would we deploy that application to production?
This document provides instructions for resolving build errors when compiling the Elephant-Bird project on Mac OS X due to incompatible versions of Protoc and Thrift. It describes checking out older versions of the Protoc and Thrift Homebrew formulas, installing the required 0.7.0 and 2.4.1 versions, setting the PATH, and finally running mvn package to complete the build. References for further troubleshooting are also included.
This document provides instructions for setting up a workspace to build embedded Linux for the Raspberry Pi 3 board. It describes downloading source code and packages, configuring the build environment, building a basic Linux image, writing it to an SD card, and connecting to the board via serial terminal. Key steps include using Git to obtain source, modifying configuration files, issuing bitbake commands to compile the image, and using minicom to interact with the booted board over USB serial.
The Yocto Project is a collaborative open source project that provides prototypes, tools and methods that let you create personalized Linux-based systems for embedded products independent from the hardware architecture. The project was born in 2010 as a partnership of many different hardware manufacturers, open-source operative systems providers and electronic companies, to bring some order to the chaos that was the development of Linux Embedded. Why use Project Yocto? Because it's a development environment for Linux embedded complete with tools, meta-data and documentation - everything that one needs. The free of charge tools that Yocto makes available are powerful and easy to generate (included emulation environments, debuggers, a tool-kit to generate applications and others) and they let you create and continue projects, without causing you a loss of optimizations and investments made in the prototyping phase. Project Yocto supports the adoption of this technology by the open-source community letting users concentrate on the characteristics and development of their product.
This document discusses building a real-time (RT) image using Yocto Project. It provides an overview of Yocto and real-time Linux options like PREEMPT_RT and Xenomai. It describes extending Yocto recipes and layers to add support for building RT kernels and images for hardware like Raspberry Pi that can run real-time applications. The document references resources for the Yocto meta-xenomai layer and using Xenomai with Yocto to build real-time enabled embedded Linux images.
This document provides an overview and introduction to overlays and libraries for the Pebble smartwatch platform. It discusses the benefits of sharing code through libraries, how overlays allow combining multiple components, and examples of existing and upcoming projects that utilize overlays and libraries. The presenters provide contact information and links to GitHub repositories for following up on implementation details and working examples.
Install and Configure Ubuntu for Hadoop Installation for beginners Shilpa Hemaraj
Covered each and every step to configure Ubuntu. Used vmware workstation 10.
Note: I am beginner so I might have used technical word wrong. But it is working perfectly fine.
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)Puppet
This document discusses Docker and Puppet and how they can be used together. It describes how Puppet can be used to install and configure Docker on a system and then how Dockerfiles can be used to build container images. However, it notes that using Puppet to build container images directly is not recommended and describes alternatives like using Puppet during the build process to configure "golden images" and then deploying them. It suggests approaches like running services externally to containers and using data containers to optimize container usage.
Containerization Is More than the New VirtualizationC4Media
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/1E5GzZX.
Jérôme Petazzoni borrows from his experience at Docker Inc. to explain live applications running in Docker, including reading logs, remote access, and troubleshooting tips. Filmed at qconsf.com.
Jérôme Petazzoni is a senior engineer at dotCloud, where he rotates between Ops, Support and Evangelist duties and the nickname of “master Yoda”, has earned.
This document discusses experimenting with cgroups in Docker containers to isolate processes. It describes installing Docker, launching an Ubuntu container with capabilities enabled, and installing cgroup tools. It then mounts the cpuset and cpu cgroup hierarchies and creates low and high cgroups. Different CPU shares are assigned to each cgroup and processes are run in each to demonstrate the CPU isolation between cgroups.
Fabric is a lightweight Python library and command-line tool for streamlining SSH administration and deployment tasks. It provides a simple way to execute commands remotely or in parallel over SSH. The document outlines how Fabric can be used to create a simple deployment script in just a few lines of code by leveraging Fabric's SSH capabilities and API.
Crafting GNU/ linux distributions for embedded target using BuilrootSourabh Singh Tomar
Following content is quick start guide for, Someone looking for understanding working of Embedded Linux at the same time practical consideration involved for getting the system online.
Crafting GNU/Linux distributions for Embedded target from Scratch/SourceSourabh Singh Tomar
Following content is pehaps next step for Embedded Linux distribuiton process! Working out the entire process from sources. This time more elaborative.
Puppet can be used effectively and at scale without running as root. In many organizations, particularly large ones, different teams are responsible for different pieces of the infrastructure. In my case, I am on a team responsible for installation, configuration, upkeep, and monitoring of an application, but we are denied root access. Despite this, we have a rich puppet infrastructure thats saves us time and reduces configuration drift. I will present our model for success in this kind of limited environment, including recipes for using puppet as non root and some encouraging words and ideas for those who want to implement puppet, but the rest of their organization isn't ready yet.
Spencer Krum
Systems Admin, UTI Worldwide
Spencer is a Linux and application administrator with UTI Worldwide, a shipping and logistics firm. He lives and works in Portland. He has been using Linux and Puppet for years. Spencer is co-authoring (with William Van Hevelingen and Ben Kero) the second edition of Pro Puppet by James Turnbull and Jeff McCune, which should be available from Apress in alpha/beta E-Book in time for Puppet Conf '13. He enjoys hacking, tennis, StarCraft, and Hawaiian food.
Cumulus Linux supports great networking, what’s next? Matt Peterson (@dorkmatt) our resident expert from the office of the CTO shares his previous experience, his views on devops, and how Cumulus Networks makes it easier to manage networks with ONIE, ZTP and no CLI! “Devops is a lifestyle, shared responsibility”. With Linux as the networks OS, “it’s all just one apt-get away!”
FUSE allows processes to mount their own private filesystems without requiring root privileges. Some examples of FUSE filesystems include encrypted volumes using encfs and remote filesystems mounted over SSH using sshfs. These filesystems can be mounted automatically and only be visible to the mounting process, providing security and privacy for personal data even from the root user.
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !Pierre-jean Texier
The document discusses adding new platform support for SWUpdate in 30 minutes using Yocto/OE. It provides an overview of SWUpdate and the update process. It then demonstrates how to generate a clean Yocto/OE setup for the Microchip SAMA5D27-SOM1-EK1 board using KAS. Specific steps are outlined for creating a partition scheme, machine configuration, and deployment/testing of SWUpdate on the target board.
This document discusses kernel modules in Linux. Key points include:
- Kernel modules can be loaded and unloaded at runtime to extend kernel functionality without recompiling. This saves memory and allows hardware-specific modules.
- A basic "Hello World" module is presented to demonstrate initializing and exiting functions.
- Compiling modules inside or outside the kernel tree is described. Tools for loading, uninstalling, and listing modules are also covered.
- The document explains how to define module parameters and export symbols for other modules to use. Kconfig files are used to configure modules.
The document discusses Hadoop and HDFS. It provides an overview of HDFS architecture and how it is designed to be highly fault tolerant and provide high throughput access to large datasets. It also discusses setting up single node and multi-node Hadoop clusters on Ubuntu Linux, including configuration, formatting, starting and stopping the clusters, and running MapReduce jobs.
This document provides instructions for setting up a continuous integration environment for Nuxeo modules using Ubuntu Server 7.10 virtualized with VmWare. It describes installing Ubuntu, configuring it with tools like MySQL, Maven, and Subversion. It then covers setting up Continuum and Archiva for continuous integration and artifact deployment. The document demonstrates configuring a sample Nuxeo module project in Eclipse to build with Maven and deploy artifacts to the Archiva repository for continuous integration with each code change.
What would it look like if we encapsulated an entire Haskell development environment in a docker container? How would we deploy that application to production?
This document provides instructions for resolving build errors when compiling the Elephant-Bird project on Mac OS X due to incompatible versions of Protoc and Thrift. It describes checking out older versions of the Protoc and Thrift Homebrew formulas, installing the required 0.7.0 and 2.4.1 versions, setting the PATH, and finally running mvn package to complete the build. References for further troubleshooting are also included.
This document provides instructions for setting up a workspace to build embedded Linux for the Raspberry Pi 3 board. It describes downloading source code and packages, configuring the build environment, building a basic Linux image, writing it to an SD card, and connecting to the board via serial terminal. Key steps include using Git to obtain source, modifying configuration files, issuing bitbake commands to compile the image, and using minicom to interact with the booted board over USB serial.
The Yocto Project is a collaborative open source project that provides prototypes, tools and methods that let you create personalized Linux-based systems for embedded products independent from the hardware architecture. The project was born in 2010 as a partnership of many different hardware manufacturers, open-source operative systems providers and electronic companies, to bring some order to the chaos that was the development of Linux Embedded. Why use Project Yocto? Because it's a development environment for Linux embedded complete with tools, meta-data and documentation - everything that one needs. The free of charge tools that Yocto makes available are powerful and easy to generate (included emulation environments, debuggers, a tool-kit to generate applications and others) and they let you create and continue projects, without causing you a loss of optimizations and investments made in the prototyping phase. Project Yocto supports the adoption of this technology by the open-source community letting users concentrate on the characteristics and development of their product.
This document discusses building a real-time (RT) image using Yocto Project. It provides an overview of Yocto and real-time Linux options like PREEMPT_RT and Xenomai. It describes extending Yocto recipes and layers to add support for building RT kernels and images for hardware like Raspberry Pi that can run real-time applications. The document references resources for the Yocto meta-xenomai layer and using Xenomai with Yocto to build real-time enabled embedded Linux images.
This document provides an overview and introduction to overlays and libraries for the Pebble smartwatch platform. It discusses the benefits of sharing code through libraries, how overlays allow combining multiple components, and examples of existing and upcoming projects that utilize overlays and libraries. The presenters provide contact information and links to GitHub repositories for following up on implementation details and working examples.
Install and Configure Ubuntu for Hadoop Installation for beginners Shilpa Hemaraj
Covered each and every step to configure Ubuntu. Used vmware workstation 10.
Note: I am beginner so I might have used technical word wrong. But it is working perfectly fine.
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)Puppet
This document discusses Docker and Puppet and how they can be used together. It describes how Puppet can be used to install and configure Docker on a system and then how Dockerfiles can be used to build container images. However, it notes that using Puppet to build container images directly is not recommended and describes alternatives like using Puppet during the build process to configure "golden images" and then deploying them. It suggests approaches like running services externally to containers and using data containers to optimize container usage.
Containerization Is More than the New VirtualizationC4Media
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/1E5GzZX.
Jérôme Petazzoni borrows from his experience at Docker Inc. to explain live applications running in Docker, including reading logs, remote access, and troubleshooting tips. Filmed at qconsf.com.
Jérôme Petazzoni is a senior engineer at dotCloud, where he rotates between Ops, Support and Evangelist duties and the nickname of “master Yoda”, has earned.
This document discusses experimenting with cgroups in Docker containers to isolate processes. It describes installing Docker, launching an Ubuntu container with capabilities enabled, and installing cgroup tools. It then mounts the cpuset and cpu cgroup hierarchies and creates low and high cgroups. Different CPU shares are assigned to each cgroup and processes are run in each to demonstrate the CPU isolation between cgroups.
Fabric is a lightweight Python library and command-line tool for streamlining SSH administration and deployment tasks. It provides a simple way to execute commands remotely or in parallel over SSH. The document outlines how Fabric can be used to create a simple deployment script in just a few lines of code by leveraging Fabric's SSH capabilities and API.
Crafting GNU/ linux distributions for embedded target using BuilrootSourabh Singh Tomar
Following content is quick start guide for, Someone looking for understanding working of Embedded Linux at the same time practical consideration involved for getting the system online.
Crafting GNU/Linux distributions for Embedded target from Scratch/SourceSourabh Singh Tomar
Following content is pehaps next step for Embedded Linux distribuiton process! Working out the entire process from sources. This time more elaborative.
BeagleBone Black: Platform Bring-Up with Upstream ComponentsGlobalLogic Ukraine
This document is intended to give the user overall instructions on how to obtain, build and flash upstream software to the BeagleBone Black board, with detailed explanation of all related features and components.
Please find the additional details in this deck: https://www.slideshare.net/GlobalLogicUkraine/beaglebone-black-with-upstream-software
The respective workshop was held by Victoriia Taraniuk (Associate Manager, Quality Assurance, Consultant, GlobalLogic) at GlobalLogic Mykolaiv Embedded TechTalk #1 on May 25, 2018.
A million ways to provision embedded linux devicesMender.io
Drew Moseley presented on the many ways to provision embedded Linux devices. There are over a million ways due to variations in boards, manufacturers, bootloaders, storage, and more. He discussed common provisioning models including SD cards, eMMC, SPI flash, raw NAND, and Android fastboot. Tools like Yocto, U-Boot, and Mender can help manage the process, while considerations like manufacturing, development workflows, and product development also impact provisioning.
This document provides an overview of Docker and Kubernetes concepts and demonstrates how to create and run Docker containers and Kubernetes pods and deployments. It begins with an introduction to virtual machines and containers before demonstrating how to build a Docker image and container. It then introduces Kubernetes concepts like masters, nodes, pods and deployments. The document walks through running example containers and pods using commands like docker run, kubectl run, kubectl get and kubectl delete. It also shows how to create pods and deployments from configuration files and set resource limits.
Build your own embedded linux distributions by yocto projectYen-Chin Lee
The document discusses the Yocto Project, an open-source collaboration project that provides templates, tools, and methods for creating custom Linux-based systems for embedded products. It provides an overview of the key components of Yocto including Poky, BitBake, and metadata. It also summarizes how to get started with Yocto including downloading Poky, setting up the build environment, and building a minimal image that can be run in QEMU for testing purposes.
Meetup talk on my experiments with ansible-container.
Use ansible-container to provision docker containers using ansible, then ship them to kubernetes or OpenShift
An overview of OpenEmbedded for embedded Linux systems. Presentation given for the Portland Linux User Group Advanced Topics meeting on February 17, 2010.
The Deck: a portable, low-power, full-on penetrating testing and forensics system. The Deck runs on the BeagleBoard-xM and BeagleBone. It provides hundreds of security tools
The document discusses the process of compiling a Linux kernel from source code. It describes the three main stages: configuration, building, and installation. The configuration stage involves selecting the appropriate options for your hardware using make menuconfig or make xconfig. The building stage compiles the kernel image and modules using make bzImage and make modules. The installation stage uses make modules_install to copy modules to the proper directory and updates the boot loader to use the new kernel. Troubleshooting tips are provided for issues like hardware not working or needing an initrd.
The document discusses Yocto, an open source embedded Linux development framework. It provides an overview of Yocto's components and build process, including BitBake, metadata, tasks, layers, and generating images. It also describes exploring and customizing a Yocto build system, such as adding layers and configuring the build.
Launch the First Process in Linux SystemJian-Hong Pan
The session: https://coscup.org/2022/en/session/AGCMDJ
After Linux kernel boots, it will try to launch first process “init” in User Space. Then, the system begins the featured journey of the Linux distribution.
This sharing takes Busybox as the example and shows that how does Linux kernel find the “init” which directs to the Busybox. And, what will Busybox do and how to get the console. Try to make it like a simple Linux system.
Before Linux kernel launches “init” process, the file system and storage corresponding drivers/modules must be loaded to find the “init”. Besides, to mount the root file system correctly, the kernel boot command must include the root device and file system format parameters.
On the other hand, the Busybox directed from “init” is a lightweight program, but has rich functions, just like a Swiss Army Knife. So, it is usually used on the simple environment, like embedded Linux system.
This sharing will have a demo on a virtual machine first, then on the Raspberry Pi.
Drafts:
* https://hackmd.io/@starnight/Busbox_as_the_init
* https://hackmd.io/@starnight/Build_Alpines_Root_Filesystem_Bootstrap
Relate idea: https://hackmd.io/@starnight/Systems_init_and_Containers_COMMAND_Dockerfiles_CMD
The document provides instructions for setting up a Kubernetes cluster with one master node and one worker node on VirtualBox. It outlines the system requirements for the nodes, describes how to configure the networking and hostnames, install Docker and Kubernetes, initialize the master node with kubeadm init, join the worker node with kubeadm join, and deploy a test pod. It also includes commands to check the cluster status and remove existing Docker installations.
This document provides an overview of developing applications in Docker. It defines key Docker terminology like Dockerfile, image, and container. It demonstrates how to build an image from a Dockerfile, run containers, and use Dockerfiles to package applications. Tips are given for optimizing images like using lightweight base images, combining commands, and removing temporary files. Volumes are demonstrated as a way to share files between the host and container during development.
This document discusses continuous integration (CI) for the Android OS using Bamboo and AWS. It outlines the benefits of CI including predictable, repeatable builds and quick feedback. The CI environment uses Amazon services like S3 and EC2 along with Atlassian tools like Bamboo, Bitbucket, JIRA and Confluence. It describes managing Docker images, build machines as AMIs, optimizing the build process through parallel jobs and reducing I/O, integrating Gerrit for developer feedback, running tests on real devices, and side effects like automated release pages. Possible future improvements are also mentioned.
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDKMarco Cavallini
Excerpt of the lectures at Yocto Project Dev Day in Prague, 2017
During the advanced class Marco Cavallini ran this presentation about the creation of a Linux kernel module with eSDK.
Buildroot is a tool that generates embedded Linux systems by automating the configuration, compilation, and packaging of the system. It produces a root filesystem image ready to deploy on the target architecture. The build process compiles packages and a cross-compilation toolchain, then generates images containing the root filesystem, kernel, and other files needed by the target system. The output of Buildroot is organized into subdirectories containing the built images, toolchain, target and host files, and a staging area simulating the target filesystem.
The document discusses kernel, modules, and drivers in Linux. It provides an introduction to the Linux kernel, explaining what it is and its main functions. It then covers compiling the Linux kernel from source, including downloading the source code, configuring options, and compiling and installing the new kernel. It also discusses working with the GRUB 2 boot loader, including making temporary and persistent changes to the boot menu.
This document provides an overview of Kubernetes 101. It begins with asking why Kubernetes is needed and provides a brief history of the project. It describes containers and container orchestration tools. It then covers the main components of Kubernetes architecture including pods, replica sets, deployments, services, and ingress. It provides examples of common Kubernetes manifest files and discusses basic Kubernetes primitives. It concludes with discussing DevOps practices after adopting Kubernetes and potential next steps to learn more advanced Kubernetes topics.
An obesity epidemic is sweeping through the Docker ecosystem. Here are some methods to reduce the bloat in your Docker images. Put your containers on a diet!
Similar to Getting Started with Buildroot - Lab (20)
The slides for a talk I gave to my local RaspberryPi Meetup with practical advice on how to use various classes of temperature sensors with a Raspberry Pi.
Talk I gave at The Yocto Project Summit Oct 29-30 2020 entitled: Yocto Project Kernel Lab Hands-On. The Yocto Project Summit was a 2-day summit at the tail end of the Embedded Linux Conference Europe (ELCE) 2020. This class was delivered virtually to an audience of roughly 60 attendees.
The talk discusses using The Yocto Project tooling to facilitate common Linux kernel tasks such as configuration, BSP creation, kernel modification, Linux kernel config fragments, and more.
A talk and practical hands-on demonstrating how The Yocto Project provides tooling that can help you with evaluating, testing, tweaking, configuring, and modifying Linux kernels for your embedded project.
This document provides an overview of Google Summer of Code (GSoC) and the X.Org Foundation's participation in it. GSoC is a global program that brings student developers into open source software. It involves organizations applying to participate, students submitting project proposals, organizations selecting projects and students, and coding/evaluation periods over the summer. The X.Org Foundation has participated in GSoC for many years, accepting over 50 students with an 81% success rate. It also runs its own program called Endless Vacation of Code for cases where GSoC is not an option.
The document discusses building custom GNU/Linux distributions and outlines many of the choices involved, including the kernel, init system, display server, desktop environment, web browser, compiler, and more. It notes that creating a custom distribution allows for tight control over software versions and updates for products and security.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
React.js, a JavaScript library developed by Facebook, has gained immense popularity for building user interfaces, especially for single-page applications. Over the years, React has evolved and expanded its capabilities, becoming a preferred choice for mobile app development. This article will explore why React.js is an excellent choice for the Best Mobile App development company in Noida.
Visit Us For Information: https://www.linkedin.com/pulse/what-makes-reactjs-stand-out-mobile-app-development-rajesh-rai-pihvf/
Superpower Your Apache Kafka Applications Development with Complementary Open...Paul Brebner
Kafka Summit talk (Bangalore, India, May 2, 2024, https://events.bizzabo.com/573863/agenda/session/1300469 )
Many Apache Kafka use cases take advantage of Kafka’s ability to integrate multiple heterogeneous systems for stream processing and real-time machine learning scenarios. But Kafka also exists in a rich ecosystem of related but complementary stream processing technologies and tools, particularly from the open-source community. In this talk, we’ll take you on a tour of a selection of complementary tools that can make Kafka even more powerful. We’ll focus on tools for stream processing and querying, streaming machine learning, stream visibility and observation, stream meta-data, stream visualisation, stream development including testing and the use of Generative AI and LLMs, and stream performance and scalability. By the end you will have a good idea of the types of Kafka “superhero” tools that exist, which are my favourites (and what superpowers they have), and how they combine to save your Kafka applications development universe from swamploads of data stagnation monsters!
Unveiling the Advantages of Agile Software Development.pdfbrainerhub1
Learn about Agile Software Development's advantages. Simplify your workflow to spur quicker innovation. Jump right in! We have also discussed the advantages.
A neural network is a machine learning program, or model, that makes decisions in a manner similar to the human brain, by using processes that mimic the way biological neurons work together to identify phenomena, weigh options and arrive at conclusions.
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...Luigi Fugaro
Vector databases are transforming how we handle data, allowing us to search through text, images, and audio by converting them into vectors. Today, we'll dive into the basics of this exciting technology and discuss its potential to revolutionize our next-generation AI applications. We'll examine typical uses for these databases and the essential tools
developers need. Plus, we'll zoom in on the advanced capabilities of vector search and semantic caching in Java, showcasing these through a live demo with Redis libraries. Get ready to see how these powerful tools can change the game!
Odoo releases a new update every year. The latest version, Odoo 17, came out in October 2023. It brought many improvements to the user interface and user experience, along with new features in modules like accounting, marketing, manufacturing, websites, and more.
The Odoo 17 update has been a hot topic among startups, mid-sized businesses, large enterprises, and Odoo developers aiming to grow their businesses. Since it is now already the first quarter of 2024, you must have a clear idea of what Odoo 17 entails and what it can offer your business if you are still not aware of it.
This blog covers the features and functionalities. Explore the entire blog and get in touch with expert Odoo ERP consultants to leverage Odoo 17 and its features for your business too.
An Overview of Odoo ERP
Odoo ERP was first released as OpenERP software in February 2005. It is a suite of business applications used for ERP, CRM, eCommerce, websites, and project management. Ten years ago, the Odoo Enterprise edition was launched to help fund the Odoo Community version.
When you compare Odoo Community and Enterprise, the Enterprise edition offers exclusive features like mobile app access, Odoo Studio customisation, Odoo hosting, and unlimited functional support.
Today, Odoo is a well-known name used by companies of all sizes across various industries, including manufacturing, retail, accounting, marketing, healthcare, IT consulting, and R&D.
The latest version, Odoo 17, has been available since October 2023. Key highlights of this update include:
Enhanced user experience with improvements to the command bar, faster backend page loading, and multiple dashboard views.
Instant report generation, credit limit alerts for sales and invoices, separate OCR settings for invoice creation, and an auto-complete feature for forms in the accounting module.
Improved image handling and global attribute changes for mailing lists in email marketing.
A default auto-signature option and a refuse-to-sign option in HR modules.
Options to divide and merge manufacturing orders, track the status of manufacturing orders, and more in the MRP module.
Dark mode in Odoo 17.
Now that the Odoo 17 announcement is official, let’s look at what’s new in Odoo 17!
What is Odoo ERP 17?
Odoo 17 is the latest version of one of the world’s leading open-source enterprise ERPs. This version has come up with significant improvements explained here in this blog. Also, this new version aims to introduce features that enhance time-saving, efficiency, and productivity for users across various organisations.
Odoo 17, released at the Odoo Experience 2023, brought notable improvements to the user interface and added new functionalities with enhancements in performance, accessibility, data analysis, and management, further expanding its reach in the market.
What to do when you have a perfect model for your software but you are constrained by an imperfect business model?
This talk explores the challenges of bringing modelling rigour to the business and strategy levels, and talking to your non-technical counterparts in the process.
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...XfilesPro
Wondering how X-Sign gained popularity in a quick time span? This eSign functionality of XfilesPro DocuPrime has many advancements to offer for Salesforce users. Explore them now!
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
Liberarsi dai framework con i Web Component.pptxMassimo Artizzu
In Italian
Presentazione sulle feature e l'utilizzo dei Web Component nell sviluppo di pagine e applicazioni web. Racconto delle ragioni storiche dell'avvento dei Web Component. Evidenziazione dei vantaggi e delle sfide poste, indicazione delle best practices, con particolare accento sulla possibilità di usare web component per facilitare la migrazione delle proprie applicazioni verso nuovi stack tecnologici.
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio, Inc.
Alluxio Webinar
June. 18, 2024
For more Alluxio Events: https://www.alluxio.io/events/
Speaker:
- Jianjian Xie (Staff Software Engineer, Alluxio)
As Trino users increasingly rely on cloud object storage for retrieving data, speed and cloud cost have become major challenges. The separation of compute and storage creates latency challenges when querying datasets; scanning data between storage and compute tiers becomes I/O bound. On the other hand, cloud API costs related to GET/LIST operations and cross-region data transfer add up quickly.
The newly introduced Trino file system cache by Alluxio aims to overcome the above challenges. In this session, Jianjian will dive into Trino data caching strategies, the latest test results, and discuss the multi-level caching architecture. This architecture makes Trino 10x faster for data lakes of any scale, from GB to EB.
What you will learn:
- Challenges relating to the speed and costs of running Trino in the cloud
- The new Trino file system cache feature overview, including the latest development status and test results
- A multi-level cache framework for maximized speed, including Trino file system cache and Alluxio distributed cache
- Real-world cases, including a large online payment firm and a top ridesharing company
- The future roadmap of Trino file system cache and Trino-Alluxio integration
The Rising Future of CPaaS in the Middle East 2024Yara Milbes
Explore "The Rising Future of CPaaS in the Middle East in 2024" with this comprehensive PPT presentation. Discover how Communication Platforms as a Service (CPaaS) is transforming communication across various sectors in the Middle East.
Enhanced Screen Flows UI/UX using SLDS with Tom KittPeter Caitens
Join us for an engaging session led by Flow Champion, Tom Kitt. This session will dive into a technique of enhancing the user interfaces and user experiences within Screen Flows using the Salesforce Lightning Design System (SLDS). This technique uses Native functionality, with No Apex Code, No Custom Components and No Managed Packages required.
WWDC 2024 Keynote Review: For CocoaCoders AustinPatrick Weigel
Overview of WWDC 2024 Keynote Address.
Covers: Apple Intelligence, iOS18, macOS Sequoia, iPadOS, watchOS, visionOS, and Apple TV+.
Understandable dialogue on Apple TV+
On-device app controlling AI.
Access to ChatGPT with a guest appearance by Chief Data Thief Sam Altman!
App Locking! iPhone Mirroring! And a Calculator!!
Malibou Pitch Deck For Its €3M Seed Roundsjcobrien
French start-up Malibou raised a €3 million Seed Round to develop its payroll and human resources
management platform for VSEs and SMEs. The financing round was led by investors Breega, Y Combinator, and FCVC.
1. Getting started with Buildroot - Lab
Trevor Woerner, Togán Labs
March 13, 2019
These lab instructions are written for the Getting started with Buildroot tutorial of the Embedded Ap-
prentice Linux Engineer track. They are designed to work for the PocketBeagle hardware platform.
This lab is broken out into two separate paths:
• Basic Lab
• In-Depth Lab
Both labs start with the same resources, and both end up creating the same artifacts, but they both
take different routes. If you would like to get an image up-and-running on your board without
worrying too much about the details, take a look at the Basic Lab. If you’d like to know a little
more about what’s going on "under the hood", try the In-Depth Lab.
Both labs start with the same Initial Setup.
All the work for these labs occur on the host computer, not the target. A reasonably recent Linux
machine/VM is required for this work.
Initial Setup
Our first step is to obtain the buildroot meta-data. Normally this would be done by simply cloning
from buildroot’s git repository. But I’ve created a simple fork of upstream that contains little
tweaks to make this lab easier.
Therefore start by grabbing a tarball of this lab’s buildroot and unpacking it. Then, move into the
top-level directory of the unpacked tarball.
$ wget https://cm.e-ale.org/2019/SCaLE17x/buildroot/buildroot-e-ale.tar.xz
$ xz -d < buildroot-e-ale.tar.xz | tar xf -
$ cd buildroot-e-ale
If downloading buildroot-e-ale.tar.xz is taking too long, you can also run these exercises
with the buildroot-e-ale_SM.tar.xz tarball. But then your build will be slower.
Embedded Apprentice Linux Engineer - Getting started with Buildroot -
https://www.toganlabs.com
1
2. Basic Lab
A great place to start with any project is from a known location. In this case our buildroot already
knows what a pocketbeagle is, so we simply tell buildroot we want to build a basic image for this
board, then go ahead and build it.
$ make pocketbeagle_defconfig
$ make
The build will take a while (15 - 30 minutes, perhaps more depending on the speed of your Inter-
net connection or on the capabilities of your host machine).
Now jump ahead all the way to the Testing The Build section.
In-Depth Lab
What if buildroot didn’t know what a pocketbeagle is? In this lab we’re going to configure our
pocketbeagle build from scratch.
Creating a minimal configuration
We start by configuring our build:
$ make menuconfig
In the configuration, we’ll have to customize a number of options, as detailed below. Of course,
take this opportunity to navigate in all the options, and discover what Buildroot can do.
• In Target options
– Change Target architecture to ARM (little endian)
– Change Target architecture variant to Cortex-A8
• In Build options
– set global patch directories to board/pocketbeagle/patches/. This will allow us to
put patches for Linux, U-Boot other packages in subdirectories of board/pocketbeagle/
patches/.
• In Toolchain
– Change Toolchain type to External toolchain. By default, Buildroot builds its own toolchain,
but it can also use pre-built external toolchain. We’ll use the latter, in order to save build
time.
• In System configuration
Embedded Apprentice Linux Engineer - Getting started with Buildroot -
https://www.toganlabs.com
2
3. – you can customize the System host name and System banner if you wish. Keep the default
values for the rest.
• In Kernel
– Enable the Linux kernel, obviously!
– Patches will already be applied to the kernel, thanks to us having defined a global patch
directory above.
– Choose omap2plus as the Defconfig name
– We’ll need the Device Tree of the PocketBeagle, so enable Build a Device Tree Blob (DTB)
– And use am335x-pocketbeagle as the Device Tree Source file names
• In Target packages
– we’ll keep just Busybox enabled for now. In the next sections, we’ll enable more pack-
ages.
• In Filesystem images
– enable ext2/3/4 root filesystem
– select the ext4 variant
– you can also disable the tar filesystem image, which we won’t need.
• In Bootloaders
– enable U-Boot, and in U-Boot:
∗ Switch the Build system option to Kconfig: we are going to use a modern U-Boot, so
let’s take advantage of its modern build system!
∗ Keep version 2018.01
∗ set Custom U-Boot patches to board/pocketbeagle/patches/u-boot
∗ Use am335x_pocketbeagle as the Board defconfig
∗ The U-Boot binary format should be changed from u-boot.bin to u-boot.img.
Indeed, this second stage bootloader will be loaded by a first stage bootloader, and
needs to have the proper header to be loaded by the first stage.
∗ Enable Install U-Boot SPL binary image to also install the first stage bootloader. Its
name in U-Boot SPL/TPL binary image name(s) should be changed to MLO since that’s
how U-Boot names it, and how the AM335x expects it to be named.
Running the build
To start the build, you can run just make. But it’s often convenient to keep the build output in a
log file, so you can do:
Embedded Apprentice Linux Engineer - Getting started with Buildroot -
https://www.toganlabs.com
3
4. $ make 2>&1 | tee build.log
or alternatively use a wrapper script provided by Buildroot:
$ ./utils/brmake
The build will take a while.
The overall build takes quite some time, because the Linux kernel configuration omap2plus_
defconfig, which supports all OMAP2, OMAP3, OMAP4 and AM335x platforms has a lot of
drivers and options enabled. It would definitely be possible to make a smaller kernel configura-
tion for the Pocket Beagle, reducing the kernel size and boot time.
At the end of the build, the output is located in output/images. We have:
• MLO, the first stage bootloader
• u-boot.img, the second stage bootloader
• zImage, the Linux kernel image
• am335x-pocketbeagle.dtb, the Linux kernel Device Tree Blob
• rootfs.ext4, the root filesystem image
However, that doesn’t immediately give us a bootable SD card image. We could create it man-
ually, but that wouldn’t be really nice. So move on to the next section to see how Buildroot can
create the SD card image for you.
Creating a SD card image
To create a SD card image, we’ll use a tool called genimage, which provided a configuration file,
will output the image of a block device, with multiple partitions, each containing a filesystem.
See https://git.pengutronix.de/cgit/genimage/tree/README.rst for some docu-
mentation about genimage and its configuration file format.
genimage needs to be called at the very end of the build. To achieve this, Buildroot provides a
mechanism called post-image scripts, which are arbitrary scripts called at the end of the build. We
will use it to create a SD card image with:
• A FAT partition containing the bootloader images, the kernel image and Device Tree
• An ext4 partition containing the root filesystem
In addition, the U-Boot bootloader for the PocketBeagle is configured by default to load a file called
uEnv.txt to indicate what should be done at boot time. This file should also be stored in the first
partition of the SD card.
So, go back to make menuconfig, and adjust the following options:
• In System configuration
Embedded Apprentice Linux Engineer - Getting started with Buildroot -
https://www.toganlabs.com
4
5. – Set Custom scripts to run after creating filesystem images to board/pocketbeagle/
post-image.sh
• In Host utilities
– enable
∗ host dosfstools
∗ host genimage
∗ host mtools
mtools and dosfstools are needed because our genimage configuration includes the cre-
ation of a FAT partition.
Restart the build again. Once the build is finished, you should now have a sdcard.img file in
output/images/.
Storing our Buildroot configuration
Our Buildroot configuration is currently stored as .config, which is not under version control
and would be removed by a make distclean. So, let’s store it as a defconfig file:
$ make BR2_DEFCONFIG=configs/eale_pocketbeagle_defconfig savedefconfig
And then look at configs/eale_pocketbeagle_defconfig to see what your configuration
looks like.
Testing The Build
Working through either lab, if successful, you should find your *.img file waiting for you at
output/sdcard.img.
Embedded Apprentice Linux Engineer - Getting started with Buildroot -
https://www.toganlabs.com
5
6. Using Etcher or dd, flash this image to your SDcard. Insert the SDcard into your PocketBeagle
and apply power. Ideally you’ll have a serial console setup (i.e. minicom or screen) so you can
watch the progress.
Embedded Apprentice Linux Engineer - Getting started with Buildroot -
https://www.toganlabs.com
6