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日 星期二

apt 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
    •  (update) 如果是指定 sub-zpool 假設叫 BOOTpool/sys, 那麼要設成:
      • linux   /boot/vmlinuz => linux   /sys/@/boot/vmlinuz
      • initrd  /boot/initrd.img => initrd  /sys/@/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
      • (update) 如果 zpool 假設是 BOOTpool/sys, 上一行 root=ZFS=BOOTpool 改 root=ZFS=BOOTpool/sys
    • grub 改好後才是來最後處理 ZFS...
      • 再一次確認不會自動掛起來: zfs set atime=off BOOTpool
      • umount. zfs umount BOOTpool
      • 修改指定 zpool 掛載點 zfs set mountpoint=/ BOOTpool
      • (update) 或 sub-zpool  掛載點 zfs set mountpoint=/ BOOTpool/sys
      • 離線 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 套件解決這個問題.
      • (update) 如果 rootfs 是在某一個 zpool 非 sub-zpool 裡的話, update-grub 中 grub-mkconfig 會很雞婆的在 zpool name 後面加個 "/" 導致開不了機, 而使用 sub zpool 的話不會有這個問題. 因此建議如上述文章所提, rootfs 最好放在某一個 sub zpool 裡如 BOOTpool/sys 不要直接是整個 zpool 如 BOOTpool.
差不多就是這樣. 
  • 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 時是不是比較好, 我自己是不這麼認為...

update 20180615: 新增 rootfs 擺在 sub zpool 裡時 grub.cfg 的路徑修改. 但請注意, ubuntu 的 grub 似乎不認 main zpool 名字, 只認 sub zpool 而已 (ArchLinux 的會認, 所以 ArchLinux wiki 的教學拿來 ubuntu 上用要自己懂的修改), 所以以前使用 BOOTpool 時是 /@/ 現在使用 BOOTpool/sys 時是 /sys@/, 我沒有試過同一顆硬碟裡有一個以上 zfs 分割區時會有什麼問題, 可能只認 partition number 來分吧? 我不知道.

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...
其它想到我再寫.

2017年8月7日 星期一

ZFS 一些筆記

有很大多指令 zpool 跟 zfs 很像, 這裡只記幾個我常用的...

建立:
zpool create poolname /dev/sdv2 -m /opt/mount2
-m 指掛載點,而有幾個選擇, none 表不指定掛載點, legacy 表需被動指定掛載點. 如果想要跟過去 ext4fs 掛載方法那樣的話要選 legacy.

設定壓縮為 lz4 (基本上要求速度就是 lz4)
zfs set compression=lz4 poolname

查看壓縮比
zfs get compressratio poolname

導入 (在這之前要先行掛載所有 zfs kernel module)
zpool import poolname
如果找不到:
zpool import -d /dev
如果 /dev 底下的全抓進來:
zpool import -d /dev -a

列出目前有哪些 zfs pool 可用:
zfs list
zpool list

排除某一個 pool
zpool export poolname
#但請注意 export 後 zfs 依舊鎖定這整個 block device.

刪除特定 pool (要先 import )
zpool destroy poolname
#雖然刪除但 block device 依舊被鎖定.

如果要在一個 block device 上讓 zfs 與其它 file system 如 ext4 共存的話, 就必需特別注意 zfs 鎖定 block device 的特性這點, 基本上只要建立過 zfs pool, 所有在其它同一個 block device 上的 partition file system 建立或刪除的動作都會被擋掉, 所以如果要共存, 必需把其它分割區先行建立好, 再建 zfs...

以 /dev/sdv 為例:
fdisk /dev/sdv 先產生 /dev/sdv1, /dev/sdv2 兩個分割區, 先 mke2fs /dev/sdv1 再 zpool create poolname /dev/sdv2

至於 zfs 掛到根目錄, 再說吧...
update 17/08/30 ZFS boot 參考這篇.. http://yoko-hama.blogspot.tw/2017/08/zfs-boot.html

2017年8月5日 星期六

ace combat 04 pcsx2 pnach

