内核

Linux内核模块的编译和运行 - 如何让模块跑起来?

SRCPATH := $(shell pwd) ARCH = arm CROSS_COMPILE ?= /opt/toolchain/bin/arm-linux-gnueabihf- KDIR ?= /home/xxx/linux-3.10/ obj-m += hello_world.o all: ......
模块 内核 Linux

搭一个Linux内核驱动框架 - 如何写一个Linux内核驱动?

通俗一点的问题就是“如何写一个内核驱动?” 新手往往并不明白驱动的具体定义是什么,我们往往拿到一款芯片,然后要给这个芯片写一个驱动代码,但是这个驱动代码到底是什么样子的?应该怎么写?就是面临的第1个问题。其实我们通常说的驱动是一个很模糊的概念,也是很多概念的集合。狭义上的驱动就是 ”驱动操作系统上一 ......
内核 Linux 框架

Red Hat8.8 安装 Oracle19C,配置开机自动启动,创建数据库,调整内核参数

## 1. 下载rpm包 * oracle-database-ee-19c-1.0-1.x86_64.rpm ## 2. 上传rpm包 * 上传下载的rpm包到响应目录,例如: /home ## 3.安装依赖 * 上传 compat-libcap1-1.10-7.el7.x86_64.rpm 和 c ......
内核 参数 数据库 数据 Oracle

调试linux内核(2): poll系统调用的实现

linux内核为用户态进程提供了一组IO相关的系统调用: select/poll/epoll, 这三个系统调用功能类似, 在使用方法和性能等方面存在一些差异. 使用它们, 用户态的进程可以"监控"自己感兴趣的文件描述符, 当这些文件描述符的状态发生改变时, 比如可读或者可写了, 内核会通知进程去处理... ......
内核 系统 linux poll

uboot 通过网络启动内核和根文件系统

一、开发背景 由于开发阶段需要频繁修改内核镜像文件和根文件系统,如果每次修改都通过烧写 emmc 或者烧录 sd卡制卡过于繁琐,所以需要通过网络启动和加载 二、开发需求 内核镜像文件(zImage)和根文件系统(rootfs)创建好后,存放于 Ubuntu 中,开发板启动过程中自动提取对应的文件。 ......
内核 文件 系统 uboot 网络

Linux 内核音频子系统调试

## debugfs 文件系统 debugfs 可以为 Linux 内核各个模块的分析调试,提供许多信息,如音频子系统的 ASoC,以及 tracing 等。debugfs 文件系统可以通过命令行工具挂载,如下所示: ``` root@apollo:~# ls /sys/kernel/debug/ ......
子系统 内核 音频 Linux

Linux 内核音频数据传递主要流程 (下)

来而不往非礼也。前面看到了用户空间应用程序和 DMA buffer 之间交换数据,并更新 `runtime->control->appl_ptr` 指针的过程,这里看一下硬件设备驱动程序在完成 DMA buffer 和硬件设备的数据交换之后,更新 `runtime->status->hw_ptr` ......
内核 音频 流程 数据 Linux

探索操作系统:内核、启动和系统调用的奥秘

操作系统是计算机不可或缺的一部分,它连接着硬件和应用程序。内核是操作系统的核心,负责管理进程和线程、内存、硬件设备以及提供系统调用接口。计算机启动过程中,ROM负责加载并执行BIOS程序,而RAM用于存储运行中的程序和数据。系统调用是操作系统提供给应用程序的接口,通过系统调用可以访问操作系统的功能。... ......
系统 奥秘 内核

Linux 内核设备树时钟绑定

这种绑定依然处于开发中,并且基于 benh[1] 的一些实验性工作。 时钟信号源可以由设备树中的任何节点表示。这些节点被指定为时钟提供者。时钟消费者节点使用 `phandle` 和时钟指示符对将时钟提供者输出连接到时钟输入。与 gpio 指示符类似,时钟指示符是 0 个、1 个或多个标识设备上的时钟 ......
内核 时钟 设备 Linux

