导航:首页 > 源码编译 > linux内核源码编译教程外包

linux内核源码编译教程外包

发布时间:2023-03-15 05:52:28

❶ 如何编译内核及制作RPM包

前言

要编译自内核能各种同答案列举:
1 研究习内核源码
2 支持新硬件或者打某项内核功能
3 升级内核更新版本
4 按自要求定制优化内核功能
种种...
折腾需要理由我说面直接进入主题
编译式
编译内核种式kernel.org载选择载需要版本内核源码
:linux-2.6.32-rc1.tar.bz2载内核源码/home/user/目录进入载目录解压压缩

#cd /home/user/
#tar -xjvf linux-2.6.32-rc1.tar.bz2

二 准备编译环境

始前首先确认面软件包已经安装(编译标普华4.0直接全部安装CD3保证条件)
* rpmdevtools
* yum-utils
fedora系统使用命令安装:
#yum install yum-utils rpmdevtools

1. rpmbuild命令工作所需目录树面命令完该操作手建立目录树
命令建立:
#rpmdev-setuptree

命令/usr/src/rpmbuild/目录目录结构(位置没则能前用户目录).

# tree /usr/src/rpmbuild/
rpmbuild/
|-- BUILD
|-- RPMS
|-- SOURCES
|-- SPECS
`-- SRPMS
面部rpmbuild环境建立rpm
3. 安装内核源码包需要依赖组件(跳步操作)

su -c 'yum-builddep kernel-.src.rpm'
4.安装内核源码系统默认目录/usr/src/neoshine:

rpm -Uvh kernel-.src.rpm

三 配置内核(config配置文件)

面介绍何解源码包并修改配置重新打包源码
1. 解源码包并打所补丁BUILD目录

cd ~/rpmbuild/SPECS
rpmbuild -bp --target=`uname -m` kernel.spec

kernel源码找:

/usr/src/neoshine/rpmbuild/BUILD/kernel-/linux-. directory

配置内核源码
1. 进入内核源码:

cd ~/rpmbuild/BUILD/kernel-2.6.$ver/linux-2.6.$ver.$arch/
2. 复制/boot/config*配置文件源码目录,config文件已经配或者其备份kernel配置文件:

cp /boot/config2.6- 2.6.$ver.$arch .config
3. 先检查kernel配置新增选项:

make oldconfig
4. 定制内核功能关闭initrd支持选项执行图形化内核配置工具:

make menuconfig
注:generic setup选项找initial RAM system and RAM disk(initramfs and initrd) support 项取消编译同确保跟文件系统应驱系统所存储器应驱都已经编译内核(否则启系统).

5. .config文件第行改面内容(注意:没行面编译报错)

# i386
6. 拷贝.configSOURCES/:

cp .config ../SOURCES/config-$arch

四 编译新内核

1. 面始准备编译新内核包
打SPEC/kernel.spec

vim SPEC/kernel.spec
改变面行内容定制自内核扩展名(fc10类):

%define buildid .
步新内核rpm包程需要编译内核源码包
使用面命令新内核源码包
rpmbuild -bb --with baseonly --without debuginfo --target=`uname -m` kernel.spec

参数说明:bb表示编译二进制包即源码包without debuginfo 表示没调试信息
target=`uname -r`表示应前平台内核包
面命令功执行完BUILD/i686目录新内核安装包

五 安装新内核

rpm -ivh kernel-$ver-$arch.rpm
步操作自安装内核boot目录安装应内核模块/lib/moles/目录并且新内核应grub引导菜单
修改grub引导菜单格式

title new kernel
kernel /boot/vmlinuz-$ver-$arch root=/dev/sdax(hdax)

注意处要使用uuid指定跟文件系统(能挂载根区导致内核死机)要再加显示相关参数(内核支持应设置看黑黑屏幕)
至禁用initrd新内核配置安装完毕

❷ linux内核编译详细教程及开发Linux系统

摘录linuxaid

一步一步编译安装Linux内核

摘要

文章将为你详细并逐步的描述如何编译、配置、安装一个定制的RedHat Linux内核。我们知道,一个定制的内核从很多方面来看都是必需的,在此我不再讨论这个问题。我只向大家展示如何编译、配置和安装一个定制的内核。虽然下面所列步骤主要是针对RedHat Linux用户,但它也同样适用于其它Linux发行版的使用者。当然,一些较小的改动是必须的(例如,并不是所有的系统都使用initrd)
(2002-09-02 12:38:46)

By Wing, 出处:蓝风

摘要

文章将为你详细并逐步的描述如何编译、配置、安装一个定制的RedHat Linux内核。我们知道,一个定制的内核从很多方面来看都是必需的,在此我不再讨论这个问题。我只向大家展示如何编译、配置和安装一个定制的内核。虽然下面所列步骤主要是针对RedHat Linux用户,但它也同样适用于其它Linux发行版的使用者。当然,一些较小的改动是必须的(例如,并不是所有的系统都使用initrd)

硬件配置

下列步骤需在一个下列配置的计算机系统中演示:Compaq Presatio 4010 Series cinorter system,15.5GB硬盘,96 MB内存,400 MHz Intel Celeron Processorm ,Red Hat Linux 7.0(内核版本为2.2.16-22)

目标

我们的目标是在进行完下列步骤后得到一个完全运行的定制过的内核,例如,我有一个 定制过的内核2.2.16-22ghosh在我的系统中运行(我的名字叫Subhasish Ghosh,你也可以命名为其它名称,事实上在系统中有两个内核是同时运行的)下面,搜索并编译Linux内核。

编译、配置并安装一个定制的RedHat Linux内核的步骤:

整个步骤如下:

步骤1:以“root"身份登录,然后执行下列步骤

步骤2:在命令提示中键入 "rpm-q kernel-headers kernel-source make dev86"

步骤3:如果这些rpm包已经装好,直接进入步骤4。否则,挂载上RedHat Linux 7.0 光盘并执行rpm-Uvh以便安装这些必须的rpm包。

步骤4:如果你已有一个完全运行的X window System,那么在命令提示中键入“startx”。如果没有配置X window System,那么在命令提示中键入“make config”或者“make menuconfig”。

步骤5:进入GNOME环境,打开GNOME终端并键入“cd /usr/src/linux”然后回车。

步骤6:在/usr/src/linux 目录下,键入“make xconfig”。

步骤7:屏幕上将出现GUI版本的“make config",它将提供给你不同选项使你获得一个定制的内核。

步骤8:现在,我建议你尽量使用缺省设置。请注意不要轻易改变选项,因为许多选项非常敏感,需要专业处理,你仅需要做以下改动:

1.处理器型号和特征:选择正确的处理器取决于你是否使用Pentium Ⅱ或者Pentium Ⅲ,或像我一样使用Intel Celeron.例如,我操作如下:

Processor Family:PPro/686MXMaximum Physical Memory:1 GBMath Emulation:YesMTRR:YesSMP:Yes

2.打开文件系统对话框并做以下改动:

例如我是如下选择的:

DOS FAT fs support:Yes(y)MSDOD fs support:Yes(y)UMSDOS:mVFAT(Window 95) support:Yes(y)NTFS filesystem support (read-only):Yes(y)NTFS read-write support(DANGEROUS):NO(n)

完成以上选择后,请确认你没有改变其它选项。以上所有改动是无害的, 不会对你的Linux内核产生坏作用。

3.保存并从主对话框中退出

步骤9:在/usr/src/Linux目录下执行"ls -al".

步骤10:你将看到一个名为"Makefile"的文件,它对整个编译过程非常重要。因此,一定要先使用“cp Makefile Makefile.bak”命令对该文件进行备份。

步骤11:在usr/src/linux 中执行"vi Makefile"。

步骤12:找到EXTRAVERSION并改变它.例如:我将EXTRAVERSION=-22改为EXTRAVERSION="-22grosh".当然,你完全可以任意命名它。

步骤13:保存并退出文件。

步骤14:下列步骤在/usr/src/Linux 目录下执行。键入“make dep clean”回车。

步骤15:键入:“make bzImage moles”。这需要花费一些时间。你可以在这段时间休息一会。

步骤16:以上步骤完成后,在/usr/src/Linux/arch/i386/boot目录下将产生一个“bzlmage”文件。找到这个目录并检查“bzlmage”文件是否已经产生.如果上述步骤得到了正确的执行并且在“make xconfig”中的所有选项都选择正确的话,你一定会看到这个文件。如果没有这个文件,那么很遗憾,你得从头开始。

步骤17:在/usr/src/linux目录下键入“cp ./arch/i386/boot/bzlmage /boot/vmlinuz-2.2.16.22ghosh”并回车。

步骤18:键入:“cp System.map /boot/System.map-2.2.16-22ghosh”。

步骤19:键入:“make moles install”,回车。你将看见所有的模块将在一个新的指定目录下被安装。

步骤20:键入:“mkinitrd /boot/initrd-2.2.16-22ghosh.img2.2.16-22ghosh”。

步骤21:键入:“vi /etc/lilo.conf”且随后加入以下条目

image=/boot/vmlinuz-2.2.16-22ghoshlabel=GhoshKernelinitrd=/boot/initrd-2/2/16-22ghosh.imgroot=/dev/hdc5read-only

步骤22:保存并退出。请注意:在lilo.conf文件中已经按你的要求改变了相应的条目,但重要的一点是根目录必须是你的系统的根目录。例如:在我的系统中是在/dev/hde5中。插入你的系统的有关信息。

步骤23:键入:“/sbin/lilo -v -v”。

步骤24:阅读屏幕上的所有信息。假如没有显示错误,那么所有的工作就已完成了。Congratulations!

步骤25:键入:“/sbin/reboot”或“/sbin/shutdowm-r now”重新开机。

步骤26:在启动屏中,按Tab键(如果你使用的是LILO启动屏,可按 ctrl-X 键),你可以看见与其它选项一同出现的“GhoshKernel”选项。

步骤27:键入:GhoshKernel,回车。完全运行的定制内核就被引导装入系统中了。

终曲

以“root”身份登录,键入“uname -r”然后回车。你会在屏幕上看到2.2.16-22ghosh条目,它表示你正在运行定制过的内核,而不是2.2.16-22的内核版本。记住你可以在一个计算机中运行多个不同版本的内核。如果你遇到了问题,发E-mail给我,邮箱是:[email protected]

资源

在许多Web站点里都有关于如何编译和运行最优化的定制内核的信息。例如http://www.vmlinuz.nu/。还有一些其它的关于Linux内核的使用和编译的站点。

❸ 如何实现LINUX内核编译

1.到网上下载linux内核源码 大概70M左右
2.进入内核源码目录
3.执行menuconfig程序 启动内核驱动、模块裁剪的图形化界面
4.make

❹ 如何使用自己编译的linux内核

内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。Linux作为一个自由软件, 在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。

❺ 如何重新编译linux内核

  1. 因为一般电脑安装的系统都是Windows,而整个编译过程都需要在Linux环境下实现,所以最好是在虚拟机里安装Linux系统来完成这一过程。我使用的虚拟机是VMware-workstation-full-v7.1.4。

  2. 然后,我们需要下载一个较高版本的Linux系统的镜像文件,安装在虚拟机上,作为编译环境。我使用的是ubuntu-11.04-desktop-i386。之所以选择较高版本,是因为它的界面比较方便用户操作。

  3. 然后下载一个Linux内核源代码文件,将它保存到虚拟机上新安装的系统中去。并解压到/usr/src目录。我使用的是linux-2.6.36,下载低版本的原因是,小巧轻便,易于编译。

    解压命令如下:

    bzip2 -d linux-2.6.36.tar.bz2

    tar -xvf linux-2.6.36.ta

  4. 修改/usr/src/linux-2.6.36/kernel/sys.c文件,在文件末尾增加一个系统调用函数。自行编写一个简单的程序即可,只为测试用。

  5. 修改/usr/src/linux-2.6.36/arch/x86/kernel/syscall_table_32.S,为新添加的程序配置系统调用号。

  6. 在/usr/src/linux-2.6.36/arch/x86/include/asm/unistd_32.h中配置系统调用表。

  7. 下面就是最重要的内核编译与安装:

    首先配置编译信息,使其生成适合当前机器的Makefile,输入make oldconf ig。

    接着还要输入make menuconfig,在字符界面下进行必要的细微的修改。

    然后要经过四步编译过程(直接输入命令即可):

    (1)make bzImage

    将内核编译为压缩映像,存储在源码根目录下的“System.map”文件中。

    (2)make moles

    编译各个模块。

    (3)sudo make moles_install

    安装模块

    (4)sudo make install

    安装内核

    第(2)(3)步等待时间较长,可能需要数个小时,请耐心等待。

    无报错的话重启进入GRUB界面,就可以看到新编译的内核了。

  8. 按回车键进入我们编译的目标内核中,用关键词搜索查看新增加的系统调用“my call”是否已在内核中:

  9. 编写测试程序,调用新添加的系统调用:

  10. 测试成功,说明系统调用添加成功,进而说明内核编译成功!

    以上的办法你可以试一下,希望对你有所帮助。

❻ Linux内核源码如何编译Ubuntu源代码在哪里呢

编译linux内核步骤:
1、安装内核
如果内核已经安装(/usr/src/目录有linux子目录),跳过。如果没有安装,在光驱中放入linux安装光盘,找到kernel-source-2.xx.xx.rpm文件(xx代表数字,表示内核的版本号),比如RedHat linux的RPMS目录是/RedHat/RPMS/目录,然后使用命令rpm -ivh kernel-source-2.xx.xx.rpm安装内核。如果没有安装盘,可以去各linux厂家站点或者www.kernel.org下载。
2、清除从前编译内核时残留的.o 文件和不必要的关联
cd /usr/src/linux
make mrproper
3、配置内核,修改相关参数,请参考其他资料
在图形界面下,make xconfig;字符界面下,make menuconfig。在内核配置菜单中正确设置个内核选项,保存退出
4、正确设置关联文件
make dep
5、编译内核
对于大内核(比如需要SCSI支持),make bzImage
对于小内核,make zImage
6、编译模块
make moles
7、安装模块
make moles_install
8、使用新内核
把/usr/src/linux/arch/i386/boot/目录内新生成的内核文件bzImage/zImage拷贝到/boot目录,然后修改/etc/lilo.conf文件,加一个启动选项,使用新内核bzImage/zImage启动。格式如下:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux-new ### 告诉lilo缺省使用新内核启动linux ###
append="mem=256M"
image=/boot/vmlinuz-2.2.14-5.0
label=linux
read-only
root=/dev/hda5
image=/boot/bzImage(zImage)
label=linux-new
read-only
root=/dev/hda5
保留旧有的启动选项可以保证新内核不能引导的情况,还可以进入linux进行其他操作。保存退出后,不要忘记了最重要的一步,运行/sbin/lilo,使修改生效。
9、重新生成ram磁盘
如果您的系统中的/etc/lilo.conf没有使用了ram磁盘选项initrd,略过。如果您的系统中的/etc/lilo.conf使用了ram磁盘选项initrd,使用mkinitrd initrd-内核版本号,内核版本号命令重新生成ram磁盘文件,例如我的Redhat 6.2:
mkinitrd initrd-2.2.14-5.0 2.2.14-5.0
之后把/etc/lilo.conf中的initrd指向新生成的initrd-2.2.14-5.0文件:
initrd=/boot/initrd-2.2.14-5.0
ram磁盘能使系统性能尽可能的优化,具体参考/usr/src/linux/Documents/initrd.txt文件
10、重新启动,OK!

❼ Linux内核源码如何编译

首先uname -r看一下你当前的linux内核版本

1、linux的源码是在/usr/src这个目录下,此目录有你电脑上各个版本的linux内核源代码,用uname -r命令可以查看你当前使用的是哪套内核,你把你下载的内核源码也保存到这个目录之下。
2、配置内核 make menuconfig,根据你的需要来进行选择,设置完保存之后会在当前目录下生成.config配置文件,以后的编译会根据这个来有选择的编译。
3、编译,依次执行make、make bzImage、make moles、make moles
4、安装,make install
5、.创建系统启动映像,到 /boot 目录下,执行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改启动项,因为你在启动的时候会出现多个内核供你选择,此事要选择你刚编译的那个版本,如果你的电脑没有等待时间,就会进入默认的,默认的那个取决于 /boot/grub/grub.cfg 文件的设置,找到if [ "${linux_gfx_mode}" != "text" ]这行,他的第一个就是你默认启动的那个内核,如果你刚编译的内核是在下面,就把代表这个内核的几行代码移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {

recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
当然你也可以修改 set default="0"来决定用哪个,看看你的内核在第几位,default就填几,不过我用过这种方法,貌似不好用。

重启过后你编译的内核源码就成功地运行了,如果出现问题,比如鼠标不能用,usb不识别等问题就好好查查你的make menuconfig这一步,改好后就万事ok了。

最后再用uname -r看看你的linux内核版本。是不是你刚下的那个呢!有没有成就感?
打字不易,如满意,望采纳。

❽ 拿到了linux的内核 应该用什么软件 怎么去编译

1、你可以把linux内核代码放到你的ubuntu或redhat之类的具有linux内核的操作系统里面,然后在你指定的目录里面解压你的内核源码;
2、在主目录里面找到Makefile文件,修改里面的“ARCH = ”和“CROSS_COMPILE”,也就是你的编辑器路径,保存退出;
3、输入make menuconfig配置你的内核参数,保存退出;
4、执行make zImage,你会看见屏幕哗啦哗啦的在运行,这是在生成内核zImage文件;
5、进入你的arch/(cpu型号)/root/里面,你会看到zImage文件,这个就是你要的。
以上是最简单的步骤,若想详细了解,在网络里面搜索“linux内核编译”,会得到一大堆结果,记得一般只看文库或者博客里面的文章,因为质量比较好。

若需帮助,请追问!

❾ 请简述嵌入式linux内核的编译过程

编译及安装简要步骤:
编辑Makefile版本信息

定义内核特性,生成配置文件.config,用于编译:make xconfig

编译内核:make

安装内核:make install

安装模块:make moles_install

具体步骤如下:

内核配置

先定义内核需要什么特性,并进行配置。内核构建系统(The kernel build system)远不是简单用来构建整个内核和模块,想了解更多的高级内核构建选项,你可以查看 Documentation/kbuild 目录内的内核文档。

可用的配置命令和方式:

make menuconfig

命令:make menuconfig

编译内核

编译和安装内核

编译步骤:

$ cd /usr/src/linux2.6

$ make

安装步骤 (logged as

$ make install

$ make moles_install

提升编译速度

多花一些时间在内核配置上,并且只编译那些你硬件需要的模块。这样可以把编译时间缩短为原来的1/30,并且节省数百MB的空间。另外,你还可以并行编译多个文件:

$ make -j <number>

make 可以并行执行多个目标(target)(KEMIN:前提是目标规则间没有交叉依赖项,这个怎么做到的?)

$ make -j 4

即便是在单处理器的工作站上也会很快,读写文件的时间被节省下来了。多线程让CPU保持忙碌。

number大于4不见得有效了,因为上下文切换过多反而降低的工作的速度。

make -j <4*number_of_processors>

内核编译tips

查看完整的 (gcc, ld)命令行: $ make V=1

清理所有的生成文件 (to create patches...): $ make mrproper

部分编译:$ make M=drivers/usb/serial

单独模块编译:$ make drivers/usb/serial/visor.ko

最终生成的文件

vmlinux 原始内核镜像,非压缩的

arch/<arch>/boot/zImage zlib压缩的内核镜像(Default image on arm)

arch/<arch>/boot/bzImage bzip2压缩的内核镜像。通常很小,足够放入一张软盘(Default image on i386)

❿ linux内核编译和根文件系统制作过程

内核编译:
make menuconfig配置相应的平台,然后保存退出直接make命令就可以编译了。

文件系统制作:
一般都用busybox开源软件来做,下载,解压,然后make menuconfig配置你想要的属性,然后保存退出,make就可以了,然后make install就会在目录下看到__install的目录就是你要的根文件系统目录了。

阅读全文

与linux内核源码编译教程外包相关的资料

热点内容
pdf数字不显示 浏览:888
convertwordtopdf 浏览:251
程序编译基本单位 浏览:21
python分析图片角度 浏览:60
阿里云服务器能复制数据吗 浏览:560
python拼音转换文字 浏览:563
动画遗传算法 浏览:63
php如何解析xml文件 浏览:702
如何改变appstore的语言 浏览:462
javahtmlxml 浏览:34
单片机启动文件 浏览:811
橙app如何开启聊天 浏览:899
访问服务器公网地址 浏览:666
pdf打印底色去掉 浏览:463
java快递接口 浏览:397
哪个app可以教新爸爸 浏览:210
如何查看服务器系统版本信息 浏览:524
成都市土地出让金算法 浏览:704
钢筋加密标记 浏览:578
ps中扩展功能在文件夹的什么位置 浏览:905