啊就 cheat code 啦講那麼多... 有些是我自己找出來的.
// 5ED8FB53.pnach
//all fighters, swapons
patch=1,EE,002A0220,word,FFFFFFFF
patch=1,EE,002A0224,word,000003FF
patch=1,EE,002A0228,word,FFFFFFFF
patch=1,EE,002A022C,word,000003FF
patch=1,EE,002A0230,word,FFFFFFFF
patch=1,EE,002A0234,word,000003FF
patch=1,EE,002A0240,word,FFFFFFFF
patch=1,EE,002A0244,word,000003FF
//already forgot...
patch=1,EE,002A0248,word,3CF0F300
patch=1,EE,002A024C,word,0000030C
//all fighters fun round 9999
patch=1,EE,002A1BD8,word,00FF270F
patch=1,EE,002A1BE8,word,00FF270F
patch=1,EE,002A1BF8,word,00FF270F
patch=1,EE,002A1C08,word,00FF270F
patch=1,EE,002A1C18,word,00FF270F
patch=1,EE,002A1C28,word,00FF270F
patch=1,EE,002A1C38,word,00FF270F
patch=1,EE,002A1C48,word,00FF270F
patch=1,EE,002A1C58,word,00FF270F
patch=1,EE,002A1C68,word,00FF270F
patch=1,EE,002A1C78,word,00FF270F
patch=1,EE,002A1C88,word,00FF270F
patch=1,EE,002A1C98,word,00FF270F
patch=1,EE,002A1CA8,word,00FF270F
patch=1,EE,002A1CB8,word,00FF270F
patch=1,EE,002A1CC8,word,00FF270F
patch=1,EE,002A1CD8,word,00FF270F
patch=1,EE,002A1CE8,word,00FF270F
patch=1,EE,002A1CF8,word,00FF270F
patch=1,EE,002A1D08,word,00FF270F
patch=1,EE,002A1D18,word,00FF270F
patch=1,EE,002A1D28,word,00FF270F
//adjust almost fighters sp.weapon round to 255
patch=1,EE,002A1BEE,byte,000000FF
patch=1,EE,002A1BFE,byte,000000FF
patch=1,EE,002A1C0E,byte,000000FF
patch=1,EE,002A1C1E,byte,000000FF
patch=1,EE,002A1C2E,byte,000000FF
patch=1,EE,002A1C3E,byte,000000FF
patch=1,EE,002A1C4E,byte,000000FF
patch=1,EE,002A1C5E,byte,000000FF
patch=1,EE,002A1C6E,byte,000000FF
patch=1,EE,002A1C7E,byte,000000FF
patch=1,EE,002A1C8E,byte,000000FF
patch=1,EE,002A1C9E,byte,000000FF
patch=1,EE,002A1CAE,byte,000000FF
patch=1,EE,002A1CBE,byte,000000FF
patch=1,EE,002A1CCE,byte,000000FF
patch=1,EE,002A1CDE,byte,000000FF
patch=1,EE,002A1CEE,byte,000000FF
patch=1,EE,002A1CFE,byte,000000FF
patch=1,EE,002A1D0E,byte,000000FF
patch=1,EE,002A1D1E,byte,000000FF
patch=1,EE,002A1BF2,byte,000000FF
patch=1,EE,002A1C02,byte,000000FF
patch=1,EE,002A1C12,byte,000000FF
patch=1,EE,002A1C22,byte,000000FF
patch=1,EE,002A1C32,byte,000000FF
patch=1,EE,002A1C42,byte,000000FF
patch=1,EE,002A1C52,byte,000000FF
patch=1,EE,002A1C62,byte,000000FF
patch=1,EE,002A1C72,byte,000000FF
patch=1,EE,002A1C82,byte,000000FF
patch=1,EE,002A1C92,byte,000000FF
patch=1,EE,002A1CA2,byte,000000FF
patch=1,EE,002A1CB2,byte,000000FF
patch=1,EE,002A1CC2,byte,000000FF
patch=1,EE,002A1CD2,byte,000000FF
patch=1,EE,002A1CE2,byte,000000FF
patch=1,EE,002A1CF2,byte,000000FF
patch=1,EE,002A1D02,byte,000000FF
patch=1,EE,002A1D12,byte,000000FF
patch=1,EE,002A1D22,byte,000000FF
patch=1,EE,002A1C36,byte,000000FF
patch=1,EE,002A1C56,byte,000000FF
patch=1,EE,002A1C66,byte,000000FF
patch=1,EE,002A1C96,byte,000000FF
patch=1,EE,002A1CA6,byte,000000FF
patch=1,EE,002A1CC6,byte,000000FF
patch=1,EE,002A1CD6,byte,000000FF
patch=1,EE,002A1D06,byte,000000FF
//adjust almost fighter's sp.weapon carry quantity
patch=1,EE,002A1C2D,byte,00000006
patch=1,EE,002A1C5D,byte,00000006
patch=1,EE,002A1C6D,byte,00000006
patch=1,EE,002A1C8D,byte,00000006
patch=1,EE,002A1C9D,byte,00000006
patch=1,EE,002A1CAD,byte,00000006
patch=1,EE,002A1CBD,byte,00000006
patch=1,EE,002A1CCD,byte,00000006
patch=1,EE,002A1CDD,byte,00000006
patch=1,EE,002A1CED,byte,00000006
patch=1,EE,002A1CFD,byte,00000006
patch=1,EE,002A1D0D,byte,00000006
patch=1,EE,002A1D1D,byte,00000006
patch=1,EE,002A1D2D,byte,00000006
patch=1,EE,002A1D2D,byte,00000006
patch=1,EE,002A1D2D,byte,00000006
patch=1,EE,002A1D2D,byte,00000006
patch=1,EE,002A1D2D,byte,00000006
patch=1,EE,002A1BF1,byte,00000006
patch=1,EE,002A1C21,byte,00000006
patch=1,EE,002A1C31,byte,00000006
patch=1,EE,002A1C41,byte,00000006
patch=1,EE,002A1C51,byte,00000006
patch=1,EE,002A1C61,byte,00000006
patch=1,EE,002A1C71,byte,00000006
patch=1,EE,002A1C91,byte,00000006
patch=1,EE,002A1CA1,byte,00000006
patch=1,EE,002A1CB1,byte,00000006
patch=1,EE,002A1CC1,byte,00000006
patch=1,EE,002A1CD1,byte,00000006
patch=1,EE,002A1CE1,byte,00000006
patch=1,EE,002A1CF1,byte,00000006
patch=1,EE,002A1D01,byte,00000006
patch=1,EE,002A1D11,byte,00000006
patch=1,EE,002A1D21,byte,00000006
patch=1,EE,002A1C35,byte,00000006
patch=1,EE,002A1C55,byte,00000006
patch=1,EE,002A1C65,byte,00000006
patch=1,EE,002A1C95,byte,00000006
patch=1,EE,002A1CA5,byte,00000006
patch=1,EE,002A1CC5,byte,00000006
patch=1,EE,002A1D05,byte,00000006
// 00-UGBS 01-UGBM 02-UGBL 03-PGB 04-CLB 05-FAEB 06-BDSP
// 07-NPB 08-RCL 09-SOD 0A-XAGM 0B-LASM 0C-XMAA 0D-XLAA 0E-QAAM
//x02 sp.weapn adjust XAGM/FAEB/QAAM
patch=1,EE,002A1D2C,byte,0000000A
patch=1,EE,002A1D30,byte,00000005
patch=1,EE,002A1D34,byte,0000000E
//f-5e
patch=1,EE,002A1BEC,byte,0000000B
patch=1,EE,002A1BFC,byte,00000003
//f-4e
patch=1,EE,002A1BF0,byte,0000000A
patch=1,EE,002A1C00,byte,0000000E
//f-16
patch=1,EE,002A1C0C,byte,0000000C
patch=1,EE,002A1C10,byte,0000000A
//f-22
// patch=1,EE,002A1CEC,byte,0000000E
patch=1,EE,002A1CF0,byte,00000005
//s-37a
// patch=1,EE,002A1D0C,byte,0000000E
patch=1,EE,002A1D10,byte,00000005
//adjust f-15e sp.weapon to FAEB & QAAM
patch=1,EE,002A1C8C,byte,00000005
patch=1,EE,002A1C94,byte,0000000e
//adjust su-35 sp.weapon to FAEB
patch=1,EE,002A1CE0,byte,00000005

