arm设备调试常用方式

known_hosts过期:

ssh-keyscan -H xxx.xxx.xx.xxx >> ~/.ssh/known_hosts
git config --global --add url."git@xxx.xxx.xx.xxx:".insteadOf "http://xxx.xxx.xx.xxx/"

scp 跨服务器拷贝文件

scp -r xxxxxxxx@xxx.xxx.xx.xxx:/home/xxxxxxxx/others/singleapk/ /snap/

scp -r xxxxxxxx@xxx.xxx.xx.xxx:/home/xxxxxxxx/workspace/xxxxx_linux/xxxxx_linux/rockdev rockdev

xxx项目代码及编译操作手册
(1)代码下载

git clone http://xxx.xxx.xx.xxx/root/xxxxx.git

(2)切换并在本地建立dev分支同步到远程分支:

git checkout remotes/origin/dev -b dev

更新临时分支上同一个commit id 提交记录内容

 

(3)Android编译

1)source build/envsetup.sh
2)lunch msmxxxx_64-userdebug
3)make -j64

同步dev分支最新代码

git pull origin dev

代码提交

git add
git commit -m ""
git push origin dev


使用-f强制push 到临时分支xxxxxxxxxx

git push -f origin HEAD:refs/heads/xxxxxxxxxx

版本回退命令使用

git reset --hard后面跟你要回退的那个版本的commit值,我们回退到 "配置文件提交" 那个版本。
git reset --hard HEAD^回退版本
可以直接使用git reset --hard HEAD^命令回退到上一个版本
git reset --hard HEAD~回退版本
git reset --hard HEAD~后面跟数字,就表示我们要回退多少步
使用**git reflog**命令可以看到所有的提交记录和回退记录

修改高通平台固件版本号:

Z:\xxx\build\make\core\build_id.mk
1
andriod主屏幕方向设置属性值:

persist.panel.orientation

使用fastboot更新固件img:

adb reboot bootloader

fastboot flash system system.img

fastboot flash vbmeta vbmeta.img

fastboot flash vendor vendor.img

fastboot flash recovery recovery.img

fastboot flash boot boot.img

fastboot flash dtbo dtbo.img

fastboot flash aboot emmc_appsboot.mbn

fastboot flash cache cache.img

fastboot flash userdata userdata.img

fastboot flash persist persist.img

fastboot flash mdtp mdtp.img

fastboot reboot

如果单刷boot:

adb reboot bootloader
fastboot flash boot boot.img
fastboot reboot

命令查看设备rtc时间

date +"%Y-%m-%d %H:%M:%S.%N"

#include <stdio.h>
#include <time.h>

int main() {
struct timespec tp;
clock_gettime(CLOCK_REALTIME, &tp);
printf("Current time: %ld seconds, %ld nanoseconds\n", tp.tv_sec, tp.tv_nsec);
return 0;
}

其他常用调试手段:

echo mem > /sys/power/state // kernel休眠

echo on > /sys/power/state //kernel唤醒

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

adb shell pm list packages -f // 查看所有应用位置

adb shell pm path 包名 //列出指定包名的apk位置

adb shell pm list packages // 查看所有应用

adb shell pm list packages -s // 查看系统应用

adb shell pm list packages -3 // 查看三方应用

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

busybox ifconfig //获取以太网信息

busybox ifconfig eth0 down //关闭以太网

busybox ifconfig eth0 up //开启以太网

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

svc data enable //开启移动网络

svc data disable //关闭移动网络

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

busybox ifconfig ppp0 down //关闭网络连接4G

stop ril-daemon //关闭网络注册上网服务

start ril-daemon //打开网络注册上网服务

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

adb shell wm size //查看屏幕分辨率

ps | grep face //根据关键字过滤

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

dumpsys window displays //查看屏幕信息

wm size 1080x1920 //修改屏幕像素

wm density 480 //修改屏幕dpi

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

logcat -b radio -v time //查看网络

logcat -V/D/I/W/E/F/S //查看日志

logcat -c -b main -b events -b radio -b system //清除所有日志

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

mount -o rw,remount /system system //获取权限

mount -o rw,remount -t ext4 /system //通用

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

