kernel

使用 VS2019、VSCode 编辑 Linux 驱动工程

落爺英雄遲暮 提交于 2020-03-16 09:53:03
准备配置文件 创建Project1.vcxproj配置文件 文件中添加如下内容 Debug x64 Linux Project1 15.0 Linux 1.0 Generic {2238F9CD-F817-4ECC-BD14-2524D2669B35} true D:/Linux/linux-3.4.39.6818/include; D:/Linux/linux-3.4.39.6818/arch/arm/include; D:/Linux/linux-3.4.39.6818/arch/arm/include/generated; D:/Linux/linux-3.4.39.6818/arch/arm/mach-s5p6818/include; D:/Linux/linux-3.4.39.6818/arch/arm/plat-s5p6818/include; D:/Linux/linux-3.4.39.6818/arch/arm/plat-s5p6818/common; D:/Linux/linux-3.4.39.6818/arch/arm/plat-s5p6818/GEC6818/include; %(AdditionalIncludeDirectories) __KERNEL__;CONFIG_RWSEM_GENERIC_SPINLOCK 项 描述 kernel/include

linux下lk和kernel层通信方式[2]

喜你入骨 提交于 2020-03-14 13:16:14
U-Boot与Linux内核的交互 说明:本文所使用的U-Boot的版本是1.1.6,平台是S3C2440。 目录 一、简介 1.1标记列表 二、设置标记存放的地址 2.1相关的结构体定义 2.2标记存放地址的设定 三、标记的设置 3.1设置标记ATAG_CORE 3.2设置内存标记ATAG_MEM 3.3设置命令行标记ATAG_CMDLINE 3.4设置ATAG_NONE 一、简介 U-Boot与Linux内核的交互是单向的,U-Boot将各类参数传递给内核。由于他们不能同时运行,传递办法只能有一个个:U-Boot将参数放在某个约定的地方之后,在启动内核,内核启动后从这个地方获得参数。 1.1标记列表 除了 约定好参数存放的地方 外,还要 规定参数的结构 。Linux2.4.x以后的内核都以标记列表(tagged list)的形式来传递参数。标记就是一种数据结构;标记列表就是挨着存放的多个标记。标记列表以标记ATAG_CORE开始,以ATAGE_NONE结束。 标记的数据结构为tag,它是偶一个tag_header结构和一个联合体(union)组成。tag_header结构体表示标记的类型及长度,比如是表示内存还是表示命令行参数等。对于不同类型的标记使用不同的联合体,比如表示内存=时使用tag_men32,表示命令行时使用tag_cmdline。其定定义在include/asm

Linux Kernel PANIC(三)--Soft Panic/Oops调试及实例分析【转】

帅比萌擦擦* 提交于 2020-03-13 11:13:47
转自: https://blog.csdn.net/gatieme/article/details/73715860 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/gatieme/article/details/73715860 本文信息 CSDN GitHub Linux Kernel PANIC(三)–Soft Panic/Oops调试及实例分析 LDD-LinuxDeviceDrivers/study/debug/modules/panic/03-soft_panic 同类博文信息 CSDN GitHub Linux Kernel PANIC(一)–概述(Hard Panic/Aieee和Soft Panic/Oops) LDD-LinuxDeviceDrivers/study/debug/modules/panic/01-kernel_panic Linux Kernel PANIC(二)–Hard Panic/Aieee实例分析 LDD-LinuxDeviceDrivers/study/debug/modules/panic/02-hard_panic Linux Kernel PANIC(三)–Soft Panic/Oops调试及实例分析 LDD

ubuntu安装最新内核

心不动则不痛 提交于 2020-03-13 00:36:29
1.Get Latest Linux kernel code   在 http://www.kernel.org下载最新内核 2.Step # 2 Extract tar (.tar.bz3) file Type the following command: # tar -xjvf linux-3.7.3.tar.bz2 -C /usr/src # cd /usr/src 3.make & install:   cd ~/linux-3.7.3   make menuconfig   make    # Start compiling to create a compressed kernel image   make modules_install  # Install kernel modules (become a root user, use su command)   make install      #So far we have compiled kernel and installed kernel modules. It is time to install kernel itself    update-grub   REBOOT   DONE ! 参照:http://www.cyberciti.biz/tips/compiling-linux-kernel

Linux常用查看版本指令

房东的猫 提交于 2020-03-12 21:31:22
1.查看linux版本 cat /etc/issue 2.查看内核版本 cat /proc/version 或者使用uname指令 -a, --all print all information, in the following order, 查看全部信息 except omit -p and -i if unknown: -s, --kernel-name print the kernel name 查看内核名字 -n, --nodename print the network node hostname -r, --kernel-release print the kernel release 查看内核发行版本 -v, --kernel-version print the kernel version 查看内核版本 -m, --machine print the machine hardware name -p, --processor print the processor type or "unknown" -i, --hardware-platform print the hardware platform or "unknown" -o, --operating-system print the operating system 查看操作系统 --help

Linux Kernel - The Block I/O Layer