2017年7月8日 星期六

linux serial port console

serial port 是很古老的硬體, 但現在一堆機器 console 開始走回 serial port console 的老路, 不管是從以前到現在都有的 network manager machine 還 UEFI BIOS, 也就是說, 要跟的上時代, 就是找回過去 serial port console 的使用方法, 雖然聽起來有點古怪.

修改 grub2 部份, /etc/default/grub
grub2:
#grub terminal. --unit=0 意思就是 COM1, 往後類推.
GRUB_TERMINAL="serial vga_text gfxterm"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=1 --word=8 --parity=no --stop=1"

#kernel parameter
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS1,115200n8 splash"

grub2 部份使用 update-grub 去 update grub, 順路檢查語法正不正確. 在 update kernel 時也會順路補上這些參數, 不需要去 /boot/grub/grub.conf 裡再改一次.

ubuntu linux 16.04: (或任何使用 systemd 的 distro. 這裡假設為 ttyS0)
# systemctl enable serial-getty@ttyS0.service
特別注意這行, 因為每臺機器都會有點不同, 要用它設定的路徑才會有效.
Created symlink from /etc/systemd/system/getty.target.wants/getty@ttyS0.service
# mkdir -p /etc/systemd/system/getty.target.wants/getty@ttyS0.service.d/
# pico /etc/systemd/system/getty.target.wants/getty@ttyS0.service.d/override.conf
---
[Service]
ExecStart=
ExecStart=-/sbin/agetty --noissue --autologin myusername %I $TERM
Type=idle
---
myusername 就是你的預設使用者名稱, 也可以是 root.
目前已知在 i386, AMD64 distro 版本上要另外打開, 但 arm64 / armhf 似乎會看 /proc/cmdline 裡有沒有特別指定 console serial port 另外叫 systemd 打開 serial-port getty serrvice, 並不需要特別 enable 它. 也就所以要特別在 systemctl 裡特別去看它叫啥名字, 否則自動登入功能無法連動.

