![](https://img-blog.csdnimg.cn/20200822220533784.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
linux内核与驱动开发
文章平均质量分 82
本人工作学习中对内核的理解和项目应用
三遍猪
这个作者很懒,什么都没留下…
展开
-
Yocto使用
参考Yocto项目实践Yocto实用技巧原创 2020-04-14 21:30:39 · 1143 阅读 · 0 评论 -
Linux RNDIS驱动
作者QQ群:852283276微信:arm80x86微信公众号:青儿创客基地B站:主页 https://space.bilibili.com/208826118参考Linux 下使用USB 网络Linux下启用RNDIS host端与device端host端内核代码配置, │ Symbol: USB_NET_RNDIS_HOST [=n] │原创 2021-03-22 22:23:49 · 4619 阅读 · 2 评论 -
香蕉派BPI-M2 Berry 全志V40 Mali400 MP2 GPU使用
香蕉派Wiki Main Page开发板资料下载快速上手 香蕉派 BPI-M2 Ultra / BPI-M2 Berry从主页找到R40对应开发板,Banana Pi BPI-M2 Berry [Allwinner R40/V40/A40i]Banana Pi BPI-M2U [Allwinner R40/V40/A40i]其中Banana Pi BPI-M2U的Wiki介绍了如何编译BSP,其中使用内核也是Tina Linux,BPI-SINOVOIP/BPI-M2U-bsp原创 2021-01-30 21:49:31 · 4434 阅读 · 0 评论 -
制作Ubuntu ARM Rootfs
作者QQ群:852283276微信:arm80x86微信公众号:青儿创客基地B站:主页 https://space.bilibili.com/208826118ubuntu构建一个arm64 AArch64的Ubuntu rootfs,Firefly Ubuntu开发入门之(6)制作Ubuntu Rootfs镜像全志A33移植ubuntu系统记录(1)V1.0(分色排版)如何构建一个arm64 AArch64的Ubuntu rootfs下载ubuntu 16.04.4 base ro原创 2021-01-15 00:28:00 · 756 阅读 · 0 评论 -
嵌入式Linux根文件系统制作
文件准备busybox执行命令,解压busybox zc@ubuntu:~/xilinx/app$ tar -jxvf busybox-1.28.3.tar.bz2编译busyboxzc@ubuntu:~/xilinx/app/busybox-1.28.3$ make menuconfigSettings>b原创 2018-05-28 10:51:44 · 4029 阅读 · 0 评论 -
Linux驱动开发之helloworld
作者QQ群:852283276微信:arm80x86微信公众号:青儿创客基地B站:主页 https://space.bilibili.com/208826118开发环境搭建Ubuntu安装软件包,驱动代码Makefile单独编译驱动,ifneq ($(KERNELRELEASE),)obj-m:=helloworld.oelseKERNELDIR:=/lib/modules/$(shell uname -r)/buildPWD:=$(shell pwd)#modules:原创 2020-12-21 20:45:29 · 194 阅读 · 0 评论 -
Linux WIFI模块驱动移植
参考请问有知道atheros无线网卡Linux驱动官方下载地址是什么吗?Ubuntu 16.04 - Can’t connect to home Wi-Fi with Killer 1535 (QCA6174) ath10k-firmware linux-firmware.gitubuntu下安装Qualcomm Atheros QCA6174无线网卡驱动方法ubuntu18.0.4 无线网卡无法上网解决!无线网卡驱动Qualcomm Atheros QCA9565 / AR9565 Wir原创 2020-10-27 22:22:55 · 6726 阅读 · 2 评论 -
u-boot PCIe Host驱动
作者QQ群:852283276微信:arm80x86微信公众号:青儿创客基地B站:主页 https://space.bilibili.com/208826118u-bootu-boot,调用pci enum,UCLASS_DRIVER(pci) = { .id = UCLASS_PCI, .name = "pci", .flags = DM_UC_FLAG_SEQ_ALIAS, .post_bind = dm_scan_fdt_dev, .pre_probe = pci_ucl原创 2020-10-10 14:44:53 · 1935 阅读 · 0 评论 -
Linux DSA Net Switch驱动开发
参考Atheros QCA8337交换芯片驱动开发Linux虚拟网络设备之bridge(桥)phy 驱动与 switch 驱动ALinux网桥的实现分析与使用DSA switch configuration from userspace源码分析基于xilinx petalinux2015.2.1,kernel3.19,QCA8337驱动开发。设备树初始化,关注dsa,mii-bus,dsa,ethernet,reg三个节点,//*\net\dsa\dsa.c line570stati原创 2020-09-17 22:41:31 · 7494 阅读 · 1 评论 -
嵌入式Linux内核定制与编译
生成uImage报错编译uImage,multiple (or no) load addresses: This is incompatible with uImagesSpecify LOADADDR on the commandline to build an uImagearch/arm/boot/Makefile:84: recipe for target 'arch/arm/boot/uImage' failedmake[1]: *** [arch/arm/boot/uImage] E原创 2020-08-19 11:22:09 · 909 阅读 · 0 评论 -
Linux电源管理
参考linux系统的休眠与唤醒简介Android电源管理-休眠简要分析linux电源管理系列(一)linux系统的休眠与唤醒简介Linux Kernel and Android 休眠与唤醒(中文版)1.Linux电源管理-休眠与唤醒休眠查看内核支持哪几种休眠方式,常用的休眠方式有,freeze 冻结IO设备,将它们置于低功耗状态,使处理器进入空闲状态,唤醒最快,耗电比其它standby/mem/disk方式高standby 除了冻结IO设备外,还会暂停系统,唤醒较快,耗电比其它 m原创 2020-07-21 16:35:52 · 491 阅读 · 1 评论 -
PCIe协议学习
参考PCIE 3.0中使用的动态均衡概念PCIE training芯片中的数学——均衡器EQ和它在高速外部总线中的应用原创 2020-07-21 16:03:20 · 2516 阅读 · 0 评论 -
exfat学习和使用
exfat-linux支持基本上所有主线内核,从3.4到4.19,以及ubuntu上使用的各种内核版本(3.4, 3.10, 3.18, 4.1, 4.4, 4.9, 4.14, 4.19 and 4.15, 5.0, 5.2, and 5.3-rc),在(x86(i386), x86_64(amd64), arm32(AArch32) and arm64(AArch64))都已经测试过。是基于fuse的exfat,用户态运行,方便使用,,基于三星公司开源的sdFAT驱动,其性能比。原创 2020-07-19 17:06:09 · 1437 阅读 · 1 评论 -
Linux驱动开发之DMA驱动
64bit DMA on 32bit CPUsg列表中使用dma_addr_t,struct scatterlist {#ifdef CONFIG_DEBUG_SG unsigned long sg_magic;#endif unsigned long page_link; unsigned int offset; unsigned int length; dma_addr_t dma_address;#ifdef CONFIG_NEED_SG_DMA_LENGTH unsigned原创 2020-06-12 22:24:25 · 1075 阅读 · 0 评论 -
Linux驱动开发之中断处理
参考内核线程同步之signaltasklet软中断中执行,当tasklet在执行的时候,不会重复进入。worker工作队列可重复进入。内核线程内核线程函数体常用循环控制条件,其中signal_pending用来接收kill -SIGKILL <pid>,kthread_should_stop用来接收kthread_stop,#include <linux/module.h>#include <linux/kthread.h>#include <原创 2020-06-12 15:07:33 · 1539 阅读 · 0 评论 -
PCIe P2P传输软件设计
| DDR(eg. 2GB) | | DDR(eg. 8GB) | | ||||||||||||||||||||| ||||||||||||||||||||| Z7 | | V7 || CPU | PCIe | DMA |-|SATA Disk|| DMA原创 2020-06-05 15:00:24 · 2423 阅读 · 2 评论 -
飞腾FT2000/4 CPU UEFI开发 固件配置
我觉得这个CPU和FT1500A/4和FT2000AHK相比还算不错,我打算认真研究一下。FT1500A/4和FT2000AHK这两个CPU能用就行了,我说实话连手册都懒得看(包括软件的u-boot,麒麟OS,相关文档),怕恶心,FT2000新四核支持UEFI,我对UEFI比较感兴趣,打算学一下,所以先把这个U学透!!!CPU结构指标集成 4 个 FTC663 核;L2 Cache:每个 Cluster 内有 2MB,共 4MB;L3 Cache:分为 8 个 Bank,共 4MB;集成 2 个原创 2020-06-03 15:57:38 · 9947 阅读 · 1 评论 -
UEFI Shell编程和使用
参考shell - 在 UEFI shell 映射中,FS0和BLK0之間的區別是什麼?UEFI Shell进入UEFI Shell在UEFI的Front Page,选择Boot Manager,进入Shell,输入help命令可以得到命令列表。mapping tableMapping table FS0: Alias(s):HD21a0e0b:;BLK1: PciRoot(0...原创 2020-04-27 10:23:00 · 6539 阅读 · 0 评论 -
海思Hi3531DV100 u-boot kernel移植
介绍海思的寄存器控制位于低1GB空间,DDR空间位于1GB到4GB,共3GB,也就是说4GB的DDR有1GB是浪费的,CPU无法访问。u-boot由于和官方开发板硬件一致,此处无需修改。...原创 2020-04-15 16:59:54 · 1190 阅读 · 1 评论 -
飞腾FT2000/4 u-boot/UEFI开发环境搭建
参考UEFI开发与调试—edk2中子目录介绍ACP基础——Resource Descriptors for ACPIubuntu16.04操作系统下的edk2安装安装环境:ubuntu16.04.6gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu安装编译u-boot所需依赖,qe@ubuntu:~/program/ft20...原创 2020-04-14 21:30:07 · 16375 阅读 · 11 评论 -
Linux MDIO PHY驱动分析
mdio网卡驱动或者独立的mdio驱动,首先会注册到系统总线,然后开始扫描总线上的PHY芯片,mdiobus_register mdiobus_scan get_phy_device phy_device_register phy_scan_fixups注意phy_scan_fixups可以对phy进行一些预设,可以在MAC驱动里注册fixup函数,在这儿就...原创 2020-03-30 15:59:22 · 7291 阅读 · 0 评论 -
u-boot和linux下的netconsole
参考uboot下netconsole的原理及使用方法uboot下的网络终端/控制台u-boot设置环境变量nc,设置CONFIG_NETCONSOLE_BUFFER_SIZE覆盖默认缓冲区大小,设置环境变量ncip为通信对端ip,格式为<ip_addr>:<port>,<port>不设置时为默认值6666,发送端口和接收端口可以分别设置,ncinpo...原创 2020-03-26 16:47:36 · 834 阅读 · 0 评论 -
Marvell交换芯片88E6390驱动开发
参考Marvell交换芯片88E6321/88E6320驱动总结-硬件篇Marvell交换芯片88E6321/88E6320驱动总结-寄存器篇STM32连接Marvell交换芯片88E6176的PHYMarvell 交换芯片DSA(分布式交换架构)功能介绍以太网交换芯片及PHY处理相关二层交换机和三层交换机的区别介绍Marvell 88E6390是一款11端口全千兆以太网二层交...原创 2020-02-22 11:28:17 · 10293 阅读 · 6 评论 -
海思Hi3531DV100开发环境搭建
参考ReleaseDoc\zh\01.software\board\Hi3531DV100 SDK 安装以及升级使用说明.txtReleaseDoc\zh\01.software\board\Hi35xxVx00 U-boot 移植应用开发指南.pdfReleaseDoc\zh\01.software\board\Hi35xxVx00 Linux 开发环境用户指南.pdf安装SDK将...原创 2019-12-26 17:07:02 · 2488 阅读 · 0 评论 -
IPMI IPMB协议
参考IPMIV2.0标准协议IPMI工作原理IPMB接口协议总结IPMI和BMC 通信的过程原创 2019-12-13 10:40:11 · 7532 阅读 · 0 评论 -
BMC芯片AST2400使用
参考aspeed AST2500/AST2520 v16带水印 datasheetBMC-ASPEED2400-开发专用数据手册.pdfAST2400 iBMC 配置手册aspeed BMC AST2500处理器ESPI驱动分析AST2500 NC-SI功能调试AST2500片内ADC驱动详解...原创 2019-12-13 10:36:36 · 12735 阅读 · 5 评论 -
龙芯2K1000开发系统使用
参考官网社区交叉编译工具链官方下载交叉编译龙芯版本内核串口电路板上丝印为CPU Uart,RS232电平,调试REWORKS需要。原创 2019-11-29 15:04:24 · 3330 阅读 · 0 评论 -
Linux在启动卡死
参考如何解决 内核启动 卡在 Starting kernel …卡死在Starting kernel …zynq上使用了axi-pcie,但是没有link up会直接卡死,什么打印都没有bootm后卡死Starting kernel ...都没有打印,这个地址0x40703628,其实地址是0x703628,有地址翻译qe@ubuntu:~/program/fdk/bsp/zynq...原创 2019-10-29 14:47:45 · 2806 阅读 · 0 评论 -
u-boot scsi sata源码解析
方法u-boot下访问sata或者sata ahci有两种方式,一种是pcie上的pcie转sata芯片,比如marvell的88se9230,需要先开启对pcie的支持,一种是cpu内部总线上的,linux上称为platform设备,以xilinx zynqmp为例,u-boot下开启的宏为:/*u-boot-xlnx-v2018.2\include\configs\xilinx_zynqm...原创 2019-10-16 20:12:06 · 2760 阅读 · 0 评论 -
Linux时间子系统处理机制
参考Linux时间子系统(一) – 原理Linux时间子系统(二) – clocksource, timekeeperlinux时钟处理机制(一)linux时钟机制(二)-时钟初始化Linux时间子系统之三:时间的维护者:timekeeperlinux时间子系统 - clocksource/timekeeperlinux时间子系统(二)linux时间子系统(八)Linux内核时...原创 2019-10-13 19:20:21 · 247 阅读 · 0 评论 -
Linux驱动开发之分配连续内存
开机预留开机预留的方法有下面两种,通过uboot传入bootargs/cmdline,参考常用知识——linux内核中常见的内存分配方法,在Linux内核引导时,传入参数“mem=size”保留顶部的内存区间。比如系统有256MB内存,参数“mem=248M”会预留顶部的8MB内存,进入系统后可以调用ioremap(0xF800000,0x800000)来申请这段内存。设备树设置mem...原创 2018-08-23 00:54:56 · 6359 阅读 · 0 评论 -
SRIO协议介绍
参考内容SRIO包格式,RAPIDIO IO Transactions传输类型,RAPIDIO Message Transactions消息传输类型,RAPIDIO Data Steam Transactions数据流传输类型,RAPIDIO GSM Transactions传输类型,...原创 2019-06-14 09:48:56 · 9260 阅读 · 0 评论 -
Linux驱动开发之触摸IC驱动
汇顶GT9271Xilinx Petalinux2018.2 Kernel4.14支持设备树,drivers\input\touchscreen\goodix.c,Xilinx Petalinux2015.2.1 Kernel3.19只支持ACPI,这需要更新。#ifdef CONFIG_ACPIstatic const struct acpi_device_id goodix_acpi_m...原创 2019-06-24 17:25:37 · 2516 阅读 · 0 评论 -
飞腾PHYTIUM FT-1500a性能测试-内存-PCIe
内存malloc->malloc 2270.51MB/sdma->malloc 142.86MB/scache dma ->malloc 1519.29MB/sdma -> dma 60.84MB/sPCIe待续。。。测试kylin@kylin:~$ gcc -vUsing built-in specs.COLLECT_GCC=gccCOLLECT...原创 2019-07-27 22:56:36 · 7534 阅读 · 1 评论 -
Linux驱动开发之DRM驱动
参考DRM 驱动程序开发(开篇)drm 驱动是如何创建 fb device 的Linux中的DRM 介绍Linux Graphic DRI 显示子系统 介绍1Xilinx DRM KMS driver原创 2019-08-05 19:16:52 · 9082 阅读 · 0 评论 -
Linux驱动开发之PCIe设备驱动
参考linux中的MSI中断。。其实真相是个悲剧中断目前linux的内核不支持这种多重MSI(Mutiple MSI),也就是说MSI使用起来在效果上和传统的INTx没区别,都是只能处理一种中断。如果想有多个中断号,则需使用MSI-X。...原创 2019-09-04 17:00:27 · 1637 阅读 · 0 评论 -
IDT CPS1848 SRIO交换芯片使用
参考RapidIO规范《RapidIO_Rev_2.2_Specification》书籍《RapidIO The Embedded System Interconnect》IDT CPS1848手册《CPS-1848™ User Manual》IDT CPS1848CPS1848结构图,最大18个port,注意的是port从0到17,即0x00到0x11。CPS1848路由方式...原创 2019-06-12 14:41:13 · 14222 阅读 · 6 评论 -
SRIO系统初始化过程和路由配置
参考RapidIO规范《RapidIO_Rev_2.2_Specification》书籍《RapidIO The Embedded System Interconnect》系列博客SRIO学习系列博客RapidIO(还介绍了TSI721)host初始化直接看RapidIO的初始化,一些底层的比如物理层链路层之类的不需要关心,用到了再去看,毕竟都是基于芯片或者IP来开发,从顶层了解这...原创 2019-06-12 14:40:48 · 7933 阅读 · 2 评论 -
Linux驱动编译和加载问题
参考解析 Linux 内核可装载模块的版本检查机制说明模块依据代码编写与编译时的位置可分:内部模块和外部模块,即 in-tree module 和 out-of-tree module,在内核树外部编写并构建的模块就是外部模块。...原创 2018-12-07 18:13:46 · 5793 阅读 · 0 评论 -
linux reboot故障
reboot故障个别项目发生,稳定复现,但同样的代码有的项目板块不会,怀疑人生,怀疑是DDR的信号不行,个别地址的数据错误,待定位。Rebooting… Alignment trap: not handling instruction e1932f9f at [&amp;amp;lt;401d5ebc&amp;amp;gt;]Unhandled fault: alignment exception (0x001) at 0...原创 2018-11-23 21:38:12 · 4659 阅读 · 0 评论