spr*_*t12 3 drivers kernel tree distributions
我正在读一本关于在 Linux 上创建驱动程序的书,我对 Linux 没有太多经验,我之前安装过很多发行版,但我一直使用 Windows 作为我的主要操作系统。
我知道一些C,但我主要是一名C#程序员。
我希望学习(为了好玩)驱动程序编程,并希望它能教我一些有关 Linux 的知识并“深入了解它”。
我的第一个障碍是找到一个具有标准2.6.x内核的发行版。我试图找到一个,但3.x现在它们都已经过去了。有人知道适合此类任务的吗?
这本书还说我应该从中获取一个标准内核kernel.org并构建一个源代码树。我不知道这意味着什么。
这是书: http: //oreilly.com/openbook/linuxdrive3/book/
你知道kernel.org,在这里你可以得到旧的或新的香草仁。对于最新的内核,您还可以使用 git。
一旦你有了一个内核,要创建一个“源代码树”,你只需解压它即可。例如,如果您下载了 .bz2存档,则可以使用命令将其解压tar -jxvf <kernel version>.bz2。传统上,该树位于/usr/src并且符号链接/usr/src/linux指向您正在使用的特定内核目录。
解压源代码树后,要构建它,您需要首先配置它,例如make menuconfig(基于 ncurses)或make xconfig(基于 X)。如果您要从不同的内核版本迁移 .config,还有一些其他配置 make 目标。最后,要构建内核及其模块,请使用make. 要安装和引导内核,请使用make modules_install模块并将arch/<your arch>/boot/bzImage其复制到引导加载程序期望内核所在的位置,并将其配置为引导该内核。如果您希望加载针对内核构建的任何模块,则需要引导至内核。
话虽如此,如果您只想尝试构建模块,只需从当前的发行版内核中获取源代码(将有一个包)并针对该内核构建模块,而不是经历上述过程。这并不难,但如果您是内核新手,可能会有点不知所措。