ubuntu中linux内核的编译、更换与使用
由于需要在PC机上做一些Linux驱动的实验,来学习《linux设备驱动开发技术及应用》这本书,最近在ubuntu上配置、编译、安装了更老一些的内核。原来ubuntu11.10自带的内核是linux-3.0.0-12的,我改为了linux-2.6.39.4版本的。过程主要参考《Ubuntu环境下编译linux-2.6.36内核操作手册》。
以下过程全部在root权限下操作。
1、 安装必备软件编译工具:
#apt-get install libncurses5-dev build-essential kernel-package
注意:
(1)libncurses5-dev是为之后配置内核能运行 make menuconfig程序做准备
Build-essential为编译工具,kernel-package是编译内核工具
(2)如果系统显示无法查找到这三个文件,输入#apt-get update更新数据源。
2、 下载内核
去www.kernel.org下载你需要的内核版本的源代码:linux-3.6.39.4.tar.bz2
3、 将源码放在windows下的共享目录内,这样在linux下就可以看到并操作了。
我在linux下的共享目录为:
linux@xiangpingli:~/桌面/share$ pwd
/home/linux/桌面/share
linux@xiangpingli:~/桌面/share$ ls
linux-2.6.39.4.tar.bz2 vimrc.tiny3
4、 将该压缩包拷贝到/usr/src/目录下解压
5、 配置内核:
建议使用当前系统配置文件,使用当前系统配置文件方法:
#cp /boot/config-XX ./.config,然后进入menuconfig选择load选项。
6、 编译内核:
make,这可能需要2~3个小时的时间。
7、加入模块
#make modules_install
8、生成可执行的内核引导文件
#make bzImage
#cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.39.4
9、将System.map复制到/boot下:
#cp System.map /boot/System.map-2.6.39.4
10、生成initrd.img文件
#cd /lib/modules/2.6.39.4
#update-initramfs –c –k 2.6.39.4
11、自动查找新内核,并添加至grub引导
#update-grub
12、修改/boot/grub/grub.cfg文件,将几个timeout的值设为10
这样grub在引导的时候就会出现10秒的停留,如果有按键输入,则可以对内核镜像进行选择
ubuntu中linux内核的编译、更换与使用相关推荐
- Linux内核的编译方法及如何往内核中增加程序
2019独角兽企业重金招聘Python工程师标准>>> ARM Linux的系统调用实现原理是采用swi软中断从用户(usr)模式陷入管理模式(svc). 内核空间和用户空间这两个名 ...
- 【错误记录】Ubuntu 安装 Linux 内核后需要重新安装 VMware Tools 软件进行兼容操作
文章目录 一.报错信息 二.解决方案 一.报错信息 在 [Linux 内核]编译 Linux 内核 ⑦ ( 安装内核模块 | 安装内核 | 重启系统 | 查看当前内核版本 ) 博客中 , 安装完 Li ...
- 【Linux 内核】编译 Linux 内核 ⑤ ( 查看 .config 编译配置文件 | 正式编译内核 )
文章目录 一.查看 .config 编译配置文件 二.正式编译内核 一.查看 .config 编译配置文件 在上一篇博客 [Linux 内核]编译 Linux 内核 ④ ( 打开 Linux 内核编译 ...
- 玩转mini2440开发板之【linux内核的编译和下载】
今天首先来玩一玩linux内核的编译和下载. 1.背景交代 开发环境:64位的Ubuntu 14.04: 编译工具:arm-linux-gcc 4.4.3: 下载工具:SuperViVi USB Tr ...
- 编译 linux 3,linux内核的编译(3)
linux内核的编译(3) 2008-02-23 07:17:46来源:互联网 阅读 () 无论什麽档名),然後将你做的 zImage 拷贝进去,(例如,如果你用" /vmlinuz ″ 的 ...
- 【Linux 内核】编译 Linux 内核 ⑦ ( 安装内核模块 | 安装内核 | 重启系统 | 查看当前内核版本 )
文章目录 一.安装内核模块 二.安装内核 三.重启系统 四.查看当前内核版本 一.安装内核模块 确保 Linux 内核编译完成 , 没有任何报错之后 ; 参考 [Linux 内核]编译 Linux 内 ...
- 解决ubuntu更改Linux内核(或更新系统)后扩展屏(第二显示器)无法正常显示问题)
解决ubuntu更改Linux内核(或更新系统)后扩展屏(第二显示器)无法正常显示问题 我的解决方案 一定先看这个(很重要) 直接看这个就可以 前几天更新了一下ubuntu系统,一切正常,但是当我把系 ...
- Ubuntu下的Linux内核的编译及安装
推荐群:C/C++大学技术协会:145655849 Linux中的模块(Modules) Linux的module其实可以看作是内核的插件. 在Linux系统中,可以通过文件 cat /proc/mo ...
- ubuntu 更新linux内核,在Ubuntu中,如何更新Linux内核
前提条件运行Ubuntu Linux的服务器 访问终端(CTRL-ALT-T或应用程序菜单>附件>终端) 用户帐户,有sudo权限 apt工具,内置于Ubuntu, 内置于Ubuntu中的 ...
最新文章
- 零基础学JAVA]Java SE基础部分-01. Java发展及JDK配置
- Python自动化运维——系统进程管理模块
- 最后一条记录_幸好朋友圈没有访客记录。
- chrome浏览器世界之窗浏览器的收藏夹在哪?
- 热像仪 二次开发 c++_一种全新的红外热像仪——“可编程红外热像仪”
- android 视图覆盖,如何在Android中添加覆盖视图超过其他视图?
- 炸窝Vector简介
- Linux初级运维(十七)——Linux内核编译与系统裁减
- java B2B2C springmvc mybatis电子商务平台源码-------zuul网关实现
- [leetcode] 24. Swap Nodes in Pairs
- 一个间歇性进程hang问题的处理
- python连接传感器_树莓派4B之光敏传感器模块(python3)
- 正则表达式 之 回溯引用:前后一致匹配
- 超越竞争对手的秘密武器-技术重用
- DPDK 20.11 meson build
- oracle 取现在的时间,Oracle 获取当前日期及日期格式
- 创建hive的AES加密解密函数
- 嵌入式课程设计:socket通信模拟服务器客户端实现文件传送(基于c++语言)
- logit回归模型_详解 Logit/Probit 模型中的 completely determined 问题
- 射影几何----过定点的直线求斜率之积的简单方法
热门文章
- boost::counting_range相关的测试程序
- boost::geometry模块使用 Karney 的直接方法
- GDCM:gdcm::Object的测试程序
- VTK:Medical之GenerateCubesFromLabels
- OpenCV简单的过滤器平滑的实例(附完整代码)
- OpenCV放大视频Upscaling video
- QDoc分组事物Grouping Things
- OpenGL simpleclear简单刷背景的实例
- C++ pancake sort煎饼排序的实现算法(附完整源码)
- C++matrix chain multiplication矩阵链乘法算法的实现(附完整源码)