构建Linux下IMX257 开发环境

发布时间: 2024-08-14
来源: 电子工程世界

  在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*  用于查看当前系统串口的编号

3e6b0339609b363c83b81dc20a345e7d_Q9xEyy8N8AAAAAAAAAAAAAUC7Q7Vf8P7wKeP9cVSY2AAAAAElFTkSuQmCC.png

 2.启动运行kermit:

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

  按c或者connect就是连接串口

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

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

  记录日志:

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

ff1e4d02c27a374896bcc0e36c6e2d6e_xP8Bpe5tsDzmHlsAAAAASUVORK5CYII=.png

820af3e5863bfae8b3067275d9cc3ecc_fxfwAAAABJRU5ErkJggg==.png

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)

如图所示:


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

181df2fbe47a8d6fcbf1d4e414505627_B+Fy70CVWjOcQAAAABJRU5ErkJggg==.png

启动与重启nfs命令:

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

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

7df6432456724c504aeac96a5efcbf38_AeyDWsCPuwYnAAAAAElFTkSuQmCC.png

挂载:

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


01f1083e4b9916ecaa65754dac050bd6_wPdKTAMc1ZIywAAAABJRU5ErkJggg==.png

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

86ec69678f3a5a4b0305ca1e221f7126_wEP9CRvhJFdcwAAAABJRU5ErkJggg==.png

 7e873355064b06c9046b202a766fc565_x40BBynmBicAAAAASUVORK5CYII=.png

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

由于我的操作系统为的UBUNTU14.04的64位版本,所以必须安装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亲测成功:如图所示:

ec21a8fdd17fd71bdac8cee23c1ace34_FKN5+vJJV2IAAAAASUVORK5CYII=.png

9246c304201fb809213bcdab8975156a_wCLa+1qIcEHJgAAAABJRU5ErkJggg==.png

73014e41d6efa0ab1d79cc6b276b7021_TTghupytfRwAAAAASUVORK5CYII=.png

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


安装交叉编译工具链

拷贝交叉工具链文件到/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 让其生效


如图所示:

image.png

关于错误:


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

b0e598ffba77458f3eb768223c54564a_DArQj+zTdJoAAAAASUVORK5CYII=.png

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

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

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

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

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

f5d70ea652d529bdd9c0a95b2b7ad028_AX2KYgrPS7TOAAAAAElFTkSuQmCC.png

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

23724963d6db8cd8ddde6b806bae04e6_kbqf6iVwGukAAAAASUVORK5CYII=.png






文章来源于: 电子工程世界 原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。