T536主板双摄像头的接口的使用-盈鹏飞嵌入式

Linux Swap 子系统:架构、内存管理与虚拟化 Swap Linux Swap机制通过将不活跃内存页移至磁盘或压缩内存,扩展系统有效内存容量,缓解内存压力。传统架构中,逻辑Swap槽与物理存储绑定,导致资源浪费,尤其在使用Zswap等压缩技术时。为此,Vswap与Xswap提出虚拟化方案:前者以XArray实现灵活映射,支持多后端迁移;后者采用稀疏映射,简化管理但容量固定。二者在架构设计、资源记账与动态扩展上各有权衡,反映了内核开发中对性能、可维护性与灵活性的深层考量。 阅读详情

CoM-T536产品特性:

  • 采用Allwinner公司Cortex-A55四核T536处理器,最高速度为1.6GHZ;
  • 支持2TOPS NPU,仅特定型号支持;
  • 支持4K/25fps H.264视频编码,支持4K/15fps MJPEG编码;
  • 支持1-4G Bytes LPDDR4 SDRAM;
  • 支持EMMC 4G-64G大容量电子盘,可启动;或支持SPI NAND启动;
  • 支持双通道LVDS,分辨率最高1920x1080@60fps;支持MIPI DSI显示, 分辨率最高1920x1020@60fps;
  • 支持PCIE2.1;支持最多17路UART;支持四路CANFD;支持双路千兆以太网;
  • 稳定的操作系统的支持,可预装LINUX 5.10/Ubuntu 20.04
  • 邮票孔198POS设计, 尺寸为:53.5*45MM

CoM-T536功能图:

STK-T536评估板功能图:

Camera摄像头测试

STK-T536评估板支持两个CSI接口的摄像头,它们分别是CN27和CN28。其中CN27支持OV5645摄像头,该接口使用的是MCSI/C信号(2Lanes);CN28支持OV1385X摄像头该接口使用的是MCSI/A/B信号(4Lanes)。原理和接口位置见下图:

   

按照下图接好摄像头,注意摄像头的1脚与接口件的1脚对应:

使用csi_test_mplane进行摄像头测试

摄像头接入后,评估板上电,正常的终端信息如下:

[   12.560404] sunxi:vin:[WARN]: sensor_helper_probe: cannot get sensor0_cameravdd supply, setting it to NULL!
[   12.571434] sunxi:vin:[WARN]: sensor_helper_probe: cannot get sensor0_iovdd supply, setting it to NULL!
[   12.582211] sunxi:vin:[WARN]: sensor_helper_probe: cannot get sensor0_avdd supply, setting it to NULL!
[   12.592790] sunxi:vin:[WARN]: sensor_helper_probe: cannot get sensor0_dvdd supply, setting it to NULL!
[   12.603477] sunxi:vin:[WARN]: sensor_helper_probe: cannot get sensor1_cameravdd supply, setting it to NULL!
[   12.614487] sunxi:vin:[WARN]: sensor_helper_probe: cannot get sensor1_iovdd supply, setting it to NULL!
[   12.625043] [drm] skip fbdev plane update because plane used by userspace
[   12.625059] sunxi:vin:[WARN]: sensor_helper_probe: cannot get sensor1_avdd supply, setting it to NULL!
[   12.643127] sunxi:vin:[WARN]: sensor_helper_probe: cannot get sensor1_dvdd supply, setting it to NULL!
[   12.686390] vin_isp 5900000.isp: Adding to iommu group 0
[   12.695062] vin_isp 5800800.vind:isp@4: Adding to iommu group 0
[   12.704469] vin_isp 5800800.vind:isp@5: Adding to iommu group 0
[   12.725980] vin_scaler 5910000.scaler: Adding to iommu group 0
[   12.733253] vin_scaler 5910400.scaler: Adding to iommu group 0
[   12.740529] vin_scaler 5910800.scaler: Adding to iommu group 0
[   12.747427] [drm] skip fbdev plane update because plane used by userspace
[   12.747824] vin_scaler 5910c00.scaler: Adding to iommu group 0
[   12.762801] sunxi-vin-core 5830000.vinc: Adding to iommu group 0
[   12.770188] sunxi-vin-core 5831000.vinc: Adding to iommu group 0
[   12.777559] sunxi-vin-core 5832000.vinc: Adding to iommu group 0
[   12.787505] sunxi:vin:[WARN]: get csi mipi clk fail
[   12.793041] sunxi:vin:[WARN]: get csi mipi src clk fail
[   12.804898] PWR_ON!
[   12.837818] sensor_init
[   12.840758] eRet:0, 0x300a:0x0, times_out:3
[   13.065696] eRet:0, 0x300b:0xd8, times_out:3
[   13.270531] PWR_OFF!
[   13.397954] ov5645 id:5645
[   13.404621] sunxi:vin:[INFO]: vinc1 is null
[   13.409376] sunxi:vin:[INFO]: vinc2 is null
[   13.414129] sunxi:vin:[INFO]: vinc3 is null
[   13.419237] sunxi:vin:[INFO]: vinc5 is null
[   13.424019] sunxi:vin:[INFO]: vinc6 is null
[   13.428850] sunxi:vin:[INFO]: vinc7 is null
[   13.433584] sunxi:vin:[INFO]: vinc9 is null
[   13.438292] sunxi:vin:[INFO]: vinc10 is null
[   13.443101] sunxi:vin:[INFO]: vinc11 is null
[   13.447989] sunxi:vin:[INFO]: vinc12 is null
[   13.452816] sunxi:vin:[INFO]: vinc13 is null
[   13.457628] sunxi:vin:[INFO]: vinc14 is null
[   13.462483] sunxi:vin:[INFO]: vinc15 is null

