在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成功连接开发板