... ??!41Embedded Linux kernel and driver development © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comFeb 27, 2008Legal proprietary Linux drivers (1)Working around the GPL by creating a GPL wrapper:WrapperSpecial API Linux kernel Binaryblob(proprietarydriver)The proprietary blob is not broken when you recompile or update the kernel and/or driver. Hence, the proprietary driver may not be considered as a derivative work. However, the kernel is monolithic and the blob still belongs to a single executable. This is still controversial!23Embedded Linux kernel and driver development © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comFeb 27, 2008Embedded Linux driver development Kernel overview Kernel subsystems50Embedded Linux kernel and driver development © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comFeb 27, 2008Embedded Linux driver development Compiling and booting Linux Linux kernel sources29Embedded Linux kernel and driver development © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comFeb 27, 2008 Linux development and testing releasesTesting releasesSeveral testing releases per month, before the next stable one.You can contribute to making kernel releases more stable by testing them!Example: 2.6.12rc1 Development versionsUnstable versions used by kernel developersbefore making a new stable major releaseExamples: 2.3.42, 2.5.74 Odd number4Embedded Linux kernel and driver development © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comFeb 27, 2008Hyperlinks in this documentLinks to external sitesExample: http:/ /kernel. org/ Kernel source filesOur links let you view them in your browser.Example: kernel/ sched.c Kernel source code Identifiers: functions, macros, type definitions ... ??!41Embedded Linux kernel and driver development © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comFeb 27, 2008Legal proprietary Linux drivers (1)Working around the GPL by creating a GPL wrapper:WrapperSpecial API Linux kernel Binaryblob(proprietarydriver)The proprietary blob is not broken when you recompile or update the kernel and/or driver. Hence, the proprietary driver may not be considered as a derivative work. However, the kernel is monolithic and the blob still belongs to a single executable. This is still controversial!23Embedded Linux kernel and driver development © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comFeb 27, 2008Embedded Linux driver development Kernel overview Kernel subsystems50Embedded Linux kernel and driver development © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comFeb 27, 2008Embedded Linux driver development Compiling and booting Linux Linux kernel sources29Embedded Linux kernel and driver development © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comFeb 27, 2008 Linux development and testing releasesTesting releasesSeveral testing releases per month, before the next stable one.You can contribute to making kernel releases more stable by testing them!Example: 2.6.12rc1 Development versionsUnstable versions used by kernel developersbefore making a new stable major releaseExamples: 2.3.42, 2.5.74 Odd number4Embedded Linux kernel and driver development © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comFeb 27, 2008Hyperlinks in this documentLinks to external sitesExample: http:/ /kernel. org/ Kernel source filesOur links let you view them in your browser.Example: kernel/ sched.c Kernel source code Identifiers: functions, macros, type definitions ... }The GNU C compiler will make your code fasterfor the most likely case.Used in many places in kernel code!Don't forget to use these statements!1Embedded Linux kernel and driver development © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comFeb 27, 2008Embedded Linux driver development Embedded Linux kernel and driver development Thomas Petazzoni / Michael OpdenackerFree Electronshttp://freeelectrons.com/Created with OpenOffice.org 2.x34Embedded Linux kernel and driver development © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comFeb 27, 2008What's new in each Linux release? (1)The official list of changes for each Linux release is just a huge list of individual patches!Very difficult to find out the key changes and to get the global picture out of individual changes.commit...