新路程 udev影響sd卡掛載

2021-08-07 15:57:13 字數 3176 閱讀 9190

本來想搞個開機自動掛載sd卡,那在fstab裡加了這麼句話

/dev/mmcblk0p1   /mnt          vfat   defaults        0       0

奇怪的是看log報錯了

[rcs]: /etc/init.d/s09mountall.sh

mount: mounting /dev/mmcblk0p1 on /mnt failed: no such file or directory

看看節點都有

mmc0: new ultra high speed sdr104 sdhc card at address 59b4

mmcblk0: mmc0:59b4  14.7 gib

mmcblk0: p1

vfs: mounted root (jffs2 filesystem) on device 31:2.

freeing init memory: 144k

[rcs]: /etc/init.d/s00mkdir.sh

mkdir: can't create directory 'boot': file exists

mkdir: can't create directory 'dev': file exists

mkdir: can't create directory 'home': file exists

mkdir: can't create directory 'mnt': file exists

mkdir: can't create directory 'opt': file exists

mkdir: can't create directory 'proc': file exists

mkdir: can't create directory 'share': file exists

mkdir: can't create directory 'sys': file exists

mkdir: can't create directory 'tmp': file exists

[rcs]: /etc/init.d/s09mountall.sh

然後我把mount加到了後面,嘗試以後發現只要加在

mkdir -p /dev/.udev

udevd --daemon

udevadm trigger

這個後面就mount成功了,

修改指令碼,ls /dev下的檔案,發現udev之前,dev目錄下只有兩個節點,只有udev執行以後才出現那堆節點

[rcs]: /etc/init.d/s12udev.sh

pts      ttys000

cannot open /dev/null

not recognise action:change

not recognise action:change

bus                 ram1                tty15               tty48

console             ram10               tty16               tty49

cpu_dma_latency     ram11               tty17               tty5

cuse                ram12               tty18               tty50

fd                  ram13               tty19               tty51

full                ram14               tty2                tty52

fuse                ram15               tty20               tty53

gmac                ram2                tty21               tty54

i2c-0               ram3                tty22               tty55

i2c-1               ram4                tty23               tty56

i2c-2               ram5                tty24               tty57

input               ram6                tty25               tty58

kmsg                ram7                tty26               tty59

mem                 ram8                tty27               tty6

mmcblk0             ram9                tty28               tty60

mmcblk0p1           random              tty29               tty61

mtd0                romblock0           tty3                tty62

mtd0ro              romblock1           tty30               tty63

出現了mmcblk了,所以後面掛載才成功了。

然後我有對照了sys/block目錄下的檔案,發現這個和udev沒有關係

mmcblk0    mtdblock3  ram11      ram15      ram5       ram9       romblock3

mtdblock0  ram0       ram12      ram2       ram6       romblock0

mtdblock1  ram1       ram13      ram3       ram7       romblock1

mtdblock2  ram10      ram14      ram4       ram8       romblock2

但是這個只有裝置,沒有分割槽,所以不能以此掛載。驅動裡生成的是sys下面的節點,看起來dev目錄下的節點需要udev來生成,但是需要證據。

新路程 imx6 sd卡部分摘要

首先iomux mx6q.h裡 mx6 sabresd board init裡 if cpu is mx6q 然後看sd卡的資源,在board mx6q sabresd.c 裡 static const struct esdhc platform data mx6q sabresd sd2 data...

Udev實現U盤或SD卡的自動掛載

linux傳統上使用靜態裝置建立的方法,在dev下建立了大量的節點,而不管這些節點相應的硬體裝置是否存在。採用 udev的方法,系統檢測到裝置才會去建立這些裝置對應的節點。這裡我們簡單的說一下udev的工作原理 udev是依賴於sysfs的,當系統中新增乙個新的裝置後,核心檢測到後就會產生乙個hot...

U盤 SD卡掛載

說明 u盤和sd卡大部分操作上是一樣的,因此下面將用u盤進行說明,如無特別說明在u盤上的操作在sd卡上同樣有效 u盤和sd卡里的檔案系統比較常用的是fat32 這裡也是基於fat32來說明的 掛載 掛載前首先要保證u盤已經被系統識別到了。被識別到了後在 dev下會有節點顯示,需要注意的是u盤的節點和...