Posts

Showing posts from August, 2020

Chapter12- PCI Drivers

PCI Drivers The PCI bus achieves better performance by using a higher clock rate than ISA Each PCI peripheral is identified by a bus number, a device number, and a function number The PCI spec permits single system to host upto 256 buses, Since it is not sufficient the Linux now supports PCI domains Each PCI domain can host upto 256 buses Each bus host upto 32 devices Each device can be multifunction board. e.g. Audio device with CDROM drive with a maximum of 8 functions Each function can be identified at hardware level by a 16 bit address or key Device drivers in Linux don't need to deal with those binary address because they use specific data structure called pci_dev to act on the devices Bridges are special purpose peripherals whose task is joining two peripheral Overall layout of PCI system is a tree where each bus is connected to an upper layer bus, upto bus 0 at the root of the tree lspci is a part of PCI utils package and the layout information in /proc/pci and /proc/bus/pci

mockbuild warning in CentOS

  How to overcome from mockbuild warning in CentOS 7.6.1810 Mock is a tool for building packages. It can build packages for different architectures and different Fedora, RHEL, and Mageia versions than the build host has. Mock creates chroots and builds packages in them. Its only task is to reliably populate a chroot and attempt to build a package in that chroot. Mock also offers a multi-package tool, mockchain, that can build chains of packages that depend on each other. Mock is capable of building SRPMs from source configuration management if the  mock-scm  package is present, then building the SRPM into RPMs. See  --scm-enable  in the documentation. When you have a fresh CentOS installed machine and if you try to install kernel source rpm you might get the below warnings,  It is simply because you need add mockbuild user and a group in your machine.  To overcome from the below warning you might have to add and install a user and group. [nbhat@ws ~]$ rpm -ivh kernel-alt-4.14.0-115.7.1

ARM64: Jenkins CI loop setup on ThunderX2 Workstation

Image
This blog will walk you through setting up Jenkins CI loop on a docker container.  The CI loop is commonly setup on x86 boxes.  It is required to do cross compilation if you setup the CI loop on x86 machines.  In this blog we are going to cover how to setup a CI loop on ARM64 based ThunderX2 workstation server.  The advantage compared to setting up the CI loop on x86 is no overhead of cross compilation.  We are going to cover the following items in this blog. 1. Creating a docker image for Jenkins (arm64 image) 2. Running Docker image  3. Run Jenkins 4. Setting up Jenkins 5. Write sample groovy scripts  6. Build the sample groovy scripts. We are considering you have installed CentOS/Debian/Fedora/Ubuntu OS on the ThunderX2 workstation. We are going to explain in this blog how to setup and run Jenkins on Docker container installed on the CentOS7 bionic distribution.  The steps will slightly vary from one distribution to another.  To install and run the docker imag