導航:首頁 > 程序命令 > mtd命令

mtd命令

發布時間:2022-01-25 03:33:48

① winddows 命令行如何進入並操作MTD設備

電腦的軟體打開方式變成window media center的解決方法如下:
方法一如下:
1、重啟電腦,一啟動就一下一下的按F8鍵,選擇帶命令提示符的安全模式後回車。
2、輸入 assoc .exe=exefile 後按回車(注意:「.exe」前面有個空格)。
3、接著輸入 ftype exefile="%1"%* 後按回車,重新啟動計算機即可。
方法二如下:
1、重啟電腦,一啟動就一下一下的按F8鍵,選擇帶命令提示符的安全模式後回車。
2、在命令提示符里輸入:regedit 回車。
3、會看到注冊表,依次雙擊 HKEY_CURRENT_USER->SOFTWARE->MICROSOFT->WINDOWS->currentversion->Explorer->FileExts->.lnk 也就是進入路徑為HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\currentversion\Explorer\FileExts\.lnk的注冊表項會發現有openwithlist和enwithpops rogid兩項,如果有其它的選項將其刪除。
4、再將openwithlist 內的除默認以外的所有鍵值都刪除。 將openwithprogids內的除默認和lnkfile以外的所有鍵值都刪除。 保存退出即可。

② 小米路由器刷潘多拉時xshell 5提示 mtd 不是內部或外部命令,也不是可運行的程序 或批處理文件.應該怎麼辦

謹慎行事,先備份文件,以防不測。

上官網,輸入路由器的型號,下載。

備份現有的路由器文件,以便還原。

刷固件需謹慎,別把路由器刷成磚頭了!

參考資料 《設置路由器》http://jingyan..com/season/49960

③ 在一開uClinux的嵌入式開發板上,使用了MTD將Flash分區,在/dev下的mtd0和mtdblock0是對應同一塊分區的嗎

expand是個解壓命令吧,意思是將 ramfs.img 解壓到 /dev/mtblock0 這個設備中。
ramfs.img 應該是ramfs文件系統格式的鏡像文件。
mtd0和mtdblock0是否為同一塊分區主要看他們的主設備號和次設備號是否相同,如果主設備號相同、次設備號不同,那麼他們可能是同一個設備中的不同分區。如果主設備號不同,這時他們就不是同一個設備。主、次設備號都相同,則他們是同一塊flash中的同一個分區。

④ 為什麼用mtd erase擦寫分區很慢

expand解壓命令吧意思 ramfs.img 解壓 /dev/mtblock0 設備ramfs.img 應該ramfs文件系統格式鏡像文件mtd0和mtdblock0否同塊分區主要看們主設備號和次設備號否相同主設備號相同、次設備號同們能同設備同分區主設備號同時們同設備主、次設備號都相同則們同塊flash同分區希望能夠找答案

⑤ OPENWRT命令行下用什麼命令刷固件

用mtd命令,
mtd write ***.bin firmware
mtd erase rootfs_data

不過刷過squashfs-factory.bin沒必要再刷sysupgrade.bin吧

⑥ mtd和mtdblock的區別

