2022-09-19

[삽질메모] nmcli


#ipv6 off
nmcli con modify br0 ipv6.method "disabled"

systemctl stop NetworkManager
systemctl restart NetworkManager


#static ip and bridge mode.
nmcli con add type bridge ifname br0 con-name br0
nmcli con add type bridge-slave ifname lan1 master br0 con-name lan1
nmcli con add type bridge-slave ifname lan2 master br0 con-name lan2

nmcli con modify br0 ipv4.addresses '192.168.222.77/24'
nmcli con modify br0 ipv4.gateway '192.168.222.1'
nmcli con modify br0 ipv4.dns '8.8.8.8 8.8.4.4'
nmcli con modify br0 ipv6.method disabled
nmcli con modify br0 ipv4.method manual
nmcli con modify br0 bridge.stp no
nmcli con up id br0

[   17.156194] br0: port 1(lan1) entered blocking state
[   17.159734] br0: port 1(lan1) entered listening state
[   32.472068] br0: port 1(lan1) entered learning state
[   47.832064] br0: port 1(lan1) entered forwarding state
[   47.835759] br0: topology change detected, propagating
systemd-networkd만 사용할때는 파란부분 blocking->forwarding 으로 빠르게 진행되지만.
NetworkManager만 사용할때는 빨간부분까지 4단계를 거치면서 빨간단계당 5초이상의 시간을 소요한다. 이것은 stp를 끔으로서 해결되었다.(빨간단계를 수행지않고 파란거만 빨리 진행된다는말)
stp : 스페팅트리프로토콜로써 스위치루프를 감지하여 죽이는 알고리즘이란다. 나는필요없...

systemctl daemon-reload
systemctl restart NetworkManager

#delete connection.
nmcli -f bridge con delete br0
nmcli -f bridge-slave con delete lan1
nmcli -f bridge-slave con delete lan2

nmcli -f ethernet con delete lan1


?? default gateway setup.

#gateway mode.
nmcli con add type ethernet ifname lan1 con-name lan1
nmcli con modify lan1 ipv4.addresses '192.168.222.77/24'
nmcli con modify lan1 ipv4.gateway '192.168.222.1'
nmcli con modify lan1 ipv4.dns '8.8.8.8 8.8.4.4'
nmcli con modify lan1 ipv4.method manual && \
nmcli con up id lan1 && \
nmcli con down id lan1 && \
nmcli con up id lan1


# nmcli connection modify bridge0 ipv4.addresses '192.0.2.1/24'
# nmcli connection modify bridge0 ipv4.gateway '192.0.2.254'
# nmcli connection modify bridge0 ipv4.dns '192.0.2.253'
# nmcli connection modify bridge0 ipv4.dns-search 'example.com'
# nmcli connection modify bridge0 ipv4.method manual // auto

nmcli connection modify bridge-br0 ipv4.method manual
nmcli con down id bridge-br0
nmcli con up id bridge-br0

route delete default gw 192.1678.225.1 lte0


nmcli con down id bridge-br0
nmcli con up id bridge-br0
nmcli con mod bridge-br0 ipv4.route-metric 1

nmcli con add con-name lan1 type ethernet ifname lan1 ipv4.method auto
nmcli con up id lan1
nmcli con add con-name lan2 type ethernet ifname lan2 ipv4.method shared
nmcli con up id lan2

nmcli -f ethernet con delete lan1
nmcli -f ethernet con delete lan2

nmcli connection add type ethernet ifname lan2 ipv4.method shared con-name local

nmcli c add con-name lan2 type ethernet ifname lan2 ipv4.method shared ipv6.method ignore
nmcli c up local

esp32-test softap_start_args happycpu p@ss1234 4
nmcli con add type ethernet ifname ethap0 ipv4.method shared con-name ethap0 ipv4.addresses 192.168.100.1/24
nmcli con up id ethap0

ip route add default via 192.168.225.1 dev lte0
ip route replace default via 192.0.2.1 dev eth0

ip route del default via 1.2.3.4 dev eth0 proto static metric 100
ip route add default via 1.2.3.4 dev eth0 proto static metric 90

2022-09-18

[개발노트] overlay.txt란 이런것.

https://developer.toradex.com/linux-bsp/how-to/device-tree/device-tree-overlays-linux/#preenabled-device-tree-overlays 발췌~

Enable/Disable a Device Tree Overlay

To enable or disable applying a pre-built overlay on a Toradex SoM just add/remove it to/from the file overlays.txt located on the boot partition, and reboot the system.


For example, one wants to disable a parallel RGB interface and display on Colibri-iMX8X and enable an HDMI interface (using DSI-to-HDMI adapter). The initial overlays.txt file looks like:


# cat /boot/overlays.txt 

fdt_overlays=colibri-imx8x_parallel-rgb_overlay.dtbo colibri-imx8x_ad7879_overlay.dtbo display-edt7_overlay.dtbo