如果摄像头接入不正确,会出现I2c通信错误,信息如下:

[   11.636894] sunxi:twi-2512000.twi:[ERR]: drv-mode: Timeout when sending 9th SCL clk
[   11.645459] sunxi:twi-2512000.twi:[ERR]: drv mode: TWI BUS error state is drv:0x1 eng:0x20
[   11.654911] sunxi:twi-2512000.twi:[ERR]: drv-mode: xfer failed (dev addr:0x36)
[   11.663173] sunxi:twi-2512000.twi:[ERR]: drv-mode: Timeout when sending 9th SCL clk
[   11.671734] sunxi:twi-2512000.twi:[ERR]: drv mode: TWI BUS error state is drv:0x1 eng:0x20
[   11.681090] sunxi:twi-2512000.twi:[ERR]: drv-mode: xfer failed (dev addr:0x36)
[   11.689351] sunxi:twi-2512000.twi:[ERR]: drv-mode: Timeout when sending 9th SCL clk
[   11.697912] sunxi:twi-2512000.twi:[ERR]: drv mode: TWI BUS error state is drv:0x1 eng:0x20
[   11.707250] sunxi:twi-2512000.twi:[ERR]: drv-mode: xfer failed (dev addr:0x36)
[   11.715397] sunxi:vin:[INFO]: [VIN_DEV_I2C]ov13855_mipi read retry 3, read addr is 0x300a
[   11.724600] eRet:-22, 0x300a:0x0, times_out:3
[   11.932405] sunxi:twi-2512000.twi:[ERR]: drv-mode: Timeout when sending 9th SCL clk
[   11.940984] sunxi:twi-2512000.twi:[ERR]: drv mode: TWI BUS error state is drv:0x1 eng:0x20
[   11.950234] sunxi:twi-2512000.twi:[ERR]: drv-mode: xfer failed (dev addr:0x36)
[   11.958614] sunxi:twi-2512000.twi:[ERR]: drv-mode: Timeout when sending 9th SCL clk
[   11.967185] sunxi:twi-2512000.twi:[ERR]: drv mode: TWI BUS error state is drv:0x1 eng:0x20
[   11.976432] sunxi:twi-2512000.twi:[ERR]: drv-mode: xfer failed (dev addr:0x36)
[   11.984846] sunxi:twi-2512000.twi:[ERR]: drv-mode: Timeout when sending 9th SCL clk
[   11.993415] sunxi:twi-2512000.twi:[ERR]: drv mode: TWI BUS error state is drv:0x1 eng:0x20
[   12.002658] sunxi:twi-2512000.twi:[ERR]: drv-mode: xfer failed (dev addr:0x36)
[   12.011232] sunxi:vin:[INFO]: [VIN_DEV_I2C]ov13855_mipi read retry 3, read addr is 0x300a
[   12.020477] eRet:-22, 0x300a:0x0, times_out:2
[   12.231950] sunxi:twi-2512000.twi:[ERR]: drv-mode: Timeout when sending 9th SCL clk
[   12.240525] sunxi:twi-2512000.twi:[ERR]: drv mode: TWI BUS error state is drv:0x1 eng:0x20
[   12.249769] sunxi:twi-2512000.twi:[ERR]: drv-mode: xfer failed (dev addr:0x36)
[   12.257979] sunxi:twi-2512000.twi:[ERR]: drv-mode: Timeout when sending 9th SCL clk
[   12.266547] sunxi:twi-2512000.twi:[ERR]: drv mode: TWI BUS error state is drv:0x1 eng:0x20
[   12.275790] sunxi:twi-2512000.twi:[ERR]: drv-mode: xfer failed (dev addr:0x36)
[   12.284100] sunxi:twi-2512000.twi:[ERR]: drv-mode: Timeout when sending 9th SCL clk
[   12.292668] sunxi:twi-2512000.twi:[ERR]: drv mode: TWI BUS error state is drv:0x1 eng:0x20
[   12.301986] sunxi:twi-2512000.twi:[ERR]: drv-mode: xfer failed (dev addr:0x36)
[   12.310142] sunxi:vin:[INFO]: [VIN_DEV_I2C]ov13855_mipi read retry 3, read addr is 0x300a
[   12.319494] eRet:-22, 0x300a:0x0, times_out:1
[   12.544328] chip found is not an target chip.
[   12.549304] PWR_OFF!
[   12.579805] sunxi:vin:[ERR]: registering ov13855_mipi, No such device!
[   12.616632] Bluetooth: HCI UART driver ver 2.3
[   12.621683] Bluetooth: HCI UART protocol H4 registered
[   12.648340] sunxi:twi-2513000.twi:[ERR]: drv-mode: Timeout when sending 9th SCL clk
[   12.656915] sunxi:twi-2513000.twi:[ERR]: drv mode: TWI BUS error state is drv:0x1 eng:0x20
[   12.666160] sunxi:twi-2513000.twi:[ERR]: drv-mode: xfer failed (dev addr:0x3c)
[   12.674487] sunxi:vin:[ERR]: [VIN_DEV_I2C_ERR]sensor_write error!
[   12.681347] sunxi:vin:[ERR]: [VIN_DEV_I2C_ERR]ov5645_mipi sensor write array error, array_size 243!
[   12.692836] sunxi:twi-2513000.twi:[ERR]: drv-mode: Timeout when sending 9th SCL clk
[   12.701409] sunxi:twi-2513000.twi:[ERR]: drv mode: TWI BUS error state is drv:0x1 eng:0x20
[   12.710652] sunxi:twi-2513000.twi:[ERR]: drv-mode: xfer failed (dev addr:0x3c)
[   12.718820] sunxi:twi-2513000.twi:[ERR]: drv-mode: Timeout when sending 9th SCL clk
[   12.727388] sunxi:twi-2513000.twi:[ERR]: drv mode: TWI BUS error state is drv:0x1 eng:0x20
[   12.736633] sunxi:twi-2513000.twi:[ERR]: drv-mode: xfer failed (dev addr:0x3c)

