Lover雪儿
想念时,就看看天空,无论距离有多远,我们总在同一片天空下!

构建LinuxIMX257 开发环境

2015-03-09 李海沿

  这几天有点忙,主要是后天就要考嵌入式三级.四级,很多知识都没学过,只有看试卷了,只剩下明天最后一天时间了,时不待我,还有8套卷子没背,感觉当时同时报三级四级就是作死,不过不后悔,因为肯定是能过的.

  本该是应该再背题的,但下午偶然有一个想法,一直以来玩开发IMX257都是使用Windows,然后就开一个超级卡的虚拟机,接着就是使用securecrt远程登录虚拟机中的linux和通过串口登录开发板的linux系统,我何不试试直接再linux操作系统上完成去不得工作呢,谕示说干就干,研究了一个下午加晚上时间,终于成功的搞定了所有的问题(此时本该是在被三级四级题目的,可是兴趣一来,挡也挡不住,罪过罪过).

好了,步入正题.

  接下来,我们不如正题:

  在linux下,我们可以有两种方法来实现:minicom C-kerimit两种方法.

  我刚开始使用的是minicom但是主要的原因是minicom使用的时缺出现乱码,也不知道是怎么回事,折腾了一会儿之后,没办法,就换成了C-kermit,经过实验,它确实是一个强大的软件.

  C-kermit具体的安装方法此处不再介绍,可以在命令行$sudo apt-get install ckermit下载安装,简单点的也可以再linux自带的软件安装中实现.

  安装完毕,接下来就是配置了.

1.配置kermit

  每个用户的kermit的配置文件在~/.mykermrc,如果这个文件不存在,则kermit会使用/etc/kermit/kermrc文件进行初始化.

  编辑~/.mykermrc使用命令:

  $vim ~/.mykermrc

  输入一下内容:

 

set line /dev/ttyUSB2

set speed 115200

set carrier-watch off

set handshake none

set flow-control none

robust

set file type bin

set file name lit

set rec pack 1000

set send pack 1000

set window 5

c

 

  Ls /dev/tty*  用于查看当前系统串口的编号

 

 

 .启动运行kermit

  再系统命令行中输入”kermit”就可以启动并连接到串口(原因是我们前面最后一行有一个c







  按c或者connect就是连接串口

  按”CTRL + \”再输入"c"就可以返回到kermit界面

  按q 或者quit就是退出kermit界面

  记录日志:

  再kermit正常运行下,按下”CTRL + \”再输入"c",返回到kermit的命令行,输入”log session”就会再当前目录下保存日志为sesion.log.













 

 

 

 

 

.安装NFS服务器

sudo apt-get install nfs-kernel-server

sudo apt-get install nfs-common

以上两条命令用于安装NFS服务器,接下来就是配置了.

sudo vim /etc/exports 配置NFS目录

内容:

/nfsroot *(rw,sync,no_root_squash)

/home/study/NFS_HOME *(rw,sync,no_root_squash)

如图所示:



接下来自然就是创建文件夹了,修改文件夹的权限



启动与重启nfs命令:

sudo /etc/init.d/nfs-kernel-server start

sudo /etc/init.d/nfs-kernel-server restart



挂载:

sudo mount -t nfs 192.168.31.152:/home/study/NFS_HOME /mnt/nfs -o nolock





4.安装tftp服务器


sudo apt-get install tftpd-hpa


配置tftp服务器

sudo vi /etc/default/tftpd-hpa


内容如下:

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/tftpboot"   #实际应用时可以改成用户指定的目录

TFTP_ADDRESS="0.0.0.0:69"

TFTP_OPTIONS="-l -c -s"


创建文件夹

sudo mkdir /tftpboot

sudo chmod -R 777 /tftpboot

sudo chown -R nobody /tftpboot


启动tftp

sudo service tftpd-hpa start

测试tftp服务器

sudo tftp 192.168.31.152

tftp> get tftpTestFile

tftp> q











 

 

 

 

5.构建交叉编译开发环境

由于我的操作系统为的UBUNTU14.0464位版本,所以必须安装32为的库.

安装方法:

如果是直接输入sudo apt-get install ia32-libs可能会除错,提示美柚这个库文件.从网上找的解决方法如下所示:

1.dpkg --add-architecture i386


2.apt-get update


3.sudo apt-get install lib32z1-dev


4.the method of the eighth floor

5.sudo apt-get install libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 libasound2:i386 libasound2-plugins:i386 gstreamer0.10-pulseaudio:i386 gstreamer0.10-plugins-base:i386 gstreamer0.10-plugins-good:i386 gstreamer0.10-ffmpeg:i386

6.sudo apt-get install ia32-libs    //这条若还是没用,就不用运行了


7.sudo apt-get install libncurses5-dev  ///安装兼容库,若没有安装,会出错


当然:网上也有一种强制安装的方法:

1。切换到root权限

sudo -i

2。进入apt源列表

cd /etc/apt/sources.list.d

3。添加ubuntu 13.04的源,因为13.10的后续版本废弃了ia32-libs

echo "deb http://old-releases.ubuntu.com/ubuntu raring main restricted universe multiverse
" > ia32-libs-raring.list

//echo "deb http://archive.ubuntu.com/ubuntu/ raring main restricted universe multiverse" > ia32-libs-raring.list

4更新源并安装ia32-libs

apt-get update

apt-get install ia32-libs

5恢复源

rm ia32-libs-raring.list

apt-get update

 

ubuntu14.04亲测成功:如图所示:


 

 

 

 

若是还没有用,那就只有自己下载源码包编译安装了.


安装交叉编译工具链

拷贝交叉工具链文件到/tmp,再根目录下创建文件夹/opt/

执行命令:

sudo tar -jxvf freescale-zlg.tar.bz2 -C /opt/


执行完解压命令后,交叉编译工具链将被安装到“/opt/freescale”目录下。交叉编译器的具体目录是

/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin”

为了方便使用,还需将该路径添加到 PATH 环境变量中,其方法为:

修改“/etc/profile”文件:

sudo vi /etc/profile

vi 编辑器打开“/etc/profile”文件后,在文件末尾增加如下一行内容:

export PATH=$PATH:/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin

输入命令

source /etc/profile 让其生效


如图所示:







关于错误:


include/linux/mmzone.h:288: error: 'MAX_NR_ZONES' undeclared here (not in a function)

 

 

 

 

 

 

 

 

其原因是,mmzone.h 是在编译内核时生成的,类似于编译产生的.o文件,

如果你运行"make clean" or "make distclean",这个文件就会被清除掉(详情查看内核Makefile)。因此,如果再利用此内核源码编译内核模块

而我的内核还没有编译过,自然就出错了,

只要重新make编译一下内核,就可以了

重新编译之后,结果如下:

 



如下图所示,成功编译,并且使用 kermit成功连接开发板

 














 

posted on 2015-03-19 19:07  Lover雪儿  阅读(418)  评论(0编辑  收藏  举报