2022/10/20

Stable-Diffusion-Webui

Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.
所以
python webui.py --listen
結果是看這一個
要 clont source,還要另外 download model.ckpt。

然後啟動 webui.py

最近的吃面輸出..我的是..


這一篇有一些 animate model,一開始還有用 command line download magnet 的 package 安裝
這個是一個給 linux 用的 install script,預先用conda create 好python3 的環境。
然後這一篇 是官方的安裝說明?
還有說要一些其他的 package ,例如
Linux 安裝大概就是:

安裝 python 3.10 環境 (conda ?)
git clone git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
copy ckpt 到 models/Stable-diffusion 下,rename model.ckpt
run webui.sh
它會create venv,再裡面安裝 requirments.txt
所以要單獨run webui.py 的話,要自己install requirement.txt
然後還是有一些沒裝, clip, gdown,
看 webui.sh,啟動 venv 後就 run launch.py
launch.py 安裝 gfpgan, clip, xformers, deepdanbooru, pyngrok
再 install requirements.txt

2022/10/13

set default gw metrics for multiple NIC

因為有兩張網卡,都是m dhcp,所以最後會有兩個 metric 都是 100 的 default gw。
因為這兩個網卡網段不一樣。所以連線就會 fail。
要在 netplan 設定 route metrics。依照說明是用:
  enp3s0:
    dhcp4: true
    dhcp4-overrides:
      route-metric: 200
大概是這樣,把 metric 設為 大於 100,就不會優先用他。
但是修改完用 netplan try,出現 Error: Error while loading /etc/netplan/50-cloud-init.yaml
所以只好用另一個方法:
cp /run/systemd/network/10-netplan-enp4s0.network /etc/systemd/network/
然後修改 /etc/systemd/network/10-netplan-enp4s0.network:
[DHCP]
RouteMetric=200
..

scp指定 NIC

要單獨取的某 interface 的 ip (v4)
ip -4 addr show enp3s0 | awk '/inet/ {print $2}' | cut -d/ -f1

要指定 scp 使用哪個 interface,就要...
scp -o BindAddress=192.168.145.58 myfile remotehost:~/
如果要在 ip addr 的輸出中篩出來,就要先用 grep 過濾,
grep -A 2 enp3s0: ip-addr-out-file
-A 2 就是show 後面兩行。

2022/10/12

cross compile mener (mender-client) for aarch64

其實就是照 官方文件 說的..
  • cross build openssl
  • cross build xz
  • cross build mender (client)
原先想用target board 上 buildroot build 好的 openssl 跟 xz,結果在 make 的時候,說找不到 libz.so
即使有把 libz.so 也放到 -L libpath,結果也一樣。
應該是沒有加上 -lz

所以只好依照官方文件,corss build openssl,這樣就會 disable zlib support,就不會需要 libz。
最後是偷懶把 openssl, xz 的 include/* copy 到 mylib/include,把 lib/* copy 到 mylib/lib

先加入 cross-compile toolpath
在宣告 cross compile tool:
export CC=aarch64-linux-gnu-gcc
然後 make
make CGO_CFLAGS="-I/home/charles-chang/mylib/include" CGO_LDFLAGS="-L/home/charles-chang/mylib/lib" CGO_ENABLE=1 GOOS=linux GOARCH=arm64 TAGS=nodbus
如果要 dbus 的話,還要 cross compile glib

其他這注意事項:
用 go 1.10 版失敗,先是說 main.go app 找不到,他一定要在 $GOPATH/src/github.com/mendersoftware,
但是照著 set GOPATH,clone ,error 變成語法錯誤。
最後還是改用 go 1.13 直接就成功了。

就 apt install golang-1.13,然後手動改 /usr/bin/go link 到 ../lib/go-1.13.0/bin/go

2022/10/11

cross-compile openssl for linux-aarch64

Configure 有:
   CROSS_COMPILE => env('CROSS_COMPILE'),
所以猜..

用 linaro 的話,安裝在 /usr/local/linaro-aarch64-2020.09-gcc10.2-linux5.4/bin/
toolchain prefix 是 aarch64-linux-gnu

Configure 中也有:
--cross-compile-prefix=
結果用了這個configure:
./Configure linux-aarch64 --cross-compile-prefix=aarch64-linux-gnu- --shared --prefix=/home/charles/myssl
竟然就 build OK ?!
打開 configure 出來的 Makefile 看...
OPTIONS=--cross-compile-prefix=aarch64-linux-gnu- enable-shared --prefix=/home/charles-chang/myssl no-afalgeng no-asan no-buildtest-c++ 
 no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer
 no-heartbeats no-md2 no-msan no-rc5 no-sctp no-ssl-trace no-ssl3 no-ssl3-method no-ubsan no-unit-test no-weak-ssl-ciphers no-zlib
 no-zlib-dynamic
原來所有 support lib option 都 off 了。


附帶 liblzma (xz) 的 cross-compile:
看 configure..
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
其他就沒了,所以猜是
./configure --host=aarch64-linux-gnu --prefix=/home/charles-chang/myxz
果然這樣make 就 OK 了。

其他看 configure 可以知道,要 build static libary 的話,就 --enable-static (--enable-shared 是 default 就有的)