实验二 Linux内核编译
编译Linux内核
操作系统课程设计实验报告实验名称:编译Linux内核姓名/学号:俞文昌/20072842一、实验目的学习重新编译Linux内核,理解、掌握Linux内核和发行版本的区别。
二、实验内容编译Linux内核是一件比你想像的还要简单的事情,它甚至不需要你对内核有任何的了解,只要你具备一些基本的Linux操作系统的知识就可以进行。
本次实验,要求你在Fedora 10的Linux系统里,下载并重新编译其内核源代码(版本号2.6.27.5);然后,配置GNU的启动引导工具grub,成功运行重新编译成功的Linux 内核。
三、实验环境Fedaro10.四、实验步骤1.准备工作:安装Fedora 10。
给Linux分区至少分配15G的磁盘空间。
安装时,需选择安装开发工具,包括Gcc。
2.下载部署内核源代码:2.1检查当前内核版本:输入命令:uname –r:这一部检查当前内核的版本号,一边与后面自己编译的内核作比较。
2.2下载内核源码:我是在Windows下下载的,并传到了Linux下的Gavin文件夹(我的文档)下。
并解压:3.配置内核:在编译内核前,一般来说都需要对内核进行相应的配置。
配置是精确控制新内核功能的机会。
配置过程也控制哪些需编译到内核的二进制映像中(在启动时被载入),哪些是需要时才装入的内核模块(module)。
配置内核编译选项的方法有很多种:●make menuconfig,使用基于文本的选单式配置界面●make xconfig,使用X Windows (Qt) 界面●make gconfig,使用X Windows (Gtk) 界面●make oldconfig,使用文本界面,按照./.config文件的内容取其缺省值●make silentoldconfig,与上一个一样;不同的是,不再逐项提问了为与Fedora 10的配置选项一致,我们可以将Fedora 10的配置文件复制过来:具体操作如下。
linux内核编译过程
试验一、Linux 系统生成一、实验内容1、安装VmWare虚拟机2、安装Linux下载Linux源码,生成Linux,并用新Linux重起系统二、注意事项1、VmWare中,Linux与Windows文件互访问题。
Windows中设置共享文件夹虚拟机中edit/preference菜单项enable共享启动Linux后places菜单项/connet to server/windows share2、安装Linux版本问题超级用户root软件包的安装①/etc/apt/soruces.lists 修改源②system/administration/language support 中文支持③system/administration/synaptic package manager 安装libncursesw5-dev grub3、Linux系统生成wget source /...source codetar -xjvf linux-2.6......make cleanmake menuconfigmake bzImagemake modulesmake modules_installmake installcp arch/x86/boot/bzImage /boot/vimluz2.6.38cd /bootmkinitramfs -o initrd.img-2.6.38 2.6.38update-grub set timeoutreboot 重启Linuxcat /proc/version2增加系统调用linux2.6.32.57/usr/src/linux-2.6.32.57/kernel/sys.c/usr/src/linux-2.6.32.57/include/asm-generic/unistd.h/usr/src/linux-2.6.32.57/include/linux/syscalls.hArch/x86/kernel/syscall_table_32.S调用:Syscall(337,参数);3常用命令Man 2 syscallsStrace ./mmDmesg:查看printk输出Kdb。
linux实验报告(编译内核)参考模板
湖北大学学生实验报告实验课程网络实用技术开课学院计算机与信息工程学院任课教师徐婕学生姓名骆婧学生学号20112211042100 70专业班级计科一班学生年级2011级2013-2014 学年第二学期一.实验目的通过实验,熟悉Linux操作系统的使用,掌握构建与启动Linux内核的方法;掌握用户程序如何利用系统调用与操作系统内核实现通信的方法,加深对系统调用机制的理解;进一步掌握如何向操作系统内核增加新的系统调用的方法,以扩展操作系统的功能。
二.实验内容1.Linux环境下的C或者C++编译和调试工具的使用2.向Linux内核增加新的系统调用,系统调用的功能为打印出自己的学号和姓名信息。
3.Linux新内核的编译、安装和配置。
4.编写应用程序以测试新的系统调用并输出测试结果。
三、实验步骤第一步:解压文件1.下载linux-3.13.3.tar.xz压缩包。
2.在Ubantu系统下,解压该文件,解压之后得到linux-3.13.3文件包# tar –xf linux-3.13.3.tar.xz3.将解压后的文件包复制到/usr/src# cp linux3.13.3 /usr/src第二步:修改源程序,增加系统调用1.gedit /usr/src/linux-3-13.3/kernel/sys.c (增加系统调用,使用面向内核的打印函数printk打印姓名学号)使用gedit命令,可以直接在文档编辑器中直接修改。
修改好后按保存关闭文档编辑器。
在开头加入头文件:#include<linuxlinkage.h>在末尾加入函数asmlinkage int sys_mycall(void){printk(KERN_ALERT "My name is XXXX!My studentid is XXXXXXX\n");return 1;}2.gedit /usr/src/linux-3-13.3/arch/x86/include/asm/syscalls.h在倒数第二行后插入asmlinkage int sys_mycall(void);3.gedit /usr/src/linux-3-13.3/arch/x86/syscalls/syscall_32.tbl最后一行添加一个系统调用的ID351 i386 mycall sys_mycall第三步:编译安装内核首先进到/usr/src/linux-3.13.3文件夹下# cd /usr/src/linux-3.13.31.make mrproper(清除内核中不稳定的目标文件,附属文件及内核配置文件)2.# make menuconfig保存设置Save并退出Exit3.# make bzImage (编译内核,大概需要20分钟,最后会出现提示:bzImageis ready。
编译linux实验报告
编译linux实验报告
编译Linux实验报告
在计算机科学领域,Linux操作系统一直被广泛使用。
它是一个开放源代码的操作系统,具有稳定性和安全性。
在本次实验中,我们将学习如何编译Linux内核,并撰写实验报告以记录我们的实验过程和结果。
实验目的:
1. 了解Linux内核的编译过程
2. 熟悉编译工具和技术
3. 掌握编译过程中可能遇到的问题和解决方法
实验步骤:
1. 下载Linux内核源代码
2. 解压源代码并配置编译环境
3. 使用make命令编译内核
4. 安装编译后的内核
5. 测试新内核的稳定性和功能
实验结果:
经过一系列的操作,我们成功地编译了Linux内核,并将其安装到我们的计算机上。
新内核的稳定性和功能得到了验证,证明我们的编译过程是成功的。
实验总结:
通过本次实验,我们不仅了解了Linux内核的编译过程,还学习了如何使用编译工具和技术。
在实验过程中,我们遇到了一些问题,但通过查阅资料和尝试不同的解决方法,最终成功地完成了编译过程。
这次实验为我们提供了宝贵的
经验,也增强了我们对Linux操作系统的理解和掌握。
总的来说,编译Linux内核的实验是一次有意义的学习过程,我们通过实践提升了自己的技能和知识水平。
希望在未来的学习和工作中,能够运用这些经验和技能,为我们的计算机科学之路增添更多的成就和贡献。
Linux的移植_实验2_Linux内核的编译实验
实验2 Linux内核编译实验【实验目的】掌握Linux内核的编译过程【实验步骤】第一步:减压内核文件减压到/work目录下本实验用的的源代码放在kernel目录下,文件名为270-s-2.6.9_lcd5.6.tar.gz,将其复制到共享目录下,然后在linux的终端执行tar –zxvf 270-s-2.6.9_lcd5.6.tar.gz –C /work/ 命令将其减压到/work目录下。
【图2-1】第二步:配置内核1、切换到/work/ Linux内核目录中,编辑Makefile文件,对交叉编译工具进行配置。
【图2-2】2、找到ARCH 及CROSS_COMPILE项,并按照以下进行修改,并保存退出。
ARCH ?= armCROSS_COMPILE ?= /opt/xscalev1/bin/arm-linux-其中ARCH项为指定处理器的架构,CROSS_COMPILE项为指定我们编译需要用的交叉编译工具(该项也可以使用相对路径)【图2-3】3、执行make xsbase270edr_defconfig ,将xsbase270edr_defconfig配置文件复制到当前目录下,名称为.config【图2-4】4、执行make menuconfig 命令,进入内核配置的图形配置界面【图2-4】5、在弹出的内核配置对话框中,我们可以根据自己的要求对内核进行配置(裁剪)在本次试验中,我们直接调用是配置好的文件,直接选择Exit即可。
【图2-5】第三步:对内核进行交叉编译1、直接执行make命令对内核进行交叉编译,大概会花10多分钟时间(不同计算机配置时间会有所不同)【图2-6】2、编译完成会在arch/arm/boot/下生成zImage文件,该文件即为我们需要的内核文件。
从编译的提示信息也可看出。
【图2-7】第四步:将生成的zImage文件复制到/tftpboot目录下【图2-8】第五步:将内核文件下载到目标平台进行测试,请按照前面的内核下载实验文档进行下载测试。
Linux内核编译及常见错误实验报告
***学生实验报告一、实验目的(1)学习重新编译Linux内核的方法(2)理解Linux标准内核和发行版本内核的区别。
二、实验内容在Linux系统中下载同一发行版本的版本号较高的内核,编译之后运行自己编译的内核,并使用uname-r命令查看是否运行成功。
由于不同版本的内核在编译过程中可能出现不同的问题,本书推荐的内核版本为4.16.10。
从第7章开始的进阶实验篇,都可以选用该版本的内核。
三、实验设备Vmware上运行的linux ubuntu 5.11.0-43-generic实验成功:linux ubuntu 4.18.0-generic(Ubuntu18.04均可)实验成功的方法在最后四、实验过程和原理分析一、实验(一)准备工作:在这里我建议用一个全新的虚拟机,避免编译错误对原来常使用的虚拟机造成不可逆的影响,安装好后就先安装gcc、make等工具首先下载好Linux***内核文件解压至/usr/src 目录下,如下:确认安装好gcc、make等工具,后可直接运行命令sudo make menuconfig进行查看内核功能是否需要编译,如果遇到如下错误可以运行命令sudo apt bison 或sudo apt-get install fiex bison命令解决错误:解决:(不建议)(强烈建议)除此之外还可以直接运行,上一条命令解决不了就用下面这个:sudo apt-get install --reinstall bison libbison-dev flex libfl-dev解决上述错误(强烈建议)运行完上述命令后再次输入sudo make menuconfig便正常进入如下:见到这个界面后无需任何多余操作,使用键盘方向键选择<Save>回车再回车即可此时.config文件生成成功.config文件是隐藏文件记得加参数-a此外还有一个方法就是用cp 命令从原有系统的内核复制.config文件过来也可以命令:sudo cp /boot/config- 5.11.0-43-generic ./.config(二)编译内核为了避免多线程编译时同时出现过多错误,我们这里一开始只使用单线程编译在这里除了用make编译还可以用make-kpkg等工具,个人比较喜欢用make-kpkg但课本用make所以我接下来的实验也先用make完成。
Linux内核配置、编译分析实验
拷贝demo.o,运行测试程序test_demo
实验:以[*]和[M] 方式编译demo驱动,并下载测试
© 2005 博创科技
பைடு நூலகம்
.config:内核配置文件,包含由用户选择的配置选项,用来存放内核配置后 的结果(如 make menuconfig)
Rules.make:规则文件,被所有的 Makefile 使用
© 2005 博创科技
博创科技 嵌入互动
Linux内核的编译
# make menuconfig
----配置编译选项
© 2005 博创科技
(1)基于字符界面的 make config
博创科技 嵌入互动
© 2005 博创科技
博创科技 嵌入互动
(2)基于 Ncurses 图形界面的 make menuconfig
© 2005 博创科技
博创科技 嵌入互动
(3)基于 Xwindows 图形界面的make xconfig
博创科技 嵌入互动
如何在内核配置中添加一个编译模块(1)
1、在内核的驱动目录下编写驱动模块代码 本例中kernel-2410s/drivers/char /demo.o
2、在该级目录下的Config.in中添加对该模块的编译条件变量 如:CONFIG_S3C2410_DEMO 该变量可以设置为三种状态: Y----将该功能模块编译进内核 N ---不将该功能模块编译进内核 M ---将该功能编译成模块的方式,可以在需要时动态插入到内核中的模块
© 2005 博创科技
博创科技 嵌入互动
如何在内核配置中添加一个编译模块(2)
实验2-5 Bootloader和Linux内核的编译实验
实验2-5 BootLoader和Linux内核的编译实验【实验目的】掌握Bootloader的编译.掌握Linux内核的编译过程.【实验步骤】BootLoader部分:第一步: 先解压Bootloader.【图2-5-1】第二步: 解压Jflash工具。
【图2-5-2】第三步: 使用make程序管理器可以构建boot程序(如果已有boot文件,且没有对源程序代码进行过修改,可以跳过该步骤)。
【图2-5-3】第四步: 将Bootloader下的boot文件拷贝到Jflash目录下。
【图2-5-4】第五步: 在Jflash/Jflash-XSBase270下输入./jflashmm boot进行烧写bootloader。
(注:如果不把boot拷贝过来也是可以烧写的,只是需要添加boot所在的目录)【图2-5-5】Linux内核编译部分:第六步: 先解压内核。
【图2-5-6】第七步: 进入内核目录,输入make menuconfig进入菜单模式。
【图2-5-7】第八步: 可以看到如下界面。
【图2-5-8】第九步: 修改System Type->Intel PXA270/250/210 Implementations->(XSBase270-DVK)XSBase270 Board Type改成(XSBase270-EDR)XSBase270 Board Type。
【图2-5-9】第十步: 保存退出,输入make dep构建文件间的关系依赖链。
【图2-5-10】第十一步: 输入make zImage,构建内核文件zImage 。
【图2-5-11】第十二步: 编译完成后,在./arch/arm/boot下可以看到生成的zImage.【图2-5-12】第十三步: 将zImage拷贝到/tftpboot下即可.。
实验2:Linux内核编译
实验2:Linux内核编译原来的系统是redhat9.5,内核2.4.20-8,编译的内核2.4.32。
共分为四部分:编译前准备->编译新内核->运行新内核一编译前准备1)下载一份内核源代码,例如linux-2.6.32.tar.gz,你可在如下地址下载它或者是更新的版本:/pub/linux/kernel/v2.4/2) 检查redhat中是否已有模块工具软件module-init-tools(提供depmod [/sbin/depmod]等):# rpm –q modutils如果没有或者版本太低,在如下地址下载最新版本:/pub/linux/kernel/people/rusty/modules/modutils-2.4.21-23.src.rpm安装:# rpm -ivh modutils-2.4.21-23.src.rpm3)将linux-2.6.32.tar.gz拷贝到目录/usr/src/下,解压源码:# tar -zxvf linux-2.6.32.tar.gz生成源码文件子目录/usr/src/linux-2.6.32,进入此目录:# cd linux-2.6.32二编译新内核1)配置内核.有三种方式配置内核:# make config 命令行界面# make menuconfig 字符菜单界面# make xconfig 图形界面虽然选择图形界面比较方便,但配置过程很繁琐,可将现有的配置文件拷贝过来使用(/usr/src/linux-2.6.32/.config)。
2) 编译生成新内核:# cd /usr/src/linux-2.4.32# make dep 创建代码依赖文件(.depend),每次重新配置后都必须做这一步。
# make bzImage 开始编译系统内核(不包括带M选项的模块),生成的压缩文件bzImage在./arch/i386/boot/下。
同时生成未压缩的内核执行文件(vmlinux)和内核符号表(System.map)。
操作系统Linux内核编译实验报告
操作系统课程设计实验报告实验名称:linux的内核编译姓名/学号:一、实验目的熟悉linux的使用,编译内核二、实验内容1. 编译linux的新内核2. 将学号添加到新内核启动菜单中三、实验环境1. 软件环境:Windows 7 旗舰版VMware Workstation 8UbuntuKylin 13.04(内核版本Ubundu with Linux 3.8.0-19)2. 硬件环境Intel core i5-2450M四、程序设计与实现1. 下载并安装VMware Workstation以及Ubuntukylin13.04开机先获取root权限sudopasswd rootEnter new UNIX password: (在这输入你的密码)Retype new UNIX password: (确定你输入的密码)passwd: password updated successfully以后,如果在想获得root权限,只需进行如下的操作:su rootPassword: (在此输入你上面设置的密码)接下来的实验都是在获得root权限下操作的。
打开系统查看系统信息按住ctrl+alt+t打开终端,并输入uname -a以查看内核版本信息可见此版本是ubuntu 3.8.0-19的内核2. 下载内核并编译(1)我下载好的内核存放在Download文件夹里,为了方便直观,我又新建了一个名为kernel的文件夹(mkdir kernel),并将下载好的内核存放在kernel 文件夹里(cp - /root/Downloads/Linux-3.13.6.tar.xz /home/wcsbfangou/kernel)。
(2)解压下载好的内核文件,输入xz -d linux-3.13.6.tar.xz后按回车,再输入tar -xvf linux-3.13.6.tar后按回车,然后会发现kernel下的文件变成linux-3.13.6 和linux-3.13.6.tar(3)进入kernel文件夹(cd linux-3.15.5),然后执行make menuconfig提示缺少ncurses的库,查了一下百度,需要输入apt-get install libncurses5-dev 来安装缺失的库。
Linux内核编译与安装
实验二实验二报告报告提交日期:2017/3/11 报告提交截止时间:2017/3/18姓名: 学号: 班级:计算机科学与技术五班一、实验题目 Linux内核编译与安装二、实验目的 熟悉Linux内核的编译、安装过程三、实验平台 LinuxMint+Bochs VirtualBox/VMWare✔ Cygwin+Vi/Emacs四、实验要求 下载一个内核完成编译、安装工作五、设计思路和流程图 1. 编译前准备 1.1. 下载源码 1.2.1. 去Linuxmint内置软件管理器下载安装内核编译程序 1.2.2.使用命令下载安装内核编译程序 1.3. 给内核打补丁(可选) 1.4. 将源码解压到/usr/src(目录可换) 在终端管理器打开要解压到的目标目录,通过命令 tar xvf [要解压的压缩文件所在位置] 将压缩文件解压至当前文件夹。
1.5. 建立到/usr/src/linux的符号链接(可选) # ln sv [源地址] [目的地址] 如 # ln sv /usr/src/linux4.10.1 /usr/src/linux 1.6. Q&A 1.6.1. Q:fatal error: curses.h: 没有那个文件或目录 A:在Linuxmint内置的软件管理器中下载安装 libncurses5dev 即可。
1.6.2. Q:error: openssl/ssl.h: No such file or directory A:在Linuxmint内置的软件管理器中下载安装 libssldev 即可。
2. 内核配置阶段 2.1. 可选配置 make config:遍历选择所要编译的内核特性 make allyesconfig:配置所有可编译的内核特性 make allnoconfig:并不是所有的都不编译 make menuconfig:这种就是打开一个文件窗口选择菜单✔ make kconfig(KDE桌面环境下,并且安装了qt开发环境) make gconfig(Gnome桌面环境,并且安装gtk开发环境) 2.2. Q&A 2.2.1. Q:准备编译时系统提示没有 .config 文件 A:从上面的配置方法中任意选择一种方法配置,优先选择 make menuconfig ,选择 save 生成一个 .config 文件即可。
操作系统实验---配置和编译Linux内核
实验题目
姓名:
学号:
课程名称:
操作系统
所在学院:
信息科学与工程学院
专业班级:
计算机
任课教师:
实验项目名称
在Ubuntu16.04上配置和编译Linux内核
一、实验目的与要求:
1.按照提供的连接认真准备实验。
2.提前了解Linux内核的特点以及编译方法。
3.熟悉相关的指令代码并知道其作用。
4.编译完成可使用的内核,内核以姓名和学号命名,请勿直接拷贝其他同学的内核。
二、实验设备及软件:
计算机一台
Linux操作系统
三、实验方法(原理、流程图)
1、构建内核源码树
1)下载安装包
2)解压到内核源码目录下
2、编译内核
1)安装基本工具软件
2)在终端进入你的解压的内核源码的目录
3)依次执行相对应的命令
七、教师批阅意见:
成绩评定:
教师签字:
年月日
八、备注:
(4)依次执行以下命令
$ cd linux-3.19.0
$ cp /boot/config-$(uname -r) .config
$ make menuconfig
$ kg clean
$ fakeroot make-kpkg--initrd--revision166003566.001--append-to-version--20160906 kernel_image kernel_headers
3.编译完成可使用的内核
得到最终文件
四、实验过程、步骤及内容
五、编译内核
(1)安装基本的工具软件。
(2)我是在这里下载的源码包:https:///pub/linux/kernel/v3.x/,我下载的源码包是linux-3.19.0.tar.xz
内核编译实验报告
嵌入式系统实验报告(一)--linux内核配置和编译138352019陈霖坤一实验目的了解嵌入式系统的开发环境,内核的下载和启动过程;了解linux内核源代码的目录结构及各目录的相关内容;了解linux内核各配置选项内容和作业;掌握linux内核的编译过程。
二实验内容与要求配置一个完整的内核,尽可能理解配置选项在操作系统中的作用;将编译的内核文件复制到tftp服务器目录,在目标机中下载并运行。
三环境介绍1交叉编译器PC使用的CPU架构一般为X86架构,实验板采用的处理器是基于Cortex-A8的S5PV210,为ARM内核,所以在PC上能运行的程序在实验板上不能运行,需要用能适用于ARM核心的编译器进行编译,即交叉编译。
本实验所用交叉编译工具链为arm-2009q3,使用时需添加路径export PATH=$PATH:$(TOOLCHAINPATH)/bin/,PATH 为环境变量,在终端中输入命令时系统会根据PATH指定的路径查找,添加的目录下有arm-none-gnueabi-gcc,即我们需要用到的编译器。
2minicomminicom是linux系统中常用的串口调试工具,对应的,windows下有超级终端,或者串口调试助手一类的软件。
串口通信即利用异步串行接口(UART)进行通信,利用TXD和RXD可实现全双工通信。
PC常用的为9针接口,笔记本没有专门串口可利用USB转换,通信标准为RS232。
在终端输入minicom打开软件,Ctrl+A-O进入设置界面。
Serial Device选择通信端口,可以先查看系统中哪个设备是活动的再选择,如果连接线与端口选择不对应会出现无法通信的情况。
对笔记本使用USB转串口一般都以ttyS0挂载。
串口参数选择1152008N1,即波特率115200bps,八位数据位,无校验位,一位停止位。
硬件软件控制流都选择NO。
保存后给开发板上电可以看到从串口打印出的信息。
Linux内核编译实验报告
青岛农业大学理学与信息科学学院Linux课程实验报告设计题目 Linux内核编译学生专业班级通信工程10级1班学生姓名(学号)完成时间 2012-11-82012 年 11 月 15 日内核编译一、内核编译的原因及好处内核是一个操作系统的核心,负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
通常,更新的内核支持更多的硬件,具备更好的进程管理能力,运行速度更快、更稳定,并且会修复老版本中发现的许多漏洞等。
经常性地选择升级更新的系统内核,是Linux用户的必要操作内容。
编译内核的好处:1。
最优化服务器2。
出于安全需禁止某些默认功能3。
添加REDHAT LINUX默认未做选择的功能4。
需要更改无法用/proc/sys来变更的核心运行参数5.更好地匹配计算机上的硬件特质二、内核的编译模式内核编译模式可以分为编译到内核和编译成模块两种模式。
要增加对某部分功能的支持,例如网络等,可以把相应部分编译到内核中(build-in),也可以把该部分编译成模块(module)动态调用。
如果编译到内核中,在内核启动时就可以自动支持相应部分的功能,其优点是方便、速度快,机器启动即可使用这部分功能;其缺点是使内核变得庞大起来,无论是否需要这部分功能,它都会存在。
建议将经常使用的部分直接编译到内核中,如网卡。
如果编译成模块,则生成对应的.o文件,使用时可以动态加载,优点是不会使内核过分庞大,缺点是必须得由用户自己来调用这些模块。
三、内核的编译过程1.下载新内核在/pub/linux/kernel可以下载Linux的最新内核代码。
内核的源代码按内核版本(v2.4、v2.5等)组织到多个不同的目录中。
在每个目录中,文件被冠以“linux-x.y.z.tar.gz”和“linux-x.y.z.tar.bz2”等,这些就是Linux内核的源代码。
同时存在一些类似“patch-x.y.z.gz”和“patch-x.y.z.bz2”的文件,这是用来更新前面完整的内核源代码的补丁包。
linux 编译内核-第2次作业
一、编译内核的准备1.首先要取得Ubuntu的root权限.输入指令:su root再输入root账户密码,这样便获得了root权限2.接着我们查看在编译前的内核版本号.3.为保证内核编译的正常进行,要确定分配的硬盘空间大小.(建议16-20G)4.从FTP下载Linux的内核代码,解压缩至/usr/src 目录下,并将文件名修改为:linux .(见图1-4-1)指令如下:1)bzip2 -d linux-2.6.39.tar.bz22)tar -xvf linux-2.6.39.tar3)ln –s linux-2.6.39/ linux5.安装必要的编译工具.指令如下:1)sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot .2)sudo aptitude install libqt3-headers libqt3-mt-dev libqt3-compat-headers libqt3-mt6.编译前的清除、链接工作.指令如下:1)make mrproper2)cd /usr/include/3)rm -r asm linux scsi4)ln -s /usr/src/linux/include/asm-generic asm5)ln -s /usr/src/linux/include/linux linux6)ln -s /usr/src/linux/include/scsi scsi二、开始编译1.配置内核,修改相关参数.指令如下:1)cd /usr/src/linux2)make menuconfig3)修改文件系统:[*] Ext3 journalling file system support [*] Ext3 Security Labels[*] JBD (ext3) debugging support4)网卡驱动:Device Drivers--->Networking support--->Ethernet (10 or 100Mbit) ---><*> RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support (EXPERIMENTAL)<*> RealTek RTL-8139 PCI Fast Ethernet Adapter support5)声卡驱动:Device Drivers --->Sound --->Sound card support --->Advanced Linux Sound Architecture ---><*> Advanced Linux Sound Architecture<*> Sequencer support< > Sequencer dummy client<*> OSS Mixer API<*> OSS PCM (digital audio) API[*] OSS Sequencer API<*> RTC Timer supportPCI devices ---><*> Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111 Open Sound System --->< > Open Sound System (DEPRECATED)2.确保关键文件.指令如下:1)make dep2)make clean3.编译二进制内核映像文件.指令如下:1)make bzImage4.编译模块指令如下:1)make modules2)make modules_install3)模块被编译且安装到/usr/lib/<内核版本号> 目录下.做一些小修改.指令如下:a)cp /usr/src/linux/System.map /boot/System.map-2.6.39b)cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.39c)cp .config /boot/config-2.6.39d)# mkinitramfs -o /boot/initrd.img-2.6.39 2.6.39e)cd /boot;rm -f System.map vmlinuzf)ln -s vmlinuz-2.6.39vmlinuzg)ln -s System.map-2.6.39System.map5.配置启动管理器.指令如下:1)sudo apt-get install startupmanager2)菜单栏中“系统” -> “系统l管理”-> “启动管理器”,选择已编译的内核版本.三、编译结束.1.查看现在的内核版本.11。
Linux内核编译
实验一Linux内核编译一、实验目的重新编译Linux内核,了解编译内核的基本方法和步骤。
熟悉Linux系统的操作命令。
二、实验内容本实验的内容为下载并重新编译Linux内核文件。
重新配置Grub启动文件,进入自己编译的内核运行Linux系统。
三、实验环境硬件配置:惠普Presario V3814TU笔记本。
内存2G,硬盘160G。
主机操作系统:Windows 7虚拟机软件:VMware workerstation 5.5.3实验操作系统:Redhat 9 (内核版本2.4.20-8)待编译内核:linux-2.4.28四、实验方法及步骤Linux内核的编译,分为源码准备、工具准备、配置内核、编译内核、安装模块、内核安装和重启7个步骤。
因为是这是对系统进行重要操作,要以root 的身份登录的系统。
4.1 源码准备可以到下载linux内核源码。
我下载的是linux-2.4.28.tar.bz2,将其移动到/usr/src目录。
进行如下操作:[root@localhost src]# tar –jxvf linux-2.4.28.tar.bz2 内核源码解压[root@localhost src]# ln -s linux2.4.26 linux 建立一个软链接如图1所示:图1 源码准备4.2工具准备本次使用的两个内核版本跨度不大,所以无需特别安装什么工具,如果是升级到2.6.x版本会需要一些而外的工具。
4.3 配置内核该过程是最为关键的一个环节。
我们要在这里将下载的新内核进行按需定制,添加需要的新功能,比如支持NTFS文件系统;去掉用不到的功能,比如软驱支持、红外支持、蓝牙支持等,以提高系统的性能、较少内存占用;同时,将某些功能作为模块加入内核,比如某些字符设备。
具体操作如下:1)将现有系统内核的配置文件复制到当前目录:cp/boot/config-2.4.20-8 .config。
这样做可以保证我们等会进行的内核定制是基于当前系统内核配置进行的,会大大提高我们内核编译的成功率。
linux内核编译详细教程
详细教程:编译Linux最新内核一、实验目的学习重新编译Linux内核,理解、掌握Linux内核和发行版本的区别。
二、实验内容在Linux操作系统环境下重新编译内核。
实验主要内容:A. 查找并且下载一份内核源代码,本实验使用最新的Linux内核2.6.36。
B. 配置内核。
C. 编译内核和模块。
D. 配置启动文件。
本次实验环境是Linux2.6.35内核的环境下,下载并重新编译内核源代码(2.6.36);然后,配置GNU的启动引导工具grub,成功运行编译成功的内核。
三、主要仪器设备(必填)Linux环境:utuntu10.10,linux内核2.6.35待编译内核:linux2.6.36四、操作方法和实验步骤【1】下载内核源代码从/newlinux/files/jijiangmin网站上下载最新的Linux内核2.6.36。
【2】部署内核源代码打开终端,更改用户权限为root。
具体做法是在终端输入sudo su,然后按提示输入密码。
判断是否是root用户是使用whoami命令,若输出为root则已经切换到root账户。
输入mv linux-2.6.36.tar.gz /usr/src,目的是把下载的内核源代码文件移到/usr/src目录。
输入cd /usr/src切换到该目录下。
输入tar zxvf linux-2.6.36.tar.gz,目的是解压内核包,生成的源代码放在linux-2.6.36目录下。
输入cd linux-2.6.36,切换到该目录下。
输入cp /boot/config-,然后按下Tab键,系统会自动填上该目录下符合条件的文件名,然后继续输入 .config,目的是使用在boot目录下的原配置文件。
//这一步可以不走【3】配置内核配置内核的方法很多,主要有如下几种:#make menuconfig //基于ncurse库编制的图形工具界面#make config //基于文本命令行工具,不推荐使用#make xconfig //基于X11图形工具界面#make gconfig //基于gtk+的图形工具界面由于对Linux还处在初学阶段,所以选择了简单的配置内核方法,即make menuconfi g。
试验2:linux程序编译与交叉编译
实验序号:02实验项目名称:linux程序编译与交叉编译
学指导教师
实验时间
一、实验目的及要求
(1)通过学习GCC,了解PC机Linux下程序设计方法;
(2)了解交叉编译过程。
二、实验设备(环境)及要求
硬件:PC机;PXA270试验箱
软件:PC机操作系统linux
五、教师评语
签名:
日期:
成绩
三、实验内容
(1)编写hello.c程序,使用编译器GCC编译,执行程序;
(2)使用ARM-LINUX-GCC进行编译,并下载到目标机上进行执行。
四、实验步骤及结果
在宿主机中的操作: 1.编写hello.c源文件 2.编译hello.c源文件 3.进行交叉编译 4.宿主机上把hello.c源文件复制到NFS上 在目标机上的操作: 5.在目标机上ping通宿主机 6.进行挂载文件7.进入目标文件的目录 8.运行目标文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二: Linux内核编译
一、实验目的
1. 学习和掌握 Linux 编译的基本步骤;
2. 通过实验掌握 Linux 配置、编译过程;
3. 掌握bootloader的编译和使用过程。
二、实验设备
1.硬件:EduKit2410 系统,Embest JTAG 仿真器套件,PC 机;2.软件:Windows 98/2000/NT/XP 操作系统;cygwin UNIX 模拟平台, arm-linux-gcc 编译工具链,Embest Online Flash
Programmer for ARM 编程器。
三、实验内容
1.对 Linux 的内核及用户程序进行配置;
2.编译生成内核映象文件;
3.把编译的映象文件烧写到 Nor FALSH 中,查看运行结果。
四、实验步骤
1.将将Linux系统下的工具链安装解压包:cross-armtools-linux-
edukit2410.tar.bz2在控制台使用以下命令安装:将cross-armtools-linux-edukit2410.tar.bz2拷贝到/tmp/目录下。
在cygwin中输入命令解压
cd /tmp
tar -P -xvjf cross-armtools-linux-edukit2410.tar.bz2
source armtools-linux/cross-install.sh,如图2.1。
图2.1
2.拷贝 Linux 源代码包 linux-2.4.18-rmk7-pxa1-mz5.tar.bz2 到$SOURCEDIR(/tmp/edukit-2410/)目录下;运行 cygwin,首先运行以下命令,设置工作环境变量及检查交叉编译工具是否正确安装:
① cd $WORKDIR,如图2.2。
图2.2
tar -xvjf $SOURCEDIR/linux-2.4.18-rmk7-pxa1-mz5.tar.bz2,如图
2.3。
图2.3
③ ls,如图2.4。
图2.4
3. 解压 Linux 源代码包下载测试程序。
正确解压 Linux 源代码后,执行以下命令对 Linux 进行配置:
1 c d kernel
2 make config,如图2.5。
图2.5
在弹出的配置窗口里,点击"Load configuration from file"选择存放于./arch/arm/def -configs/目录下的配置文件。
这里选择的是为EduKit2410 定制的配置文件 edukit2410-amd。
点击"Save and exit"配置完成后开始编译 Linux,在工作目录下执行以下命令:
3 make mrproper,如图2.6。
图2.6
4 编译通过后,在./arch/arm/boot/目录下生成内核的压缩映像文件zImage。