高通平台工作总结(一)

来源:互联网 发布:冷冰网络歌手 编辑:程序博客网 时间:2024/04/29 19:31

1. svn 获取工程代码命令:svn co svn+ssh://10.20.30.18/svn-repos/msm8916/branches/LA1.1-CS-r113502.2

2. 如何确定那些dtsi文件实际会用到。
         修改代码 kernel/arch/arm/kernel/devtree.c中的函数 setup_machine_fdt 中以下这行:
         pr_info("Machine: %s, model:%s\n", mdesc_best->name, model); 为
         pr_err("Machine: %s, model:%s\n", mdesc_best->name, model);
         并在 kenel log中查找关键字"Machine", 找到对应的module。
         在目录 kernel/arch/arm/boot/dts下用以下命令查找dts  文件
         grep model *.dts | grep "8916 MTP" ,其中 "8916 MTP" 就是以上 kernel log中找到的 model 名字。
         用命令 grep include XXXX 查找 dtsi 文件,XXXX就是 上步查找到的dts 文件。

3. 解决JAVA 版本不对导致编译 java 原文件出错的问题。
      Ubuntu 原先安装的JAVA版本是 1.6.0_24, 编译android 4.4 时导致编译JAVA文件出错。
      需要重新安装版本为1.6.0_26版本的JAVA,方法如下:
      (1). 把sun-java-jdk拷贝到unbuntu,给该目录下的3个文件添加可执行权限。
(2). 用以下命令安装:
     sudo dpkg -i sun-java6-bin_6.26-0squeeze1_amd64.deb sun-java6-jdk_6.26-0squeeze1_amd64.deb sun-java6-jre_6.26-0squeeze1_all.deb

4. 调试质量不好的SD卡一般方法:
      (1). 打开宏 MMC_DEBUG 可以查看以下LOG信息。
      (2). 在函数 mmc_init_card 中每个发送命令之间加延时。
      (3). 增加命令 cmd->cmd_timeout_ms 与 数据 data->timeout_ns 的超时时间。
      (4). 增加GPIO的驱动能力,比如修改 msm8916.dtsi, msm8916-pinctrl.dtsi, 增加GPIO的驱动电流。


5. 获取工程代码,编译出错,错误信息:zip error: Invalid command arguments (cannot repeat names in zip file)
   原因:svn 版本较低,需要升级 svn 版本到 1.7.9
   解决方案:How to build svn 1.7.9,any puzzle pls contact zhanghongliang:
      1, download subversion-1.7.9.tar.bz2 from http://subversion.apache.org/download/
2, download apr-1.4.6.tar.bz2 & apr-util-1.5.2.tar.bz2 from http://apr.apache.org/download.cgi
3, download sqlite-autoconf-3071602.tar.gz from http://www.sqlite.org/download.html
4, un-tar sqlite-autoconf and make install it:
  cd  sqlite-autoconf-3071602
./configure
sudo make
sudo make install
5, un-tar apr-1.4.6 apr-util-1.5.2 into subversion folder, rename them to apr & apr-util
6, run ./configure, make, make install


6. 解决Ubuntu 下 adb 权限问题。
        连接手机到 Ubuntu 系统,adb devices 提示:
        List of devices attached 
                  ????????????    no permissions
这是因为访问adb设备需要root权限。
用以下命令修改 adb 权限可以解决问题。
sudo chown root:root adb
sudo chmod a+x adb
sudo chmod a+s adb
adb kill-server


7. 用QCAT工具修改手机来电铃声音量。
      (1). 在线修改
           a. 打开QACT,点击 connect to phone, 连上手机。
           b. 在 Audio use case 拦选 Audio PlayBack, Device us case 选 SPKR_PHONE_MONO
           c. 在 CODEC_GAIN 栏选相应的增益值,比如9DB
           d. 在手机端的设置菜单的铃声音量调节里面可以确认调整后的结果。
           e. 可以在file菜单中把结果保存为文件。 
      (2). 离线修改文件,把改后的文件push 到手机
           a. 打开QACT, 电击 Open File
           b. 按以上b,c步骤修改增益值。
           c. 在 file 菜单中保存文件结果。
           d. 用adb 命令把结果文件 QRD_Speaker_cal.acdb push 到目录 /etc/acdbdata/QRD 下。


8. 解决 Ubuntu 系统上 VM VirtualBox 虚拟机识别USB设备问题。
         需要修改组配置文件 /etc/group, 把用户加到组 vboxusers 里面去。
         比如:vboxusers:x:126:topwise,fuyongming
         vboxsuers是虚拟机的组,fuyongming是用户。


9. 把RAMDUMP抓到SD卡。
          1. 确认2个宏是否定义在boot_proc代码中, FEATURE_BOOT_RAMDUMPS_TO_SD_CARD, SD_PATH
          2. 在SD的根目录下创建文件 rdcookie.txt
          3. 模拟一个死机条件,可以抓取RAMDUMPS,抓取的RAMDUMPS放在SD卡根目录的数字标号的目录下,抓完RAMDUMPS后手机自动重启。


10. 解析RAMDUP命令:
 python ramparse.py --vmlinux /home/fuyongming/share/ramdump/1/vmlinux --auto-dump /home/fuyongming/share/ramdump/1 --gdb-path /usr/bin/gdb --nm-path  /usr/bin/nm --print-rtb
输出所有信息
python ramparse.py --vmlinux /home/fuyongming/share/ramdump/1/vmlinux --auto-dump /home/fuyongming/share/ramdump/1 --gdb-path /usr/bin/gdb --nm-path  /usr/bin/nm -x
把结果输出到一个目录,比如目录 dumpresult
python ramparse.py --vmlinux /home/fuyongming/share/ramdump/1/vmlinux --auto-dump /home/fuyongming/share/ramdump/1 --gdb-path /usr/bin/gdb --nm-path /usr/bin/nm -x -o dumpresult


11. 通过 adb 发命令来触发 kernel panic 抓ramdump
     adb shell
     echo c > /proc/sysrq-trigger
     
     设置 ramdump 属性为1,才能抓ramdump
     setprop persist.sys.dload.enable 1
     
     通过QXDM模拟死机抓DUMP,连上QXDM, 在command 里面输入以下命令:
     send_data 75 37 03 00
     
     可以用QPST Configuration 来抓RAMDUMP
     RAMDUMP保存在目录 C:\Documents and Settings\All Users\Application Data\Qualcomm\QPST\Sahara\ 下.



0 0
原创粉丝点击