Ubuntu 13.0 嵌入式开发常用工具安装(二)
u-boot和Kernel及busybox官方下载地址
U-boot:
http://www.icdev.com.cn/batch.viewlink.php?itemid=1694
Linux Kernel:
ftp://ftp.arm.linux.org.uk/pub/linux/linux-2.6/
busybox:
u-boot和Kernel及busybox官方下载地址
U-boot:
http://www.icdev.com.cn/batch.viewlink.php?itemid=1694
Linux Kernel:
ftp://ftp.arm.linux.org.uk/pub/linux/linux-2.6/
busybox:
1 minicom(linux下的超级终端)
具体的配置信息如下所示:
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转串口芯片的话 A该设为/dev/ttyUSB0
如果没有那么设为: /dev/ttyS0
注意:非正常关闭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机上的目录)。做了此项配置后,每次向开发板发送文件时,只需输入文件名即可,无需输入文件所在目录的绝对路径
2 tftp 简单文件传输协议
sudo apt-get install tftpd-hpa ;安装tftp服务端
sudo apt-get install tftp-hpa ;安装tftp客户端
2.安装xinetd
sudo apt-get install xinetd
3.安装完 xinetd应该会建立目录/etc/xinetd.d,在此目录中添加文件:tftpd
sudo touch /etc/xinetd.d/tftpd
4. 编辑tftp的初始化文件
在tftpd中添加如下内容:
service tftp
{
disable = no
socket_type = dgram
wait = no
user = root
protocol = udp
server = /usr/sbin/in.tftpd
server_args = -s /home/tftpd ----------------------------自己创建的tftp主目录 cpy share file to this directory
log_on_success = PID HOST DURATION
log_on_failure = HOST
}
5.在/home下建立tftpd目录,作为服务器的目录
sudo mkdir /home/tftpd
释放权限:
sudo chmod 777 /home/tftpd
6.打开inetd.conf 注释掉内容:
sudo gedit /etc/inetd.conf
#tftp dgram udp wait nobody /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot ----------若没有请自己添加此句。
7.重启xinetd服务
sudo /etc/init.d/xinetd restart
8.重启tftpd服务
sudo /etc/init.d/tftpd-hpa restart
通过查看进程可以查看当前tftp server 主目录
ps -axu | grep tftp
root 10736 0.0 0.0 2280 684 ? Ss 21:26 0:00 /usr/sbin/in.tftpd -s /home/tftpd
9 tftp的使用方法
usage : tftp ipaddrs //向指定的IP的开发板传输文件,或者PC。
get filename //获取文件,从另一台或者本机目录获取文件,文件需要提前保存到/home/tftpd 中。
put file //发送文件
下面是网上总结出来的常见错误及解决方法:
现象一:
tftp> get file
Transfer timed out.
原因:
tftpd服务没有启动
解决方法:启动服务
sudo /etc/init.d/xinetd restart
sudo /etc/init.d/tftpd-hpa restart
现象二:
tftp> get file
Error code 2: Only absolute filenames allowed
原因:
在/etc/xinetd.d/tftpd中设置的server_args为/etc/default/tftpd-hpa
下面是我的机器上/etc/default/tftpd-hpa配置
# /etc/default/tftpd-hpa
RUN_DAEMON="yes"
TFTP_ADDRESS="0.0.0.0:69"
OPTIONS="-s /home/tftpd -c -p -U 077 -u tftpd"
现象三:
tftp> put file
Error code 1: File not found
原因:
指定的文件不存在;或tftpd启动参数中没有指定-c选项,允许上传文件~上传的时候一定要确保文件先存在于上传目录下。
现象四:
tftp> get file
tftp: : Permission denied
原因:权限不足
请查看chmod 是不是配置好
3 nfs(网络文件系统):相同操作系统的两台主机共享目录
一、NFS安装
$sudo apt-get install nfs-kernel-server nfs-common rpcbind
二、NFS配置
2.1 配置/etc/exports文件
$sudo vim /etc/exports
在文件最后加入如下内容:
{{
/rootnfs *(rw,sync,no_root_squash)
}}
注:nfs允许挂载的目录及权限在文件/etc/exports中进行了定义。其中:/rootnfs是要共享的目录,*代表允许所有的网络段访问,rw是可读写权限,sync是资料同步写入内存和硬盘,no_root_squash是nfs客户端分享目录使用者的权限,如果客户端使用的是root用户,那么对于该共享目录而言,该客户端就具有root权限。
nfs常用的参数有:
ro 只读访问
rw 读写访问sync 所有数据在请求时写入共享
async nfs在写入数据前可以响应请求
secure nfs通过1024以下的安全TCP/IP端口发送
insecure nfs通过1024以上的端口发送
wdelay 如果多个用户要写入nfs目录,则归组写入(默认)
no_wdelay 如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置。
hide 在nfs共享目录中不共享其子目录
no_hide 共享nfs目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
anonuid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的GID
三、重启服务
$ sudo /etc/init.d/rpcbind restart
$ sudo /etc/init.d/nfs-kernel-serverrestart
四、测试
4.1 显示出共享出来的目录
$showmount -e
4.2 将nfs的rootnfs目录挂载到本地磁盘上。
$sudo mount -t nfs localhost:/rootnfs /mnt
4.3 查看挂载情况
$df
4.4 卸载挂载
$sudo umount /mnt
五、完成