
Linux
文章平均质量分 53
★临★
找到自己喜欢的方向,一路向前!
展开
-
cryptodev-linux 介绍
Cryptodev-linux 是一个允许访问 Linux 内核加密驱动程序的设备;从而允许用户空间应用程序使用硬件加速器。Cryptodev-linux 被实现为一个独立的模块,除了linux 内核之外不需要任何依赖。它的 API 与 OpenBSD 的 cryptodev 用户空间 API (/dev/crypto) 兼容。翻译 2022-11-19 16:33:27 · 1788 阅读 · 0 评论 -
linux DSA 开发上手笔记(一)
关键在于 mt7530_switch_ops 和 dsa_register_switch。要点:是用 mdio_module_driver。定义了一些关键函数。原创 2022-09-28 11:18:40 · 3812 阅读 · 0 评论 -
iw dev wlan0 del 卡住问题
内核版本: 5.15.31最近调试 Realtek WIFI 驱动, 配置wifi 后,ifconfig 卡住,查看 log 卡在最终发现 是 unregister_netdevice 的问题。解决办法:把 unregister_netdevice 改成 cfg80211_unregister_netdevice ,( register_netdevice 也改成 cfg80211_register_netdevice)参考:https://github.com/aircrack-ng/rtl8812a原创 2022-07-18 10:46:44 · 856 阅读 · 0 评论 -
内核如何解析 mtdparts 参数,mtd-id 如何确定?
内核如何解析 mtdparts 参数,mtd-id 如何确定?网上搜素了 mtdparts 相关资料,没有一篇讲明白mtd_id 该怎么确认,于是自己从源码中找答案:先看看 linux-4.14.63/Documentation 里面怎么说的~/opt/linux-4.14.63/Documentation$ grep mtdparts . -rn ./admin-guide/kernel-parameters.txt:2408: mtdparts=原创 2022-05-24 10:43:20 · 2488 阅读 · 0 评论 -
Unable to handle kernel NULL pointer dereference at virtual address 分析
Unable to handle kernel NULL pointer dereference at virtual address 分析现象[ 136.847780] br-lan: received packet on eth0.1 with own address as source address (addr:00:02:e7:f5:02:02, vlan:0)[ 138.026055] Unable to handle kernel NULL pointer dereference a原创 2021-08-23 18:19:47 · 4580 阅读 · 0 评论 -
linux DSA 开发(一)
linux DSA 开发(一)本文主要是翻译,原文链接如下:https://www.kernel.org/doc/html/latest/networking/dsa/dsa.html纲要本文档描述了**分布式交换机架构 (DSA)**子系统的设计原则、限制、与其他子系统的交互、如何为该子系统开发驱动程序设计原则分布式交换机架构最少是用于支持使用 Linux 的 Marvell 以太网交换机的子系统(MV88E6xxx),但此后也发展为支持其他供应商。这种设计翻译 2021-08-02 11:06:19 · 9253 阅读 · 0 评论 -
phy 驱动与 switch 驱动
phy 驱动与 switch 驱动phy 驱动phy 与 cpu 的硬件连接一般为 MAC-PHY 模式:MAC -PHY 之间使用 RGMII /MII 接口连接,用于传输数据。 SMI 接口,通常为 MDIO 接口或 I2C接口,用于读写PHY上面的寄存器。- MAC-MAC 模式下一般要使用 fixed-link- switch 驱动一般注册为平台驱动- switch 驱动核心功能是实现switch 的配置,vlan ,port 等- swconfig 框架和 dsa 框架都是为了原创 2020-06-03 10:39:59 · 14927 阅读 · 7 评论 -
【深度】韦东山:一文看看尽linux对中断处理的前世今生
作者:韦东山原文链接:https://blog.youkuaiyun.com/thisway_diy/article/details/104848034前言:本文,4200字,研究代码花了一天,写出来花了一天;录视频估计又得花半天;真怀念以前简单粗暴的生活啊:拿起话筒就录视频,先画好图?那是不需要的文档?那是不存在的真是洒脱.....现在,要写文档,又要画流程图,十几、二十分钟的视频,真...转载 2020-03-23 16:23:26 · 373 阅读 · 0 评论 -
Ethernet(以太网)之一 详解 MAC、MII、PHY
好文转载Ethernet(以太网)之一 详解 MAC、MII、PHY转载 2019-12-17 12:15:59 · 2343 阅读 · 0 评论 -
cgicc 上传大文件失败问题
cgicc 上传大文件失败问题问题现象上传小文件正常,上传文件大于10M 时失败问题分析1,初步怀疑可用内存不够导致说明:当前板子的 RAM 大小为128M验证方法:更换大容量RAM 的板子验证结果:使用 RAM 大小为1G 的板子,上传大文件一切正常,说明就是内存不够。由此引出下面两个问题:1,同样是128M内存,为什么mt7688 平台没有问题?2,上传文件到底用了多少内存...原创 2019-11-04 13:52:53 · 675 阅读 · 0 评论 -
使用spiflash reboot 失败的问题
转载 reboot 失败的问题转载 2019-10-24 11:36:35 · 459 阅读 · 0 评论 -
GPT PMBR size mismatch 解决方法
GPT PMBR size mismatch 解决方法parted -l 修复分区表原创 2018-10-19 10:42:58 · 26147 阅读 · 0 评论 -
shell 动态变量名
shell 中的动态变量名avr_0=avr_1=avr_2=avr_3=avr_4=avr_5=avr_6=avr_7=# 赋值 avr_x = for i in $(seq 0 7)doeval avr_${i}=${i}done# 取值for i in $(seq 0 7)dotmp=$(eval echo '$'avr_${i})eval echo ...原创 2019-07-02 09:19:38 · 4765 阅读 · 0 评论 -
内核oops错误调试学习笔记
驱动开发中遇到的 oops 问题,导致内核崩溃,log 一般如下形式 Unable to handle kernel paging request at virtual address bfb10be0 pgd = c0003000 [bfb10be0] *pgd=80000040006003, *pmd=47ab3003, *pte=00000000 Internal error: Oo...原创 2019-07-03 12:29:56 · 2677 阅读 · 0 评论 -
linux /proc 文件系统学习
/proc 文件系统的作用/proc 文件系统本来目的是提供关于系统中运行的进程的信息,到后来成为了用户空间与内核进行通信的一种手段。可以参考文章:Linux内核通信之—proc文件系统(详解) - 逝去的浪花 - 优快云博客这里自己写一个模块理解 /proc 文件系统 的使用,实现 cat /proc/my_proc/verison 可以查看模块版本信息。/proc 文件的创建pr...原创 2019-07-04 16:02:21 · 619 阅读 · 0 评论 -
linux sysfs 学习笔记
初识/syslinux 的根目录下有一个/sys 目录,里面的内容如下# ls /sysblock class devices fs modulebus dev firmware kernel powersysfs 的作用sysfs is a ram-based filesystem initially based ...原创 2019-07-05 15:56:40 · 656 阅读 · 0 评论 -
linux下automake用法
此篇为转载好文:原文链接:linux下automake用法 - Rixu Blog (日需博客) - C++博客http://www.cppblog.com/gezidan/archive/2011/08/08/152772.html由于原文发布时间较早2012年,这里在原文的基础加点修正,以适合现在的automake版本。作为Linux下的程序开发人员,大家一定都遇到过Makefile,...转载 2019-08-14 12:25:17 · 1034 阅读 · 0 评论 -
sqlite3 命令行查看数据内容
sqlite3 简介SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,...原创 2019-08-26 09:21:45 · 15052 阅读 · 0 评论 -
使用 stress 命令对cpu进行压力测试
1.安装 stressapt-get install stress2.使用帮助stress --help`stress' imposes certain types of compute stress on your systemUsage: stress [OPTION [ARG]] ... -?, --help show this help statement...原创 2019-06-10 17:38:15 · 16743 阅读 · 0 评论 -
详解SPI中的极性CPOL和相位CPHA
收藏一篇好的文章,一目了然。详解SPI中的极性CPOL和相位CPHAhttps://www.cnblogs.com/shangdawei/p/4752476.html转载 2019-05-21 10:04:08 · 235 阅读 · 0 评论 -
linux figlet 制作 banner
figlet 制作 bannerapt-get install figletfiglet helloworldroot@debian:~# figlet HelloWorld _ _ _ _ __ __ _ _ | | | | ___| | | __\ \ / /__ _ __| | __| || |_| |/ _ ...原创 2019-01-03 11:00:04 · 713 阅读 · 0 评论 -
Linux 中断学习总结
tasklet 与 workque前半部与底半部原创 2018-12-25 16:02:32 · 299 阅读 · 0 评论 -
MT7688 wifi 调试
最近公司要用到MT7688的内置wifi,查了许多资料终于调通,过程也比较坎坷,在这里整理一下。1.先看官方文档:坑1:git://git.openwrt.org/15.05/openwrt.git 失效root@localhost:~# git clone git://git.openwrt.org/15.05/openwrt.git正克隆到 'openwrt'...fatal: r...原创 2018-12-17 12:02:50 · 8176 阅读 · 5 评论 -
linux 蓝牙串口 连接android手机调试
最近要用到 linux 与 android 蓝牙串口通信,整了两天总算弄通了。蓝牙模块用的是RealTek 8723B蓝牙驱动买模块时会提供的,编译安装就OK了。这里列一下调试串口的过程。安装 bluez (包含许多蓝牙管理工具)hciconfig -a 查看设备root@debian:~# hciconfig -ahci0: Type: BR/EDR Bus: USB ...原创 2018-11-15 15:17:24 · 2954 阅读 · 0 评论 -
Makefile 01
create_hex : create_hex.o cc -o create_hex create_hex.ocreate_hex.o : create_hex.c cc -c create_hex.cclean : rm -rf create_hex.o create_hex原创 2015-11-13 09:58:02 · 373 阅读 · 0 评论 -
Linux UDP编程
http://blog.youkuaiyun.com/chenjin_zhong/article/details/7256778转载 2014-11-06 15:48:52 · 403 阅读 · 0 评论 -
RHEL6.0 安装右键终端
安装图形界面后原创 2014-08-13 10:31:31 · 914 阅读 · 0 评论 -
redhat linux系统文本界面下安装图形界面
相信有很多朋友跟我一样在装系统时转载 2014-08-13 08:52:33 · 1220 阅读 · 0 评论 -
u-boot kernel 启动流程笔记
u-boot 启动流程u-boot 的最终目的:引导内核。1.设置cpu 为SVR模式2.关wacthdog3.关mmu4.读取内核到内存5.设置内核启动参数6.跳转到内核内核启动流程最终目的,执行应用程序1.head.S -> start_kernel2.一系列初始化3.解析u-boot传过来的启动参数3.打开/dev/console dup dup 对应于fd...原创 2019-01-29 15:43:57 · 1571 阅读 · 0 评论 -
平台总线、平台设备、平台驱动学习笔记
Allwinner H3 SPI驱动为例:spi-sun6i.cstatic struct platform_driver sun6i_spi_driver = { .probe = sun6i_spi_probe, .remove = sun6i_spi_remove, .driver = { .name = "sun6i-spi", .of_match_table = su...原创 2019-02-18 17:42:16 · 454 阅读 · 0 评论 -
linux crypto API 学习
linux 内核里实现了crypto模块,其用法介绍的很少:参考:linux-3.18.21/Documentation/crypto/api-intro.txt这提到 Many real examples are available in the regression test module (tcrypt.c).这里就来看一下 linux-3.18.21/crypto/tcrypt.c总结:要学习 linux crypto API ,可以直接参考 linux-3.18.21/crypto/t原创 2019-04-24 14:50:37 · 4902 阅读 · 0 评论 -
linux PCI设备驱动
1.PCI 简介2.PCI 驱动原创 2019-04-18 15:12:16 · 749 阅读 · 0 评论 -
settimeofday 设置时区不起作用
使用settimeofday 设置时区不起作用,代码如下:int set_time(struct tm *p_tm,int tzone){ struct timeval tv; struct timezone tz; tv.tv_sec = mktime(p_tm); tv.tv_usec = 0; tz.tz_minuteswest = tzone*-60; tz.tz_d...原创 2019-03-22 12:31:26 · 8864 阅读 · 1 评论 -
Linux 时钟框架学习笔记
以Allwinner H3 为例学习Linux 下的时钟框架。内核版本:linux-4.14.631.ccu的初始化从哪开始?/* drivers/clk/sunxi-ng/ccu-sun8i-h3.c */static void __init sun8i_h3_ccu_setup(struct device_node *node) { sunxi_h3_h5_ccu_init(no...原创 2019-03-11 11:15:34 · 1847 阅读 · 0 评论 -
linux开发环境搭建(debian)
1.安装系统Win10下使用rufus.exe制作Debian9.5启动盘_百度经验https://jingyan.baidu.com/article/48206aea932a88216bd6b373.html2.安装ssh>apt-get install openssh-clientapt-get install openssh-server如何配置允许root 登录>vi /etc/ssh/sshd_configPermitRootLogin yes3.安装samba原创 2019-03-14 14:33:05 · 778 阅读 · 0 评论 -
Linux ALSA声卡驱动系列文章
[Linux ALSA声卡驱动之一:ALSA架构简介](https://blog.youkuaiyun.com/DroidPhone/article/details/6271122)[Linux ALSA声卡驱动之二:声卡的创建](https://blog.youkuaiyun.com/DroidPhone/article/details/6289712)[Linux ALSA声卡驱动之三:PCM设备的创建](https://blog.youkuaiyun.com/DroidPhone/article/details/6308原创 2019-02-20 14:03:33 · 605 阅读 · 0 评论 -
DMA在ASOC声卡驱动中的使用
Linux 中DMA 的使用方法:dma_request_channel 申请一个chantx = dma_prep_xxxx 准备,tx结构体tx->callback = tx_callback; 设置回调dma_cookie = dmaengine_submit(tx); 提交dma_async_issue_pending(chan); 启动硬件开始传输...原创 2019-02-28 15:39:50 · 1500 阅读 · 0 评论 -
Linux DMA 内存拷贝与memcpy 速率比较
代码:#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/module.h>#include <linux/device.h> #include &a原创 2019-02-28 14:41:23 · 9772 阅读 · 2 评论 -
scanf()与getchar();
scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的。但是有时候却就是因为使用这些函数除了问题,却找不出其中的原因。下面先看一个很简单的程序:程序1: #include int main() {char ch1, ch2;scanf("%c", &ch1); scanf("%c", &ch2);p转载 2014-11-12 11:14:45 · 490 阅读 · 0 评论