自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ambitious 求索

懂一点点技术

  • 博客(40)
  • 问答 (1)
  • 收藏
  • 关注

原创 Intel IOMMU (VT-d) initialization for Linux

Intel IOMMU (VT-d) initialization for Linux

2023-12-12 12:24:27 1029

原创 Linux网桥配置及应用

近期需要搭建一个开发板上网的测试环境,于是顺便学习一下Linux的网桥配置。实验环境为Virtualbox 6.1 + Ubuntu-20.04,虚拟机共享主机网络上网,通过usb以太网卡连接开发板,本文主要就是配置网桥连接usb以太网卡与虚拟机的主网卡,使开发板能通过网桥上网。虚拟机的配置不在本文描述,默认虚拟机可正常上网,并正常识别usb以太网卡,如下:如上enp0s3为虚拟机共享主机上网的网卡,enx34298f742220为usb以太网卡。虚拟机的默认路由配置也先记录一下,后续进行路由配置的时

2022-06-23 18:59:30 1468 1

转载 内核模块加载顺序的控制

前言看i915显卡驱动时,发现i915模块代码假定自己会在intel-agp的模块加载之后执行,我就不理解,两个模块,怎么保证intel-agp模块执行一定在前呢?百度后,没看对这个知识点说的比较透的,于是,有了本文。注意,本文说的模块只是种通俗的说法,实际体现为自动被调用的功能,比如驱动的注册,子系统的注册等,不是编译成“模块”的模块。本文中的模块都是被编译进内核的模块,当然也可以被编译成“模块”。编译成“模块”的模块加载顺序不在本文讨论范围。理解本文需要一点内核Makefile基础,一点ELF

2021-12-22 13:43:55 831

原创 OpenCV交叉编译环境搭建

前言初学OpenCV,在Ubuntu上可以用apt-get方便的解决编译依赖,OpenCV的编译过程较为顺利。但想在嵌入式arm板子上进行测试,编译则不这么顺利,特别是在解决依赖的问题上比较繁琐,如ffmpeg,网上也有很多案例和解决方法可供参考。我个人追求极简主义(其实是懒……),既然目的仅仅是编译OpenCV,就尽量不要花太多时间去编译其他依赖库,以免本末倒置。在这描述一种借助buildroot构建解决所有编译依赖的方法。编译buildroot我个人比较习惯用buildroot去构建文件系统,因

2021-11-24 18:38:14 3660 2

转载 Ubuntu apt-offline official guide

focal (8) apt-offline.8.gzProvided by: apt-offline_1.8.2-1_all bugNAME apt-offline - Offline APT Package managerSYNOPSIS apt-offline [ARGUMENTS] [OPTIONS]DESCRIPTION apt-offline brings offline package management functionality to Debian ba

2021-11-03 15:18:01 381

原创 Linux NFS使用摘要

目录前言NFS ServerNFS Client前言在本文简要记录Linux NFS的使用方式。NFS ServerHost PC是Ubuntu-20.04安装NFS Serversudo apt-get install nfs-kernel-server设置NFS目录-------- /etc/exports 添加:<your path> *(rw,sync,no_root_squash)重启NFS服务sudo /etc/init.d/nfs-ker

2021-10-31 16:35:31 114

原创 Qt调试问题记录(持续更新)

目录前言调试平台调试记录g++编译选项不支持前言本人调试Qt所遇到的问题均会记录在此,方便回溯。调试平台Qt版本:5.12.11Host PC:Ubuntu-20.04Target:ARM/ARM64调试记录g++编译选项不支持arm-linux-gnueabi-g++: error: unrecognized command line option ‘-Wshift-overflow=2’arm-linux-gnueabi-g++: error: unrecognized com

2021-10-31 16:09:21 2469 4

原创 从零构建GCC编译工具链简记

