Categories
linux

设置静态IP

一般通过命令nmtui设置

Categories
linux

linux 硬盘管理常用命令

dd

硬盘复制用命令 镜像复制命令

例子

sudo dd if=openwrt-image.img of=/dev/mmcblk0 bs=4M status=progress
复制当前目录下 openwrt-image.img 镜像  到/dev/mmcblk0 的硬盘

sudo dd if=/dev/mmcblk1 of=/dev/mmcblk0 bs=4M status=progress
将/dev/mmcblk1整个硬盘复制到/dev/mmcblk0  /dev/mmcblk0容量大于/dev/mmcblk1

sudo dd if=/dev/zero of=/dev/mmcblk0 bs=4M status=progress
清空控盘内容(全写0)

fdisk

管理查看硬盘分区信息

例子

sudo fdisk /dev/mmcblk0  
然后会进入硬盘命令行子命令交互空间

df

查看硬盘占用情况

df ./
展示当前目录所在硬盘分区占用情况

df -h
展示系统硬盘分区占用情况  包括挂载点信息

mount

挂载分区到某个挂载点

sudo mount /dev/mmcblk0p2 /mnt
其实一般当自动插入sd卡 或者USB就会自动挂载到这里
但是要改变挂载方式(可读可写) 就要先卸载在挂载

sudo mount -o rw /dev/mmcblk0p2 /mnt
增加-o rw 即为可读可写

umount

卸载分区

sudo umount /dev/mmcblk0p2

ln

这个命令可以为文件夹和文件设置硬链接和软连接

个人更加推崇软连接(硬链接是硬盘级别内部的连接 不能跨硬盘,软连接可以)

ln -s /path/to/source /path/to/destination

/etc/fstab

这个文件用来设置文件系统自动挂载

sudo blkid
列出系统所有分区的uuid

/etc/fstab 添加一行

UUID=1234-5678 /mnt ntfs rw 0 0

UUID=1234-5678:替换为你在步骤 1 中获取的 UUID。
/mnt:替换为你创建的挂载点。
ntfs:替换为你的文件系统类型(例如 ext4、ntfs 等)。
rw:默认挂载选项,包括 rw(读写)、suid、dev、exec、auto、nouser 和 async。
0 0:表示不进行备份和不进行文件系统检查。

Categories
linux

香橙派 OPI.GPIO

一般GPIO初始化是执行

GPIO.setmode(mode) #来进行引脚定义初始化

GPIO.BOARD = 10
GPIO.BCM = 11
GPIO.SUNXI = 12 
GPIO.CUSTOM = 13  

其实只是一你骄傲的映射关系 没有真正执行任何代码

但是OPI.GPIO 对不同的香橙派版本 引脚定义不充分

CM4为例子

GPIO.setmode(GPIO.BOARD) #会少了很多引脚的映射

C:\Users\15699\AppData\Local\Programs\Python\Python312\Lib\site-packages\OPi\pin_mappings.py

 BOARD: {
        3: 12,
        5: 11,
        7: 6,
        8: 198,
        10: 199,
        11: 1,
        12: 7,
        13: 0,
        15: 3,
        16: 19,
        18: 18,
        19: 15,
        21: 16,
        22: 2,
        23: 14,
        24: 13,
        26: 10
    },

这时候要不更改这个库文件 按照GPIO.readall 补充所有引脚映射

要不执行 自定义引脚映射初始化

GPIO.setmode({
        3: 140,
        5: 141,
        7: 147,
        8: 25,
        10: 24,
        11: 118,
        12: 119,
        13: 128,
        15: 130,
        16: 131,
        18: 129,
        19: 138,
        21: 136,
        22: 132,
        23: 139,
        24: 134,
        26: 135,
        27: 32,
        28: 33,
        29: 133,
        31: 124,
        32: 144,
        33: 127,
        35: 120,
        36: 125,
        37: 123,
        38: 122,
        40: 121
    })

GPIO.getmode 
# 返回CUSTOM 自定义引脚映射
Categories
linux

树莓派 电源固件升级问题

树莓派论坛提到

https://forums.raspberrypi.com/viewtopic.php?t=361383

升级方法

