How do i get started?
Peter Teoh
htmldeveloper at gmail.com
Sun Mar 16 08:27:35 UTC 2008
Thank you very much...thank you for the comments....I will do a little
bit of each when the opportunities comes....yes, i think there are
lots of things to do, but assuming i will live only till tomorrow....i
will choose to do those deemed most crucial ones :-). some of the
ideas below are new to me, thanks!
On Sun, Mar 16, 2008 at 11:14 AM, Jesper Juhl <jesper.juhl at gmail.com> wrote:
> On 15/03/2008, Travis Athougies <iammisc at gmail.com> wrote:
> > Just wanted to know how I should get started.
>
> There are lots of ways to contribute. All depend on how much effort
> you are willing to put towards it and what your skill level (and area)
> is.
>
> A few suggestions;
>
> Take a look at the Kernel Janitors TODO list:
> http://kernelnewbies.org/KernelJanitors/Todo
> There are many good tasks on that list that need doing. Some easy,
> some hard. You should be able to find something that matches what you
> are able to do.
>
> Sign up for the Coverity scan results for the Linux Kernel. See
> http://scan.coverity.com/devfaq.html#account
> The static analysis of the Linux Kernel that Coverity does locates
> many interresting bugs. Fixing them requires various levels of skill
> and knowledge of the kernel code in question, but you are bound to
> find some that you are able to fix.
>
> Do some 'randconfig' builds of the kernel and try to fix the warnings
> and errors that result.
> Here's the script I personally use to run a bunch of randconfig builds
> (and save the .config and output so it is easy to re-create a given
> config) :
>
> #!/bin/bash
> for i in $(seq ${1} ${2}); do
> echo "Running distclean"
> make distclean > /dev/null 2>&1
> while true; do
> echo "Running randconfig"
> make randconfig > /dev/null 2>&1
> grep -q "CONFIG_EXPERIMENTAL=y" .config
> if [ $? -eq 0 ]; then
> echo "Whoops, this turned out to be an
> experimental config - skipping"
> continue
> fi
> grep -q "CONFIG_BROKEN_ON_SMP=y" .config
> if [ $? -eq 0 ]; then
> echo "Whoops, this turned out to be a broken
> on smp config - skipping"
> continue
> fi
> echo "Config looks good to build"
> break
> done
> echo "Config OK to build, saving a copy of the config as config.${i}"
> cp .config config.${i}
> echo "Running make. Saving output in build.log.${i}"
> nice make -j 3 > build.log.${i} 2>&1
> echo "Build ${i} done."
> sleep 3
> done
>
> Read 'Documentation/feature-removal-schedule.txt' and look for stuff
> that's long overdue. Then submit patches to fix whatever the issue is.
>
> Run the kernel source through the 'sparse' tool (see
> .Documentation/sparse.txt). Fix any issues you encounter.
>
> Read through documentation and config help messages. Fix spelling
> errors, incorrect links to files, incorrect information etc.
>
> Think of common and easy to fix coding mistakes. Write scripts to find
> them. Then fix them.
> For example, many of my recent patches to clean up duplicate includes
> were based on a simple script that would grep all source files for
> lines starting with "#include", sort them and 'uniq -c' them, then I'd
> look through the result and remove any duplicates that were just
> unneeded. Another example would be my patches that simplified pointer
> derefs. I wrote a small script to detect multiple occurences of stuff
> like foo->bar->baz in a file, then I'd write patches that changed that
> into a single foobar = foo->bar->baz; then used 'foobar' for the
> remaining locations. Yet another example would be a script I wrote
> that found locations where we did something like "if (pointer)" or "if
> (pointer != NULL)" etc, followed by a call to kfree/kvfree of
> 'pointer' - that's pointless since kfree/kvfree already do a null
> check, so I'd then submit patches to clean out the redundant test.
> There are lots of oppertunities for writing simple "find a minor
> problem" scripts like that and cleaning something up.
>
> Try building the kernel on various platforms, with various compilers
> (including non-gcc compilers). That often finds new and interresting
> problem spots. Some platform/compiler combinations spot problems that
> the common ones do not.
>
> There are lots of ways to get started contributing to the kernel. You
> just need to dive in :-)
>
> --
> Jesper Juhl <jesper.juhl at gmail.com>
> Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html
> Plain text mails only, please http://www.expita.com/nomime.html
>
>
> _______________________________________________
> devel mailing list
> devel at linuxdriverproject.org
> http://driverdev.linuxdriverproject.org/mailman/listinfo/devel
>
--
Regards,
Peter Teoh
More information about the devel
mailing list