mirror of
https://github.com/lm-sensors/lm-sensors
synced 2025-09-06 17:25:22 +00:00
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@1319 7894878c-1315-0410-8ee3-d5d059ff63e0
83 lines
3.3 KiB
Plaintext
83 lines
3.3 KiB
Plaintext
This file documents how the `mkpatch' program works.
|
|
------------------------------------------------------------
|
|
|
|
QUICKSTART
|
|
----------
|
|
mkpatch/mkpatch.pl . /usr/src/linux > /tmp/patch
|
|
cd /usr/src/linux
|
|
patch -p1 < /tmp/patch
|
|
|
|
|
|
USAGE
|
|
-----
|
|
|
|
mkpatch compares the newest lm_sensors sources with what is found in a kernel,
|
|
and generates a set of diffs. These diffs can be applied to that kernel,
|
|
after which the kernel is synchronized with the current lm_sensors sources.
|
|
|
|
You should generally run mkpatch against a kernel tree that has been patched
|
|
with the newest I2C sources. Check the lm_sensors "Download" page for
|
|
information on dependencies between lm_sensors and i2c versions.
|
|
|
|
mkpatch needs two arguments. The first is the root of the lm_sensors package,
|
|
the second is the root of Linux kernel tree. For example:
|
|
cd /tmp/lm_sensors-2.4.0
|
|
mkpatch/mkpatch . /usr/src/linux
|
|
|
|
The patch file is written to stdout; any errors are written to stderr.
|
|
So you will want to capture the output:
|
|
mkpatch/mkpatch . /usr/src/linux > /tmp/lm_sensors-diffs
|
|
|
|
Later on, you will want to apply the diffs:
|
|
cd /usr/src/linux
|
|
patch -p1 -E < /tmp/lm_sensors-diffs
|
|
|
|
Of course, this can be combined:
|
|
mkpatch/mkpatch . /usr/src/linux | patch -d /usr/src/linux -p1 -E
|
|
|
|
|
|
IMPLEMENTATION DETAILS
|
|
----------------------
|
|
|
|
mkpatch uses several files in the mkpatch subdirectory. The location of
|
|
these files is hardcoded in the program, but all other files used are
|
|
specified in these files, and can easily be changed. Used files are:
|
|
FILES
|
|
A list of files that will be considered by mkpatch. Each line contains
|
|
two filenames, separated by whitespace. The first is the name and
|
|
location (relative to the lm_sensors package root) of the lm_sensors
|
|
file, the second is the name and location (relative to the kernel root) of
|
|
the kernel file. A diff will be created between these two files.
|
|
INCLUDES
|
|
A list of include file changes. Each line contains two strings that
|
|
can be found after a `#include' statement. All occurences of the
|
|
first string will be changed to the second, for all lm_sensors files in
|
|
FILES, before the normal diff is generated. This allow us to use
|
|
`#include "sensors.h"' when compiling in the package tree, and
|
|
`#include <linux/sensors.h>' in the kernel tree.
|
|
Makefile, Config.in
|
|
These files are new and will be copied to the appropriate place as
|
|
specified in FILES.
|
|
|
|
mkpatch does several things:
|
|
* For each file pair as specified in FILES, it creates a diff between
|
|
them, but before that is done, it changes `#include' lines in the
|
|
lm_sensors file as specified in INCLUDES
|
|
* It handles several special files, that have to be scanned explicitely
|
|
to generate diffs to for them
|
|
|
|
The generated diffs have specific headers. It will seem as if the old
|
|
kernel was contained in the `linux-old' directory, and the new patched
|
|
kernel in the `linux' directory, regardless of where the kernel was
|
|
actually located.
|
|
|
|
Most intricate are the special files that are handled. These special
|
|
files were already present in the kernel, but had to be patched. Because
|
|
they can change between kernel versions, I had to scan them by hand to
|
|
find where the new code should be inserted. Each file has documented
|
|
what actually happens.
|
|
|
|
|
|
------------
|
|
This file is Copyright (c) 1999 by Frodo Looijaard
|