יום שבת, נובמבר 10, 2018

Workaround for ETPS/2 Elantech Touchpad

הTouchpad שלי החליט שהוא לא עובד בקרנל 4.18 .

פלט ה dmesg שלי מכיל את השגיאות הבאות  :

[   10.559725] iTCO_vendor_support: vendor-support=0
[   10.559763] elan_i2c 0-0015: 0-0015 supply vcc not found, using dummy regulator
[   10.578999] elan_i2c 0-0015: failed to get resolution: -71
[   10.579027] elan_i2c: probe of 0-0015 failed with error -71


ניסיתי לעלות עם הארגומנט למודל psmouse  :

cat /etc/modprobe.d/psmouse.conf 
options psmouse elantech_smbus=0 

ניסיתי גם לעלות עם i8042.reset quiet כארגומנט לgrub רק שזה גם לא עבד.

חפירה די ארוכה נתנה לי את התשובה המתאימה, להעביר את הפרוטוקול הנכון ל psmouse.

מה שpsmouse תומך זה :

enum psmouse_type {
 PSMOUSE_NONE,
 PSMOUSE_PS2,
 PSMOUSE_PS2PP,
 PSMOUSE_THINKPS,
 PSMOUSE_GENPS,
 PSMOUSE_IMPS,
 PSMOUSE_IMEX,
 PSMOUSE_SYNAPTICS,
 PSMOUSE_ALPS,
 PSMOUSE_LIFEBOOK,
 PSMOUSE_TRACKPOINT,
 PSMOUSE_TOUCHKIT_PS2,
 PSMOUSE_CORTRON,
 PSMOUSE_HGPK,
 PSMOUSE_ELANTECH,
 PSMOUSE_FSP,
 PSMOUSE_SYNAPTICS_RELATIVE,
 PSMOUSE_CYPRESS,
 PSMOUSE_FOCALTECH,
 PSMOUSE_VMMOUSE,
 PSMOUSE_BYD,
 PSMOUSE_SYNAPTICS_SMBUS,
 PSMOUSE_ELANTECH_SMBUS,
 PSMOUSE_AUTO  /* This one should always be last */
};
המימוש מכיל את האפשרויות (הטקסט מהדוייק שצריך לשלוח):

#ifdef CONFIG_MOUSE_PS2_ELANTECH
 {
  .type  = PSMOUSE_ELANTECH,
  .name  = "ETPS/2",
  .alias  = "elantech",
  .detect  = elantech_detect,
  .init  = elantech_init_ps2,
 },
#endif

ולפי זה שולחים את האפשרות שנבחרה לקובץ המתאים דרך ובא לציון גואל:


[Unit]
Description=Touchpad hack

[Service]
Type=oneshot
ExecStart=sh -c 'echo -n "elantech" > /sys/bus/serio/devices/serio1/protocol'

[Install]
WantedBy=multi-user.target

יום שני, יוני 11, 2018

מי צריך dualboot בכלל ?

לא ממש בטוח בשביל אנשי GNU ודביאן ...
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

זהו ? בטוחים ? אז הנה התמונה שתעלה  רגשות מעורבים :





מדובר על מכונת וירטואלית שעולה ממחיצה עליה הותקנה מערכת הפעלה אמיתית בלי להתרסק (לא עוד התקנה נוספת לתוך VM), פעם זה היה רק נחלת vmware בלבד,המון שנים יכולת טעינה ללא קריסה של וינדוס מהמחיצה שהותקנה עליה היתה רק נחלתה של ומוור והנה וירטואלבוקס עבדה כמו גדולה (אני לא אומר שלאף אחד אחר לא היתה מכונה שלא קרסה, רק שאצלי תמיד היו קריסות ופתאום זה עובד טוב מהמצופה).

המכונה המתארחת היא windows 10 תת גירסה 1803.


היופי הזה התקבל ע"י הסכמה להסכם השירות של virtualbox-ext-pack ושימוש ב vbox (שהוא לא בדיוק חופשי אבל נניח).

sudo apt install virtualbox virtualbox-dkms virtualbox-ext-pack

מה שהותקן אצלי הוא 5.2.10


בדיקת המחיצות שחלונות צריך לראות (כל מה שהיה לפניה) :

sudo fdisk -l /dev/sda
Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 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: 0xffffff

Device     Boot    Start       End   Sectors   Size Id Type
/dev/sda1             63     80324     80262  39.2M 
/dev/sda2  *       81920  25767935  25686016  12.3G  7 HPFS/NTFS/exFAT
/dev/sda3       25767936 500113407 474345472 226.2G  7 HPFS/NTFS/exFAT

יצירת דיסק שייגש לכונן ישירות :

sudo VBoxManage internalcommands createrawvmdk \
     -filename "/home/user/VirtualBox VMs/win10.vmdk"\
     -rawdisk /dev/sda -partitions 1,2,3      

