实验03--内核裁减与文件系统建立汇总 - 图文

更新时间:2024-03-02 15:46:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验三 内核裁减与根文件系统建立

姓名: 学号: 时间: 地点:

实验目的:熟悉内核和根文件系统的烧写,裁剪的基本操作, 熟悉根文件系统的建立

实验设备:PC机,虚拟机Linux系统, 开发板

实验内容:

1. 内核的裁剪过程的基本名令

2. 文件系统建立busybox的配置, 建立目录,复制文件,建立文件镜像. 3. 在虚拟机pc-linux启动tftp服务,下载内核和文件系统到开发板.

操作步骤:

实验3-1 内核和根文件系统烧写到flash中.

此操作需要用到tftpd32.exe ,在widows下的F盘建立一个目录img,将虚拟机上的/arm2410cl24/img下的内容复制到F:/img下。启动tftpd32,将current directory 指定为f:/img。将开发板启动,进入vivi。设置服务器的ip地址和开发板的ip地址。然后,烧写内核和根文件。

操作步骤:

1) 在windows 下,在F盘下建立share目录

2) 在虚拟机(PC-Linux) VM?setting->option 可以将F:/share 设置为共享目录。

3) 将 /arm2410cl24/img/ 复制到共享目录中 /mnt/hgfs/share

4) 在windows下启动tftpd32,将current directory 指定为F:/share

5) 启动超级终端(或者minicom)

6) 启动开发板,进入vivi

7) 察看vivi的命令

[vivi] help

8) 设置服务器的ip地址,设置开发板的ip地址(确保他们在同一网段)

查看ip地址

[vivi] ifconfig

设置服务器(PC-WIN)和开发板的ip地址

[vivi] ifconfig server 192.168.1.112 (服务器 PC-WIN) [vivi] ifconfig ip 192.168.1.110 (开发板) [vivi] ifconfig save (保存) [vivi] ifconfig (查看)

9) 烧写内核

[vivi] tftp flash kernel zImage

10) 烧写根文件

[up-2410] tftp flash root root.cramfs

11) 启动开发板 [vivi] boot

3.2内核的裁剪过程(制作开发板的linux操作系统) (1)Linux内核的获取

将linux内核备份,然后裁减: # cp –arf /arm2410cl/kernel /home cp –arf /arm2410cl/kernel /home

进入到内核目录:#cd /home /kernel/linux-2.6.24.4

#make clean (清除以前的编译文件)

(2) 配置内核 # make menuconfig 配置usb无线网卡驱动

Networking (协议配置)

wireless-- Generic IEEE 802.11 Networking Stack

Device driver (无线设备驱动配置)

Network device support--Wireless LAN--Wireless LAN (IEEE 802.11)

配置usb的多媒体设备(usb摄像头)

1) Device driver? Multimedia devices? Video for linux (linu视频处理)

2)Device driver? Multimedia devices?video capture adapter?V4L usb device? USB ZC0301[P] Image Processor and Control Chip support (USB摄像头驱动)

3)Device driver?Graphics support? Support for frame buffer devices? S3C2410 LCD framebuffer support ( LCD的帧缓冲支持)

配置NAND设备

Device driver? Memory Technology Device (MTD) support [*] MTD partitioning support

[*]Command line partition table parsing

RAM/ROM/Flash chip drivers?

<*> Detect flash chips by Common Flash Interface (CFI) probe <*> Detect non-CFI AMD/JEDEC-compatible flash chips <*> Support for Intel/Sharp flash chips <*> Support for AMD/Fujitsu flash chips <*> Support for ROM chips in bus mapping

<*> NAND Device Support --->

<*> NAND Flash support for S3C2410/S3C2440 SoC

配置文件的支持 File systems --->

DOS/FAT/NT Filesystems ---> <*> MSDOS fs support <*> VFAT (Windows-95) fs support (437) Default codepage for FAT (iso8859-1) Default iocharset for FAT < > NTFS file system support

Pseudo filesystems ---> [*] Virtual memory file system support (former shm fs) [*] Tmpfs POSIX Access Control Lists

Miscellaneous filesystems -? <*> YAFFS2 file system support <*> Compressed ROM file system support (cramfs)

[*] Network File Systems ---> <*> NFS file system support [*] Provide NFSv3 client support [*] Provide client support for the NFSv3 ACL protocol extension [*] Provide NFSv4 client support (EXPERIMENTAL) [*] Allow direct I/O on NFS files < > NFS server support [*] Root file system on NF

保存后退出配置窗口,产生.config 文件。

