linux kernel and driver-编译安装内核
来源:互联网 发布:毒药 知乎 编辑:程序博客网 时间:2024/06/04 19:13
开发主机系统:ubuntu10.04
1. 安装一些库和工具,否则编译内核时可能出现错误:
$sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev x11proto-core-dev libx11-dev libg11-mesa-dev g++-multilib mingw32 tofrodos libncurese5-dev
2. 在https://www.kernel.org/pub/linux/kernel/上下载需要的内核版本,我下载的是linux-2.6.38.8.tar.gz版本的内核:
ubuntu的内核源码树在/usr/src/目录中,则把linux-2.6.38.8.tar.gz复制到/usr/src/下。
3. $cd /usr/src,跳到/usr/src/目录下,然后$sudo tar -zvxf linux-2.6.38.8.tar.gz解压内核包后
linux-2.6.38.8就是解压后的内核源码目录。
4. $cd linuxlinux-2.6.38.8下:
$sudo make menuconfig进行内核配置,然后保存(我选择默认后,直接exit、保存),如图选择yes后会在linux-2.6.38.8生成.config配置文件
5. $sudo make编译内核
6. $sudo make_install,如图会在/lib/modules下生成2.6.28.8模块目录
7. $sudo make bzImage会在arch/x86/boot/下生成bzImage内核镜像文件
8. $sudo make install,此命令相当于
$sudo cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.38.8
$sudo cp .config /boot/config-2.6.38.8,并在/boot/目录下创建System.map-2.6.38.8文件
其中System.map-2.6.38.8是编译内核时产生的内核符号表。可以在网页引用中查看关于内核符号表的详细介绍http://blog.chinaunix.net/uid-17188120-id-2820834.html
9. $sudo mkinitramfs -o /boot/initrd.linux2.6.38.8 2.6.28.8
如果是虚拟机安装的Ubuntu,则需要执行次命令,用于引导系统启动,否则启动的时候会显示 vfs挂载失败之类的错误
2.6.28.8是前面make modules_install安装到/lib/modules/目录下的模块文件夹名
10. $sudo gedit /etc/default/grub将GRUB_HIDDEN_TIMEOUT=0用#注释掉,这样启动内核时会有延时等待时间。
11. $sudo update-grub,会自动搜索/boot文件夹,将相应的镜像加入/boot/grub/grub.cfg启动菜单,并根据/etc/default/grub内容更新配置文件。
因为是虚拟机安装的ubuntu,所以在/boot/grub/grub.cfg中添加如图圈中所示代码,initrd.linux2.6.38.8是步骤9中生成的文件。
保存后重启会有如下图选择启动的内核,只要选择“Ubuntu,Linux 2.6.38.8”即可使用新安装的内核启动系统,此时“Ubuntu,Linux 2.6.38.8”就是上图中“menuentry ‘Ubuntu,Linux 2.6.38.8’ --class .......”的 ‘Ubuntu,Linux 2.6.38.8’,可以改成你想显示的任何字符。
安装新内核完毕
- linux kernel and driver-编译安装内核
- 编译Linux内核(kernel)
- linux内核编译kernel编译
- Kinect sensor and Linux kernel driver
- Linux Kernel and Driver Development Training
- Driver 分层的思想 -- Linux Kernel 内核实现欣赏
- linux kernel, driver, network driver
- Linux Kernel 2.6.5 内核编译过程
- Compiling the Linux Kernel(编译内核)
- 编译你自己的Linux内核(Kernel)
- 内核编译笔记 linux kernel 2.6.30
- linux-2.6.9 kernel 内核成功编译
- 配置编译内核(Linux kernel)
- 编译你自己的Linux内核(Kernel)
- Linux kernel内核编译配置选项详解
- linux kernel 学习笔记一 编译内核
- linux kernel driver database
- Linux Kernel driver model
- iOS CALayer创建
- 大数据(四)--总结
- 迷茫的程序员,跨行业的难言之隐
- js 新开窗口与传递信息案例
- 你所不知道的html5与html中的那些事(三)
- linux kernel and driver-编译安装内核
- java核心技术笔记 接口与内部类
- 黑马程序员—C语言—基本语法printf与scanf
- Android完全退出应用程序
- Codeforces Round #297 (Div. 2) D
- OQL
- 强调句型
- 【总结】Effective java经验之谈,通用方法
- JSqlParser系列之二代码结构(转载)