Tue Dec 12, 2023 5:44 pm

3B+ v1.4 has a new PMIC and needs Sept 2021 or newer firmware.

Follow https://pip.raspberrypi.com/categories/ ... 6-WP-1.pdf to update the firmware in your image.

树莓派更换了新的PMIC(电源管理芯片)

https://pip.raspberrypi.com/categories/685/documents/RP-003476-WP/RP-003476-WP-1.pdf

该PDF有说明最新固件情况

Updating only the firmware

Sometimes, going through the standard upgrade procedure may not be possible. For example, you may have acustomised distribution with no update facilities, or that cannot be upgraded without causing further issues. In thesecircumstances, and possibly others, you will need to update the firmware files in the distribution manually.You can download the firmware files from the following location:

https://github.com/raspberrypi/firmware/archive/refs/heads/stable.zip

This zip file contains a number of items, but the ones we are interested in at this stage are in the boot folder.

The firmwarefiles have names of the form

start*.elf, and their associated support files are fixup*.dat.

The basic principle is to copy the required start and fixup files from this zip file to replace the same named files in thedestination OS image.

The exact process will depend on how the OS has been set up, but this is an example of how itwould be done for a Raspberry Pi OS image:

1. Extract or open the zip file so you can access the required files.

2. Open up the boot folder in the destination OS image (this could be on an SD card, or a disk-based copy).

3. Determine which start.elf and fixup.dat files are present in the destination OS image.

4. Copy those files from the zip archive to the destination image.The image should now be ready for use on the latest Raspberry Pi Ltd hardware.

其实就是下载最新固件包 在压缩包里打开boot目录

替换start*.elf 和 fixup*.dat.

当然命令行系统 用的是start.elf fixup.dat

桌面系统用的是 start_x.elf fixup_x.dat

Categories
linux

Raspbian OS

全量搜索地址 清华开源镜像网站

https://mirrors.tuna.tsinghua.edu.cn/raspberry-pi-os-images/

Categories
linux

树莓派 配置自启动桌面程序

利用aotostart 目录进行配置

创建设置文件/home/pi/.config/autostart/map2output.desktop,如果autostart目录不存在就自己创建。

文件内容如下:

[Desktop Entry]


Type=Application

Name=map2output


Exec=/home/rock/map.sh  #执行脚本

Categories
linux Uncategorized

树莓派 book worm 安装记录

3B插上网线

sudo raspian-config //开启ssh


sudo apt install python3-pip
sudo apt install python3-opencv
sudo apt install python3-dbus
sudo apt install python3-bluetooth
sudo apt install python3-serial

sudo apt install vim

sudo apt install lrzsz


pip install wiringpi --break-system-wide

开启orthocone 自启动

sudo chmod 777 /etc/init.d/orthocone
sudo update-rc.d orthocone defaults
sudo systemctl enable orthocone.service

sudo chmod 777 recon.out

还需要重新安装opencv_core opencv_imgproc  opencv_highgui

用opencv4  重新编译 recon   
超级辛苦

多余service 取消自启动

sudo update-rc.d xxx remove

或者

sudo systemctl disable xxx.service

移除windows 字符
vim
:set ff=unix

修改i2c 波特率
config.txt
dtparam=i2c_arm=on,i2c_arm_baudrate=100000

python3.9 后 timer.isAlive() 改为 timer.is_live()

树莓派系统

虚拟键盘

https://blog.csdn.net/weixin_37613240/article/details/131095728

https://blog.csdn.net/weixin_46235937/article/details/128966933

https://blog.csdn.net/qq_27865227/article/details/127394944

https://blog.csdn.net/m0_46324847/article/details/128962898

新版树莓派摄像头驱动

Categories
linux

树莓派5 双触摸屏

第一禁用Wayland 用回x11设置

raspi-config 里设置后 重启

xinput查看当前当前触摸屏与设备 xrandr也可查看当前屏幕

xinput map-to-output 7 HDMI-1

xinput map-to-output 8 HDMI-2

Categories
linux

pacman

pacman 实在msys2 下的包管理器

常用命令

pacman -Ss xxx 包搜索

pacman -S xxx 包安装

用法

pacman [...]

操作

