Android驱动开发调试笔记

37 篇文章 0 订阅
2 篇文章 0 订阅
Android系统原理及开发要点详解.韩超,梁泉.pdf

在windows系统上硬盘安装ubuntu双系统

update ubuntu system
System - Administration - Update Manager, Check - Install Updates.

>sudo apt-get update

>sudo apt-get install minicom

>sudo apt-get install subversion

>sudo apt-get install openjdk-6-jdk//安装jdk

>sudo apt-get install openjdk-6-jre-headless//安装jre

>sudo apt-get install bison

>sudo apt-get install g++

>sudo apt-get install git-core

>sudo apt-get install zlib1g-dev

>sudo apt-get install lib64z1-dev

>sudo apt-get install flex

>sudo apt-get install vim

sudo apt-get install meld//安装比较工具meld

>sudo apt-get install wine

>wine /media/windows/Kll.Static.Share/e/tools_system/Source\ Insight3.5/Source_Insight3.5_Setup.exe

>sudo apt-get install snapshot//截图工具,添加该工具区域截图的快捷方式 system- prefernces- keyboard shortcuts- add- 名字:snapshot截图工具 command:snapshot -region 快捷键自定义即可


软件中心安装飞鸽iptux,浏览器chromium,安装小企鹅输入法fcitx并通过系统的升级管理器更新至最新版


以免乱码(中文字符显示为方块):

gedit /home/用户名/.fcitx/config

显示字体(中)=WenQuanYi Bitmap Song
也可修改翻页键//重启后有效
fcitx替换iBus成为默认输入法>sudo im-switch -s fcitx,重启

进程列表
>ps aux

svn check out
>svn co https://192.168.0.52:8443/svn/CAR/IMX53_SDK ./
svn update 到最新
>svn up
恢复到指定版本(eg:恢复到r3027版)

>svn up -r 3027


svn check in
>svn ci -m 'Check recovery command file from sdcard by FAT filesystem'//无注释提交带参数 -m ‘’
svn show log
>svn log

tar解压
tar jxvf XXX.bz2

tar zxvf XXX.gz


tar压缩
tar czvf XXX.tar.gz 目录或文件

环境变量
bootargs=console=tty0 init=/init androidboot.console=tty0 video=mxcdi1fb:RGB666,XGA ldb=di1 di0_primary calibration gpu_nommu gpu_memory=64M
printenv
setenv bootargs 'console=ttymxc0 init=/init androidboot.console=ttymxc0 video=mxcdi1fb:RGB666,XGA ldb=di1 di0_primary calibration gpu_nommu gpu_memory=64M'
saveenv

烧录到TF卡
./flash_android.sh /dev/sdb

单独烧录uboot到TF卡

sudo dd if=../out/u-boot.bin of=/dev/sdb bs=1k seek=1 skip=1;sync

单独烧录kernel到TF卡

sudo dd if=../out/uImage of=/dev/sdb bs=1M seek=1;sync

单独烧录recovery到TF卡

sudo dd if=../out/recovery.img of=/dev/sdb4;sync


当前目录下递归查找指定串
grep -snr "apply update from sdcard" .

文件夹递归提权
sudo chmod 777 /media/57f8f4bc-abf4-0000-675f-946fc0f9f25b/sbin/ -R


./build_android.sh imx53_smd uboot/kernel/android


编译recovery部分
./build_android.sh imx53_smd android

recovery升级文档定制
1、make_update_zip.sh l48 uImage.img => uImage
2、/opt/IMX53_SDK/src/bootable/recovery/etc/META-INF/com/google/android/updater-script替换所有"package_extract_file"函数的第一个参数
eg:package_extract_file("file/uImage", "/tmp/uImage"); => package_extract_file("uImage", "/tmp/uImage");

u-boot.bin制作no padding的u-boot
sudo dd if=../out/u-boot.bin of=../out/u-boot-no-padding.bin bs=1k skip=1

烧录u-boot-no-padding.bin到TF卡(卡启动)
sudo dd if=../out/u-boot-no-padding.bin of=/dev/sdb bs=1k seek=1;sync /×不填充就不跳过1k区域×/

sudo dd if=../out/u-boot.bin of=/dev/sdb bs=1k seek=1 skip=1;sync /×默认填充需要跳过1k区域×/
区别在于no-padding不用skip=1

android编译环境:
. build/envsetup.sh
lunch 11
mmm -B bootable/recovery/

minicom
ctrl+a打开命令模式,再按 z打开help,c清屏,m初始化设备,x退出并复位设备

账号切换
su 用户名

设置PC环境变量PATH

法1:

