2022年6月7日 星期二

ffmpeg 測試 video4linux2 攝影機 [未成功]

# 取得webcam支援的攝錄格式資訊

sudo ffmpeg \
    -f video4linux2 \
    -list_formats all \
    -i /dev/video0




# 顯示麥克風音效卡

sudo arecord -l




# 開始錄影

sudo ffmpeg \
    -f video4linux2 \
    -vcodec mjpeg \
    -s 1920x1080 \
    -r 30 \
    -i /dev/video0 \
    -f alsa -ac 2 -i hw:1,0 \
    output.mkv



# Ref: https://trac.ffmpeg.org/wiki/Capture/Desktop


若有需要可以試試別的




2022年5月10日 星期二

讓VirtualBox的虛擬機器在背景執行


cd C:\Program Files\Oracle\VirtualBox 


VBoxManage.exe startvm "VM_NAME" --type headless


或


"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "VM_NAME" --type headless




2022年5月1日 星期日

2022年4月30日 星期六

Linux 清除系統日誌

cd /var/log

sudo su

> lastlog

> wtmp

> dpkg.log 

> kern.log

> syslog

exit

sudo systemctl restart syslog


註:指令中必須包含  >  符號


參考資料

https://askubuntu.com/questions/515146/very-large-log-files-what-should-i-do

2022年4月26日 星期二

GDB 基本操作

編譯 (要加入debug資訊)

gcc xxxxx.c -g --static


啟動

gdb -tui ./a.out


切換窗格

Ctrl + X , O 


執行一次

r
run


加入中斷點

b <行號>
b <標籤名>
break <行號>
break <標籤名>


移除中斷點

(gdb) b 25 
Breakpoint 5 at 0x7a4: file main.c, line 27.
(gdb) info break
Num     Type           Disp Enb Address            What
5       breakpoint     keep y   0x00000000000007a4 in main at main.c:27
(gdb) del 5
(gdb) info break
No breakpoints or watchpoints.


單步執行

s
step


執行下一行指令

n
next


顯示暫存器

info all-registers
info reg X0


顯示字元陣列

print str
print str[13]
x/13cb str


開啟內建說明

help







Ubuntu 20.04 安裝 GitHub CLI

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key C99B11DEB97541F0

sudo apt-add-repository https://cli.github.com/packages

sudo apt update

sudo apt install gh

使用vscode來閱讀Linux內核原始程式碼

新增 .vscode/c_cpp_properties.json 檔案
內容如下:

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "${workspaceFolder}/include",
                "${workspaceFolder}/include/linux",
                "${workspaceFolder}/arch/arm64/include"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
} 

或是

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "${workspaceFolder}/include/**",
                "${workspaceFolder}/include/linux/**",
                "${workspaceFolder}/arch/arm64/include/**",
                "${workspaceFolder}/arch/x86/include/**"
            ],
            "defines": [
                "__KERNEL__",
                "_GNU_SOURCE"
            ],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "gnu11",
            "cppStandard": "gnu++17",
            "intelliSenseMode": "linux-clang-arm64"
        }
    ],
    "version": 4
}

2022年1月14日 星期五

chrome 深色模式

 https://www.google.com/


https://www.google.com.tw/preferences#appearance

chrome://flags/#enable-force-dark

2022年1月7日 星期五

編譯 Linux Kernal (on Ubuntu 20.04)

# Ubuntu 20.04.3


# 更新與下載套件

sudo apt update

sudo apt upgrade

sudo apt install vim net-tools git flex bison python3-dev build-essential cmake cppcheck cscope docker docker.io dwarves gcc-aarch64-linux-gnu gdb-multiarch kernelshark libncurses5-dev libssl-dev openssl openjdk-13-jre qemu-system-arm trace-cmd universal-ctags libelf-dev zstd


# 下載與解壓縮 Linux Kernel

## Linux Kernel 版本建議選擇比目前新的,不然有些 Driver 可能會沒有!

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.13.tar.xz

tar -Jxf linux-5.15.13.tar.xz

cd linux-5.15.13/


# 複製與編輯設定檔

## 複製設定檔

cp /boot/config-5.11.0-44-generic .config

## 讀進複製過來的設定檔

make menuconfig

<Save> <Exit>

# make clean

## 編輯設定檔

nano .config


^W

CONFIG_SYSTEM_TRUSTED_KEYS=""

# CONFIG_X86_X32=y

^X


scripts/config --disable SYSTEM_TRUSTED_KEYS

scripts/config --disable SYSTEM_REVOCATION_KEYS


# 編譯

cat /proc/cpuinfo

make modules -j8

make -j8


# 安裝

# Ref: https://blog.csdn.net/clh14281055/article/details/112294167

sudo make INSTALL_MOD_STRIP=1 modules_install

# sudo make modules_install

sudo make install

2021年12月2日 星期四

解決 GPU 被佔用問題

import tensorflow as tf

gpus = tf.config.experimental.list_physical_devices('GPU')

for gpu in gpus:

    tf.config.experimental.set_memory_growth(gpu, True) 

2021年5月13日 星期四

Go Modules、Private Repository

