linux 学习- 编程基础之内核配置与编译

news/2024/7/8 4:55:18 标签: linux, 编程, linux内核, patch, 图形, 工作

linux移植的准备工作

linux 内核配置与编译

 

1,清楚临时文件   中间文件  配置文件

make clean
:::::::::::remove most generated files but keep the config

make mrproper
:::::::::::remove all generated files +config files

make distclean
:::::::::::mrproper+remove editor backup and patch files

 

2, 确定系统软硬件配置情况  如CPU类型,网卡型号等

3, make config      命令配置内核


逐一询问配置是否需要: 文本交互式  效率低下一般不采用

 make menuconfig  菜单式配置内核

基于菜单式
 
 make oldconfig   基于文本交互式,  但不会逐一询问, 只询问新的配置选项

 make xconfig    图形化配置


推荐使用 make menuconfig


默认配置文件目录


cd arc/arm/config

有很多参考的配置文件
拷贝到根目录的config下,  make menuconfig   打开配置就可以看到刚刚拷贝出来的参考配置;


4. 编译内核

::::   make bzImage

eg:
~~~~~ @cp /boot/config -2.36######    ./. config          //拷贝当前内核到配置文件

~~~~~ @make menuconfig     保存配置

~~~~~ @make bzImage        编译内核

 

5, 编译内核模块  配置选择M 的项

 make moduels

 

6,  make modules_install

拷贝编译好的配置文件到lib/modules/下

 

7, 制作initrd ramdisk

mkinitrd initrd-2.6.29 2.6.29    //2.6.29版本号  该文件在lib/modules/下

产生initrd-2.6.29文件

 


内核安装

编译好的内核在   arch/x86/boot/下     ### x86是开始时选择拷贝的参考备份配置文件

1, cp arch/x96/boot/bzImage  /boot/vmlinuz-$version   拷贝出来重新命名版本

2, cp $initrd-2.6.29   /boot/   拷贝initrd到boot目录下

3, 修改/etc/grub.conf      该文件时linux启动时显示的选择菜单,可进入新的或者旧的内核系统

@vi /etc/grub.conf 

....
....
title Red Hat Enterprise.........
root
kernel /vmlinuz -2.6.18....
...

拷贝以上信息

@4yy

修改title  为  My-linux
      
目录修改为 kernel  /bzImage-2.6.29    //自己修改的内核配置文件


重新启动

会有自定义的linux内核显示在选择框中

 


完成

 

 


http://www.niftyadmin.cn/n/1117488.html

相关文章

Andriod Studio 使用心得,持续更新中

使用eclipse开发Android快两年,用起来虽然比较卡顿也很慢,但确实是习惯了其中的很多操作,可以这么说,真把eclipse换成中文本,估计用起来都会生疏很多,因为大 部分时候,记住的并不是那个操名称&a…

十六进制数转为字符串

//-----------------------------------------------//16进制字符转整数,16进制字符与字符串转换中间函数//-----------------------------------------------function HexToInt2(hex: AnsiString): integer;vari: integer;function Ncf(num, f: integer): integer;vari: integ…

基于arm开发板四个按键控制四个灯亮

基于s5pv2410,cortex a8的四个按键每一个按键点了对应的灯 对于用汇编来编程的话不难,重点在于数据手册,电路图,管脚的看懂 直接上代码 .globl _start_start: ldr r0,0xe0200c40 按键控制寄存器的地址 ldr r1,[r0] bic r1,r1,#0xff bic一次只…

反复折叠纸张 java_为什么一张纸不能连续被折叠9次?

我记得在电视上看到过,如果是借助人的力量,最多只能折8次机器也只能折9次算算就知道了。如果纸的厚度达到了折叠面的一半就很难折叠了,由此可以推算,如果纸为正方形,边长为a,厚度为h,当折叠一次的时候,折叠…

四小时的回忆录

早上有课,但是我没去,躲在小小的被窝里,温暖。其实,今天阳光明媚。在早晨与正午之间,还有四小时,睡意在室友关门离去的那一瞬间,释然了。四小时,240分钟。在漫长的生命历程中&#x…

docker 容器中创建MySQL

2019独角兽企业重金招聘Python工程师标准>>> 这里不说docker 的安装 1、拉去镜像 docker pull mysql/mysql-server:latest 2、查看镜像 docker images 3、创建容器 docker run --name 容器的名字 -p 3306:3306 -e MYSQL_ROOT_PASSWORD密码 -d centos/mysq…

When you are old

When you are old ——W.B Yeats (William Butler Yeats)When you are old and grey and full of sleep, And nodding by the fire, take down this book, And slowly read, and dream of the soft look Your eyes had once, and of their shadows deep; How many …

面试题:详细说明MVVM模式?

参考文档 1.newdocx.appcan.cn/data-dockin…Model:存储数据 View:显示数据 ViewModel:这层并不需要我们来编写,这是Vue自带的 当我们使用MVVM进行编码的时候,我们不用关注ViewModel这层是怎么实现的,我们只需要关注Model层和View层,我们在对MVVM这种模式进行编码的时候,编码的…