文章目录前言参考Buildroot网上资料前置准备编译流程binutilsgmp/mpfr/mpcgcc第一阶段Linux kernel headerc librarygcc第二阶段gdb后记前言由于种种原因,最近有个需求,需要在Windows下用gcc交叉编译,但arch不是常见的arm,网上找不到现成的,刚好又在看龙书《编译原理》,于是索性自己尝试编译一个gcc。本文仅对流程进行简要记录,方便自己以后回溯,不会提及太多细节以及特定arch相关的描述。参考本人小白,一开始天真的以为只需要下载一个

2021-10-25 16:25:39 2191

转载 ubuntu设置指定软件不参与升级

以synergy为例,需使用sudo 或 root打开终端,输入:sudo echo synergy hold | sudo dpkg --set-selections查询Ubuntu系统被锁定不更新的软件包状态(hold), 命令为:sudo dpkg --get-selections | grep hold 查看是否锁定成功或者使用sudo dpkg --get-selections | more 查询系统所有软件状态是被锁定(hold)的软件包恢复可升级状态,命令:sudo echo

2021-01-18 22:14:34 279

转载 OSI与TCP/IP网络模型对比

目录OSI模型TCP/IP参考模型OSI模型人们已经进行一些讨论关于如何将TCP/IP参考模型映射到OSI模型。由于TCP/IP和OSI模型组不能精确地匹配,还没有一个完全正确的答案。 另外,OSI模型下层还不具备能够真正占据真正层的位置的能力;在传输层和网络层之间还需要另外一个层(网络互连层)。特定网络类型专用的一些协议应该运行在网络层上,但是却运行在基本的硬件帧交换上。类似协议的例子有ARP和STP(用来保持冗余网桥的空闲状态直到真正需要它们)。然而,它们是本地协议并且在网络互连功能下面运行。不可否

2020-09-27 11:32:02 227

原创 Android P 跳过 Gapps 开机引导

目录更改 USER_SETUP_COMPLETE 和 DEVICE_PROVISIONED更改 USER_SETUP_COMPLETE 和 DEVICE_PROVISIONED打开命令行,输入命令: adb shell settings put secure user_setup_complete 1 adb shell settings put global device_provisioned 1

2020-09-19 15:52:50 820

转载 Linux 网络协议栈收消息过程-Ring Buffer

想看能不能完整梳理一下收消息过程。从 NIC 收数据开始,到触发软中断,交付数据包到 IP 层再经由路由机制到 TCP 层,最终交付用户进程。会尽力介绍收消息过程中的各种配置信息,以及各种监控数据。知道了收消息的完整过程,了解了各种配置,明白了各种监控数据后才有可能在今后的工作中做优化配置。所有参考内容会列在这个系列最后一篇文章中。Ring Buffer 相关的收消息过程大致如下:图片...

2020-01-16 16:21:12 915

转载 宋宝华:关于linux内存管理中DMA ZONE和dma_alloc_coherent若干误解的澄清

1.DMA ZONE的大小是16MB?这个答案在32位X86计算机的条件下是成立的,但是在其他的绝大多数情况下都不成立。首先我们要理解DMA ZONE产生的历史原因是什么。DMA可以直接在内存和外设之间进行数据搬移,对于内存的存取来讲,它和CPU一样,是一个访问master,可以直接访...

2020-01-16 15:40:10 846

转载 raw socket编程

从应用开发的角度看,SOCK_STREAM、SOCK_DGRAM 这两类套接字似乎已经足够了。因为基于 TCP/IP 的应用,在传输层的确只可能建立于 TCP 或 UDP 协议之上,而这两种套接字SOCK_STREAM、SOCK_DGRAM 又分别对应于 TCP 和 UDP,所以几乎所有所有的应用都可以使用这两种套接字来实现。但是,从另外的角度,这两种套接字有一些局限:怎样发送一个 ICM...

2019-12-31 16:53:31 1157

转载 是谁关闭了Linux抢占,而抢占又关闭了谁?

前言本人的目的在于解惑,把读者从糊里糊涂的状态解救出来。本文对比分析:preempt_disable() local_irq_disable()/local_irq_save(flags) spin_lock() spin_lock_irq()/spin_lock_irqsave(lock, flags)哪些关闭了抢占?另外,再说清楚,抢占又关闭了谁。首先,把这几个API...