sudo chmod 777 /etc/profile

gedit /etc/profile

文本末尾换行添加(以下$PATH:仅表示保留原有的环境变量)

PATH=“$PATH:XXXX”

export PATH

保存 -> 退出

>. /etc/profile(同步一下)


法2[我常用方法]:

gedit~/.bashrc

文本末尾换行添加(以下$PATH:仅表示保留原有的环境变量)

export PATH=$PATH:XXXX

比如我配置jdk、adt如下

############################################################################

#jdk1.7.0_45
#add fellow codes && source ~/.profile
export JAVA_HOME=~/jdk1.7.0_45
export JRE_HOME=~/jdk1.7.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

#adt platform tools
export ADT_HOME=~/adt-bundle-linux-x86_64-20131030
export ADT_TOOLS_HOME=$ADT_HOME/sdk/platform-tools
export PATH=$ADT_TOOLS_HOME:$PATH

############################################################################

保存 -> 退出

source ~/.bashrc(同步一下)

printenv(关闭环境变量设置终端,开启新的终端执行此命令,以确保环境变量显示重复)


法3[一次性]:

>export PATH=$PATH:XXXX //(当前设置的命令行终端关闭后,新设置的环境变量丢失)

(注意 ~/.profile文本末尾换行添加只能在当前终端开着的情况下一次性有效,类似jdk、adt工具的配置不适宜)


打印环境变量(关闭环境变量设置终端,开启新的终端执行此命令,以确保环境变量显示重复)
echo $PATH(或printenv PATH)

清除环境变量
>unset PATH

查看所有本地定义的shell变量
>set

查看linux内核版本
>cat /proc/version


语句中采用单引号包含shell命令:'shell命令'

>echo current_location=`pwd`

current_location=/home/kll


Makefile中,KERNEL_DIR := /lib/modules/'uname -r'/build等同于KERNEL_DIR := /lib/modules/$(shell uname -r)/build


驱动模块.ko文件的编译:
1、在内核目录下先配置好要编译为模块的menuconfig配置为M,再make module
2、单独给模块写makefile(不常用)

android触摸校准文件保存在:

测试串口收发

串口收发线短接(老PC接口的2、3线,仔细看,有标号的),打开两个命令行终端,假设串口为/dev/ttyUSB0,

终端1:cd /dev

echo teststring > ttyUSB0

终端2:cd /dev

cat ttyUSB0


查看磁盘空间

df -h


cd命令: 

cd     //进入用户主目录;
cd  ~  //进入用户主目录;
cd  -  //返回进入此目录之前所在的目录;

mkdir ~/aa //在用户主目录下创建aa目录;


source命令用法:

source FileName

作用:在当前bash环境下读取并执行FileName中的命令。

通常用命令“.”来替代。如:source .bashrc 与. .bashrc 是等效的。

source命令与shell scripts的区别:source在当前bash环境下执行命令,scripts是启动一个子shell来执行命令。如果把设置环境变量(或alias等等)的命令写进scripts中,只会影响子shell,无法改变当前的BASH,

所以通过文件(eg:在.bashrc文件中增加命令列)设置环境变量时,要用source 命令同步一下。


中间件涉及修改
src/frameworks
src/hardware
src/semisky

make: *** [out/target/common/obj/PACKAGING/checkapi-current-timestamp] Error 38
解决办法:
kll@kll-desktop:/opt/IMX53_SDK/src$ make update-api

编译android生成system.img出现error: 
do_inode_allocate_extents: Failed to allocate 3 blocks
修改src/system/extras/ext4_utils/mkuserimg.sh l41 size由150M改大到170M,修改不能超过system分区大小,
system分区大小在 TM53烧录工具iNand/Mfgtools-Rel-1.6.2.0322/Profiles/MX53 Linux Update/OS Firmware/mksdcard-android.sh.tar中确认l5 SYSTEM_ROM_SIZE=350
    SIZE=170M

修改版本字段
/opt/IMX53_SDK/src/build/tools/buildinfo.sh l13
echo "ro.build.version.release=$PLATFORM_VERSION""+V1.1.0"

mfg工具使用的u-boot.bin及uImage编译
1、配置环境
2、kll@kll-desktop:/opt/IMX53_SDK/src/bootable/bootloader/uboot-imx$ make clean ARCH=arm CROSS_COMPILE=arm-eabi-
3、kll@kll-desktop:/opt/IMX53_SDK/src/bootable/bootloader/uboot-imx$ make ARCH=arm CROSS_COMPILE=arm-eabi-

init.rc文件里面echo 值>节点 无效,可用write 节点 值 的方式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值