KernelNewbies:

These tasks are for you to get familiar with the IIO subsystem. You do not need to claim these via the Outreachy tasks page. For IIO related questions you can join #linux-iio IRC channel (server irc.oftc.net).

Please email your solutions to amsfield22 at gmail dot com and daniel.baluta at gmail dot com. Your email should have the subject Task XX: Short task description

Experimenting with IIO subsystem

For this we will use two kernel modules found in drivers/iio/dummy:

Dummy modules compilation

You need to select the following config options:

Use the following commands for modules compilation:

Use the following commands for module loading:

Use the following command to create your dummy device under the configfs filesystem:

Task 01:

Task 02:

IIO event monitor

IIO event monitor is an user space example application which reads events from IIO layer and pretty prints the results. Implementation can be found in iio_event_monitor.c under tools/iio/. BR

Task 03:

Compile iio_event_monitor:

Task 04:

Read events using iio_event_monitor

Generic buffer

Task 05:

Create triggers using configfs interface.

Task 06:

Read samples from buffer generated by the iio_dummy module.

Coding Tasks

Note for all IIO Coding Tasks:

Task 1: Replace IIO_DEV_ATTR_* with IIO_CHAN_INFO_*

As the IIO subsystem evolves, attributes that were once privately defined become standard and hence a special global define is used. This kind of evolution means we can update existing drivers to use the new defines.

Review this recently submitted patch:

http://git.kernel.org/cgit/linux/kernel/git/jic23/iio.git/commit/?h=testing&id=e0f3fc9b47e61bb5d79f2bb8684d80eee5aaac99

Note that aside from looking at the patch itself, you can find the email chatter about it in the linux-iio mailing list.

Find a driver in the IIO staging directory that has one or more IIO_DEV_ATTR* that can be updated to IIO_CHAN_INFO* attributes.

Note:

Task 2: Use sparse for endianess verification

With this task you will learn about the endianness conversions.

See article here https://lwn.net/Articles/205624/ and here: https://kernelnewbies.org/EndianIssues

Use the following commands to check for endianness warnings in IIO code:

KernelNewbies: IIO_tasks (last edited 2016-09-22 16:35:14 by or-67-232-77-201)