mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-13 20:12:26 +00:00
readme improvements
This commit is contained in:
14
README.adoc
14
README.adoc
@ -530,6 +530,11 @@ We need to use the ugly `-final` thing because GCC has to packages in Buildroot,
|
||||
|
||||
==== About the QEMU Buildroot setup
|
||||
|
||||
What QEMU and Buildroot are:
|
||||
|
||||
* <<introduction-to-buildroot>>
|
||||
* <<introduction-to-qemu>>
|
||||
|
||||
This is our reference setup, and the best supported one, use it unless you have good reason not to.
|
||||
|
||||
It was historically the first one we did, and all sections have been tested with this setup unless explicitly noted.
|
||||
@ -1258,7 +1263,10 @@ The main reason this setup is included in this project, despite the word "Linux"
|
||||
|
||||
This setup allows you to make a tiny OS and that runs just a few instructions, use it to fully control the CPU to better understand the simulators for example, or develop your own OS if you are into that.
|
||||
|
||||
You can also use C and a subset of the C standard library because we enable https://en.wikipedia.org/wiki/Newlib[Newlib] by default. See also: https://electronics.stackexchange.com/questions/223929/c-standard-libraries-on-bare-metal/400077#400077
|
||||
You can also use C and a subset of the C standard library because we enable https://en.wikipedia.org/wiki/Newlib[Newlib] by default. See also:
|
||||
|
||||
* https://electronics.stackexchange.com/questions/223929/c-standard-libraries-on-bare-metal/400077#400077
|
||||
* https://stackoverflow.com/questions/13063055/does-a-libc-os-exist/59771531#59771531
|
||||
|
||||
Our C bare-metal compiler is built with https://github.com/crosstool-ng/crosstool-ng[crosstool-NG]. If you have already built <<qemu-buildroot-setup,Buildroot>> previously, you will end up with two GCCs installed. Unfortunately I don't see a solution for this, since we need separate toolchains for Newlib on baremetal and glibc on Linux: https://stackoverflow.com/questions/38956680/difference-between-arm-none-eabi-and-arm-linux-gnueabi/38989869#38989869
|
||||
|
||||
@ -19365,7 +19373,7 @@ Perhaps the awesomeness of Buildroot only sinks in once you notice that all it t
|
||||
|
||||
The downsides of Buildroot are:
|
||||
|
||||
* the first build takes a while, but it is well worth it
|
||||
* the first build takes a while compared to downloading prebuilts, but it is well worth it
|
||||
* the selection of software packages is relatively limited if compared to Debian.
|
||||
+
|
||||
In theory, any software can be packaged, and the Buildroot side is easy.
|
||||
@ -19375,6 +19383,8 @@ The hard part is dealing with crappy third party build systems and huge dependen
|
||||
|
||||
This repo basically wraps around that, and tries to make everything even more awesome for kernel developers by adding the capability of seamlessly running the stuff you've built on emulators usually via `./run`.
|
||||
|
||||
This runnable part of selecting the command line options for different emulators and setups is to a large extent what https://en.wikipedia.org/wiki/Libvirt[Libvirt] does. But we feel that having both build and run on the same repository is the key.
|
||||
|
||||
As this repo develops however, we've started taking some of the build out of Buildroot, e.g. notably the <<buildroot-vanilla-kernel,Linux kernel>> to have more build flexibility and faster build startup times.
|
||||
|
||||
Therefore, more and more, this repo wants to take over everything that Buildroot does, and one day completely replace it to achieve emulation Nirvana, see e.g.:
|
||||
|
||||
Reference in New Issue
Block a user