使用 sysinitV 的部份下次再補上.

2017年7月7日 星期五

[不定時 update] AMD ryzen 一些筆記

一開始就是拿來跑 ubuntu + VM workstation 所以以下筆記全以 linux 為主. 目前僅知的幾點:

  • ASM1083 PCI bridge 有些先天的問題在 IOMMU v2 上只能用 kernel parameter "iommu=soft" 迴避. ASM1083 的問題也同樣出現在 Z87 VT-d 上過, IDT PES12N3A 就一點問題都沒有. 現在 IOMMU 開, PCI 全都不插東西. (見 update)
  • AGESA 1004 以後對記憶體相容性有大幅度改善, 但後來交差驗證跟我碰到的問題無關.
  • kernel NMI 錯誤 ("NMI watchdog: BUG: soft lockup" 這個) 無法用設定 hung_task_timeout_secs (echo 0 > /proc/sys/kernel/hung_task_timeout_secs) 解, 兩者無關. 後來是換掉 power 後解決.
  • SATA 界面會跟 WD 藍標某特定款 power manager 衝突的問題, 後來不知道為什麼解決, 我懷疑也是那顆 Power 的關係... 換了一顆新巨 400w 就好了.
  • SVM 功能在 AGESA 1004a VMworkstation 12.5.5 會碰上  WinXP 不能開機的問題 (1004 可以), AGESA 1006 可以.
  • BIOS 中 C-state report 把它直接關掉. 我嚴重懷疑這個問題是 linux kernel 的 power manager 沒寫好出的包, 因為有不少 CPU (Summit-Ridge, Baytrail-I/T, Apollo-lake) 上都有一模一樣的問題. C-state 關掉後 cpufreq-info 裡仍舊可以看的到頻率仍舊可升降 (Baytrail 不行), 功耗實測上竟然也沒什麼變化..
  • 散熱器可以用舊有 socket754/939 兩爪扣具. 1700X 的熱度我用過去給 Athlon64 3000+ 的風扇是綽綽有餘... (這次用的板子是 asus prime B350 plus)
  • USB 3.1 因為沒設備我不確定 VM workstation 有沒有辦法 bridge 過去, 看 workstation 的文件是 guest 只有支援到 3.0....
目前環境 ubuntu 16.04.2LTS, kernel 4.10.0-26 (linux-image-extra-virtual-hwe-16.04-edge), VMware Workstation 12.5.6.

update 170726: 結果進氣道 12cm 風扇讓它接 12v 全速跑後, 一切正常了, yocto compile 也可以一次到底了(但不是每一次)... 果然太小看散熱問題了