视频集中存储/直播点播平台EasyDSS内核无法启动是什么原因?

TCP 3519端口是视频云存储EasyDSS视频直播点播服务的推流端口,也是非常重要的端口,所以在使用EasyDSS时,一定要保证该端口不被其他程序占用。 ......
内核 原因 EasyDSS 平台 视频

查看内核页表kernel_page_tables (aarch32)【转】

转自:https://www.cnblogs.com/pengdonglin137/p/7857404.html 作者 彭东林 pengdonglin137@163.com 平台 Linux-4.10.17 Qemu + vexpress-ca9 概述 通过配置内核,会在/sys/kernel/de ......

【错误记录】编译 Linux 内核报错信息及解决办法

【错误记录】编译 Linux 内核报错 报错信息:/bin/sh: 1: bison: not found 解决方案:sudo apt-get install bison **************************************************************** ......
内核 错误 办法 Linux 信息

Linux 内核音频数据传递主要流程 (上)

Linux 用户空间应用程序通过声卡驱动程序(一般牵涉到多个设备驱动程序)和 Linux 内核 ALSA 框架导出的 PCM 设备文件,如 `/dev/snd/pcmC0D0c` 和 `/dev/snd/pcmC0D0p` 等,与 Linux 内核音频设备驱动程序和音频硬件进行数据传递。PCM 设备 ......
内核 音频 流程 数据 Linux

SUB-1G SOC芯片DP4306F 32 位 ARM Cortex-M0+内核替代CMT2380F32

DP4306F是一款高性能低功耗的单片集成收发机,集成MO核MCU,工作频率可覆盖200MHiz^ 1000MHz。 支持230/408/433/470/868/915频段。该芯片集成了射频接收器、射频发射器、频率综合器、GFSK调制器、GFSK解调器等功能模块。通过SPI接口可以对输出功率、频道选 ......
内核 芯片 Cortex-M Cortex 2380F

Linux内核基础篇——动态输出调试

动态输出(dynamic print)是内核子系统开发者最喜欢的输出技术之一。 上篇说到printk调试,但printk是全局的,只能设置输出等级。而动态输出可以动态选择打开某个内核子系统的输出,可以有选择性地打开某些模块的输出。 配置内核编译选项 要使用动态输出,必须在配置内核时打开CONFIG_ ......
内核 基础 动态 Linux

意外发现Cortex-M内核带的64bit时间戳,比32bit的DWT时钟周期计数器更方便,再也不用担心溢出问题了

视频: https://www.bilibili.com/video/BV1Bw411D7F5 介绍: 看参数手册的Debug章节,System ROM Table里面带Timestamp generator的都是支持的,不带的不支持。当前测试H743/H750等系列是带的。与DWT时钟计数器一样, ......
内核 时钟 计数器 bit 周期

yum更新内核并开启bbr

1、导入仓库源 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm 2、查看可安装的软 ......
内核 yum bbr

