summaryrefslogtreecommitdiffstats
path: root/wiki/Config-brainstorming.mediawiki
diff options
Diffstat (limited to 'wiki/Config-brainstorming.mediawiki')
-rw-r--r--wiki/Config-brainstorming.mediawiki110
1 files changed, 0 insertions, 110 deletions
diff --git a/wiki/Config-brainstorming.mediawiki b/wiki/Config-brainstorming.mediawiki
deleted file mode 100644
index 6709ec8..0000000
--- a/wiki/Config-brainstorming.mediawiki
+++ /dev/null
@@ -1,110 +0,0 @@
----
-title: Config-brainstorming
----
-
-Brainstorming for enable Kconfig on compat-drivers
-
-<h1>Step 1</h1>
-
-Using the existing kernel's config, generate a Kconfig file that contains all the right symbols for that kernel:
-
-<code>
-<pre>
-cat .config | genkconf.sh > kernel-kconfig
-</pre>
-</code>
-
-where the script is this:
-
-<code>
-<pre>
-#!/bin/bash
-
-while read line ; do
- case "${line:0:7}" in
- "CONFIG_")
- line="${line:7}"
- cfg="${line%%=*}"
- val="${line#*=}"
- cfgtype="skip"
- if [ "$val" = "m" ] ; then
- cfgtype="tristate"
- elif [ "$val" = "y" ] ; then
- cfgtype="bool"
- fi
- if [ "$cfgtype" != "skip" ] ; then
- echo "config $cfg"
- echo " $cfgtype"
- echo " default $val"
- echo ""
- fi
- ;;
- "# CONFI")
- cfg="${line:9}"
- cfg="${cfg%% is not set}"
- echo "config $cfg"
- echo " bool"
- echo " default n"
- echo ""
- ;;
- esac
-done
-</pre>
-</code>
-
-<h1>Step 2</h1>
-
-Collect all Kconfig symbols from compat:
-<code>
-<pre>
-find . -name Kconfig | xargs cat | sed 's/^config //;t;d' > symbols
-</pre>
-</code>
-
-<h1>Step 3</h1>
-
-Instead of patching Makefiles, replaces all CONFIG_ by CONFIG_COMPAT_ in all Makefiles:
-
-<code><pre>
-find . -name Makefile | xargs rpl "CONFIG_" "CONFIG_COMPAT_"
-</pre></code>
-
-This means that only things that are actually selected in compat will be built.
-
-<h1>Step 4</h1>
-
-Replace all "FOO" with "COMPAT_FOO" symbols in Kconfig and code files:
-
-<code><pre>
-for sym in $(cat symbols) ; do
- find . -name Kconfig |\
- xargs rpl -w "$sym" "COMPAT_$sym"
-
- find . -name '*.c' -o -name '*.h' |\
- xargs rpl -w "CONFIG_$sym" "CONFIG_COMPAT_$sym"
-done
-</pre></code>
-
-<h1>Step 5</h1>
-
-Build a Kconfig file:
-
-<code><pre>
-echo 'source "kernel-kconfig"' > Kconfig
-for k in drivers/net/wireless/*/Kconfig ; do echo "source \"$k\"" >> Kconfig ; done
-</pre></code>
-
-etc. Currently, mac80211/cfg80211/... Kconfig isn't copied. They will need to be copied and potentially modified for dependencies like WEXT.
-
-<h1>Step 6</h1>
-Run menuconfig:
-
-<code><pre>
-/lib/modules/$(uname -r)/build/scripts/kconfig/mconf Kconfig
-</pre></code>
-
-<h1>Step 7</h1>
-
-Build the thing.
-
-The generated .config can be parsed with either the existing compat-drivers/scripts/gen-compat-autoconf.sh script or scripts/kconfig/confdata.c (conf --silentoldconfig). The generated include/linux/compat_autoconf.h is already included as part of the build of compat-drivers. \ No newline at end of file