Linux 驱动开发与 Raspberry Pi

发布时间:2026/7/10 12:45:57

Linux 驱动开发与 Raspberry Pi
系统信息Linux hxkj 6.18.34rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.18.34-1rpt1 aarch64 GNU/Linux Raspberry Pi OS (64-bit) A port of Debian Trixie with the Raspberry Pi Desktop (2026-06-09)一、资料1、Linux Driver Development with Raspberry Pi®Practical Labshttps://www.openvisionnetworks.com/dist/Linux%20Driver%20Development%20with%20Raspberry%20Pi%20-%20Practical%20Labs.pdf配套资料https://github.com/ALIBERA/linux_raspberrypi_book/tree/main2、Learn Raspberry Pi with Linuxhttp://www.multimedialab.be/doc/erg/2018-2019/Raspberry_Pi/Learn_Raspberry_Pi_with_Linux.pdf3、raspberrypi linux内核源码https://github.com/raspberrypi/linux4、树莓派原理图https://shumeipai.nxez.com/raspberry-pi-schematics5、BCM2837B0:处理器介绍https://www.raspberrypi.com/documentation/computers/processors.html二、常用指令和设置1、查看cpu信息hxkjhxkj:~$ cat /proc/cpuinfo processor : 0 BogoMIPS : 38.40 Features : fp asimd evtstrm crc32 cpuid CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4 processor : 1 BogoMIPS : 38.40 Features : fp asimd evtstrm crc32 cpuid CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4 processor : 2 BogoMIPS : 38.40 Features : fp asimd evtstrm crc32 cpuid CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4 processor : 3 BogoMIPS : 38.40 Features : fp asimd evtstrm crc32 cpuid CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4 Revision : a22082 Serial : 00000000cd23dc47 Model : Raspberry Pi 3 Model B Rev 1.22、查看当前使用的内核版本在 Raspberry Pi 的终端中执行uname -r命令hxkjhxkj:~$ uname -r 6.18.34rpt-rpi-v8 hxkjhxkj:~$ uname -a Linux hxkj 6.18.34rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.18.34-1rpt1 (2026-06-09) aarch64 GNU/Linux hxkjhxkj:~$想在控制台看到 Linux 的启动信息在/boot/firmware目录下的 cmdline.txt 文件中添加 loglevel8 参数hxkjhxkj:~$ sudo nano /boot/firmware/cmdline.txt hxkjhxkj:~$ sudo cat /boot/firmware/cmdline.txt [sudo] password for hxkj: consoleserial0,115200 consoletty1 rootPARTUUID1e93f09e-02 rootfstypeext4 fsck.repairyes rootwait quiet splash plymouth.ignore-serial-consoles dsnocloud;irpi-imager-1781156531259 cfg80211.ieee80211_regdomCN loglevel83、查看/更改当前控制台日志等级查看当前控制台日志等级hxkjhxkj:~$ cat /proc/sys/kernel/printk 3 4 1 3更改当前控制台日志等级echo loglevel /proc/sys/kernel/printk如echo 4 /proc/sys/kernel/printk所有的内核消息都会出现在控制台中因为所有优先级高于 8 的消息即日志级别较低的消息都会被显示出来。请注意在重启后这种配置会重置。永久配置的话只需在/etc/sysctl.conf文件中添加以下内核值然后重新启动即可kernel.printk 8 4 1 3 hxkjhxkj:/etc$ sudo nano /etc/sysctl.conf hxkjhxkj:/etc$ sudo reboot4、查看所有GPIO的状态gpioinfosudo apt install gpiod -y # 列出所有gpiochip与引脚 gpiodetect gpioinfohxkjhxkj:~/Desktop/zzzdriver/tp_sourcecode $ gpioinfo gpiochip0 -54lines: line0:ID_SDAinput line1:ID_SCLinput line2:GPIO2input line3:GPIO3input line4:GPIO4input line5:GPIO5input line6:GPIO6input line7:GPIO7input line8:GPIO8input line9:GPIO9input line10:GPIO10input line11:GPIO11input line12:GPIO12input line13:GPIO13input line14:GPIO14input line15:GPIO15input line16:GPIO16input line17:GPIO17input line18:GPIO18input line19:GPIO19input line20:GPIO20input line21:GPIO21input line22:GPIO22input line23:GPIO23input line24:GPIO24input line25:GPIO25input line26:GPIO26outputconsumerregulator-panelline27:GPIO27input line28:NCinput line29:LAN_RUN_BOOTinput line30:CTS0input line31:RTS0input line32:TXD0input line33:RXD0input line34:SD1_CLKinput line35:SD1_CMDinput line36:SD1_DATA0input line37:SD1_DATA1input line38:SD1_DATA2input line39:SD1_DATA3input line40:PWM0_OUTinput line41:PWM1_OUTinput line42:ETH_CLKinput line43:WIFI_CLKinput line44:SDA0input line45:SCL0input line46:SMPS_SCLinput line47:SMPS_SDAoutput line48:SD_CLK_Rinput line49:SD_CMD_Rinput line50:SD_DATA0_Rinput line51:SD_DATA1_Rinput line52:SD_DATA2_Rinput line53:SD_DATA3_Rinput gpiochip1 -2lines: line0: unnamed outputconsumerACT line1: unnamed input gpiochip2 -8lines: line0:BT_ONoutputconsumershutdownline1:WL_ONoutput line2:STATUS_LEDoutput line3:LAN_RUNoutput line4:HDMI_HPD_Ninput line5:CAM_GPIO0outputconsumercam1_regulatorline6:CAM_GPIO1output line7:PWR_LOW_NinputconsumerPWR5、菜单设置sudo raspi-config6、开启串口方法1方法2修改/boot/firmware/config.txt添加以下内容enable_uart1修改/boot/cmdline.txtconsoletty17、开机界面关闭彩虹条修改/boot/firmware/config.txt添加以下内容#禁用彩虹屏 disable_splash1修改/boot/firmware/cmdline.txt,在行末尾用空格分隔添加以下参数(该文件所有内容都在同一行不要换行仅在末尾追加参数。)logo.nologo quiet loglevel3 vt.global_cursor_default0logo.nologo隐藏内核启动时的树莓派图标quiet屏蔽大部分启动过程的文字输出loglevel3仅保留警告及以上级别的系统日志vt.global_cursor_default0隐藏控制台的闪烁光标三、添加自定义驱动1、添加显示驱动2、添加触摸驱动四、问题汇总1、vscode ssh连接失败方案 手动删除 known_hosts 文件对应行打开路径C:\Users\Administrator.ssh\known_hosts用记事本打开找到对应ip地址行删除整行保存文件重启 VS Code

