{"id":15007266,"url":"https://github.com/umegbewe/linux-kernel-development","last_synced_at":"2026-03-07T11:32:05.836Z","repository":{"id":42491096,"uuid":"395424366","full_name":"umegbewe/linux-kernel-development","owner":"umegbewe","description":"Preparing to develop for the Linux Kernel","archived":false,"fork":false,"pushed_at":"2022-06-30T23:21:06.000Z","size":35,"stargazers_count":17,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-09T15:05:03.849Z","etag":null,"topics":["linux","linux-distribution","linux-kernel","shell"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/umegbewe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-08-12T19:30:12.000Z","updated_at":"2024-08-23T18:48:14.000Z","dependencies_parsed_at":"2022-08-30T17:50:56.703Z","dependency_job_id":null,"html_url":"https://github.com/umegbewe/linux-kernel-development","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/umegbewe/linux-kernel-development","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umegbewe%2Flinux-kernel-development","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umegbewe%2Flinux-kernel-development/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umegbewe%2Flinux-kernel-development/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umegbewe%2Flinux-kernel-development/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/umegbewe","download_url":"https://codeload.github.com/umegbewe/linux-kernel-development/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umegbewe%2Flinux-kernel-development/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30212124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T09:02:10.694Z","status":"ssl_error","status_checked_at":"2026-03-07T09:02:08.429Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux","linux-distribution","linux-kernel","shell"],"created_at":"2024-09-24T19:07:17.243Z","updated_at":"2026-03-07T11:32:05.782Z","avatar_url":"https://github.com/umegbewe.png","language":"Shell","readme":"# Linux Kernel Development\n\nThe purpose of this repo is to get you started with packages and resources necessary to develop for the Linux Kernel\n\n## check.sh script\nThe check.sh script checks and installs the required packages to compile Linux Kernel for your distribution.\u003cbr\u003e\nUsage: ``bash check.sh``\n\nExample:\n```\nGcc OK\nClang OK\nMake OK\nBinutils OK\nFlex OK\nBison OK\nPerl OK\nBc OK\nOpenSSL OK\nkmod OK\nUtil-Linux OK\ne2fsprogs OK\n\n### If everything is OK above you should be able to compile\n\njfsutils NO\nreiserfsprogs NO\nsquashfs-tools NO\npcmciautils NO\nquota-tools OK\nPPP NO\nnfs-utils OK\nnfs-utils OK\nXfsprogs OK\nudev NO\nGrub NO\nMcelog NO\nIptables OK\nGit OK\n\n```\n\n## Courses and Links\n- https://training.linuxfoundation.org/training/a-beginners-guide-to-linux-kernel-development-lfd103/ (Recommended)\n- [Linux From Scratch Book](https://www.linuxfromscratch.org/lfs/download.html) (Recommended)\n- https://www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/\n- https://www.kernel.org/doc/html/v4.16/process/howto.html\n\n## Minimum Requirements to compile the Linux Kernel\n\n### GCC (GNU Compiler Collection) [Wikipedia](https://en.wikipedia.org/wiki/GNU_Compiler_Collection)\nGCC is a compiler for C and C++ programming languages, the Linux Kernel is written in C and GCC is it's default compiler\n\n### Clang [Wikipedia](https://en.wikipedia.org/wiki/Clang)\nClang is an \"LLVM native\" C/C++/Objective-C compiler a substitute to GCC. Distributions such as Android, ChromeOS use Clang built kernels.\n:smile:  Pronounced “klang,” not “see-lang.”\n\n### Make [Read more](https://www.gnu.org/software/make/)\nMake is a tool which controls the generation of executables and other non-source files of a program from the program's source files.\n\n### Binutils [Read more](https://www.gnu.org/software/binutils/)\nBinutils is a collection of software development tools containing a linker, assembler and other tools to work with object files and archives.\n\n### Flex (fast lexical analyzer generator) [Wikipedia](https://en.wikipedia.org/wiki/Flex_(lexical_analyser_generator))\nFlex is a tool that generates programs that perform pattern-matching on text.\n\n### Bison [Wikipedia](https://en.wikipedia.org/wiki/GNU_Bison)\nBison is a general-purpose parser generator that converts a grammar description (Bison Grammar Files) for an LALR(1) context-free grammar into a C program to parse that grammar, the linux kernel build system generates parsers during build. This requires bison 2.0 or later.\n\n### Perl [Read more](https://unix.stackexchange.com/questions/48018/why-is-perl-installed-by-default-with-most-linux-distributions)\nMight wonder why perl? Obviously the Linux Kernel isn't written in Perl but it is needed to built some packages, you need perl 5 and the following modules: ``Getopt::Long``, ``Getopt::Std``, ``File::Basename``, and ``File::Find`` to build the kernel.\n\n### BC (Basic Calculator) [Wikipedia](https://en.wikipedia.org/wiki/Bc_(programming_language))\nbc is used during the kernel build to generate time constants in header files. Perl was formerly used but required a mechanism to support Perl \u003c 5.8 installations lacking the ``Math::BigInt`` module [check this commit](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=70730bca1331fc50c3caacaea00439de1325bd6e). Though this could still be implemented with C or Perl.\n\n### OpenSSL [Wikipedia](https://en.wikipedia.org/wiki/OpenSSL)\nModule signing and external certificate handling use the OpenSSL and crypto library to do key creation and signature generation.\n\n### Kmod [Read more](https://man7.org/linux/man-pages/man8/kmod.8.html)\nkmod is a multi-call binary which implements the programs used to control Linux Kernel modules. Linux distributions use modules in order to load only the needed driver for the system based on the hardware present, instead of building all possible drivers in the kernel to one large chunk.\n\n**These are the basic packages required listed, you can find others [here](https://www.kernel.org/doc/html/latest/process/changes.html)**\n\n## git_setup.sh \u0026 mutt_setup.sh scripts\n[Read more about mutt](http://www.mutt.org/doc/manual/#configuration) \u003c/br\u003e\n[Read more about git](https://git-scm.com/docs/git-send-email) \u003c/br\u003e\nBoth scripts help with the configuration of email. \u003c/br\u003e\nUsage: ``bash mutt_setup.sh``\n\n## Important repositories\n``git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git`` \u003c/br\u003e\n``git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git``\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumegbewe%2Flinux-kernel-development","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fumegbewe%2Flinux-kernel-development","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumegbewe%2Flinux-kernel-development/lists"}