Steps to disable a parallel RGB and enable an HDMI:


Open the overlays.txt file with any text editor, e.g. vi:

# vi /boot/overlays.txt 


Remove overlays, that is needed for Resistive Touch Display 7" Parallel and add one for DSI-to-HDMI adapter. The file should look like:

# cat /boot/overlays.txt 

fdt_overlays=colibri-imx8x_dsihdmi_overlay.dtbo


Synchronize them filesystems:

# sync


Reboot the system:

# reboot

2022-09-16

[잡시식] 시스템에 할당된(연결된?) 공인아이피 알아내기.

curl ifconfig.me

공유기밑에 사설ip임에도 최상단 공인ip를 알아낼수있다.
--> 이걸로, ISP정보를 알아낼수있을까?
--> 이걸로 ISP DNS서버를 알아내서.
--> 거기에 ping 을 하자. 제일 빠를듯?

2022-09-14

[개발노트][트러블슈팅] git clone이 안될때


갑자기 아래의 오류와 함께 git이 안될때...

Git: Fatal:Unsupported SSL backend 'openssl'. Supported SSL backends: gnutls


wget https://curl.haxx.se/ca/cacert.pem

mv cacert.pem ~/.ssh

git config --global http.sslBackend "openssl"

git config --global http.sslCAInfo ~/.ssh/cacert.pem

git config --global --unset http.sslBackend


2022-09-06

[개발노트][esp32] docker 설치 및 idf docker


[도커기반 개발환경을 위함]
sudo apt  install docker.io

[idf docker 설치]
 현재 위치 폴더를  idf 4.4 컨테이너 내부 /project에 연결
sudo docker run --rm -v $PWD:/project -w /project -it espressif/idf:release-v4.4

# idf.py set-target esp32c3
# cd /project/esp_hosted_mcu/esp/esp_driver/network_adapter
# idf.py build
esptool.py 어쩌고저쩌고 
잘되는가?



2022-09-05

[개발노트]초기설치

우분투20.04.5 기준, stm32mp1 개발에 필요한 기본 설치 (소스 및 배포판 제외)

sudo apt update
sudo apt install -y gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm python3-subunit mesa-common-dev zstd liblz4-tool
sudo apt install -y make xsltproc docbook-utils fop dblatex xmlto
sudo apt install -y libmpc-dev libgmp-dev
sudo apt install -y build-essential libncurses-dev libyaml-dev libssl-dev
sudo apt install -y python-is-python3
sudo apt -y install coreutils bsdmainutils sed curl bc lrzsz corkscrew cvs subversion mercurial nfs-common nfs-kernel-server libarchive-zip-perl dos2unix texi2html diffstat libxml2-utils
sudo apt install -y openssh-server gcc-multilib libusb-1.0-0 vim screen
sudo usermod -a -G dialout $USER

mkdir ~/.bin
PATH=~/.bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
chmod a+x ~/.bin/repo

터미널 열때마다 패쓰적용.
vim ~/.profile
if [ -d "$HOME/.bin" ] ; then
   PATH="$HOME/.bin:$PATH"
fi

어디서든 실행할수있도록.
stm32cubeprogrammer symbolic link 추가.
ln -s <설치된위치>/STM32_Programmer_CLI $HOME/.bin/STM32_Programmer_CLI 

udev rule복사해넣기. usb인식을 위한 규칙.
sudo cp  ~/STMicroelectronics/STM32Cube/STM32CubeProgrammer/Drivers/rules/* /etc/udev/rules.d/




* conf/local.conf 에 OE_TERMINAL = "screen" 추가하면 터미널에서 menuconfig 됨.

2022-09-04

[개발노트] ttyUSB 권한

stm32cubeprogrammer를 실행할때 ttyUSB 포트를 사용못해서 관리자로 실행한적이 있는가??

sudo usermod -a -G dialout $USER

2022-09-01

[개발노트] usb modem의 네트워크이름 바꾸고, DM포트 자동 생성

리눅스 RNDIS 드라이버를 켜면 usb테더링한 스마트폰, usb타입 모뎀 등이 네트워크로 잡힌다.
잡히는 순서에 따라 usb0, usb1 등 또는 usb-gadget 또한 usbX형태로 잡힌다.
그래서, usb net장치 의 제조사번호와 제품번호가 인식되면, udev의 rule에 등록하여
이름을 변경할 수있다. 
또한 DM을위한 시리얼포트 생성하는 실행 스크립트도 추가할수있다.
/etc/udev/rules/XXXXX.rule
SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="902d", NAME="lte0" ,RUN += "/usr/bin/modem_dm.sh"

socat으로 ttyGS0 와 연결하면 됨.

암호화 + base64 하고 쉘스크립트.

 #!/bin/bash # IV와 UserKey를 설정합니다 (아스키 문자열을 그대로 사용). IV="0123456789abcdef"  UserKey="0123456789abcdef" # IV와 UserKey를 16...