构建Linux下IMX257 开发环境
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* 用于查看当前系统串口的编号
2.启动运行kermit:
再系统命令行中输入”kermit”就可以启动并连接到串口(原因是我们前面最后一行有一个c)
按c或者connect就是连接串口
按”CTRL + \”再输入"c"就可以返回到kermit界面
按q 或者quit就是退出kermit界面
记录日志:
再kermit正常运行下,按下”CTRL + \”再输入"c",返回到kermit的命令行,输入”log session”就会再当前目录下保存日志为sesion.log.
3.安装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.04的64位版本,所以必须安装32为的库.
安装方法:
如果是直接输入sudo apt-get install ia32-libs可能会除错,提示美柚这个库文件.从网上找的解决方法如下所示:
1.dpkg --add-architecture i386
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 //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成功连接开发板
* 博客园: http://www.cnblogs.com/lihaiyan/
* 邮箱:1063385677@qq.com
* QQ: 1063385677
* Copyright ©2014 Lover雪儿
********************************************
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。