嵌入式开发的
ubuntu
配置
一、 Ubuntu 基本配置
( 参看: http://wiki.ubuntu.org.cn/ )
1. 添加桌面图标
执行 gconf-editor ,选择 /apps/nautilus/desktop
2 、安装中文语言支持和配置输入法:去掉繁体等不用的输入法,否则切换太麻烦;
3 、将应用程序-附件-终端拖放一个副本到桌面,方便使用;
4 、设置软件源:
不同情况连接以下源的速度不同。建议在添加前手动验证以下源的连接速度(
ping
下就行)。比如说北京网通用户连接
cn99
就非常慢,而
ftp.sjtu.edu.cn
是相对较快的源。选择最快的源可大大节省下载时间,请根据自己网络环境设置更新服务器,以达到最快的速度。
注意,你可以同时加入几个源。尽量选择一组官方的源(也就是下面的
Archive.ubuntu.com
的条目)直接加在文件的最后,以避免非官方源软件包不全时出现
404 Not Found
文件未发现的错误。建议电信用户使用
cn99
和台湾大学的源,网通用户使用欧洲官方源或台湾大学的源,教育网用户使用教育网的源。
然后更新一下数据库
sudo apt-get update
随便升一下级
sudo apt-get upgrade
5 、一些别名设置,在你的用户目录中找到 .bashrc 文件,在最后加入下面一行:
alias ll='ls -l'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
6 、安装一些开发相关的软件:
装基本开发环境
sudo apt-get install build-essential gcc make
装编辑器
sudo apt-get install vim-full emacs
装基本开发库
sudo apt-get install libc6 libc6-dev
装 manpage,
装了之后可以直接用
man printf
查阅
printf
的详细用法
sudo apt-get install manpages-dev
安装 minicom 串口工具
sudo atp-get install minicom
然后配置:
sudo minicom -s
安装 ncurse
编译 kernel
或
vivi
的时候,运行
make menuconfig
会提示
ncurses
找不到,这是因为
menuconfig
用到了
ncurses
库。解决办法如下:
sudo apt-get install ncurses-dev
添加 tree 命令
apt-get install tree
安装 samba
apt-get install samba system-config-samba
安装 telnet 服务器
apt-get install telnetd
安装安装图形界面 ddd
调试器
apt-get install ddd ddd-doc
安装系统缺少的开发包
apt-get install libncurses5-dev libreadline5-dev libglib2.0-dev libdbus-glib-1-dev libqt4-dev libqt3-mt-dev
7 、增强 vi 功能
apt-get install vim-full
vi ~/.vimrc
加入如下内容:
" 在行前显示行号 . 关闭显示请用 "set nonu"
set nu
" 启用语法高亮
syntax on
"
根据文件类型启用缩进
filetype indent on
set autoindent
set cindent
"
查找时忽略大小些
set ic
"
查找文本高亮
set hls
" Wrap text instead of being on one line
set lbr
"
更改缺省配色方案为
delek
colorscheme delek
"
设置跳格距离
set tabstop=4
set softtabstop=4
"
设置自动缩进格数
set shiftwidth=4
二、安装交叉编译环境
1 、准备文件
cross-2.95.3.tar.bz2
arm-linux-gcc-3.3.2.tar.bz2
arm-linux-gcc-3.4.1.tar.bz2
2 、安装
将压缩包解压到 /usr/local/arm 下:
tar jxvf cross-2.95.3.tar.bz2 -C /usr/local/arm/
3 、设置环境变量:
把交叉编译器的路径加入到 PATH ,以方便使用:
sudo vi ~/.bashrc
在后面加入如下代码:
if [ -d /usr/local/arm ] ; then
PATH=/usr/local/arm/2.95.3/bin:"${PATH}"
fi
然后重新打开一个终端或者用 source 命令:
source ~/.bashrc
三、配置 nfs
首先确认已经在 Linux 操作系统上安装好了 nfs 软件,并确保 NFS 服务正常启动运行。
1 、备份 nfs 配置文件 :
cd /etc/
sudo mv exports exports.bak
2 、修改配置文件
sudo vi /etc/exports
加入如下内容:
/armnfs/root *(rw,sync,no_root_squash)
/armnfs/nfs *(rw,sync,no_root_squash)
/armnfs/nfs
和
/armnfs/root
是代表要作为
ARM2410
的根文件系统的共享目录;
*
代表所有的客户机都可以挂接此文件系统;
rw
代表客户机以读写许可来挂接它们的根文件系统;
no_root_squash
选项允许客户机以主机上的
root
身份挂接根文件系统。请阅读
exports
的手册获取更详细的信息。
3 、启动 nfs
切换到超级用户下,启动
nfs
service nfs start
4 、设置自动启动
在系统-管理-服务器设置-
service
中选择
nfs
后台服务;
或者用下面的命令:
chkconfig --level 5 nfs on
四、 TFTP 安装配置
1.
确保系统中已经安装了
tftp server
应用包
,
例如执行下面命令
:
rpm -qa | grep tftp-server
tftp-server-0.32-4 <===
表示已安装
tftp-server
应用
否则用以下命令进行安装:
apt-get install tftp-server
2.
编辑
/etc/xinetd.d/tftp
文件,确保其
disable
选项设为
no,
如下为示例配置:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
此外,确保 /tftpboot 目录存在,而且有访问权限(至少应该 "dr-xr-xr-x" )。
3. 将需要下载的文件拷贝到 /tftpboot 下:
4.
重新启动
xinetd
服务:
/etc/init.d/xinetd restart
五、配置 minicom 或超级终端
为了在主机上 “ 控制 ” 开发板,最常用的就是串口通讯工具, windows 下是超级终端, linux 下是 minicom 。
超级终端的原理并不复杂,它是将用户输入随时发向串口(采用 TCP 协议时是发往网口,这里只说串口的情况),但并不显示输入。它显示的是从串口接收到的字符。所以,嵌入式系统的相应程序应该完成的任务便是:
“ 将自己的启动信息、过程信息主动发到运行有超级终端的主机 ” 和 “ 将接收到的字符返回到主机,同时发送需要显示的字符(如命令的响应等)到主机 ” 。这样在主机端看来,就是有输入命令,又有命令运行状态信息。超级终端成了嵌入式系统的显示器。
如果要在超级终端显示汉字,嵌入式系统只需将汉字编码(每个汉字
2
个字节)发到主机,主机便会直接显示汉字。
1 、配置 windows 超级终端
超级终端是一个通用的串行交互软件,很多嵌入式应用的系统有与之交换的相应程序,通过这些程序,可以通过超级终端与嵌入式系统交互,使超级终端成为嵌入式系统的 “ 显示器 ” 。
我们可以用以下步骤配置和启动 windows :
( 1 )在开始 —— 程序 —— 附件 —— 通讯中找到并打开超级终端;
( 2 )设置超级终端:此处可以设置为: 115200 8N1
( 3 )发送文件时,可以选择菜单中的发送, xmodem ,然后选择相应的目录找到映像文件。然后可以看到发送进度。
2 、配置 minicom
minicom 是一个串口通信工具,就像 Windows 下的超级终端。可用来与串口设备通信,如调试交换机和 Modem 等。
可以按照以下步骤配置 minicom :
( 1 )以 root 身份运行
minicom. sudo minicom -s
( 2 )然后
Ctrl + A
后
o (
先按
Ctrl +A
再按
O)
来配置
minicom.
( 3 )从菜单中选择
Serial port setup,
按回车
.
以配置为
115200 8N1
为例。
( 4 )按
E
键
,
然后按
I
和
Q
键
,
确认
current
显示为
115200 8Nl,
按回车
.
再按
A
键
,
在
Serial Device
下输入名
(
如果选择串口
1,
输入
/dev/ttyS0.
如果选择串口
2,
输入
/dev/ttyS1),
然后回车
.
( 5 )按下 F 键 , 修改 Hardware Flow Control
为
No.
( 6 )从菜单中选择 Modem and Dialing, 键入
A,
删除
Init Sring
中的内容
,
按回车
.
( 7 )键入 B, 删除 Reset String 中的内容 , 按回车 .
然后按回车键返回上级菜单
.
( 8 )从菜单中选择 Save setup as dfl 回车 . 然后选择 Exit 退出配置菜单 .
( 9 ) Ctrl + A
然后按
Q
退出
minicom.
六、配置 vsftp
1 、安装
$ sudo apt-get install vsftpd
2 、设置
vsftpd.conf
文件
(
查找对应项,去掉注释
#
,或更改成自定义值
)
备份 vsftpd.conf 文件
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old
编辑 vsftpd.conf 文件
$ sudo vim /etc/vsftpd.conf
# 匿名用户设置
# 匿名用户访问权限, YES
允许访问,
NO
拒绝访问
anonymous_enable=NO
{// 以下只针对 anonymous_enable=YES 生效,建议关闭匿名访问
# 匿名用户上传权限, YES 允许, NO 拒绝。 FTP 匿名用户对某个目录有写权限。
anon_upload_enable=NO
# 匿名用户创建新目录权限, YES 允许, NO 拒绝。 FTP 匿名用户必需对新目录的上层目录拥有写权限。
anon_mkdir_write_enable=NO
# 匿名用户下载权限, YES 允许浏览及下载, NO
只允许浏览
anon_world_readable_only=NO
}
# 本地用户设置
# 控制 vsftpd 所在的系统的用户是否可以登录 vsftpd
local_enable=YES
#
将本地用户锁定在自家目录中。
YES
锁定,
NO
不锁定。
chroot_list_file
所指定文件中的用户将不被锁定在自家目录。本参数被激活后,可能带来安全上的冲突,特别是当用户拥有上传、
shell
访问等权限时。因此,只有在确实了解的情况下,才可以打开此参数。默认值为
NO
。
chroot_local_user=NO
# 锁定某些用户在自家目录中。即当这些用户登录后,不可以转到系统的其他目录,只能在自家目录 ( 及其子目录 ) 下。具体的用户在 chroot_list_file 参数所指定的文件中列出。默认值为 NO 。
chroot_list_enable=YES
# 指出被锁定在自家目录中的用户的列表文件。文件格式为一行一用户。
chroot_list_file=/etc/vsftpd.chroot_list
注意:
当
chroot_local_user=NO
、
chroot_list_enable=YES
时,
vsftpd.chroot_list
中用户为锁定用户,即他们除了自己的目录,不可以访问其他目录。
当 chroot_local_user=YES 、 chroot_list_enable=YES 时, vsftpd.chroot_list 中用户为非锁定用户,他们可以访问任何其他目录。
# 定义所有本地用户的根目录。当本地用户登入时,将被更换到此目录下。(注释则访问该用户自己目录)
local_root=/var/www/web
(路径自定义)
# 控制是否允许使用任何可以修改文件系统的 FTP
的指令,比如
STOR
、
DELE
、
RNFR
、
RNTO
、
MKD
、
RMD
、
APPE
以及
SITE
。
write_enable=YES
#FTP 服务器最大承载用户
max_clients=100
# 限制每个 IP 的进程
max_per_ip=5
# 最大传输速率 (b/s)
local_max_rate=256000
# 是否隐藏文件的所有者和组信息。 YES ,当用户使用 "ls -al" 之类的指令时,在目录列表中所有文件的拥有者和组信息都显示为 ftp 。
hide_ids=YES
# 空闲(发呆)用户会话的超时时间,若是超出这时间没有数据的传送或是指令的输入,则会强迫断线。单位为秒,默认值为 300 。
idle_session_timeout= 3000
3 、配置 vsftpd.chroot_list
$ sodu vim /etc/vsftpd.chroot_list
# 增加需要锁定 / 非锁定目录的用户 ( 根据自己情况添加 )
user1
user2
4 、删除 vsftp 默认访问路径
$ sudo rmdir /home/ftp
5 、重启 vsftp 服务
$ /etc/init.d/vsftpd restart
一、 Ubuntu 基本配置
( 参看: http://wiki.ubuntu.org.cn/ )
1. 添加桌面图标
执行 gconf-editor ,选择 /apps/nautilus/desktop
2 、安装中文语言支持和配置输入法:去掉繁体等不用的输入法,否则切换太麻烦;
3 、将应用程序-附件-终端拖放一个副本到桌面,方便使用;
4 、设置软件源:
然后更新一下数据库
sudo apt-get update
随便升一下级
sudo apt-get upgrade
5 、一些别名设置,在你的用户目录中找到 .bashrc 文件,在最后加入下面一行:
alias ll='ls -l'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
6 、安装一些开发相关的软件:
装基本开发环境
sudo apt-get install build-essential gcc make
装编辑器
sudo apt-get install vim-full emacs
装基本开发库
sudo apt-get install libc6 libc6-dev
装 manpage,
sudo apt-get install manpages-dev
安装 minicom 串口工具
sudo atp-get install minicom
然后配置:
sudo minicom -s
安装 ncurse
编译 kernel
sudo apt-get install ncurses-dev
添加 tree 命令
apt-get install tree
安装 samba
apt-get install samba system-config-samba
安装 telnet 服务器
apt-get install telnetd
安装安装图形界面 ddd
apt-get install ddd ddd-doc
安装系统缺少的开发包
apt-get install libncurses5-dev libreadline5-dev
7 、增强 vi 功能
apt-get install vim-full
vi ~/.vimrc
加入如下内容:
" 在行前显示行号 . 关闭显示请用 "set nonu"
set nu
" 启用语法高亮
syntax on
"
filetype indent on
set autoindent
set cindent
"
set ic
"
set hls
" Wrap text instead of being on one line
set lbr
"
colorscheme delek
"
set tabstop=4
set softtabstop=4
"
set shiftwidth=4
二、安装交叉编译环境
1 、准备文件
cross-2.95.3.tar.bz2
arm-linux-gcc-3.3.2.tar.bz2
arm-linux-gcc-3.4.1.tar.bz2
2 、安装
将压缩包解压到 /usr/local/arm 下:
tar jxvf cross-2.95.3.tar.bz2 -C /usr/local/arm/
3 、设置环境变量:
把交叉编译器的路径加入到 PATH ,以方便使用:
sudo vi ~/.bashrc
在后面加入如下代码:
if [ -d /usr/local/arm ] ; then
fi
然后重新打开一个终端或者用 source 命令:
source ~/.bashrc
三、配置 nfs
首先确认已经在 Linux 操作系统上安装好了 nfs 软件,并确保 NFS 服务正常启动运行。
1 、备份 nfs 配置文件 :
2 、修改配置文件
加入如下内容:
/armnfs/root *(rw,sync,no_root_squash)
/armnfs/nfs *(rw,sync,no_root_squash)
3 、启动 nfs
4 、设置自动启动
四、 TFTP 安装配置
1.
2.
service tftp
{
}
此外,确保 /tftpboot 目录存在,而且有访问权限(至少应该 "dr-xr-xr-x" )。
3. 将需要下载的文件拷贝到 /tftpboot 下:
4.
/etc/init.d/xinetd restart
五、配置 minicom 或超级终端
为了在主机上 “ 控制 ” 开发板,最常用的就是串口通讯工具, windows 下是超级终端, linux 下是 minicom 。
超级终端的原理并不复杂,它是将用户输入随时发向串口(采用 TCP 协议时是发往网口,这里只说串口的情况),但并不显示输入。它显示的是从串口接收到的字符。所以,嵌入式系统的相应程序应该完成的任务便是:
“ 将自己的启动信息、过程信息主动发到运行有超级终端的主机 ” 和 “ 将接收到的字符返回到主机,同时发送需要显示的字符(如命令的响应等)到主机 ” 。这样在主机端看来,就是有输入命令,又有命令运行状态信息。超级终端成了嵌入式系统的显示器。
1 、配置 windows 超级终端
超级终端是一个通用的串行交互软件,很多嵌入式应用的系统有与之交换的相应程序,通过这些程序,可以通过超级终端与嵌入式系统交互,使超级终端成为嵌入式系统的 “ 显示器 ” 。
我们可以用以下步骤配置和启动 windows :
( 1 )在开始 —— 程序 —— 附件 —— 通讯中找到并打开超级终端;
( 2 )设置超级终端:此处可以设置为: 115200 8N1
( 3 )发送文件时,可以选择菜单中的发送, xmodem ,然后选择相应的目录找到映像文件。然后可以看到发送进度。
2 、配置 minicom
minicom 是一个串口通信工具,就像 Windows 下的超级终端。可用来与串口设备通信,如调试交换机和 Modem 等。
可以按照以下步骤配置 minicom :
( 1 )以 root 身份运行
( 2 )然后
( 3 )从菜单中选择
( 4 )按
( 5 )按下 F 键 , 修改 Hardware Flow Control
( 6 )从菜单中选择 Modem and Dialing, 键入
( 7 )键入 B, 删除 Reset String 中的内容 , 按回车 .
( 8 )从菜单中选择 Save setup as dfl 回车 . 然后选择 Exit 退出配置菜单 .
( 9 ) Ctrl + A
六、配置 vsftp
1 、安装
$ sudo apt-get install vsftpd
2 、设置
备份 vsftpd.conf 文件
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old
编辑 vsftpd.conf 文件
$ sudo vim /etc/vsftpd.conf
# 匿名用户设置
# 匿名用户访问权限, YES
anonymous_enable=NO
{// 以下只针对 anonymous_enable=YES 生效,建议关闭匿名访问
# 匿名用户上传权限, YES 允许, NO 拒绝。 FTP 匿名用户对某个目录有写权限。
anon_upload_enable=NO
# 匿名用户创建新目录权限, YES 允许, NO 拒绝。 FTP 匿名用户必需对新目录的上层目录拥有写权限。
anon_mkdir_write_enable=NO
# 匿名用户下载权限, YES 允许浏览及下载, NO
anon_world_readable_only=NO
}
# 本地用户设置
# 控制 vsftpd 所在的系统的用户是否可以登录 vsftpd
local_enable=YES
#
chroot_local_user=NO
# 锁定某些用户在自家目录中。即当这些用户登录后,不可以转到系统的其他目录,只能在自家目录 ( 及其子目录 ) 下。具体的用户在 chroot_list_file 参数所指定的文件中列出。默认值为 NO 。
chroot_list_enable=YES
# 指出被锁定在自家目录中的用户的列表文件。文件格式为一行一用户。
chroot_list_file=/etc/vsftpd.chroot_list
注意:
当 chroot_local_user=YES 、 chroot_list_enable=YES 时, vsftpd.chroot_list 中用户为非锁定用户,他们可以访问任何其他目录。
# 定义所有本地用户的根目录。当本地用户登入时,将被更换到此目录下。(注释则访问该用户自己目录)
local_root=/var/www/web
# 控制是否允许使用任何可以修改文件系统的 FTP
write_enable=YES
#FTP 服务器最大承载用户
max_clients=100
# 限制每个 IP 的进程
max_per_ip=5
# 最大传输速率 (b/s)
local_max_rate=256000
# 是否隐藏文件的所有者和组信息。 YES ,当用户使用 "ls -al" 之类的指令时,在目录列表中所有文件的拥有者和组信息都显示为 ftp 。
hide_ids=YES
# 空闲(发呆)用户会话的超时时间,若是超出这时间没有数据的传送或是指令的输入,则会强迫断线。单位为秒,默认值为 300 。
idle_session_timeout= 3000
3 、配置 vsftpd.chroot_list
$ sodu vim /etc/vsftpd.chroot_list
# 增加需要锁定 / 非锁定目录的用户 ( 根据自己情况添加 )
user1
user2
4 、删除 vsftp 默认访问路径
$ sudo rmdir /home/ftp
5 、重启 vsftp 服务
$ /etc/init.d/vsftpd restart