adb shell am start -S -R 10 -W xxpkg/xxx.xxAty //测试Aty启动速度 执行10次 可以查看平均值

am stopservice xxxpkg/xxx.xxService //停止Service

adb shell am broadcast -a 广播名 --ei/es/ez 参数名 参数类型

[ei 对应 integer | 类型es 对应 String | 类型ez 对应 boolean | 类型ef 对应 float | 类型el 对应 long ]

java: dumpsys window | grep mCurrentFocus // 获取顶层应用

cmd:adb shell dumpsys window | findstr mCurrentFocus // 获取顶层应用

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

cd sdcard;busybox find ./ -size +51200k > /sdcard/report.txt;cd / //安卓:19,查找大于50M的文件到指定文件夹

find sdcard/ -size +50M > /sdcard/report.txt //安卓:25,查找大于50M的文件到指定文件夹

du -m -d 1 /sdcard/* //列出sdcar文件夹下层级为1 的文件信息

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

data MMddHHmmyyyy.ss set //设置时间格式

date 010411482023.58 set //设置时间

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

adb bugreport ./Desktop/devicebug.zip //导出设备所有 bug 日志 anr|crash

adb shell tcpdump -i any -p -s 0 -w /data/data/capture.pcap //保存网络包

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

adb shell screencap -p /sdcard/screen.png //截屏到指定目录

adb shell screenrecord sdcard/record.mp4 //屏幕录制

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

adb shell cat /proc/meminfo //查看内存信息

adb shell cat /proc/cpuinfo //查看CPU信息

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

adb shell ime list -s //获取已经安装的输入法

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

获取错误指针位置:

003537b1 指向错误位置
进入目录prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin
命令执行:./arm-eabi-addr2line 003537b1 -e out/target/xxx/lib.so
执行结果为:/proc/self/cwd/art/runtime/utils.cc:1122 (discriminator 1)
动态库错误日志查看:cd /data/tombstones

命令启动app

am start -n com.DeviceTest.Techvision/com.DeviceTest.Techvision.AllTest

网络挂载文件

[root@XXXXX:~]# mount -t nfs -o nolock,vers=3 xxx.xxx.xx.xx:/home/book/nfs_rootfs /mnt

Linux交叉编译配置环境变量

export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin

在 Ubuntu 中可以执行以下命令编译、执行:

gcc -o hello hello.c
./hello

查看 tftp 服务是否在运行,运行如下命令,即可查看是否在后台运行。

ps -aux | grep “tftp”

安装相应的驱动模块。

[root@xxxx:~]# insmod xxxx_led.ko
可以强行安装驱动程序,比如使用“insmod -f hello_drv.ko”这样的命令

使用网络启动文件系统

=> setenv serverip xxx.xxx.xx.xx // 设置服务器的 IP 地址,这里指的是 Ubuntu 主机 IP
=> setenv ipaddr xxx.xxx.xx.xx // 设置开发板的 IP 地址。
=> setenv nfsroot /home/book/nfs_rootfs // 设置 nfs 文件系统所在目录。
=> run netboot //

交叉编译程序的万能命令

如果交叉编辑工具链的前缀是 arm-buildroot-linux-gnueabihf- ,比如 arm-
buildroot-linux-gnueabihf-gcc ,交叉编译开源软件时,如果它里面有 configure,
万能命令如下:
./configure --host=arm-buildroot-linux-gnueabihf --prefix=$PWD/tmp
make
make install

配置buildroot添加其实三方app

1.进入buildroot/output/rockchip_rk3568 执行 make menuconfig
Target packages --->
Networking applications --->
添加此两项编译
[*]ipset
[*]iptables

保存.config退出

make savedefconfig 保存到配置文件

查看3.5mm耳机是否接入

cat /sys/devices/platform/es8396-sound/extcon/extcon6/state

查看声卡es8396寄存器值:

cat /sys/kernel/debug/regmap/5-0010/registers (0-0010 前面那个零是I2C总线编号)

Linux命令录音播放

arecord -D hw:1,0 -r 48000 -f S16_LE -c 2 /data/test.pcm //hw:1,0 代表声卡1,设备0 -r为录音采样率 -r 为采样深度 -c为录音通道数 /data/test.pcm为保存录音文件路径和文件名称
aplay -D hw:1,0 /data/test.pcm

Linux查看声卡路由信息

amixer -D 0 //查看所有路由配置
1、amixer -c 1 controls
amixer -c 1 cget numid=15,iface=MIXER,name='Capture Digital Volume'
2、amixer -c 1 cget numid=1,iface=MIXER,name='Playback Path'.
amixer -c 1 cget numid=25,iface=MIXER,name='Output 2 Playback Volume'
3、amixer -c 1 cset numid=15,iface=MIXER,name='Capture Digital Volume' 192 192
amixer -c 1 cset numid=25,iface=MIXER,name='Output 2 Playback Volume' 192 192

android声卡录音调试命令:

录音:
tinycap /data/test.pcm -D 0 -d 0 -c 8 -r 48000
播放:
tinyplay /data/test.pcm -D 0 -d 0
声卡路由查看:
tinymix -D 0
查看每个不同声卡信息
tinypcminfo -D 0

视频调试常用命令:

视频图像抓取:
v4l2-ctl --verbose -d /dev/video0 \
--set-fmt-video=width=3840,height=2160,pixelformat='NV16' \
--stream-mmap=4

v4l2-ctl --verbose -d /dev/video0 \
--set-fmt-video=width=3840,height=2160,pixelformat='NV16' \
--stream-mmap=4 --stream-skip=3 \
--stream-to=/data/4k60_nv16.yuv \
--stream-count=5 --stream-poll

v4l2-ctl --verbose -d /dev/video0 \
--set-fmt-video=width=3840,height=2160,pixelformat='NV16' \
--stream-mmap=4 --stream-skip=3 \
--stream-to=/data/4k60_nv16.yuv \
--stream-count=5 --stream-poll


v4l2-ctl --verbose -d /dev/video34 \
--set-fmt-video=width=1920,height=1080,pixelformat='NV16' \
--stream-mmap=4 --stream-skip=3 \
--stream-to=/data/4k60_nv16.yuv \
--stream-count=5 --stream-poll

v4l2查看视频节点文件详细信息:
v4l2-ctl -d /dev/video33 --all

v4l2
v4l2-ctl --verbose -d /dev/video80 \
--set-fmt-video=width=3840,height=2160,pixelformat='NV16' \
--stream-mmap=4 --stream-skip=3 \
--stream-to=/data/4k60_nv16.yuv \
--stream-count=1 --stream-poll

抓取yuv图像播放:
ffplay.exe -f rawvideo -s 3840x2160 -pix_fmt bgr24 -i 4k60_nv16.yuv -x 1280 -y 720

rk命令接口录音播放:
rk_mpi_ai_test --device_rate=48000 --device_ch=2 --output=/sdcard --sound_card_name=hw:1,0 --out_ch=2 --out_rate=48000

rk_mpi_ao_test -i /sdcard/cap_out.pcm --input_ch=2 --input_rate=48000 --device_rate=48000 --sound_card_name=hw:1,0


rk_mpi_ai_test --device_rate=48000 --device_ch=2 --output=/sdcard --sound_card_name=hw:0,0 --out_ch=2 --out_rate=48000

rk_mpi_ao_test -i /sdcard/cap_out.pcm --input_ch=2 --input_rate=48000 --device_rate=48000 --sound_card_name=hw:1,0

v4l2-ctl --verbose -d /dev/video80 --set-fmt-video=width=3840,height=2160,pixelformat='NV16' --stream-mmap=4 --set-selection=target=crop, flags=0,top=0,left=0,width=3840,height=2160

arecord -D hw:1,0 -r 48000 -f S16_LE -c 2 /data/test.pcm
aplay -D hw:1,0 /data/test.pcm


/sys/class/video4linux/video44/name:rkisp_mainpath
/sys/class/video4linux/video53/name:rkisp_mainpath
/sys/class/video4linux/video62/name:rkisp_mainpath
/sys/class/video4linux/video71/name:rkisp_mainpath


v4l2-ctl --verbose -d /dev/video0 \
--set-fmt-video=width=1920,height=1080,pixelformat='NV12' \
--stream-mmap=4 --stream-skip=3 \
--stream-to=/data/4k60_nv16.out \
--stream-count=1 --stream-poll


查看mipi节点链路信息
media-ctl -p -d /dev/media3

i2c5:

media-ctl -d /dev/media3 \
--set-v4l2 '"m01_f_LT6911UXC 5-002b":0[UYVY8_2X8/0x0@720/640]'


~/>$ media-ctl -d/dev/media3 --set-v4l2 ' "rkisp-isp-subdev":0[fmt:SBGGR10/3840x2160]'
~/>$ media-ctl -d/dev/media3 --set-v4l2 ' "rkisp-isp-subdev":0[crop: (0, 0)/3840x2160]'
~/>$ media-ctl -d/dev/media3 --set-v4l2 ' "rkisp-isp-subdev":2[crop: (0, 0)/3840x2160]'
~/>$ v4l2-ctl -d/dev/video33\
--set-selection=target=crop, top=0, left=0, width=3840, height=2160


media-ctl -l '"m01_f_LT6911UXC":0->"rockchip-csi2-dphy3":0[1]' -d /dev/media3
media-ctl -l '"m02_f_LT6911UXC":0->"rockchip-csi2-dphy0":0[1]' -d /dev/media0

media-ctl -d /dev/media3 -l '"m01_f_LT6911UXC 5-002b":0->"rockchip-csi2-dphy3":0[1]'

media-ctl -d /dev/media3 --set-v4l2 '"m01_f_LT6911UXC 5-002b":0[fmt:UYVY8_2X8/1920x1080]'

v4l2-ctl -d /dev/video0 \
--set-fmt-video=width=1920,height=1080,pixelformat=NV21 \
--stream-mmap=3 \
--stream-skip=3 \
--stream-to=/data/cif.yuv \
--stream-count=1 \
--stream-poll


media-ctl -d /dev/media0 -l '"m02_f_LT6911UXC 7-002b":0->"rockchip-csi2-dphy0":0[1]'
media-ctl -d /dev/media0 --set-v4l2 '"m02_f_LT6911UXC 7-002b":0[fmt:UYVY8_2X8/1920x1080]'

export LD_LIBRARY_PATH=/data/xmm100/local/lib/


linu rk平台三方应用编译:

export PATH=$PATH:/development/xxxxxxx/rk3568_linux/rk3568_linux/buildroot/output/rockchip_rk3568/host/usr/aarch64-buildroot-linux-gnu/bin
export PATH=$PATH:/development/xxxxxxx/rk3568_linux/rk3568_linux/buildroot/output/rockchip_rk3568/host/usr/bin
./matrix -f ./cfg/local0.json

export LD_LIBRARY_PATH=/data/xmm100/local/lib/

非阻塞执行多条命令:

shell命令:
#!/bin/bash

nohup rk_mpi_ai_test --device_rate=48000 --device_ch=2 --output=/sdcard --sound_card_name=hw:0,0 --out_ch=2 --out_rate=48000&
usleep 100
nohup rk_mpi_ao_test -i /sdcard/cap_out.pcm --input_ch=2 --input_rate=48000 --device_rate=48000 --sound_card_name=hw:1,0&

arm平台设备cpu频率命令:

CPU性能模式
echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
echo performance > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
echo performance > /sys/devices/system/cpu/cpufreq/policy6/scaling_governor

DDR性能模式
echo performance > sys/class/devfreq/dmc/governor

NPU性能模式
echo performance > sys/class/devfreq/fdab0000.npu/governor

GPU性能模式
echo performance > sys/class/devfreq/fb000000.gpu/governor

Linux命令方式硬盘挂载:
1、fdisk -l

2、fdisk /dev/sda


3、mkfs.ext4 /dev/sda1

4、mkdir black
5、mount /dev/sda1 /black
————————————————
版权声明:本文为CSDN博主「学习中的农民工」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/nihaoma95278/article/details/131890217

 

posted on 2023-10-12 15:42  zxddesk  阅读(271)  评论(0编辑  收藏  举报

导航