2022年9月5日 星期一

ubuntu linux 7.1 channel audio

 windows 下 realtek 有做一個 app 可以調整哪個口要輸出什麼 (lineout/linein/mic,...), 不過我今天才知道 ubuntu 底下原來也有人寫這個工具出來 (hdajackretask), ubuntu 包在 alsa-tools-gui 裡. 

所以 ubuntu 底下就是 apt-get update ; apt-get install alsa-tools-gui ; 再執行 hdajackretask :

可以根據需要設定想要的輸出. apply 有時可以立即生效, 有時不行. 


不行的話就用 "install boot override" 下次重開機時覆寫 audio codec 的設定.

如果還有 Equalizer APO 這種東西可用的話就太好了......

2022年6月8日 星期三

DKMS for vmware-host-modules

 參考 asus-ec-driver 的 dkms 改寫出來的, 懶的再包成 .deb 了. 一方面也是因為我 script 裡是另外去下載 source-core, 所以並不存在固定 package_version : 

https://github.com/zetta-shao/vmware-hostmodules-dkms.git

執行 sudo ./mkmod.sh 就可以. 
如果要更改為 workstation 16.2.3 則下 "sudo ./mkmod.sh workstation-16.2.3" , 
如果想清掉已安裝的 source code, 下 sudo ./mkmod.sh clean

mkmod.sh 裡 BRANCH 寫上目前正在用的版本, 如果不知道要寫什麼的話, 可以敲: 

git ls-remote https://github.com/mkubecek/vmware-host-modules.git|grep heads

看 refs/heads/ 之後寫的版號有哪個是相符於自己使用的版本, 就是敲哪個. 

ps.直接使用 "workstation" 我確定是沒用的.


這包裡面的東西只是 vmware-host-modules 裡的三個 Makefile 用另外別的檔案取代執行, 完全沒有動到原本的 code. 也因為我執行的 makefile 是別的 makefile, 往後可能會有不相容的情況 (目前我試 12.5.9 跟 16.2.1 是都一切正常就是..), 有不相容時到時再說....

順路一提目前已知要裝的套件有: build-essential, git, dkms. 相依套件會有一大票.

2022年6月2日 星期四

nfs kernel server 一點筆記

 偶然間發現在 16 core Denverton C3958 的機器上發現 nfsd 只會跑到 8 個 thread 時發現的. 

改這個:

/etc/default/nfs-kernel-server
# Number of servers to start up
RPCNFSDCOUNT=4
# Options for rpc.mountd.
RPCMOUNTDOPTS="--manage-gids -p 65502"

RPCNFSDCOUNT 這裡建議機器有多少 h/w thread, 或說 lscpu 列的 CPUs 寫多少就填多少, 雖然 nfsd 頂多一顆 CPU 用到 55% (以 atom c3958 來說), 但個人反復實驗的結果是跟能用上多少 h/w therads 數一樣就好, 寫多也沒有用.

RPCMOUNTDOPTS 後面的 -p 65502 這個原本是為了穿防火牆用的. nfs server 原本會用 port 2049, 還有一個亂數決定 port 號的傳輸口, 在這裡下這個 -p 可以指定都走哪一個 port 出去. 但很奇怪的, 我發現設定上這個參數時 nfs server 可以跑的比較快.


另外呢, 如果本身用的都是 mellanox connectX2 以上的卡的話, 直接掛上 RDMA 吧, 什麼都不用調, 也不用管 h/w threads 有多少, 就直接最佳化到底.

-------------------------------- 以下是 RDMA 的部份 --------------------------------

那 nfs server 如何支援 RDMA 呢? 想想我還是寫在同一篇裡好了. 不過先說在前面, 非 mellanox 硬體支援 RDMA 的卡給它跑 RDMA 意義不大, 要跑可以, 速度直接砍一半. 原本文中的主角 atom c3958 用的 intel x553 個人沒實驗成功跟 connectX2 或 X3 對連成功, 所以我無法告知能跑到什麼程度. 

ok 進正文. ubuntu 20.04 底下要 nfs server 支援 RDMA, 首先先裝上 rdma-core 還有跟它相關的套件後, 起動 nfs server 之後, 下:

echo rdma 20049 > /proc/fs/nfsd/portlist

接著 client 端就可以掛起來:

mount -t nfs4 -o rdma,port=20049 10.1.1.1:/dir /mount/dir

server 跟 client 端要掛什麼 kernel module 都幫你自動掛起來. 唯 rdma 看來只有支援 ipv4, 沒有支援 ipv6.

以上我是用 MCX353 對連測試的, 連結設定是 ethernet, 不是 infiniband. 
-------------------------------- 以上是 RDMA 的部份 --------------------------------

最後, 網卡 mtu 有沒有設到 9000 有不小的差別.

2022年5月25日 星期三

re: baytrail linux freeze bug..

 我從沒有想到過 baytrail 的奮戰篇可以寫到第 4篇, 真的是我人生中用過問題最多的 CPU..

繼上一篇 baytrail linux freeze bug.. 之後, 原本以為應該不會再有問題的組合, 到了 kernel 5.13 忘記哪一版後又開始繼續, 這次也很刺激, disable USB suspend, c_state 這些以前試過的 workaroun 全部沒用了, 只要重載負荷幾天, 就是死給你看. 這次想到的解法是原本用在 sheeva plug 上的一篇筆記, 虛擬桌面. 目前實驗重載幾十天都還沒出事, 先來筆記.

先說在前面, 這次的做法就是完全關掉內建顯示, 只能用遠端桌面操作. 所以在這之前 VNC server 的部份一定要先搞定, 沒把握搞定 VNC server 也得把 serial port console 打開以防萬一..

這是根據前人在 ubuntu 18.04 的筆記實做, 個人測試到 22.04 都有效. 首先的先安裝最關鍵的套件: xserver-xorg-video-dummy

然後在 /usr/share/X11/xorg.conf.d/xorg.conf 中設定:

Section "Device"
Identifier "Configured Video Device"
Driver "dummy"
VideoRam 32768
EndSection

Section "Monitor"
Identifier "Configured Monitor"
HorizSync 31.5-166
VertRefresh 50-152
EndSection

Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1920x1200" "1920x1080" "1600x1200" "1680x1050" "1440x900"
EndSubSection
EndSection

後, 下次重啟桌面環境 (xubuntu 是 systemctl restart lightdm) 後就會套用這個虛擬桌面設定, 在這裡面要上網要跑 vmware workstation 都沒問題, 而且因為是純軟體不會用到硬體 GPU, 可以省下 GPU 耗費的電力, 想要在一些本來就沒內建顯示的機器上跑 GUI 界面的桌面可以考慮用這種方式操作, 也不需要擔心被吃掉太多可用記憶體 (j1900 graphic 預設會吃掉 2GiB..).


關掉 baytrail 那該死的 GPU, 目前看起來一切正常, 目前啦....