/meta-hello

A yocto layer for a hello world linux driver

Primary LanguageBlitzBasicMIT LicenseMIT

#This README file contains information on the contents of the meta-hello layer.

Dependencies
============

  URI: <Yocto image with dunfell branch>
    branch: <Dunfell>
  URI: <Linux headers version>
    version: 5.15.0-52-generic
  
Table of Contents
=================

  I. Conf directory:
    This folder contain the layer configuration and the recipes path and the layer priority etc.
    
 II. Recipes-exemple:
    The reciepces example folder contain a simple recipe as an example that is created by bitbake,
    to show the overall reciepe structure.
   
 III. Hello:
    The "Helo" folder is the main recipe of the driver itself: it contain a folder within the driver source code and its makefle in it,
    and also it contains the recipe of this driver that must include the source code and the makefile as "SRC_URI" fields,
    and other fields like package provided and the LICENCE ...
    
Adding the meta-hello layer to your build:
==========================================

Run 'bitbake-layers add-layer meta-hello' and thats it!

To execute run:
===============
   1. To load the driver into the kernel :
        $ sudo insmode /lib/modules/(your-kernel-version)/extra/hello.ko
   2. To see the output in logs:
        $ dmesg | tail 2
   3. To unload the driver from the kernel:
        $ sudo rmmode hello.ko
   
! Important:
============

  To prevent errors !!! First you should :
      1. Take in consideration you kernel version and the linux hearders headers version used in the driver, they should be compatible!!!
      2. Make sure about the poky distro you workd with, it may cause some sythanxes error in reciepes if it is not compatible!
      3. Add "IMAGE_INSTALL_APPEND = hello" to your local.conf file, otherwise this module will compile but never shows in your linux image!
      


* You can find explanation about the driver here : https://medium.com/@TheLittleNaruto/writing-hello-world-driver-for-the-linux-kernel-d591a2fa214b