pacman {-h --help} //帮助

pacman {-V --version} //查看版本

pacman {-D --database} //pacman管理数据库选项

pacman {-Q --query} [选项] [软件包] //查询安装包

pacman {-R --remove} [选项] //删除安装包

pacman {-S --sync} [选项] [软件包] //安装安装包

pacman {-U --upgrade} [选项] //更新安装包

使用 'pacman {-h --help}' 及某个操作以查看可得的选项

[zhangy@BlackGhost ~]$ pacman -D --help

用法

pacman {-D --database}

选项

--asdeps 标记为非单独指定安装的软件包

--asexplicit 标记为单独指定安装的软件包

--config 指定另外的配置文件

--logfile 指定另外的日志文件

--noconfirm 不询问确认

--noprogressbar 下载文件时不显示进度条

--noscriptlet 不执行安装小脚本

-v, --verbose 循环执行

-- debug 显示除错信息

-r, --root 指定另外的安装根目录

-b, --dbpath 指定另外的数据库位置

--cachedir 指定另外的软件包缓存位置

--arch 设定另外的架构

[zhangy@BlackGhost ~]$ pacman -Q --help

用法

pacman {-Q --query} [选项] [软件包]

选项

-c, --changelog 查看某软件包的更新日志

-d, --deps 列出所有作为依赖关系安装的软件包 [过滤器]

-e, --explicit 列出所有单独指定安装的软件包 [过滤器]

-g, --groups 查看某软件包组所属的所有软件包

-i, --info 查看软件包信息 (-ii 查看备份文件)

-k, --check 检查该软件包拥有的文件是否存在

-l, --list 列出被查询软件包的内容

-m, --foreign 列出没有在同步数据库时找到的已安装软件包 [过滤器]

-o, --owns 查询哪个软件包拥有

-p, --file 从某个软件包而不是数据库查询

-s, --search 搜寻符合指定字符串的已安装本地的软件包

-t, --unrequired 列出所有不被其他软件包要求的软件包 [过滤器]

-u, --upgrades 列出所有可升级的软件包 [过滤器]

-q, --quiet 在查询或搜索时显示较少的信息

--config 指定另外的配置文件

--logfile 指定另外的日志文件

--noconfirm 不询问确认

--noprogressbar 下载文件时不显示进度条

--noscriptlet 不执行安装小脚本

-v, --verbose 循环执行

-- debug 显示除错信息

-r, --root 指定另外的安装根目录

-b, --dbpath 指定另外的数据库位置

--cachedir 指定另外的软件包缓存位置

--arch 设定另外的架

[zhangy@BlackGhost ~]$ pacman -R --help

用法

pacman {-R --remove} [选项]

选项

-c, --cascade 删除软件包及所有的依赖于此的软件包

-d, --nodeps 略过依赖关系检查

-k, --dbonly 只删除数据库记录,不删除文件

-n, --nosave 同时删除配置文件

-s, --recursive 同时删除 (不会破坏其他软件包的) 依赖关系(-ss·也包括单独指定安装的依赖关系)

-u, --unneeded 同时删除不需要的 (且不会破坏其他软件包的) 依赖关系

--print 仅打印目标而不执行操作

--print-format 指定如何打印目标

--config 指定另外的配置文件

--logfile 指定另外的日志文件

--noconfirm 不询问确认

--noprogressbar 下载文件时不显示进度条

--noscriptlet 不执行安装小脚本

-v, --verbose 循环执行

-- debug 显示除错信息

-r, --root 指定另外的安装根目录

-b, --dbpath 指定另外的数据库位置

--cachedir 指定另外的软件包缓存位置

--arch 设定另外的架构

[zhangy@BlackGhost ~]$ pacman -S --help

用法

pacman {-S --sync} [选项] [软件包]

选项

--asdeps 作为非单独指定安装的软件包安装

--asexplicit 作为单独指定安装的软件包安装

-c, --clean 从缓存目录中删除旧软件包 (-cc 清除所有)

-d, --nodeps 略过依赖关系检查

-f, -force 强制安装,覆盖存在冲突的文件

-g, --groups 查看某软件包组所属的所有软件包

-i, --info 查看软件包信息

