常见嵌入式工具的配置和使用 (minicom, dnw, nfs等)


1 minicom

 

安装minicom完成后,第一次运行需 进行 minicom 的设置,以root权限下,输入命令
#minicom  - s
然后 选中 Serial port setup ,回车后,进入串口参数设置,然后根据相应的提示把串口设置为 /dev/ttyS0,也就是com1;把波特率设置我为115200,把硬件流控制设置为no。
退出到主菜单下,选中save setup as df1
退出并重新运行minicom


2 DNW

下载dnw,进入secbulk文件夹,
$cd secbulk
$make -C /lib/modules/`uname -r`/build M=`pwd` modules
注意:/lib/modules/`uname -r`/build是本机内核源文件的路径。
如果路径错误,自行建立链接
如果编译发生错误:
ERROR: Kernel configuration is invalid.
         include/linux/autoconf.h or include/config/auto.conf are missing.
         Run 'make oldconfig && make prepare' on kernel src to fix it.
或者:
/bin/sh: scripts/mod/modpost: No such file or directory

那么在内核源路径下执行下列命令:
$make oldconfig
$make prepare
$make make modules_prepare

编译成功后,在secbulk路径下生成文件:
secbulk.ko,  secbulk.mod.o

载入内核:
$sudo insmod  ./secbulk.ko
如果发生错误:
insmod: error inserting './secbulk.ko': -1 Invalid module format
则可能有下列原因,一一检查:
  • 所用内核源码版本号与目前使用的内核不同;
  • 编译目标不同,比如编译的是i686,装好的是i386;
  • 使用编译器版本不同;
  • 目前使用的内核不是自己编译出来的。
我第一次碰到这个错误就是通过重新编译本机linux内核解决的。
如果secbulk模块加载成功,用dmesg命令可以看到模块已经成功加载的信息:
$dmesg
.......
[  191.087463] secbulk:secbulk loaded
[  191.087839] usbcore: registered new interface driver secbulk


驱动模块加载完成后,现在编译生成dnw应用程序。进入dnw文件夹
$cd dnw
$gcc -o gnw dnw.c

现在就可以完全在linux下利用minicom和dnw的组合完成bootloader, zImage和rootfs的烧写了。

为了使用方便,我们把dnw和secbulk放到合适的路径下,并且设置secbulk开机自动加载。

#gedit /etc/init.d.rc

在文件的最后(exit(0)前面)添加如下内容:

#added by me for secbulk
insmod [secbulk.ko的绝对路径]


3 NFS (Network File System)
利用NFS进行嵌入式文件系统的开发,可以大大提高开发效率。这里也进行一下总结:

 

3.1 配置文档: /etc/exports
该文档中的每一项都定义了一条nfs路径,可以被指定的pc访问,
其格式为:路径     指定可访问该nfs的IP范围(访问规则)
例如:       /usr/nfs   192.168.1.*(rw,sync)
访问规则有:

下面是一些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

 

3.2 启动NFS Server
启动nfs服务: service nfs start
启动portmap
service portmap start
NFS只是文件系统的一种,本身不具备网络传输的功能,实际上它是通过RPC来实现的。因此,要启动NFS Server,必须启动RPC服务。SUSE11.2中没有portmap,好像被一个叫rpcbind的服务代替了。

检查NFS的运行级别:
# chkconfig --list portmap
# chkconfig --list nfs
根据需要设置在相应的运行级别自动启动NFS:
# chkconfig --level 235 portmap on
# chkconfig --level 235 nfs on


3.3: 挂载nfs
mount -t nfs  -o nolock ServerIPAddr:NFSPath  LocalPath

 

3.4:一些工具
showmount
showmount -a  ipaddress  显示已mount 上本机nfs目录的client
showmount -e  ipaddress  显示指定的NFS SERVER上export出来的所有目录

exportfs

当修改了/etc/exports文档后,能够不用重新启动nfs 服务,直接采用exports –rv即可重新导出共享目录;
该命令格式如下:
exportfs [-aruv]
-a:全部mount 或unmount /etc/exports中的内容
-r:重新mount /etc/exports中分享出来的目录
-u:umount目录
-v:在 export 的时候,将周详的信息输出到屏幕上。
具体例子:
[root@ns var]# showmount -e
Export list for ns.osserver :
/var/nfs 172.20.*.*
[root@ns var]# exportfs –au #全部卸载
[root@ns var]# showmount -e
Export list for ns.osserver :
[root@ns var]# exportfs –rv #全部重新 export 一次
exporting 172.20.*.*:/var/nfs
[root@ns var]#

 

参考文献:http://iyubo.blogbus.com/logs/21766848.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值