以下内容根据wowo的文章进行整理学习,多数内容拷贝自wowo的文章,在适当的地方添加自己的理解,在此非常感谢wowo的大神们。
- u-boot版本:2017.03
- 开发板:imx8qxp mek
- u-boot配置:未打开SPL
前言
在README
文件中的Board Initialisation Flow
章节有关于板级初始化流程的说明,如下:
整个u-boot的流程都按照下面的规定走:
1 | Board Initialisation Flow: |
thinking all the time
以下内容根据wowo的文章进行整理学习,多数内容拷贝自wowo的文章,在适当的地方添加自己的理解,在此非常感谢wowo的大神们。
在README
文件中的Board Initialisation Flow
章节有关于板级初始化流程的说明,如下:
整个u-boot的流程都按照下面的规定走:
1 | Board Initialisation Flow: |
Android编译环境,lunch
的时候会进行product和variant的选择,比如说lunch xxx-eng
得到的结果如下:
1 | victor@victor-HP:~/master$ lunch xxx-eng |
因此我们可以取得几个环境变量,TARGET_BUILD_VARIANT=eng
和TARGET_PRODUCT=xxx
,输入env
命令就可以查看当前系统当前shell下的环境变量。我们想根据TARGET_BUILD_VARIANT
的值为eng
或者user
来选择在uboot或kernel中开关某个功能。
解决思路:
在lunch
后我们可以获得TARGET_BUILD_VARIANT
的值,判断其为eng
或者user
,然后相应的export
出一个环境变量,最后在uboot或kernel中的Makefile
中判断环境变量传递相应的宏。
git config --global commit.template template.file
来配置特定的commit log,template.file
为模板。scripts/checkpatch.pl [patch or source file]
来检查格式是否正确。linux kernel的commit log建议使用如下模板:
1 | Short (50 chars or less) summary of changes |
参考资料:
如何写好 Git commit log?
git-commit-messages-50-72-formatting
Documentation/process/submitting-patches.rst
提交Linux内核Patch
像linux kernel一样管理你的项目
A Note About Git Commit Messages
本文主要讲述使用iozone
、dd/cp/rm
命令、fio
、flashbench
进行eMMC读写性能和稳定性测试。读写性能主要是通过iozone
测试,稳定性主要是通过长时间随机读写进行测试。
1 | #git clone git@192.168.1.3:knl/kernel-imx6.git |
git clean -f
: 删除 untracked files;git clean -fd
: 连untracked的目录也一起删掉;git clean -dxf
: 连gitignore的untrack文件和目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)。1 | #gitdir=$(git rev-parse --git-dir); scp -p -P 29418 user-name@192.168.1.74:hooks/commit-msg ${gitdir}/hooks/ |
在Android的开发过程中,要将Android移植到自己的平台并将所有关于Android.mk
字符串重命名为Mydroid.mk
。
1 | # sed -i s/"Android.mk"/"Mydroid.mk"/g `grep -rl "Android.mk" ./` |
首先grep
当前目录下包含Android.mk
字符串的文件,然后输入给sed
进行替换。注意包住grep
命令的是\`
(TAB键上面的字符,不包括\
),而不是’
(单引号)。 可在grep
命令后面加上–exclude_dir=".git"
排除对.git/
目录下文件的替换。
man xxx
将Android项目中所有文件夹下名字为Androd.mk
的文件重命名为Mydroid.mk
。前面的是替换字符串。
1 | # find ./ -name "Android.mk" | xargs rename "s/Android.mk/Mydroid.mk/g" |
假设本地一份Android的source code在A(192.168.1.2)电脑上(~/work/A_Android),要将其拷贝到远程同一局域网内的B电脑(192.168.1.3 用户名为:xxx)的目录(~/work/B_Android)下:
1 | # scp -r ~/work/A_Android xxx@192.168.1.3:~/work/B_Android |
:w !sudo tee %
命令:w !{cmd}
,让vim
执行一个外部命令{cmd}
,然后把当前缓冲区的内容从stdin
传入。tee
是一个把stdin
保存到文件的小工具。 而%
,是vim
当中一个只读寄存器的名字,总保存着当前编辑文件的文件路径。 所以执行这个命令,就相当于从vim外部修改了当前编辑的文件。
ctrl + o
: 返回上次光标位置;ctrl + i
: 前进到光标的位置;
ctrl +v
:选择需要对齐的行,之后按=
即可对齐。
:%s/aaaa/bbbb/g
:替换每一行中所有aaaa
为bbbb
,http://www.cnblogs.com/tovep/articles/2715803.html。
光标移动到要选中的单词开头,按v
按e
。
u
: 撤销;ctrl + r
: 取消撤销;
以下内容记录着从安装VirtualBox到安装Ubuntu系统以及常用的工具和配置等流程。本文将持续更新。