实验3-Linux内核编译实验
- 格式:doc
- 大小:615.00 KB
- 文档页数:7
实验3-L i n u x内核编译实验《嵌入式系统》实验报告3 学号:姓名:班级:成绩:之后就可以make编译了:$ make zImage该命令的含义是:编译内核并生成一个新内核映像文件zImage所得到的内核文件有哪些?分别在什么目录?Init lib module.symvers System.map vmlinux vmlinux.o 4. 驱动安装在作业系统上的资源中下载并解压drivers.rar将其在D盘解压:“解压到当前文件夹”4.1 安装usb串口驱动运行:D:\drivers\win7\PL2303_Prolific_DriverInstaller_v110.exe5.设备连接及设置5.1 连接USB串口设备(领取USB串口设备)将USB串口设备插入电脑背面USB接口系统会自动识别该USB设备,该设备号可以通过电脑的“设备管理器->端口”查看;该USB串口的设备号是:Prolific USB-to-Serial Comm Port(COM4)。
相应的截图(根据实际情况,替换以下截图)为:5.2 打开putty打开:D:\drivers\putty.exe设置串口连接、串口号以及波特率;其中,串口号(serial line)为2.1所示的串口设备号。
5.3 tftp server设置新建文件夹:D:\tftpserver,便于tftp服务用;打开D:\drivers\Tftpd32\tftpd32.ini文件,将“BaseDirectory=.”更改为:“BaseDirectory=D:\tftpserver”打开“D:\drivers\Tftpd32\ tftpd32.exe”,启动tftp服务器6. 打开实验箱,建立连接通信(领取实验箱)6.1 将实验板拿出后,拨动拨码开关至【1000】,如下图所示,即从NAND Flash 启动。
6.2 将串口线和设备的第一个串口相连6.3 通过网线将PC的第一个网口(上面的网口)和开发板对连配置网络:打开网络和共享中心→更改适配器设置→网络2属性→Internet协议版本4(TCP/IPv4)→设置IP,如下图所示(IP为内网192网段的,如192.168.100.**)6.4 关闭PC系统防火墙控制面板→系统和安全→Windows防火墙→打开和关闭Windows防火墙—〉关闭Windows防火墙6.5 启动开发板,进入下载模式切换到putty操作界面,在开发板启动时,敲击任意键,进入到开发板的下载模式,如下图所示:通过help可以查看该bootloader所有的命令6.6 修改开发板环境变量FS210 # setenv serverip 192.168.100.192 //主机PC的IP 地址FS210 # setenv ipaddr 192.168.100.191 //板子的IP,不要和Windows IP 冲突FS210 # saveenv //保存环境变量使用【print】命令查看修改后的环境变量。
操作系统课程设计实验报告实验名称:编译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的配置文件复制过来:具体操作如下。
湖北大学学生实验报告实验课程网络实用技术开课学院计算机与信息工程学院任课教师徐婕学生姓名骆婧学生学号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内核,并撰写实验报告以记录我们的实验过程和结果。
实验目的:
1. 了解Linux内核的编译过程
2. 熟悉编译工具和技术
3. 掌握编译过程中可能遇到的问题和解决方法
实验步骤:
1. 下载Linux内核源代码
2. 解压源代码并配置编译环境
3. 使用make命令编译内核
4. 安装编译后的内核
5. 测试新内核的稳定性和功能
实验结果:
经过一系列的操作,我们成功地编译了Linux内核,并将其安装到我们的计算机上。
新内核的稳定性和功能得到了验证,证明我们的编译过程是成功的。
实验总结:
通过本次实验,我们不仅了解了Linux内核的编译过程,还学习了如何使用编译工具和技术。
在实验过程中,我们遇到了一些问题,但通过查阅资料和尝试不同的解决方法,最终成功地完成了编译过程。
这次实验为我们提供了宝贵的
经验,也增强了我们对Linux操作系统的理解和掌握。
总的来说,编译Linux内核的实验是一次有意义的学习过程,我们通过实践提升了自己的技能和知识水平。
希望在未来的学习和工作中,能够运用这些经验和技能,为我们的计算机科学之路增添更多的成就和贡献。
linux操作系统内核实验报告篇一:linux操作系统实验报告LINUX操作系统实验报告姓名班级学号指导教师XX 年 05月 16 日实验一在LINUX下获取帮助、Shell实用功能实验目的:1、掌握字符界面下关机及重启的命令。
2、掌握LINUX下获取帮助信息的命令:man、help。
3、掌握LINUX中Shell的实用功能,命令行自动补全,命令历史记录,命令的排列、替换与别名,管道及输入输出重定向。
实验内容:1、使用shutdown命令设定在30分钟之后关闭计算机。
2、使用命令“cat /etc/cron.daliy”设置为别名named,然后再取消别名。
3、使用echo命令和输出重定向创建文本文件/root/nn,内容是hello,然后再使用追加重定向输入内容为word。
4、使用管道方式分页显示/var目录下的内容。
5、使用cat显示文件/etc/passwd和/etc/shadow,只有正确显示第一个文件时才显示第二个文件。
实验步骤及结果:1. 用shutdown命令安全关闭系统,先开机在图形界面中右击鼠标选中新建终端选项中输入命令Shutdown -h 302、使用命令alias将/etc/cron.daliy文件设置为别名named,左边是要设置的名称右边是要更改的文件。
查看目录下的内容,只要在终端输入命令即可。
取消更改的名称用命令unalias命令:在命令后输入要取消的名称,再输入名称。
3.输入命令将文件内容HELLO重定向创建文本文件/root/nn,然后用然后再使用追加重定向输入内容为word。
步骤与输入内容HELLO一样,然后用命令显示文件的全部内容。
4.使用命令ls /etc显示/etc目录下的内容,命令是分页显示。
“|”是管道符号,它可以将多个命令输出信息当作某个命令的输入。
5实验二文件和目录操作命令实验目的:1、掌握LINUX下文件和目录的操作命令,如pwd、cd、ls、touch、mkdir、rmdir、cp、mv、rm等。
实验三:LINUX 下C语言使用、编译与调试实验一、目的:1、练习并掌握Linux提供的vi编辑器来编译C程序2、学会利用gcc、gdb编译、调试C程序3、学会使用make工具二、内容1、编写C语言程序,用gcc编译并观察编译后的结果,运行生成的可执行文件。
2、利用gdb调试程序。
3、学习编写makefile,并进行编译。
三、操作1、文件编辑器vi进入vi,直接执行vi编辑程序。
例:# vi test.c显示器出现vi的编辑窗口,同时vi会将文件复制一份至缓冲区(buffer)。
vi先对缓冲区的文件进行编辑,保留在磁盘中的文件则不变。
编辑完成后,使用者可决定是否要取代原来旧有的文件。
1) vi的工作模式(1)输入模式输入以下命令即可进入vi输入模式:a 在光标之后加入资料A 在该行之末加入资料i 在光标之前加入资料I 在该行之首加入资料o 新增一行于该行之下O 新增一行于该行之上(2)命令模式在输入模式下,按ESC可切换到命令模式。
命令模式下,可选用下列指令离开vi::q! 离开vi,并放弃刚在缓冲区内编辑的内容:wq 将缓冲区内的资料写入磁盘中,并离开viZZ 同wq:x 同wq:w 将缓冲区内的资料写入磁盘中,但并不离开vi:q 离开vi,若文件被修改过,则要被要求确认是否放弃修改的内容,此指令可与:w配合使用(3)命令模式下光标的移动h 左移一个字符j 下移一个字符k 上移一个字符l 右移一个字符0(零)移至该行的行首$ 移至该行的行尾^ 移至该行的第一个字符处H 移至窗口的第一行M 移至窗口中间那一行L 移至窗口的最后一行G 移至该文件的最后一行W, w 下一个单词(W 忽略符号)B, b 上一个单词(B 忽略符号)(4) 命令模式下的编辑命令dd 删除当前光标所在行yy 复制当前光标所在行p 将复制的内容粘贴在光标所在的位置后P 将复制的内容粘贴在光标所在的位置前x 删除当前光标字符X 删除当前光标之前字符u 撤消·重做2、GNU C编译器1) 使用gcc通常后跟一些选项和文件名来使用gcc编译器。
实验三分步构建交叉编译链一、实验目的1、理解交叉编译的原理,了解交叉编译工具链2、掌握分步构建交叉编译工具链的方法二、实验内容实验在理解交叉编译原理和交叉编译工具链的基础上,分步构建交叉编译工具链,主要步骤如下:(1)准备工作:下载好所需要的软件包,准备好内核头文件、组织好目录。
(2)编译Binutils:这个软件包的编译相对简单,一般容易实现。
(3)编译辅助gcc编译器:对gcc进行简单配置后,编译gcc,使其不依赖glibc,只对C语言支持,为后面glibc的编译做准备。
(4)编译glibc库:首先对解压的内核头文件进行配置。
在上一步的编译过程中,已经生成arm-linux-gcc工具,利用该工具编译glibc库。
(5)重新编译完整的gcc:完整的gcc的编译需要glibc库的支持,在第一步的时候glibc还未被编译,所以只能简单配置,生成辅助的gcc,而在这一步,glibc库已经编译,可以使用,实现对gcc的完整编译。
(6)编译gdb调试器:调试器与前面的那些软件是相互独立的,因此最后编译。
三、实验过程(1)准备工作:根据课本上编译工具链所需资源列表,下载所需的软件包并解压,放置在一特定文件夹中,通过设置实现虚拟机与物理机的文件共享。
本实验中的共享文件夹为“Linux”。
所需软件包如下:(2)详细过程1、建立工作目录当前的用户为root,在用户目录下首先建立一个工作目录(armlinux),建立工作目录的命令行操作如下:# cd /root# mkdir armlinux在armlinux下建立3个目录 build-tools、kernel 和 tools。
具体操作如下:# cd armlinux# mkdir build-tools kernel tools其中build-tools 用来存放下载的binutils、gcc、glibc等源代码和用来编译这些源代码的目录;kernel 用来存放内核源代码;tools 用来存放编译好的交叉编译工具和库文件。
linux实验三makefile,linux内核编译⽣成makefile⽂件实验报告.doclinux内核编译⽣成makefile⽂件实验报告操作系统实验报告姓名: 学号:⼀、实验题⽬1.编译linux内核2.使⽤autoconf和automake⼯具为project⼯程⾃动⽣成Makefile,并测试3.在内核中添加⼀个模块⼆、实验⽬的1.了解⼀些命令提⽰符,也⾥了解⼀些linux系统的操作。
2.练习使⽤autoconf和automake⼯具⾃动⽣成Makefile,使同学们了解Makefile的⽣成原理,熟悉linux编程开发环境三、实验要求1使⽤静态库编译链接swap.c,同时使⽤动态库编译链接myadd.c。
可运⾏程序⽣成在src/main⽬录下。
2要求独⽴完成,按时提交四、设计思路和流程图(如:包括主要数据结构及其说明、测试数据的设计及测试结果分析)1.Makefile的流程图:2.内核的编译基本操作1.在ubuntu环境下获取内核源码2.解压内核源码⽤命令符:tar xvf linux-3.18.12.tar.xz3.配置内核特性:make allnoconfig4.编译内核:make5.安装内核:make install6.测试:cat/boot/grub/grub.conf7.重启系统:sudo reboot,看是否成功的安装上了内核8.详情及结构见附录3.⽣成makefile⽂件:1.⽤⽼师给的projec⾥的main.c函数。
2.需要使⽤automake和autoconf两个⼯具,所以⽤命令符:sudo apt-get install autoconf进⾏安装。
?autoscan.log和configure.scan,将configure.Scan改名为configure.ac,同时⽤gedit打开,打开后⽂件修改后的如下:# -*- Autoconf -*-# Process this file with autoconf to produce a configure script.AC_PREREQ([2.69])AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])AC_CONFIG_SRCDIR([main.c])AC_CONFIG_HEADERS([config.h])AM_INIT_AUTOMAKE(main,1.0)# Checks for programs.AC_PROG_CC# Checks for libraries.# Checks for header files.# Checks for typedefs, structures, and compiler characteristics.# Checks for library functions.AC_OUTPUT(Makefile)4.新建Makefile⽂件,如下:AUTOMAKE_OPTIONS=foreignbin_PROGRAMS=mainfirst_SOURCES=main.c5.运⾏命令aclocal命令成功之后,在⽬录下会产⽣aclocal.m4和autom4te.cache两个⽂件。