Module Title:Embedded Linux Development
Language of Instruction:English
Credits: 5
NFQ Level:8
Module Delivered In No Programmes
Teaching & Learning Strategies: Teaching will be a blend of lectures, tutorials and practical classes.
Module Aim: To equip students with the knowledge and skills required to design, build, administer and evaluate a Linux based embedded system which is interfaced to the internet (IoT).
Learning Outcomes
On successful completion of this module the learner should be able to:
LO1 Design and build a customised Linux image which is optimized for an embedded system.
LO2 Design scripts to administer a Linux based embedded system.
LO3 Configure a system by adding or removing device drivers (modules) from the Linux kernel.
LO4 Install, configure and harden a webserver.
LO5 Plan, design and implement a system that will interface sensor(s) to the cloud. (Internet of Things (IoT) based application).
LO6 Evaluate the performance of an embedded system using specified metrics & constraints (power, speed/latency, etc.)
Pre-requisite learning
Module Recommendations

This is prior learning (or a practical skill) that is recommended before enrolment in this module.

No recommendations listed
Incompatible Modules
These are modules which have learning outcomes that are too similar to the learning outcomes of this module.
No incompatible modules listed
Co-requisite Modules
No Co-requisite modules listed
This is prior learning (or a practical skill) that is mandatory before enrolment in this module is allowed.
No requirements listed

Module Content & Assessment

Indicative Content
(a) Linux architecture
Linux architecture, embedded Linux, installing Linux & the bootloader.
(b) Linux as an Embedded OS
Advantages and limitations of Linux as an embedded operating system. Introduction to real time systems.
(c) System Administration
System administration, configuring a static IP address, superuser, adding users, Linux file system, file system commands.
(d) Security considerations
User and process permissions. System security.
(e) Processes
Foreground & background processes. I/O redirection, interprocess communication, pipes, sockets, filters, etc.
(f) Utilities
Shell commands and shell scripts.
(g) Firmware development
Programming in C using gcc, gdb, make file, etc. System call interface, introduction to writing device drivers. Loading, unloading, blocking & blacklisting device driver modules (lsmod, insmod,rmmod, etc)
(h) Hardware interfacing
Hardware interfacing - GPIO, Analog I/O, I2C, SPI, sensors, etc.
(i) Networking
Communications & Networking - SSL, SSH, Bluetooth, Ethernet & Wi-fi.
(j) Webserver configuration
Install, configure and harden a webserver (e.g. Apache).
(k) System performance profiling
Performance metrics & constraints (power, speed/latency, etc.)
(k) Mini-projects
Mini projects - which may include developing an Internet of Things (IoT) application, video streaming & audio streaming.
Assessment Breakdown%
Continuous Assessment20.00%
End of Module Formal Examination40.00%
Continuous Assessment
Assessment Type Assessment Description Outcome addressed % of total Assessment Date
Examination Students will be assigned an number of assignments and/or class tests as part of the assessment of this module. Students may be asked to complete assignments during class or as homework. 1,2,3,5,6 20.00 Week 7
No Project
Assessment Type Assessment Description Outcome addressed % of total Assessment Date
Practical/Skills Evaluation Students will complete a number of mini projects, each of which may be completed over several weeks in the laboratory. 1,2,3,4,5,6 40.00 n/a
End of Module Formal Examination
Assessment Type Assessment Description Outcome addressed % of total Assessment Date
Formal Exam A written examination, at the end of the module, will examine the extent of the student’s achievement of the learning outcomes. 1,2,3,5,6 40.00 End-of-Semester

ITCarlow reserves the right to alter the nature and timings of assessment


Module Workload

Workload: Full Time
Workload Type Frequency Average Weekly Learner Workload
Lecture Every Week 1.00
Laboratory Every Week 1.50
Independent Learning Every Week 1.00
Total Hours 3.50