go mod init github.com/okh8609/{PROJECT_NAME}

go env -w GOPRIVATE=github.com/okh8609


申請 Personal Access Token,

git config --global url."https://$USERNAME:$ACCESS_TOKEN@github.com".insteadOf "https://github.com"




2021年5月6日 星期四

linux 常用指令

shutdown now

poweroff

reboot


ls -al    # -a: 顯示全部(包含隱藏檔);-l: 只是輸出格式不同


ln    # 建立捷徑


uname -a    # 查看系統資訊


df -h    # 查看磁碟使用量


du -sh    # 目前目錄占用的容量

du -sh *



free -h    # 記憶體耗用


lsof -p 12345    # 查看PID=12345的程式 占用資源的情況

lsof {路徑名稱}    # 查看某目錄中 檔案被開啟的情況

lsof -nPi | grep LISTEN    # 查看有哪些連線服務正在聽取連線


ip a    # 列出所有網卡

ifconfig eth0 192.168.50.88/24    # 指定IP和遮罩

dhclient {網卡名稱}    # 向DHCP server要IP




2021年5月5日 星期三

build aircrack-ng

 sudo apt-get install build-essential autoconf automake libtool pkg-config libnl-3-dev libnl-genl-3-dev libssl-dev ethtool shtool rfkill zlib1g-dev libpcap-dev libsqlite3-dev libpcre3-dev libhwloc-dev libcmocka-dev hostapd wpasupplicant tcpdump screen iw usbutils


 wget https://download.aircrack-ng.org/aircrack-ng-1.6.tar.gz


 tar -zxvf aircrack-ng-1.6.tar.gz
 cd aircrack-ng-1.6


 autoreconf -i
 ./configure --with-experimental
 make


 make install
 ldconfig



https://github.com/aircrack-ng/aircrack-ng
https://www.aircrack-ng.org/~~V:/doku.php?id=install_aircrack


2021年4月26日 星期一

golang 類似 override 概念的東東


package main

import (

"fmt"
)

type I interface {
Fa()
Fb()
}
type C1 struct {
}
func (c *C1) Fa() {
fmt.Println("C1.Fa()")
}
func (c *C1) Fb() {
fmt.Println("C1.Fb()")
}
type C2 struct {
C1
}
func (c *C2) Fb() {
fmt.Println("C2.Fb()")
}
func main() {
c1 := C1{}
c1.Fa()
c1.Fb()
c2 := C2{}
c2.Fa()
c2.Fb()
c2.C1.Fb()
}







2021年4月20日 星期二

Install MySQL on Ubuntu 20.04

sudo apt update
sudo apt install mysql-server
sudo systemctl status mysql
sudo mysql_secure_installation


sudo mysql

SHOW VARIABLES LIKE 'validate_password%';
SET global validate_password.length=4;

CREATE USER 'kh'@'localhost' IDENTIFIED BY '1234';
DROP USER 'kh'@'localhost';

CREATE USER 'kh'@'192.168.50.219' IDENTIFIED BY '1234';
DROP USER 'kh'@'192.168.50.219';
# 請參考下方的允許遠端存取
CREATE USER 'kh'@'%' IDENTIFIED BY '1234';
DROP USER 'kh'@'%';

# REVOKE ALL ON *.* FROM 'kh'@'localhost';

GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'kh'@'localhost';
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'kh'@'192.168.50.219';
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'kh'@'%';

FLUSH PRIVILEGES;
SHOW GRANTS FOR 'kh'@'localhost';

source /home/kh/XXX/scripts/mysql.sql;

EXIT


mysql -u kh -p


# ref:
# https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04

允許遠端存取:

  • sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
  • sudo systemctl restart mysql

  • ref:
  • https://www.digitalocean.com/community/tutorials/how-to-allow-remote-access-to-mysql


2021年4月14日 星期三

ubuntu sudo 免密碼 - visudo

 sudo visudo

%sudo   ALL=(ALL:ALL) NOPASSWD:ALL

myuser ALL=(ALL:ALL) NOPASSWD:ALL

       kh ALL=(ALL:ALL) NOPASSWD:ALL

順序有差 建議放最後

2021年4月10日 星期六

Jenkins 與 Github 重點筆記

GitHub 帳號申請 Personal access tokens 

Developer settings → Personal access tokens






放到 Jenkins 的GitHub Plugin設定那邊

Manage Jenkins → Configure System → GitHub

Add → Add Credentials → Kind → Secret text → 貼上剛剛申請到的access token





-----


到 GitHub Repo 設定:

 GitHub的Webhooks (http://xxx.yyy.zzz:8080/github-webhook/)






 GitHub的deployee key 設定 public key

到Jenkins設定private key




主機記得裝git


Credentials新增SSH private key

(頭尾那兩行也要進去"-----BEGIN RSA PRIVATE KEY-----" "-----END RSA PRIVATE KEY-----")



參考資料:

https://medium.com/@BuzonXXXX/ci-%E8%A8%AD%E5%AE%9Ajenkins%E9%80%A3%E7%B5%90github-private-repo-111c53d29047

http://mis101bird.js.org/cd/