树莓派开发6-配置树莓派的Linux内核
文章目录
- 配置树莓派的Linux内核
- 树莓派Linux内核编译
- 文件系统
- Linux内核驱动基础框架
- 驱动测试步骤
树莓派学习笔记,本文图片文字皆为转述
配置树莓派的Linux内核
驱动两种加载方式:* 编译进内核 zImage包含了驱动M 模块方式生成驱动文件xxx.ko 系统启动后,通过命令inmosd xxx.ko 加载
内核配置:ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make bcm2709_defconfig指定ARM架构 指定编译器 树莓派 主要核心指令
树莓派Linux内核编译
1 编译:ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make -j4 zImage modules dtbs指定用多少电脑资源进行编译zImage生成内核镜像modules要生成驱动模块dtbs生成配置文件
2 编译成功后,看到源码树目录多了vmlinux,失败则无此文件成功后,目标zImage镜像arch/arm/boot底下
3 打包zImage成树莓派可用的xxx.img./scripts/mkknlimg arch/arm/boot/zImage ./kernel_new.img
4 数据拷贝mkdir data1 data2挂载U盘sudo mount /dev/sdb1 data1 一个fat分区,是boot相关的内容,kernel的imgsudo mount /dev/sdb2 data2 一个是ext4分区,也就是系统的根目录分区。安装modules, 设备驱动文件: hdmi usb wifi io ...sudo ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make INSTALL_MOD_PATH=/home/chenlc/data2 modules_install安装更新 kernel.img 文件,注意镜像名字是kernel7.img先备份cd /home/chenlc/data1cp kernel7.img kernel7OLD.img再把编译新生成的拷贝到data1,起名kernel7.imgcp kernel_new.img /home/chenlc/data1/kernel7.img拷贝配置文件cp arch/arm/boot/dts/.*dtb* /home/chenlc/data1
文件系统
1. 什么是文件系统?常规认知: 根目录文件系统是操作系统用于明确存储设备组织文件的方法。以上说的方法:就是文件管理系统(程序),简称文件系统
2. 文件系统(文件管理系统的方法)的种类有哪些?FAT VFAT NTFS EXT1/2/3/4 HFS ....树莓派查看文件系统的命令: df -Tvfat : boot(bootloader, kernel)ext4 : 根目录tmpfs : 内存文件系统
3. 什么是分区?windows: 随意(面向普通用户PC),目录即分区C(装系统的位置)也可以随意在C盘存放文件. D盘(用户随意发挥)Linux: 按照功能来分区,每个分区严格存放文件(开发者) 嵌入式系统可以分为4个区,分别是bootloader、 启动代码para、 启动代码向内核传递参数的位置kernel、 内核分区根分区等 文件系统结构
4. 什么是文件系统目录结构?常规认知: 根目录,不是分区,和windows不同
5. 什么虚拟文件系统Virtual File System ?vfs就是对各种文件系统的一个抽象,它为各种文件系统提供了一个通用的接口,
6. 虚拟文件系统有什么作用?简化应用程序员的开发不管是什么文件类型,不管文件是磁盘还是设备,都只用open read write统一操作
Linux内核驱动基础框架
a.驱动代码编写,参考pin4test.cb.编译内核1把驱动代码拷贝到driver/char2修改Makefile告诉编译器,要编译该驱动文件3 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make modules
驱动测试步骤
内核驱动装载:sudo insmod xxx.ko内核驱动卸载:sudo rmmod xxx 不需要写ko查看内核模块:lsmod验证步骤:
a.装载驱动
b. 驱动装载后生成设备 比如/dev/pin4,通过sudo chomd 666 dev/pin4 添加访问权限
c.运行测试程序调用驱动
d.内核的printk是内核的printf,通过dmesg查看打印消息
树莓派开发6-配置树莓派的Linux内核相关推荐
- 树莓派环境处理_树莓派开发环境配置
接上篇,准备树莓派开发环境的配置. 买回来的树莓派一般会带一个系统,在这里我建议自己定制系统,以树莓派桌面系统为蓝本搭建开发环境. 你需要准备一张 16G的高速TF卡,用以安装系统. 4B取消了全尺寸 ...
- Zynq-7000系列之linux开发学习笔记:编译Linux内核和制作设备树(六)
开发板:Zynq7030数据采集板 PC平台:Ubuntu-18.04 + MobaXterm 开发环境:Xilinx Vivado + SDK -18.3 交叉编译工具:arm-linux-gnue ...
- Linux 驱动开发 三十五:Linux 内核时钟管理
参考: linux时间管理,时钟中断,系统节拍_u010936265的博客-CSDN博客_系统节拍时钟中断 Linux内核时钟系统和定时器实现_anonymalias的专栏-CSDN博客_linux内 ...
- linux内核配置与编译,LINUX内核的配置与编译、安装
LINUX内核的配置与编译.安装 平台为VM RHEL 5.1 SERVER,所用的内核为linux-2.6.25. 可以到上下载相应的内核版本. 解压压缩包,并进入内核目录.下面是具体的步骤: 1. ...
- 【嵌入式Linux驱动开发】二十一、Linux内核自带的KEY驱动探索
君子应知进退方,时机不到且隐藏. 妆未梳成未见客,势弱稍时敛锋芒. 腹隐良谋待机至,东山再起斗志昂. 遥想曹刘煮酒事,高明刘备扮愚郎. 文章目录 一. Linux 内核自带 KEY 驱 ...
- Linux内核配置网口驱动,linux内核编译,配置本机驱动
1.前言 编译linux内核失败的原因很多时候就是驱动选错,适合自己本机的驱动没编译进去.面对特殊平台(或者有些洁癖者,我就是^_^),要编译精简内核,只要本机驱动,其他都不需要.面对内核里面这么多驱 ...
- Linux 驱动开发 三十四:Linux 内核定时器原理
参考文档: <Cortex -A7 MPCore Technical Reference Manual> 中 Chapter 9:Generic Timer. <ARM ® Arch ...
- Linux设备驱动开发详解-Note(5)---Linux 内核及内核编程(1)
Linux 内核及内核编程(1) 成于坚持,败于止步 Linux 2.6 内核的特点 Linux 2.6 相对于 Linux 2.4 有相当大的改进,主要体现在如下几个方面. 1.新的调度器 2.6 ...
- 【树莓派开发】使用树莓派在Linux环境下编写C语言代码
文章目录 前言 1.创建test.c文件 2.编译运行该文件 3.编译并链接两个源文件 结语 前言 如何使用树莓派编译C语言代码呢? 21年暑假的时候,学习编程的劲头高涨,然后冲动消费买了个树莓派4B ...
最新文章
- aiohttp 高并发web服务_【Python入门】50.异步IO之 asyncio实现异步操作
- helm的作用及v3版本的架构变化概述
- 从Wiesloch火车站到SAP Walldorf总部的交通方式
- 技术分享:开源矿工的超频
- 深度学习 Caffe 初始化流程理解(数据流建立)
- 轻量级.Net Core服务注册工具CodeDi发布啦
- usb长包数据结束判断_如何判断南桥好坏 判断南桥好坏方法介绍【详解】
- 开放性实践活动微信客服_什么是开放组织中的实践社区?
- FCC 基础JavaScript 练习6
- 如何理解Beta分布和Dirichlet分布?
- Java实习日记(5)
- 沉默的潜意识音频Creator软件
- 导出的CSV数据中含有身份证并在Excel正确显示方法
- html5禁用右侧滚轮条,鼠标滚轮终于不乱跳了,自己动手更换鼠标滚轮编码器 雷柏7100=================...
- Tableau制作全球电影数据分析/全球超市利润混合地图
- 服务网关 Zuul基本使用
- 关于IPv6(超详细讲解)
- [转帖]实时协同设计CAD平台
- 《编程之美——微软技术面试心得》一摞烙饼的排序初体验
- 评分卡模型开发(六)--WOE值计算
热门文章
- Complexer-YOLO:基于语义点云的实时三维目标检测与跟踪
- 3D点云two-stage目标检测方法优化综述
- 基于自动驾驶车辆的激光雷达与摄像头之间的在线标定算法
- 子域名绑定html,DEDE二级域名(多站点)绑定详解
- LeetCode 51. N皇后
- 欧几里德结构数据与 非欧几里德结构数据
- netty发送数据_【Netty】JAVA IO模型
- 零基础入门学习Python(2)
- WR:微生物污染源解析中宿主特异性标记物在中国的表现特征
- Python使用matplotlib可视化散点图、并在可视化图像的底部和右边添加边缘直方图、自定义边缘直方图的色彩(Marginal Histogram)