2017年11月4日 星期六

asus MK241H 修理

它的故障狀況就是, power 燈亮 -> 營幕背光點亮秀出 asus 字樣 -> power-off -> 再 power-on -> power 燈亮 -> ..... 循環下去. 看起來就像 DC 電源因為短路自我保護關掉的樣子.

今天是它壞第二次, 壞第一次是一年前, 症狀完全一樣. 一年前是換 inverter 用 DC 電壓的電容, 那時只是換這些電容就可以讓它正常動作, 我也以為就這樣算了...

因為已經換過一輪, 我已經忘了原始電容值用的是多少了... 就拿買的到的給它換更大的. 在這裡我有量到最高約 32.6v 的電壓, 但這裡的電壓耐壓用的是 35v, 所以建議要換就換到耐壓 50v 或 63v 的電容. inverter DC 這邊我後來是換 4 顆 470uF 63v, 2 顆 1000uF 50v (63v 的太高).

這個電源板我目前只知道它會輸出三組電壓, 5.12v, 12.05v, 32v (這應該是定電流源所以電壓會飄), 左邊最細小的就是 5v 用的, 用耐壓 10v 就夠. 那兩顆往下是 12v 用的, 建議用 25v, 心臟大顆一點用 16v 耐壓也可以.

第二次壞掉時我也一度懷疑是不是這些電容死掉 (我沒有高容量電容的電容計, 被換下來的電容是不是無辜我無法卻定, 我覺得被換掉那批 35v 耐壓電容應該也是好的..) 所以換成上面寫的規格. 當然啦, 無效.

然後我把燈管全拔掉看看, 一樣. 看來不是 inverter 供電不足的問題.

再把那條排線上疑似 backlight adjust (DC) 跟 backlight enable 兩條線跳開, 營幕等同 inverter 被關掉的狀態, 結果一樣.

於是這時很合理懷疑是不是 AD 板有問題. 也把 AD 板上有疑慮的電容換了幾顆, 因為我實在找不出哪顆零件可能有問題, LDO 是好的, 2.0v switching 也是好的. 所以換了換當然也是無效.

後來看到有篇修電視的文章講到它連高壓 DC 電容都換我就想來試試看. 沒有考慮到換這顆是因為一般 switch power 這邊的電容不常換, 連專門修營幕的店家筆記文章裡都可以看的出, 人家有許多維修經驗的都不會想去換這顆電容, 可見故障率看來比想像中低. 所以沒懷疑到它. 二來是, 替代料件只有很短腳的, 要特別引腳焊到板子上有點麻煩.....

相片中右邊是原始的零件, 右邊是我換過的, 這顆電容是我在光華能找到尺吋最合的, 雖然耐壓少 50v.... (這邊我算了一下最高最高的 DC 電壓是 240v * 1.414 = 339.36 約 340v, 也就是說最低最低最低限度都要 350v 耐壓, 而以安全的設計來說要抓兩倍就是 700v... 當然啦, 市場上那麼高耐壓的只剩陶瓷或塑膠電容, 電解沒有), 電解能買到最高就 450v, 400v 佔大多數, 400v 又許多是直接插板不引線的, 不管高還是寬都太超過, 最後找到這是勉強可用的...

換到這顆目前看起來正常了.....
真的一如狼大那篇文所說, "結論:不要太過相信外觀正常的電容"
這樣.

再附上一張外殼竅開的卡筍參考圖

2017年9月19日 星期二

force remove

dpkg --purge --force-all package

if package had newer version, idiot 'apt-get remove' will install newer version package then remove old version (like kernel), equal not do remove. so we need using dpkg with --force-all command remove it enforce

2017年9月13日 星期三

X compact 的相機爛到一個不可思議...

我的應用非常簡單, 拍一個啟動電容而已, LED 為手電筒模式, 常開... 有連續光源打光的情況下都可以把快門設到 1/32s, ISO 降低到 250 造成拍攝晃動, 我真的無法再忍受這麼爛的設計決定貼上來...


 我原本以為啟動電容不會壞, 我錯了. 我一直都知道 X compact 的相機很爛, 沒想到是這麼的爛到不可思議的爛

2017年9月5日 星期二

推薦套件 zram