2019-12-12 15:20:54 187

转载 多级页表如何节约内存

前言在学习计算机组成原理时,书中谈到,"使用多级页表可以压缩页表占用的内存",在了解了多级页表的原理后,恐怕对这句话还是理解不了:把页表换成多级页表了就能节约内存了?不是还是得映射所有的虚拟地址空间么?比如做个简单的数学计算,假如虚拟地址空间为32位(即4GB)、每个页面映射4KB以及每条页表项占4B,则进程需要1M个页表项(4GB / 4KB = 1M),即页表(每个进程都有一个页表)占...

2019-12-12 15:20:35 979

转载 ARM汇编伪指令

GNU平台无关符号定义伪指令.global,.local,.set,.equ.global使得符号对连接器可见,变为对整个工程可用的全局变量.global symbol.local表示符号对外部不可见,只对本文件可见.local symbol.set给一个全局变量或局部变量赋值,和.equ的功能一样.set symbol expr.set s...

2019-10-15 19:50:28 296

转载 DH密钥交换和ECDH原理

原文链接http://blog.csdn.net/sudochen/article/details/9164427原文       下面我们以Alice和Bob为例叙述Diffie-Hellman密钥交换的原理。1,Diffie-Hellman交换过程中涉及到的所有参与者定义一个组,在这个组中定义一个大质数p,底数g。2,Diffie-Hellman密钥交换是一个两部分的过程,...

2019-02-21 19:02:58 567

翻译 DBUS ---- Type System

前言       最近在看BlueZ源码,有关DBUS的知识点,在此记录下来。原文Type SystemD-Bus has a type system, in which values of various types can be serialized into a sequence of bytes referred to as the wire format in a sta...

2019-02-21 18:56:24 425

原创 位运算——异或“∧”

概念       异或运算符”∧”也称XOR运算符。它的规则是若参加运算的两个二进位同号,则结果为0(假);异号则为1(真)。即 0∧0=0,0∧1=1, 1^0=1,1∧1=0。应用1. 使特定位翻转       比如:01111010,想使其低4位翻转,即1变为0,0变为1。可以将它与00001111进行∧运算。2. 实现两个值的交换       通过按位异或运算,可以...

2019-02-01 13:47:53 2789

转载 Linux Kernel printk-formats

原文    https://www.kernel.org/doc/html/latest/core-api/printk-formats.html How to get printk format specifiers rightAuthor: Randy Dunlap &lt;[email protected]&gt; Author: Andrew Murra...

2018-12-29 10:14:27 1123

原创 linux 进程管理 task_struct 中 parent/children/sibling 成员的关系

前言        最近在看《Linux内核设计与实现(原书第3版)》中第进程管理,有点疑问,上网顺便补习了linux内核链表第相关知识,在此记录下来。 疑问        书中写到:3.2.6 进程家族树... 同样,也可以按一下方式依次访问子进程: struct task_struct *task; struct list_head *list...

2018-09-30 14:01:12 5235 1

转载 usb alternate settings

前言 最近在看linux usb core 驱动源码,对alternate settings的概念有点疑问,记录下网上好的解释。

2016-08-09 11:40:59 2494

转载 USB设备枚举过程

前言        找到了微软的一片介绍USB枚举过程的文章,记录下来,方便以后学习。

2016-08-06 14:17:28 1539

原创 Makefile学习笔记

前言 最近又看了一下Makefile规范写法,做一点小笔记。

2016-06-12 15:37:19 424

原创 Android Linux内核驱动程序(基于goldfish-3.10内核)

最近在学习老罗博客(点击打开博客),看到他的《在Ubuntu上为Android系统编写Linux内核驱动程序》一文(文章链接),自己也跃跃欲试,不过教程是基于goldfish-2.6.29内核的,而我的环境是android 6.0,goldfish-3.10内核的,在编译过程中遇到的问题我都会在本文记录下来。

2016-06-03 09:32:44 3755 11

原创 Linux下编译Android源码问题汇总

前言本人最近在研究Android源码编译,现将编译过程中遇到问题汇总于此。

