ubuntu内核安装?ubuntu安装nvidia驱动
今天给各位分享ubuntu内核安装的知识,其中也会对ubuntu安装nvidia驱动进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
如何在Ubuntu/CentOS上安装Linux内核4.0
在Ubuntu 15.04上安装Linux内核4.0
如果你正在使用Linux的发行版Ubuntu 15.04,你可以直接通过Ubuntu内核网站安装。在你的Ubuntu15.04上安装最新的Linux内核4.0,你需要在shell或终端中在root访问权限下运行以下命令。
在 64位 Ubuntu 15.04
$ wget
$ wget
$ sudo dpkg-i linux-headers-4.0.0*.deb linux-image-4.0.0*.deb
在 32位 Ubuntu 15.04
$ wget
$ wget
$ sudo dpkg-i linux-headers-4.0.0*.deb linux-image-4.0.0*.deb
在CentOS 7上安装Linux内核4.0
我们可以用两种简单的方式在CentOS 7上安装Linux内核4.0。
从Elrepo软件仓库安装
从源代码编译安装
我们首先用ElRepo安装,这是最简单的方式:
使用 Elrepo安装
1.下载和安装ELRepo
我们首先下载ELRepo的GPG密钥并安装relrepo-release安装包。因为我们用的是CentOS 7,我们使用以下命令安装elrepo-release-7.0-2.el7.elrepo.noarch.rpm。
注:如果你启用了secure boot,请查看这个网页获取更多信息。
# rpm--import
# rpm-Uvh
添加 Elrepo源
2.升级Linux内核到4.0版本
现在,我们准备从ELRepo软件仓库安装最新的稳定版内核4.0。安装它我们需要在CentOS 7的shell或者终端中输入以下命令。
# yum--enablerepo=elrepo-kernel install kernel-ml
从ELRepo安装Linux内核4.0
上面的命令会自动安装为CentOS 7构建的Linux内核4.0。
现在,下面的是另一种方式,通过编译源代码安装最新的内核4.0。
从源代码编译安装
1.安装依赖软件
首先我们需要为编译linux内核安装依赖的软件。要完成这些,我们需要在一个终端或者shell中运行以下命令。
# yum groupinstall"Development Tools"
# yum install gcc ncurses ncurses-devel
安装内核依赖
然后,我们会升级我们的整个系统。
# yum update
2.下载源代码
现在我们通过wget命令从Linux内核的官方仓库中下载最新发布的linux内核4.0的源代码。你也可以使用你的浏览器直接从kernel.org网站下载内核。
# cd/tmp/
# wget
下载内核源码
3.解压tar压缩包
文件下载好后我们在/usr/src/文件夹下用以下命令解压。
# tar-xf linux-4.0.tar.xz-C/usr/src/
# cd/usr/src/linux-4.0/
解压内核tar压缩包
4.配置
配置Linux内核有两种选择的。我们可以创建一个新的自定义配置文件或者使用已有的配置文件来构建和安装Linux内核。这都取决于你自己的需要。
配置新的内核
现在我们在shell或终端中运行make menuconfig命令来配置Linux内核。我们执行以下命令后会显示一个包含所有菜单的弹出窗口。在这里我们可以选择我们新的内核配置。如果你不熟悉这些菜单,那就敲击ESC键两次退出。
# make menuconfig
配置新内核
已有的配置
如果你想用已有的配置文件配置你最新的内核,那就输入下面的命令。如果你对配置有任何调整,你可以选择Y或者N,或者仅仅是按Enter键继续。
# make oldconfig
5.编译Linux内核
下一步,我们会执行make命令来编译内核4.0。取决于你的系统配置,编译至少需要20-30分钟。
注:如果编译内核的时候出现bc command not found的错误,你可以用yum install bc命令安装bc修复这个错误。
# make
Make内核
6.安装Linux内核4.0
编译完成后,我们终于要在你的Linux系统上安装内核了。下面的命令会在/boot目录下创建文件并且在Grub菜单中新建一个内核条目。
# make modules_install install
7.验证内核
安装完最新的内核4.0后我们希望能验证它。做这些我们只需要在终端中输入以下命令。如果所有都进展顺利,我们会看到内核版本,例如4.0出现在输出列表中。
# uname-r
结论
好了,我们成功地在我们的CentOS 7操作系统上安装了最新的Linux内核版本4.0。通常并不需要升级linux内核,因为和之前版本运行良好的硬件可能并不适合新的版本。我们要确保它包括能使你的硬件正常工作的功能和配件。但大部分情况下,新的稳定版本内核能使你的硬件性能更好。因此,如果你有任何问题,评论,反馈,请在下面的评论框中注明,让我们知道需要增加或者删除什么问题。多谢!享受最新的稳定版Linux内核4.0吧:-)
ubuntu如何进行切换内核版本全教程
在Ubuntu 16.04 server环境下,遇到内核版本升级导致服务不兼容问题时,可通过切换内核版本来解决。以下是两种方法:
1.当服务器可物理访问时,开机后进入grub引导界面,选择"Advanced options for Ubuntu",然后选择一个低版本的内核启动,如4.15.0-54-generic,解决显卡驱动问题后再运行nvidia-smi。
2.对于远程服务器,操作步骤如下:
-查看当前内核版本和启动顺序,找到对应版本(如4.15.0-54-generic)的启动位置,通常在menuentry中。
-将GRUB_DEFAULT设置为正确的位置,如"1> 7"(注意空格)。
-保存并更新grub,重启服务器。
-重启后确认内核版本是否已更改,如果一切正常,nvidia-smi应该能正常运行。
然而,自动更新可能删除旧内核版本,导致无法找到匹配的驱动。只能切换到启动顺序中的内核,或通过apt-get安装缺失的版本(如`sudo apt-get install linux-image-4.15.0-55-generic`)。
需要注意的是,如果在操作过程中遇到版本缺失,可能需要手动安装对应版本的内核才能完成切换。参考以下链接:
- [ubuntu16.04.2修改内核启动顺序后重启机器未生效_minions_222的博客]()
- [NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.]()
在Ubuntu上做内核编程,要安装哪个包怎么做
1、gcc(C编译器)
安装 apt-get install gcc
2、make(源代码维护工具,它能自动检测出需要重新编译的源文件并根据你设定的编译规则去重新编译程序)
安装 apt-get install make
3.kernel-source(内核源码包。你可以apt-cache search kernel-source搜索到内核源代码包,并用uname-r命令查看到当前系统内核版本,然后用apt-get install kernel-source-xxxx来安装和你内核版本一致的内核源代码包)
如果你不想重新编译内核,内核源代码包kernel-source是完全可以不下载的。
4.kernel-headers(内核源代码头文件包,不管你是要进行内核模块开发还是进行驱动程序开发,这个包都是必须要安装的。因为作为一个内核模块编写者,通常会调用内核里的一些东西,比如内核头文件,内核数据结构申明等。它里面包含了一些关键的内核头文件)
安装 apt-cache search kernel-headers
uname-r
apt-get instakk kernel-headers-xxxx
5.kernel-kbuild(用来编译内核模块的,下载安装这个包后会发现在/usr/src目录下多了一个kernel-kbuild-xxxx开头的目录,下面只有scripts一个目录,这是用来编译内核模块的一些脚本程序)
安装 apt-cache search kernel-kbuild
uname-r
apt-get install kernel-kbuild-xxxx
6.build-essential(包含一个在建立deb包过程中起关键作用的包的信息列表,如果你不想建立deb包你就不需要安装此表)
安装 apt-get install build-essential
7.kernel-package(如果你想把内核镜像做成一个deb包来用,那么必须用安装这个包了)
安装 apt-get install kernel-package
8.initrd-tools(如果你想制作启动过程的initrd镜像,则这个包是必不可少的)
安装 apt-get instakk initrd-tools
假设你编写了一个内核模块程序,源代码如下:
/* hello.c*/
#include<linux/init.h>
#include<linux/module.h>
#include<linux/kernel.h>
static int hello_init(void)
{
printk(KERN_ALERT"Hello, linux kernel module
");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT"Goodbye, I've created a linux kernel module sucessfully
");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
你需要这此源程序编写一个makefile,内容如下:
#Makefile for hello.c file
#
KERNEL_DIR:=/usr/src/linux
obj-m:=hello.o
default:
$(MAKE)-C$(KERNEL_DIR) SUBDIRS=$(PWD) modules
clean:
$(RM).*.cmd*.mod.c*.o*.ko-r.tmp
注意:这里的KERNEL_DIR是指内核源代码头文件所在目录的上一级目录,通常就是指内核源代码目录。该目录一般包括有arch,drivers,fs,include,init,ipc,kernel,lib,mm,net,scripts,usr,sound,security等目录。
在本示例中,/usr/src/linux是一个链接,指向了/usr/src/kernel-headers-2.6.8-3目录。
编写好makefile后就可以输入make命令生成hello.ko内核模块了,然后你可以用:
insmode hello.ko
命令来加入内核模块,然后用:
rmmod hello
来删除内核模块。