北慕城南 提交于 2020-03-11 17:56:49
固定大小的数据块称为块,常见块设备磁盘有硬盘,闪存等,随机访问,字符设备以序列数据流的方式访问,如键盘输入是一字节接一字节访问。由于块设备的复杂度,访问性能等原因,内核提供了一个子系统进行管理,即 Block I/O Layer。块设备最小可寻址单元称为扇区,扇区大小是一个设备的物理属性,大部分块设备为 512 B,CD-ROM 磁盘为 2KB。软件层面上的块是文件系统中的一个抽象概念,也是文件系统最小可逻辑寻址单元。尽管物理设备是以扇区来寻址,内核以块来执行磁盘操作。 且 Buffers and Buffer Heads struct buffer_head { unsigned long b_state; /* buffer state flags */ struct buffer_head *b_this_page; /* list of page’s buffers */ struct page *b_page; /* associated page */ sector_t b_blocknr; /* starting block number */ size_t b_size; /* size of mapping */ char *b_data; /* pointer to data within the page */ struct block_device *b

《自拍教程40》adb命令_一键导出Log

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-11 12:44:17
Android设备,比如车载系统实车路试过程中, 车上操作电脑比较麻烦,如果车载系统出现了Bug, 如何很方便地一次性导出相关的log来(logcat, dbus, 高德地图log,gps定位log等)来呢? 其实我们只需要一个python脚本就可以搞定! 准备阶段 adb pull 命令, 可以把Android系统里的文件,pull到电脑端 导出的Log,需要在当前路径新建一个文件夹用于存放,最好以时间戳命名 os.system()可以调用adb命令 Android车载系统默认的Log存储路径 */ /*--> */ Android Log类型 默认路径 logcat序列log /data/logs/logcat.txt /data/logs/logcat.txt.1 … /data/logs/logcat.txt.20 dbus序列log /data/logs/dbus.txt /data/logs/dbus.txt.1 … /data/logs/dbus.txt.20 kernel序列log /data/logs/kernel.txt /data/logs/kernel.txt.1 ... /data/logs/kernel.txt.20 tombstone log /data/tombstones/* anr卡死log /data/anr/* dropbox log

非参数估计-高斯核平滑Gaussian kernel smoothing-非参数密度估计

↘锁芯ラ 提交于 2020-03-11 03:39:22
目录 1 非参数回归-核平滑 1.1 概念和计算 1.2 Nadaraya-Watson回归 1.3 高斯核 2 高斯核平滑过程-Python实现 2.1 加载库和生成数据 2.2 Full Width at Half Maximum (FWHM) 2.3 分步进行平滑 2.4 二维平滑 2.5 为什么要进行平滑 3 非参数密度估计(Non-parametric density estimation) 3.1 直方图 3.2 非参数密度估计的通常形式 3.3 Parzen windows 3.4 Smooth kernels 3.4.1 概念-为什么选择? 3.4.2 如何选择Bandwidth 4 总结 1 非参数回归-核平滑 1.1 概念和计算 非参数化回归 是指并不需要知道总的分布的情况下进行的一种统计推断回归方法。 核平滑 是一种用来估计实值方程的统计方法,其实也就是一种非参数回归。核平滑来作为周围观察数据的 加权平均值 。权重由核确定,比如越近的数据权重越大。估计方程式平滑的,平滑程度由一个参数控制。 当预测变量的 维度小 时(p < 3),这个技术是最有效的,比如对于数据可视化。 计算过程如下: 参数意义如下: 令Y(X) 是一个关于X的连续函数。对于每一个X0,Nadaraya-Watson 加权平均值为 (smooth Y(X) estimation) 1.2

linux 7 关闭透明大页

白昼怎懂夜的黑 提交于 2020-03-11 01:17:30
如题,关闭透明大页 推荐方式是 vi /etc/rc.local 添加如下内容 if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi 保存后 chmod +x /etc/rc.d/rc.local 重启 来源: CSDN 作者: made-in-china 链接: https://blog.csdn.net/huoshuyinhua/article/details/104778954

Linux 更新后异常(kernel 版本 3.17) VMware player

家住魔仙堡 提交于 2020-03-10 22:21:27
前几天手欠把linux的内和从3.16 升级到 3.17,结果就悲剧了,VMware不能正常启动了,一直报一个错误。 我这里的linux版本为:fedora20,其他发行版本也一样; VMware player版本: VMware-Player-6.0.4-2249910.x86_64.bundle 错误信息大概为: before you can run vmware several modules must be compiled and loaded into the running kernel; 大概的意思就是说,运行vmware虚拟机前需要编译linux的内核; 我天朝大百度搜不出来什么结果..希望提醒后来者低碳生活,远离百度; 好了,不说废话,放上解决方案: 第一步、cd到这个目录下找到文件:vmnet.tar cd /usr/lib/vmware/modules/source/ 第二步、修改这个文件前最好先备份一下,重新建立个文件夹: mkdir vmnet_bak 第三步、将vmnet.tar 拷贝到 vmnet_bak下 cp vmnet.tar vmnet_bak/ 第四步、用tar命令解压 vmnet.tar 并修改文件 netif.c 找到行号130: 文件内容: /**********************************************