Open Enea Linux (http://www.openenealinux.org) is a binary distribution based on the poky example distro from the Yocto Project. The concept is to make embedded devices easy to use, adapt and extend with a simple flick of the package-manager.
At ECS we held a workshop on BeagleBone Black demonstrating the ease of customizing the distro, installing a toolchain and doing remote debugging.
The embedded Linux boot process involves multiple stages beginning with ROM code that initializes hardware and loads the first stage bootloader, X-Loader. The X-Loader further initializes hardware and loads the second stage bootloader, U-Boot, which performs additional initialization and loads the Linux kernel. The kernel then initializes drivers and mounts the root filesystem to launch userspace processes. Booting can occur from flash memory, an eMMC/SD card, over a network using TFTP/NFS, or locally via UART/USB depending on the boot configuration and available devices.
This document discusses network configuration files and utilities on UNIX systems. It examines common configuration files such as /etc/hosts, /etc/hostname.if_name, /etc/nodename, /etc/services, /etc/inetd.conf, and /etc/resolv.conf that store network settings. It also describes configuration commands like ifconfig and route that can be used to modify network interfaces and routing tables. The document notes that while network configuration methods are generally similar across UNIX, there are also OS-specific differences to consider.
The document provides information on several topics related to IT and networking:
1. It discusses the components of a motherboard including the north bridge and south bridge, and their functions.
2. It provides steps for performing a zero-level format of a hard drive using Windows 98.
3. It describes different types of RAID configurations (RAID 0-10) and their characteristics in terms of performance and fault tolerance.
This document discusses serial ports and their management. Serial ports are universal I/O ports that can connect terminals, printers, modems and other devices. The most common standard is RS-232, which defines pinouts and voltage levels. Serial port configuration involves setting parameters like baud rate, parity and stop bits. Management involves starting processes like getty on ports to allow logins and monitoring modem connections. Solaris uses the Service Access Facility (SAF) to configure ports and monitors like ttymon that direct data to ports.
This document provides information about the objectives for a Junior Level Linux Certification exam, with a focus on determining and configuring hardware settings. It discusses key areas like enabling/disabling peripherals, configuring systems with or without external devices, differentiating mass storage types, and setting correct hardware IDs. It also covers tools for listing hardware information like lsusb and lspci, and concepts around sysfs, udev, hald and dbus.
This document discusses system devices and device configuration from both the hardware and software perspectives on various operating systems like Windows, UNIX, Linux, and Solaris. It covers device terminology, device naming schemes, how devices are represented in the operating system, and how to view the system's device configuration from both the PROM and software levels. The goal is to understand how devices are interconnected, configured, and accessed on the system.
Configuring and managing printers involves understanding printing concepts, print server and client configuration, and homogeneous and heterogeneous printing. It requires setting up print services under different operating systems like Windows, BSD and System V. Troubleshooting involves checking printers, print queues, filters and data files. Heterogeneous printing across operating systems is the most challenging.
The document provides information on installing and configuring boot loaders in Linux. It discusses the LILO and GRUB boot loaders. With LILO, the /etc/lilo.conf file is used to configure installation locations and boot options. GRUB uses /boot/grub/menu.lst to configure boot entries, timeouts, and default options. Both loaders allow booting multiple operating systems by defining image entries for each one.
The embedded Linux boot process involves multiple stages beginning with ROM code that initializes hardware and loads the first stage bootloader, X-Loader. The X-Loader further initializes hardware and loads the second stage bootloader, U-Boot, which performs additional initialization and loads the Linux kernel. The kernel then initializes drivers and mounts the root filesystem to launch userspace processes. Booting can occur from flash memory, an eMMC/SD card, over a network using TFTP/NFS, or locally via UART/USB depending on the boot configuration and available devices.
This document discusses network configuration files and utilities on UNIX systems. It examines common configuration files such as /etc/hosts, /etc/hostname.if_name, /etc/nodename, /etc/services, /etc/inetd.conf, and /etc/resolv.conf that store network settings. It also describes configuration commands like ifconfig and route that can be used to modify network interfaces and routing tables. The document notes that while network configuration methods are generally similar across UNIX, there are also OS-specific differences to consider.
The document provides information on several topics related to IT and networking:
1. It discusses the components of a motherboard including the north bridge and south bridge, and their functions.
2. It provides steps for performing a zero-level format of a hard drive using Windows 98.
3. It describes different types of RAID configurations (RAID 0-10) and their characteristics in terms of performance and fault tolerance.
This document discusses serial ports and their management. Serial ports are universal I/O ports that can connect terminals, printers, modems and other devices. The most common standard is RS-232, which defines pinouts and voltage levels. Serial port configuration involves setting parameters like baud rate, parity and stop bits. Management involves starting processes like getty on ports to allow logins and monitoring modem connections. Solaris uses the Service Access Facility (SAF) to configure ports and monitors like ttymon that direct data to ports.
This document provides information about the objectives for a Junior Level Linux Certification exam, with a focus on determining and configuring hardware settings. It discusses key areas like enabling/disabling peripherals, configuring systems with or without external devices, differentiating mass storage types, and setting correct hardware IDs. It also covers tools for listing hardware information like lsusb and lspci, and concepts around sysfs, udev, hald and dbus.
This document discusses system devices and device configuration from both the hardware and software perspectives on various operating systems like Windows, UNIX, Linux, and Solaris. It covers device terminology, device naming schemes, how devices are represented in the operating system, and how to view the system's device configuration from both the PROM and software levels. The goal is to understand how devices are interconnected, configured, and accessed on the system.
Configuring and managing printers involves understanding printing concepts, print server and client configuration, and homogeneous and heterogeneous printing. It requires setting up print services under different operating systems like Windows, BSD and System V. Troubleshooting involves checking printers, print queues, filters and data files. Heterogeneous printing across operating systems is the most challenging.
The document provides information on installing and configuring boot loaders in Linux. It discusses the LILO and GRUB boot loaders. With LILO, the /etc/lilo.conf file is used to configure installation locations and boot options. GRUB uses /boot/grub/menu.lst to configure boot entries, timeouts, and default options. Both loaders allow booting multiple operating systems by defining image entries for each one.
Have a quick overview of most of the embedded linux components and their details. How ti build Embedded Linux Hardware & Software, and developing Embedded Products
A little history of the ATARI ST and the Operating System with the Desktop interface GEM from Digital Research.
This presentation has been shown at the Meetup "Une Histoire d’O(S) du CP/M à aujourd'hui" by the french magazine Programmez! the September 11th 2018.
Linux Kernel Booting Process (1) - For NLKBshimosawa
Describes the bootstrapping part in Linux and some related technologies.
This is the part one of the slides, and the succeeding slides will contain the errata for this slide.
This document discusses the topics of computer/digital forensics including hard drive imaging, volume and file system analysis, tools, and case studies. It describes the acquisition of digital evidence from devices, analyzing the evidence while maintaining integrity, and preparing the evidence for trial. The key aspects covered are hard disk imaging standards, volume layout and partitioning, file system analysis formats like FAT, NTFS, EXT2/3, and UFS, as well as forensic analysis techniques and layers.
How to build and load linux to embedded systemИгорь Медведев
The document describes the Linux boot process on embedded systems. It has 5 stages: 1) BootRom loads BootStrap, 2) BootStrap loads U-Boot from storage to RAM, 3) U-Boot loads the kernel and provides arguments, 4) The kernel mounts the root file system, 5) The kernel starts the init process. It then provides details on BootStrap, U-Boot, configuring boot arguments and commands in U-Boot, and using BuildRoot to build a root file system.
Bootstrap process of u boot (NDS32 RISC CPU)Macpaul Lin
The bootstrap procedure of the u-boot bootloader involves:
1. Relocating the binary from flash/ROM to DRAM without adjustments through memory remapping.
2. Performing a general relocation of the binary in DRAM which involves adjusting addresses.
3. Initializing hardware and memory before jumping to the main initialization code.
The document provides a detailed overview of the key components that make up a computer system, including the motherboard, CPU, RAM, hard drive, optical drives, ports, expansion cards, and case. It describes the function and important specifications of each component as well as how they connect and interact with each other.
The Raspberry Pi is an inexpensive ($35), credit card sized computer that is able to run the Linux operating system. The card also contains USB ports, an Ethernet port, camera port, GPIO lines, serial ports, SPI port, HDMI port, and I2C port – just about anything you would want for an inexpensive and very powerful robot controller! Lloyd Moore will show us how to get started with this device. Specifically we'll talk about loading and configuring the operating system, installing the Qt (C++) development system, and controlling some of the ports.
This document provides an overview of input/output (I/O) in Linux, including device drivers, block and character devices, and network devices. It defines device drivers as software that allows programs to interact with hardware devices. Device drivers can be built into the Linux kernel or loaded as modules. Block devices access storage through caches and support random access to fixed size blocks, while character devices do not require this functionality and the kernel simply passes read/write requests to these drivers. Network devices exchange data packets through interfaces using network-specific driver functions rather than read/write calls.
Hiren's BootCD 10.6 is an all-in-one bootable CD containing many utilities for repairing, diagnosing, and optimizing Windows systems. It includes tools to remove malware, backup and restore files, manage partitions and disks, clean junk files, and more. Many of the tools are freeware while some require commercial licenses. The CD allows running the tools without installing anything to the local hard drive.
This document discusses motherboard manufacturers, formats, models, and features. It also covers chipsets, including their main components (northbridge and southbridge), manufacturers, and functions. The northbridge connects directly to the CPU to access RAM, cache, video, and the southbridge, while the southbridge controls peripherals like USB, SATA, serial and parallel ports.
When a FreeBSD system is powered on, it goes through several boot stages to initialize the kernel. The BIOS performs initial checks and loads the master boot record (MBR) from the boot device. The MBR contains the boot0 stage which initializes partitions and loads the boot2 stage. Boot2 loads the loader stage, which loads and passes control to the kernel. The kernel then performs initialization like setting up memory mappings and starting essential processes and daemons.
This document provides an overview of the key components that make up a motherboard, including the CPU, RAM, BIOS, chipsets (northbridge and southbridge), expansion slots, and various ports and connectors. The motherboard acts as the central hub that holds these components and allows them to communicate with each other and external devices. It provides connections for components like the CPU, RAM, graphics card, storage drives, and I/O ports and manages the data flow between all of the parts through the BIOS.
It describes the MMC storage device driver functionality in Linux Kernel and it's role. It explains different type of storage devices available and how they are handled from MMC driver point of view. It describes eMMC (internal storage) device and SD (external storage) devices in details and SD protocol used for communicating with these devices in Linux.
This 3 sentence summary provides the essential information about the SAM Coupé Diskimage Manager document:
The SAM Coupé Diskimage Manager is a freeware Windows program that allows users to load, save, and manage SAM disk images, including adding, deleting, renaming and extracting files from disk images. The program supports various SAM disk formats and file types. Version 1.12 added options for file associations and improved the ability to extract SAM files from disk images.
This document provides information about computers and computer networks. It defines a computer and its components. It discusses various generations of computers. It also explains input/output devices and memory. Operating systems and common DOS commands like DIR, COPY, CLS are described. The document then covers computer networks including definitions of LAN, MAN and WAN. It compares their key characteristics like range, media used, speed and cost. Examples of network technologies are provided. The document concludes with brief explanations of the Internet, its components, the domain name system and the World Wide Web.
The Linux booting process involves multiple stages:
1) The BIOS loads the first stage boot loader from the MBR which finds and loads the second stage boot loader.
2) The second stage boot loader loads the Linux kernel and initial RAM disk. It then passes control to the kernel.
3) The kernel initializes hardware, mounts the root filesystem, and loads the init process to perform further system initialization.
The NetUP Dual DVB-S2-CI card features two independent satellite tuners in a single PCIe card. It is aimed at professional users but can also be used by enthusiasts. The card supports DVB-S and DVB-S2 along with various modulation schemes. It was found to have excellent tuner sensitivity and stability when used with Linux software. However, the card comes with no installation instructions and requires some Linux expertise to configure.
What you will need for creating a bootable microSD card ?
1. A development machine with some version of linux (I had Ubuntu installed on my machine) .
You should have root access on this machine (or at least the ability to mount/unmount devices and run
fdisk).
2. A microSD card adapter. Your hardware should contain an adapter that converts microSD card into
an SD card which you can use on your computer. If your computer/laptop does not have an SD card
reader, please contact the course staff to get a USB adapter for the microSD card.
The example covered in this document will show the steps for setting up a brand new 2GB microSD card.
First insert your card into your development machine’s flash card slot.
On my Ubuntu 12.04 machine, the newly inserted card shows up as /dev/mmcblk0(or /dev/sdb) (with any
partitions showing up as /dev/mmcblk0p1 (or /dev/sdb1), /dev/mmcblk0p2(or /dev/sdb2), etc.) and that is
the device name that will be used through this example. You should substitute the proper device name for
your machine. You can use ’mount’ or ’df’ to see where the card mounts on your machine.
1. The document describes how to partition a microSD card for booting on a Beaglebone Black.
2. It involves using fdisk to create 3 partitions - a FAT32 boot partition, a Linux root filesystem partition, and an additional Linux partition. Filesystems are then created on the partitions.
3. Key steps include using fdisk to create partitions, making the first partition bootable, writing changes to the card, and creating filesystems (FAT32, ext4) on the partitions.
Have a quick overview of most of the embedded linux components and their details. How ti build Embedded Linux Hardware & Software, and developing Embedded Products
A little history of the ATARI ST and the Operating System with the Desktop interface GEM from Digital Research.
This presentation has been shown at the Meetup "Une Histoire d’O(S) du CP/M à aujourd'hui" by the french magazine Programmez! the September 11th 2018.
Linux Kernel Booting Process (1) - For NLKBshimosawa
Describes the bootstrapping part in Linux and some related technologies.
This is the part one of the slides, and the succeeding slides will contain the errata for this slide.
This document discusses the topics of computer/digital forensics including hard drive imaging, volume and file system analysis, tools, and case studies. It describes the acquisition of digital evidence from devices, analyzing the evidence while maintaining integrity, and preparing the evidence for trial. The key aspects covered are hard disk imaging standards, volume layout and partitioning, file system analysis formats like FAT, NTFS, EXT2/3, and UFS, as well as forensic analysis techniques and layers.
How to build and load linux to embedded systemИгорь Медведев
The document describes the Linux boot process on embedded systems. It has 5 stages: 1) BootRom loads BootStrap, 2) BootStrap loads U-Boot from storage to RAM, 3) U-Boot loads the kernel and provides arguments, 4) The kernel mounts the root file system, 5) The kernel starts the init process. It then provides details on BootStrap, U-Boot, configuring boot arguments and commands in U-Boot, and using BuildRoot to build a root file system.
Bootstrap process of u boot (NDS32 RISC CPU)Macpaul Lin
The bootstrap procedure of the u-boot bootloader involves:
1. Relocating the binary from flash/ROM to DRAM without adjustments through memory remapping.
2. Performing a general relocation of the binary in DRAM which involves adjusting addresses.
3. Initializing hardware and memory before jumping to the main initialization code.
The document provides a detailed overview of the key components that make up a computer system, including the motherboard, CPU, RAM, hard drive, optical drives, ports, expansion cards, and case. It describes the function and important specifications of each component as well as how they connect and interact with each other.
The Raspberry Pi is an inexpensive ($35), credit card sized computer that is able to run the Linux operating system. The card also contains USB ports, an Ethernet port, camera port, GPIO lines, serial ports, SPI port, HDMI port, and I2C port – just about anything you would want for an inexpensive and very powerful robot controller! Lloyd Moore will show us how to get started with this device. Specifically we'll talk about loading and configuring the operating system, installing the Qt (C++) development system, and controlling some of the ports.
This document provides an overview of input/output (I/O) in Linux, including device drivers, block and character devices, and network devices. It defines device drivers as software that allows programs to interact with hardware devices. Device drivers can be built into the Linux kernel or loaded as modules. Block devices access storage through caches and support random access to fixed size blocks, while character devices do not require this functionality and the kernel simply passes read/write requests to these drivers. Network devices exchange data packets through interfaces using network-specific driver functions rather than read/write calls.
Hiren's BootCD 10.6 is an all-in-one bootable CD containing many utilities for repairing, diagnosing, and optimizing Windows systems. It includes tools to remove malware, backup and restore files, manage partitions and disks, clean junk files, and more. Many of the tools are freeware while some require commercial licenses. The CD allows running the tools without installing anything to the local hard drive.
This document discusses motherboard manufacturers, formats, models, and features. It also covers chipsets, including their main components (northbridge and southbridge), manufacturers, and functions. The northbridge connects directly to the CPU to access RAM, cache, video, and the southbridge, while the southbridge controls peripherals like USB, SATA, serial and parallel ports.
When a FreeBSD system is powered on, it goes through several boot stages to initialize the kernel. The BIOS performs initial checks and loads the master boot record (MBR) from the boot device. The MBR contains the boot0 stage which initializes partitions and loads the boot2 stage. Boot2 loads the loader stage, which loads and passes control to the kernel. The kernel then performs initialization like setting up memory mappings and starting essential processes and daemons.
This document provides an overview of the key components that make up a motherboard, including the CPU, RAM, BIOS, chipsets (northbridge and southbridge), expansion slots, and various ports and connectors. The motherboard acts as the central hub that holds these components and allows them to communicate with each other and external devices. It provides connections for components like the CPU, RAM, graphics card, storage drives, and I/O ports and manages the data flow between all of the parts through the BIOS.
It describes the MMC storage device driver functionality in Linux Kernel and it's role. It explains different type of storage devices available and how they are handled from MMC driver point of view. It describes eMMC (internal storage) device and SD (external storage) devices in details and SD protocol used for communicating with these devices in Linux.
This 3 sentence summary provides the essential information about the SAM Coupé Diskimage Manager document:
The SAM Coupé Diskimage Manager is a freeware Windows program that allows users to load, save, and manage SAM disk images, including adding, deleting, renaming and extracting files from disk images. The program supports various SAM disk formats and file types. Version 1.12 added options for file associations and improved the ability to extract SAM files from disk images.
This document provides information about computers and computer networks. It defines a computer and its components. It discusses various generations of computers. It also explains input/output devices and memory. Operating systems and common DOS commands like DIR, COPY, CLS are described. The document then covers computer networks including definitions of LAN, MAN and WAN. It compares their key characteristics like range, media used, speed and cost. Examples of network technologies are provided. The document concludes with brief explanations of the Internet, its components, the domain name system and the World Wide Web.
The Linux booting process involves multiple stages:
1) The BIOS loads the first stage boot loader from the MBR which finds and loads the second stage boot loader.
2) The second stage boot loader loads the Linux kernel and initial RAM disk. It then passes control to the kernel.
3) The kernel initializes hardware, mounts the root filesystem, and loads the init process to perform further system initialization.
The NetUP Dual DVB-S2-CI card features two independent satellite tuners in a single PCIe card. It is aimed at professional users but can also be used by enthusiasts. The card supports DVB-S and DVB-S2 along with various modulation schemes. It was found to have excellent tuner sensitivity and stability when used with Linux software. However, the card comes with no installation instructions and requires some Linux expertise to configure.
What you will need for creating a bootable microSD card ?
1. A development machine with some version of linux (I had Ubuntu installed on my machine) .
You should have root access on this machine (or at least the ability to mount/unmount devices and run
fdisk).
2. A microSD card adapter. Your hardware should contain an adapter that converts microSD card into
an SD card which you can use on your computer. If your computer/laptop does not have an SD card
reader, please contact the course staff to get a USB adapter for the microSD card.
The example covered in this document will show the steps for setting up a brand new 2GB microSD card.
First insert your card into your development machine’s flash card slot.
On my Ubuntu 12.04 machine, the newly inserted card shows up as /dev/mmcblk0(or /dev/sdb) (with any
partitions showing up as /dev/mmcblk0p1 (or /dev/sdb1), /dev/mmcblk0p2(or /dev/sdb2), etc.) and that is
the device name that will be used through this example. You should substitute the proper device name for
your machine. You can use ’mount’ or ’df’ to see where the card mounts on your machine.
1. The document describes how to partition a microSD card for booting on a Beaglebone Black.
2. It involves using fdisk to create 3 partitions - a FAT32 boot partition, a Linux root filesystem partition, and an additional Linux partition. Filesystems are then created on the partitions.
3. Key steps include using fdisk to create partitions, making the first partition bootable, writing changes to the card, and creating filesystems (FAT32, ext4) on the partitions.
This document provides instructions for installing and configuring TinyOS on Ubuntu Linux. It outlines downloading TinyOS from its website, adding the TinyOS repositories, configuring environment variables, and compiling and pushing applications to sensor motes. Shell scripts are provided to simplify connecting motes, compiling modules, and pushing compiled code. Running the Java listener and GUI are also explained for receiving and viewing sensor data from motes over a TCP/IP network connection.
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.
The document discusses several methods for formatting a USB drive to the NTFS file system using a Mac computer running OS X. It describes installing the ntfs-3g driver to enable read/write support for NTFS. It also covers using diskutil, fdisk, and mkntfs to format the drive with an MBR partition table and NTFS file system. Alternatively, it shows how to use gpt and gdisk to format the drive with a GPT partition table layout and an NTFS partition.
This document provides an overview of UNIX file systems and disks. It discusses the structure of hard disks and different file system types including FAT, NTFS, UFS, EXT2/3, and ReiserFS. It also covers disk devices in Linux, FreeBSD and Solaris. Additional topics include creating and mounting file systems, the /etc/fstab file, the NFS network file sharing protocol, and different RAID configurations including RAID 0, 1, 5 and the use of parity disks.
This document provides instructions for setting up and running a uClinux system on an ARM Cortex-M3 based LPC1788 board. It describes downloading files from a TFTP server using U-Boot, compiling the uClinux kernel and BusyBox tools, and booting the system from an SD card using U-Boot. The uClinux files are extracted and compiled after configuring the kernel and BusyBox. The resulting uImage file is copied to the SD card to boot the Linux system.
The document provides information about designing hard disk layouts in Linux systems. It discusses partitioning schemes and the use of extended partitions to allow for more than 4 primary partitions. It also covers creating filesystems and swap spaces on partitions using tools like mkfs, mkswap, and mke2fs. Mount points are explained as directories where partitions can be mounted to make their contents accessible in the file system hierarchy.
Let's trace Linux Lernel with KGDB @ COSCUP 2021Jian-Hong Pan
https://coscup.org/2021/en/session/39M73K
https://www.youtube.com/watch?v=L_Gyvdl_d_k
Engineers have plenty of debug tools for user space programs development, code tracing, debugging and analyzing. Except “printk”, do we have any other debug tools for Linux kernel development? The “KGDB” mentioned in Linux kernel document provides another possibility.
Will share how to experiment with the KGDB in a virtual machine. And, use GDB + OpenOCD + JTAG + Raspberry Pi in the real environment as the demo in this talk.
開發 user space 軟體時,工程師們有方便的 debug 工具進行查找、分析、除錯。但在 Linux kernel 的開發,除了 printk 外,還可以有哪些工具可以使用呢?從 Linux kernel document 可以看到 KGDB 相關的資訊,提供了在 kernel 除錯時的另一個可能性。
本次將分享,從建立最簡單環境的虛擬機機開始,到實際使用 GDB + OpenOCD + JTAG + Raspberry Pi 當作展示範例。
The document outlines the steps to create an LVM logical volume on a Linux system. It begins by creating a new partition on /dev/sda and formatting it as an LVM physical volume. A volume group is then created using this physical volume. Finally, a logical volume is created within the volume group, formatted, and mounted. Attempts are made to extend the size of the logical volume but are unsuccessful due to size constraints.
How to solve misalignment lun netapp on linux servers by IvanIvan Silva
1) The document provides steps to properly configure disk alignment on Linux servers using Netapp LUNs (iSCSI or FC/FCOE) to avoid potential performance issues as storage grows.
2) Key steps include installing correct host and SnapDrive utilities, configuring multipath software, creating LUNs specifying the Linux OS type, creating an initiator group for Linux, and changing the LUN partition start sector to a value evenly divisible by eight using fdisk.
3) The lun alignment show command on the Netapp storage checks the read and write alignment histogram percentages to confirm if the LUN is aligned, partial, or indeterminate.
The document discusses various vulnerabilities in the Metasploitable virtual machine that can be exploited to gain unauthorized access. It describes how backdoors in FTP, IRC, and other services can be used to obtain root shells. It also explains how unintended access points like DistCC and Samba shares are misconfigured, allowing command execution and access to the file system.
This document summarizes the steps to set up a SLIM server on Fedora Core 2 to remotely manage and deploy Linux systems over a network. It involves installing prerequisite RPM packages, building a Linux system image, setting up NFS, TFTP, DHCP and PXE boot services, and configuring the pxelinux boot loader to allow clients to boot the system image from the server.
The document provides an overview of Ubuntu, an open-source operating system based on Linux. It discusses Ubuntu's history and philosophy of being freely available. It describes various Ubuntu flavors like Kubuntu and Xubuntu that use different desktop environments. It also outlines Ubuntu's file system structure, ways to install applications, basics of using the terminal, and considerations for partitioning disks during Ubuntu installation.
Symlinks and hardlinks allow files to have multiple names. Symlinks use a new inode that points to the original file, while hardlinks have the same inode as the original file. Removing a symlink does not affect the original, but removing a file removes it for all hardlinks. Symlinks can cross filesystems while hardlinks cannot since they rely on the inode number.
The document provides an overview of Das U-Boot, a universal boot loader used to load operating systems and applications into memory on embedded systems. It discusses U-Boot's features such as its command line interface, ability to load images from different sources, and support for various architectures and boards. It also covers compiling and configuring U-Boot, as well as its basic command set and image support capabilities.
Hardwear.io 2018 BLE Security Essentials workshopSlawomir Jasek
Bluetooth Low Energy (Smart, 4) is recently gaining more and more traction as one of the most common and rapidly growing IoT technologies. Unfortunatelly the prevalence of technology does not come with security. Alarming vulnerabilities in BLE smart locks, medical devices and banking tokens are revealed day by day. And yet, the knowledge on how to comprehensively assess them seems very uncommon.
In this workshop you will get familiar with the basics of BLE security. We will work on a dedicated, readily available BLE hardware nRF devkit device. You will learn how to program and flash it yourself, using special web interface and ready templates. Such approach allows to better understand how things work “under the hood”, experiment with different options, and then secure the hardware properly.
From attacker’s perspective, we will cover among others: sniffing, spoofing, MITM, replay and relay.
Having enough time, we will play with a collection of vulnerable smart locks, sex toys and other devices.
Similar to Open Enea Linux workshop at the Embedded Conference Scandinavia 2014 (20)
Enabling accelerated networking - seminar by Enea at the Embedded Conference ...EneaSoftware
The open source revolution brings a wealth of features and functionality at a rapid growth, and industry leaders come together to shape standardized interfaces, protocols, and ways of working. ARM is such a player and drives several collaborative projects under the Linaro (http://www.linaro.org) umbrella. One such initiative is the ODP (http://www.opendataplane.org/) open-source, cross-platform set of application programming interfaces for the networking data plane.
Enea provides an embedded software platform for the TI Keystone II System-on-Chip that includes Enea Linux, OSEck real-time operating system, LINX middleware, and Optima debugging tools. The platform supports both the ARM Cortex-A15 cores running Linux and the DSP cores running OSEck with unified IPC between cores and external devices. Enea's software is optimized for the Keystone II and has been extensively tested as an integrated solution.
LTE Components Drive Multimode Mobile BroadbandEneaSoftware
Enea Freescale webinar 12 Sep 2012. The availability and performance of LTE components are becoming a critical issue as carriers move ahead with LTE deployments. Highly integrated devices using the latest silicon technology are transforming this market. At this critical time we take a look at the latest solutions involving LTE for cellular base stations as well as the emerging HetNet (heterogeneous networks) technology to provide the fully integrated coverage and bandwidth that are needed in next-generation mobile infrastructure equipment.
Enea Linux Base Station Platform FTF ChinaEneaSoftware
Enea provides a Linux base station platform for LTE-Advanced and WCDMA/HSPA+ networks. The platform supports converged multi-standard base stations and small cells using Enea Linux, LINX for interprocess communication, and OSEck for real-time capabilities. It offers system management tools, optimized IP transport, and DSP management to accelerate development and integration of multi-standard radio access networks.
Enea Linux and Light-weight Threading
Enea Linux is a customized Linux distribution powered by Yocto that is tailored for telecom and networking applications. It includes over 150 curated packages and supports hardware from various vendors. Enea also introduces Light-weight Runtime Threading (LWRT), which partitions the system into real-time and non-real-time domains to improve performance. LWRT runs most processes in user-space with an optimized scheduler for lower latency compared to standard pthreads. LWRT provides benefits like determinism without depending on the PREEMPT_RT patch and allows both POSIX and real-time APIs.
The training helped participants understand the actual concepts behind the OSE. Multiple attendees praised the teacher's ability to properly understand and reply to all questions, and said the course was very good and helpful for their future projects. One past student said they couldn't imagine doing their job without the training, and highly recommended the teacher's OSE courses.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
WhatsApp offers simple, reliable, and private messaging and calling services for free worldwide. With end-to-end encryption, your personal messages and calls are secure, ensuring only you and the recipient can access them. Enjoy voice and video calls to stay connected with loved ones or colleagues. Express yourself using stickers, GIFs, or by sharing moments on Status. WhatsApp Business enables global customer outreach, facilitating sales growth and relationship building through showcasing products and services. Stay connected effortlessly with group chats for planning outings with friends or staying updated on family conversations.
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
Odoo ERP software
Odoo ERP software, a leading open-source software for Enterprise Resource Planning (ERP) and business management, has recently launched its latest version, Odoo 17 Community Edition. This update introduces a range of new features and enhancements designed to streamline business operations and support growth.
The Odoo Community serves as a cost-free edition within the Odoo suite of ERP systems. Tailored to accommodate the standard needs of business operations, it provides a robust platform suitable for organisations of different sizes and business sectors. Within the Odoo Community Edition, users can access a variety of essential features and services essential for managing day-to-day tasks efficiently.
This blog presents a detailed overview of the features available within the Odoo 17 Community edition, and the differences between Odoo 17 community and enterprise editions, aiming to equip you with the necessary information to make an informed decision about its suitability for your business.
DDS Security Version 1.2 was adopted in 2024. This revision strengthens support for long runnings systems adding new cryptographic algorithms, certificate revocation, and hardness against DoS attacks.
8 Best Automated Android App Testing Tool and Framework in 2024.pdfkalichargn70th171
Regarding mobile operating systems, two major players dominate our thoughts: Android and iPhone. With Android leading the market, software development companies are focused on delivering apps compatible with this OS. Ensuring an app's functionality across various Android devices, OS versions, and hardware specifications is critical, making Android app testing essential.
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsPeter Muessig
The UI5 tooling is the development and build tooling of UI5. It is built in a modular and extensible way so that it can be easily extended by your needs. This session will showcase various tooling extensions which can boost your development experience by far so that you can really work offline, transpile your code in your project to use even newer versions of EcmaScript (than 2022 which is supported right now by the UI5 tooling), consume any npm package of your choice in your project, using different kind of proxies, and even stitching UI5 projects during development together to mimic your target environment.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
2. About us...
Founded in 1968, Stockholm
World’s third largest player in real-time
operating systems
Broad ecosystem of partners
ARM, Texas Instruments, Freescale,...
Broad ecosystem of customers
Ericsson, Nokia, Electrolux, ...
Did you know that...
Sweden’s first e-mail is
sent over the internet to
Enea (April 7, 1983)?
What we do...
Software Products
Software services
Training
Did you know that...
Linux
RTOS
Embedded Mgmt and HA
Embedded data bases
Enea is the only Linux
Foundation authorized
training parter in Europe?
3. Embedded Linux
Main factors when choosing an OS for embedded systems:
Acquisition cost
Source code availability
Linux is the most widely used OS in embedded devices
World of embedded Linux is very fragmented
Over 200 distros
Different kernel versions, packages, build systems, tools
Tools
Package Package
Linux Kernel
Package
Package Package
Package Package
Linux Kernel
Tools
Package Package
Package Package
Package Package
Package Package
Linux Kernel
Open Source
Tools
Package Manager
Package Package
Linux Kernel
Package
Package
Package
Package
Package
Package
*Embedded Market Forecasters’ surveys
4. What’s Open Enea Linux
Yocto compatible embedded Linux distribution
All prebuilt binaries available
- Linux images
- Toolchain/SDK
Package repository infrastructure
Exclusively open source tools
Instructions and video tutorials
Community
- Interact with Eneans an other community members
6. Workshop material
64b Linux Machine
BeagleBone Black
4/8GB microSD card
+ adapter
USB to TTL cable
Mini USB cable
Hardware Accessories
USB stick
7. Workshop Part 1
9:30 to 10:30
Bulk binaries to computer
Prepare SD card
Serial Connection
Boot OEL
SERIAL Configure Package Manager
8. Step 1 – Bulk binaries
Copy binaries locally
- OEL Images
- SDK/Toolchain
- Enea Linux Eclipse
$ cd
$ mkdir OEL
$ cd OEL
$ cp -r -v /media/ENEAUSB/* .
*You might find ENEAUSB under /media/<user>/ENEAUSB
Browse directory
$ ls –la
drwx------ 2 user user 4096 Oct 24 16:19 boot
drwx------ 2 user user 4096 Oct 24 16:20 partition1
drwx------ 2 user user 4096 Oct 24 16:20 partition2
drwx------ 2 user user 4096 Oct 30 14:12 scripts
drwx------ 2 user user 4096 Oct 24 16:20 toolchain
drwx------ 2 user user 4096 Oct 24 16:19 tools
*You can now remove the USB stick safely
9. Step 2 – Connect microSD card
Connect your microSD card to your computer using an SD adapter or a memory card
reader. Observe which device it registers as by checking your dmesg log:
$ dmesg | tail
[17622.977436] mmc0: new SDHC card at address aaaa
[17622.977810] mmcblk0: mmc0:aaaa SL32G 29.7 GiB
[17622.989858] mmcblk0: p1 p2
[17623.410434] EXT4-fs (mmcblk0p2): recovery complete
[17623.414702] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
*Note that this MicroSD card contains 2 partitions in /dev/mmcblk0
Your SD card might have only one or no partition at all.
Alternatively, you can also list your existing devices this way:
$ ls /dev/mmc*
$ ls /dev/sd*
/dev/mmcblk0p1
/dev/mmcblk0p2
*If you are using an SD car adapter
*If you are using an SD car reader
(might be called something like sdf, sdb,…)
10. Step 3 – Partition microSD card
Unmount existing partitions (if applicable)
$ sudo umount /dev/<device_name>*
Begin partitioning the microSD card
$ sudo fdisk /dev/<device_name>
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
*Note that you need to replace /dev/<device_name> with your actual device name
11. Step 3 – Partition microSD card
Partition 1
From beginning
To sector 4095
Initialize a new partition table by selecting o, then verify the partition
table is empty by selecting p
Partition 1: Create a boot partition by selecting n for ‘new’, then p for
‘primary’, and 1 to specify the first partition. Press enter to accept the
default first sector and specify 4095 for the last sector
Change the partition type to FAT16 by selecting t for ‘type’ and e for
‘W95 FAT16 (LBA)’
Set the partition bootable by selecting a then 1
Partition 2: Create the data partition for the root file system by
selecting n for ‘new’, then p for ‘primary’, and 2 to specify the second
partition. Accept the default values for the first and last sectors by
pressing enter twice
Partition 2
From sectr 4095
To end
*If you make a mistake, you can always initialize the partition table by selecting o, and start from scratch
12. Step 3 – Partition microSD card
Press p to ‘print’ the partition table. It should look similar to the
one below:
Disk /dev/sdb: 7948 MB, 7948206080 bytes
255 heads, 63 sectors/track, 966 cylinders, total 15523840 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xafb3f87b
Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 4095 1024 e W95 FAT16 (LBA)
/dev/sdb2 * 4096 15523839 7759872 83 Linux
Now you can commit the changes by selecting w to ‘write’ the
partition table and exit fdisk
Partition 1
From beginning
To sector 4095
Partition 2
From sectr 4095
To end
*You might get a warning after this, but do not worry.
13. Step 3 – Partition microSD card
Partition 1
vfat
Partition 2
ext4
Check your partition names:
$ ls -l /dev/<device_name>*
brw-rw---- 1 root disk 179, 0 Oct 30 14:28 /dev/mmcblk0
brw-rw---- 1 root disk 179, 1 Oct 30 14:28 /dev/mmcblk0p1
brw-rw---- 1 root disk 179, 2 Oct 30 14:28 /dev/mmcblk0p2
Format partition 1 as FAT:
$ sudo mkfs.vfat /dev/<partition1>
… and partition 2 as ext4:
$ sudo mkfs.ext4 /dev/<partition2>
<device_name>
<partition1>
<partition2>
*Remember that our device name is mmcblk0 because we are using the SD adapter
14. Step 4 – Populate microSD card
Partition 1
MLO, u-boot,
uEnv.txt
Mount both partitions:
$ sudo mkdir /mnt/partition1
$ sudo mkdir /mnt/partition2
$ sudo mount -t vfat -v /dev/<partition1> /mnt/partition1
$ sudo mount -t ext4 -v /dev/<partition2> /mnt/partition2
Populate both partitions:
$ cd ~/OEL/
$ sudo cp -r partition1/* /mnt/partition1/
$ cd partition2
$ sudo tar -xvjf core-image-minimal-rpm-beaglebone.tar.bz2 -C /mnt/partition2
$ sudo cp -r -v ../boot/* /mnt/partition2/boot/
$ sudo cp -r -v ../scripts/* /mnt/partition2/home/root/
Now synchronize and unmount:
$ sync
$ sudo umount -v /mnt/partition1
$ sudo umount -v /mnt/partition2
Partition 2
Filesystem,
OEL images
*Replace <partition1> and <partition2> with the devices found in the previous step
*Takes a while…
15. Step 5 – Serial Connection
We will use minicom to talk to our BeagleBone Black. Install it first:
POWER SERIAL
$ sudo apt-get install minicom
Now, insert the micro SD card in the BeagleBone Black board …
.. and connect it to the host using a USB TTL serial cable as explained in
the next slide
*Minicom is a text-based serial port communications program
*Alternatively you can install it via the Synaptic Package Manager
1
17. Step 5 – Serial Connection
We need to find out the name of the port that minicom will listen to:
POWER SERIAL
$ dmesg | grep tty
...
[110831.397736] usb 3-2: pl2303 converter now attached to ttyUSB0
*Note that our serial port is ttyUSB0, yours might be different
Now, let’s configure minicom:
$ sudo minicom -s
18. Step 5 – Serial Connection
Select Serial port set up and configure:
- Serial Device
- Bps/Par/Bits
- Hardware Flow Control
- Software Flow Control
POWER SERIAL
+-----[configuration]------+
| Filenames and paths |
| File transfer protocols |
| Serial port setup |
| Modem and dialing |
| Screen and keyboard |
| Save setup as dfl |
| Save setup as.. |
| Exit |
| Exit from Minicom |
+---------------------------+
+------------------------------------------------------------+
| A - Serial Device : /dev/<serial_port> |
| B - Lockfile Location : /var/lock |
| C - Callin Program : |
| D - Callout Program : |
| E - Bps/Par/Bits : 115200 8N1 |
| F - Hardware Flow Control : No |
| G - Software Flow Control : No |
| |
| Change which setting? |
+------------------------------------------------------------+
19. Step 5 – Serial Connection
Save set up as default (dfl) so that you can start listening to the serial
connection at a later point in time:
POWER SERIAL
+-----[configuration]------+
| Filenames and paths |
| File transfer protocols |
| Serial port setup |
| Modem and dialing |
| Screen and keyboard |
| Save setup as dfl |
| Save setup as.. |
| Exit |
| Exit from Minicom |
+---------------------------+
Then “exit from minicom”, and start serial connection:
$ sudo minicom
20. Step 6 - Erase eMMC flash
Pressing the USER/BOOT button when powering on will temporarily change the boot order, But for the sake of
simplicity, you might want to erase the eMMC on the Black, so that it boots off automatically from the SD card
Power on board by connecting the USB to miniUSB cable and see the console
prompt in minicom. Get to u-boot command prompt by interrupting the initial boot
process (follow verbose instructions) and erase the eMMC:
ERASE
U-Boot 2014.07 (Jul 18 2014 - 14:49:15)
I2C: ready
DRAM: 512 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
Net: not set. Validating first E-fuse MAC
cpsw, usb_ether Hit any key to stop autoboot:
U-boot# mmc dev 1
U-boot# mmc erase 0 512 USER/BOOT
BUTTON
*We are using BBB revision C, we have experienced boot issues with previous revisions
*Some of you might already have it deleted since we have been testing some of the boards
21. Step 7 – Boot OEL
Connect the board to the network and reboot:
U-boot# reset
OEL should boot automatically. Log in as root and do not forget to
change your password:
...
Starting syslogd/klogd: done
Stopping Bootlog daemon: bootlogd.
Starting tcf-agent: OK
Open Enea Linux 2014-01-01 beaglebone /dev/ttyO0
beaglebone login: root
root@beaglebone:~# passwd
*Make sure you set a password, otherwise Eclipse will complain later when creating a remote ssh connection
22. Step 8 – Configure Package Manager
Check internet conection and make sure you have been given an ip address:
# ifconfig eth0
Let’s configure the package manager. Execute script and select option 1:
20.000 packages
for the beagle
# chmod 700 smart_config.sh
# ./smart_config.sh
Open Enea Linux script:
Smart package manager configurator
1) Configure Smart 3) Show Configuration
2) Reset Configuration 4) Quit
Please enter your choice: 1
*You can also show or reset the configuration in case you need to do some trouble-shooting
And update the package manager metadata:
# smart update
23. Step 9 – Customize your distro
openssh
It is time you start customizing your OEL distro... Search for any
package you like. Let’s say you need to ssh your board:
# smart search ssh
You will find openssh. Go ahead and install it:
# smart install openssh
You can now test an ssh connection from the host:
$ ssh root@<board_ip>
*You might need to reboot the BeagleBone so that the ssh client starts up
You done?
Try and install some packages that you are familiar with...
For instance, an alternative to vi editor. Can you find and install
nano editor?
REBOOT
BUTTON
24. Break 10:30 – 11:00
Join Open Enea Linux mailing list today and
win a BeagleBone Black
25. Workshop Part 2
11:00 to 12:00
Toolchain/SDK
Eclipse
SSH
ping.c
Install Toolchain
Install Eclipse
Create a remote connection
Create an ADT project
Remote Debugging with ping
26. Step 10 – Install Toolchain
First of all, we need to install the toolchain. Type this on the host.
Note that we are chosing opt/oel-beagle/ as target directory, which is relative:
$ cd ~/OEL/toolchain/
$ sudo chmod 775 oel-eglibc-x86_64-core-image-minimal-cortexa8hf-vfp-neon-toolchain-2014-01-01.sh
$ ./oel-eglibc-x86_64-core-image-minimal-cortexa8hf-vfp-neon-toolchain-2014-01-01.sh
Enter target directory for SDK (default: /opt/oel/2014-01-01): opt/oel-beagle/
You are about to install the SDK to "/home/<user>/OEL/toolchain/opt/oel-beagle". Proceed[Y/n]?Y
Extracting SDK...done
Setting it up...done
SDK has been successfully set up and is ready to be used.
*Note that opt/oel-beagle is a relative directory, the toolchain is actually installed here:
/home/<user>/OEL/toolchain/opt/oel-beagle
27. Step 11 – Install Eclipse
Let’s extract the Enea Linux Eclipse toolsuite:
$ cd ~/OEL/tools
$ tar –xvzf Enea-Linux-Eclipse_4.0.tar.gz
And start it in the background:
$ cd eclipse
$ ./eclipse &
Select your workspace folder: /home/<user>/workspace
Click OK and close welcome tab
/home/<user>/workspace
28. Step 12 – Remote Connection
Now we are going to connect Eclipse to our target.
Eclipse supports several types of remote connections: in Open Enea Linux, SSH connection is used.
This type of connection requires that a corresponding service (openssh) is enabled and running on the target.
1. Window → Open Perspective →
Other → Remote System Explorer
2. File → New → Other → Remote System Explorer
→ Connection
29. Step 12 – Remote Connection
4. Enter Host name (IP address of the beagle) and
Connection Name (bbb) → Finish
3. Select SSH Only
Enter IP address here
bbb
30. Step 12 – Remote Connection
5. To verify the remote connection, go to the Remote
Systems window tab and expand your connection.
Expand
6. It may ask for login information for the
initial ssh connection. Enter user and passwd.
Now your bbb Root file system should have
expanded completely and you should be able
to browse it.
31. Step 13 – Tools Set up
Set up general cross compiler preferences. Go to:
Window → Preferences → Yocto Project ADT
→ Cross Compiler Options:
- 1. Select Standalone pre-built toolchain and configure the following:
- 2. Toolchain Root Location: /home/<user>/OEL/toolchain/opt/oel-beagle
- 3. Sysroot Location: /home/<user>/OEL/toolchain/opt/oel-beagle/sysroots/
- 4. Target Architecture: “cortexa8hf-vfp-neon-oel-linux-gnueabi”
- 5. Click OK
.../opt/oel-beagle/
.../opt/oel-beagle/sysroots/
32. Step 14 – Create ADT Project
1. File → New → Project:
Expand C/C++ Project and select C Project
2. Expand Yocto Project ADT Autotools Project and
select Hello World ANSI C Autotools Project
Project name: “ping”
Use default location
Click Next
ping
/home/<user>/workspace/ping
*Default location should be /home/<user>/workspace/ping
33. Step 14 – Create ADT Project
3. Fill in Author → Finish 4. Open C/C++ perspective
34. Step 14 – Create ADT Project
$ cp ~/OEL/tools/ping.c ~/workspace/ping/src/ping.c
5. Now we need to replace the generated
file with our own ping file. Type on host:
6. And double check that the file has been replaced in Eclipse:
Double click ping.c
ping.c
35. Step 15 – Cross Compile
Right click on project name (ping in our case) → Reconfigure Project
Check for “Operation Successful” in Eclipse Configure Console window.
36. Step 15 – Cross Compile
Right click on project name (ping) → Build Project
Verify logs in CDT Build Console to ensure it has built, and see resulting binaries in Project Explorer window
*You can select the various Eclipse consoles
by clicking the dropdown console button
37. Step 16 – Remote Debugging
1. Run → Debug Configurations → Expand C/C++ Remote Application
and select Ping_gdb_arm-oel-linux-gnueabi
3. Type “/home/root/ping”
ping
src/ping
*This tells Eclipse to deploy the ping binary in the root home folder of the target
2. Select connection: bbb
4. Do not click on Debug yet…
/home/root/ping
38. Step 16 – Remote Debugging
5. Arguments Tab → Add 127.0.0.1 to ping to ourselves.
6. Click Debug and open debug perspective
127.0.0.1
39. Step 16 – Remote Debugging
7. This should launch a debug session and break your program at the entry into the main function
40. Step 16 – Remote Debugging
8. To run a simple test, set a breakpoint at line 688 (Shortcut to find line: CTRL + L)
9. Then go to Run → Resume (Shortcut for resume: F8)
*Repeat this step a few times, and see
that it breaks at every reply
Ping.c
Ping
Ping
*Double-click here
41. More About Tools
More advanced User space debugging
Kernel Debugging (KDBG)
- shares serial connection
- needs kernel sources and vmlinux file – kernel debug image
- uses SysRq magic commands to put the kernel into debugging mode
- rest is normal GDB debugging
- scheduling/execution control are still sensitive areas
- possible to debug kernel modules
- need to provide GDB with module mapping data
- needs special kernel configs:
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_DEBUG_INFO=y
- support for debugging shared objects
- support for debugging multicore applications
- attach to applications at runtime
- debug large scale projects with separate build systems