当前位置:文档之家› linux内核的移植

linux内核的移植

第1页 基于嵌入式技术linux内核的移植 甄儒钊 (中南民族大学 计算机科学学院,智能科学与技术专业,武汉 430074)

摘 要 在PC端基于ubuntu 12.04通过配置交叉编译环境、安装交叉工具链、设置网络参数、创建tftp服务器搭建好开发环境,再通过命令行(此处用到的工具为putty)将已有的kernel镜像文件和其配套的设备树文件烧写至开发板(基于arm7体系结构的三星公司生产的cortex系列A9芯片)中,从而实现片上系统的移植,为后续基于嵌入式系统的应用层的开发和外围设备调试等工作做准备。

关键词 ubuntu;内核移植;交叉工具链; cortex-A9; tftp;Gcc

Transplantation of Linux kernel based on Embedded Technology

Ru zhao Zhen (Project of Intelligence Science and Technology, College of Computer Science Technology, South-Central University for Nationalities, Wuhan 430074, China)

Abstract Configuring cross compiler environment, network parameter and TFTP server. And installing cross-tool chain by Ubuntu 12.04 In the PC side. Then writing the image files and Flattened Device Tree files by command line into the development board (The chip based on the arm7 architecture and belongs to the Samsung company called cortex-A9) ,in order to achieve the transplantation of the system on chip and prepare for application layer development, debugging of peripheral equipment and so on.

Keywords Ubuntu; Kernel porting; Cross tool chain; cortex-A9; tftp;Gcc

科技日新月异,科技无处不在,科技与我们生活紧密相连。以应用为中心,以计算机技术为基础,软硬件可裁剪,能适应众多应用的嵌入式系统,对功耗,可靠性,成本,体积等要求比较严格,因为这些特性,小到手机、智能手表,大到工程机械都离不开嵌入式系统的高效和精准的控制。然而作为嵌入式技术的核心过程之一:内核移植就显得尤为重要。所以此次实验探究了内核移植的详细过程,系统化地了解了主机与目标机互联的机制,对内核源码进行了初步了解,从而使得整个过程更加清晰明了,为嵌入式工程或项目做好充实的准备。

图 1 实验用开发板 Fig. 1 Experimental development board 第2页

1 实验部分 1.1 实验所需硬件设备、软件和文件包 主机(HP Pavilion 15 Notebook PC,惠普公司)、串口连接线、UTP网线、电源线、目标机(搭载cortex-A9, FS4412, 华清远见公司)、VMware Workstation 虚拟机管理软件、 ubuntu 12.04 发行版、Gcc编译包(版本Gcc 4.6.4)、putty软件(Telnet、SSH、rlogin、纯

TCP以及串行接口连接软件)、kernel镜像文件、设备树文件、串口驱动程序(型号CH341SER)、tftp文件包、bootloader文件包(uboot,遵循GPL协议,德国DENX小组)。

1.2 实验步骤及说明 1.2.1 ubuntu中所用到的主要指令、工具及解释 (1)、pwd(print work directory) 显示当前目录的绝对路径 (2)、 cd(change directory) 切换目录 例如:cd /home/ubuntu cd /home/ubuntu/Desktop 常用: “ .” 表示当前目录 cd .表示进入当前目录 .. 表示上层目录 cd .. 表示进入上层目录

(3)、ls(list) 列出当前目录的内容 常用: ls -l + 文件名 显示该文件的详细信息(默认以字节为单位) ls -a 显示当前目录所有的内容(包括隐藏文件)

(4)、touch + 文件名 新建一个文件 例如: touch test.c 常用: ls -l test.c 查看test.c文件的详细信息

(5)、clear 清除我们的屏幕 快捷键: crtl + l

(6)、mkdir(make dirctory) + 新建文件夹的名字 新建一个目录 例如:mkdir one 新建一个one文件夹 mkdir two 新建一个two文件夹

(7)、rm(remove) 删除普通文件 参数: -r 删除文件夹 -f 强制执行

常用: rm -rf test 注意:rm -rf 不管是文件夹还是普通文件都可以删除。

(8)、cp 复制文件 格式:cp 源文件 目录文件路径 例如:cp /home/ubuntu/test.c /home/ubuntu/Desktop

(9)、mv 移动文件 格式:mv 源文件 目录文件路径 例如: mv /home/ubuntu/test.c /home/ubuntu/one 第3页

区别:cp 移动后文件还存在,mv移动后文件不存在了 (10)、格式:cat + 文件名 显示文件的内容 例如:cat hello.c

(11)、echo 内容 > 要写的文件 (12)、chmod 修该文件的权限(读、写、执行) 格式: chmod 权限 文件名 常用: u: user(普通用户) g: group(组用户) o: other(其他用户) 如: chmod u+x test.c chmod u+w test.c chmod g-r test.c chmod o+x test.c

常用: 100 101 001 r-- -w- --x 八进制表示: r--->4 w---->2 x---->1

(13)、chown 修改文件所有者: 格式:sudo chown 所有者名 文件 例如:sudo chown root test.c

(14)、tar 对目录和普通文件都可以进行打包压缩 参数:

c -> 创建 x -> 释放 z -> gzip操作 j -> bzip2操作 v -> 显示过程 f -> 指定文件名(一定需要放在最后)

(15)、释放一个文件: 格式: sudo tar -xzvf work.tar.gz sudo tar -xjvf work.tar.bz2 sudo tar -xvf work.tar.gz/work.tar.bz2 参数: -C 指定释放到一个指定的目录 tar -xvf dir.tar.gz -C 指定的目录 第4页

1.2.2 关于交叉工具链 编译、链接、处理和调试跨平台体系结构的程序代码。每次执行工具链软件时,通过带有不同的参数,可以实现编译、链接、处理或者调试等不同的功能。从工具链的组成上来说,它一般由多个程序构成,分别对应着各个功能。

1.2.3 关于Gcc编译流程

图 2 Gcc编译流程 Fig. Compiling process of Gcc

1.2.4 关于tftp TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,其中tftp-hpa是客户端,tftpd-hpa是服务器。

1.2.5 配置开发环境 (1) 在主机中安装串口驱动程序,然后安装虚拟机管理软件VMware Workstation,再在软件中安装ubuntu,然后打开ubuntu系统 (2) 安装交叉工具链和交叉编译环境 [1]解压工具链压缩包

$ cd ~ $ mkdir toolchain $ cd toolchain [2]将gcc-4.6.4.tar.xz工具包拷贝到toolchain目录下并解压 $ tar xvf gcc-4.6.4.tar.xz

[3]环境变量的添加 修改文件/etc/bash.bashrc添加如下内容 export PATH=$PATH:/home/linux/toolchain/gcc-4.6.4/bin [4]重启配置文件 $ source /etc/bash.bashrc

[5]工具链的测试

相关主题