- 积分
- 3
贡献31
飞刀0 FD
注册时间2018-10-23
在线时间0 小时
扫一扫,手机访问本帖
|
实验平台:
客户端:OK6410 A 开发板
Notebook平台:Windows 7 专业版 32位 + VMware-7.0.1.rar 与 ubuntu-11.04-desktop-i386.iso
SD卡、串口转USB专用开发板配的线
开发环境搭建:
1. 在自己电脑上安装VMare虚拟机,在虚拟机中安装ubuntu-11.04-desktop-i386.iso,安装好之后,打开终端设置linux系统自动从root用户登录进系统,具体的设置如下:
#sudo -s
#sudo password
#sudo gedit /etc/gdm/custom.conf //你也可以用vi编辑器,个人习惯。
这时会弹出文本编辑器,将‘custom.conf’内容修改成下面所示内容(若原来文件为空的
话就输入这些内容),保存关闭,重新启动Ubuntu 就会发现已经自动用root 用户登录了。
[daemon]
TimedLoginEnable=true
AutomaticLoginEnable=true
TimedLogin=forlinx
AutomaticLogin=root
TimedLoginDelay=20
2. 使用FTP在win7和虚拟机中的Ubuntu间传输文件。在VMare中设置network为Bridged ,并确定ubuntu可以online,在Ubuntu中安装vsftpd服务,在win7端安装ftp客户端工具---Xmanager Enterprise 软件。详细安装步骤请参考:OK6410-A开发板LINUX3.0.1用户手册.pdf 中的9.2章节。其中,/forlinx 为我自己在ubuntu的根目录中mkdir的目录,在后面的实验中,这个目录经常用得到,note:forlinx也为我的VMare中linux系统的一个普通用户名,这点你可以自己设置user。
3. 连接好开发板与PC机之间的USB线和串口线(这要一个转接头),让开发板(开发板中有linux系统)上电,安装那两个驱动(开发板厂商提供的资料的实用工具文件夹中有PL-2303 Driver Installer.exe和USB驱动->DNW驱动)。在pc端安装DNW.exe软件,点软件上的configuraion->options设置,(这里主要说下COM Port的设置,选择com1~4? 要查看你自己pc的设备管理器,串口驱动的信息可知)。设置好之后,DNW软件上方show信息:
[img]file:///C:/Users/doll/AppData/Roaming/Tencent/Users/354779608/QQ/WinTemp/RichOle/$IP_$5O$PAV%7DC1OA)ZU[3PD.jpg[/img] ,说明USB 和串口正常连接,DNW软件设置成功。(在实际操作时,显示信息上USB:XX,这时,只要在uboot界面上输入#dnw 50008000 命令试下)。
4. 安装交叉编译器(要想在pc机上编译出适合在arm开发板跑的应用程序、内核或者文件系统等,就必须用相应的交叉编译器),在这里,我们安装的交叉编译器为光盘资料中实用工具文件夹下的arm-linux-gcc-4.3.2.tgz 和 cross-4.2.2-eabi.tar.bz2,我在实际试验中, 任意只安装其中的一个交叉编译器时,在编译内核时,都会出不同的Error。最终实验成功的方法是:这两个交叉编译器都安装,我做实验的时候是安装在/usr/local/arm/ 目录下的,个人爱好。同时,在安装成功之后,在修改环境变量时,也是纠结了一下(关于环境变量修改问题,请参考http://bbs.witech.com.cn/forum.php?mod=viewthread&tid=20904&highlight=%BD%BB%B2%E6)。成功修改环境变量的方法是:分别在/etc/bash.bashrc 和 /etc/profile 配置文件中的末尾都添加了一行代码:export PATH=/usr/local/arm/4.3.2/bin:/usr/local/arm/4.2.2-eabi/usr/bin:$PATH 最后终于成功了。其中,在这花了很多时间,有一次是直接在终端上用arm-linux-gcc 是可以成功编译应用程序的。但在编译不了kernel,最终终于找到了原因是:我只安装了一个编译器4.3.2,并且只在/etc/bash.bashrc下修改环境变量。可能是因为4.3.2中的编译命令不足,或者是因为linux系统在辨别环境变量时容易出问题(自己猜的,只供参考。详细安装步骤参考 OK6410-A开发板LINUX3.0.1用户手册.pdf )。
做到这里,你的开发环境基本上就搭建好了。现在开始进行下一步了。
对U-boot/kernel进行配置、编译工作
声明下:我现在所使用的U-boot的源代码是已经被开发板厂商针对OK6410开发板移植过的U-boot源代码文件,其文件为:Linux-3.0.1\uboot_sourcedode\uboot1.1.6_FORLINX_6410.tgz,关于如何移植uboot,这将是我这个菜鸟的下一步奋斗的目标,搞定了们,肯定会公布出来和大家分享的。而Kernel源代码,我是用的Linux-3.0.1\kernel_sourcecode\FORLINX_linux-3.0.1.tar.gz 内核进行试验的。
配置、编译uboot的具体步骤:
1. 在ubunu中用tar解压uboot源代码,并cd到刚解压的uboot源代码目录中。 2. 用命令#make smdk6410_config 配置config。 3. 用命令#make clean 清除以前的编译信息 4. 用命令#make 开始编译,编译完之后,生成u-boot.bin文件。
配置、编译kernel的具体步骤:
1. 在Ubunu中用tar解压kernel源代码文件,并cd的刚解压的kernel目录中。 2. 用命令#make distclean 清除之前的配置和编译信息(其中就包括.config文件和一些.o/.ko编译文件). 3. 下一步应该是配置kernel,一般的情况是用命令#make menuconfig ARCH=arm 来进行配置的,从而得到你自己想要的.config配置文件。但在这里,因为开发板厂商已经在
FORLINX_linux-3.0.1.tar.gz 下放置了一个叫FORLINX6410_CFG的文件,这个文件就是该开发板默认配置的配置文件.config, 所以说,这里对kernel进行配置工作,只要把FORLINX6410_CFG文件重新命名为.config 就行了。用命令:#cp FORLINX6410_CFG .config 实现对kernel的配置工作。 4. 编译kernel,用命令:#make uImage ARCH=arm CROSS_COMPILE=arm-linux- 实现编译出适用于运行在开发板上面的内核,在当前目录下的arch/arm/boot目录下生成zImage文件或者uImage文件。(Notes:CROSS_COMPILE指明了使用了交叉编译工具进行编译,当然了,如果是你想编译出来的kernel是运行在X86上面的,那么就没必要使用这个交叉编译工具了。具体参考视频资料:国嵌内核驱动进阶班-3-1---嵌入式Linux内核制作)
如何用SDcard来烧写uboot、kernel和cramfs文件系统进入开发板
烧写之前必须制作用于USB烧写Linux的SD卡,操作方法说简单点就是先格式化SDcard为FAT32格式,然后在win7下用SD_Writer.exe工具把光盘资料中的mmc..bin文件拷贝进SDcard中。其实这个步骤就相当于我们平时制作DOS启动盘一样的方法,它应该是把SDcard先制作成适合开发板用的可启动盘,然后,再拷个uboot在SDcard中,拨动开发板上的启动选项,设置成sd卡启动,开发板上电之后,运行SDcard中的Uboot,通过这种方式来实现Uboot、kernel、文件系统cramfs分别拷贝到nand flash中的地址0~100000、100000~500000、600000~8000000处。拷贝好了之后,拨动开发板上面的硬件启动开关,使之下一次上电时从nand flash启动。其中,有一种很简单的烧写方法是直接把我们前几步制作出来的uboot.bin、zImage或者uImage、Linux-3.0.1/filesystem/ FORLINX_6410_touch.cramfs拷贝进SDcard中,重命名Linux-3.0.1/filesystem/ FORLINX_6410_touch.cramfs文件为cramfs。然后,再插到开发板中,设置成SDcard启动之后,SDcard中的mmc.bin会自动的把uboot、kernel、cramfs烧写进nand flash中。当然了,在开发试验中,一般都是一个一个文件的烧写进nand flash的,Eg. 烧写uboot的大体步骤为: 在uboot模式中输入命令#dnw 50008000 --> #nand erase 0 100000 --> #nand write.uboot 50008000 0 100000 ,(Notes:在烧写时一定要看到OK,才说明烧写成功;具体的烧写命令请参考 OK6410-A开发板LINUX3.0.1用户手册.pdf )。
好了,当着三个文件都烧写完之后,就可以重新上电进入自己配置、编译的linux系统。
|
评分
-
查看全部评分
|