peek into linux_device_driver_kit

19
A peek into Linux Device Driver Kit OSI Days – 2014 November 7 & 8, NIMHANS, Bengaluru

Upload: emertxe-information-technologies-pvt-ltd

Post on 03-Jul-2015

304 views

Category:

Technology


1 download

DESCRIPTION

Emertxe's presentation in Open Source India 2014 about an innovative self-learning kit we have created. Linux device drivers is often perceived as a difficult topic, that prevents students, enthusiasts and professionals from learning it. This presentation talks about various features (Board, SDK and sample code) of the kit.

TRANSCRIPT

Page 1: Peek into linux_device_driver_kit

A peek into Linux Device Driver Kit

OSI Days – 2014

November 7 & 8, NIMHANS, Bengaluru

Page 2: Peek into linux_device_driver_kit

Topics

Brief Introduction

Motivation & Challenges

Overview of the kit

Areas to explore

Conclusion

Page 3: Peek into linux_device_driver_kit

Brief Introduction

Page 4: Peek into linux_device_driver_kit

About Us Emertxe is India’s one of the top IT finishing schools & self learning kits

provider. Our primary focus is on Embedded with diversification focus on IT

applications.

Our IT finishing school providers training programs for corporate,

professionals and students in the following areas:

o Embedded Systems (Beginners)

o Advanced Linux workshops (Professionals)

o IT Applications (Java, Android, Oracle)

Our product division works on IoT based solutions with major focus in

Embedded aspect by focusing on the following areas:

o Hardware design

o Product engineering, integration and solutions

o Linux porting and tuning

o Embedded application development

Page 5: Peek into linux_device_driver_kit

Our visionTw

o f

old

“Vis

ion”

EducationContribute to “industry-

academia” gap

SolutionsBuild solutions to solve “common-problems”

“M

ake lif

e e

asi

er”

Page 6: Peek into linux_device_driver_kit

Motivation & Challenges

Page 7: Peek into linux_device_driver_kit

Motivation

Diverse Hardware

(Customisations, Multiple-vendor, Optimisation)

Lack of resources

(Formal courses, documentation, support)

Setup and installation

(SDKs, tool-chain, configuration)

Too geeky!

(Fear of getting bullied)

Page 8: Peek into linux_device_driver_kit

Practical challenges

Hard to learn

(Professionals, Enthusiasts, Students)

No special devices

(Most of them are fits-for-all)

Enriched learning

(Character, Block, multi-peripherals)

Higher entry barrier

(Giving up!)

Page 9: Peek into linux_device_driver_kit

Some questions!

Which driver should I work on to begin with?

Can I see some sample drivers?

I do not have specific hardware, where I can find one?

Can I write char, block drivers. What about interrupts?

I would like to implement USB, SCSI, Serial and Audio drivers. How to?

Well a lot of can's, but we have something for you!

Page 10: Peek into linux_device_driver_kit

Overview of LDD Kit

Page 11: Peek into linux_device_driver_kit

Overview of LDD kit

• Dedicated board

• Rich peripheral support

• On-board DFU interface for upgrading

• Can act as a normal MC device as well

Hardware

• Currently supports Ubuntu distributions

• Completely based on Open source

• Firmware stack based on LUFA

• AVR-GCC compiler

SDK

• Well documented setup & quick start guide

• Sample device driver code

• Test harness for validation and debugging

Get “hands-dirty”

Page 12: Peek into linux_device_driver_kit

How it looks?

Page 13: Peek into linux_device_driver_kit

Hardware specifications

Atmel AT90USB162

2×16 Character LCD

RS232

8 LEDs

4 User Inputs

4 Seven Segment

Displays

Page 14: Peek into linux_device_driver_kit

Hardware specifications

USB Powered

Audio Output Interface

SD (MMC) Card Support

(Using SPI Interface)

8 GPIO Header

DFU Programmable (on-

board)

Page 15: Peek into linux_device_driver_kit

Block diagram

USB Host Controller

Host Controller

Driver

USB Core

Device Driver-2

System Call

Interface

User Application

Kernel

LDD kit

Users

Device Driver-1 Device Driver-3

Page 16: Peek into linux_device_driver_kit

What you can create?

RS232 interface (i/p and o/p)

Interrupt handling (switches)

I/O control

Timers (LED control)

Synchronization mechanisms

SD/MMC Card driver

SCSI Implementation

USB Protocol

SCSI over USB

Simple drivers for LED, SSD, LCD

USB to Serial converter

Mass storage driver

USB Audio

Input drivers

Chara

cte

r

Blo

ck

USB

Page 17: Peek into linux_device_driver_kit

Summary

Learning Linux device driver development is challenging

Our LDD kit tries to solve challenges by:

Having a dedicated hardware with very rich in peripherals

Larger problem of software is resolved by well documented &

supported SDK

Having sample source code & self-learning stuff

By having whole ecosystem built with open source

With this we believe:

To make the learning easier

Contribute and make a difference to students, professionals and

enthusiasts

Provide practical real-time learning experience

Page 18: Peek into linux_device_driver_kit

Stay connected

Mubeen Jukaku: [email protected]

Emertxe Information Technologies,

No-1, 9th Cross, 5th Main,

Jayamahal Extension,

Bangalore, Karnataka 560046

T: +91 80 6562 9666

https://www.facebook.com/Emertxe https://twitter.com/EmertxeTweet https://www.slideshare.net/EmertxeSlides

Page 19: Peek into linux_device_driver_kit

THANK YOU