Skip to main content

A simple tool for creating DPMKs.

Project description

dpmkit

A simple tool for creating DPMKs.

Usage

First of all, you will need to find the downstream kernel. If you don't have the source tree, this tool is useless.

Once you find the source tree, download it with dpmkit (replace the URL here with the one for your source tree):

python3 -m dpmkit fetch-downstream https://github.com/lowendlibre/mt8168-linux-merged/archive/refs/tags/4.14.186-20230124.tar.gz

Once you fetch the downstream kernel, dpmkit will suggest a command to download the matching mainline version (referred to as oldmainline), which you will need to run.

Then, download the latest mainline version:

python3 -m dpmkit fetch-mainline https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.4.3.tar.xz

Once you have downloaded all of the kernels needed, you can then create the patch:

python3 -m dpmkit patch

And finally, to apply the patch to mainline:

python3 -m dpmkit apply

You will quickly notice a lot of changes that can't be applied. You will need to fix those manually.

What is a DPMK?

A downstream patched mainline kernel, or DPMK, is a mainline kernel that has downstream vendor patches applied to it.

Why should I use a DPMK?

Normally, you shouldn't. If your device has good enough mainline support, you should just use the mainline kernel.

However, for devices which use an outdated kernel version for their downstream branch and do not have proper mainline support, creating a DPMK would be the easiest way to get the latest security updates.

DPMKs are also a useful starting point for mainlining.

Why don't you just use git to merge the kernel branches?

Device vendors rarely publish their git branches, so this quickly becomes a painful task since you have to create commits with the correct parent commit to avoid conflicts.

On the other hand, dpmkit is specifically designed for this task.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dpmkit-0.0.1.tar.gz (41.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dpmkit-0.0.1-py3-none-any.whl (30.6 kB view details)

Uploaded Python 3

File details

Details for the file dpmkit-0.0.1.tar.gz.

File metadata

  • Download URL: dpmkit-0.0.1.tar.gz
  • Upload date:
  • Size: 41.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for dpmkit-0.0.1.tar.gz
Algorithm Hash digest
SHA256 3f470970f4667a27c6037522e31160f274b2f7d8f15bdbceec5dd5df677f99f3
MD5 a975a96fc00fab884bc092d5b0ed2e9a
BLAKE2b-256 dc5181e28c7c52cfb322badc507b77661ed98f02707a2bd86a75f9316474c502

See more details on using hashes here.

File details

Details for the file dpmkit-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: dpmkit-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 30.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for dpmkit-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a47d4a47d67817a9518b115c12a39616081e0e6345293fce3ac7c3a665c7570f
MD5 4651927543828413e31c01f428689681
BLAKE2b-256 962c4289cd44a369f97456118e00cb8ea5ab96276a9f09dbe11083ae395038f1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page