摄像头连接正确后,执行如下命令可查看到生成2个节点video0和video4表示正常。

Target# ls dev/video*

这些节点对应的接口如下:

节点

接口

备注

video0

CN28

OV13850摄像头

video4

CN27

OV5645摄像头

csi_test_mplane是全志提供验证摄像头的软件, csi_test_mplane指令介绍如下:

./csi_test_mplane 0 0 640 480 ./ 1 20 30 0
@arg1:  video节点号
@arg2:  rear/front(默认:0)
@arg3:  out_width
@arg4:  out_height
@arg5:  数据保存路径
@arg6:  数据格式(数据格式如下图所示)
@arg7:  数据保存帧数
@arg8:  帧率
@arg9:  WDR模式(0:normal  1:wdr)

接下来我们以video0为例,通过video0节点获取摄像头视频数据并存放在指定目录/tmp/,对于1080P的摄像头来说,指令如下;

Target#./csi_test_mplane 0 0 1920 1080 /media/sda1  2 100

指令执行终端信息如下:

root@T536-embfly:/extra_test# ./csi_test_mplane 0 0 1920 1080 /tmp  2 100
open /dev/video0 fd = 3
[  120.311589] PWR_ON!
[  120.346053] sensor_init
[  120.349077] eRet:0, 0x300a:0x0, times_out:3
[  120.574257] eRet:0, 0x300b:0xd8, times_out:3
resolution got from sensor = 1920*1080 num_planes = 1
[  120.811714] sensor_s_stream on = 1, 2112*1568 fps: 30 code: 3007
VIDIOC_STREAMON ok
[  153.963718] sensor_s_stream on = 0, 2112*1568 fps: 30 code: 3007
VIDIOC_STREAMOFF ok
mode 2 test done at the 0 time!![  153.979179] PWR_OFF!