2016-06-01 15:53:50 31058 2

转载 linux 进程和线程的区别

原文地址        http://blog.csdn.net/forrest2009/article/details/6413756原文进程与线程        进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。       

2016-04-21 00:08:55 424

转载 c++中的 extern "C"

原文地址                http://songpengfei.iteye.com/blog/1100239原文比如说你用C 开发了一个DLL 库,为了能够让C ++语言也能够调用你的DLL 输出(Export) 的函数,你需要用extern "C" 来强制编译器不要修改你的函数名。通常,在C 语言的头文件中经常可以看到类似下面这种

2016-04-20 23:43:32 473

转载 Android sp<> 指针类的用法

在android 中可以广泛看到的template class Sp 句柄类实际上是android 为实现垃圾回收机制的智能指针。智能指针是c++ 中的一个概念,因为c++ 本身不具备垃圾回收机制,而且指针也不具备构造函数和析构函数,所以为了实现内存( 动态存储区) 的安全回收,必须对指针进行一层封装,而这个封装就是智能指针,其实说白了,智能指针就是具备指针功能同时提供安全内存回收的一个类。当然,

2016-04-20 17:38:09 10124

原创 Java 子类调用this笔记

前言        最近在看Android源码,遇到了有关this的一个问题,自己写了一个测试小程序帮助理解。代码class AllBase { void func() { System.out.println("AllBase func"); }}class TestBase extends AllBase { private AllBase mOut

2016-04-19 10:11:16 646

原创 Java private类构造函数笔记

前言        最近在看Android源码的时候遇到了private类构造函数,于是写了一个测试小程序,帮助理解。代码class TestPrivate { private TestPrivate() { System.out.println("TestPrivate constructor"); } static TestPrivate mInstance;

2016-04-19 09:45:39 732

转载 Android 系统服务一览

1.AccountManagerServiceAndroid账户服务,提供了对账户、密码、授权的集中管理。2.AccessibilityManagerService辅助管理程序截获所有的用户输入,并根据这些输入给用户一些额外的反馈,起到辅助的效果,View的点击、焦点等事件分发管理服。3.ActivityManagerServiceAndroid framework框架

2016-03-30 15:58:32 509

翻译 Java‘s regular expressions

Creating regular expressionsYou can begin learning regular expressions with a subset of the possible constructs. A complete list of constructs for building regular expressions can be found in the JD

2016-03-14 15:08:47 395

翻译 Summary of "Holding Your Objects"

SummaryJava provides a number of ways to hold objects:1.An array associates numerical indexes to objects. It holds objects of a known type so that you don’t have to cast the result when you’re l

2016-03-09 15:27:10 496

翻译 Java多态中重写static函数

Pitfall: fields and static methodsOnce you learn about polymorphism, you can begin to think that everything happens polymorphically. However, only ordinary method calls can be polymorphic. For exa

2016-03-01 10:04:12 561

翻译 Java多态中重写private函数

Pitfall: “overriding” private methodsHere’s something you might innocently try to do://: polymorphism/PrivateOverride.java// Trying to override a private method.package polymorphism;import

2016-03-01 09:52:06 802

原创 Java类初始化顺序

前言        最近在看《Thinking In Java》,看到有关初始化顺序的时候有些迷茫,然后写了一个小示例程序求证了一下,如有不妥,请指出。

2016-02-25 15:48:37 564

翻译 Java类实例化过程

To summarize the process of creating an object, consider a class called Dog:1.Even though it doesn’t explicitly use the static keyword, the constructor is actually a static method. ...

2016-02-24 22:42:16 384

原创 CentOS编译安装GCC

前言前几天初学C++的时候有被一个编译小问题所困扰,上bbs跟各路大哥讨论后(bbs链接:),发现是gcc版本太低所导致的,yum源上的gcc版本为4.4.7,于是上gcc官网上下载gcc-5.2.0进行编译。系统配置Linux发行版:CentOS-6.6当前gcc版本:4.4.7编译进行./configure 的时候出错,错误如下:...config

2015-11-25 15:38:09 667

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除