Subject: Kernel Driver Programming Course, The Hague Hi All, For quite some time now I've had this plan to teach a course in kernel driver programming to interested hackers, and now is as good a time as any to actually make this happen. The plan is to get together for a kernel driver progamming workshop at revspace on Sunday once every 2 weeks, from 12:00 - 18:00. After which we can organize an optional meal together. I intend this to be a "learning by doing" experience, I've made a list of projects people can work on during these workshops here: https://revspace.nl/KernelDriverProjects These are mostly projects related to Linux support for ARM boards, as this is an area in which there still is a lot to do, and I've the necessary hardware for these projects, which I can lend out as necessary. People are free to also define there own projects. Participants are expected to have a basic working knowledge of C and the Linux commandline. To give a better idea of what I've in mind I've already created a rough plan for the first 2 Sundays: Day 1: ARM boards, unlike x86 systems often do not have any way for the operating system to discover which hardware is present in a system. This means that the bootloader (u-boot) and the OS need to be explictly told what hardware is present, and at which addresses, irqs, etc. u-boot uses a board configuration file for this, and the kernel uses a text file called a devicetree for this. The day will start with an introduction on devicetree files, followed by the participant getting an ARM board and building a devicetree binary file for their board from the devicetree source, and then booting their board with their own devicetree binary. There will be an instruction manual for this part. The plan is to use ARM boards for which a driver for some component has recently been written, but not yet enabled in devicetree, the next step will be for the participants to modify the devicetree file for their board and e.g. get sound output going. There will also be some boards for which no devicetree file exists yet and one will to be created from scratch for those who want something a bit more challenging. Depending on how long the above takes we may also look into u-boot board configuration files. Day 2: A lot of the peripherals in the projects list from: https://revspace.nl/KernelDriverProjects Are connected via i2c, so this day we will look into i2c. How to add an i2c device to devicetree, what does an i2c driver in the kernel look like, what does an i2c (human) input driver look like? The end goal of the day is to get participants working on missing Linux drivers for i2c touchscreens, i2c accelerometers, and various functions (gpio, regulators) of i2c pmic devices. Note this is a rough idea of what I've in mind, nothing is set in stone, things can be adapted as necessary and this will also stronly depend on what the participants want. Dutch or English? Any "teaching materials" developed will be in English. The language during the day will be Dutch and/or English depending on the circumstances. If you're interesting in participating please reply to this mail, if you've any specific projects in mind please say so, also please let me know what the first Sunday is you can participate. Regards, Hans