this post I use to save only commands that uses in every day:

 

 

CAN command

first modprobe mcp251x module (SPI to CAN) and then initialize can0 (that made by mcp251x driver) and then send a can packet to the bus

modprobe mcp251x
rmmod mcp251x

ip link set can0 type can bitrate 500000
ip link set can0 up

cansend can0 123#12345678

--------------------------------

init grub after install ArchLinux

دستور زیر کانفیگ گراب رو میسازه که صفحه ی گراب که باز میشه بدونه چه سیستم عامل هایی باید نمایش بده و روت فایل سیستم روی چه پارتیشنی هست و...

grub-mkconfig -o /boot/grub/grub.cfg

این هم برای تنظیم efi هست و تا جایی که فهیدم فایل مربوط به efi رو در مکان boot ایجاد میکنه

grub-install --target=x86_64-efi --efi-directory=/boot/EFI --bootloader-id=GRUB

---------------------------------

change partition size to original size

بعد از نصب آرچ لینوکس تصمیم گرفتم پارتیشن بندی ها رو بهبود بدم برای همین دو تا پارتیشن ساختم یکی برای بوت و دیگری برای روت

 بعد با دستور dd این دو تا پارتیشن رو جا به جا کردم.

پارتیشن روت هردو یک گیگ بود و مشکلی پیش نیومد

ولی پارتیشن روت رو چون حجم بیشتری بهش اختصاص دادم وقتی با دستور dd همه چیز رو منتقل کردم حجم فایل سیستم رو میزد 30 گیگ یعنی حجم قبلی درحالیکه حجم پارتیشن ۵۰ گیگ بود

برای حل این مشکل از دستور زیر استفاده کردم

resize2fs /dev/nvmen1p2 50G

که این هم مشکل رو حل کردد. خط زیر هم دستور dd برای اینکار

sudo dd if=/dev/nvme0n1p7 of=/dev/nvme0n1p1 bs=16MB status=progress

------------------------

add minimize and maximaze windows button

gsettings set org.gnome.desktop.wm.preferences button-layout 'appmenu:minimize,maximize,close'

------------------------------

works with WiFi after ArchLinux instalation

برای کار با وایفای هم بعد از نصب آرچ با توجه به اینکه هیچ پکیجی ندارید باید موقع نصب آرچ وقتی chroot کردید به کمک pacman پکیج NetworkManager رو نصب کنید و بعد که وارد آرچ اصلی شدید با دستورات nmcli میتونید به وایفای وصل بشید

 

--------------

Set Static IP

nmcli con modify WIFINAME ipv4.method manual ipv4.address 192.168.1.201/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8
nmcli con down SUCCESS
nmcli con up SUCCESS

connect to WIFI

nmcli dev wifi
nmcli dev wifi connect SUCCESS password "10201999"
nmcli con show
iwconfig

change Static IP address of interface (NOT PERSISTANCE)

ip addr add 192.168.1.200/24 dev wlan0 

 

-----------------------------------------

Init Virtual CAN and connect it to real CAN on other device with cannelloni

in your PC first initalize vcan and run cannelloni

sudo ip link add dev vcan0 type vcan
sudo ip link set vcan0 mtu 16
sudo ip link set up vcan0

cannelloni -I vcan0 -R 192.168.1.232 -r 2000 -l 2000

in your device (that has real CAN)

cannelloni -I can0 -R 192.168.1.54 -r 2000 -l 2000

for test only you can uses cansend to test that vcan is connected to real can or not. also you can use canopen for test

cansend vcan0 123#4567
canopend vcan0 -i 2 -c "stdio"

-----------------------------------

CMake finding package:

pkg_check_modules is a function provided by CMake to simplify the process of finding and configuring packages installed on your system. CMake will then search for the specified packages on the system. It uses the pkg-config tool internally to locate the packages. pkg-config is a helper tool used to retrieve information about installed libraries in the system. if your CMake can't find an specific package that you sure the package is exist in your system so add the path of *.pc file to PKG_CONFIG_PATH environment variable.

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/

to show all detected packages that finded by pkg-config you can use this command:

pkg-config --list-package-names

------------