-l, --list 查看在该软件库中的软件包清单

-s, --search 按照指定字符串查询远端软件库

-u, --sysupgrade 升级所有已安装的软件包 (-uu 可启用降级)

-w, --downloadonly 下载但不安装/升级软件包

-y, --refresh 从服务器下载新的软件包数据库

--needed 不重新安装已经为最新的软件包

--ignore 升级时忽略某个软件包 (可多次使用)

--ignoregroup 升级时忽略某个软件包组 (可多次使用)

--print 仅打印目标而不执行操作

--print-format 指定如何打印目标

-q, --quiet 在查询或搜索时显示较少的信息

--config 指定另外的配置文件

--logfile 指定另外的日志文件

--noconfirm 不询问确认

--noprogressbar 下载文件时不显示进度条

--noscriptlet 不执行安装小脚本

-v, --verbose 循环执行

-- debug 显示除错信息

-r, --root 指定另外的安装根目录

-b, --dbpath 指定另外的数据库位置

--cachedir 指定另外的软件包缓存位置

--arch 设定另外的架构

[zhangy@BlackGhost ~]$ pacman -U --help

用法

pacman {-U --upgrade} [选项]

选项

--asdeps 作为非单独指定安装的软件包安装

--asexplicit 作为单独指定安装的软件包安装

-d, --nodeps 略过依赖关系检查

-f, -force 强制安装,覆盖存在冲突的文件

-k, --dbonly 添加数据库记录,不安装或保持现存文件

--print 仅打印目标而不执行操作

--print-format 指定如何打印目标

--config 指定另外的配置文件

--logfile 指定另外的日志文件

--noconfirm 不询问确认

--noprogressbar 下载文件时不显示进度条

--noscriptlet 不执行安装小脚本

-v, --verbose 循环执行

-- debug 显示除错信息

-r, --root 指定另外的安装根目录

-b, --dbpath 指定另外的数据库位置

--cachedir 指定另外的软件包缓存位置

--arch 设定另外的架构

实例1

安装包

1,安装或者升级单个软件包

pacman -S mysql

2,有时候在不同的软件仓库中,一个软件包有多个版本(比如extra和community)。你可以选择一个来安装

pacman -S extra/mysql

3,步包数据库并且安装一个软件包

pacman -Sy mysql

实例2

删除包

1,删除单个软件包,保留其全部已经安装的依赖关系

pacman -R mysql

2,删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系:

pacman -Rs mysql

实例3

升级系统

pacman -Syu

实例4

查询包

1,查询可用安装包

pacman -Ss mysql

2,要查询已安装的软件包:

pacman -Qs mysql

实例5

其他用法

1,清理当前未被安装软件包的缓存

pacman -Sc

2,下载包而不安装

pacman -Sw mysql

实例6

# pacman -Rsc package_name   #要删除软件包和所有依赖这个软件包的程序

# pacman -Rdd package_name   #要删除软件包,但是不删除依赖这个软件包的其他程序:

# pacman 删除某些程序时会备份重要配置文件,在其后面加上*.pacsave扩展名。-n 选项可 以删除这些文件

# pacman -Rn package_name

# pacman -Rsn package_name

# pacman -Si package_name  #显示软件包的详尽的信息

# pacman -Qi package_name  #查询本地安装包的详细信息

# pacman -Qii package_name   #使用两个 -i 将同时显示备份文件和修改状态

# pacman -Ql package_name   #要获取已安装软件包所包含文件的列表

# pacman -Qk package_name   #检查软件包安装的文件是否都存在

# pacman -Qo /path/to/file_name  #查询数据库获取某个文件属于哪个软件包

# pacman -Qdt   #要罗列所有不再作为依赖的软件包(孤立orphans)

# pacman -Qet  #要罗列所有明确安装而且不被其它包依赖的软件包

# pactree package_name  #要显示软件包的依赖树

# pactree -r package_name   #检查一个安装的软件包被那些包依赖
Categories
linux

Msys2

msys2 是在windows上的一个 linux兼容层 执行msys2 相当于打开了一个linux环境

msys2 预装了 pacman 作为包管理器 可以执行pacman 快速安装各种软件