update 170807: sensor 要使用 it87 這個 driver:
https://github.com/groeck/it87
git clone https://github.com/groeck/it87.git;make;make install
搭配 lm_sensor 套件就可以看到了這樣.

update 171127: 24號下班前看到華碩有放了一版 171120 的 BIOS (AGESA 1071 的 update) 就拿來試, 目前看來編 yocto 時 gcc 會 segment fail 的問題解掉了 (yocto 2.2.1, x86-64 用的 gcc 為 6.2.0). 不錯啊, 拖了七個月這個問題終於解決了...
ps. 在這之前開關 kernel ASLR (Address space layout randomization) 沒有差別, 有沒有關掉 rcu 對我也沒有差別, 都會死.

update 180503: 華碩後來放出的 BIOS (4008, 4011) 在 AMD CBS 裡多了一個 OPcache 的選項, 把這個選項關掉後, 之前 gcc 不定時掛點的問題解決的比之前要徹底, 最少這次我編 yocto 2.2.1 全程都沒有再遇上問題. 我把之前的問題重新提出來回一遍:
  • IOMMUv2. kernel 4.15.0 用的 IOMMUv2 driver 看起來不會再像過去那樣跳一堆錯誤後 PCI 死掉. 不過這次我直接在 kernel 裡關掉 (iommu=soft), 沒有多試, 我只能確定編的編不過跟 IOMMU 沒關係, 也跟 SR-IOV 沒有關係. (見 update)
  • DDR4 相容性. 這次用預設的 DDR4-2400 在跑不需要降, 降了其實也沒什麼用.
  • KERNEL NMI錯誤, 這個跟 c-state 有關係, BIOS 中可以將 c-state report 關掉, 沒辦法關 c-state 的板子需要把 CPU governor 全調成 performance 來迴避問題 (跟 Baytrail 的問題很像, 其實我懷疑是 linux kernel 自己的問題). 神奇的是就算調到全速, CPU 自己的省電功能依舊有效. 據說, 關掉這個可以讓 PCIe 跑快一點..
  • SATA.. 這個確定是 WD 的問題. WD 從有 IDE 以來就這個樣子不意外
  • SVM: 後來預設變關掉, 我是打開
  • c-state 同 kernel NMI message.
  • 散熱器不需要太好的...
  • VMware workstation 14 也沒有支援 USB 3.0 gen.2.
  • kernel ASLR 在 host / guest OS 我都關掉, 好像有快那麼一點點.
  • BIOS 中 performance bias 為 auto 或 none. 其它的會亂超頻.
這顆 CPU 是我用過第二難搞的 CPU, 第一難搞的是 intel Pentium2 SL2W8

update 2019/03/06 AMD-Vi iommu 跟 ASM1083 的問題可以在 kernel 追加以下參數解決:
"amd_iommu=on iommu=pt kvm_amd.npt=1"
可以在 /etc/defaut/grub, "GRUB_CMDLINE_LINUX" 追加, 再執行 update-grub.

ubuntu hwe kernel 4.15.0 & 4.18.0 下都工作正常. 話說這個參數其實是另一篇寫給 QEMU pass-through PCIe memory 用的參數, 如果沒用到虛擬機 & kernel KVM 功能的話, 不如直接一點把 BIOS 中 IOMMU / SR-IOV 等全關掉省的麻煩...

update 191017: 有關 yocto build 會掛掉已經間接證實是 yocto builder 自己的問題, 簡單的說, yocto 在編譯時最大會開到 CPU h/w threads 數平方個 task, 8core 共 64 tasks, 16core 時會爆增到 256 tasks, RAM 加到 32G 看來無解. 解法是在
[build directory]/conf/local.conf 裡增加
BB_NUMBER_PARSE_THREADS = "4"
的敘述, 限制每一個套件在編譯時使用的最大 threads, 16core 下建議設定 4-5.
設太多是 yocto builder 會把 OS 給炸了而不是 CPU 有問題....

2017年5月13日 星期六

Windows 7 update 80080005

參考文章
https://www.ptt.cc/bbs/Windows/M.1348851971.A.FD7.html

講重點.
start -> search -> type "CMD" -> mouse right key click "Run as Administrator" -> terminal
"fsutil resource setautoreset true c:\"
work with did reboot.

download and install readiness tool, KB947821:
https://www.microsoft.com/en-us/download/details.aspx?id=3132

