Linux 内核移植


1. SAM A5 Linux移植实验

1.1 实验目的

· 掌握Linux内核的配置、编译和安装方法,U-Boot引导内核启动;

· 掌握文件系统制作,能够启动图形界面;

1.2 实验内容

· 配置、编译和安装Linux kernel

· 制作Yocto 系统到SD卡

· 启动Yocto系统

1.3 步骤与现象

· 内核制作

1. 从空享文件夹把内核压缩包复制到 /home/SAMA5/hello_world目录下

2. 进入/home/SAMA5/hello_world目录,解压

3. 进入内核源码目录

4. 设置交叉编译环境

5. 配置内核 make ARCH=arm sama5_defconfig

6. 编译内核 make ARCH=arm

7. 编译内核出错,出现fatal error: openssl/名单.h: No such file or directory。

原因是libssl-dev~没有安装libssl-dev包含libraries, header files and manpages,是openssl的一部分。

8. sudo apt-get install libssl-dev来安装libssl-dev

9. 内核编译完成,拷贝内核镜像zImage和设备树文件at91-sama5d4_xplained.dtb到共享文件夹

10. 复制内核到SD卡,启动内核

1.4 关键代码分析

(1) 命令提醒

tar.gz格式的压缩文件

解压:[******] $ tar -zxvf FileName.tar.gz

压缩:[******] $ tar -zcvf FileName.tar.gz DirName

解压文件到指定目录:

[******]$ tar -zxvf FileName.tar.gz -C /***/***

(2) 应用测试:

· 在虚拟机上使用交叉编译工具链 arm-linux-gnueabi-gcc 编译生成的 helloarm 可执行文件,移植到开发板执行时报错:

· 确定文件权限没问题,输入 file hello 显示如下:

· 输入 ls -l

· 发现 ld-linux-armhf.so.3 是一个链接符号,指向 ,而 ld-linux.so.3也是一个链接符号,于是将 ld-linux.so.3也链接到 ,输入ln -s ld-linux.so.3,再输入ls -l ,输出如下结果:

· 执行./helloarm,可以正常运行

原文链接:,转发请注明来源!