目录
前言
一、ETH 操作指南
1.1 操作示例
1.2 ethtool 配置接口
二、USB 2.0 Host/USB3.0 Host 操作指南
2.1 U 盘操作示例
2.1.1 插入检测
2.1.2 初始化及应用
三、EMMC 卡操作指南
3.1 操作示例
3.2 操作中需要注意的问题
3.2.1 在正常操作过程中需要遵守的事项
3.2.2 在正常操作过程中不能进行的操作
3.3.3 在操作过程中出现异常时的操作
四、创建分区以及格式化
4.1 用 fdisk 工具分区
4.1.1 查看当前状态
4.1.2 创建新的分区
4.1.3 保存分区信息
4.2 用 mkdosfs 工具格式化
4.3 挂载目录
4.4 读写文件
本章内容主要介绍外设驱动的一些操作方法,其中包括 "ETH 操作指南"、"U盘操作指南"、"EMMC 卡操作指南 "。
内核下使用网口的操作涉及到以下几个方面:
− 关闭 TSO: ./ethtool –K eth0 tx off
− 打开 TSO: ./ethtool –K eth0 tx on
TSO(TCP Segment Offload) 功能简介:
TSO (TCP Segmentation Offload) 是一种利用网卡分割大数据包,减小 CPU 负荷的一种技术,也被叫做 LSO (Large segment offload),如果数据包的类型只能是 TCP,则被称之为 TSO,如果硬件支持 TSO 功能的话, 也需要同时支持硬件的 TCP 校验计算和分散-聚集 (Scatter Gather) 功能。 TSO 的实现,其实是由软件和硬件结合起来完成的,具体说来,硬件能够对大的数据包进行分片,并对每个分片附着相关的头部。使用 TSO 时,会把一部分由 CPU 处理的工作转移到由网卡来处理,减轻 CPU 的压力,提高性能。
ifconfig eth0 xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx up
route add default gw xxx.xxx.xxx.xxx
mount -t nfs -o nolock xxx.xxx.xxx.xxx:/your/path /mount-dir
前提是在 server 端有 tftp 服务软件在运行。
tftp -r XX.file serverip -g
其中:XX.file 为需要下载的文件,serverip 需要下载的文件所在的 server 的 ip 地址。
tftp -l xx.file remoteip –p
其中,xx.file 为需要上传的文件,remoteip 文件需要上传到的 server 的 ip 地址。
用户可以通过标准 ethtool 工具接口进行流控功能的使能。
ethtool –a eth0 命令查看 eth0 口流控功能状态;打印如下:
# ./ethtool -a eth0
Pause parameters for eth0:
Autonegotiate: on
RX: on
TX: on
其中,RX 流控是打开的,TX 流控是打开的;
# ./ethtool -A eth0 tx off(关闭 TX 流控)
# ./ethtool -A eth0 tx on(打开 TX 流控)
直接插入 U 盘,观察是否枚举成功。USB 2.0 Host 正常情况下串口打印为:
~ # usb 1-1: new high-speed USB device number 7 using hiusb-ehci
scsi2 : usb-storage 1-1:1.0
scsi 2:0:0:0: Direct-Access Kingston DT 101 G2 1.00 PQ: 0 ANSI: 4
sd 2:0:0:0: [sda] 15131636 512-byte logical blocks: (7.74 GB/7.21 GiB)
sd 2:0:0:0: [sda] Write Protect is off
sd 2:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sda: sda1
sd 2:0:0:0: [sda] Attached SCSI removable disk
其中:sda1 表示 U 盘或移动硬盘上的第一个分区,当存在多个分区时,会出现 sda1、sda2、sda3 等字样。
模块插入完成后,进行如下操作:
说明:sdXY 中 X 代表磁盘号,Y 代表分区号,请根据具体系统环境进行修改。
步骤 1. 查看分区信息。
步骤 2. 查看格式化信息。
步骤 3. 挂载目录,请参见 "4.3 挂载目录"。
步骤 4. 对硬盘进行读写操作,请参见 "4.4 读写文件"。
此操作示例通过 SDIO 接口实现对 EMMC 卡的读写操作。初始化及应用见如下操作:
说明:其中 X 为分区号,由 fdisk 工具分区时决定。
步骤 1. 查看分区信息。
步骤 2. 查看格式化信息。
步骤 3. 挂载目录,请参见 "4.3 挂载目录"。
步骤 4. 对 EMMC 卡进行读写操作,请参见 "4.4 读写文件"。
通过 “4.1.1 查看当前状态”,对应以下情况选择操作:
~ $ fdisk 设备节点
回车后,输入命令 m,根据帮助信息继续进行以下的操作。
其中设备节点与实际接入的设备类型有关,具体名称在以上各章节的 “操作示例” 中均有说明。
在控制台的提示符下,输入命令 p,查看当前分区状态:
Command (m for help): p
控制台显示出分区状态信息:
Disk /dev/mmc/blk1/disc: 127 MB, 127139840 bytes
8 heads, 32 sectors/track, 970 cylinders
Units = cylinders of 256 * 512 = 131072 bytes
Device Boot Start End Blocks Id System
上面信息表明设备没有分区,需要按照 “4.1.2 创建新的分区” 和 “4.1.3 保存分区信息” 的描述对设备进行分区。
创建新的分区步骤如下:
步骤 1. 创建新的分区。
在提示符下输入命令 n,创建新的分区:
Command (m for help): n
控制台显示出如下信息:
Command action
e extended
p primary partition (1-4)
步骤 2. 建立主分区。
输入命令 p,选择主分区:
p
步骤 3. 选择分区数。
本例中选择为 1,输入数字 1:
Partition number (1-4): 1
控制台显示出如下信息:
First cylinder (1-970, default 1):
步骤 4. 选择起始柱面。
本例选择默认值 1,直接回车:
Using default value 1
步骤 5. 选择结束柱面。
本例选择默认值 970,直接回车:
Last cylinder or +size or +sizeM or +sizeK (1-970, default 970):
Using default value 970
步骤 6. 选择系统格式。
由于系统默认为 Linux 格式,本例中选择 Win95 FAT 格式,输入命令 t 进行修改:
Command (m for help): t
Selected partition 1
输入命令 b,选择 Win95 FAT 格式:
Hex code (type L to list codes): b
输入命令 l,可以查看 fdisk 所有分区的详细信息:
Changed system type of partition 1 to b (Win95 FAT32)
步骤 7. 查看分区状态。
输入命令 p,查看当前分区状态:
Command (m for help): p
控制台显示出当前分区状态信息,表示成功分区。
输入命令 w,写入并保存分区信息到设备:
Command (m for help): w
控制台显示出当前设备信息,表示成功写入分区信息到设备:
The partition table has been altered!
Calling ioctl() to re-read partition table.
…………
~ $
存在以下情况选择操作:
~ $ mkdosfs -F 32 设备分区名
其中设备分区名与实际接入的设备类型有关,具体名称在以上各章节的 “操作示例” 中均有说明。
控制台没有显示错误提示信息,表示成功格式化:
~ $
使用命令 mount 挂载到 mnt 目录下,就可以进行读写文件操作:
~ $ mount -t vfat 设备分区名 /mnt
其中设备分区名与实际接入的设备类型有关,具体名称在以上各章节的 “操作示例” 中均有说明。
读写操作的具体情况很多,在本例中使用命令 cp 实现读写操作。
使用命令 cp 拷贝当前目录下的 test.txt 文件到 mnt 目录下,即拷贝至设备,实现写操作,如:
~ $ cp ./test.txt /mnt