我是靠谱客的博主 大方雪糕,最近开发中收集的这篇文章主要介绍linux 调试用到知识点,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ubuntu 崩溃,进入grub解救:

内存不够导致系统崩溃,进入不了linux系统(grub rescure)

系统crash函数追溯

在kernel的根目录下,利用Makefile中用的CROSS COMPILE目录下的gdb,如输入prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-gdb vmlinux  回车后,当提示Reading symbols from vmlinux...done.后输入对应PC address,如log中的0xffffffc0005ec450,即可定位到具体某一行了。注意一定要保证vmlinux是对应Image时的那个。

关机命令:

adb shell setprop sys.powerctl shutdown

无线adb

设备插上usb线
pc$adb tcpip 5555 
设备拔掉usb线
pc$adb connect 设备ip:5555
注:设备 和pc在同一局域网

linux 很诡异的上网问题

内网的IP网段是192.168.40.××,而我虚拟机的wmnet地址正好是192.168.40.0,而这时pc可以通过dhcp获取ip地址,但是无法上网,ping网关总是显示destination unreachable,

修改后如下图,可以正常上网。



根据已有ramdisk镜像修改/替换ramdisk部分内容的方法:

 

1:unzip the image
mv ./ramdisk.img ./ramdisk.img.gz
gunzip ./ramdisk.img.gz
 
2:restore the image
 
mkdir ramdisk
cd ./ramdisk/
cpio -i -F ../ramdisk.img
 
 
3:Modify the files you want
 
 
4:package the new image
 
rm -f ../ramdisk.img
find . | cpio -o -H newc > ../ramdisk.img.unzip
cd ..
gzip -c ./nramdisk.img.unzip > ./ramdisk.img.gz
rm -f ./ramdisk.img.unzip
mv ./ramdisk.img.gz ./ramdisk.img


tinyplay 播放音乐时比特位数:

当时播放24bit时无声音,添加229/230两行即可。

external/tinyalsa/tinyplay.c

211 void play_sample(FILE *file, unsigned int card, unsigned int device, unsigned int channels,
212                  unsigned int rate, unsigned int bits, unsigned int period_size,
213                  unsigned int period_count)
214 {
215     struct pcm_config config;
216     struct pcm *pcm;
217     char *buffer;
218     int size;
219     int num_read;
220 
221     config.channels = channels;
222     config.rate = rate;
223     config.period_size = period_size;
224     config.period_count = period_count;
225     if (bits == 32)
226         config.format = PCM_FORMAT_S32_LE;
227     else if (bits == 16)
228         config.format = PCM_FORMAT_S16_LE;
229     else if (bits == 24)
230         config.format = PCM_FORMAT_S24_LE;

virtualbox添加用户组

查看当前用户名:
sharl@sharl-laptop:~$ whoami
sharl

查看vbox 所在的组:
sharl@sharl-laptop:~$ cat /etc/group | grep vbox
vboxusers:x:125:sharl

将当前用户加入vbox组:
usermod -a -G vboxusers gsc

WIFI模块硬件问题

晶振的电容可以工作还不行,还要注意频偏,27pF--->12pF 频偏

发射功率,功率发射和接收引脚,焊接电容会对其产生影响(ap6335的2脚)

      [*]     cfg80211 wireless extensions compatibility 
 	<*>   cfg80211 - wireless configuration API 



[*] Network device support  --->
	[*]   Network core driver support
	[*]   Wireless LAN  --->
		 <*>   Broadcom FullMAC wireless cards support                                                         │ │  
  │ │                                (/system/etc/firmware/fw_bcm4339a0_ag.bin) Firmware path                                              │ │  
  │ │                                (/system/etc/firmware/nvram_ap6335.txt) NVRAM path 

wifi channel

美国1-11
中国1-13
日本1-14

由于该引脚的时钟没有提供,

所以固件下载进去了,但是并没有运行起来。

<4>[c0][   37.351856] dhd_bus_devreset: == WLAN ON ==
<4>[c0][   37.359254] F1 signature read @0x18000000=0x16224335
<4>[c0][   37.372608] F1 signature OK, socitype:0x1 chip:0x4339 rev:0x1 pkg:0x2
<4>[c0][   37.379252] DHD: dongle ram size is set to 786432(orig 786432) at 0x180000
<4>[c0][   37.385914] dhdsdio_probe_init: set use_rxchain 1 from config.txt
<4>[c0][   37.391856] dhd_conf_read_config: Ignore config file /system/etc/firmware/config.txt
<4>[c0][   37.399754] Final fw_path=/system/etc/firmware/fw_bcm4339a0_ag.bin
<4>[c0][   37.406259] Final nv_path=/system/etc/firmware/nvram_ap6335.txt
<4>[c0][   37.412536] Final conf_path=/system/etc/firmware/config.txt
<4>[c0][   37.545454] NVRAM version: AP6335_NVRAM_V1.7_04102014
<4>[c0][   37.550536] dhdsdio_write_vars: Download, Upload and compare of NVRAM succeeded.
<4>[c0][   38.054435] dhdsdio_htclk: HT Avail timeout (1000000): clkctl 0x50
<4>[c0][   38.059648] dhd_bus_init: clock state is wrong. state = 1
<4>[c0][   38.564473] dhdsdio_htclk: HT Avail timeout (1000000): clkctl 0x50
<4>[c0][   38.570100] dhd_net_bus_devreset: dhd_bus_devreset: -1
<4>[c0][   38.575145] dhd_prot_ioctl : bus is down. we have nothing to do
<4>[c0][   38.581404] dhd_net_bus_devreset: dhd_bus_devreset: -35
<4>[c0][   38.587199] wifi_platform_set_power = 0
<4>[c0][   38.591046] ======== PULL WL_REG_ON LOW! ========
<4>[c0][   38.596147] wl_android_wifi_on: Failed
<4>[c0][   38.600142] dhd_open : wl_android_wifi_on failed (-1)
<4>[c0][   38.605528] dhd_stop: Enter ddd9b800
<4>[c0][   38.609470] wl_android_wifi_off in 1
<4>[c0][   38.613292] wl_android_wifi_off in 2: g_wifi_on=0
<4>[c0][   38.618351] wl_android_wifi_off out
<4>[c0][   38.622222] dhd_stop: Exit
<4>[c0][   38.625208] dhd_open: Exit ret=-1

<span style="color:#FF0000;">LPO I External Low Power Clock input (32.768KHz)</span>

tcpdump抓数据

tcpdump -i wlan0 host 10.0.0.29 -w tcpdumlog.txt

音响D类功放输出

电感换成密封的,否则会有声响;抗饱和电感;电容的选材,是x7R,稳定性好的。

kernel hang时找到对应命令行

在kernel的根目录下,利用Makefile中用的CROSS COMPILE目录下的gdb,如输入prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-gdb vmlinux
               回车后,当提示Reading symbols from vmlinux...done.后输入对应PC address,如log中的0xffffffc0005ec450,即可定位到具体某一行了。注意一定要保证vmlinux是对应Image时的那个。

查看系统状态命令

busybox mpstat -P ALL 2
busybox watch -d -n 1 "cat /sys/bus/platform/drivers/e

android6.0切制tonybox


USB声卡调试

此错误原因是数据线过长,导致信号质量不好,另外还有-110的错误,也是信号质量不好导致的问题。


最后

以上就是大方雪糕为你收集整理的linux 调试用到知识点的全部内容,希望文章能够帮你解决linux 调试用到知识点所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部