2023年10月17日 星期二

筆記 systemd-networkd

 簡單的說 ubuntu 體系的常會在開機時卡在 systemd-networkd-wait-online 很久很久, 如果機器本身是需要設定固定 ip, 沒有對外更沒有啥 dhcp server 可連線時就會卡很久

這裡有位高手提供一個解法: 首先:

sudo systemctl edit --full systemd-networkd-wait-online.service

在裡面找到 ExecStart, 改成像這樣:

ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --timeout=10

就可以跳過這個無意義工作.

2023年7月6日 星期四

usb ethernet adapter rename

USB ethernet 像 AX88772, AX88179 等在 ubuntu 下會重命名為 enx<MAC address> 的名稱, 我對名稱叫什麼沒有意見, 但 nfs client 有, 做 IPv6 nfs mount 時都會出現 "an incorrect mount option was specified" 的錯誤.

這問題我找了一段時間, 沒有找到解法. 直到有一天因為工作的需求使用 SUSE 這套 distro 時發現, 在它底下 USB thernet 可以正常使用 IPv6 nfs mount.... !! 只是跟 ubuntu 不一樣的是, 它 USB ethernet 就只是叫 eth? 而已, 不是照 bus-tree 這些來命名... 

好了, 那如何更改 ubuntu 下的 USB ethernet 名稱? 我在這裡找到有人提供改寫 udev rules 的方式達成:

以 root 身份增加檔案 /etc/udev/rules.d/76-netnames.rules
---
# USB device by path
# get ID_PATH if not present yet
ENV{ID_PATH}=="", IMPORT{builtin}="path_id"
SUBSYSTEM=="net", ACTION=="add", ENV{ID_PATH}=="*-usb*", NAME="ueth%n"

---

以 root 身份重觸發 udev:

# udevadm control --reload-rules; udevadm trigger;

下次再接上 USB ethernet 時就會更名為 ueth?, 更名成這樣就可以正常使用 IPv6 nfs mount.

2023年6月6日 星期二

ubuntu 底下套用 icc 檔

 首先寫在前面, 我只針對 X11 應用, wayland 跟印表機有沒有做用我不知道, 無法驗證.

這裡只是寫寫筆記.

ubuntu 底下要裝兩個東西, colord, xiccd, 使用 colord 前最好先把 window manager 重開過, 例如 gdm (ubuntu w/o wayland), lightdm (xubuntu, xfce), sddm (lubuntu, LXDE). 要簡單一點就是重開機.

再來確認 colord 有沒有辦法正常動作: 

# colormgr get-devices 要有東西, 特別是 Device ID 那行:


一些網站說 .icc 檔可以放在 ~/.local/share/icc/ 底下, 我試過在 22.04 上沒用. 有另外要加入的 .icc 檔我認為要乖乖加在 /usr/share/color/icc/colord/ 底下.

# colormgr get-profiles 可以列出能被使用的 .icc 檔, 順路確認有沒有自己需要的:

以上確認無誤後可以用 colormgr device-add-profile 增加, 以上圖的例子就是:

# colormgr device-add-profile "xrandr-Virtual1" icc-b99d6f29391058874009aa0bf2ef2a87

# colormgr device-add-profile "xrandr-Virtual1" icc-35ae3435119b8a10eaf73839628be96a

唯需要注意的是如果 Device ID 出來的字串裡面有空白時, 直接貼上一定失效, 需要特地用引號匡起來指定哪一個輸出.


指定使用 profile 例如:

colormgr device-make-profile-default "xrandr-Virtual1" icc-b99d6f29391058874009aa0bf2ef2a87

這樣就會套用.


在 X11 底下營幕如果有做過啥 mirror 的動作時, Device ID 同時也會跑掉, 要注意.





2023年6月2日 星期五

Z6 充電線續集

 做這東西基本上沒有需求, 只是之前對於相機用直充電源線的部份一直梗梗於懷, 處心積慮的一直想做一條線可以讓 z6 使用 BC 1.2 那種 5v 2.4a 舊規格變壓器, 又可以滿速充電的東西, 然後為了想實現這樣的一條線, 從一開始 type-c 協議解析 IC IP2701, 到後面 type-C 公頭的元件, 看到後面 PD protocol 的部份時, 我才發現, 好像改改電阻就好了似的:

後來, 買到 type-c 公頭的接頭 (這個請注意有的有配電阻, 有的沒有), 實際動刀時才有點概念. 簡單的說, type-c 公頭上一般焊的那 56K 是橫跨在 Vconn 跟 CC 上的, 以 USB PD 的規格來說, CC 沒有這個電阻, 供電端不會給電, 只有 vconn 會給 5v 的電, 於是這顆 pull-up 電阻很順理成章的掛在 Vconn 跟 CC 的兩端:
這張圖就是這次的犧牲品. 我把電阻從 56K 換成 9.5K (手邊找不到 10K 0805 的料..), 如上圖所說, 換成 10K 後, 等於對用電端宣告給電端擁有 5v 3A 的供電能力, 而非原來的 500mA.

接到 z6 上的測試我忘了照, 就收進去了, 總之確定可以吃到 2A 全速充電沒問題了, 拿來給手機用也都可以正常認到 QC protocol 沒問題.

只是呢... 這條線的意義只在於, 如果還在用很老規格的 5V 2.4A 變壓器, 或是改更大電流的 5v 變壓器直供時, 這樣改才有意義, 否則以現在充電頭科技的進步, 意義不大.





2023年5月7日 星期日

samba & error 0x80070032

 這個問題是, 在當 windows copy 檔案到 samba server 的共享目錄時會發生的問題. 以微軟的文件我猜測就是數據重覆刪除的問題:

https://learn.microsoft.com/zh-cn/troubleshoot/windows-server/backup-and-storage/request-not-supported-smb-data-deduplication

但這並不完全是 samba 的問題. 0x80070032 這問題困擾我很久, 原本以為是 samba 的鍋, 因為 nfs 沒這問題, 但別人的 windoz pc 你不可能每臺都強迫裝 nfs client, 而且更別提現在 windoz 端 nfs client 僅只有支援 nfs v2 v3 沒有支援到 v4, 所以 unicode 的支援上會有相當程度的問題.

appuals 上的文章是我目前看過對這問題追的最徹底的, 他提了很多解法, 但請注意這些解法通常只針對 windows 對 windows 檔案共享出問題, 我的問題是 samba, 然後 samba 其實很少人碰到這問題, 碰到也不知道怎麼解, 最少你拿這些關鍵字去 google 九成九都是廢話, 或丟在那沒人回的問題.

我的問題發生的來源很簡單, 我把 tmpfs 開給 samba 分享出去, tmpfs 本身不支援 (因為不需要支援) data deduplication, 所以丟回給 samba 說我不支援, samba 再丟會給 windoz client, windoz 對用戶說遇到 0x80070032 的錯誤.

如果你掛的是其它的檔案系統像 ext4, xfs, samba 就不會有這問題, appuals 的文章最後最後一段有略略提到這件事: "If the issue persists on a server, then check if installing the Deduplication server role and configuring it solves the problem.", 但 server 端可能的問題太多, 也不一定就是檔案系統.

tmpfs 即便可以掛載那麼多奇奇怪怪的型態, 也並沒有那麼萬能.