您的位置:首页 > 移动开发 > Android开发

Android驱动开发调试笔记

2013-04-17 23:10 465 查看
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 J***A_HOME=~/jdk1.7.0_45

export JRE_HOME=~/jdk1.7.0_45/jre

export CLASSPATH=.:$J***A_HOME/lib/dt.jar:$J***A_HOME/lib/tools.jar:$J***A_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$J***A_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 节点 值 的方式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: