0K6410-A开发板Linux3.0.1简易教程
一、开发板的装配
0K6410-A开发板 256M DDR+2G NAND FLASH
4.3寸触摸屏
电源 5V/2A
USB数据线
串口线/USB转串口线
2G SD卡+读卡器
二、搭建Linux开发环境编译开发板烧写所需映像
Linux开发环境编译开发板所需的系统启动项、内核映像以及根文件系统,官方有已编译好的demo可以用来直接烧写,也可以自行修改映像烧写,根据不同的需求自行编译。
1、主机安装Ubuntu系统,VM下安装Ubuntu系统(略,参照用户手册)
2、编译环境搭建(以root超级用户权限登录系统,参照官方文档编译官方提供源码)
A、安装交叉编译器--设置交叉编译器环境变量
将 /交叉编译器/arm-linux-gcc-4.3.2.tgz文件拷贝到 Ubuntu 的/forlinx(其他目录页可以具体看个人配置)目录下,该文件位于用户基础资料光盘的“实用工具”文件夹中。在Ubuntu中新建一个终端,输入下面的命令安装交叉编译器:
#cd /forlinx ( 进入 /forlinx 目录 )
# mkdir/usr/local/arm (创建目录,若目录已存在会提示错误,跳过即可)
# tar zxvfarm-linux-gcc-4.3.2.tgz -C /(编译器解压到 /usr/local/arm)
把交叉编译器路径添加到系统环境变量中,以后可以直接在终端窗口中输入arm-linx-gcc 命令来编译程序。在终端中执行 :
# gedit /etc/profile
添加以下四行到该文件中 :
exportPATH=/usr/local/arm/4.3.2/bin:$PATH
exportTOOLCHAIN=/usr/local/arm/4.3.2
exportTB_CC_PREFIX=arm-linux-
exportPKG_CONFIG_PREFIX=$TOOLCHAIN/arm-none-linux-gnueabi
保存退出,并使得编辑生效。
# soure .bash_profile
# arm-linux-gcc –v(查看arm-linux-gcc版本出现下图表示环境变量设置正确。)
B、编译u-boot
将uboot源码压缩包/uboot_sourcecode/uboot1.1.6_FORLINX_6410.tgz,拷贝到 Ubuntu 的/forlinx目录(也可以是自定义目录路径)下,解压缩并编译,Ubuntu下操作过程如下所示:
#tar zxfuboot1.1.6_FORLINX_6410.tgz
解压缩uboot源码,解压后得到u-boot1.1.6目录
#cd u-boot1.1.6进入目录
#make forlinx_nand_ram256-config
#make clean (清除掉旧文件)
#make (重新编译)
编译成功将生成u-boot.bin文件,如下图显示。
注意:飞凌开发板目前有128M内存和256M内存两个硬件版本,Uboot1.1.6 一套代码适用于飞凌两个类型的开发板,在配置Uboot的时候需要指明是128M版本还是256M版本。
C、编译kernel映像
将压缩包/uboot_sourcecode/FORLINX_linux-3.0.1.tar.gz拷贝到你的工作目录下,解压缩:
# tar zxf FORLINX_linux- 3.0.1.tar.gz
配置内核,您可能需要安装libncurses5,以方便使用makemenuconfig 命令,可以采用以下命令行来安装(这个步骤需要pc 可以连接互联网):
#sudo apt-get install libncurses5-dev
如果执行命令后无法找到 libncurses5-dev 安装包,那就需要先执行
#sudo apt-get update
再执行
#sudo apt-get install libncurses5-dev
编译内核
#make zImage
经过长时间编译结束后将在内核源码目录的arch/arm/boot中得到Linux内核映像文件:zImage,如下图:
D、编译Yaffs2文件系统
在/filesystem/Yaffs2文件系统制作工具 中有两个制作工具:mkyaffs2image-nand2g 和mkyaffs2image-nand 256m。
我们编译nand2g版本适用于我们使用的OK6410-A开发板。
将mkyaffs2image-nand2g拷贝到Ubuntu工作目录下,执行制作命令:
# ./mkyaffs2image-nand2g FileSystem-Yaffs2 rootfs.yaffs2 (FileSystem-Yaffs2为存放路径,可以自行设定生成rootfs.yaffs2文件映像的存放路径)
Linux下最后生成 rootfs.yaffs2 是可以下载到开发板nandflash中的 yaffs2 文件系统映像。
三、烧写Linux3.0.1到OK6410-A
本文烧写操作是在Windows XP 系统下进行,WIN7系统请参照用户手册)
1、 准备烧写工作
1)准备烧写工具dnw.exe SD_Writer.exe(存放在/Linux烧写工具文件夹)
2)准备要烧写的文件
制作Linux SD卡启动文件:mmc_ram256.bin(存放于/linux烧写工具 文件夹)
开机启动映像UniversalBootLoader:u-boot.bin(存放于/u-boot+zImage 文件夹)
内核映像文件kernel:zImage(存放于/u-boot+zImage 文件夹)
根文件系统fileSystem:rootfs.yaffs2(存放于/文件系统 文件夹)
2、SD卡一键烧写(简易方法)
1)制作一键烧写SD卡
将SD卡插入读卡器,把读卡器插入PC机USB口,将SD卡格式化成FAT32格式。
2)通过SD_Writer.exe将mmc_mmc_ram256.bin烧写到SD卡中
点Scan会自动识别盘符,选择要烧写的盘设置如下点Program,若成功会弹出It’s OK!。
3)烧写Linux到OK6410 NAND FLASH(官方demo)
A、将u-boot.bin+ zImage+ rootfs.yaffs2拷贝到制作好的SD卡,注意一定是要以下三个文件名,否则会出现烧写错误
注意:PC 系统中,有一项功能是“隐藏已知文件名后缀”,如果在PC中开启这个功能,u-boot.bin 可能只能看到 u-boot 文件名。编写本文时,编写者已经将编写本文的电脑的“隐藏已知文件名后缀”功能关闭。
B、将SD卡从PC上拔下,OK6410开发板断电,将SD卡插入OK6410开发板SD卡槽,拨动拨码开关设置从SD卡启动
将串口线/USB转串口连接开发板和PC(本文用的是USB转串口线,需要先安装附带的USB转串口驱动)
C、连接好串口,打开自带的DNW.EXE软件,点击Configuration设置好串口、波特率以及烧写地址(注意根据本机的串口设置,参考自带的用户手册附录)
设置好后点OK,点SerialPort->Connect连接成功出现COM1,115200bps,ADDR:0X57e00000则成功与串口连接,否则失败请检查接线
拨动电源开关,开发板上电则开始烧录,开发板上会打印信息提示,DNW软件也会打印信息,烧写完成开发板会有蜂鸣器鸣叫提示。
D、烧写完成后,开发板断电,拨动开关设置NAND FLASH 启动
重启电源,开发板上电,Linux3.0.1系统就可以正常启动了。
每次系统烧写后都要进行屏幕校准,校准后进入系统如下:
PS:本教程只适用于OK6410-A 256M DDR+2G NAND FALSH 开发板,程序测试以及相关外接模块测试请参考用户手册。
四、问题总结归纳
1、教程文件都是官网下载的最新文件,使用旧文件会出现烧写出错,u-boot、zImage以及文件系统映像不对应也会出现烧写出错。
2、Ubuntu下编译映像缺失安装软件导致编译失败,编译内核时需要配置内核,缺失安装libncurses5,安装以后即可。
3、特别需要注意开发板的版本,128M DDR+256M NAND FLASH与256M DDR+2G NAND FLASH使用的u-boot与文件系统映像配置不同,也会导致烧写失败。
4、烧写的时候要文件系统映像配置注意屏幕尺寸是否与开发板屏幕尺寸对应,否则会导致烧写失败,系统不能启动。