(→Steps-by-step instructions) |
(wikify list) |
||
| (3 intermediate revisions not shown) | |||
| Line 18: | Line 18: | ||
Kernel workflow in OBS: kernel package in home:<yourname> => kernel package in devel:kernel => kernel package in Trunk:Testing => kernel package in Trunk. | Kernel workflow in OBS: kernel package in home:<yourname> => kernel package in devel:kernel => kernel package in Trunk:Testing => kernel package in Trunk. | ||
| - | === | + | === Step-by-step instructions === |
Steps to create a new kernel-imagchip package: | Steps to create a new kernel-imagchip package: | ||
| - | + | # Goto your home project in OBS and create a new kernel package by linking kernel package from devel:kernel | |
| - | + | # Checkout your kernel package into some directory on your host machine by executing:<pre>osc co home:<yourname> kernel</pre> | |
| - | + | # Clone the meego kernel-source package into some directory on your host machine:<pre>git clone git://gitorious.org/meego-os-base/kernel-source.git</pre> | |
| - | + | # Copy the kernel tarball (e.g. linux-2.6.35.tar.bz2) from OBS project to top directory of kernel-source git repository (created in step 3). | |
| - | + | ||
| - | We will now try to create a Imagchip specific patch set in ''kernel-source'' (since you can easily build that on your host machine and test it out on the final hardware). Switch to directory where you have cloned | + | We will now try to create a Imagchip specific patch set in ''kernel-source'' (since you can easily build that on your host machine and test it out on the final hardware). Switch to directory where you have cloned kernel-source from gitorious. |
| - | kernel-source from gitorious. | + | |
| - | + | # Create/modify the following files and add support for Imagchip package (hint: look e.g. for n900 related parts; in most cases you can just copy it and modify the "n900" string to "imagchip"). | |
| - | + | #* <code>Makefile</code> | |
| - | + | #* <code>kernel.spec.in</code> | |
| - | + | #* <code>makespec.pl</code> | |
| - | + | #* <code>config-imagchip</code> | |
| - | + | #* <code>kernel-imagchip.spec</code> | |
| - | + | #* <code>Makefile.config</code> | |
| + | #* <code>kernel.spec</code> | ||
| + | #* <code>kernel.changes</code> (add a new entry about Imagchip chipset support). | ||
| + | # Execute:<pre>make -f Makefile.config</pre>which should generate "<code>kernel-imagchip.config</pre>" | ||
| + | # Execute:<pre>./scripts/sequence-patch.sh --quilt</pre>which will apply all the patches listed in "<code>series</code>" file and create a meego kernel source tree under "<code>./tmp/linux-2.6.35-master</code>" | ||
| + | # You can now create your own patches which will introduce Imagchip chipset support (hint: quilt will be helpful). Eventually they should end up in "patches" subdirectory and "<code>series</code>" file should be modified to reflect these patches. | ||
| + | # Copy "<code>kernel-imagchip.config</code>" to top directory of expanded kernel source as "<code>.config</code>" | ||
| + | # Execute "<code>make nonint_oldconfig</code>" | ||
| - | Now you can compile and test your kernel on hardware and fine tune the "config | + | Now you can compile and test your kernel on hardware and fine tune the "<code>config-imagchip</code>" to get the desired functionality. Once you are happy with the generated kernel, its time to push all these changes to kernel package in your home project on OBS. You need to copy all the modified files + patches to directory where you did "osc co ...." in step 2. You can then execute following commands to add new files and check the overall status: "<code>osc status</code>" and "<code>osc addremove</code>". |
| - | happy with the generated kernel, its time to push all these changes to kernel package in your home project on OBS. You need to copy all the | + | |
| - | modified files + patches to directory where you did "osc co ...." in step 2. You can then execute following commands to add new files and | + | |
| - | check the overall status: "osc status" and "osc addremove". | + | |
| - | Once you are sure about everything, you can commit all the changes to the OBS server using "osc commit" and check new kernel building in your home project. | + | Once you are sure about everything, you can commit all the changes to the OBS server using "<code>osc commit</code>" and check new kernel building in your home project. |
| - | For information about pushing your patches to the "official" MeeGo kernel, see [http://meego.com/about/contribution-guidelines Contribution Guidelines], [http://meego.com/developers/hardware-enabling-process Hardware Enabling Process] (especially section ''How Do Patches Get Integrated and Accepted?'') and [http://meego.gitorious.org/meego-os-base/kernel-source/blobs/master/README.workflow Kernel workflow]. | + | For information about pushing your patches to the "official" MeeGo kernel, see [http://meego.com/about/contribution-guidelines Contribution Guidelines], [http://meego.com/developers/hardware-enabling-process Hardware Enabling Process] (especially section ''How Do Patches Get Integrated and Accepted?'') and [http://meego.gitorious.org/meego-os-base/kernel-source/blobs/master/README.workflow Kernel workflow]. For a glimpse of current patches in the MeeGo kernel, see [http://meego.gitorious.org/meego-os-base/kernel-source/trees/master/patches Kernel patches]. |
Contents |
This how-to describes steps involved in getting new chipset support to the MeeGo kernel. Below, the new chipset is assumed to come from an imaginary chipset company, Imagchip.
There is only a single kernel source package in MeeGo OBS named as kernel which generates various binaries for different hardware like N900 (kernel-n900), Netbook (kernel-netbook) and Moorestown (kernel-mrst). The aim here is to create a new kernel-imagchip binary package.
The kernel package in OBS is mirrored on MeeGo gitorious as kernel-source with some additional scripts for applying patches locally.
Normally these two (OBS package and gitorious project) are in sync but sometimes kernel-source in gitorious is behind the kernel package in OBS.
Kernel workflow in OBS: kernel package in home:<yourname> => kernel package in devel:kernel => kernel package in Trunk:Testing => kernel package in Trunk.
Steps to create a new kernel-imagchip package:
osc co home:<yourname> kernel
git clone git://gitorious.org/meego-os-base/kernel-source.git
We will now try to create a Imagchip specific patch set in kernel-source (since you can easily build that on your host machine and test it out on the final hardware). Switch to directory where you have cloned kernel-source from gitorious.
Makefile
kernel.spec.in
makespec.pl
config-imagchip
kernel-imagchip.spec
Makefile.config
kernel.spec
kernel.changes (add a new entry about Imagchip chipset support).
make -f Makefile.configwhich should generate "
kernel-imagchip.config</pre>"
./scripts/sequence-patch.sh --quiltwhich will apply all the patches listed in "<code>series" file and create a meego kernel source tree under "
./tmp/linux-2.6.35-master"
series" file should be modified to reflect these patches.
kernel-imagchip.config" to top directory of expanded kernel source as ".config"
make nonint_oldconfig"
Now you can compile and test your kernel on hardware and fine tune the "config-imagchip" to get the desired functionality. Once you are happy with the generated kernel, its time to push all these changes to kernel package in your home project on OBS. You need to copy all the modified files + patches to directory where you did "osc co ...." in step 2. You can then execute following commands to add new files and check the overall status: "osc status" and "osc addremove".
Once you are sure about everything, you can commit all the changes to the OBS server using "osc commit" and check new kernel building in your home project.
For information about pushing your patches to the "official" MeeGo kernel, see Contribution Guidelines, Hardware Enabling Process (especially section How Do Patches Get Integrated and Accepted?) and Kernel workflow. For a glimpse of current patches in the MeeGo kernel, see Kernel patches.