Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1162181
  • 博文数量: 181
  • 博客积分: 4968
  • 博客等级: 上校
  • 技术积分: 1867
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-13 21:52
文章分类

全部博文(181)

文章存档

2015年(2)

2013年(6)

2012年(22)

2011年(41)

2010年(27)

2009年(51)

2008年(32)

我的朋友

分类: LINUX

2009-01-07 13:48:31

嵌入式开发的ubuntu配置

一、Ubuntu基本配置
(参看:)

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
阅读(1106) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~