2022/6/13

Use vi to find non-ascii character

先下 command:
: set list
這樣,non ascii code 會high light 出來。
再用search:
/[^\x00-\x7F]
就會一個一個搜尋出來 (用 n)

只找一個,例如:0x9c,就用
/[\x9c]

mplay : mplay 2 videos on 2 monitors

用 mplayer 指定播放的 monitor,用 screen option
--用 man player 可以列出比較仔細的 option.

所以,在第二個 monitor,永久反覆全螢幕播放 此目錄下所有檔案:
mplayer -loop 0 -screen 0 -fs *

** 結果 mpv 跟 mplayer 是不一樣的東西...


如果是 ssh 過去,要在 機器上的monitor 播放,而不是在 ssh client 這邊播放。
ssh 過去後,要
export DISPLAY=:0
再播。

-- 結果還是不行,要用 mpv 的 screen option 才行。

ssh 連線..
export DISPLAY=:0

mpv 播放,with screen option:
mpv --screen=0 myfile.mp4
--screen=1 的話就會播到令一個 monitor

2022/6/10

bookmarks: UVC Gadget

就是linux 把自己當作是 webcam,所以自己的 usb 要 run device mode,而且上 UVC Gadget.
ref:

2022/6/6

memo - gdb, argument and source location

大概就是...
gdb --args executablename arg1 arg2 arg3
進入 gdb 後,用指令 directory 指定source code 所在位置 (absolute path)
gdb> directory /data/

2022/6/1

Read mender-store with python code

讀取 mender-store 的內容...
(lmdb) charles-chang@e431focal:~$ python
Python 3.10.4 (main, Mar 31 2022, 08:41:55) [GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import lmdb
>>> env = lmdb.open('./mender-store',subdir=False)
>>> txn = env.begin()
>>> myList = [ key for key, _ in txn.cursor()]
>>> print(myList)
[b'artifact-name', b'artifact-provides', b'authtoken']
>>> 
>>>print(txn.cursor().get(b'artifact-name'))
b'1.0.1.30rc1-deltafrom-1.0.0.28patch3'
>>> print(txn.cursor().get(b'artifact-providese'))
None
>>> print(txn.cursor().get(b'artifact-provides'))
b'{"rootfs-image.checksum":"457d85413d8dbdb2c278b4740493efb3712290f36668a919dd4297ae60ca6157","rootfs-image.version":"1.0.1.30rc1"}'

另外,lmdb 的 put/get :
>>> import lmdb
>>> env = lmdb.open('./testlmdb')
>>> txn = env.begin(write=True)
>>> txn.put(key=b'1',value=b'abc')
True
>>> txn.put(key=b'aaa',value=b'{a=1},{b=2}')
True
>>> txn.commit()

>>> txn = env.begin()
>>> for key,value in txn.cursor():
...     print(key,value)
... 
b'1' b'abc'
b'aaa' b'{a=1},{b=2}'


所以寫一個小程式,可以簡單create 這個 key-value 的 lmdb data file: 是用lmdb 的 code。

這樣,只要:
./mydb ./mender-store artifact-provides "{\"rootfs-image.checksum\":\"457d85413d8dbdb2c278b4740493efb3712290f36668a919dd4297ae60ca6157\",\"rootfs-image.version\":\"1.0.1.30rc1\"}"
就可以新增 value
然後 mylist 就是跟 python 一樣的function,列出 db 中所有 key-value record.