U盤開發之SCSI命令

2021-05-26 02:02:25 字數 557 閱讀 8470

借助硬體usb協議分析儀,可以清楚的看到u盤啟動時和上位機之間互動的usb協議流程,從get desciptor get congfiguration set configuration到scsi命令。

現在手邊沒有現成的包,改天截圖看看。

在不同的linux上,為什麼有的,u盤被設別為了/dev/sda,而有的是/dev/uba?

編譯核心時,將核心選項 config_usb_libusual=y 選上,裝置名就會是/dev/sda,否則就是/dev/uba

編寫韌體的過程中,對虛標容量的假u盤的工作原理有了深刻的了解。u盤插入上位機後,系統會發出read_capacity的scsi命令,韌體只需構造乙個合法的response,容量大小可以任意構造,上位機系統就簡單的認為u盤的容量為返回的值,當系統讀寫的位址超過實際nand flash的位址後,韌體程式可以簡單的返回,即使分割槽、格式化,有時也看不出什麼異常。對不太懂的人,極具欺騙性,無怪乎假u盤能大行其道,盛極一時。

對付假u盤,乙個可行的方法是,拷貝標稱容量大小的檔案,然後讀取出來,如果能正確讀出,就是**。反之,出現io error之類的錯誤時,就是贗品了。

Windows Dispart命令玩轉U盤分割槽

問題背景介紹 本人購買的一塊 8gb sandisk u盤忽然之間顯示只有3gb 容量,如圖所示 磁碟管理器 本來以為買到了擴容u盤,用 mydisktest 軟體測試了一下,的確是8gb容量,所以問題應該是容量設定問題了。方案1 重新格式化 首先想到的就是用ntfs格式重新格式化u盤。經測試,無效...

U盤系列 之U盤掛載資訊的獲取

程式內讀取 etc mtab或者 proc mounts,解析字串較為繁瑣,可以使用mntent提供的方便函式 file setmntent const char filename,const char type struct mntent getmntent file filep int endm...

U盤量產之更改U盤容量大小

由於某個專案,使我無意中接觸到了u盤量產方面的操作。剛開始聽到 u盤量產 的詞語,還以為是要生產u盤的意思。後來了解了之後發現,原來意思也是特別相近了。u盤量產 就是指u盤生產的最後乙個步驟,使用工具對u盤的主控晶元刷寫資料資訊,也就是刷寫如 生產廠商 主控晶元型號 u盤容量 u盤型別等等。在熟悉了...