内核是任何操作系统的核心。 内核的主要功能是作为应用程序 - 应用程序 - 内存和应用程序 - 设备(I / O)之间的中介。 除了执行其他任务外,它还充当内存管理器,设备管理器和参与系统调用。
在Debian Linux中编译和安装Kernel 3.16
对于Linux,内核是它的心脏。 Linux内核是在GNU通用公共许可证下发布的。 Linus Torvalds在1991年开发Linux内核,并且他的初始内核版本为0.01。 在2014年8月(今年) 内核3.16 3日已被释放。 在这22年里,Linux内核已经看到了很多的发展。 现在有千家公司,数百万独立开发者贡献Linux内核。
大Branded的粗略估计以及他们对目前Linux内核预计将有代码17万行根据Linux基金会 ,Linux内核开发报告的贡献。
- RedHat - 10.2%
- 英特尔 - 8.8%
- 德州仪器 - 4.1%
- 利纳罗 - 4.1%
- SUSE - 3.5%
- IBM - 3.1%
- 三星 - 2.6%
- Google - 2.4%
- 视觉雕刻系统 - 2.3%
- 沃尔夫森微电子 - 1.6%
- Oracle - 1.3%
- Broadcom - 1.3%
- Nvidia - 1.3%
- 飞思卡尔1.2%
- 英科技术 - 1.2%
- 思科 - 0.9%
- Linux基础 - 0.9%
- AMD - 0.9%
- 学术 - 0.9%
- NetAPP - 0.8%
- 富士通 - 0.7%
- 平行 - 0.7%
- ARM - 0.7%
百分之七十的内核开发是由开发人员,谁在企业工作,并为此付出,听起来有趣的?
Linux Kernel 3.16是为个人和公司在生产环境中发布的,他们将更新他们的内核有一些原因,其中包括。
- 安全补丁
- 稳定性增强
- 更新驱动程序 - 更好的设备支持
- 处理速度提高
- 最新功能等
本文旨在更新Debian内核,Debian的方式,这意味着更少的手动工作,更少的风险与完美。 我们也将在本文的后面部分更新Ubuntu内核。
第1步:下载内核3.16
在我们继续之前,我们必须知道我们当前的内核,即安装。
avi@youcl:~$ uname -mrns Linux youcl 3.14-1-amd64 x86_64
关于选项:
- -s:打印操作系统(“Linux的,这里)。
- -n:打印系统主机名('youcl',在这里)。
- -r:打印内核版本('youcl 3.14-1-amd64的“,在这里)。
- -m:打印硬件指令集('x86_64的',在这里)。
从下面的链接下载最新的稳定内核。 不要被补丁下载链接混淆。 下载其中一个明确规定- “ 最新的稳定内核 ”。
另外,您可以使用wget下载内核这样更方便。
avi@youcl:~/Downloads$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.xz
第2步:验证内核3.16签名
下载完成后,在我们继续前,强烈建议验证内核签名。
avi@youcl:~/Downloads$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.sign
签名验证需要针对未压缩文件进行。 这是要求针对各种压缩格式的一个签名,即.gz,.bz2,.xz。
接下来,解压缩Linux内核映像。
avi@youcl:~/Downloads$ unxz linux-3.16.tar.xz
验证其签名。
avi@youcl:~/Downloads$ gpg --verify linux-3.16.tar.sign
验证内核签名
注意 :如果上面的命令抛出GPG:无法检查签名:公共密钥未找到错误。 这意味着我们需要从PGP服务器手动下载公钥。
avi@youcl:~/Downloads$ gpg --recv-keys 00411886
下载公钥
下载密钥后,再次验证密钥。
avi@youcl:~/Downloads$ gpg --verify linux-3.16.tar.sign
验证密钥
你注意到两件关于gpg密钥验证的事情。
- GPG:从“Linus Torvalds公司<torvalds@linux-foundation.org>”好签名。
- 主键指纹 :ABAF 11c6中,两5A29 70B1 30AB E3C4 79BE 3E43 0041 1886年。
没有什么可担心的关键指纹,我们确定现在的存档是确定和签名。 让我们前进!
第3步:安装必需的软件包
在我们开始构建内核之前,我们需要安装一些包来简化内核构建和安装过程,并且做到无风险的Debian方式。
安装libcurse5-dev,fakeroot和kernel-package。
avi@youcl:~/Downloads$ sudo apt-get install libncurses5-dev avi@youcl:~/Downloads$ sudo apt-get install fakeroot avi@youcl:~/Downloads$ sudo apt-get install kernel-package
第4步:构建内核3.16
成功安装上述软件包后,我们就可以构建内核了。 移动到提取的Linux内核映像(我们在上面提取,同时验证签名)。
avi@youcl:~/Downloads$ cd linux-3.16/
现在重要的是将当前内核配置复制到以root用户身份显示工作目录。
# cp /boot/config-'uname -r' .config
它复制的/ boot / config中-'uname -r“到当前的工作目录”/home/avi/Downloads/linux-3.16“并将其保存为” 的.config“。
这里使用uname -r“会自动更换,并与您当前安装的内核版本进行处理。
由于点文件不能被视为正常的方式,你需要使用选项'-a'ls命令来查看这一点,在你的当前工作目录“。
$ ls -al
构建内核3.16
有三种方式来构建Linux内核。
- 使oldconfig这个 :这是哪个内核一个问的问题之一,请问它应该支持,哪些不是互动的方式。 这是一个非常耗时的过程。
- 的make menuconfig:这是一个命令行基于菜单系统,用户可以启用和禁用选项。 它需要ncurses库,因此我们上面的Apt。
- 使qconfig中/ Xconfig文件/ gconfig:它是图形菜单基于系统,用户可以启用和禁用选项。 它需要QT库。
很显然,我们将使用'make menuconfig'后 。
害怕建核? 你不应该。 它的乐趣,有很多东西你会学习。 你应该记住这些以下的事情。
- 您的硬件需求和适当的驱动程序。
- 在您构建内核时选择新功能 - 高内存支持。
- 优化内核 - 只选择您需要的驱动程序。 它会加快你的启动过程。 如果你不确定任何驱动程序,更好地包括。
现在,运行'make menuconfig'后命令。
# make menuconfig
重要说明 :您必须选择“ 选择-启用可载入模块支持 ”,如果你忘了这样做,你会得到艰。
运行Make Menuconfig
注 :在打开配置窗口,您可以为您的网卡配置各种选项,蓝牙,Touch板,显卡,文件系统的支持,如NTFS和许多其他选项。
没有教程指导你应该选择什么,什么不是。 你只有通过研究,通过网络学习东西,从youcl的教程和其他可能的方式了解这一点。
你可能会看到有一个选项内核黑客。 黑客? 对! 这里它意味着探索。 你可以在核心黑客下添加各种选项,并利用很多功能。
接下来,选择通用驱动程序选项 。
选择内核编译驱动程序
网络设备支持。
选择内核的网络支持
输入设备支持。
输入设备对内核的支持
加载配置文件( 的.config),从我们的/ boot / config中,`uname -r`.config保存。
加载内核配置
单击确定,保存并退出。 现在清理源代码树并重置kernel-package参数。
# make-kpkg clean
重置内核参数
第5步:编译内核3.16
在我们开始编译内核,我们需要出口CONCURRENCY_LEVEL。 CONCURRENCY LEVEL的拇指有一个规则添加数字1到内核的核心。 如果您有2个内核,则导出CONCURRENCY_LEVEL = 3。 如果您有4个内核,则导出CONCURRENCY_LEVEL = 5。
要检查处理器的内核,您可以使用cat命令,如下所示。
# cat /proc/cpuinfo
示例输出
Sample Output processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 69 model name : Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz stepping : 1 microcode : 0x17 cpu MHz : 799.996 cache size : 3072 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes
你看到上面的输出,我有2个核心,所以我们将导出3核心如下所示。
# export CONCURRENCY_LEVEL=3
设置正确CONCURRENCY_LEVEL将加快内核编译时间。
# fakeroot make-kpkg --append-to-version "-youclkernel" --revision "1" --initrd kernel_image kernel_headers
这里tecminkernel“是内核构建的名称,它可以是任何东西,从你的名字,你的主机名,您的宠物的名字或其他任何东西。
构建Linux内核
Linux内核汇编
内核编译过程
内核编译继续
内核编译需要很多时间,具体取决于正在编译的模块和机器的处理能力。 直到编译的时候看一些内核编译的常见问题。
经常问的问题
Q1。 我的内核正在编译很长时间。 是正常。
Q2。 如果我在编译时中断内核,我需要重新开始吗?
Q3。 编译好的文件可以在不同的系统上使用来更新内核?
Q4。 你将托管你编译的文件?
Q5。 我在我的存储库中有类似fakeroot和ncurses5-dev的软件包吗?
Q6。 在我安装最新的内核后,我能够引导到最后一个内核。
Q7。 我面临更新内核的问题。 你会帮助我吗? 是可以收费吗?
Q8。 我的公司面临更新内核的问题。 您的团队会帮助我们吗? 是否收费?
这就是FAQ的结束,让我移动编译过程。 成功编译内核之后,它创建两个文件(Debian包),一个目录在我们当前工作目录“之上”。
我们当前的工作目录是。
/home/avi/Downloads/linux-3.16/
Debian软件包创建于。
/home/avi/Downloads
要验证它,请运行以下命令。
# cd .. # ls -l linux-*.deb
验证内核包
接下来,运行如此创建的Linux映像文件。
# dpkg -i linux-image-3.16.0-youclkernel_1_amd64.deb
安装内核映像
运行如此创建的Linux头文件。
# dpkg -i linux-headers-3.16.0-youclkernel_1_amd64.deb
安装内核标头
全做完了! 我们已经成功地构建,编译和安装最新的Linux Kernel 3.16在Debian与所有其他依赖项。 此外,Debian软件包自动更新bootloader(GRUB / LILO)。 现在是重新启动和测试最新内核的时候了。
请务必注意在启动过程中可能会遇到的任何错误消息。 重要的是要理解错误以解决它们,如果有的话。
# reboot
当Debian的再次启动,点击“ 高级选项 ”来查看可用和已安装的内核列表。
内核引导高级选项
查看已安装内核的列表。
列出已安装的内核
选择最新编译的内核(即3.16)进行引导。
引导安装的内核
检查内核版本。
# uname -mrns
验证新的内核版本
最新的一个,现在安装设置为引导,自动,您不需要每次从高级启动选项中选择它。
第6步:安装预编译的内核3.16
对于那些不想在Debian(x86_64)上编译自己的内核并希望使用我们在本教程中构建的预编译内核的用户,他们可以从下面的链接下载。 这个内核可能不适用于您可能有的一些硬件。
接下来,使用以下命令安装预编译的内核。
# dpkg -i linux-image-3.16.0-youcl.com_kernel_amd64.deb # dpkg -i linux-headers-3.16.0-youcl.com_kernel_amd64.deb
未使用的内核可以使用命令从系统中删除。
# apt-get remove linux-image-(unused_version_number)
注意 :您应该throughly测试最新的内核后,删除旧的内核。 不要急着做决定。 只有当你知道你在做什么时,你才应该继续。
如果你在删除你想要的内核时做错了,或者删除了你不应该的内核,你的系统将处于一个你不能处理的阶段。
卸载未使用的内核后,您可能会收到一条消息。
- 链接/ vmlinuz是一个损坏的链接。
- 删除符号链接vmlinuz。
- 您可能需要重新运行引导加载程序[grub]。
- 链接/initrd.img是损坏的链接。
- 删除符号链接initrd.img。
- 您可能需要重新运行引导加载程序[grub]。
这是正常的,你不必担心。 只需使用以下命令更新您的GRUB。
# /usr/sbin/update-grub
您可能需要更新您的/etc/kernel-img.conf中的文件并禁用'do_symlinks“,禁用这些消息。 如果你能够重新启动并重新登录,没有问题。
目前为止就这样了。 我将再次在这里与另一个有趣的文章。 直到然后,保持调整和连接到youcl。 不要忘记在下面的评论部分向我们提供您的宝贵反馈。 还告诉我们当你遇到内核编译和安装的经验。
另请参阅 :