וכמובן שינוי הרשאות בחזרה לכל מה שיש תחת 
/home/me/VirtualBox VMs/ 
לבעלות של המשתמש הנוכחי:

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

 לאחר מכן בVirtualBox צריך לייצר מכונת windows X64 אבל לבקש להשתמש בקובץ שייצרנו (win10.vmdk) להגיד תפילה ולקוות שלא נחטוף BSOD בפנים.

בדומה לבדיחה הרגילה, היו בעיות קול (קול מתכתי) אבל זה ככל הנראה בעיית הגדרה מקומית .

יום שישי, יוני 01, 2018

The NTFS partition is in an unsafe state. Please resume and shutdown Windows fully

בשבוע האחרון לאחר אחד מהעידכונים המדהימים של חלונות 10 גיליתי שיש סרט רע בעיגון של מחיצת ntfs:


mount -t ntfs-3g /dev/sda3 /tmp/test 
The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Failed to mount '/dev/sda3': Operation not permitted
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume


בעבר במצב כזה היה מספיק פשוט להשתמש באפשרות  remove_hiberfile בשביל שניתן יהיה לבצע עיגון במצב כתיבה.

לדאובני המצב השתנה וכאשר מנסים לבצע זאת מקבלים את אותו הפלט :

mount -o remove_hibernatefile -t ntfs-3g /dev/sda3 /tmp/test
Windows is hibernated, refused to mount.
The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Falling back to read-only mount because the NTFS partition is in an
unsafe state. Please resume and shutdown Windows fully (no hibernation
or fast restarting.)

מה שאפשר לעשות בשביל לפתור את זה זה ביצוע תיקון:

ntfsfix /dev/sda3
Mounting volume... Windows is hibernated, refused to mount.
FAILED
Attempting to correct errors... 
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
Windows is hibernated, refused to mount.
Remount failed: Operation not permitted
לאחר מכן עיגון נוסף
mount  -t ntfs-3g -o remove_hiberfile  /dev/sda3 /tmp/test

וזהוא ניתן לבצע כתיבה קריאה בלי שום בעייה.

יום ראשון, מאי 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 באיביי אבל אני הייתי צריך את זה תוך שלושה ימים).

יום שבת, אפריל 28, 2018

מחשב נייד

השבוע דיברתי עם מספר עמיתים ואותו הנושא חוזר שוב ושוב - אנחנו קונים מחשבים ניידים ומגלים שהם לא שורדים והופכים ללא שמישים מהר מאוד.

לקחנו מספר דוגמאות מהשנים האחרונות (מחשבים שיוצרו לאחר שנת 2015) וכמעט ואין מחשב נייד אחד שבנויי לשרידות ושימוש מעל לשלושה שנים.

לשם הבדיקה בחרנו בדקנו את טווח המחירים של מחשבים עד 3000 דולר והצלחנו למצוא רק שני דגמים שעושים פרצוף של משהוא שמיש.

מהוא מחשב נייד שישרוד בסביבה עיסקית בשבילי ?

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

הייתי מאוד רוצה לראות אפשרות החלפה עצמית , אבל בעסק אני כבר לא מדבר על right to repair שמדברת על זה שאני כמשתמש רשאי להחליף כונן קשיח מסוג כזה או אחר או להחליף סוג סוללה, אני מדבר על אפשרות החלפה בתשלום אצל מורשה-יצרן שיבצע זאת במקום (ולא לנסוע ליישוב שקר-כל-שהוא ולהשאיר שם את המחשב לשבועיים). שידרוג בחנות (בשונה משדרוג אצל הייצרן) מייצר תלות תיקון אצל המוכר (ואם משהוא נשבר בדרך בהצלחה להתמודד עם המוכר בחנות).