zram 是一個 swapfs 的工具, 它可以把 swap 重導向過來, 經過壓縮後, 仍舊擺在記憶體裡.
https://en.wikipedia.org/wiki/Zram

因為一般狀況來說 OS 會保留一些緩衝空間, 並不會真的等到記憶體不夠用時再來 swap, 有些被 suspend 的 task 也會被丟去 swap 不佔用到主記憶體, 這時 zram 就很有用了.

zram 工具在 ubuntu 上叫 zram-config
安裝好重開機後你會看到 /dev/zram?, ?是編號, 會看你有幾顆 CPU 就到 CPU數 -1 個, 然後用 swapon 看就可以看到多了那麼多個.



2017年8月30日 星期三

ZFS boot

這裡也是筆記, 主角是 ubuntu 14.04 跟 16.04, 著重在虛擬機器內系統移轉, 不在安裝. (安裝我不會)

  • 最少要有一臺 ubuntu 14.04 或 16.04, 指除了被移轉的機器之外還要再一臺.
  • ubuntu 14.04 initrd ZFS script 有些問題, poolname 僅接受 rpool 而已, 特別注意.
  • 在想要被移轉的 ubuntu 上, 先行安裝好幾個套件: zfsutils-linux, zfs-initramfs 與其它相依套件.
  • 以下增加到 /etc/initramfs-tools/modules 中:
    • spl
    • zfs
  • update-initramfs -c -k all
  • 到此時才可以將這個虛擬機器停下, 將虛擬硬碟檔案跟備份虛擬硬碟檔案分別掛到另一個可以正常運作的 ubuntu 底下
  • 在這裡我硬碟僅只使用 MBR 切割, zfs 也僅只有一個區, 外面說明會比較詳細講出如果 zfs 底下的分割區要被掛成 root 時要怎麼做, 但並沒有看到不分割時該怎麼做...
    • 僅只建立一個 MBR partition /dev/sdc1,  fdisk /dev/sdc
    • 建立 ZFS 儲存池, 假設 poolname 叫 BOOTpool:
      • zpool create BOOTpool /dev/sdc1 -O compression=lz4 -O atime=off -O mountpoint=/tmp/BOOTpool
      • zpool set bootfs=BOOTpool BOOTpool
    • copy 要移轉的虛擬硬碟內檔案到 /tmp/BOOTpool/ 下, 也就是整顆硬碟檔案 copy.
    • copy 作業可以丟背景跑, 前景還可以再做件很重要的事:
      • grub-install --boot-directory=/tmp/BOOTpool/boot/ --modules="part_msdos ext2 zfs"
    • 到此時 grub 在stage2 時才擁有讀取 zfs 的能力, 才有機會再讀到 /boot/grub/grub.cfg 執行選單工作, 而此時已經是 stage 3. 否則 grub 會跟你說它不認得 (unknow file system)
    • 檔案 copy 好後記得做些修改的動作, /etc/fstab 因為 zfs 本身就有 mountpoint 的設定所以不需要修改, 改了看來也沒用... boot/grub/grub.cfg 有幾個關鍵設定麻煩注意一下:
      • linux   /boot/vmlinuz => linux   /@/boot/vmlinuz
      • initrd  /boot/initrd.img => initrd  /@/boot/initrd.img
    • 否則 grub 找不到 vmlinuz 跟 initrd 無法開機.
    • 如果是比較複雜的 ZFS 內部分割請參考其它文章像這個
    • /boot/vmlinuz 後面這些 kernel parameter 切記加上 boot=zfs. 因為 zfs 不像其它的 filesystem 可以直接使用, 需要它專有工具 import 所有能用的 zpool 進來後才能掛起來, (所以如果是自製的 initrd RAMdisk image 的話要確認有沒有 zfs 工具存在, 還有掛載的 script, 否則也是沒用), 而每一家 linux distro 在 initrd 裡觸發 zfs 工具的方式都有點不同, ubuntu 是使用 boot=zfs, gentoo 使用 dozfs.
    • ubuntu 的 rootfs 下法是 root=ZFS=BOOTpool, 之所以特別說這是 ubuntu 的下法是因為這個 parameter 其實是 parser 給 initrd 內的 ZFS script 看的而不是給 kernel, 所以每一家 distro 掛法會不一樣是正常情況. 我最後 grub 內的 kernel parameter 那行是這樣:
      • linux /@/boot/vmlinuz-4.11.0-13-generic root=ZFS=BOOTpool ro boot=zfs console=tty0
    • grub 改好後才是來最後處理 ZFS...
      • 再一次確認不會自動掛起來: zfs set atime=off BOOTpool
      • umount. zfs umount BOOTpool
      • 修改掛載點 zfs set mountpoint=/ BOOTpool
      • 離線 zpool export BOOTpool
  • 虛擬機器改回去用這個 ZFS 虛擬硬碟. 
    • 如果開完機開的進去沒問題, 別忘了 /etc/default/grub 多加一些東西:
      • GRUB_CMDLINE_LINUX="boot=zfs"
      • update-grub
      • 請注意 update-grub 對目前的 ubuntu 14.04 無效, 但 ubuntu 14.04 可以硬裝 16.04 用的 grub-common 套件解決這個問題.
