יום ראשון, מאי 13, 2018

File Error Sunplus Technology Co., Ltd SPCA1527A/SPCA1528

היום שרפתי מספר שעות בשביל להבין למה חלק מכרטיסי ה SD שלי לא מתפקדים.

המצלמות טוענות שהן ביצעו כתיבה, אבל כאשר בודקים את הכרטיס בקורא הSD הקבצים לא מוצגים. בהתחלה חשבתי שמדובר בכרטיס אחד פגום אבל שמתי לב שזה קורה כל הזמן בכרטיסים שפורמטו ע"י לינוקס לעומת כרטיסים שפורמטו ע"י המצלמות עצמן.

מדובר על כרטיסי SDXC בגודל 64 ג"ב.

כאשר בדקתי התברר שכברירת מחדל כאשר פירמתי / בניתי מחיצה על ידי patitionmanager ו mkfs.vfat המחיצות דווחו כ FAT16 בגודל של 64 ג"ב או כ FAT32 אבל לא LBA

את זה ניתן לראות ב fdisk -l /dev/mmcblk0

דוגמה אחת שלא עבדה :
Disk /dev/mmcblk0: 60.4 GiB, 64826114048 bytes, 126613504 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa1bfe32e

Device         Boot Start       End   Sectors  Size Id Type
/dev/mmcblk0p1       2048 126607359 126605312 60.4G  b W95 FAT32

ודוגמה לכרטיס 32 שכן עבד :
Disk /dev/mmcblk0: 29.7 GiB, 31914983424 bytes, 62333952 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device         Boot Start      End  Sectors  Size Id Type
/dev/mmcblk0p1       8192 62333951 62325760 29.7G  c W95 FAT32 (LBA)


לעומת זאת כרטיסים שנוצרו ע"י המצלמות דווחו כ W95 FAT32 (LBA) ועבדו,  ובאמת לאחר ששיניתי את הפורמט של המחיצה ל C המצלמות היו מסוגלות לקרוא ולכתוב מידע.

כאשר הייתי מכניס כרטיסים ב פורמט B המצלמות הציגו שגיאה File Error בניסיון לקרוא, אבל לא היו מתלוננות כשהיה צריך לכתוב (כזכור את הכתיבה עצמה לא עשו על הכרטיס ).


את השינויי עושים כך:
fdisk   /dev/mmcblk0  

Welcome to fdisk (util-linux 2.32).                                                                                                                                                       
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): t

Welcome to fdisk (util-linux 2.32).                                                                                                                                                       
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): c
Changed type of partition 'W95 FAT32' to 'W95 FAT32 (LBA)'.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

לאחר ניסוי וטעיה נוסף הבנתי שאם המחיצה מכילה מעל 29 ג"ב של מידע זה גם גורם לאותה התקלה. כלומר מפסיק לבצע כתיבה -  המצלמות היו מחברות שונות (FujiDigital ו Mega ) אבל דווחו כאותו המכשיר ב lsusb.

והערה קטנה מהניסיון המר שלי עם FujiDigital אני ממליץ לא לרכוש את הדגמים שמכילים מטען קנייני (לא USB אלא מטען מיוחד). כאשר המטען נפגם נאלצתי ללכת לאלקטרונאי בשביל שיתקן לי את המטען כי הצלחתי למצוא מטען Fuji במלאי (הוא עולה רק $10 באיביי אבל אני הייתי צריך את זה תוך שלושה ימים).

אין תגובות:

הוסף רשומת תגובה