<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[android_sniper的专栏]]></title><description><![CDATA[专注Android驱动开发]]></description><link>https://blog.youkuaiyun.com/android_sniper</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; android_sniper]]></copyright><item><title><![CDATA[车载惯性导航系统方案（Carplay Location 认证）]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/138803677</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/138803677</guid><author>android_sniper</author><pubDate>Mon, 13 May 2024 15:02:05 +0800</pubDate><description><![CDATA[此贴准备记录《基于u-blox M8L的车载惯性导航系统方案（Carplay Location 认证）》，先调查下， 如果有需求我再继续写。]]></description><category></category></item><item><title><![CDATA[/proc/sysrq-trigger的使用]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/123892211</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/123892211</guid><author>android_sniper</author><pubDate>Fri, 01 Apr 2022 10:45:59 +0800</pubDate><description><![CDATA[在linux5.*/6.0里面都可以看到/proc/sysrq-trigger文件，我们可以利用/proc/sysrq-trigger做些事情，比如重启、、、、



如下面操作所示：



# 立即重新启动计算机

echo "b" &gt; /proc/sysrq-trigger



# 立即关闭计算机

echo "o" &gt; /proc/sysrq-trigger



# 导出内存分配的信息 （可以用/var/log/message 查看）

echo "m" &gt; /proc/s...]]></description><category></category></item><item><title><![CDATA[Testing RAM in Embedded Systems]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/123890681</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/123890681</guid><author>android_sniper</author><pubDate>Fri, 01 Apr 2022 10:00:39 +0800</pubDate><description><![CDATA[Testing RAM in Embedded Systems

Version 2: April 2007
Version 2.1: April 2007
Version 2.2: June 2009
Version 2.3: August 2009



Developers often adhere to beliefs about the right way to test RAM that are as polarized as disparate feelings about politics ]]></description><category></category></item><item><title><![CDATA[Android系统分析——Bootloader(Lk)]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/123890451</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/123890451</guid><author>android_sniper</author><pubDate>Fri, 01 Apr 2022 09:55:38 +0800</pubDate><description><![CDATA[1、Crt0.S
	2、bootable/bootloader/lk/app
	
	
	Android系统分析——Bootloader(Lk)
	
	LK是android系统的bootloader，是系统启动后的最早入口点（排除另一个核心modem部分）lk是little kernel的简称，如其名字一样，很多东西都做得很精简，但模块化实现的却很好，是一个真正的可抢占式多任务操作系统。其任务的总数可达到32个。而且其实现的功能也较丰富，包括：
	多种nand设备支持；
	加载多个Linux Kernel（其]]></description><category></category></item><item><title><![CDATA[ros noetic catkin_make 失败解决方法]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/121220285</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/121220285</guid><author>android_sniper</author><pubDate>Tue, 09 Nov 2021 08:15:55 +0800</pubDate><description><![CDATA[问题：

ros catkin_make 失败：


(base) alex@ubuntu-16-04:~/catkin$ catkin_make
Base path: /home/alex/catkin
Source space: /home/alex/catkin/src
Build space: /home/alex/catkin/build
Devel space: /home/alex/catkin/devel
Install space: /home/alex/catkin/install
##]]></description><category></category></item><item><title><![CDATA[rosdepc update 安装失败完美解决方法]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/121218713</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/121218713</guid><author>android_sniper</author><pubDate>Mon, 08 Nov 2021 23:17:09 +0800</pubDate><description><![CDATA[问题：


(base) alex@ubuntu-16-04:~/catkin_ws$ sudo rosdep init
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.



解决方法（装载）：

20210831解决 rosdep]]></description><category></category></item><item><title><![CDATA[solution for build-essential : Depends: gcc (＞= 4:9.2) but it is not going to be installe]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/121218593</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/121218593</guid><author>android_sniper</author><pubDate>Mon, 08 Nov 2021 23:08:01 +0800</pubDate><description><![CDATA[issue:


(base) alex@ubuntu-16-04:~/catkin_ws$ sudo apt install build-essential
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an i]]></description><category></category></item><item><title><![CDATA[ubuntu 20.04安装gcc 4.9]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/121217822</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/121217822</guid><author>android_sniper</author><pubDate>Mon, 08 Nov 2021 22:23:30 +0800</pubDate><description><![CDATA[cd /etc/apt or 
sudo vim /etc/apt/sources.list


增加软件源：


deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe


然后


sudo apt update
sudo apt-get install gcc-4.9



]]></description><category></category></item><item><title><![CDATA[Installing newer GCC versions in Ubuntu]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/121094696</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/121094696</guid><author>android_sniper</author><pubDate>Tue, 02 Nov 2021 10:03:53 +0800</pubDate><description><![CDATA[Installing newer GCC versions in Ubuntu

It is often useful to have installed never versions of the compiler in our systems as they often provide better performance and extended features, such as support for newer language features and better debugging inf]]></description><category></category></item><item><title><![CDATA[可装载内核模块-Loadable Kernel Module (LKM)]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/120669452</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/120669452</guid><author>android_sniper</author><pubDate>Sat, 09 Oct 2021 13:48:04 +0800</pubDate><description><![CDATA[0x01 可装载模块分类
设备驱动
文件系统
系统调用

0x02 版本检查
Linux 的迅速发展致使相邻版本的内核之间亦存在较大的差异，即在版本补丁号（Patch Level，即内核版本号的第四位数）相邻的内核之间。为此 Linux 的开发者为了保证内核的稳定，Linux 在加载模块到内核时对模块采用了版本校验机制。

1，Invalid module format -&gt; disagrees about version of symbol module_layout
由于模块中 module_la]]></description><category></category></item><item><title><![CDATA[高通8155平台YOCTO CMAKE 编译问题解决方法]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/120545105</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/120545105</guid><author>android_sniper</author><pubDate>Wed, 29 Sep 2021 11:29:15 +0800</pubDate><description><![CDATA[硬件平台：高通8155

软件平台：yocoto linux + ubuntu16.04

最近开始接触8155平台，发现编译阶段出现cmake编译失败，网上搜了一下没有相关的解决方案，因此自己研究了下并记录一下，方便有需要的同行快速解决。

问题描述：


| [ 93%] Building CXX object Source/CMakeFiles/CTestLib.dir/LexerParser/cmCTestResourceGroupsLexer.cxx.o
| cd /home/CN/yongfen]]></description><category></category></item><item><title><![CDATA[ubuntu系统adb shell无法连接设备解决方法]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/120336715</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/120336715</guid><author>android_sniper</author><pubDate>Thu, 16 Sep 2021 20:20:59 +0800</pubDate><description><![CDATA[alex@ubuntu:~$ adb shell
* daemon not running; starting now at tcp:5037
* daemon started successfully
error: insufficient permissions for device: user in plugdev group; are your udev rules wrong?
See [http://developer.android.com/tools/device.html] for mo.]]></description><category></category></item><item><title><![CDATA[VSCODE ssh免密连接远端服务器]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/120312098</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/120312098</guid><author>android_sniper</author><pubDate>Wed, 15 Sep 2021 16:51:09 +0800</pubDate><description><![CDATA[用vscode ssh远程开发时，需要输入服务器密码，才能正常连接。输入的次数多了就想改进下。

既然是通过ssh连接的，那么只需要做到ssh免密连接就可以了。具体操作如下：

1、本地电脑生成秘钥，windows和linux一样的操作。

ssh-keygen

2、将公钥复制到远程服务器的~/.ssh/authorized_keys，如果没有此文件需要手动创建。

本地的公钥：

cat ~/.ssh/id_rsa.pub

拷贝到远程服务器的~/.ssh/authorized_keys
...]]></description><category></category></item><item><title><![CDATA[yocto学习笔记]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/119990498</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/119990498</guid><author>android_sniper</author><pubDate>Mon, 30 Aug 2021 21:53:04 +0800</pubDate><description><![CDATA[2、yocto-第2篇-qemux86-64虚拟机运行演示

问题1：运行虚拟机


runqemu qemux86-64

出现报错：

Failed to run qemu: X Error: BadValue

 解决方法：

1、不运行UI，用下面的命令：


runqemu qemux86-64 nographic

2、如果需要UI，可以先安装sudo apt-get install qemu-system-x86_64，然后运行


runqemu qemux86-64

QEMU运行...]]></description><category></category></item><item><title><![CDATA[如何将git branch 和 commit id打印到内核log中？]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/119926797</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/119926797</guid><author>android_sniper</author><pubDate>Thu, 26 Aug 2021 11:00:42 +0800</pubDate><description><![CDATA[问题提出：

多项目多分支的开发模式中，为了方便定位问题，往往需要确认当前的问题日志对应的是哪个分支，哪个提交。为了解决这个问题我们需要有一种方便的手段。



解决方案：

首先想象的是是把git branch和git commit id都打印到dmesg里面，从而完美解决问题。具体做法如下：


diff --git a/apps_proc/kernel/msm-4.4/init/version.c b/apps_proc/kernel/msm-4.4/init/version.c
index 067f]]></description><category></category></item><item><title><![CDATA[正确使用和保存deconfig的流程：]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/119039496</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/119039496</guid><author>android_sniper</author><pubDate>Fri, 23 Jul 2021 16:50:03 +0800</pubDate><description><![CDATA[正确使用和保存deconfig的流程：

1. 要修改在arch/arm/configs下的文件xxx_defconfig

2. make ARCH=arm64 xxx_defconfig 会生成.config文件

3. make ARCH=arm64 menuconfig 修改配置后保存

4. make ARCH=arm64 savedefconfig 生成defconfg文件

5. cp defconfig arch/arm/configs/xxx_defconfig 保存

这样保存的defc]]></description><category></category></item><item><title><![CDATA[MTK平台创建Vendor方法-v1.4]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/119039331</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/119039331</guid><author>android_sniper</author><pubDate>Fri, 23 Jul 2021 16:47:31 +0800</pubDate><description><![CDATA[需求分析：

实际项目中，我们往往需要在同一个git分支支持多个项目，为此我们需要为不同的项目创建各自的vendor，把项目的差异进行隔离的同时，也能最大化复用代码，保证项目的共性问题可以及时同步到其他的项目中。下面是详细的实现方法：



创建vendor：



./vendor/mediatek/libs/spm8666p1_64_car

./vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/mt6771/spm866]]></description><category></category></item><item><title><![CDATA[向linux kernel中添加cmdline的四种方式]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/118753554</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/118753554</guid><author>android_sniper</author><pubDate>Thu, 15 Jul 2021 10:24:01 +0800</pubDate><description><![CDATA[1、 在dts中的bootargs中添加
	2、在BoardConfig中添加
	3、在uboot中添加
	4、在android的Makefile中添加


在linux启动时候，串口log中会打印cmdline



[ 0.000000] c0 0 (swapper) Kernel command line: earlycon androidboot.selinux=permissive uart_dma keep_dbgclk_on clk_ignore_unused initrd=0xd000...]]></description><category></category></item><item><title><![CDATA[如何打开LK打印信息]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/118530225</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/118530225</guid><author>android_sniper</author><pubDate>Tue, 06 Jul 2021 21:27:02 +0800</pubDate><description><![CDATA[diff --git a/apps_proc/bootable/bootloader/lk/include/debug.h b/apps_proc/bootable/bootloader/lk/include/debug.h

index 59e7731..e5e59db 100644

--- a/apps_proc/bootable/bootloader/lk/include/debug.h

+++ b/apps_proc/bootable/bootloader/lk/include/debug.h
]]></description><category></category></item><item><title><![CDATA[Android P 增加系统属性必读]]></title><link>https://blog.youkuaiyun.com/android_sniper/article/details/114589193</link><guid>https://blog.youkuaiyun.com/android_sniper/article/details/114589193</guid><author>android_sniper</author><pubDate>Tue, 09 Mar 2021 16:57:55 +0800</pubDate><description><![CDATA[如何增加属性

Android P 对属性配置有很严格的要求，不建议增加system 分区内的属性，建议增加的属性都在nonsystem分区。

Non-system 分区的限制
Android P 为稳定的exported-platform 属性在non-system 分区的使用定义了4 种类型的白名单：

1. vendor-init-settable

· 非system 分区的Property 文件和init rc 文件只能write 这些属性及vendor (或odm) 属性。

2. vendo]]></description><category></category></item></channel></rss>