差不多就是這樣. 
  • ubuntu 14.04 會有機會認不得 root=ZFS=BOOTpool 中的 BOOTpool, 如果不認得, 就改成它內定的 "rpool" ...
  • ubuntu 14.04 中的 grub-probe 跟 update-grub 在 rootfs 最後掛成 ZFS 後無法認到 ZFS. 但 ubuntu 14.04 可以硬裝 16.04 用的 grub-common 套件解決這個問題.
  • mountoiint 設定成 legacy 我沒有實驗成功讓它掛起來, 這種設定在一開始 zpool import 時似乎就無法找到.
  • ZFS 本身不支援 /dev/disk/by-label 與 /dev/disk/by-uuid 僅只有 /dev/disk/by-path, 所以很多筆記會以 by-path 為主. 可是我不愛用.

ZFS 在當別的儲存載體時不錯, 但當 linux rootfs 時是不是比較好, 我自己是不這麼認為...



2017年8月28日 星期一

WEC7 wave 3

Windows Embedded Compact 7 wave 3 update (2017/06)
en_windows_embedded_compact_7_december_2014_x86_x64_dvd_6315546.iso
自己找....

不要再來找我要啥 CE 的 service, 我只會回給你十個字, 去死吧去死吧去死吧幹

2017年8月12日 星期六

btrfs 一些筆記

純筆記, 有很多土炮之處在所難免.


  • 建立 btrfs:
    • 基本上 btrfs 你把它看做是 ext4fs 的衍生型就好
    • mkfs.btrfs /dev/sdv -L "btrfsroot" -U "0000" UUID 要 ubuntu 16.04 的工具才有
    • 轉換自 ext4fs btrfs-convert /dev/sdv
    • mkfs.btrfs 我目前不知道怎麼增加可用檔案數 (ext4 叫 inode), 只能靠轉換.
  • 壓縮:
    • mount /dev/sdv /mnt compress=zlib 或 mount /dev/sdv /mnt compress=lzo
    • btrfs 似乎是看檔案壓縮.
    • 全部重壓成 lzo : btrfs filesystem defragment -r -v -clzo /
  • kernel 掛載:
    • 用 UUID 就可以. btrfs 本身就有支援 label / uuid 不像 zfs.
    • initrd.img 要改 /etc/initramfs-tools/modules 加上 btrfs
    • 記得 update-initramfs
  • grub 支援:
    • grub-install --modules="part_msdos part_gpt btrfs" 
    • 其它要加什麼比照辦理.
    • 記得 update-grub
我只用它的壓縮, 其它沒研究. 就這樣.

update 2017/08/14

  • 如果是用於 VMware vmdk 檔案存放, 那強烈不建議使用 btrfs. 簡單的說, vmdk 它只是一個磁碟映像檔, 當你這個虛擬硬碟檔案用滿再清空 (wipe 還 zerofree 啥的都可以), btrfs 不會釋放空間, zfs 可以, 而且 btrfs 再重 defragment 後一樣無效, 這點要特別注意.
  • 虛擬機器裡掛 btrfs 不管用 zlib 還 lzo 壓縮, 外面的 vmdk 檔掛在 zfs 用 lz4 壓縮的話, 還可以有效的再壓一道. 工作用的 ubuntu 14.04.5 amd64 原本 4GiB 的使用空間最後被壓到剩 1.7GiB...
其它想到我再寫.