kioptrix: level 1.1 (#2) 简单命令注入+内核提权

从利用选择到信息搜集和枚举以及反弹shel的l获取,要思考从哪里作为入口能更快速解决战场。小试牛刀一下三种反弹shell的方式,锻炼渗透思维的好机器。 ......
内核 kioptrix 命令 level 1.1

内核版本升级故障之shell脚本进程exe_file denrty名称问题

问题背景: 操作系统升级内核版本之后,其中一个自研内核模块获取shell脚本进程的exe_file->dentry->d_iname名称异常。 问题原因: 现网升级操作系统之后,没有重启系统,导致所有shell进程的exe_file->dentry->d_iname名称多出几个字符,导致匹配进程名称 ......
内核 脚本 exe_file 进程 故障

ubuntu18更换内核,安装n卡驱动

换腾讯源 sudo add-apt-repository ppa:graphics-drivers/ppa sudo dpkg -i linux-*.deb reboot ubuntu-drivers devices sudo apt-get install nvidia-driver-470 ......
卡驱动 内核 ubuntu 18

Linux内核开发分析补充

##**总目录** ##一.内核入门篇 ###[1.1 module_init的优先级 分析](https://www.cnblogs.com/caseyzq/p/17629339.html) ###[1.2 linux kernel 大内核锁BKL](https://zhuanlan.zhihu. ......
内核 Linux

Ubuntu18.04 切换内核版本

# 安装内核 ```bash sudo sed -i '$a\deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse \​ deb-src https://mirrors. ......
内核 版本 Ubuntu 18.04 18

深入理解Linux内核——内存管理(3)

提要:本系列文章主要参考`MIT 6.828课程`以及两本书籍`《深入理解Linux内核》` `《深入Linux内核架构》`对Linux内核内容进行总结。 内存管理的实现覆盖了多个领域: 1. 内存中的物理内存页的管理 2. 分配大块内存的伙伴系统 3. 分配较小内存的slab、slub、slob分 ......
内核 内存 Linux

ubuntu 内核丢失 启动修复

u盘 启动 debian live 系统 ```bash sudo su mkdir /mnt/ubuntu # 我的 / 分区在 /dev/sda5 mount /dev/sda5 /mnt/ubuntu if [ ! -d "/mnt/ubuntu/dev/pts" ]; then mkdir ......
内核 ubuntu

【Linux内核态】内核态和用户态的理解

# 内核态和用户态的理解 ## 特权级 在Unix/Linux系统中,fork的工作实际上是以系统调用的方式完成相应功能的,具体的工作是由sys_fork负责实施。其实无论是不是Unix或者Linux,对于任何操作系统来说,创建一个新的进程都是属于核心功能,因为它要做很多底层细致地工作,消耗系统的物 ......
内核 用户 Linux

内核延迟

1,忙等待短延时 内核中提供了如下3个函数用于纳秒、微秒和毫秒级的延时: void ndelay(unsigned long nsecs); void udelay(unsigned long usecs); void mdelay(unsigned long msecs); //一般不建议直接使用 ......
内核

Linux内核定时器使用及其他时间操作

转载:Linux内核定时器使用及其他时间操作 - 知乎 (zhihu.com) 问题描述 如何使用内核定时器? 内核定时器 Linux内核定时器是timer_list,下面我们详细介绍定时器的使用。 1. 简介 内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制 ......
定时器 内核 及其他 时间 Linux

linux内核中延迟的工作delayed_work

转载:linux内核中延迟的工作delayed_work_千册的博客-CSDN博客 前言 本次实验逻辑依然很简单,count数到5。如果发现代码不能执行,那是不可能的。如果真的不能执行,也让我学习学习。 对于周期性的任务,除了定时器以外,在Linux内核中还可以利用一套封装得很好的快捷机制,其本质是 ......
内核 delayed_work delayed linux work

进程管理 & (系统调用 内核同步)

进程管理 在现代操作系统中,进程提供两种虚拟机制,虚拟处理器和虚拟内存 PCB描述一个正在执行的程序:打开的文件,挂起的信号,内核内部数据,处理器状态,一个或多个具有内存映射的内存地址空间及一个或多个执行线程。 在2.6以前的版本中,PCB直接放在内核栈的尾端,或者放一个pcb_info间接索引,这 ......
内核 进程 系统 amp

Linux内核虚拟内存管理之匿名映射缺页异常分析

今天我们就来讨论下这种缺页异常,让大家彻底理解它。注:本文使用linux-5.0内核源代码。文章分为以下几节内容: 1. 匿名映射缺页异常的触发情况 2. 0页是什么?为什么使用0页? 3. 源代码分析 3.1 触发条件 3.2 第一次读匿名页 3.3 第一次写匿名页 3.4 读之后写匿名页 4. ......
内核 内存 Linux