Tuesday, March 22, 2016

Mentoring Eudyptula Challenge - 1

This post and coming is intended to help of getting things easier on Kernel challenges, The Eudyptula Challenge.

But it will not give you the total solution, [however, you can find those by googling] but will try to help you how you can understand the problems and get the things easier.

Well now - the Eudyptula challenge is a list of tasks to learn linux kernel, its structure and development processes. Mainly its a bot, supplying and evaluating your tasks.

The first requirement to participate the challenge is to learn emailing as plain-text. Those who are well known of using sendmail from command line do know it by heart. But for modern young guys - you better use thunderbird, and set its settings as unchecked Compose message as HTML format.

On other hand, if you are using gmail on web by selecting Plain Text Mode while composing your email would give you same benefit.

Once you join-in, you'll receive your first task, there are some instructions, how to send you solutions and others - as plain english, I presume you can get those even while sleeping.

The first task is, writing a hello world kernel module. If you don't know what is kernel module, you can google, and have a initial read from http://linux.die.net/lkmpg/x40.html.

Well now, you need to write a hello_world kernel module and a Makefile to compile the kernel module.

The main trick for this task is, printing message as DEBUG log level. Check http://elinux.org/Debugging_by_printing for details on kernel logging.

Another trick is building Makefile as standalone.
Most of the example on web you'll find for hello_world kernel module, the Makefile is set as one line compile instruction. However Little Penguin wants a dynamic way, so it can be used in other system.

Which means, you need to set predefined variable for your kernel header path and compile the program pointing the variable.

That's it. Now collect the kernel log, grab the compile output from terminal, show the module_name, major or minor number and send 3 files.

1. the hello_world.c
2. Makefile
3. kernel.log [ that will show what you wrote within printk (DEBUG KERNEL ... )

No comments:

Post a Comment