Linux 驱动开发与 Raspberry Pi

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