实验三.Linux内核编译实验

 

实验三   Linux内核编译实验

实验目的了解并掌握内核编译过程,进一步理解make命令,学习Makefile文件,并对linux2.4.18linux2..6.18内核有初步的了解,学习里面的编码,弄明白它们代表的什么意思。

实验内容:

一.解包内核源码文件

       在自己的主目录下,输入cp  –a  /tmp/linux-2.4.18-br.tar.gz  ./ linux-2.4.18的内核复制到自己的主目录下,再输入cp  –a  /tmp/linux-2.6.18.tar.bz2  ./ linux-2.6.18的内核也复制到自己的主目录下。
      
输入tar –zxvf  linux-2.4.18-br.tar.gz  tar –jxvf  linux-2.6.18.tar.bz2 分别解压这两个文件

二.修改Makefile

进入linux目录,用vi查看Makefile文件,改成下列配置。      

2.4.x内核:

ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)

CROSS_COMPILE   =

将这两行改为:

ARCH                      ?= arm

CROSS_COMPILE ?= /opt/host/armv4l/bin/armv4l-unknown-linux-

 

2.6.x 内核:

ARCH            ?= $(SUBARCH)

CROSS_COMPILE   ?=

 

将这两行改为:

 

ARCH                      ?= arm

CROSS_COMPILE ?= arm-linux-

 

. 编译

 # cd  /linux内核源码目录

  # make mrproper

# make smdk2410_config (对内核2.4

       # make menuconfig

如选择System Type后,出现:

支持启动;改变 AIJI;支持s3c2410 USB 接口;支持s3c2410 USB驱动;

支持ARM920T CPU 空闲;支持ARM920T I-缓存;支持ARM920T D-缓存;

# make dep ----- 内核2.6不需要此步
# make zImage    -----   bzImage
zImage区别

 
# make modules  
配置时有模块选项,则需要这后两步
# make modules_install
INSTALL_MOD_PATH=$TARGETDIR

General setup下:(普通的属性配置)

       ROM的基地址设为0 ;支持热插驱动;支持网络;

MTD下:(存储器技术驱动)

  

 

支持存储器技术驱动;支持MTD;字符驱动直接接收为MTD驱动;缓存块驱动接收为MTD驱动;

File systems
  文件系统。内容又太多了,老法子,在缺省选项的基础上进行修改。介绍以下几项:

  Quota supportQuota可以限制每个用户可以使用的硬盘空间的上限,在多用户共同使用一台主机的情况中十分有效。
  DOS FAT fs supportDOS FAT文件格式的支持,可以支持FAT16FAT32
  ISO 9660 CD-ROM file system support:光盘使用的就是ISO 9660的文件格式。
  NTFS file system supportntfsNT使用的文件格式。
  /proc file system support/proc文件系统是Linux提供给用户和系统进行交互的通道,建议选上,否则有些功能没法正确执行。

  还有另外三个大类都规到这儿了:Network File Systems(网络文件系统)、Partition Types(分区类型)、Native Language Support(本地语言支持)。值得一提的是Network File Systems里面的两种:NFSSMB分别是LinuxWindows相互以网络邻居的形式访问对方所使用的文件系统,根据需要加以选择。
Block devices
  块设备支持。这个就得针对自己的情况来选了,简单说明一下吧:

  Normal PC floppy disk support:普通PC软盘支持。这个应该必选。
  XT hard disk support
  Compaq SMART2 support
  Mulex DAC960/DAC1100 PCI RAID Controller supportRAID镜像用的。
  Loopback device support
  Network block device support:网络块设备支持。如果想访问网上邻居的东西,就选上。
  Logical volume managerLVMsupport:逻辑卷管理支持。
  Multiple devices driver support:多设备驱动支持。
  RAM disk supportRAM盘支持。

实验总结:

       在实验中遇到一些问题,例如在复制的时候我记得原来用cp  –a  /tmp/linux-2.4.18-br.tar.gz 就可以了,可这次不行必须要用cp  –a  /tmp/linux-2.4.18-br.tar.gz  ./到自己的目录下。还有解压linux-2.6.18时,必须要解压两次,才能成功。不过最后都顺利解决了问题,在编译S3C2410时又一次复习了make menuconfig的编译配置。逐步慢慢理解嵌入式系统这门课应该怎么学。

你可能感兴趣的:(嵌入式系统)