kernel专题

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern

欧拉系统 kernel 升级、降级

系统版本  cat  /etc/os-release  NAME="openEuler"VERSION="22.03 (LTS-SP1)"ID="openEuler"VERSION_ID="22.03"PRETTY_NAME="openEuler 22.03 (LTS-SP1)"ANSI_COLOR="0;31" 系统初始 kernel 版本 5.10.0-136.12.0.

[Linux Kernel Block Layer第一篇] block layer架构设计

目录 1. single queue架构 2. multi-queue架构(blk-mq)  3. 问题 随着SSD快速存储设备的发展,内核社区越发发现,存储的性能瓶颈从硬件存储设备转移到了内核block layer,主要因为当时的内核block layer是single hw queue的架构,导致cpu锁竞争问题严重,本文先提纲挈领的介绍内核block layer的架构演进,然

Kernel 中MakeFile 使用if条件编译

有时需要通过if  else来选择编译哪个驱动,单纯的obj-$(CONFIG_)就不是很方便,下面提供两种参考案例: 案例一: 来源:drivers/char/tpm/Makefileifdef CONFIG_ACPItpm-y += tpm_eventlog.o tpm_acpi.oelseifdef CONFIG_TCG_IBMVTPMtpm-y += tpm_eventlog.o

笔记整理—内核!启动!—kernel部分(1)驱动与内核的关系

首先,恭喜完成了uboot部分的内容整理,其次补充一点,uboot第一部分和第二部分的工作不是一定的,在不同的版本中,可能这个初始化早一点,那个的又放在了第二部分,版本不同,造成的工作顺序不同,但终归是要完成基本内容初始化并传参给kernel的。         那么至于驱动与内核的关系,用一张图来说明最适合不过:         驱动位于OS层的中下层与硬件相接。驱动是内

Linux_kernel原理08

一、温故知新         系统移植         1、uboot                 uboot主要做两件事:1、负责初始化硬件;2、负责引导操作系统的启动         2、Linux内核                 Linux内核的五大功能                 【1】进程间通信                 【2】进程管理

android kernel 的config 如何选择-QCOM

https://blog.csdn.net/weijory/article/details/73104910   如何在deconfig文件里配置某个模块是否编译 首先以CONFIG_TOUCHSCREEN_FT5X06为例,这个CONFIG_TOUCHSCREEN_FT5X06在makefile里决定了obj-$(CONFIG_TOUCHSCREEN_FT5X06) += ft5x06_ts

Linux kernel xfrm 调用流程

XFRM 架构目的 主要服务于IP Security, 俗称IPsec. 应用程序主要是strongswan结合,企业级的VPN基本基于这个构建。 xfrm函数调用流程 正常的数据报文。 sendto/sendmsg -> udp_sendmsg-> ip_make_skb()->ip_send_skb()->ip_local_out(skb) udp_rcv->__udp4_lib_rc

Linux kernel中的dts dtsi dtb dtc dtb.img dtbo.img

1、问题 kernel与hsm会设置一些gpio,但是某些gpio会在kernel与hsm侧共同设置,导致最终的设置结果失败,将kernel侧在dts文件中设置的gpio注释掉之后,发现hsm设置gpio时还是失败 2、问题原因 因为dts文件不仅仅会影响kernel镜像,还会影响dtb.img与dtbo.image,因为只烧写了hsm与kernel的镜像,没有重新烧写dtb.img与dtb

【LINUX】“dmesg: read kernel buffer failed: Operation not permitted“ 错误

出现 “dmesg: read kernel buffer failed: Operation not permitted” 错误通常是因为当前用户没有权限读取内核日志缓冲区 这可以通过修改内核参数 kernel.dmesg_restrict 来解决。 你可以尝试以下命令来允许非特权用户读取内核日志: sudo sysctl -w kernel.dmesg_restrict=0 这个命令

[转载]jupyter notebook中创建tensorflow的kernel

我在conda下创建了tensorflow的env,然而在jupyter notebook中却无法选择此kernel,历经google多方搜索,解决方法如下。 首先在conda下激活env activate tensorflowenv 然后安装ipykernel pip install ipykernel 最后将此kernel链接到jupyter notebook中 pyt

解决android系统唤醒时间偏长------如何在android的linux kernel中获取系统时间

如果想要优化一些唤醒系统的时间,就必须知道某段程序花了多少时间,今天我就找到了一些获取时间的函数以及应用 struct timespec ts; ts=current_kernel_time();  tv_nsecold=ts.tv_nsec;  printk("matt-psy-name=%s\n",psy->name); current_kernel_time这个函数在kernel/t

Linux Kernel 6.12版预计将支持在崩溃后显示二维码 后续可以解码排查错误

7 月份时红帽工程师基于 systemd 255 + 版的全屏显示错误消息功能为 Linux Kernel 开发崩溃后显示二维码选项,这与微软在 Windows 10/11 蓝屏死机后显示二维码有异曲同工之妙。 不过 Linux 与 Windows 在崩溃时显示的二维码内容则有本质区别,因为 Windows BSOD 显示的二维码实际就是微软帮助文档的链接,属于固定内容二维码。 Linux

GNU/Linux - Linux kernel memory access

User space memory access from the Linux kernel An introduction to Linux memory and user space APIs By M. Jones 10 August 2010 Archive date: 2023-08-31 虽然字节可能是 Linux 中内存的最低可寻址单位,但页面才是内存的可管理抽

kernel 下串口serial输入输出控制,屏蔽log的输出

最近工作在调试usb虚拟串口,让其作为kernel启动的调试串口,以及user空间的输入输出控制台。 利用这个机会,学习下printk如何选择往哪个console输出以及user空间下控制台如何选择,记录与此,与大家共享,也方便自己以后翻阅。 Kernel版本号:3.4.55 依照我的思路(还是时间顺序)分了4部分,指定kernel调试console ,  kernel下printk con

linux-----内核(Kernel)与文件系统(File System)

一、内核作用 1.资源管理:         内核负责管理系统资源,包括CPU、内存、设备驱动和网络通信等。它为用户空间提供了一组接口,使得应用程序能够访问底层硬件,而不需要直接与硬件交互。 2.进程管理         内核负责进程的创建、调度、终止等操作,并管理进程之间的通信。 3.设备驱动程序         内核通过设备驱动程序与硬件设备通信,提供统一的接口,使得不同硬件设备可

Rocm-HIP kernel language

HIP的内核启动语法hipLaunchKernelGGL是一个宏,可以作为启动内核的替代方式,它接受启动配置的参数(网格维度、分组维度、流、动态共享大小)以及任意数量的内核参数。这个宏可以替代CUDA中的三连字符(<<< >>>)启动语法。 HIP-Clang作为ROCm平台的一部分,是用于编译HIP程序的新编译器,它使用与GCC兼容的API,允许由不同GCC兼容编译器生成的代码相互链接。 一

U-BOOT启动kernel的过程

u-boot是一种bootloader,它其实就是一段单机程序,在系统上电时自动执行,初始化硬件设备,准备好软件环境,就是为了达到其终极目的——启动内核。 本文记录了以u-boot启动运行在ARM上的Linux为例,拷贝内核镜像文件到SDRAM后,调用do_bootm的过程。话不多说,先上软件流程图: 一、内核镜像文件的检查 内核镜像文件拷贝到SDRAM上之后,需要对镜像文件进行检查,包

Jupyter Notebook 使用多个Kernel

在 Jupyter Notebook 中查看并使用多个 Python kernel,通常需要遵循以下步骤: 1. 安装并配置虚拟环境 为了管理多个 Python 版本或环境,你可以使用虚拟环境(如 venv 或 conda)来隔离不同的 Python 环境。 使用 venv 创建虚拟环境: python -m venv myenvsource myenv/bin/activate #

linux kernel(四)中断

//注册中断函数 内联//log interrupt fun static inline int __must_checkrequest_irq(unsigned int irq,//irq alloc interrupt numberirq_handler_t handler,// a pointer point a function and immediate call it//t

uboot启动正常,加载内核kernel启…

先说现象吧:uboot能够正常启动,不过在kernel启动时却出现起不了的现象,停在这里 Uncompressing Linux.............................................................. done, booting the kernel。就是在这里停住了   分析原因:这个是由于时钟频率还未达到我们的要求,或者是时钟刚启动还未

uboot启动完成,kernel启动时lcd屏…

先说说开发环境吧: 1 内核:linux2.6.xx 2 uboot:买开发板带的  注释:在最后我又添加了问题得到完美解决的办法。   问题:uboot启动完成,kernel启动时lcd屏幕出现杂色(比如:下半屏出现红色等 ) 分析原因:造成这个问题的原因可能是因为uboot启动完成,lcd显示缓冲区内有其 他数据,而这时kernel启动还未完成lcd相关初始化,还未向缓冲器写数据造成的 。

揭秘Semantic Kernel:用AI自动规划和执行用户请求

在我们日益高效的开发世界中,将任务自动化并智能规划变得越来越必要。今天,我要给大家介绍一个强大的概念——Semantic Kernel中的planner功能。通过这篇文章,我们会学习到planner的工作原理以及如何实现智能任务规划。 什么是planner?         planner是Semantic Kernel中的一个函数,它能自动接收用户的请求,并回传一个完成这

2010-ECCV - Two-phase kernel estimation for robust motion deblurring

项目地址:http://www.cse.cuhk.edu.hk/~leojia/projects/robust_deblur/index.html 贾佳亚团队 边缘预测与边缘选择,过滤细微结构对于模糊核估计的影响分两阶段估计模糊核,第一阶段:L2范数,第二阶段:L1范数图像先验,在估计模糊核过程中使用空间结构先验,非盲阶段时使用TV范数 文章首先了图像结构如何影响模糊核结构: Salien

手机启动到Kernel阶段LCD黑屏

1. 使用LCD IC为ili9806e,手机从preloader-lk-kernel时启动到kernel时屏幕黑屏,从串口log看手机已经开机,开机动画已经播放完全 2. 屏幕黑掉原因猜测如下: 2.1 屏幕LCD被断电 2.2 屏幕LCD坏了 2.3.屏幕LCD亮度太低 接下来一步步的来验证分析以上哪种情况 2.1 验证LCD是否被断电 从log来看,手机kernel阶段已经pr