由于之前都是用的mtk6797开发板,回到实验室之后想要做实验的话需要弄一个支持trustzone的qemu,在这里记录一下我的编译和调试过程.本来最近一直忙着看论文和写论文,但是忽然发现自己在实验部分还有好多欠缺,对一些关键问题的理解存在一部分想象(没有经过实践验证),这让我有些难以接受,虽然去搞源码.调试和分析一定会很耗时间,但是奈何水平不高,我觉得这些事情都是我无法回避的,引用大学时高数老师的一句话,"欠了帐总是要还的",还是踏踏实实从头做起吧! 首先去github上找一份源码,…
简介 对用户态进程,利用gdb调试代码是很方便的手段.而对于内核态的问题,可以利用crash等工具基于coredump文件进行调试.其实我们也可以利用一些手段对Linux内核代码进行gdb调试,qemu就是一种.qemu是一款完全软件模拟(Binary translation)的虚拟化软件,在虚拟化的实现中性能相对较差.但利用它来在测试环境中gdb调试Linux内核代码,是熟悉Linux内核代码的一个好方法.本文旨在介绍怎么利用qemu搭建Linux的gdb调试环境.其中主要包括了如何编译Lin…
一.Linux内核配置编译 1. 交叉编译设置:make ARCH=arm CROSS_COMPILE=arm-linux- 注:也可以直接修改顶层Makefile ARCH ?= arm CROSS_COMPILE ?= arm-linux- 2. 加载默认设置:make mini2440_defconfig ① make mini2440_config: 将arch/arm/configs目录下的mini2440_defconfig文件复制为.config ② make menuconfig…
[Linux内核]编译与配置内核(x86)  https://www.cnblogs.com/jamesharden/p/6414736.html…
Linux内核源代码分析方法   一.内核源代码之我见 Linux内核代码的庞大令不少人"望而生畏",也正由于如此,使得人们对Linux的了解仅处于泛泛的层次.假设想透析Linux,深入操作系统的本质,阅读内核源代码是最有效的途径.我们都知道,想成为优秀的程序猿,须要大量的实践和代码的编写.编程固然重要,可是往往仅仅编程的人非常easy把自己局限在自己的知识领域内.假设要扩展自己知识的广度,我们须要多接触其它人编写的代码,尤其是水平比我们更高的人编写的代码.通过这样的途径,我们能够跳出…
转自:http://blog.csdn.net/sharecode/article/details/40076951 Linux内核多线程实现方法 —— kthread_create函数 内核经常需要在后台执行一些操作,这种任务就可以通过内核线程(kernle thread)完成独立运行在内核空间的标准进程.内核线程和普通的进程间的区别在于内核线程没有独立的地址空间,mm指针被设置为NULL:它只在内核空间运行,从来不切换到用户空间去:并且和普通进程一样,可以被调度,也可以被抢占.实际上,内核线…
宿主机:Ubuntu16.04 x64(Linux内核4.4.0) 交叉编译工具链:gcc-arm-linux-gnueabiarm-linux-gcc:4.4.3QEMU:2.5.0Linux kernel:4.4.1busybox:1.25.1 一.准备1.创建工作目录armv7/,进入该目录2.下载内核源码文件linux-4.4.1.tar.xz3.下载busybox源码文件busybox-1.25.1.tar.bz24. http://files.cnblogs.com/files/pe…
前言 Linux内核是Linux操作2347系统的核心,也是整个Linux功能体现的核心,就如同发动机在汽车中的重要性.内核主要功能包括进程管理.内存管理.文件管理.设备管理.网络管理等.Linux内核是单内核设计,但却采用了微内核的模块化设计,支持内核线程以及动态装载内核模块的能力. Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新.新的内核修订了旧内核的bug,并增加了许多新的特性.如果用户想要使用这些新特性,或想根据自己的系统定制一个更高效.更稳定的内核,就需要手动编译L…
写在前面:2.6.14版本的内核用arm-linux-gcc4.4.3没有编译成功,下载2.6.37版本的内核用arm-linux-gcc4.4.3编译通过. 一.首先下载linux内核: linux-2.6.14.tar.bz2 下载地址:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2 二.解压linux-2.6.14.tar.bz2: tar -jxvf linux-2.6.14.tar.bz2 三.配置Mak…
原来以为在Ubuntu下安装好了OpenCV之后,自己写个简单的程序应该很容易吧,但是呢,就是为了编译一个简单的显示图片的程序我都快被弄崩溃了. 在谷歌和上StackOverFlow查看相关问题解答之后,我下面就介绍Command Line和CMake两种方式. 首先我先粘上我测试的代码吧,文件名为Test.c #include <highgui.h> int main(int argc,char ** argv) { IplImage* img = cvLoadImage(argv[],CV…