這里面的根目錄下的 sdb1 就是我們 U 盤(pán)或者 TF 卡的設(shè)備,它掛載到了 /run/media/sdb1 這個(gè)路徑上大家也可以把我們的U盤(pán)或者 TF卡拔下來(lái)對(duì)比下,然后我們進(jìn)到這個(gè)路徑,直接使用 cd /run/media/sdb1 我們就可以看到 hello 這個(gè)可執(zhí)行文件了,如下圖所示。![]() 我們可以直接使用 cp 命令把它拷貝到開(kāi)發(fā)板 opt 目錄下,輸入 cp hello /opt 然后我們進(jìn)到根目錄的opt 目錄下,輸入 cd /opt 我們可以運(yùn)行下 hello 這個(gè)可執(zhí)行文件,我們先給他改下權(quán)限,改成 777 輸入chmod 777 hello ,我們運(yùn)行下./hello,這樣他就打印了 hello world! 如下圖所示。 ![]() 因?yàn)槲疫@里給開(kāi)發(fā)板燒寫(xiě)的是 yocto 的文件系統(tǒng),yocto 文件系統(tǒng)是自動(dòng)掛載 U 盤(pán)和 TF 卡的。什么是自動(dòng)掛載呢,自動(dòng)掛載就是不用再手動(dòng)使用命令把我們的 U 盤(pán)或者是 TF 卡掛載到我們的掛載點(diǎn)上,即自動(dòng)幫你完成掛載到 /run/media/sdb1 這個(gè)路徑上,但是有的文件系統(tǒng)不會(huì)自動(dòng)幫你掛載,比如說(shuō) busyboxy 、buildroot 默認(rèn)是不會(huì)幫你自動(dòng)掛載的,我們就可以手動(dòng)先來(lái)掛載下,我把開(kāi)發(fā)板的文件系統(tǒng)燒寫(xiě)成 busybox文件系統(tǒng),燒寫(xiě)過(guò)程就不給大家演示了,然后我們?cè)賮?lái)看下,我們要怎么使用命令來(lái)掛載。我現(xiàn)在給開(kāi)發(fā)板燒寫(xiě)好了 busybox 文件系統(tǒng),然后我插上 U 盤(pán),插上 U 盤(pán)之后,他會(huì)彈出來(lái)一些打印信息,我們可以通過(guò)這個(gè)打印信息就可以知道識(shí)別出來(lái)的是 dev 下邊的哪個(gè)設(shè)備,他這里識(shí)別的是 sdb1 。如下圖所示。 ![]() 然后我使用 df 命令,下面是沒(méi)有自動(dòng)掛載我們 dev 下邊 sdb1 設(shè)備的,如下圖所示。 ![]() 這時(shí)候我們就要使用手動(dòng)掛載,手動(dòng)掛載我們使用的是 mount 命令,我們輸入這個(gè)命令 , mount 設(shè)備名稱(chēng) 掛載點(diǎn) , 設(shè)備的名稱(chēng)是 dev 下邊的 sdb1 , 我們把它掛載到 mnt 路徑,也就是我們的掛載點(diǎn)是 mnt ,如下圖所示。 ![]() mount /dev/sdb1 /mnt mnt 的作用我們?cè)谥?fsh 規(guī)范的時(shí)候已經(jīng)講過(guò)了,然后我們?cè)偈褂?df 命令,我們?cè)賮?lái)查看下,這里就多了一個(gè)設(shè)備,如下圖所示。 ![]() 然后它掛載到了 mnt 上,然后我們進(jìn)到 mnt 這個(gè)命令,ls 看一下,這里面就有 hello 這個(gè)可執(zhí)行程序,如下圖所示。 ![]() 所以說(shuō)這個(gè)目錄下就是我們 U 盤(pán)的目錄,我們可以把 hello 拷貝到開(kāi)發(fā)板上,我們把它拷貝到根目錄下,然后我們來(lái)運(yùn)行下也是沒(méi)有問(wèn)題的,如下圖所示。 ![]() 有的文件系統(tǒng)是不會(huì)給你彈出來(lái)打印信息的,這時(shí)候我們要怎么確定他識(shí)別出來(lái)的是 dev 下邊哪個(gè)設(shè)備呢,比如說(shuō) ubuntu 你插上 U 盤(pán)之后,他是沒(méi)有打印信息的,這時(shí)候就不知道是 sda1 還是 sdb1 ,我們可以使用 cat 命令查看下準(zhǔn)確信息,我們直接使用這個(gè)命令,他下邊的 sdb1 就是我們的 U 盤(pán),如下圖所示。 ![]() 我們可以拔掉 U 盤(pán),然后我們?cè)賮?lái)查看下,他就沒(méi)有這個(gè) sdb1 了,所以說(shuō)這個(gè)分區(qū)信息就是 U 盤(pán)的,如下圖所示。 ![]() 然后我們?cè)诓迳纤N覀冞@里 TF 卡連接到開(kāi)發(fā)板也使用讀卡器連接的 連接好了之后,第一步先使用 df 命令查看下我們當(dāng)前的文件系統(tǒng)是不是自動(dòng)掛載的 U 盤(pán)或者 TF 卡,如果不是自動(dòng)掛載的,我們要用 mount 命令來(lái)掛載一下。如下圖所示。 ![]() mount 命令格式 : mount 設(shè)備名稱(chēng) 掛載點(diǎn) 使用 mount 命令我們要先確定我們的設(shè)備名稱(chēng),這個(gè)設(shè)備名稱(chēng)就是 dev 下邊的 sdb1 ,mnt 是掛載點(diǎn)mount /dev/sdb1 /mnt ![]() 設(shè)備名稱(chēng)的確定我們可以通過(guò)打印信息來(lái)查看,如果插上沒(méi)有打印信息,我們可以使用 cat 命令來(lái)查看下分區(qū)信息,輸入 cat /proc/partitions ![]() 如果我們的 U 盤(pán)或者 TF 卡時(shí)自動(dòng)掛載的,我們接下來(lái)直接訪(fǎng)問(wèn)就可以了。 我們要怎么卸載呢,我們使用的是 umount 命令, 卸載命令:umount 命令 格式:umount 掛載點(diǎn) 我現(xiàn)在卸載掉 U 盤(pán)掛載的 mnt 這個(gè)掛載點(diǎn),我們直接輸入 umount ,后邊跟我們的掛載點(diǎn)就可以了,我們輸入 umount /mnt ![]() 卸載后,我們來(lái)查看下,這里就沒(méi)有我們 dev/sda1 掛載的 mnt 這個(gè)掛載點(diǎn)了,如下圖所示。 ![]() TF 卡直接和卡座連接 開(kāi)發(fā)板上也預(yù)留了 TF 卡座子給大家,我們可以不使用讀卡器和開(kāi)發(fā)板連接,直接把 TF 插到我們的開(kāi)發(fā)板 TF 卡座子上,如下圖所示。剛剛我已經(jīng)把 U 盤(pán)拔下來(lái)了,作者現(xiàn)在把 TF 卡插到這個(gè)座子 ![]() 然后我們看下,我們?cè)诔?jí)終端就打印出了我們插上 TF 卡之后的打印信息。如下圖所示。 ![]() 我們按照剛剛學(xué)到的,我們第一步要判斷下他有沒(méi)有給我們自動(dòng)掛載,使用 df 命令,顯然他這里是沒(méi)有給我們自動(dòng)掛載的。如下圖所示。 ![]() 我就要使用 mount 命令手動(dòng)掛載一下,我先要確定我設(shè)備的名稱(chēng),設(shè)備的名稱(chēng)我這里可以通過(guò)打印信息來(lái)確定,他這里打印的是 mmcblk0:p1 ,如下圖所示。 ![]() 我們使用 mount /dev/mmcblk0p1 /mnt 然后在使用 df 命令來(lái)查看下,我們 TF 卡就掛載到了 mnt 這個(gè)掛載點(diǎn),我們使用 cd /mnt 直接訪(fǎng)問(wèn)就可以了,ls 看到 TF 卡里的信息,這個(gè)是 TF 卡自帶的一個(gè)文件和 hello文件,如下圖所示。 ![]() 使用 U 盤(pán)或者 TF 卡拷貝文件到開(kāi)發(fā)板上,我們一般是在開(kāi)發(fā)板沒(méi)有預(yù)留出網(wǎng)口等其他接口的時(shí)候,我們使用這個(gè)辦法來(lái)拷貝,因?yàn)楸容^麻煩。 我們來(lái)總結(jié)下,第一步要保證 U 盤(pán)或者 TF 卡的格式為 FAT32 格式,我們把文件或者是程序拷貝到 U盤(pán)或者 TF 卡之后,連接到開(kāi)發(fā)板上,連接好之后我們要先確定我們的開(kāi)發(fā)板上有沒(méi)有自動(dòng)掛載,使用 df命令來(lái)查看,如果他是自動(dòng)掛載的,我們直接訪(fǎng)問(wèn)掛載的路徑就可以了,如果不是自動(dòng)掛載的,我們要使用 mount 命令手動(dòng)掛載,使用 mount 命令我們要確定設(shè)備的名稱(chēng),確定設(shè)備的名稱(chēng)我們可以通過(guò)打印信息來(lái)確定,如果沒(méi)有打印信息,我們可以通過(guò)查看分區(qū)信息命令來(lái)確定,然后我們手動(dòng)掛載上之后就可以直接訪(fǎng)問(wèn)我們的掛載點(diǎn)也就是訪(fǎng)問(wèn)我們的 U 盤(pán)或者 TF 卡了,這個(gè)思路并不難,大家可以自己體驗(yàn)下。 ![]() |