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 我他媽的一定翻臉給你看