我想在 Fedora 上测试一个(上游)自定义内核。
目前的计划是:
/boot/config-3.6.6-1.fc17.x86_64
/boot
但是 initramfs...img 文件呢?我如何生成它?
还有什么重要的?
我正在使用 Linux Mint 13 MATE 32 位,我正在尝试构建内核(主要是为了体验和乐趣)。
现在,我喜欢使用与预编译内核相同的配置来构建它,所以首先我从kernel.ubuntu.com安装了预编译内核3.16.0-031600rc6,并成功引导到它。
然后我从kernel.org下载了 3.16.rc6 内核,解压它,将其配置为使用来自现有预编译内核的配置:
$ make oldconfig
Run Code Online (Sandbox Code Playgroud)
它没有问我任何问题,因此,预编译的内核包含所有必要的信息。然后我构建了它(大约花了 6 个小时):
$ make
Run Code Online (Sandbox Code Playgroud)
然后安装:
$ sudo make modules_install install
Run Code Online (Sandbox Code Playgroud)
然后我启动到我手动编译的内核,它可以工作,但启动过程有点慢。但是后来我发现所有的二进制文件(/boot/initrd.img-3.16.0-rc6
以及其中的所有*.ko
模块/lib/modules/3.16.0-rc6/kernel
都比预编译版本大 10 倍左右!说,initrd.img-3.16.0-rc6
是160 658 665
字节,但预编译initrd.img-3.16.0-031600rc6-generic
是16 819 611
字节。每个*.ko
模块都同样大。
为什么是这样?我没有为构建指定任何特殊选项(我输入的命令与我上面提到的完全相同)。如何“正确”构建它?
我在内核版本中使用 Debian ( Wheezy )3.2.0-4
amd64
并希望将我的内核升级到最新版本,例如3.13.3 stable
,但我的 Debian 操作系统没有互联网连接。我已经安装了“usb-modeswitch”和“usb-modeswitch-data”软件包,但是 Debian 没有检测到我的 3g-modem-usb 加密狗。
我已经3.13.3 tar.xz
从kernel.org
. 如何在没有互联网连接的情况下从 3.2 编译和升级到 3.13.3?
我正在读一本关于在 Linux 上创建驱动程序的书,我对 Linux 没有太多经验,我之前安装过很多发行版,但我一直使用 Windows 作为我的主要操作系统。
我知道一些C
,但我主要是一名C#
程序员。
我希望学习(为了好玩)驱动程序编程,并希望它能教我一些有关 Linux 的知识并“深入了解它”。
我的第一个障碍是找到一个具有标准2.6.x
内核的发行版。我试图找到一个,但3.x
现在它们都已经过去了。有人知道适合此类任务的吗?
这本书还说我应该从中获取一个标准内核kernel.org
并构建一个源代码树。我不知道这意味着什么。
这是书: http: //oreilly.com/openbook/linuxdrive3/book/