日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

嵌入式Linux操作系统移植IMX6开发板之实现USB 自动挂载

發布時間:2023/12/10 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 嵌入式Linux操作系统移植IMX6开发板之实现USB 自动挂载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習交流加

  • 個人qq:
    1126137994
  • 個人微信:
    liu1126137994
  • 學習交流資源分享qq群:
    962535112

本篇文章講述如何實現USB自動掛載,U盤即插即用,不用手動掛載的方法,以及給出U盤自動掛載的原理。
目前做的IMX6開發板,移植Linux系統,源碼(linux內核為3.0.35)由廠家提供(后面會提供內核,uboot,文件系統源碼)。主要功能是實現機器人控制器與示教器一體的功能。

一.首先給出我在 IMX6開發板實現的USB自動掛載的方法(不局限于具體開發板):

-USB的自動掛載:
1、在/etc/udev/rules.d目錄里面創建11-usb-mount.rules,
11-usb-mount.rules里面的內容如下:

ACTION!="add",GOTO="farsight"KERNEL=="sd[a-z][0-9]",RUN+="/sbin/moun-tusb.sh %k"LABEL="farsight"

2、 在/sbin/目錄里創建mount-usb.sh腳本文件
mount-usb.sh的內容如下:

#!/bin/sh/bin/mount -t vfat /dev/$1 /udisksync

重啟下即可在linux上實現自動掛載,u盤自動掛載到/udisk目錄里
-USB的自動卸載:
1、在/etc/udev/rules.d目錄里面創建11-usb-umount.rules,內容如下:

ACTION!="remove",GOTO="farsight" SUBSYSTEM!="block",GOTO="farsight" KERNEL=="sd[a-z][0-9]",RUN+="/sbin/umount-usb.sh" LABEL="farsight"

2、在/sbin/目錄里創建umount-usb.sh腳本文件

umount-usb.sh的內容如下:#!/bin/sh/bin/umount /udisksync

通過上面的方法,親測有效,可以實現U盤的自動掛載。

二 分析一下U盤自動掛載的簡單原理
拿jz2440開發板中的led驅動程序做例子:

Busybox中的mdev.conf

在mdev.txt中有說明文檔:
mdev.conf的格式:

<device regex> <uid>:<gid> <octal permissions><device regex> <uid>:<gid> <octal permissions> [<@|$|*> <command>]

device regex:正則表達式,表示哪一個設備
uid: owner
gid: 組ID
octal permissions:以八進制表示的屬性
@:創建設備節點之后執行命令
$:刪除設備節點之前執行命令
*: 創建設備節點之后 和 刪除設備節點之前 執行命令
command:要執行的命令

表2.常用的限定符
代碼/語法 說明

  • 重復零次或更多次
  • 重復一次或更多次
    ? 重復零次或一次
    {n} 重復n次
    {n,} 重復n次或更多次
    {n,m} 重復n到m次

寫mdev.conf

方法1.

leds 0:0 777 led1 0:0 777 led2 0:0 777 led3 0:0 777

方法2.

leds?[123]? 0:0 777

方法3.

leds?[123]? 0:0 777 @ echo create /dev/$MDEV > /dev/console

方法4.

leds?[123]? 0:0 777 * if [ $ACTION = "add" ]; then echo create /dev/$MDEV > /dev/console; else echo remove /dev/$MDEV > /dev/console; fi

方法5.

leds?[123]? 0:0 777 * /bin/add_remove_led.sh (這是要寫入mdev.conf的配置)

把命令寫入一個腳本(最后需要添加執行權限,chmod + x add_remove_led.sh):
add_remove_led.sh

#!/bin/sh if [ $ACTION = "add" ]; then echo create /dev/$MDEV > /dev/console; else echo remove /dev/$MDEV > /dev/console; fi

6 .
U盤自動加載(放到/etc/mdev.conf里面的)

sda[1-9]+ 0:0 777 * if [ $ACTION = "add" ]; then mount /dev/$MDEV /mnt; else umount /mnt; fi
  • sda[1-9]+ 0:0 777 * /bin/add_remove_udisk.shadd_remove_udisk.sh (最后需要添加執行權限,chmod + x add_remove_udisk.sh) #!/bin/sh if [ $ACTION = "add" ]; then mount /dev/$MDEV /udisk; else umount /udisk; fi

    想獲得各種學習資源以及交流學習的加我(有我博客中寫的代碼的原稿):
    qq:1126137994
    微信:liu1126137994
    可以共同交流關于嵌入式,操作系統,C++語言,C語言,數據結構等技術問題。

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的嵌入式Linux操作系统移植IMX6开发板之实现USB 自动挂载的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。