指令执行后,如果指令执行执行正常,可以看到/tmp目录下保存二进制的图像数据 fb0_yuv1_1920_1080.bin 文件(如果是针对video4节点,那文件是fb4_yuv1_1920_1080.bin)。最后可通过RawViewer 等软件查看图像数据,注意看图时,看图软件中所设置的分辨率需注意按16字节进行对齐(向上取整),如使用 RawViewer 查看 1920x1080 图像时,需将看图尺寸设置为1920x1088,否则可能会看到花屏或抖动的图像。

点击“打开文件”按钮后,再点击“播放”按钮后进行视频播放。

使用camera_test_dual (QT)程序进行摄像头测试

camera_test_dual程序是qt图形界面程序,它最多可以预览两路摄像头,只要在运行时指定摄像头即可。

1)预览一路摄像头的指令和运行终端信息如下:

root@T536-embfly:/root# camera_test_dual /dev/video0
QStandardPaths: wrong permissions on runtime directory /dev/shm, 0755 instead of 0700
Unable to query physical screen size, defaulting to 100 dpi. To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSIC
AL_HEIGHT (in millimeters). fmt.type: 9
fmt.fmt.pix.width: 1280
fmt.fmt.pix.height: 720
fmt.fmt.pix.pixelformat: 842093913
fmt.fmt.pix.colorspace: 1920
fmt.fmt.pix.quantization: 0
fmt.fmt.pix.xfer_func: 0
fmt.fmt.pix.ycbcr_enc: 0

csi预览画面会显示在屏幕上,如图所示:

2)预览双路摄像头的指令如下:

root@T536-embfly:/root# camera_test_dual /dev/video0 /dev/video4

另外,我们的固件已经把camera_test_dual程序设置为自启动,以下是启动camera_test_dual的脚本S98_app_demo.sh:

#!/bin/sh

. /etc/qtenv_capx.sh && ./extra_test/camera_test_dual /dev/video0 /dev/video4 &
#lv_examples 0 &

其中qtenv_capx.sh脚本是电容触摸屏识别和QT运行环境配置脚本,脚本内容如下:

export  QTDIR=/usr/lib
if [ -d $QTDIR ];then 
	export QT_ROOT=$QTDIR
    export PATH=$QTDIR/bin:$PATH
    export LD_LIBRARY_PATH=$QTDIR/lib:/usr/lib/cedarx/:$LD_LIBRARY_PATH

    export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/qt/plugins
    export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
    export QT_QPA_FONTDIR=$QT_ROOT/fonts

	export QML_IMPORT_PATH=$QTDIR/qml 
	export QML2_IMPORT_PATH=$QTDIR/qml 

	#TouchDevice=gt9xxnew_ts
	for InputDevices in /sys/class/input/event*
	do
		DeviceName=`cat $InputDevices/device/name`
	        # USB ILITEK
		if [[ "$DeviceName" == "ILITEK ILITEK-TP" ]];then
		   TouchDeviceNum=${InputDevices##*event}
#		   export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event$TouchDeviceNum
#		   echo "add "/dev/input/event$TouchDeviceNum "to Qt Application."
		   break
            # I2C Goodix
		elif [ "$DeviceName" == "gt9xxnew_ts" ];then
		   TouchDeviceNum=${InputDevices##*event}
#		   export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event$TouchDeviceNum
#		   echo "add "/dev/input/event$TouchDeviceNum "to Qt Application."
		   break 
		#for hid-multi-touch(wks)
		elif [[ "$DeviceName" == "wch.cn USB2IIC_CTP_CONTROL" ]];then
		   TouchDeviceNum=${InputDevices##*event}
#		   export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event$TouchDeviceNum
#		   echo "add "/dev/input/event$TouchDeviceNum "to Qt Application."
		   break 
		fi 
	done

	if [ ! -n "$TouchDeviceNum" ]; then
		export QT_QPA_GENERIC_PLUGINS=evdevmouse,evdevkeyboard
		echo "Error:Input device $TouchDevice can not be found,plz use mouse & keyboard!"
	else
		#config for lvgl touchscreen lv_drv_conf.h 
		ln -sf /dev/input/event$TouchDeviceNum /dev/input/touchscreen
		export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event$TouchDeviceNum
		export QT_QPA_GENERIC_PLUGINS=evdevtouch:/dev/input/event$TouchDeviceNum,evdevmouse,evdevkeyboard
		echo "add "/dev/input/event$TouchDeviceNum "to Qt Application."

	fi

	export QT_QPA_PLATFORM=linuxfb
#	export QT_QPA_GENERIC_PLUGINS=evdevtouch
	#export QT_QPA_EGLFS_INTEGRATION=eglfs_mali
	#export QT_QPA_FB_HIDECURSOR=1
	#export QT_QPA_EGLFS_HIDECURSOR=1
	#export QT_QPA_EGLFS_ROTATION=90
	export QT_QPA_FB_NO_LIBINPUT=1

	#export QT_QPA_PLATFORM=eglfs
    #export QT_QPA_GENERIC_PLUGINS=evdevtouch
    #export QT_QPA_EGLFS_INTEGRATION=eglfs_mali
    #export QT_QPA_FB_HIDECURSOR=1
    #export QT_QPA_EGLFS_HIDECURSOR=1
    #export QT_QPA_EGLFS_ROTATION=90

    export QWS_MOUSE_PROTO=
    export DBUS_SESSION_BUS_ADDRESS=`cat /tmp/dbusaddr`
    mkdir -p /dev/shm
    ulimit -c unlimited
    echo "find qt5 installed done"
fi

基于CRU和WorldClim的高分辨率(1km)气候数据生成 阅读详情

相关推荐

BK7238(XH-WB3S)固件烧录实战:从AT固件选择到稳定下载全解析

本文详细解析了BK7238(XH-WB3S)模组固件烧录的全过程,从AT固件版本选择到稳定下载的实战技巧。重点介绍了烧录前的准备工作、硬件连接的正确姿势、烧录软件的实战技巧以及疑难问题排查指南,帮助开发者高效完成BK7238模组的固件烧录。

weixin_29159441的博客 246

理解 Linux 动态库加载:LD_LIBRARY_PATH

flyfish

二分掌柜的 318

宝塔面板添加站点及运营商SSL免费证书的申请与使用

本文详细介绍在宝塔面板下如何正确添加站点、配置站点,及在运营商如何申请免费SSL证书,将其配置到宝塔站点里。 给你的网站加一把锁,教你免费SSL证书申请,配置到自己的网站中。 环境:Ubuntu server 18 工具:宝塔控制面板 平台:阿里云 Web服务器:Nginx 宝塔:https://www.bt.cn/ 阿里云:https://www.aliyun.com/ 腾讯云:https://cloud.tencent.com/ 要求: 1.宝塔控制面板搭建完毕。 2掌握域名解析的原理。 3.了解ht

贺兰山长老 5056

Linux 磁盘满了怎么排查?df / du / find 三步定位大文件

Linux 磁盘满排查三步法:df -h 定位分区、du 逐层下钻、find 按大小和时间抓大文件,附 inode 耗尽、文件已删未释放、du 与 df 不一致等经典坑的解决方案。

weixin_38291577的博客 214

3D医学影像分割新突破:手把手教你用MedSAM2快速标注CT/MRI数据(附3D Slicer插件配置)

本文详细介绍了如何利用MedSAM2模型进行3D医学影像分割,包括从环境准备到3D Slicer插件配置的全流程。通过实战案例和技巧分享,帮助医疗从业者快速掌握CT/MRI数据的高效标注方法,提升医学影像分析的准确性和效率。

ujm5678901的博客 298

LIN总线从入门到精通:低成本汽车通信协议原理与实战

在汽车电子和嵌入式系统中,串行通信协议是实现分布式控制的关键技术。其中,LIN(Local Interconnect Network)总线作为一种专为低成本应用设计的单主多从网络协议,其核心原理在于通过简化的“领导-汇报”通信模式,在满足车身控制、传感器数据采集等场景需求的同时,将硬件与布线成本降至最低。LIN总线采用标准化的帧结构,包含间隔场、同步场和受保护标识符场,并依赖调度表来管理通信时序,确保了网络的确定性与可靠性。其技术价值在于为车窗、座椅、灯光等非安全关键系统提供了高性价比的解决方案,是构建分层

weixin_29185167的博客 260

Linux-iostat命令详解

Linux命令学习记录

m0xin的博客 82

【DRAM存储器四十六】LPDDR5介绍--基本操作之行操作、读、写

简述LPDDR5的行操作和读写时序

highman110的博客 759

Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位

iptables 四表五链模型、firewalld zone 信任级别、云安全组与主机防火墙的关系与优先级,避坑改了防火墙把自己挡在服务器外面的翻车事故。

2502_91473995的博客 283

PCIe 互联的芯片-- P2P(Peer-to-Peer)

PCIe设备间支持P2P直连通信,但需满足硬件、固件和软件三方面条件。硬件需CPU/芯片组和PCIe交换器支持P2P,BIOS需开启相关设置,操作系统和驱动也要适配。消费级GPU通常禁用此功能,且PCIe P2P性能(128GB/s带宽)远低于NVLink(900GB/s)。常见限制包括ACS阻断、IOMMU隔离和带宽瓶颈。可通过nvidia-smi或NCCL测试验证P2P是否生效。该技术适合异构设备通信,但需注意配置调优。

MHD0815的博客 679

自动驾驶模拟器:基于 Python + Carla,在家也能训练一个“L4 级”自动驾驶 AI 模型

市面上有很多模拟器(AirSim, LGSVL),但 Carla 是目前学术界和工业界最主流的选择。画质强:基于 UE4,光影、天气(下雨、夕阳)极其逼真,这对训练视觉模型至关重要。API 爽:完全使用 Python 控制,对 AI 工程师极度友好。资产多:内置各种车辆、行人、交通信号灯、城市地图。编写 Python 代码,让车自己在城市里跑,通过摄像头看到路况,自己决定怎么打方向盘。通过 Carla,我们把价值数百万的自动驾驶测试场搬进了电脑。

BUG猿的博客 267

【Linux】APT 本地 deb 安装与 `-f` 参数总结笔记

apt install ./xx.deb 可自动解析并安装依赖,无需 -f;-f 仅用于修复已损坏的依赖状态,非首次安装时必需。apt install -f 可单独运行,修复 broken dependencies。两者职责不同:前者是安装与依赖解决,后者是故障修复。完全离线时需提前准备依赖包或本地源。

hknaruto的专栏 205

基于VisionMaster实现数据实时存储至MySQL (二)

摘要:之前的分享主要聚焦于简单的一维数据实时存储。但在做缺陷检测项目时,情况往往更加复杂:一张检测图像中可能同时存在多个缺陷,每个缺陷都有一组独立的核心参数(如质心、长短轴、面积等)。如何在 MySQL 中记录这些成组出现的缺陷数据,而不只是简单的单条记录?

haier123888的博客 225

Linux rm 误删文件恢复实操教程

Linux使用rm删除文件时,并不会直接抹除磁盘上的数据,只是移除文件索引,让系统不再识别这块空间。只要没有写入新数据,原有扇区内容就会保留。新文件写入才有可能覆盖这些区域,一旦覆盖就很难找回。恢复的本质就是扫描磁盘,找到这些还存在、但索引丢失的数据条目,再把它们导出保存到其他分区。越早停止写入,恢复成功的概率越高。

海天数据恢复-winhex数据恢复教程 202

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Windows/Linux下强实时运动控制内核(二):基于Qt的Delta机械手的开发应用

强实时运动控制内核MotionRT750下Qt开发Delta机械手的完整开发流程。

weixin_57350300的博客 238

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Linux sudo

如果输出 → 无 sudo 权限 如果输出 → 拥有全部 sudo 权限 辅助验证命令 ⚠️ 注意:在 wheel 组 ≠ 一定能 sudo,必须 开启 Ubuntu/Debian: ✅ 重要:修改组之后,用户要重新登录才生效! 或者执行 临时生效 看到这行(没有 #注释)才生效: 方式 2:visudo 直接单独给用户授权(精细化权限) 找到 ,下面添加一行: 自带语法校验,写错会告警,不要直接 vim 改 ,写错直接 sudo 炸掉! 想免密 su

fengliyang_的博客 176

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Linux 磁盘 100% 但 du 查不出东西,五种情况逐个排

监控告警说根分区 100%,登录上去 du -sh /* 加起来只有 12GB,df 显示 40GB 已用。差了快 30GB,du 找不到任何东西。这种情况基本都是"文件被删了但进程还开着",但也可能是别的原因。这篇按可能性排一下顺序。

2408_89646393的博客 160

【Linux 网络编程】DNS 与 ICMP:从域名解析到 ping、traceroute,把“网络通不通”问清楚

DNS 让名字与网络资源建立联系,ICMP 让部分网络状态有机会被看见。真正排查问题时,我们需要的不是一条万能命令,而是把每次观测放回它对应的层次。看到一个 DNS 结果,先问“谁回答的、什么类型、缓存多久”;看到一次 ping 回复,先问“哪个地址、哪个方向、证明了哪一次往返”;看到一份 traceroute,先问“用了什么探测、哪些节点回应、星号还有哪些解释”。当这些问题能被分别回答,“网络通不通”就不再是一个模糊判断,而会变成一条可以逐步验证的分析路径。

星光编译者的技术博客,专注 C/C++、Linux、数据结构与算法。 491

Linux 网络基础详解:IP、子网、路由与 ip、ss 命令实战

建库建表、增删改查、连接查询(内连左连右连)、聚合函数、权限控制 GRANT/REVOKE,每条命令配可运行示例,零基础也能跟着敲会 SQL 基础。

2502_91473995的博客 608

Linux、Shell、MySQL 测试卷逐题细讲(下篇:MySQL)

本文为Linux、Shell、MySQL测试卷下半段MySQL部分逐题讲解,包含填空、选择与SQL分析三类题型。填空题覆盖COUNT、HAVING、DISTINCT、事务、约束、索引等核心语法;选择题辨析存储过程、索引类型、ACID、存储引擎、用户管理等考点。SQL大题围绕员工、部门、职位、地点四张关联表,考察多表连接、分组聚合、自连接、相关子查询、NULL处理等高频写法,标注LEFT JOIN统计计数、NULL判断、子查询别名等易错坑点,同时梳理试卷OCR识别带来的干扰问题,重点提示SQL实操中的常见失误

dongziwen1的博客 179

Linux 下 OpenCode 接入自定义大模型 API 教程:以 DeepSeek-V4.1-Flash-1017 为例

本文介绍在Linux下通过Python脚本配置OpenCode接入自定义大模型API(以DeepSeek-V4.1-Flash-1017为例),实现永久化、非侵入式配置。通过修改~/.config/opencode/opencode.json文件,添加OpenAI兼容服务商BLSC,注册模型并设置APIKey。支持命令行测试、默认模型设定及安全权限控制,操作简单且不影响原有配置。适用于各类支持OpenAI接口的自定义模型服务,提升开发灵活性与安全性。

qq_15060477的博客 118

【Linux 命令实战(02):文件与目录操作,掌握 pwd、ls、cd 三个核心命令】

命令作用cd /进入根目录cd ~进入当前用户家目录cd返回当前用户家目录cd …返回上一级目录cd …/…返回上两级目录cd -返回上一次所在目录进入指定目录命令核心用途常用参数pwd查看当前目录-L、-Pls查看文件和目录cd切换目录…、~、-Linux 文件系统的基本结构。绝对路径与相对路径的区别。Tab 自动补全。Shell 通配符。使用&&组合命令。这篇文章主要解决的是如何在 Linux 文件系统中快速定位目录。

一些微不足道的见解、希望能帮助各位 185

Linux Day29——HTTP与网络排障

*实测**:`traceroute -n -m 8 8.8.8.8` 的输出:第 1 跳 `172.17.144.1`(本机网关)、第 2 跳 `10.32.0.1`、第 3 跳 `10.50.255.253`、第 4 跳 `* * *`、第 5 跳 `221.226.71.193`、第 6 跳 `* * *`、第 7、8 跳有地址但夹着星号。`ping` 和 `traceroute` 都靠它。**实测**:`ss -lta` 看到三行 `domain`,加 `-n` 后变成 `53`。

2503_94114317的博客 147

【Linux指南】进程通信系列(七):System V 信号量 —— 同步互斥的内核原语

System V 三兄弟的压轴成员 —— 信号量(Semaphore) —— 是最特别的一位:它根本不传数据。消息队列传消息、共享内存传字节,信号量只干一件事:当保镖。

倔强的石头的博客 4250

Linux-IPC进程间通信

进程间通信(IPC)因进程空间独立但需数据共享而必要。主要方式包括:管道(无名/有名,基于队列)、信号(异步通知)、消息队列、共享内存(高效读写,需配合信号量同步)及Socket(网络通信)。无名管道用于亲缘进程,有名管道支持任意单机进程;共享内存提供高速共享,但需同步机制避免冲突。各类IPC各有特性,适用于不同场景。

2401_86256335的博客 163

Linux的渲染与显示系统链路

Linux渲染与显示链路核心为DRM/KMS + EGL直连模式,绕过传统X11/Wayland中间层,实现低延迟、高效率的直接帧提交。相比X11的粗粒度权限控制与Wayland的合成开销,该方案链路短、资源消耗低,但仅支持单进程独占显示,缺乏窗口管理与系统级兜底。EGL作为跨平台桥梁,连接OpenGL ES与原生显示系统,通过Display、Surface、Context三要素构建渲染环境。内核层DRM管理GPU资源,KMS配置显示模式,用户态GDM负责登录会话,共同构成从硬件到应用的完整图形栈。

微小的鱼的博客 169
上一篇: T536工控板的Debian系统的编译与运行--盈鹏飞嵌入式
下一篇: 一款支持SPI NAND启动的T536核心板--盈鹏飞嵌入式
szembed
博客等级 码龄18年 1475粉丝 256原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值