done.

2017年4月16日 星期日

debug

ACPI/PNPA000
這是 alcohol 52% virtual device (alcohol iSCSI), 所以一定找不到它的 driver...

google 能找到答案的問題都不叫問題, google 找不到答案的問題一樣一堆, 叫我去 google 我他媽的一定翻臉給你看

2017年3月31日 星期五

[Win32] 阻止 winsock.h

compile 多加一個定義 _WINSOCKAPI_
可以有效阻止 include windows.h 時順路把 winsock.h (不是 winsock2.h) include 進來 -_-
王八蛋......

2017年3月26日 星期日

tar with compresser

tar -I
ex: tar -I'lz4 -9' -cf target.tar.xz source_folder/
ex: tar -I'pixz -9' -cf target.tar.xz source_folder/

2017年2月6日 星期一

device tree for iBASE IB110/IB112

Already supported:
  • UART
  • CANbus
  • SD/MMC
  • VGA output
  • LVDS output
  • Ethernet (FEC)
  • USB (OTG not test)
  • HDMI
main_dtsi
dts_for_SDcard1_boot
dts_for_SDcard2_boot
dts_for_eMMC_boot

remember added the sii902x drm bridge driver into kernel (4.8.0+)

Device Drivers > Graphics support > Display Interface Bridges >  Silicon Image sii902x RGB/HDMI bridge

sil9022 RGBtoHDMI bridge driver added after kernel 4.8.2 (not sure), work on kernel 4.9.0 & 4.10rc6. In the imx ipuv3 drm driver, RGB bridge must be link-to "imx-parallel-display" port@1.

DTS free for used!

iBASE IB110/112 base on freescale i.MX53, so, maybe sii902x drm bridge driver can using on other i.MX6 platform, I haven't hardware, can not confirm it work or not.

2017年1月24日 星期二

firefox multi-process

After 11 years of first multi-core x86 processor, yes, 11-years, firefox start to supported multi-processor, even only supported two of processor.

reference from here:
http://www.ghacks.net/2016/07/22/multi-process-firefox/


  1. Enable electrolysis
    • in firefox "about:config"
    • search "browser.tabs.remote.autostart"
    • setting to "true"
  2. Tabs remote enable:
    • in firefox "about:config"
    • search "browser.tabs.remote.force-enable" (if not, create it, boolean)
    • setting to "true"
  3. Accessibility enable:
    • in firefox "about:config"
    • search "accessibility.force_disabled"
    • setting to "0"
  4. Check:
    • in forefox "about:support"
    • see option "Multiprocess Windows"
but, even now, I only see two of firefox task in the task-manager.




2017年1月7日 星期六

Panasonic GF2 看快門數

原文是無忌上的
http://cnc.xitek.com/thread-1091207-1-1-1.html


  • 关闭IA模式,相机内要放置有效的SD卡,关机。
  • 按住Q.MENU/Fn、WB、回放三个按键不放,开机;
  • 保持按住Q.MENU/Fn不放,按MENU/SET,进入设置,倒数第二项会多出一个“ROM BACKUP”的选项,选择此项;
    • ps. 選到這個選項後, 離開選單, 所有按鈕都可放開.
  • 保持按住Q.MENU/Fn不放,按住左方向键不放,按MENU/SET;
    • 我修正一下:
    • 按著 Q.menu/Fn, 再按 menu/set 進選單, 選到 ROM backup, 此時游標在 ROM backup, 不要進去
    • 此時按住左 (對焦點指定) 再按 menu/set
    • 看到一堆數字選單時表示成功, 可以放開所有按鈕.
  • 保持按住Q.MENU/Fn和左方向键不放,这时你会看到屏幕一堆数字在滚动,再次按下MENU/SET即可看到快门数等信息;
    • 我修正一下:
    • 看到這堆數字時, 按住 Q.menu/Fn, menu/set 再按左(對焦點指定) 才能再看到 camera info.
    • Q.menu/Fn 可以翻頁, camera info 有兩頁
  • 如果要退出工程模式,同样是按住Q.MENU/Fn和左方向键不放然后按MENU/SET,关机重启即可。

ps. 裡面的序號跟機身上印的序號不一樣, 我不知道那是什麼的序號.
ps2. Panasonic GF2 是機械快門, 不是電子快門.