mtd-utils工具對mtd和mtdblock分區設備的區別處理
1 / $ flash_eraseall /dev/mtdblock/2
2 flash_eraseall: /dev/mtdblock/2: unable to get MTD device info
3 / $ flash_eraseall /dev/mtdblock/2
4 flash_eraseall: /dev/mtdblock/2: unable to get MTD device info
5 / $ flash_eraseall /dev/mtd/2
6 Erasing 128 Kibyte @ 8e0000 -- 98 % complete.
7 / $ ls
1 / $ flashcp rootfs_version /dev/mtdblock2
2 This doesn't seem to be a valid MTD flash device!
3 / $ flashcp rootfs_version /dev/mtdblock/2
4 This doesn't seem to be a valid MTD flash device!
5 / $ flashcp rootfs_version /dev/mtd2
6 / $ ls
mtd和mtdblock分區設備mount時的區別
1 / $ mount -t jffs2 /dev/mtd/2 qqzm/
2 mount: Mounting /dev/mtd/2 on qqzm/ failed: Invalid argument
3 / $ mount -t jffs2 /dev/mtd2 qqzm/
4 mount: Mounting /dev/mtd2 on qqzm/ failed: Invalid argument
5 / $ mount -t jffs2 /dev/mtdblock/2 qqzm/
6 / $ ls
mtdblock掛載成功,單擦除後卸載失敗
01 / $ flash_eraseall /dev/mtd/2 <span></span> Erasing 128 Kibyte @ 8e0000 -- 98 % complete.
02 /qqzm $ mount
03 /dev/root on / type jffs2 (rw,noatime)
04 proc on /proc type proc (rw,nodiratime)
05 sysfs on /sys type sysfs (rw)
06 devfs on /dev type devfs (rw)
07 devpts on /dev/pts type devpts (rw)
08 /dev/mmcblk0p1 on /mnt/sd type vfat (rw,nodiratime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1)
09 /dev/mtdblock/2 on /qqzm type jffs2 (rw,noatime)
10 none on /qqzm/www/cgi-bin/tmp type ramfs (rw)
11 /qqzm $ cd ..
12 / $ umount /qqzm
13 umount: Couldn't umount /qqzm: Inappropriate ioctl for device
14 / $ umount /dev/mtdblock/2
15 umount: Couldn't umount /dev/mtdblock/2: Inappropriate ioctl for device
16 / $
MTD技術的基本原理
MTD(memory technology device內存技術設備)是用於訪問memory設備(ROM、flash)的Linux的子系統。MTD的主要目的是為了使新的memory設備的驅動更加簡單,為此它在硬體和上層之間提供了一個抽象的介面,並進行了一個層次劃分,層次從上到下大致為:設備文件、MTD設備層、MTD原始設備層、硬體驅動層。MTD的所有源代碼在/drivers/mtd子目錄下。
系統中的MTD設備文件
01 ~ $ ls /dev/mtd* -l
02 crw-rw---- 1 root root 90, 0 Jan 1 00:00 /dev/mtd0
03 crw-rw---- 1 root root 90, 1 Jan 1 00:00 /dev/mtd0ro
04 crw-rw---- 1 root root 90, 2 Jan 1 00:00 /dev/mtd1
05 crw-rw---- 1 root root 90, 3 Jan 1 00:00 /dev/mtd1ro
06 crw-rw---- 1 root root 90, 4 Jan 1 00:00 /dev/mtd2
07 crw-rw---- 1 root root 90, 5 Jan 1 00:00 /dev/mtd2ro
08 crw-rw---- 1 root root 90, 6 Jan 1 00:00 /dev/mtd3
09 crw-rw---- 1 root root 90, 7 Jan 1 00:00 /dev/mtd3ro
10 brw-rw---- 1 root root 31, 0 Jan 1 00:00 /dev/mtdblock0
11 brw-rw---- 1 root root 31, 1 Jan 1 00:00 /dev/mtdblock1
12 brw-rw---- 1 root root 31, 2 Jan 1 00:00 /dev/mtdblock2
13 brw-rw---- 1 root root 31, 3 Jan 1 00:00 /dev/mtdblock3
14
15 /dev/mtd:
16 crw-rw-rw- 1 root root 90, 0 Jan 1 00:00 0
17 cr--r--r-- 1 root root 90, 1 Jan 1 00:00 0ro
18 crw-rw-rw- 1 root root 90, 2 Jan 1 00:00 1
19 cr--r--r-- 1 root root 90, 3 Jan 1 00:00 1ro
20 crw-rw-rw- 1 root root 90, 4 Jan 1 00:00 2
21 cr--r--r-- 1 root root 90, 5 Jan 1 00:00 2ro
22 crw-rw-rw- 1 root root 90, 6 Jan 1 00:00 3
23 cr--r--r-- 1 root root 90, 7 Jan 1 00:00 3ro
24
25 /dev/mtdblock:
26 brw------- 1 root root 31, 0 Jan 1 00:00 0
27 brw------- 1 root root 31, 1 Jan 1 00:00 1
28 brw------- 1 root root 31, 2 Jan 1 00:00 2
29 brw------- 1 root root 31, 3 Jan 1 00:00 3
30 ~ $
可以看到有mtdN和對應的/dev/mtd/N、mtdblockN和對應的/dev/mtdblock/N兩類MTD設備,分別是字元設備,主設備號90和塊設備,主設備號31。其中/dev/mtd0和/dev/mtd/0是完全等價的,/dev/mtdblock0和/dev/mtdblock/0是完全等價的,而/dev/mtd0和/dev/mtdblock0則是同一個MTD分區的兩種不同應用描述,操作上是有區別的。
/dev/mtdN設備
/dev/mtdN 是MTD架構中實現的mtd分區所對應的字元設備(將mtd設備分成多個區,每個區就為一個字元設備),其裡面添加了一些ioctl,支持很多命令,如MEMGETINFO,MEMERASE等。
mtd-utils中的flash_eraseall等工具,就是以這些ioctl為基礎而實現的工具,實現一些關於Flash的操作。比如,mtd 工具中 flash_eraseall中:
1 if (ioctl(fd, MEMGETINFO, &meminfo) != 0)
2 {
3 fprintf(stderr, "%s: %s: unable to get MTD device info\n",exe_name, mtd_device);
4 return 1;
5 }
MEMGETINFO是Linux MTD中的drivers/mtd/mtdchar.c中的ioctl命令,使用mtd字元設備需要載入mtdchar內核模塊。該代碼解釋了上面的第一個現象。
/dev/mtdblockN設備
/dev/mtdblockN,是Flash驅動中用add_mtd_partitions()添加MTD設備分區,而生成的對應的塊設備。MTD塊設備驅動程序可以讓flash器件偽裝成塊設備,實際上它通過把整塊的erase block放到ram裡面進行訪問,然後再更新到flash,用戶可以在這個塊設備上創建通常的文件系統。
而對於MTD塊設備,MTD設備層是不提供ioctl的實現方法的,也就不會有對應的MEMGETINFO命令之類,因此不能使用nandwrite,flash_eraseall,flash_erase等工具去對/dev/mtdblockN去進行操作,否則就會出現上面的現象一,同時也解釋了現象3——用mtd2擦除分區後,在用mtdblock2進行umount就會造成混亂。
mtd塊設備的大小可以通過proc文件系統進行查看:
01 ~ $ cat /proc/partitions
02 major minor #blocks name
03
04 31 0 512 mtdblock0
05 31 1 1024 mtdblock1
06 31 2 5632 mtdblock2
07 31 3 9216 mtdblock3
08 254 0 30760960 mmcblk0
09 254 1 30756864 mmcblk0p1
10 ~ $
後面的兩個是SD塊設備的分區大小。每個block的大小是1KB。
MTD設備分區和總結

