华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
[ubuntu10.4 Linux 环境配置 ] ............................................................................................................ 2
1. VI 功能增强 ............................................................................................................................ 2
1.1 VI 中不能正确使用上下箭头解决方法 ..................................................................... 2
1.2.ubuntu 里面颜色 VI 的个性设置 ................................................................................. 2
2. 安装 SSH .................................................................................................................................. 3
3. 启用 root 密码 .......................................................................................................................... 3
4. 安装 FTP 服务 ......................................................................................................................... 4
5. 配置 samba ............................................................................................................................... 4
5.1 ,实验准备 .................................................................................................................. 4
5.2. samba 的安装 ............................................................................................................... 5
5.3. 创建 Samba 配置文件 ................................................................................................. 5
5.4. 创建 samba 帐户 .......................................................................................................... 6
5.5. 重启 samba 服务器 ...................................................................................................... 6
5.6. 测试 .............................................................................................................................. 6
6. 安装 vmware tools (适应于虚拟机上安装 linux ) ............................................................. 6
7. 安装 NFS 服务器 ............................................................................................................. 9
7.2 测试 NFS ..................................................................................................................... 11
8. 安装 DHCP 服务 .................................................................................................................... 11
9.1 TFTP 服务的设置 ....................................................................................................... 12
9.2 TFTP 服务测试 ........................................................................................................... 13
10. 让 Ubuntu Linux 操作系统开启 Telnet 服务 ..................................................................... 13
11 .开发环境的安装 ............................................................................................................... 16
11.1. 安装工具链 ............................................................................................................... 16
11.2 添加库
函数
excel方差函数excelsd函数已知函数 2 f x m x mx m 2 1 4 2拉格朗日函数pdf函数公式下载
手册 ....................................................................................................... 17
12. 安装和卸载 Deb 包 ............................................................................................................. 17
FAQ ........................................................................................................................................... 17
1.Ubuntu 系统安装后添加的用户在用 sudo 的时候出现 xxx is not in the sudoers file
的解决方法 ....................................................................................................................... 17
1
华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
[ubuntu10.4 Linux 环境配置]
1. VI 功能增强
1.1 VI 中不能正确使用上下箭头解决方法
sudo apt-get install vim-full (安装完整版本的 VI)
root@ubuntun1:/usr/bin# ls -al /usr/bin/vi (查看目前缺省的 VI 程序)
lrwxrwxrwx 1 root root 20 Jan 21 01:15 vi -> /etc/alternatives/vi
root@ubuntun1:/usr/bin# sudo ln -sf /usr/bin/vim.full /usr/bin/vi (适应于 ubuntu7.10)
root@ubuntun1:/usr/bin# sudo ln -sf /usr/bin/vim /usr/bin/vi (适应于 ubuntu8.10,9.10,10.4)
1.2.ubuntu 里面颜色 VI 的个性设置
新建 /etc/vim/vimrc.local,里面添加内容如下(仅供参考):
set nu
set nocp
set ru
set hls
set is
syntax on
set backspace=indent,eol,start
set sw=4
set ts=4
set sm
set cin
colo slate
set guifont=Courier\ New\ 10
map
!g++ % -o mainutocmd FileType python setlocal et sta sw=4 sts=4
Vi 对中文的支持:
新建用户目录下的 .vimrc
$ vi ~/.vimrc
添加如下内容:
let &termencoding=&encoding
2
华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
set fileencodings=utf-8,gbk,ucs-bom,cp936
在 vi 的命令行模式下输入 :wq! 保存退出。
2.安装 SSH
sudo apt-get install ssh
【关于 SSH】
SSH 的英文全称是 Secure SHell。通过使用 SSH,你可以把所有传输的数据进行加密,这
样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS和 IP欺骗。还有一个额外的好
处就是传输的数据是经过压缩的,所以可以加快传输的速度。
SSH有很多功能,它既可以代替 telnet,又可以为 ftp、pop、甚至 ppp提供一个安全的"通道"。
SSH客户端与服务器端通讯时,用户名及口令均进行了加密,有效防止了对口令的窃听。
3.启用 root 密码
为了启用 root 帐号 (也就是 设置一个口令) 使用:
sudo passwd root
如何在终端机模式下切换到 root 身份?
sudo -s -H
Password: <在这注明您的密码>
【小知识】
缺省禁止 root 的好处包括了以下内容
起初 Ubuntu 团队希望安装尽可能的简单. 不使用 root , 在安装期间的两个
用户交互步骤可以省略. (科林·沃森)
更进一步, 如果在安装中使用 root, 用户将被要求永远记住他们选择的密码--
即使他们很少使用到它. Root 密码经常被对 Unix 安全模型不熟悉的用户忘记.
(马特·齐默曼)
它防止了缺省登录时 "我能做任何事情" --在较大的变化发生之前,你将被提
示输入口令,这可以使你考虑你这样做的结果. 如果你作为 root 登录, 你可以
删除一些 "没用的文件夹" 并且不会意识到你正处于错误的目录,那时已经太
晚了. 它是在 Unix 下长时间使用 "su-command-^D" 练习的情况下,代替一直
3
华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
呆在 root shell--除非你做严重的系统维护 (那时你仍然可以使用 "sudo
su"). (吉姆·奇塔姆 和 安德鲁·索巴拉)
Sudo 增加了运行命令的日志记录 (在 /var/log/auth.log). 如果你陷入困境,
你总是可以返回并看见那些运行的命令. (安德鲁·Zbikowski)
4.安装 FTP 服务
sudo apt-get install vsftpd
编辑 /etc/vsftpd.conf,将 anonymous_enable, local_enable,write_enable 改成
如下形式(如果前面有#号,需要将#号去掉):
anonymous_enable=NO
local_enable=YES
write_enable=YES
Once you configure vsftpd you can start the daemon. You can run following
command to run the vsftpd daemon:
sudo /etc/init.d/vsftpd restart
5.配置 samba
ubuntu 8.10 下配置 samba,实现 windows xp 访问Ubuntu
5.1,实验准备
首先更新 software sources, 找到最快的源
$cd /etc/apt
$cp source.list source.list_orig
$sudo vi source.list
可参考:
http://hi.baidu.com/hexi1985/blog/item/07478bef616024e3cf1b3e6d.html
我测试的是添加如下行:
deb http://Ubuntu.srt.cn/ubuntu/ lucid main universe restricted multiverse
deb-src http://Ubuntu.srt.cn/ubuntu/ lucid main universe restricted multiverse
deb http://Ubuntu.srt.cn/ubuntu/ lucid-security universe main multiverse restricted
deb-src http://Ubuntu.srt.cn/ubuntu/ lucid-security universe main multiverse restricted
deb http://Ubuntu.srt.cn/ubuntu/ lucid-updates universe main multiverse restricted
deb http://Ubuntu.srt.cn/ubuntu/ lucid-proposed universe main multiverse restricted
deb-src http://Ubuntu.srt.cn/ubuntu/ lucid-proposed universe main multiverse restricted
deb http://Ubuntu.srt.cn/ubuntu/ lucid-backports universe main multiverse restricted
deb-src http://Ubuntu.srt.cn/ubuntu/ lucid-backports universe main multiverse restricted
4
华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
deb-src http://Ubuntu.srt.cn/ubuntu/ lucid-updates universe main multiverse restricted
执行:
$ sudo apt-get update
5.2. samba 的安装
$sudo apt-get install samba smbfs samba-common smbclient
5.3. 创建 Samba 配置文件
1. 保存现有的配置文件
$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
2. 打开现有的文件
$ sudo vim /etc/samba/smb.conf
在 smb.conf最后添加
[username]
path = /home/username
available = yes
browseable = yes
public = yes
writable = yes
(注意: 上面的设置中,username 换成你的用户名, 如果在前面有“#”,需
要先把它去掉)
[tftpboot]
path = /tftpboot
available = yes
browseable = yes
public = yes
writable = yes
[opt]
path = /opt
available = yes
browseable = yes
public = yes
writable = yes
5
华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
5.4. 创建 samba 帐户
$ sudo smbpasswd -a USERNAME (USERNAME 换成你的用户名)
会要求你输入 samba 帐户的密码
New SMB password:
Retype new SMB password:
[ 如 果 没 有 第 四 步 , 当 你 登 录 时 会 提 示 session setup failed:
NT_STATUS_LOGON_FAILURE]
5.5. 重启 samba 服务器
$ sudo /etc/init.d/samba reload (修改过 smb.conf 的话要执行一次)
$ sudo /etc/init.d/samba restart
5.6. 测试
可以到 windows 下输入 ip 试一下了
在文件夹处输入 "\\" + "Ubuntu 机器的 ip或主机名"
Ubuntu 8.10 访问Window XP 下的文件
直接在地址栏中输入 "smb://1XP 机器的 ip地址/
6. 安装 vmware tools(适应于虚拟机上安装 linux)
如果你使用的是虚拟机 vmware,那我们可以安装 vmware tools以提高系统的图形和
鼠标的性能 (在这之前,如果要从虚拟机切换回WINDOWS窗口,需要同时按
CTRL+ALT)
6
华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
首先在启动虚拟机前, 需要确保其设定中有CD-ROM 一项,如下图:
启动虚拟机,进入到图形系统后,点击 vmware菜单上的 Install vmware tools,如
图:
7
华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
之后,在 ubuntu里面的桌面上就可以看到如下图所示的 vmware tools安装包了。
将VmwareTools-6.0.3-80004.tar.gz (图示安装的 vmwareTools-6.03-80004
版本)拷贝到本地目录下,通过以下命令安装:
8
华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
$ cd ~
$mkdir software
$cd ~/software
$ cp /media/cdrom0/VMwareTools-6.0.3-80004.tar.gz ./
$tar zxf VMwareTools-6.0.3-80004.tar.gz
$ ls
VMwareTools-6.0.3-80004.tar.gz vmware-tools-distrib
$ cd vmware-tools-distrib/
$ ls
bin doc etc FILES INSTALL installer lib vmware-install.pl
$ sudo ./vmware-install.pl
输入安装用户密码,提示的时候一路按回车下去,经过一会后,就安装完成了。之后你
可以比较方便的设置虚拟机的屏幕大小了,鼠标也可以在WINDOWS和 linux间自如
滑动了。
以下部分是跟我们做的嵌入式开发息息相关的:
7.安装 NFS 服务器
7.1 安装 NFS server 端口映射和服务
$ sudo apt-get install nfs-kernel-server nfs-common portmap
$ sudo dpkg-reconfigure portmap
在出现如下提示的时候,注意选定“不将 portmap绑定在 loopback 地址”
9
华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
之后,系统会有如下提示:
Current registered services:
------------------------------------------------
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
…
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
之后通过查看 /etc/default/portmap, 确保
#OPTIONS="-i 127.0.0.1"
前面的#号 被添加了
重启portmap服务:
$ sudo /etc/init.d/portmap restart
编辑/etc/exports,添加目标系统的根文件系统映射目录,假如目标系统的根文件系统最
后映射到/opt/filesytem,则/etc/exports内容如下:
/opt/filesystem *(subtree_check,rw,no_root_squash,async)
$ sudo /etc/init.d/nfs-kernel-server restart
$ sudo exportfs –a (每修改过/etc/exportfs 后需要执行一次)
10
华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
7.2 测试 NFS
首先建立一个nfs测试的挂载点(目录):
$ sudo mkdir /mnt/nfs
$ mount ubuntuIP:nfsdir /mnt/nfs –t nfs
比如我的机器:
$ mount 192.168.7.98:/opt/filesystem /mnt/nfs –t nfs
如果挂载成功,则表示NFS配置成功。
8.安装 DHCP 服务
说明:DHCP用于给目标板启动过程中动态分配 IP
This article is a work in progress.
$ sudo apt-get install dhcp3-server
# /etc/default/dhcp3-server
INTERFACES="eth0"
$ sudo vi /etc/dhcp*/dhcpd.conf
# dhcpd.conf for Helia labs
# Copyright 2006 Tero Karvinen http://www.iki.fi/karvinen/ubuntu_dhcp.html
# License: GNU General Public License, version 2 or later
# ChangeLog:
# 2006-03-27 Initial version, testing in Helia labs
# Don't set "authoritative" until everything else is correct in dhcpd.conf
authoritative; # Warning: this overrides other DHCP servers
# Default options in Ubuntu:
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
# Subnet row defines server's network card. Also set in
"/etc/default/dhcp3-server"
# 'ifconfig' shows subnet (ipaddress, zeroes as in mask) and netmask
subnet 172.28.0.0 netmask 255.255.0.0 {
host terotestaa {
11
华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
# 'ping target_host', 'arp' shows MAC address
# only give DHCP information to this computer:
hardware ethernet 00:0D:56:73:F0:0D;
# Basic DHCP info (see 'ifconfig', 'route', 'cat
/etc/resolv.conf')
fixed-address 172.28.1.7;
option subnet-mask 255.255.0.0;
option routers 172.28.1.254;
option domain-name-servers 172.28.1.67, 172.28.1.69;
# Non-essential DHCP options
option domain-name "tielab.helia.fi";
}
}
# 'sudo /etc/init.d/dhcp3-server force-reload'
# http://www.iki.fi/karvinen/ubuntu_dhcp.html
$ sudo /etc/init.d/dhcp3-server restart
Now that you have DHCP working.
注意事项:
1. 确保 /etc/default/dhcp3-server 设置了正确的 INTERFACES
2. 按照上面的设置 /etc/dhcp3/dhcpd.conf,之后要执行 sudo /etc/init.d/dhcp3-server
force-reload
3. 以后每次执行: sudo /etc/init.d/dhcp3-server restart
9.安装 TFTP 服务
9.1 TFTP 服务的设置
$ sudo mkdir /tftpboot
$ cp uImage /tftpboot [注:uImage是我用于测试的一个文件,你可用别的随意文件替代]
$ sudo chmod 777 /tftpboot -R
$ sudo apt-get install tftp tftpd
$ sudo apt-get install openbsd-inetd
$ sudo vi /etc/inetd.conf
在里面填入如下一行:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
修改/etc/default/tftpd-hpa
#Defaults for tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -s /tftpboot”
$ sudo /etc/init.d/openbsd-inetd reload
$ sudo /etc/init.d/openbsd-inetd restart
12
华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
9.2 TFTP 服务测试
在用户自己目录下建议一个目录,将 /tftpboot 下存在的文件下载到此目录下
$ tftp ubuntu_IP (VMWARE 虚拟机 IP地址 ,比如我的是 192.168.7.98)
tftp> get uImage (如果 TFTP 正常配置,这个能比较快就下载完毕 ) (uImage 是一个
在/tftpboot 下面的任意一个拿来做测试用的数据,我这里用的是内核镜像 uImage)
tftp>quit
可以看到,在当前目录下有我们通过 TFTP 下载的文件 uImage 了。
以后每次启动系统的时候,要执行一下:
$ sudo /etc/init.d/openbsd-inetd restart
此次,我们应用于嵌入式开发的服务配置完毕。下面我们学习配置为我们最终在目标板上可能
有的场合需要用到的 TELNET server 服务
10. 让 Ubuntu Linux 操作系统开启 Telnet 服务
10.1. sudo apt-get install xinetd telnetd
10.2. 安装成功后,系统也会有相应提示:
sudo vi /etc/inetd.conf并加入以下一行
telnet stream tcp nowait telnetd /usr/sbin/tcpd
/usr/sbin/in.telnetd
10.3. sudo vi /etc/xinetd.conf并加入以下内容:
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
# Please note that you need a log_type line to be able to use
log_on_success
13
华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d
10.4. sudo vi /etc/xinetd.d/telnet并加入以下内容:
# default: on
# description: The telnet server serves telnet sessions;
it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
10.5. 重启机器或重启网络服务sudo /etc/init.d/xinetd restart
10.6. 使用 TELNET客户端远程登录即可进行非 root用户访问。
10.7.使用root登录:
mv /etc/securetty /etc/securetty.bak 这样root可以登录了。也可这
样:
修改/etc/pam.d/login这个文件。只需将下面一行注释掉即可。
#auth required lib/security/pam_securetty.so
14
华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
10.8. 详细配制/etc/xinetd.d/telnet
service telnet
{
disable =no
bind =192.168.1.2
only_from=192.168.1.0/24
#上面这两行说明仅提供内部网段!
Instance =UNLIMITED
Nice =0
Flags =REUSE
socket_type=stream
wait =no
user =root
#server =/usr/sbin/telnetd
server =/usr/sbin/in.telnetd
server_args =-a none
log_on_failure +=USERID
}
service telnet
{
disable =no
bind =140.116.142.196
only_from=140.116.0.0/16
no_access=140.116.32.{10,26}
#上面三行设置外部较为严格的限制
instance =10
umask =022
nice =10
flags =REUSE
socket_type=stream
wait =no
user =root
#server =/usr/sbin/telnetd
server =/usr/sbin/in.telnetd
log_on_failure +=USERID
}
10.9.加设防火墙 iptables:
如果想要针对 192.168.0.0/24这个网段及 61.xxx.xxx.xxx这个 IP进行
telnet开放,可以增加下面几行规则:
15
华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
/sbin/iptables -A INPUT -p tcp -i eth0 -s
192.168.0.0/24 --dport 23 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i eth0 -s
61.xxx.xxx.xxx --dport 23 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i eth0 --dport 23
-j DROP
10.10.加设防火墙/etc/hosts.allow(deny)机制:
上面开放了 192.168.0.0/24这个网段,但是如果您只想让其中的
192.168.0.1~192.168.0.5进入,可以设置如下 :
vi /etc/hosts.allow
in.telnetd:192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,192.168.0.5:allow
11.开发环境的安装
11.1.安装工具链
网上下载了源代码的包 quilt-0.46.tar.gz,解开进行编译测试,configure 的时候发现出现下
面的错误:
shyi@ubuntu:~/smartphone/motorola/e680i/tools/quilt-0.46$ ./configure
checking for gcc... gcc
checking for C compiler default output file name... configure: error: C compiler
See `config.log' for more details.
shyi@ubuntu:~/smartphone/motorola/e680i/tools/quilt-0.46$ ./configure
checking for gcc... gcc
checking for C compiler default output file name... configure: error: C compiler
See `config.log' for more details.
提示缺少 c编译器 ?
$sudo apt-get install gcc g++
系统会提示 ubuntn插入光盘
之后出现:
checking for getopt --long syntax... yes
checking for mktemp... /bin/mktemp
checking whether /bin/mktemp -d works... yes
checking for diff... /usr/bin/diff
checking for patch... no
16
华清远见--嵌入式学院 第一期课程实验手册 (补充实验)
configure: error: Please specify the location of patch with the option '--with-patch'
之后执行
$ su