RV1126新增驱动IMX415 SENSOR,实现v4l2抓图
RV1126新增驱动IMX415 SENSOR,实现v4l2抓图。
1:内核dts修改
&csi_dphy0 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi_in_ucam0: endpoint@1 {
reg = <1>;
remote-endpoint = <&ucam_out0>;
data-lanes = <1 2 3 4>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
csidphy0_out: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi_csi2_input>;
};
};
};
};
&i2c1 {
status = "okay";
clock-frequency = <400000>;
imx415: imx415@1a {
compatible = "sony,imx415";
reg = <0x1a>;
clocks = <&cru CLK_MIPICSI_OUT>;
clock-names = "xvclk";
power-domains = <&power RV1126_PD_VI>;
pinctrl-names = "rockchip,camera_default";
pinctrl-0 = <&mipicsi_clk0>;
avdd-supply = <&vcc3v3_sys>;
dovdd-supply = <&vcc_1v8>;
dvdd-supply = <&vcc_dvdd>;
/* reset is always pulled high in v10 */
reset-gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_LOW>;
rockchip,camera-module-index = <1>;
rockchip,camera-module-facing = "front";
rockchip,camera-module-name = "YT10092";
rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20";
ir-cut = <&cam_ircut0>;
flash-leds = <&flash_ir>;
port {
ucam_out0: endpoint {
remote-endpoint = <&mipi_in_ucam0>;
data-lanes = <1 2 3 4>;
};
};
};
};
2:Makefile修改
obj-$(CONFIG_VIDEO_IMX415)+= imx415.o
3:Kconfig修改
config VIDEO_IMX415
4:驱动对应的宏开关打开
以上修改后,重新编译内核。重新总体编译。
5:单板启动注册成功
[root@RV1126_RV1109:/]
Media controllerAPI version 4.19.111
Media deviceinformation
------------------------
driver rkcif
model rkcif_mipi_lvds
serial
bus info
hw revision 0x0
driverversion 4.19.111
Device topology
- entity 1:stream_cif_mipi_id0 (1 pad, 4 links)
type Node subtype V4L flags 0
device node name /dev/video0
pad0: Sink
<-"rockchip-mipi-csi2":1 [ENABLED]
<-"rockchip-mipi-csi2":2 []
<-"rockchip-mipi-csi2":3 []
<-"rockchip-mipi-csi2":4 []
- entity 5:stream_cif_mipi_id1 (1 pad, 4 links)
type Node subtype V4L flags 0
device node name /dev/video1
pad0: Sink
<-"rockchip-mipi-csi2":1 []
<- "rockchip-mipi-csi2":2[ENABLED]
<-"rockchip-mipi-csi2":3 []
<-"rockchip-mipi-csi2":4 []
- entity 9:stream_cif_mipi_id2 (1 pad, 4 links)
type Node subtype V4L flags 0
device node name /dev/video2
pad0: Sink
<-"rockchip-mipi-csi2":1 []
<-"rockchip-mipi-csi2":2 []
<-"rockchip-mipi-csi2":3 [ENABLED]
<-"rockchip-mipi-csi2":4 []
- entity 13:stream_cif_mipi_id3 (1 pad, 4 links)
type Node subtype V4L flags 0
device node name /dev/video3
pad0: Sink
<-"rockchip-mipi-csi2":1 []
<-"rockchip-mipi-csi2":2 []
<-"rockchip-mipi-csi2":3 []
<-"rockchip-mipi-csi2":4 [ENABLED]
- entity 17:rockchip-mipi-csi2 (5 pads, 17 links)
type V4L2 subdev subtype Unknownflags 0
device node name /dev/v4l-subdev1
pad0: Sink
[fmt:SGBRG10_1X10/3864x2192field:none
crop.bounds:(12,16)/3840x2160
crop:(12,16)/3840x2160]
<-"rockchip-mipi-dphy-rx":1 [ENABLED]
pad1: Source
[fmt:SGBRG10_1X10/3864x2192field:none
crop.bounds:(12,16)/3840x2160
crop:(12,16)/3840x2160]
->"stream_cif_mipi_id0":0 [ENABLED]
->"stream_cif_mipi_id1":0 []
-> "stream_cif_mipi_id2":0 []
->"stream_cif_mipi_id3":0 []
pad2: Source
[fmt:SGBRG10_1X10/3864x2192field:none
crop.bounds:(12,16)/3840x2160
crop:(12,16)/3840x2160]
-> "stream_cif_mipi_id0":0 []
->"stream_cif_mipi_id1":0 [ENABLED]
->"stream_cif_mipi_id2":0 []
->"stream_cif_mipi_id3":0 []
pad3: Source
[fmt:SGBRG10_1X10/3864x2192field:none
crop.bounds:(12,16)/3840x2160
crop:(12,16)/3840x2160]
->"stream_cif_mipi_id0":0 []
->"stream_cif_mipi_id1":0 []
->"stream_cif_mipi_id2":0 [ENABLED]
-> "stream_cif_mipi_id3":0[]
pad4: Source
[fmt:SGBRG10_1X10/3864x2192field:none
crop.bounds:(12,16)/3840x2160
crop:(12,16)/3840x2160]
->"stream_cif_mipi_id0":0 []
-> "stream_cif_mipi_id1":0[]
->"stream_cif_mipi_id2":0 []
->"stream_cif_mipi_id3":0 [ENABLED]
- entity 23:rockchip-mipi-dphy-rx (2 pads, 2 links)
type V4L2 subdev subtype Unknownflags 0
device node name /dev/v4l-subdev2
pad0: Sink
[fmt:SGBRG10_1X10/3864x2192@10000/300000 field:none
crop.bounds:(12,16)/3840x2160]
<- "m01_f_imx4151-001a":0 [ENABLED]
pad1: Source
[fmt:SGBRG10_1X10/3864x2192@10000/300000field:none
crop.bounds:(12,16)/3840x2160]
->"rockchip-mipi-csi2":0 [ENABLED]
- entity 28:rkcif-mipi-luma (0 pad, 0 link)
type Node subtype V4L flags 0
device node name /dev/video4
- entity 31:m01_f_imx415 1-001a (1 pad, 1 link)
type V4L2 subdev subtype Sensorflags 0
device node name /dev/v4l-subdev3
pad0: Source
[fmt:SGBRG10_1X10/3864x2192@10000/300000 field:none
crop.bounds:(12,16)/3840x2160]
->"rockchip-mipi-dphy-rx":0 [ENABLED]
- entity 35:m01_f_ircut (0 pad, 0 link)
type V4L2 subdev subtype Lens flags1
device node name /dev/v4l-subdev4
[root@RV1126_RV1109:/]#
ioctl:VIDIOC_ENUM_FMT
Type: Video Capture Multiplanar
[0]: 'NV16' (Y/CbCr 4:2:2)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[1]: 'NV61' (Y/CrCb 4:2:2)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[2]: 'NV12' (Y/CbCr 4:2:0)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[3]: 'NV21' (Y/CrCb 4:2:0)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[4]: 'YUYV' (YUYV 4:2:2)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[5]: 'YVYU' (YVYU 4:2:2)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[6]: 'UYVY' (UYVY 4:2:2)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[7]: 'VYUY' (VYUY 4:2:2)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[8]: 'RGB3' (24-bit RGB 8-8-8)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[9]: 'RGBP' (16-bit RGB 5-6-5)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[10]: 'BGRH' (18-bit BGRX 6-6-6-14)
Size: Stepwise 64x64 - 3864x2192 withstep 8/8
[11]: 'RGGB' (8-bit Bayer RGRG/GBGB)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[12]: 'GRBG' (8-bit Bayer GRGR/BGBG)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[13]: 'GBRG' (8-bit Bayer GBGB/RGRG)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[14]: 'BA81' (8-bit Bayer BGBG/GRGR)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[15]: 'RG10' (10-bit Bayer RGRG/GBGB)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[16]: 'BA10' (10-bit Bayer GRGR/BGBG)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[17]: 'GB10' (10-bit Bayer GBGB/RGRG)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[18]: 'BG10' (10-bit Bayer BGBG/GRGR)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[19]: 'RG12' (12-bit Bayer RGRG/GBGB)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[20]: 'BA12' (12-bit Bayer GRGR/BGBG)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[21]: 'GB12' (12-bit Bayer GBGB/RGRG)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[22]: 'BG12' (12-bit Bayer BGBG/GRGR)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[23]: 'BYR2' (16-bit Bayer BGBG/GRGR)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[24]: 'Y16 ' (16-bit Greyscale)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[25]: 'GREY' (8-bit Greyscale)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[26]: 'EBD8' (Embedded data 8-bit,compressed)
Size: Stepwise 64x64 -3864x2192 with step 8/8
[27]: 'SPD6' (Shield pix data 16-bit,compressed)
Size: Stepwise 64x64 -3864x2192 with step 8/8
6:v4l2抓图成功
[root@RV1126_RV1109:/]#v4l2-ctl -d /dev/video0 --set-fmt-video=width=3840,heigh
t=2160,pixelformat=SGBRG10_1X10\--stream-mmap=3 \--stream-skip=3 \--stream-to=/
tmp/cif888.out\--stream-count=1 \--stream-poll
[ 216.222320] rkcif_mipi_lvds: stream[0] startstreaming
[ 216.222446] rockchip-mipi-csi2ffb10000.mipi-csi2: stream on, src_sd: d2dfee3b, sd_name:rockchip-mipi-dphy-rx
[ 216.222457] rockchip-mipi-csi2ffb10000.mipi-csi2: stream ON
[ 216.222484] rockchip-mipi-dphy-rxff4b0000.csi-dphy: stream on:1
[ 216.222500] rockchip-mipi-dphy-rx:data_rate_mbps 892
[ 216.223557] rockchip-mipi-dphy-rxff4b0000.csi-dphy: stream on:1
<<<[ 216.473292] rkcif_mipi_lvds: not activebuffer, skip current frame, mipi/lvds stream[0]
[ 216.506625] rkcif_mipi_lvds: not activebuffer, skip current frame, mipi/lvds stream[0]
[ 216.539958] rkcif_mipi_lvds: not activebuffer, skip current frame, mipi/lvds stream[0]
[ 216.573304] rkcif_mipi_lvds: not activebuffer, skip current frame, mipi/lvds stream[0]
[ 216.606626] rkcif_mipi_lvds: not activebuffer, skip current frame, mipi/lvds stream[0]
[ 216.639971] rkcif_mipi_lvds: not activebuffer, skip current frame, mipi/lvds stream[0]
[ 216.673278] rkcif_mipi_lvds: not activebuffer, skip current frame, mipi/lvds stream[0]
[ 216.706639] rkcif_mipi_lvds: not activebuffer, skip current frame, mipi/lvds stream[0]
[ 216.739943] rkcif_mipi_lvds: not activebuffer, skip current frame, mipi/lvds stream[0]
[ 216.773291] rkcif_mipi_lvds: not activebuffer, skip current frame, mipi/lvds stream[0]
[ 216.806637] rkcif_mipi_lvds: not activebuffer, skip current frame, mipi/lvds stream[0]
[ 216.839973] rkcif_mipi_lvds: not activebuffer, skip current frame, mipi/lvds stream[0]
[ 216.873305] rkcif_mipi_lvds: not activebuffer, skip current frame, mipi/lvds stream[0]
[ 216.906639] rkcif_mipi_lvds: not activebuffer, skip current frame, mipi/lvds stream[0]
[ 216.939971] rkcif_mipi_lvds: not activebuffer, skip current frame, mipi/lvds stream[0]
[ 216.973304] rkcif_mipi_lvds: not activebuffer, skip current frame, mipi/lvds stream[0]
<[ 216.987827] rkcif_mipi_lvds: stream[0] startstopping
[ 217.006837] rockchip-mipi-csi2ffb10000.mipi-csi2: stream off, src_sd: d2dfee3b, sd_name:rockchip-mipi-dphy-rx
[ 217.006906] rockchip-mipi-csi2ffb10000.mipi-csi2: stream OFF
[ 217.006944] rockchip-mipi-dphy-rxff4b0000.csi-dphy: stream on:0
[ 217.008102] rockchip-mipi-dphy-rxff4b0000.csi-dphy: stream on:0
[ 217.009920] rkcif_mipi_lvds: stream[0]stopping finished
7:抓图文件查看
[root@RV1126_RV1109:/tmp]#ls -l
total 16512
drwxr-xr-x 2 avahiavahi 40 Jan 1 00:00 avahi-autoipd
-rw-r--r-- 1root root 16588800 Jan 1 00:03 cif888.out
-rw-r--r-- 1root root 66024 Jan 1 00:00 cl_viv_vx_ext.h
drwxr-xr-x 2root root 60 Jan 1 00:00 dbus
-rw-r--r-- 1root root 0 Jan 1 00:00 dnsmasq.leases
---------- 1root root 6 Jan 1 00:00 loglevel
-rw-r--r-- 1root root 25687 Jan 1 00:04 messages
-rw-r--r-- 1root root 204896 Jan 1 00:03 messages.0
-rw-r--r-- 1root root 1349 Jan 1 00:00 mountall.log
drwxr-xr-x 7root root 180 Jan 1 00:00 nginx
-rw-r--r-- 1root root 55 Jan 1 00:00 resolv.conf
drwxr-xr-x 2root root 60 Jan 1 00:00 subsys
drwx------ 2root root 40 Jan 1 00:00 tmp.4soNzzu8dM
8:至此驱动调试完成,欢迎讨论交流
相关文章:
RV1126新增驱动IMX415 SENSOR,实现v4l2抓图
RV1126新增驱动IMX415 SENSOR,实现v4l2抓图。1:内核dts修改&csi_dphy0 {status "okay";ports {#address-cells <1>;#size-cells <0>;port0 {reg <0>;#address-cells <1>;#size-cells <0>;mipi_in_uca…...
Hive 数据倾斜
数据倾斜,即单个节点任务所处理的数据量远大于同类型任务所处理的数据量,导致该节点成为整个作业的瓶颈,这是分布式系统不可能避免的问题。从本质来说,导致数据倾斜有两种原因,一是任务读取大文件,二是任务…...
2月刚上岸字节跳动测试岗面经
这时候发应该还不算太晚,金三银四找工作的小伙伴需要的可以看看。 一、测试工程师的工作是什么? 测试工程师简单点说就是找bug,然后反馈给开发人员,不要小看这个工作。 首先很明显的bug开发人员有时候自己就能找到,测…...
图解KMP算法
子串的定位操作通常称作串的模式匹配。你可以理解为在一篇英语文章中查找某个单词是否存在,或者说在一个主串中寻找某子串是否存在。朴素的模式匹配算法假设我们要从下面的主串S "goodgoogle" 中,找到T "google" 这个子串的位置。…...
Java Map和Set
目录1. 二叉排序树(二叉搜索树)1.1 二叉搜索树的查找1.2 二叉搜索树的插入1.3 二叉搜索树的删除(7种情况)1.4 二叉搜索树和TreeMap、TreeSet的关系2. Map和Set的区别与联系2.1 从接口框架的角度分析2.2 从存储的模型角度分析【2种模型】3. 关于Map3.1 Ma…...
【C/C++ 数据结构】-八大排序之 冒泡排序快速排序
作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【C/C数据结构与算法】 分享:那我便像你一样,永远躲在水面之下,面具之后! ——《画江湖之不良人》 主要内容:八大排序选…...
苹果ipa软件下载网站和软件的汇总
随着时间的流逝,做苹果版软件安装包下载网站和软件的渐渐多了起来。 当然,已经关站、停运、下架、倒闭的苹果软件下载网站和软件我就不说了,也不必多说那些关站停运下架倒闭的网站和软件了。 下面我统计介绍的就是苹果软件安装包下载网站和软…...
深度学习-【语义分割】学习笔记4 膨胀卷积(Dilated convolution)
文章目录膨胀卷积为什么需要膨胀卷积gridding effect连续使用三次膨胀卷积——1连续使用三次膨胀卷积——2连续使用三次膨胀卷积——3Understanding Convolution for Semantic Segmentation膨胀卷积 膨胀卷积,又叫空洞卷积。 左边是普通卷积,右边是膨胀…...
【10】SCI易中期刊推荐——工程技术-计算机:人工智能(中科院2区)
🚀🚀🚀NEW!!!SCI易中期刊推荐栏目来啦 ~ 📚🍀 SCI即《科学引文索引》(Science Citation Index, SCI),是1961年由美国科学信息研究所(Institute for Scientific Information, ISI)创办的文献检索工具,创始人是美国著名情报专家尤金加菲尔德(Eugene Garfield…...
模电计算反馈系数,有时候转化为计算电阻分压的问题
模电计算反馈系数,有时候转化为计算电阻分压的问题 如果是电压反馈,F的除数是Uo 如果是电流反馈,F的除数是Io 串联反馈,F的分子是Uf 并联反馈,F的分子是If 点个赞呗,大家一起加油学习!...
专治Java底子差,不要再认为泛型就是一对尖括号了
文章目录一、泛型1.1 泛型概述1.2 集合泛型的使用1.2.1 未使用泛型1.2.2 使用泛型1.3 泛型类1.3.1 泛型类的使用1.2.2 泛型类的继承1.4 泛型方法1.5 泛型通配符1.5.1 通配符的使用1)参数列表带有泛型2)泛型通配符1.5.2 泛型上下边界1.6 泛型的擦除1.6.1 …...
PayPal轮询收款的那些事儿
想必做跨境电商独立站的小伙伴,对于PayPal是再熟悉不过了,PayPal是一个跨国际贸易的支付平台,对于做独立站的朋友来说跨境收款绝大部分都是依赖PayPal以及Stripe条纹了。简单来说PayPal跟国内的支付宝有点类似,但是PayPal它是跨国…...
【Linux】项目自动化构建工具——make/Makefile
目录 1.make与Makefile的关系 Makefile make 项目清理 clean .PHONY 当我们编写一个较大的软件项目时,通常需要将多个源文件编译成可执行程序或库文件。为了简化这个过程,我们可以使用 make 工具和 Makefile 文件。Makefile 文件可以帮助我们自动…...
成本降低90%,OpenAI正式开放ChαtGΡΤ
今天凌晨,OpenAI官方发布ChαtGΡΤ和Whisper的接囗,开发人员现在可以通过API使用最新的文本生成和语音转文本功能。OpenAI称:通过一系列系统级优化,自去年12月以来,ChαtGΡΤ的成本降低了90%;现在OpenAI用…...
hls.js如何播放m3u8文件(实例)?
HLS(HTTP Live Streaming)是一种视频流传输协议,是苹果推出的适用于iOS与macOS平台的流媒体传输协议。它将视频分割成若干个小段,每个小段大小一般为2~10秒不等,并通过HTTP协议进行传输。通过在每个小段之间插入若干秒…...
大数据平台建设方法论集合
文章目录从0到1建设大数据解决方案大数据集群的方法论数据集成方法论机器学习算法平台方法论BI建设的方法论云原生大数据的方法论低代码数据中台的方法论大数据SRE运维方法论批流一体化建设的方法论数据治理的方法论湖仓一体化建设的方法论数据分析挖掘方法论数字化转型方法论数…...
25- 卷积神经网络(CNN)原理 (TensorFlow系列) (深度学习)
知识要点 卷积神经网络的几个主要结构: 卷积层(Convolutions): Valid :不填充,也就是最终大小为卷积后的大小. Same:输出大小与原图大小一致,那么N 变成了N2P. padding-零填充. 池化层(Subsampli…...
把数组里面数值排成最小的数
问题描述:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{12, 567},则输出这两个能排成的最小数字12567。请给出解决问题的算法,并证明该算法。 思路:先将…...
云his系统源码 SaaS应用 基于Angular+Nginx+Java+Spring开发
云his系统源码 SaaS应用 功能易扩 统一对外接口管理 一、系统概述: 本套云HIS系统采用主流成熟技术开发,软件结构简洁、代码规范易阅读,SaaS应用,全浏览器访问前后端分离,多服务协同,服务可拆分ÿ…...
小红书场景营销怎么做?场景营销主要模式有哪些
小红书作为新兴媒体领域的佼佼者,凭借着生动,直观,代入感等元素的分享推荐收揽了巨额的流量。但是,随着时代的脚步逐渐加快,发展和变革随之涌来,传统的营销已经无法满足。所以场景营销就出现了。今天就来和…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
sshd代码修改banner
sshd服务连接之后会收到字符串: SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢? 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头,…...
pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决
问题: pgsql数据库通过备份数据库文件进行还原时,如果表中有自增序列,还原后可能会出现重复的序列,此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”,…...
