驱动配置
NUC980读取U盘需要开启相关配置:
$cd NUC970_Buildroot-master/
$make linux-menuconfig
读取U盘要打开USB Host端支持,NUC980 USB Host包含EHCI(USB2.0)和OHCI(USB1.1)两个USB Host控制器,必须全部打开。
选择Device Drivers > USB support,图中标注处为必须选择项:
需要注意的是青色和黄色框中选项要根据硬件设计选择:
青色框中打开下拉选项:
此处根据USB硬件设计上是否有电源控制来选择,我的板子USB由5V直接供电,也无电流保护指示脚,故选择第四项,此处若选择有电源控制,即前两个选项,则还需要选择在休眠状态下,USB是否断电:
简单的说就是选择此项后,系统休眠时USB会关闭供电,唤醒时需重新连接设备和枚举,若连接的设备使用该USB进行供电,此选项不可选。
官方文档中对此解释如下:
黄色框中要注意的是USBH Lite的选择(我没有在官方文档中找到该选项相关内容,着实走了弯路!),0~5所用引脚均不相同,此处根据硬件设计,查看电路图上USB通信引脚来选择:
要支持U盘还需选择该页面下对大容量存储的支持:
但此选项需先开启SCSI设备支持才会出现,所以返回上一层Device Drivers界面,选择SCSI device support,下拉选项如下选择:
文件系统
使用U盘还需要支持对应的文件系统,我使用的U盘为FAT文件系统,选择File systems > DOS/FAT/NT Filesystems,选项设置如下:
设置完成后make,烧录uimage。
测试
开启时可能会出现如下信息,并不影响,可忽视:
测试挂载点选择/mnt/usb,插上U盘后会出现相关信息:
此处可以看到U盘分区名为sda1,若没有U盘信息,可在USB support下选择打开此选项:
或使用lsusb、fdisk -l,命令进行查看,若无则U盘未连接上,检查设置是否正确,U盘,硬件设计是否可行。
保存,执行挂载命令,此时即可在usb中查看U盘文件:
不使用U盘则需执行命令放下挂载:
注意:执行此命令时需从usb文件夹内退出,否则会报错。
#umount /mnt/usb
自动挂载
让U盘进行自动挂载需要mdev功能,该功能描述及使用方法在mdev.txt(output/build/busybox-1.25.1/docs/mdev.txt)文件中描述的比较详细:
首先在mdev.conf底部增加:
#FAT device such as U-disk
sd[a-z][0-9] root:root 660 */etc/automount $MDEV $ACTION
automount文件中如下修改:
#!/bin/sh
if [ "$2" == "add" ]; then
test -d /mnt/usb || mkdir /mnt/usb
mount -t vfat /dev/$1 /mnt/usb
else
umount /mnt/usb
fi
其实现功能为在插入U盘后,检测/mnt/usb文件夹,无则创建,然后将U盘挂载在该文件夹下,拔出U盘时则自动umount:
|