(3) 修改Makefile文件 #vi Makefile ARCH ?=arm

CROSS_COMPILE ? = arm-linux-

(4)编译内核 # make zImage (需要一些时间,可以不作这一步)

(6)查看编译好的内核zImage: # cd arch/arm/boot # ls

(7)将编译好的内核zImage 复制到共享目录/share下 : # cp zImage /mnt/hgfs/share

*(8) 按照前面烧写的步骤,烧写zImage到开发板( 这一步不用做)

(9) 清除刚才做的工作,方便后面同学做该内容。 # cd /home

# rm –rf kernel

实验3-3.建立文件系统

(1) 获取busybox源代码 ,在/arm2410cl26/rootfs目录下。

#cd /home

#cp –arf /arm2410cl26/rootfs -C ./

(2) 进入到busybox目录:

#cd /home/rootfs/busybox-1.12.2

# make clean

# rm –rf _install

(3) 配置busybox的命令 #make menuconfig

(删除一些命令选项,只选择有限的一些命令)

(4) 建立依赖关系 # make dep

(5) 编译生成busybox #make

(6) 安装busybox,生成目录_install: # make install

(7) 察看_insatall目录下的内容:# cd _install

#ls

(查看这些命令)

(8) 进入到/home/rootfs/target :

#cd /home /rootfs/target

(9) 查看target下的文件目录 :ls

(10) 将bin sbin usr 三个目录删除 :# rm –rf bin/ sbin/ usr/

(11) 将 _install 目录下的内容复制到target下 :

# cp –arf /home/rootfs/busybox-1.12.2_install ./

(12) 建立文件系统 :# cd /home/rootfs # mkfs.cramfs target root.cramfs

(13)将编译好的内核root.cramfs 复制到共享目录/share下 :

# cp root.cramfs /mnt/hgfs/share

*(14)烧写根文件系统 (这一步不用做)

(9) 清除刚才做的工作,方便后面同学做该内容。 # cd /home # rm –rf rootfs

回答下列思考题:

1. 配置nandflash的启动需要配置哪些先关项?每一项的含义是什么?

Device driver? Memory Technology Device (MTD) support [*] MTD partitioning support

[*]Command line partition table parsing

RAM/ROM/Flash chip drivers?

<*> Detect flash chips by Common Flash Interface (CFI) probe

<*> Detect non-CFI AMD/JEDEC-compatible flash chips <*> Support for Intel/Sharp flash chips <*> Support for AMD/Fujitsu flash chips <*> Support for ROM chips in bus mapping

<*> NAND Device Support --->

<*> NAND Flash support for S3C2410/S3C2440 SoC

2. 配置usb摄像头,需要配置哪些相关项?每一项的含义是什么?

1)Device driver? Multimedia devices? Video for linux (linux视频处理)

2)Device driver? Multimedia devices?video capture adapter?V4L usb device? USB

ZC0301[P] Image Processor and Control Chip support (USB摄像头驱动)

3)Device driver?Graphics support? Support for frame buffer devices? S3C2410 LCD framebuffer support ( LCD的帧缓冲支持)

3. 如果要配置usb蓝牙,需要配置哪些相关项?

内核的配置,基本上把 networking下 --- Bluetooth subsystem support 里的以下几项全部选上即可:

L2CAP protocol support SCO links support

RFCOMM protocol support RFCOMM TTY support BNEP protocol support HIDP protocol support

此外,在Bluetooth device drivers里选上你所需要支持的Bluetooth设备。

4. 在制作根文件系统时,busybox 的作用是什么?

BusyBox的安装脚本使得它很容易建立基于BusyBox的根文件系统,提供了类似Linux内核的配置脚本菜单,容易实现配置和裁剪。

5. 制作开发板的根文件系统时,如何得到lib/ 的库文件?

应用程序通过ld命令的参数-rpath可以在链接时将共享库的路径记在应用程序中,但是通常不推荐这样做,通常应用程序中只记录共享库的文件名 ,启动程序时由动态链接器/lib/ld-linux.so根据以下规则查找共享库:首先在环境变量LD_LIBRARY_PATH 所记录的路径中查找然后从缓存文件/etc/ld.so.cache中查找。将共享库的路径写进/etc/ld.so.conf然后执行ldconfig命令就可以生成缓存文件/etc/ld.so.cache ,如果上述步

骤都找不到,则到默认的系统路径中查找,先是/usr/lib然后是/lib。

本文来源:https://www.bwwdw.com/article/pdfa.html

Top