相关新闻

《The Communication-Friendly Privacy-PreservingMachine Learning against Malicious Adversaries》

《The Communication-Friendly Privacy-PreservingMachine Learning against Malicious Adversaries》

2026/7/9 15:26:49

一、研究背景目前PPML主要依赖安全多方计算(MPC)技术,使多个参与方能够在不泄露各自数据的情况下共同完成机器学习计算。然而,目前已有的大多数MPC方案存在两个问题:1. 大部分协议只考虑半诚实(Semi-honest…

查询服务器RAID卡-lspci命令

查询服务器RAID卡-lspci命令

2026/7/7 0:23:14

说明 老服务器使用sas卡,需要lspci 工具查询 安装工具 yum install -y pciutils查询RAID卡型号 lspci | grep -i "raid\|sas"03:00.0 RAID bus controller: Broadcom / LSI MegaRAID SAS 2208 [Thunderbolt] (rev 05)

音圈电机双闭环PID控制:提升精密定位性能的关键技术

音圈电机双闭环PID控制:提升精密定位性能的关键技术

2026/7/7 9:34:11

1. 项目概述音圈电机作为一种直接驱动的直线电机,凭借其高加速度、高响应速度和高精度等特性,在精密制造、半导体设备、医疗仪器等领域有着广泛应用。但想要充分发挥其性能优势,控制策略的选择与实现尤为关键。双闭环PID控制策略通过位置环和…

终极解决方案:3分钟彻底修复DistroAV插件NDI Runtime缺失问题

终极解决方案:3分钟彻底修复DistroAV插件NDI Runtime缺失问题

2026/7/10 12:41:35

终极解决方案:3分钟彻底修复DistroAV插件NDI Runtime缺失问题 【免费下载链接】obs-ndi DistroAV (formerly OBS-NDI): NDI integration for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-ndi DistroAV(原名OBS-NDI)是…

工业负载控制方案:TPD2015FN与PIC18F47Q10实战解析

工业负载控制方案:TPD2015FN与PIC18F47Q10实战解析

2026/7/10 12:41:35

1. 工业负载控制的核心挑战与方案选型 在工业自动化、机器人控制等高需求场景中,电感和电阻负载的精确控制一直是系统设计的难点。这类负载通常具有以下特征: 电感负载(如电机、继电器线圈)在开关瞬间会产生高达工作电压数倍的反…

NBM5100A电池增强器:提升纽扣电池性能与寿命

NBM5100A电池增强器:提升纽扣电池性能与寿命

2026/7/10 12:41:35

1. 项目背景与核心需求在物联网设备和小型便携式电子产品中,纽扣电池(如CR2032)和锂亚硫酰电池因其体积小、能量密度高而广受欢迎。然而这类电池存在两个致命缺陷:一是放电电流能力有限(通常仅5-10mA)&…

如何轻松检测微信单向好友?WechatRealFriends实用指南

如何轻松检测微信单向好友?WechatRealFriends实用指南

2026/7/10 12:41:35

如何轻松检测微信单向好友?WechatRealFriends实用指南 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFriends …

3步彻底解决Windows软件无法启动的终极方案:VisualCppRedist AIO全解析

3步彻底解决Windows软件无法启动的终极方案:VisualCppRedist AIO全解析

2026/7/10 12:41:35

3步彻底解决Windows软件无法启动的终极方案:VisualCppRedist AIO全解析 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经在打开新游戏或专业…

哔咔漫画下载器:打造个人永久漫画库的专业解决方案

哔咔漫画下载器:打造个人永久漫画库的专业解决方案

2026/7/10 12:31:34

哔咔漫画下载器:打造个人永久漫画库的专业解决方案 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器,带图形界面 带收藏夹,已打包exe 下载速度飞快 项目地址: https://gitcode.com/gh_mir…

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

2026/7/9 19:40:56

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

6个月转型AI工程师:实战路径与核心技能

6个月转型AI工程师:实战路径与核心技能

2026/7/9 18:28:30

1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公…

YOLOv5模型剪枝与量化实战:边缘设备部署优化

YOLOv5模型剪枝与量化实战:边缘设备部署优化

2026/7/10 6:57:56

1. 项目背景与核心价值在计算机视觉领域,YOLOv5因其出色的实时检测性能成为工业界宠儿。但当我们尝试将其部署到边缘设备(如树莓派、Jetson Nano或手机终端)时,立刻会遇到两个致命问题:模型体积庞大(原始YO…

终极原神FPS解锁器完整指南:轻松突破60帧限制

终极原神FPS解锁器完整指南:轻松突破60帧限制

2026/7/10 0:00:42

终极原神FPS解锁器完整指南:轻松突破60帧限制 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 原神FPS解锁器是一款专为《原神》玩家设计的开源工具,通过先进的Wri…

YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?[特殊字符]

YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?[特殊字符]

2026/7/10 0:00:42

YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?🎵 【免费下载链接】YesPlayMusic 高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron: 项目地址: https://gitcode.com/gh_mirrors/ye/YesPlayMusic…

从零实现红黑树:手写C++的set与map容器

从零实现红黑树:手写C++的set与map容器

2026/7/10 0:00:42

1. 项目概述:从STL容器到自研轮子在C的日常开发中,std::set和std::map是我们再熟悉不过的伙伴了。它们一个负责管理不重复的集合,一个负责维护键值对映射,底层都依赖一颗高效的红黑树来保证数据的有序性和操作的性能。但你是否曾想…