סוללות "חכמות" - אם שמתם לב רוב המחשבים הניידים שנמכרים היום מכילים מה שמכונה סוללה חכמה, סוללה חכמה מכילה מעגל מגן (מתח יתר/ התמחחמות / טעינת יתר וכו') אחד הדברים הטובים ביותר שהמציאו בסוללות האלו הן הוספת פיוזים ותוכנה סגורה (firmware) ששולטת על הטעינה.
המערכת המופלאה הזאת למשל תמנע ממשתמש פשוט להשתמש בסוללה תחליפית (כל היצרנים שבדקתי סיפקו אחריות לסוללה ל 300 מחזורי טעינה או שנה ).

בגלל שכמעט כל המחשבים הניידים שנמכרים היום מכילים סוללה מובנות (פרט אולי ל T480 ו  T470 )  המחשב ככל הנראה יהפוך למעמד לעוגיות ברגע שהסוללה תמות (אורך חיים לסוללה יכול להגיע לשלוש שנים תלוי בסוג הסוללה).

כמות התאים, סוללת המחשב מורכבת מ"תאים" (בדר"כ זה משהוא בסדר גודל של  סוללות 18650 ומעגל שמעלה מתח ), כל סוללה יש לה אורך חיים צורת החיבור שלהן (מקבילי או בתור) משפיע על ההסתברות של המערכת לקרוס (במקרה הזה חיבור מקבילי). הסוללות ברוב המחשבים (ליתיום-יון) חיות תקופה (זה לא יעזור אם המחשב לא השתמש בסוללה כמעט היא תמות לאחר כמות שנים מסויימת ). אם רוכשים מחשב עם מעט סוללות (מהניסיון שלי כל דבר פחות מארבעה תאים) אין ממש לצפות שהסוללה תשרוד תקלה בודדת. רוצים לדעת למה mac book pro נחשב כל כך טוב מבחינת הסוללה ?  יש שם סוללת תשע תאים (זו גם הסיבה שחלק מהמאקים מסוגלים לחיות אפילו 7 שנים לאחר רכישה כי הסוללות הן מסוג ישן וגם יש הרבה מאוד תאים).
מי שרוצה סוללה שתחזיק לו X שעות צריך לעשות חשבון פשוט של כמות הצריכה של המסך+כונן קשיח+כרטיס מסך+מעבד+כרטיס ויפי בשביל לקבל סדר גודל לגמה זה באמת יחזיק.  הכלל שמצאתי סוללה של פחות מ 65 וואט לא מחזיקה מעמד יותר משעה וחצי בעבודה אינטנסיבית.

כמות הזיכרון, אני רואה שיש שלושה רמות של מחשבים ניידים שנמכרים :

מחשבים בעלי זיכרון נדיף שהוא חלק מהמחשב (מגיע כ צ'יפ על לוח האם).
  • מחשבים בעלי זיכרון נדיף של 8 ג"ב (מקסימום)
  • בעלי 16 ג"ב מקסימום (חלק מספקים ציפ בודד של 4 ג"ב או 8 והשאר ברכיב ההרחבה).
  • יותר מ 16 ג"ב (אסוס רוג , Thinkpadים למינהם ומספר dellים).

לדעתי מחשב נייד שמגיע עם פחות מ8 ג"ב הופך מהר מאוד ללא שמיש בעבודה (יש לי 16 ג"ב וזה לא מספיק).

חריצי הרחבה,.

זה אמנם נשמע ישן אבל מחשב נייד עיסקי צריך יותר משני חיבורי USB (ומי שרוכש מחשב נייד עם התקן בודד רק מבקש להוריד מהשימושיות שלו).

אם כבר רוכשים מחשב נייד לשימוש של העסק צריך לוודא שיש יותר משני חיבורים ושהחיבורים הם לפחות אינצ' אחד מהשני (2.54 ס"מ) זה לא נראה ברור אבל כמעט כל הדונגלים שראיתי חרגו מגודל הכניסה וחיבור של דונגל אחד להתקן USB סגר את האפשרות להשתמבש בכניסה הנוספת.

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

הגנה מפני נזילות , אם עובדים ברכבת / בבית הקפה זה די חשוב למנוע מנזק כזה.

כרטיס הרשת (RJ45) ,  מי שרוכש מחשב שמגיע עם lan-insert ראה הוזהרת זה לא שורד הרבה חיבורים ( מדבר מניסיון :-( ) ובשונה ממחשב PC לא ממש ניתן להחליף את הרכיב.

מבנה מכני של המחשב הנייד, נכון אני מעריץ של מחשבים ניידים שרידים (Rugged) אבל כלל מצאתי שמחשבים ניידים מצופי אלומיניום שורדים נסיעות ברכבת ומפגשים, מחשבים הבנויים מפלסטיק ו ultrabooks, ראיתי איך מחשב אחד כזה פשוט התעוות מלחץ קטן בפינה. גם ללא מעבר ברכבת אני ממליץ לכל מי שחושב לרכוש מחשב נייד דק שיבדוק על הכפתורים במקומות שונים במקלדת ויראה אם זה מתאים לו לי אישית הפריע שאחד המחשב היה מתעקם כשוסגרים את המסך.

אחריות, זה אחד הדברים החשובים במחשבים ניידים לדעתי, אל תמסכו על מה שנאמר לכם בעל פה בחנות,

תתקשרו לספק השירות אם מספקים אחריות במקום העסק (אולי תגלו שלא מגיעים לשכונה שלכם כי זה מסוכן שם) או אם ניתן לקבל אחריות על ידי אחד העובדים ולא מי שרכש את המחשב נייד ואם צריך לעשות החלפת בעלות לעובד אם הוא צריך לקבל תמיכה במחשב (קרה לי בחברת dell ) ואם האחריות של Accidental damage תקפה באזור (קרה באסוס שלא היו מוכנים לתמוך כי המחשב לא נמצא פיזית בארה"ב או קנדה)

מודם סלולארי או eSIM, אחד הדברים הכי מגניבים שראיתי היה המודם המובנה (שחבוי במקום מסתורי שהסים לא יעוף), הדבר הזה נותן חיים אחרים למחשב נייד שגם מסוגל לקבל חיבור ספרתי.

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

לסיכום, מחשב נייד לעסק ? סוללה חיצונית , זיכרון לא מולחם וחיבור LAN והתקני exrpess card.

פיטרצ'רים מגניבים שהייתי רוצה לראות , אבל הם לא תמיד שם ?
רכיב SDR
קורא כרטיסים חכמים (smart card).
קורא MMCים.
רכיב NFC.