Difference between revisions of "Embedded-Linux-Device-Driver/C2/Installation-of-Linux-kernel-packages/English"

From Script | Spoken-Tutorial
Jump to: navigation, search
(Created page with " {| style="border-spacing:0;" | style="border:1pt solid #000000;padding:0.176cm;"| Visual cue | style="border:1pt solid #000000;padding:0.176cm;"| Narration |- | style="borde...")
 
Line 18: Line 18:
 
* Install the '''kernel header files.'''
 
* Install the '''kernel header files.'''
 
* Check the installed '''kernel '''version.
 
* Check the installed '''kernel '''version.
* Use linux '''kernel''' command
+
* Use '''Linux kernel commands'''
  
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| In this tutorial, we will learn how to
 
| style="border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding:0.176cm;"| In this tutorial, we will learn how to
Line 25: Line 25:
 
* Install the '''kernel header files.'''
 
* Install the '''kernel header files.'''
 
* Check the installed '''kernel '''version.
 
* Check the installed '''kernel '''version.
* Use linux '''kernel''' commands.
+
* Use '''Linux kernel commands'''
  
 
|-
 
|-
Line 49: Line 49:
 
To follow this tutorial, you should be familiar with
 
To follow this tutorial, you should be familiar with
  
* '''C programming language and'''
+
* '''C''' programming language and
* basics of''' Linux kernel'''  
+
* Basics of''' Linux kernel'''  
  
 
| style="border:1pt solid #000000;padding:0.176cm;"| To follow this tutorial, you should be familiar with
 
| style="border:1pt solid #000000;padding:0.176cm;"| To follow this tutorial, you should be familiar with
  
* '''C programming language and'''
+
* '''C''' programming language and
* basics of''' Linux kernel'''  
+
* Basics of''' Linux kernel'''  
  
 
|-
 
|-
Line 66: Line 66:
 
* Do the Virtual box installation as per your system OS
 
* Do the Virtual box installation as per your system OS
  
| style="border:1pt solid #000000;padding:0.176cm;"| * Go through the '''Ubuntu Linux on VirtualBox '''series in this website. [http://spoken-tutorial.org/ http://spoken-tutorial.org]
+
| style="border:1pt solid #000000;padding:0.176cm;"|  
 +
* Go through the '''Ubuntu Linux on VirtualBox '''series in this website.  
  
* Do the VirtualBox installation as per your system OS.
+
* Do the '''VirtualBox''' installation as per your '''system OS'''.
  
 
|-
 
|-
Line 74: Line 75:
  
 
Type the''' password'''
 
Type the''' password'''
| style="border:1pt solid #000000;padding:0.176cm;"| Start your''' ubuntu 18.04 LTS''' virtual system.
+
| style="border:1pt solid #000000;padding:0.176cm;"| Start your''' Ubuntu 18.04 LTS virtual system.'''
  
Type the system '''password''' to login.
+
Type the '''system password''' to '''login'''.
  
 
|-
 
|-
Line 87: Line 88:
 
Highlight '''Command ‘gcc’ not found.'''
 
Highlight '''Command ‘gcc’ not found.'''
  
| style="border:1pt solid #000000;padding:0.176cm;"| Open the''' terminal''' by pressing '''Alt+Ctrl+T'''
+
| style="border:1pt solid #000000;padding:0.176cm;"| Open the''' terminal''' by pressing '''Alt+Ctrl+T''' keys simultaneously.
  
keys simultaneously.
+
We require the '''gcc compiler''' to compile the''' kernel’s module'''.
 
+
We require the '''gcc compiler''' to compile the''' kernel’s '''module.
+
  
 
Let us check whether the '''gcc compiler''' is installed or not.
 
Let us check whether the '''gcc compiler''' is installed or not.
Line 100: Line 99:
  
 
Otherwise you will see the '''gcc''' version that has been installed.
 
Otherwise you will see the '''gcc''' version that has been installed.
 
You can skip the below installation steps.
 
  
 
|-
 
|-
Line 119: Line 116:
 
Press '''Enter'''
 
Press '''Enter'''
  
| style="border:1pt solid #000000;padding:0.176cm;"| Let us install the '''gcc compiler,'''
+
| style="border:1pt solid #000000;padding:0.176cm;"| Let us install the '''gcc compiler.'''
  
 
Type '''sudo space apt space update''' and press''' Enter.'''
 
Type '''sudo space apt space update''' and press''' Enter.'''
  
Type the administrative''' password''' if prompts.
+
Type the administrative''' password''' if prompted.
  
This command will update the '''Ubuntu's''' default repositories.
+
This '''command''' will update the '''Ubuntu's''' default '''repositories'''.
  
 
|-
 
|-
Line 135: Line 132:
 
| style="border:1pt solid #000000;padding:0.176cm;"| Next, type '''sudo space apt space install space build hyphen essential.'''  
 
| style="border:1pt solid #000000;padding:0.176cm;"| Next, type '''sudo space apt space install space build hyphen essential.'''  
  
This package is used to install '''GCC/g++ '''compilers, libraries and utilities such as '''make'''.  
+
This '''package''' is used to install '''GCC/g++ compilers, libraries''' and utilities such as '''make'''.  
  
 
Press''' Enter'''.
 
Press''' Enter'''.
Line 147: Line 144:
 
| style="border:1pt solid #000000;padding:0.176cm;"| We can see the installation process has begun.
 
| style="border:1pt solid #000000;padding:0.176cm;"| We can see the installation process has begun.
  
Press ''''Y'''' whenever there is a prompt during installation to confirm the configuration.
+
Press ''''Y'''' whenever there is a prompt during installation to confirm the '''configuration'''.
  
 
And press '''Enter.'''
 
And press '''Enter.'''
Line 160: Line 157:
  
 
|-
 
|-
| style="border:1pt solid #000000;padding:0.176cm;"| Type''' '''>>''' gcc --version '''
+
| style="border:1pt solid #000000;padding:0.176cm;"| Type >>''' gcc --version '''
  
 
Press''' Enter'''
 
Press''' Enter'''
  
 
Highlight '''7.4.0'''
 
Highlight '''7.4.0'''
| style="border:1pt solid #000000;padding:0.176cm;"| Let us check the''' version '''of installed '''gcc compiler.'''
+
| style="border:1pt solid #000000;padding:0.176cm;"| Let us check the version of installed '''gcc compiler.'''
  
 
Type '''gcc space hyphen hyphen version''' and press''' Enter.'''
 
Type '''gcc space hyphen hyphen version''' and press''' Enter.'''
Line 193: Line 190:
  
 
Highlight '''generic'''
 
Highlight '''generic'''
| style="border:1pt solid #000000;padding:0.176cm;"| Let us now check the''' kernel''' version of the system.
+
| style="border:1pt solid #000000;padding:0.176cm;"| Let us now check the''' kernel''' version of the '''system'''.
  
 
Type '''uname space hyphen r '''and press '''Enter.'''
 
Type '''uname space hyphen r '''and press '''Enter.'''
  
Here, you can see the''' kernel '''version of the system.
+
Here, you can see the''' kernel '''version of the '''system'''.
  
 
Five indicates the '''kernel''' version.
 
Five indicates the '''kernel''' version.
  
Zero indicates the''' kernel''' '''major '''revision.
+
Zero indicates the''' kernel major '''revision.
  
 
Zero indicates the '''kernel minor '''revision.
 
Zero indicates the '''kernel minor '''revision.
Line 207: Line 204:
 
Thirty one indicates the number of fixed '''bugs.'''
 
Thirty one indicates the number of fixed '''bugs.'''
  
'''generic '''means general usage''' kernel.'''
+
'''generic '''means '''general usage kernel.'''
  
 
It is used for '''desktop '''installation.
 
It is used for '''desktop '''installation.
Line 231: Line 228:
 
| style="border:1pt solid #000000;padding:0.176cm;"| Type''' sudo su'''.
 
| style="border:1pt solid #000000;padding:0.176cm;"| Type''' sudo su'''.
  
'''su '''command stands for '''superuser '''or '''root user.'''
+
'''su command''' stands for '''superuser '''or '''root user.'''
  
In '''Linux,''' only the '''superuser '''allows to run some commands.
+
'''Linux''' allows only the '''superuser ''' to run some '''commands'''.
  
 
Press '''Enter'''.
 
Press '''Enter'''.
  
If asked for the password, type the system '''password''' and press '''Enter.'''
+
If asked for the '''password''', type the '''system password''' and press '''Enter.'''
  
We can see the command prompt changed to '''root''' user.
+
We can see the '''command prompt''' changed to '''root user'''.
  
 
|-
 
|-
Line 245: Line 242:
  
 
Press '''Enter'''
 
Press '''Enter'''
| style="border:1pt solid #000000;padding:0.176cm;"| To '''compile''' the''' Linux device driver,'''
+
| style="border:1pt solid #000000;padding:0.176cm;"| To '''compile''' the''' Linux device driver,''' we need to have''' kernel header files''' installed in the '''system'''.
 
+
We need to have''' kernel header files''' installed in the system.
+
  
 
Let us install the '''kernel header files.'''
 
Let us install the '''kernel header files.'''
Line 261: Line 256:
  
 
Highlight '''0-newly installed'''
 
Highlight '''0-newly installed'''
| style="border:1pt solid #000000;padding:0.176cm;"| As the '''files''' are already installed on the system,
+
| style="border:1pt solid #000000;padding:0.176cm;"| The '''files''' are already installed on the '''system'''.
 
+
You can see the output as,
+
  
'''linux-headers-5.0.0-31-generic is already the newest version.'''
+
So, you can see the output as-
  
'''zero upgraded, zero newly installed. '''
+
'''linux-headers-5.0.0-31-generic is already the newest version zero upgraded, zero newly installed. '''
  
 
|-
 
|-
Line 291: Line 284:
  
 
Highlight''' Installed-size '''
 
Highlight''' Installed-size '''
| style="border:1pt solid #000000;padding:0.176cm;"| This field shows the package of''' header files.'''
+
| style="border:1pt solid #000000;padding:0.176cm;"| This field shows the '''package''' of''' header files.'''
  
 
The '''status''' field indicates that the '''header files '''are installed or not.
 
The '''status''' field indicates that the '''header files '''are installed or not.
  
The''' Installed-size''' field contains the size of installed '''kernel header''' '''files '''in bytes.
+
The''' Installed-size''' field contains the size of installed '''kernel header files '''in '''bytes'''.
  
 
|-
 
|-
Line 301: Line 294:
  
 
Highlight '''version'''
 
Highlight '''version'''
| style="border:1pt solid #000000;padding:0.176cm;"| This field shows the '''architecture '''of our system.
+
| style="border:1pt solid #000000;padding:0.176cm;"| This field shows the '''architecture '''of our '''system'''.
  
The '''version''' field shows the version of''' '''the''' header files.'''
+
The '''version''' field shows the version of the''' header files.'''
  
 
|-
 
|-
Line 309: Line 302:
  
 
Press '''Enter'''
 
Press '''Enter'''
| style="border:1pt solid #000000;padding:0.176cm;"| As already learned, to see the '''kernel version,'''
+
| style="border:1pt solid #000000;padding:0.176cm;"| As already learnt, to see the '''kernel version,''' type '''uname space hyphen r'''.
  
Type '''uname space hyphen r''' and press '''Enter.'''
+
And press '''Enter.'''
  
 
|-
 
|-
Line 321: Line 314:
 
| style="border:1pt solid #000000;padding:0.176cm;"| Here, you can see that the''' kernel header files''' version and the '''kernel '''version are the same.
 
| style="border:1pt solid #000000;padding:0.176cm;"| Here, you can see that the''' kernel header files''' version and the '''kernel '''version are the same.
  
Make sure that both versions are the same in your system.
+
Make sure that both versions are the same in your '''system'''.
  
 
|-
 
|-
Line 337: Line 330:
  
 
Highlight '''lsmod'''
 
Highlight '''lsmod'''
| style="border:1pt solid #000000;padding:0.176cm;"| Let us see the command that shows the '''kernel’s modules.'''
+
| style="border:1pt solid #000000;padding:0.176cm;"| Let us see the '''command''' that shows the '''kernel’s modules.'''
  
 
Type '''lsmod''' and press''' Enter'''.
 
Type '''lsmod''' and press''' Enter'''.
  
This command shows the '''modules''' currently loaded in the '''kernel'''.
+
This '''command''' shows the '''modules''' currently loaded in the '''kernel'''.
  
These '''modules''' extend the '''kernel’s''' functionality.
+
These '''modules''' extend the '''kernel’s functionality'''.
  
 
|-
 
|-
Line 352: Line 345:
  
 
|-
 
|-
| style="border:1pt solid #000000;padding:0.176cm;"| Type >> '''ls''' '''-l''' /'''dev'''  
+
| style="border:1pt solid #000000;padding:0.176cm;"| Type >> '''ls -l''' /'''dev'''  
  
 
press '''Enter'''
 
press '''Enter'''
Line 360: Line 353:
 
Highlight '''/dev'''
 
Highlight '''/dev'''
  
| style="border:1pt solid #000000;padding:0.176cm;"| Type '''ls''' '''space''' '''hyphen l space''' '''slash''' '''dev''' and press '''Enter.'''
+
| style="border:1pt solid #000000;padding:0.176cm;"| Type '''ls space hyphen l space''' '''slash dev''' and press '''Enter.'''
  
This command displays the list of '''files''' located under the '''dev directory. '''
+
This '''command''' displays the list of '''files''' located under the '''dev directory. '''
  
All the devices are located in the''' dev directory'''.
+
All the '''devices''' are located in the''' dev directory'''.
 
|-
 
|-
 
| style="border:1pt solid #000000;padding:0.176cm;"| Highlight '''c '''
 
| style="border:1pt solid #000000;padding:0.176cm;"| Highlight '''c '''
Line 384: Line 377:
  
 
|-
 
|-
| style="border:1pt solid #000000;padding:0.176cm;"| Type >> '''ls''' '''-l''' /'''dev'''/'''tty'''
+
| style="border:1pt solid #000000;padding:0.176cm;"| Type >> '''ls -l/dev/tty'''
  
 
Press '''Enter'''
 
Press '''Enter'''
Line 393: Line 386:
  
 
Highlight''' rw-rw-rw-'''
 
Highlight''' rw-rw-rw-'''
| style="border:1pt solid #000000;padding:0.176cm;"| Type '''ls''' '''space''' '''hyphen''' '''l space slash''' '''dev''' '''slash''' '''tty '''and press '''Enter'''.
+
| style="border:1pt solid #000000;padding:0.176cm;"| Type '''ls space hyphen l space slash dev slash tty '''and press '''Enter'''.
  
The '''tty''' is a character device for the first '''uart serial port.'''
+
The '''tty''' is a '''character device''' for the first '''uart serial port.'''
  
 
Here, the '''owner''' is '''root''', and the '''group''' is '''tty.'''  
 
Here, the '''owner''' is '''root''', and the '''group''' is '''tty.'''  
  
It indicates that the '''owner''', the '''group '''and the '''others '''have read and write permissions.  
+
It indicates that the '''owner''', the '''group '''and the '''others '''have '''read''' and '''write permissions'''.  
  
Another example of a character device is a '''keyboard''' device.
+
Another example of a '''character device''' is a '''keyboard device'''.
  
 
|-
 
|-
Line 414: Line 407:
 
Highlight''' rw-rw-'''
 
Highlight''' rw-rw-'''
  
| style="border:1pt solid #000000;padding:0.176cm;"| Type '''ls''' '''space''' '''hyphen l space slash''' '''dev''' '''slash''' '''sda''' and press '''Enter.'''
+
| style="border:1pt solid #000000;padding:0.176cm;"| Type '''ls''' '''space''' '''hyphen l space slash dev slash sda''' and press '''Enter.'''
  
It is a '''block '''device indicated by '''b'''.
+
It is a '''block device''' indicated by '''b'''.
  
All mass storage devices such as '''sda''' are '''block''' devices.  
+
All mass storage '''devices''' such as '''sda''' are '''block devices'''.  
  
 
Here, the '''owner''' is '''root''', and the '''group''' is '''disk'''
 
Here, the '''owner''' is '''root''', and the '''group''' is '''disk'''
  
It indicates that the '''owner''' and''' '''the '''group''' have read and write permissions.
+
It indicates that the '''owner''' and the '''group''' have '''read''' and '''write permissions.'''
  
These devices support random access.
+
These '''devices''' support '''random access'''.
  
 
|-
 
|-
Line 438: Line 431:
  
 
Show the output
 
Show the output
| style="border:1pt solid #000000;padding:0.176cm;"| Type''' ls space hyphen l space slash sys slash class slash net '''and''' '''press''' Enter.'''
+
| style="border:1pt solid #000000;padding:0.176cm;"| Type''' ls space hyphen l space slash sys slash class slash net '''and press''' Enter.'''
  
 
Here, you can see the list of''' network devices '''located in this '''directory.'''
 
Here, you can see the list of''' network devices '''located in this '''directory.'''
Line 445: Line 438:
 
| style="border:1pt solid #000000;padding:0.176cm;"| Highlight output
 
| style="border:1pt solid #000000;padding:0.176cm;"| Highlight output
  
| style="border:1pt solid #000000;padding:0.176cm;"| '''Network devices''' are also known as '''packet''' devices.
+
| style="border:1pt solid #000000;padding:0.176cm;"| '''Network devices''' are also known as '''packet devices'''.
  
 
'''Network devices''' simply transmit or receive the '''packets'''.
 
'''Network devices''' simply transmit or receive the '''packets'''.
  
This is normally a physical device like '''ethernet card. '''
+
This is normally a physical '''device''' like '''ethernet card. '''
  
 
|-
 
|-
Line 463: Line 456:
 
| style="border:1pt solid #000000;padding:0.176cm;"| Type '''exit '''and press''' Enter.'''
 
| style="border:1pt solid #000000;padding:0.176cm;"| Type '''exit '''and press''' Enter.'''
  
You can see the command prompt changed to '''regular''' user.
+
You can see the '''command prompt''' changed to regular''' user'''.
  
 
|-
 
|-
Line 469: Line 462:
  
 
Press '''Enter'''
 
Press '''Enter'''
| style="border:1pt solid #000000;padding:0.176cm;"| To go back to '''user''' '''login''',
+
| style="border:1pt solid #000000;padding:0.176cm;"| To go back to '''user login''', type '''exit''' and press '''Enter'''.
 
+
Type '''exit''' and press '''Enter'''.
+
  
 
|-
 
|-
Line 481: Line 472:
 
* Install the '''kernel header files.'''
 
* Install the '''kernel header files.'''
 
* See the '''kernel''' version.
 
* See the '''kernel''' version.
* Use linux '''kernel''' command.
+
* Use '''Linux kernel command'''.
  
 
| style="border:1pt solid #000000;padding:0.176cm;"| In this tutorial, we learnt to
 
| style="border:1pt solid #000000;padding:0.176cm;"| In this tutorial, we learnt to
Line 488: Line 479:
 
* install the '''kernel header files.'''
 
* install the '''kernel header files.'''
 
* Check the installed '''kernel '''version.
 
* Check the installed '''kernel '''version.
* Use linux '''kernel''' command.
+
* Use '''Linux kernel command'''.
  
 
|-
 
|-
Line 495: Line 486:
 
# Type the below commands and see the output:
 
# Type the below commands and see the output:
  
> ls -l /dev/tty2
+
* ls -l /dev/tty2
  
> ls -l /dev/sda2  
+
* ls -l /dev/sda2  
  
| style="border:1pt solid #000000;padding:0.176cm;"| As an assignment,
+
| style="border:1pt solid #000000;padding:0.176cm;"| As an assignment, type the below '''commands''' and see the output:
  
# Type the below commands and see the output:
+
* '''ls -l /dev/tty2'''
 
+
> ls -l /dev/tty2
+
  
> ls -l /dev/sda2  
+
* '''ls -l /dev/sda2'''
  
 
|-
 
|-
Line 511: Line 500:
  
 
About Spoken Tutorial Project:
 
About Spoken Tutorial Project:
| style="border:1pt solid #000000;padding:0.176cm;"| * The video at the following link summarizes the Spoken Tutorial project.
+
| style="border:1pt solid #000000;padding:0.176cm;"|  
 +
* The video at the following link summarizes the Spoken Tutorial project.
 
* Please download and watch it.
 
* Please download and watch it.
 
|-
 
|-
Line 518: Line 508:
 
Spoken Tutorial workshops:
 
Spoken Tutorial workshops:
  
| style="border:1pt solid #000000;padding:0.176cm;"| The''' Spoken Tutorial Project''' Team:
+
| style="border:1pt solid #000000;padding:0.176cm;"| The''' Spoken Tutorial Project''' Team conducts workshops and gives certificates.
 
+
* conducts workshops and
+
* gives certificates.
+
  
 
For more details, please write to us.
 
For more details, please write to us.
Line 531: Line 518:
 
Forum questions:
 
Forum questions:
  
| style="border:1pt solid #000000;padding:0.176cm;"| * Do you have questions in THIS Spoken Tutorial?
+
| style="border:1pt solid #000000;padding:0.176cm;"|  
* Please visit this site
+
* Do you have questions in THIS Spoken Tutorial?
 +
* Please visit this site.
 
* Choose the minute and second where you have the question.
 
* Choose the minute and second where you have the question.
 
* Explain your question briefly.
 
* Explain your question briefly.
* The Spoken Tutorial project will ensure an answer
+
* The Spoken Tutorial project will ensure an answer.
* You will have to register to ask questions
+
* You will have to register to ask questions.
  
 
|-
 
|-
Line 543: Line 531:
 
Forum for specific questions:
 
Forum for specific questions:
  
| style="border:1pt solid #000000;padding:0.176cm;"| * The Spoken Tutorial forum is for specific questions on this tutorial.
+
| style="border:1pt solid #000000;padding:0.176cm;"|  
 +
* The Spoken Tutorial forum is for specific questions on this tutorial.
 
* Please do not post unrelated and general questions on them.
 
* Please do not post unrelated and general questions on them.
 
* This will help reduce the clutter.
 
* This will help reduce the clutter.
Line 552: Line 541:
  
 
Forum for specific questions:
 
Forum for specific questions:
| style="border:1pt solid #000000;padding:0.176cm;"| * Do you have general/technical questions on Embedded Linux Device Driver?
+
| style="border:1pt solid #000000;padding:0.176cm;"|  
* Please visit the FOSSEE forum and post your question.
+
* Do you have general/technical questions on '''Embedded Linux Device Driver'''?
 +
* Please visit the '''FOSSEE forum''' and post your question.
  
 
|-
 
|-
Line 559: Line 549:
  
 
Acknowledgment:
 
Acknowledgment:
| style="border:1pt solid #000000;padding:0.176cm;"| * Spoken Tutorial Project is supported by MHRD, Government of India.
+
| style="border:1pt solid #000000;padding:0.176cm;"| Spoken Tutorial Project is supported by MHRD, Government of India.
  
 
|-
 
|-

Revision as of 17:29, 14 February 2020

Visual cue Narration
Slide 1:

Welcome slide:

Welcome to the spoken tutorial on Installation of Linux kernel packages.
Slide 2:

Learning objectives:

  • Install the gcc compiler.
  • Install the kernel header files.
  • Check the installed kernel version.
  • Use Linux kernel commands
In this tutorial, we will learn how to
  • Install the gcc compiler.
  • Install the kernel header files.
  • Check the installed kernel version.
  • Use Linux kernel commands
Slide 3:

System Requirements:

  • VirtualBox version 5.2
  • Ubuntu Linux 18.04 LTS operating system.
  • Linux kernel version 5.0.0-31 generic.
To record this tutorial, I am using,
  • VirtualBox version 5.2
  • Ubuntu Linux 18.04 LTS operating system.
  • Linux kernel version 5.0.0-31 generic.
Slide 4:

Prerequisites:

To follow this tutorial, you should be familiar with

  • C programming language and
  • Basics of Linux kernel
To follow this tutorial, you should be familiar with
  • C programming language and
  • Basics of Linux kernel
Slide 5:

VirtualBox Installation

  • Do the Virtual box installation as per your system OS
  • Go through the Ubuntu Linux on VirtualBox series in this website.
  • Do the VirtualBox installation as per your system OS.
Click on ubuntu_18.04_LTS

Type the password

Start your Ubuntu 18.04 LTS virtual system.

Type the system password to login.

Press Alt+Ctrl+T

Type gcc -version

Press Enter

Highlight Command ‘gcc’ not found.

Open the terminal by pressing Alt+Ctrl+T keys simultaneously.

We require the gcc compiler to compile the kernel’s module.

Let us check whether the gcc compiler is installed or not.

Type gcc space hyphen hyphen version and press Enter.

As it is not installed, you will see an error as shown here.

Otherwise you will see the gcc version that has been installed.

Type >> clear


Press Enter

Clear the screen.
Type sudo apt update

Press Enter

Type the password 2.23

Press Enter

Let us install the gcc compiler.

Type sudo space apt space update and press Enter.

Type the administrative password if prompted.

This command will update the Ubuntu's default repositories.

Type sudo apt install build-essential

Highlight the command

Press Enter

Next, type sudo space apt space install space build hyphen essential.

This package is used to install GCC/g++ compilers, libraries and utilities such as make.

Press Enter.

Show the output.

Type y

Press Enter

We can see the installation process has begun.

Press 'Y' whenever there is a prompt during installation to confirm the configuration.

And press Enter.

Now the installation of gcc compiler is completed.

Type clear

Press Enter

Clear the screen.
Type >> gcc --version

Press Enter

Highlight 7.4.0

Let us check the version of installed gcc compiler.

Type gcc space hyphen hyphen version and press Enter.

Here, you can see the installed gcc compiler version.

Type clear

Press Enter

Clear the screen
Type uname -r

Press Enter.

Highlight 5.0.0-27-generic

Highlight 5

Highlight 0

Highlight 0

Highlight -31

Highlight generic

Let us now check the kernel version of the system.

Type uname space hyphen r and press Enter.

Here, you can see the kernel version of the system.

Five indicates the kernel version.

Zero indicates the kernel major revision.

Zero indicates the kernel minor revision.

Thirty one indicates the number of fixed bugs.

generic means general usage kernel.

It is used for desktop installation.

You may get a different version depending upon your Linux OS.

Type clear

Press Enter

Clear the screen.
Type sudo su

Press Enter

Type password

Press Enter

Highlight the prompt

Type sudo su.

su command stands for superuser or root user.

Linux allows only the superuser to run some commands.

Press Enter.

If asked for the password, type the system password and press Enter.

We can see the command prompt changed to root user.

Type >> apt install linux-headers-$(uname -r)

Press Enter

To compile the Linux device driver, we need to have kernel header files installed in the system.

Let us install the kernel header files.

Type apt space install space linux hyphen headers hyphen dolar in brackets uname hyphen r.

And press Enter

Point to linux-headers

Highlight 0-upgraded

Highlight 0-newly installed

The files are already installed on the system.

So, you can see the output as-

linux-headers-5.0.0-31-generic is already the newest version zero upgraded, zero newly installed.

Type >> clear

Press Enter

Clear the screen.
Type >> dpkg-query -s linux-headers-$(uname -r)

Press Enter

Let us see the details of the kernel headers.

Type dpkg hyphen query space hyphen s space linux hyphen headers hyphen dollar in brackets uname space hyphen r.

And press Enter.

Highlight package

Highlight status

Highlight Installed-size

This field shows the package of header files.

The status field indicates that the header files are installed or not.

The Installed-size field contains the size of installed kernel header files in bytes.

Highlight Architecture

Highlight version

This field shows the architecture of our system.

The version field shows the version of the header files.

Type uname -r

Press Enter

As already learnt, to see the kernel version, type uname space hyphen r.

And press Enter.

Highlight version

Highlight 5.0.0-27-generic

Highlight version: 5.0.0-27

Here, you can see that the kernel header files version and the kernel version are the same.

Make sure that both versions are the same in your system.

Type >> clear

Press Enter

Clear the screen.
Type >> lsmod.

Press Enter

Show the output

Highlight lsmod

Let us see the command that shows the kernel’s modules.

Type lsmod and press Enter.

This command shows the modules currently loaded in the kernel.

These modules extend the kernel’s functionality.

Type clear

Press Enter

Clear the screen
Type >> ls -l /dev

press Enter

Show the output

Highlight /dev

Type ls space hyphen l space slash dev and press Enter.

This command displays the list of files located under the dev directory.

All the devices are located in the dev directory.

Highlight c

Highlight b

Highlight oct 16 08:47

c indicates that it is a character device.

And block devices are indicated by b.

The last two entries shows the last modification date and time of a file.

Type clear

Press Enter

Clear the screen
Type >> ls -l/dev/tty

Press Enter

Highlight tty

Point to root, tty

Highlight rw-rw-rw-

Type ls space hyphen l space slash dev slash tty and press Enter.

The tty is a character device for the first uart serial port.

Here, the owner is root, and the group is tty.

It indicates that the owner, the group and the others have read and write permissions.

Another example of a character device is a keyboard device.

Type >> ls -l /dev/sda

Press Enter

Highlight b

Point to root, disk

Highlight rw-rw-

Type ls space hyphen l space slash dev slash sda and press Enter.

It is a block device indicated by b.

All mass storage devices such as sda are block devices.

Here, the owner is root, and the group is disk

It indicates that the owner and the group have read and write permissions.

These devices support random access.

Type clear

Press Enter

Clear the screen.
Type >> ls -l /sys/class/net

Press Enter

Show the output

Type ls space hyphen l space slash sys slash class slash net and press Enter.

Here, you can see the list of network devices located in this directory.

Highlight output Network devices are also known as packet devices.

Network devices simply transmit or receive the packets.

This is normally a physical device like ethernet card.

Type clear

Press Enter

Clear the screen.
Type >> exit

Press Enter

Type exit and press Enter.

You can see the command prompt changed to regular user.

Type >> exit

Press Enter

To go back to user login, type exit and press Enter.
Slide 6:

Summary:

  • Install the gcc compiler.
  • Install the kernel header files.
  • See the kernel version.
  • Use Linux kernel command.
In this tutorial, we learnt to
  • install the gcc compiler.
  • install the kernel header files.
  • Check the installed kernel version.
  • Use Linux kernel command.
Assignment:
  1. Type the below commands and see the output:
  • ls -l /dev/tty2
  • ls -l /dev/sda2
As an assignment, type the below commands and see the output:
  • ls -l /dev/tty2
  • ls -l /dev/sda2
Slide 7:

About Spoken Tutorial Project:

  • The video at the following link summarizes the Spoken Tutorial project.
  • Please download and watch it.
Slide 8:

Spoken Tutorial workshops:

The Spoken Tutorial Project Team conducts workshops and gives certificates.

For more details, please write to us.

Slide 9:


Forum questions:

  • Do you have questions in THIS Spoken Tutorial?
  • Please visit this site.
  • Choose the minute and second where you have the question.
  • Explain your question briefly.
  • The Spoken Tutorial project will ensure an answer.
  • You will have to register to ask questions.
Slide 10:

Forum for specific questions:

  • The Spoken Tutorial forum is for specific questions on this tutorial.
  • Please do not post unrelated and general questions on them.
  • This will help reduce the clutter.
  • With less clutter, we can use these discussions as instructional material.
Slide 11:

Forum for specific questions:

  • Do you have general/technical questions on Embedded Linux Device Driver?
  • Please visit the FOSSEE forum and post your question.
Slide 12:

Acknowledgment:

Spoken Tutorial Project is supported by MHRD, Government of India.
Slide 13:

Thank you slide:

This tutorial has been contributed by FOSSEE and Spoken Tutorial Project, IIT Bombay.

This is Mayuri Panchakshari signing off.

Thanks for watching.

Contributors and Content Editors

Nancyvarkey, Nirmala Venkat