(ubuntu10.04)
本节主要包括:
一------minicom配置(linux下的串口)
二-------nfs配置(可以读写开发板里面的文件)
三------ftp配置(传递文件)
四------arm-linux-gcc/gdb等配置(交叉编译工具)
五----automake,automake autoconf autogen工具(帮助我们生成makefile)
---------------------------------------------------------------------------------------
一------minicom配置
linux下的串口,可以和开发板通过串口通信显示
安装:
sudo apt-get install minicom
配置:
1 . 在终端中输入minicom以启动minicom;
2. 先按下Ctrl + a, 放开, 再按o, 出现配置菜单.
3. 选择 Serial port setup, 此时所示图标在“Change which setting”中,键入“A”,此时光标移到第A项对应处:串口COM1对应ttyS0, COM2对应ttyS1. (注意选择)
具体的配置信息如下所示:
Serial port setup [Enter]
+-------------------------------------------------------------+
| A - Serial Device : /dev/ttyUSB0 |
| B - Lockfile Location : /var/lock |
| C - Callin Program : |
| D - Callout Program -: |
| E - Bps/Par/Bits : 115200 8N1 |
| F - Hardware Flow Control : No |
| G - Software Flow Control : No |
| |
| Change which setting? |
+-------------------------------------------------------------+
注意:如果没有使用USB转串口,而是直接使用串口,那么Serial Device要配置为/dev/ttyS0(如果使用USB转串口,则需要查看dev下是否存在ttyUSB0,若没有,则创建一个:mknod /dev/ttyUSB0 c 188 0)
对波特率,数据位和停止位进行配置,键入“E”,波特率选为115200 8N1 (奇偶校验无, 停止位1),
硬/软件流控制分别键入“F”“G”并且都选NO.
在确认配置正确之后,可键入回车返回上级配置界面,并将其保存为默认配置。(即save setup as dfl),之后重启minicom是刚才配置生效,在连上开发板的串口线后,就可在minicom中打印正确的串口信息了。
这时候可以打印串口的信息了,但是在通过串口用xmodem协议烧写内核时会提示没有xmodem协议。
所以还必须安装软件包:lrzsz
sudo apt-get install lrzsz
这时候就可以正常地用minicom通过串口烧写内核了。
下次在输入minicon 即可直接进入。
命令minicom是进入串口超级终端画面,而minicom -s为配置minicom。
说明/dev/ttyS0 对应为串口0 为你连接开发板的端口。
注意:非正常关闭minicom,会在/var/lock下创建几个文件LCK*,这几个文件阻止了minicom的运行,将它们删除后即可恢复
组合键的用法是:先按Ctrl+A组合键,然后松开这两个键,再按Z键。另外还有一些常用的组合键。
(1)S键:发送文件到目标系统中;
(2)W键:自动卷屏。当显示的内容超过一行之后,自动将后面的内容换行。这个功能在查看内核的启动信息时很有用。
(3)C键:清除屏幕的显示内容;
(4)B键:浏览minicom的历史显示;
(5)X键:退出mInicom,会提示确认退出。
3、配置文件所在目录
Ctrl + A --> O
+-----[configuration]------+
| Filenames and paths |
| File transfer protocols -|
| Serial port setup |
| Modem and dialing |
| Screen and keyboard |
| Save setup as dfl |
| Save setup as.. |
| Exit |
+--------------------------+
选择"Filenames and paths"
+-----------------------------------------------------------------------+
| A - Download directory : /home/crliu |
| B - Upload directory : /tmp |
| C - Script directory : |
| D - Script program : runscript |
| E - Kermit program : |
| F - Logging options |
| |
| Change which setting? |
+-----------------------------------------------------------------------+
(1)A - download 下载文件的存放位置(开发板 ---> PC)
开发板上的文件将被传输到PC机上的/home/crliu目录下。
(2)B - upload 从此处读取上传的文件(PC ---> 开发板)
PC机向开发板发送文件,需要发送的文件在/tmp目录下(PC机上的目录)。做了此项配置后,每次向开发板发送文件时,只需输入文件名即可,无需输入文件所在目录的绝对路径。
二-------nfs配置
按这个主要是为了linux之间的文件共享,我们可以在电脑上的linux直接看读写嵌入式开发板里面linux 的文件
1 安装NFS
Debian/Ubuntu上默认是没有安装NFS服务器的,首先要安装NFS服务程序:
$ sudo apt-get install nfs-kernel-server
(安装nfs-kernel-server时,apt会自动安装nfs-common和portmap)
2 配置/etc/exports
NFS挂载目录及权限由/etc/exports文件定义
将我的home目录中的/home/zp/share目录让192.168.2.*的IP共享, 则在该文件末尾添加下列语句:
/home/zp/share 192.168.2.*(rw,sync,no_root_squash)
或者:/home/zp/share 192.168.2.0/24(rw,sync,no_root_squash)
运行 $ sudo exportfs -r 更新
3 运行 $ sudo /etc/init.d/nfs-kernel-server restart($ sudo nfs-kernel-server restart) 重启nfs服务
4 测试NFS
可以尝试一下挂载本地磁盘(假设本地主机IP地址为:192.128.2.1,将/home/zp/share挂载到/mnt)
$ sudo mount -t nfs 192.168.2.1:/home/zp/share /mnt
运行 $ df 看看结果
$ sudo umount /mnt
可以使用一定的参数:
mount -o nolock,rsize=1024,wsize=1024,timeo=15 192.168.2.130:/tmp/ /tmp/
5 客户端挂载远程共享
mount -t nfs 192.168.0.***:/home/***/share /mnt/share
三------ftp配置
ftp的软件有好多种:google一下:各种的一些大致特点:
wu-ftp:比较老牌,但针对它的攻击比较多,设置比较麻烦,但功能比较强大。
proftpd:能实现wu-ftp以及server-U的所有功能。安全性也较高,但比起vcftpd配置稍显复杂。
vsftpd:功能强大,配置也比较简单
ftp也可以
选vsftod是因为它安全、速度快
选proftpd偶尔看到webmin支持他,所以就用了,因为方便。
选Serv-U理由windows普遍,Serv-U方便,但最大问题是盗版,所以现在不大用了
vsftpd是大多是linux系统下自带的ftp软件,而且像FREEBSD等网站都是采用,而且配置起来简单很多,所以我们也采用了vsftpd
安装:
sudo apt-get install vsftpd
配置:
备份一下源文件:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup
然后修改
sudo vi /etc/vsftpd.conf
anonymous_enable=yes (允许匿名登陆)
dirmessage_enable=yes (切换目录时,显示目录下.message的内容)
local_umask=022 (FTP上本地的文件权限,默认是077)
connect_form_port_20=yes (启用FTP数据端口的数据连接)*
xferlog_enable=yes (激活上传和下传的日志)
xferlog_std_format=yes (使用标准的日志格式)
ftpd_banner=XXXXX (欢迎信息)
pam_service_name=vsftpd (验证方式)*
listen=yes (独立的VSFTPD服务器)*
功能:只能连接FTP服务器,不能上传和下传
注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项
开启匿名FTP服务器上传权限
在配置文件中添加以下的信息即可:
Anon_upload_enable=yes (开放上传权限)
Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)
Write_enable=yes (开放本地用户写的权限)
Anon_other_write_enable=yes (匿名帐号可以有删除的权限)
开启匿名服务器下传的权限
Anon_world_readable_only=no
注:要注意文件夹的属性,匿名帐户是其它(other)用户要开启它的读写执行的权限
(R)读-----下传 (W)写----上传 (X)执行----如果不开FTP的目录都进不去
Local_enble=yes (本地帐户能够登陆)
Write_enable=no (本地帐户登陆后无权删除和修改文件)
功能:可以用本地帐户登陆vsftpd服务器,有下载上传的权限
注:在禁止匿名登陆的信息后匿名服务器照样可以登陆但不可以上传下传
用户登陆限制进其它的目录,只能进它的主目录
设置所有的本地用户都执行chroot
Chroot_local_user=yes (本地所有帐户都只能在自家目录)
设置指定用户执行chroot
Chroot_list_enable=yes (文件中的名单可以调用)
Chroot_list_file=/任意指定的路径/vsftpd.chroot_list
注意:vsftpd.chroot_list 是没有创建的需要自己添加,要想控制帐号就直接在文件中加帐号即可
限制本地用户访问FTP
Userlist_enable=yes (用userlistlai 来限制用户访问)
Userlist_deny=no (名单中的人不允许访问)
Userlist_file=/指定文件存放的路径/ (文件放置的路径)
注:开启userlist_enable=yes匿名帐号不能登陆
安全选项
Idle_session_timeout=600(秒) (用户会话空闲后10分钟)
Data_connection_timeout=120(秒) (将数据连接空闲2分钟断)
Accept_timeout=60(秒) (将客户端空闲1分钟后断)
Connect_timeout=60(秒) (中断1分钟后又重新连接)
Local_max_rate=50000(bite) (本地用户传输率50K)
Anon_max_rate=30000(bite) (匿名用户传输率30K)
Pasv_min_port=50000 (将客户端的数据连接端口改在
Pasv_max_port=60000 50000—60000之间)
Max_clients=200 (FTP的最大连接数)
Max_per_ip=4 (每IP的最大连接数)
Listen_port=5555 (从5555端口进行数据连接)
查看谁登陆了FTP,并杀死它的进程
ps –xf |grep ftp
kill 进程号
配置的时候注意文件权限的问题,开启匿名和本地后,关键是文件权限的设置,为了给不同的用户分配不同的权限,可以生成一个组,例如ftpuser,然后赋予它何时的权限例如755,chroot()设置可以使得本地用户限制在登录时的目录,这对于安全很重要,可以这是local_root指定本地用户登录时的目录,负责为/home下相应目录。
四------arm-linux-gcc/gdb等配置
这个网上有制作好的工具链arm-elf-gcc
或者直接用最原始的
1解压arm-linux-gcc-4.3.2.tgz包
在目录/usr/local下建一文件夹arm;命令如下:sudo mkdir arm;然后把压缩包复制到该文件夹中,执行命令 sudo tar xzvf arm-linux-gcc-4.3.2.tgz解压。
(注意:usr/local 这个目录一般是用来存放用户自编译安装软件的存放目录;一般是通过源码包安装的软件,如果没有特别指定安装目录的话,一般是安装在这个目录中。)
2将编译器的路径加入环境变量
打开etc下的文件bash.bashrc;(命令:sudo gedit /etc/bash.bashrc),然后再最后加上export PATH=$PATH:/usr/local/arm/usr/local/arm/4.3.2/bin。如下图
(注意:本人解压后的文件夹下有几级目录(解压出来的文件夹目录是usr/local/arm/),所以此处的路径比较长,可以把后面的usr/local/arm/目录去掉。)
3测试交叉编译器
1、输入命令 arm-linux-gcc -v执行即可查看交叉编译器的版本。
2、编译经典的Hello World!运行:
首先在X86上用gcc编译运行;效果如下
然后用arm-linux-gcc编译运行效果如下:
可见,用arm-linux-gcc编译的Hello world程序不能在X86上运行,而在arm开发板上却能正常运行。到此,交叉编译器安装成功。
另外还需要安装库的支持安裝build-essential:
sudo apt-get install build-essential
安裝头文件和库:
sudo apt-get install libc6-dev
安装gdb 调试器:
sudo apt-get install gdb
安装安装图形界面调试器 ddd:
sudo apt-get install ddd
sudo apt-get install insight
(这些是为了将来写驱动和应用程序准备的)
五----automake,automake autoconf autogen工具
这个工具可以协助我们生成makefile
当然我们也可以自己手动编写
sudo apt-get install automake
sudo apt-get install autoconf
sudo apt-get install autogen