MYZR-IMX28系列评估板 Linux-2.6.35 编译手册
文档说明
系统环境说明
编译主机CPU架构:64位
编译主机系统:Linux
Linux发行版:Ubuntu
Ubuntu版本类型:服务器版
Ubuntu版本号:12.04.5
Ubuntu系统类型:x86-64
注意:开发主机请使用ubuntu 12.04.5 x86-64(桌面版或服务器版均可),使用其他发行版的Linux或Ubuntu的其它版本可能会遇到的不必要的问题。
操作说明
截图说明
图片中的Linux命令
准备源码及相关文件
源码文件
评估板型号 |
支持的系统版本 |
u-boot源码文件 |
linux源码文件 |
|---|---|---|---|
MYZR-IMX28-EVK |
Linux-2.6.35 |
u-boot-2009.08.tar.bz2 imx-bootlets-src-10.12.01.tar.bz2 |
linux-2.6.35.3.tar.bz2 |
交叉编译工具文件
创建工作目录
$ mkdir -p ~/my-imx28/02_source
$ mkdir -p ~/my-imx28/03_tools
$ mkdir -p ~/my-imx28/04_image
$ mkdir -p ~/my-imx28/01_application
准备开发环境
更新主机的源列表
$ sudo apt-get update
安装aptitude包管理工具和ia32-libs
安装aptitude包管理工具
$ sudo apt-get -y install aptitude
使用aptitude安装ia32-libs
$ sudo aptitude -y install ia32-libs
安装mkimage工具
$ sudo apt-get -y install uboot-mkimage
安装ncurses-dev
$ sudo aptitude -y install ncurses-dev
安装配置交叉编译工具链
安装Linux交叉编译工具链
$ cd ~/my-imx28/03_tools/
$ tar jxf gcc-4.4.4-glibc-2.11.1-multilib-1.0.tar.bz2
$ source gcc-4.4.4-glibc-2.11.1-multilib-env
$ ${CROSS_COMPILE}gcc -v
U-Boot编译
准备编译
复制源码包到开发主机中
解压u-boot源码包
$ cd ~/my-imx28/02_source/
$ tar jxf u-boot-2009.08.tar.bz2
$ tar jxf imx-bootlets-src-10.12.01.tar.bz2
编译
使编译配置文件生效
$ source ~/my-imx28/03_tools/gcc-4.4.4-glibc-2.11.1-multilib-env
进入u-boot源码目录
$ cd ~/my-imx28/02_source/u-boot-2009.08
清除u-boot临时文件
$ make distclean
配置u-boot
评估板主型号 |
CPU类型-内存容量 |
对应的u-boot配置 |
|---|---|---|
MYZR-IMX28-EVK |
MX283/7, 128M |
mx28_evk_config |
MYZR-IMX28-EVK配置示例:
$ make mx28_evk_config
执行编译
$ make
编译imx28_ivt_uboot.sb
$ cp u-boot ../imx-bootlets-src-10.12.01
$ cd ../imx-bootlets-src-10.12.01/
$ sudo cp elftosb /usr/bin/
$ ./build
目标文件
编译文件
$ ls
目标文件
u-boot配置 |
目标文件 |
|---|---|
mx28_evk_config |
imx28_ivt_uboot.sb |
编译内核
准备编译
复制源码包到开发主机中
解压linux源码包
$ cd ~/my-imx28/02_source/
$ tar jxf linux-2.6.35.3.tar.bz2
内核编译配置
使编译配置文件生效
$ source ~/my-imx28/03_tools/gcc-4.4.4-glibc-2.11.1-multilib-env
清除内核临时文件
进入linux源码目录
$ cd ~/my-imx28/02_source/linux-2.6.35.3
清除临时文件
$ make distclean
内核配置
$ cp .mx28_config .config
编译内核
执行编译
$ make zImage -j4
编译完成
编译完成
目标文件
$ ls arch/arm/boot/uImage -la
编译模块
编译模块命令
$ make modules
$ make modules_install INSTALL_MOD_PATH=./modules
打包模块文件
$ cd modules
$ tar cjf ../modules.tar.bz2 *
应用程序编译
Linux应用程序编译
编写应用程序
进入工作目录
$ cd ~/my-imx28/01_application/
编写源代码
$ vim hello.c
include <stdio.h>
int main(int argc, char **argv)
{
printf("Hello, MYZR!\n");
return;
}
查看代码
$ cat hello.c
编译应用程序
配置环境变量
$ source ~/my-imx28/03_tools/gcc-4.4.4-glibc-2.11.1-multilib-env
编译
$ ${CROSS_COMPILE}gcc hello.c -o hello.out
目标文件
$ file hello.out
文件系统
文件系统rootfs.tar.bz2
文件系统rootfs.ubifs
烧写方式
使用MFGTOOL烧写
注意:如果你用的文件系统是rootfs-qt.tar.bz2,请选择“QT-MY-IMX28-2.6.35 NAND with uboot”烧写镜像。
使用网络烧写
搭建TFTP (ubuntu系统)
$ sudo apt-get install tftpd tftp openbsd-inetd
$ mkdir /home/myzr/tftp
$ chmod 777 /home/myzr/tftp
$ sudo gedit /etc/inetd.conf
$ sudo /etc/init.d/openbsd-inetd restart
搭建NFS (网络烧写不需要用到nfs)
$ sudo apt-get install nfs-kernel-server
$ mkdir /home/myzr/nfsroot
Configure mounted directory and authority (修改配置文件的nfs目录)
$ sudo gedit /etc/exports
$ sudo /etc/init.d/portmap restart
$ sudo /etc/init.d/nfs-kernel-server restart
tftp下载
$ setenv ipaddr 192.168.3.104 (板子IP)
$ setenv serverip 192.168.3.110 (电脑IP)
$ run upkernel (烧写uImage)
$ run upsystem (烧写文件系统)
登录方式
串口登录
ssh登录
以太网登录
USB登录(USB可识别成网口)
测试
USB测试
SD卡测试
以太网测试
uart串口测试
gpio测试
spi测试
watdog测试