通過proc文件系統查看mtd設備的分區情況:
1 ~ $ cat /proc/mtd
2 dev: size erasesize name
3 mtd0: 00080000 00020000 "boot"
4 mtd1: 00100000 00020000 "kernel"
5 mtd2: 00580000 00020000 "roofs70"
6 mtd3: 00900000 00020000 "app"
7 ~ $
可以發現,實際上mtdN和mtdblockN描述的是同一個MTD分區,對應同一個硬體分區,兩者的大小是一樣的,只不過是MTD設備層提供給上層的視圖不一樣,給上層提供了字元和塊設備兩種操作視圖——為了上層使用的便利和需要,比如mount命令的需求,你只能掛載塊設備(有文件系統),而不能對字元設備進行掛載,否則會出現上面的現象2:無效參數。
這里對於mtd和mtdblock設備的使用場景進行簡單總結:
mtd-utils工具只能應用與/dev/mtdN的MTD字元設備
mount、umount命令只對/dev/mtdblockN的MTD塊設備有效
/dev/mtdN和/dev/mtdblockN是同一個MTD設備的同一個分區(N一樣)

⑦ linux下怎麼擦除/dec/mtdblock2

使用dd命令或者分區工具cfdisk
希望可以幫助你,請採納

⑧ linux內核怎麼查看mtd的block命令

mtd是字元設備,mtdblock是塊設備 可以看看dd命令的實現,在busybox里有 補充: /dev/mtd/* 或者 /dev/mtd* 這兩種表示方式一般表示的是字元設備/dev/mtdblock/* 或者 /dev/mtdblock* 這兩種是塊設備的表示方式mount 的一般都是塊設備貌似dd只對...

⑨ CMD命令求助

第四個命令是這樣的,先輸入:
FTP 192.168.1.1
若連 接成功,系統將提示用戶輸入用戶名及口令:
Connected to 192.168.1.1
220 SERVER Microsoft FTP Service (Version 6.0).
User (192.168.1.1:(none)): (這時輸入合法的用戶名,你這個為adam2,如果成功會看到提示輸入密碼)
331 Password required for adam2.
PASSWORD: (這時輸入合法的口令,你這個為adam2)
230 User adam2 logged in.
ftp> (如果你的帳號密碼正確,你就會看到這個了)

⑩ 在linux下用C怎麼將「cat /proc/mtd」這條命令早終端列印出來,並執行該命令的結果。

根據你的意思,可以這樣

#include<stdio.h>
#include<stdlib.h>
int main(){
system("./`cat /proc/mtd`");
return 0;
}

system() 函數就是調用shell。
`cat /proc/mtd` 就是取得這個命令的執行結果
./`cat /proc/mtd` 就是執行這個結果。

但是 在我的系統中執行cat /proc/mtd ,
cat: /proc/mtd: 沒有那個文件或目錄

所以沒有辦法測試,但是這個方法是對的。如果cat /proc/mtd的結果是很多個的話,最好加上cut命令 來作為取捨

閱讀全文

與mtd命令相關的資料

熱點內容
cmd殺死進程命令 瀏覽:233
ipad激活伺服器地址 瀏覽:449
單片機開始直流電機壓降問題 瀏覽:15
伺服器地址失敗怎麼辦 瀏覽:144
安卓手機怎麼下載蘇聯游戲 瀏覽:128
主教的命令 瀏覽:803
php判斷變數為空 瀏覽:743
你演我猜安卓版本怎麼用 瀏覽:907
已夠app哪裡看 瀏覽:1006
程序員怎麼學會開車的技巧 瀏覽:784
網易郵箱如何刪除伺服器郵件 瀏覽:152
java多個泛型 瀏覽:275
安卓折扣號怎麼充值 瀏覽:603
行政決定行政命令 瀏覽:895
linux下的軟連接 瀏覽:606
fib在python是什麼意思 瀏覽:534
c調用命令行 瀏覽:942
阿里雲伺服器中沒有apt 瀏覽:611
發送信息需要用戶加密嗎 瀏覽:638
六年級分數乘分數有幾種演算法 瀏覽:300