{ "info": { "author": "Denis Dupeyron", "author_email": "calchan@gentoo.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3.4", "Topic :: System :: Installation/Setup", "Topic :: System :: Operating System Kernels :: Linux" ], "description": "\n==============\n kernelconfig\n==============\n\nGenerate custom Linux kernel configurations from curated sources.\n\n(Note. kernelconfig is a port to python of a previously privately-only released\ntool called genconfig. The latter, before it died a horrible death at 5400rpm\nor so, had much more advanced features, but these will be re-introduced\nprogressively. Error handling is currently mostly taken care of by python, so,\nalthough it won't send you off track, error messages may look a bit cryptic at\ntimes. This too will be improved.)\n\n\nIntroduction\n============\n\nTL;DR Compiling a kernel is easy, configuring it not so much. Unless you have\nthe time and skill to follow kernel development, it is best to leave that to a\nteam of specialists. But where to download up to date configurations? What to\ndo if you need to do the same changes over and over with each new version?\nEnter kernelconfig. It will automatically download a base configuration\nmatching the kernel you want to compile from a curated source of your choice\n(Debian, Ubuntu, Fedora, Liquorix, etc...), customize it with a number of\noptions which suit your taste and needs, apply macros to set a number of\noptions in a smart way, and more.\n\nYou can do that, for example, from within the kernel sources directory::\n\n $ kernelconfig\n\nand it will automatically generate the .config file for you, using the default\nsettings (see below). No questions asked.\n\nIf you are not in the kernel sources directory and these are located in\n'/usr/src/linux-4.2'::\n\n $ kernelconfig -k /usr/src/linux-4.2\n\nIn case the curated source in your settings does not have a base configuration\nfor kernel version 4.2 but has one for version 4.1::\n\n $ kernelconfig -k /usr/src/linux-4.2 -v 4.1\n\nExpect to have to answer some questions if/when you run 'make oldconfig' before\ncompiling your kernel.\n\nFinally, if you are going to cross-compile a kernel for arm::\n\n $ kernelconfig --arch arm\n\nHere is a simple example of a settings file::\n\n [source]\n ubuntu --lowlatency\n\n [options]\n disable MODULE_SIG\n enable BLK_DEV_SD SATA_AHCI\n enable BTRFS_FS\n module EVBUG\n\nThis will automatically download a version-matching Ubuntu configuration with\nlow-latency options, disable verification of module signatures, build the SCSI\ndisk and SATA AHCI drivers into the kernel (i.e., not as modules) to be able to\nboot without an initramfs, and also build the BTRFS driver into the kernel for\nthe same reason. Finally, we make sure EVBUG is compiled as a module to only\nload it when necessary since it will pollute the system log. This will be done\nconsistently and automatically every time you will need to compile a new\nkernel. All that with the comfort of a whole team of upstream developers\nhandling the grunt work for you. As Tom and Ray Magliozzi like(d) to say:\n\"Pretty cute, huh?\"\n\nIf you are the kind of perverted individual who likes reading manuals, then\nread on. If not, get used to being mocked.\n\n\nInstalling kernelconfig\n=======================\n\nThe best way is, if possible, to rely on your distribution's package manager.\n\nYou will need the following python 3 packages: docutils, lxml and version 4 or\nlater of BeautifulSoup. Depending on your distribution, these can also be\ncalled python-beautifulsoup, python3-bs4, python-lxml, python3-lxml,\npython3-docutils, etc... Make sure you only get python 3 packages as\nkernelconfig is not compatible with python 2.\n\nYou can install from PyPI using pip. For example, as root::\n\n $ pip3 install kernelconfig\n\nThe default settings file and examples will be installed into\n'/etc/kernelconfig'.\n\nWhether root or not, it is possible to make a user installation, like this::\n\n $ pip3 install --user kernelconfig\n\nIn this case, the default settings file and examples will be installed into\n'~/.config/kernelconfig'.\n\n\nOptional arguments\n==================\n\n * -h, --help\n\n Show the help message and exit.\n\n * -a ARCH, --arch ARCH\n\n Force the kernel configuration architecture. ARCH is as returned by 'uname\n -m'. Useful for cross-compiling.\n\n * -k KERNEL, --kernel KERNEL\n\n Path to the unpacked kernel sources directory. It can be absolute or\n relative to the current working directory. The default is '.', the current\n working directory.\n\n * -s SETTINGS, --settings SETTINGS\n\n Path to the settings file. It can be an absolute or user-expandable path to\n an arbitrary file. If it is a relative path, then the file will be searched\n for relatively to ~/.config/kernelconfig first and then /etc/kernelconfig.\n Sub-directories relative to both these locations can be used. If a path\n relative to the current working directory is desired, prefix it with './'.\n The default is 'default', i.e., '~/.config/kernelconfig/default' if it\n exists, or, failing that, '/etc/kernelconfig/default'.\n\n * -v VERSION, --version VERSION\n\n Force the kernel configuration version. Useful when there is no matching\n major kernel version in the curated source.\n\n\nSettings syntax\n===============\n\nA comment line starts with a '#' as its first character.\n\nLines can be empty. There is no limit as to how many consecutive empty lines\nthere can be.\n\n\n[source] section\n----------------\n\nLines other than the first non-empty and non-comment line will be discarded.\n\nA source is the name of an executable in either '/usr/share/kernelconfig' or\n'~/.local/share/kernelconfig', depending on the instalation being of the --user\ntype or not, possibly followed by a number of optional arguments. For example::\n\n liquorix --pae\n\nor::\n\n ubuntu --lowlatency\n\nSee \"Curated sources\" below for a list of supported sources and optional\narguments.\n\n\n[options] section\n-----------------\n\nA list of one action per line followed by one or more kernel options to perform\nthe action on. No indentation is allowed, but empty and comment lines are\npossible.\n\nActions:\n\n * **enable**: enable the option in the kernel, not as module.\n For example::\n\n enable BLK_SD_DEV SATA_AHCI\n\n Build the BLK_SD_DEV and ATA_AHCI drivers into the kernel so that it is\n bootable without the need for an initramfs.\n\n * **module**: enable the option as module only so as to be able to only load\n it when desired. For example::\n\n module EVBUG\n\n The EVBUG driver is available to load for debugging when necessary.\n\n * **disable**: disable the option entirely. For example::\n\n disable MODULE_SIG\n\n Disable module signature verification.\n\n * **set**: set an option to a given value. For example::\n\n set DEFAULT_IOSCHED=\"bfq\"\n\n Use Budget Fair Queueing as the default I/O scheduler.\n\nNote 1. Do not prefix options names with 'CONFIG\\_'. kernelconfig takes care of\nthat for you.\n\nNote 2. Option names will always be capitalized for you if you don't. It is\nhowever easier to read a settings file whose options are capitalized.\n\n\nCurated sources\n===============\n\nHere is a list of the currently supported curated sources. More will come.\n\n\nLiquorix\n--------\n\n * Name in settings: liquorix\n\n * Supported architectures: i386, i686, x86_64\n\n * Options:\n\n * --pae: enable Physical Address Extension on processors supporting it to\n extend physical address space 4GB (i386 and i686 only).\n\n\nUbuntu\n------\n\n * Name in settings: ubuntu\n\n * Supported architectures: i386, i686, x86_64 (upstream supports more, will\n come later)\n\n * Options:\n\n * --lowlatency: enable low-latency timing and preemption options.\n\n\nTODO\n====\n\n * Add better error checking and feedback\n\n * Add sources: defconfig, fedora, centos, debian, genkernel, etc...\n\n * Centralize functions necessary to multiple sources\n\n * Add macros, parameterized macros, conditional macros\n\n * Autodetect hardware\n\n * Integrate with genkernel\n\n\nAuthor\n======\n\nPlease send comments, patches, flowers and insults to Denis Dupeyron \n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Calchan/kernelconfig", "keywords": "Linux kernel configuration", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "kernelconfig", "package_url": "https://pypi.org/project/kernelconfig/", "platform": "", "project_url": "https://pypi.org/project/kernelconfig/", "project_urls": { "Homepage": "https://github.com/Calchan/kernelconfig" }, "release_url": "https://pypi.org/project/kernelconfig/0.3.3/", "requires_dist": null, "requires_python": "", "summary": "Generate custom Linux kernel configurations from curated sources", "version": "0.3.3" }, "last_serial": 3472230, "releases": { "0.3.2": [ { "comment_text": "", "digests": { "md5": "13e21575ad72d2fb0535889bd7881618", "sha256": "29d5b104752c9b2bb97ec50e7994f0dfef8f9dfd309729338b52256164881e39" }, "downloads": -1, "filename": "kernelconfig-0.3.2.tar.gz", "has_sig": false, "md5_digest": "13e21575ad72d2fb0535889bd7881618", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17742, "upload_time": "2016-06-27T18:04:55", "url": "https://files.pythonhosted.org/packages/f5/24/0e6b4f007072bc762eacdb1ee9513a49fd8b1753fc95ed1b163c85c7fb12/kernelconfig-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "d3f03b4afe5ab3b79c4a859d963ccb02", "sha256": "63a5da7df5405db2e10853d82a4d43b349d5799bed9bd5df4b4bb2b63dd1a7b0" }, "downloads": -1, "filename": "kernelconfig-0.3.3.tar.gz", "has_sig": false, "md5_digest": "d3f03b4afe5ab3b79c4a859d963ccb02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30082, "upload_time": "2018-01-08T20:58:51", "url": "https://files.pythonhosted.org/packages/c8/17/0d963fa458fa0c5d97d5d7b201c3a4c9598e5793e908a62f57edb987a8ff/kernelconfig-0.3.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d3f03b4afe5ab3b79c4a859d963ccb02", "sha256": "63a5da7df5405db2e10853d82a4d43b349d5799bed9bd5df4b4bb2b63dd1a7b0" }, "downloads": -1, "filename": "kernelconfig-0.3.3.tar.gz", "has_sig": false, "md5_digest": "d3f03b4afe5ab3b79c4a859d963ccb02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30082, "upload_time": "2018-01-08T20:58:51", "url": "https://files.pythonhosted.org/packages/c8/17/0d963fa458fa0c5d97d5d7b201c3a4c9598e5793e908a62f57edb987a8ff/kernelconfig-0.3.3.tar.gz" } ] }