IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 树莓派3b+学习linux内核 -> 正文阅读

[系统运维]树莓派3b+学习linux内核

ubuntu1604虚拟机下交叉编译树莓派3b+内核。文件系统使用原生raspian的

Step 1

下载 2020-02-13-raspbian-buster.img(地址)并使用rasp Imager将其烧录到sd卡。这个版本的系统貌似默认使用kernel7.img(kernel8就是64bit的系统了),不放心可以在/boot/config.txt中添加kernel=kernel7.img

Step2

安装必要的包

sudo apt-get update
sudo apt-get install bc build-essential git unzip
sudo apt-get install kernel-package libncurses5-dev

Step3

下载rasp使用的kernel以及工具链

git clone --depth=1 -b rpi-4.14.y https://github.com/raspberrypi/linux.git
git clone https://github.com/raspberrypi/tools

export PATH=$PATH:/home/fang/Desktop/raspberry2/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/
export PATH=$PATH:/home/fang/Desktop/raspberry2/tools/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin

source ~/.bashrc

Step4

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig

如有必要,进一步进行定制

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

编译

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs -j8

rasp3b+的设备树在?arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts

Step5

安装到sd卡

sudo scripts/mkknlimg arch/arm/boot/zImage /media/fang/boot/kernel7.img
sudo cp arch/arm/boot/dts/*.dtb /media/fang/boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /media/fang/boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /media/fang/boot/overlays/
sudo make ARCH=arm INSTALL_MOD_PATH=/media/fang/rootfs/ modules_install

进入raspian后,uname -a查看是否是自己编译的系统。

后续kernel module编写,Makefile可以如下

##单文件module版本Makefile
obj-m := helloworld.o

#KERNELDIR ?= /lib/modules/$(shell uname -r)/build
KERNELDIR ?= /home/fang/Desktop/raspberry2/linux

all default: modules
install: modules_install

modules modules_install help clean:
	$(MAKE) -C $(KERNELDIR) M=$(shell pwd) $@ CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm


##多文件module版本Makefile
#obj-m := helloworld.o
#helloworld-objs := file1.o file2.o file3.o ...
#
##KERNELDIR ?= /lib/modules/$(shell uname -r)/build
#KERNELDIR ?= /home/fang/Desktop/raspberry2/linux
#
#all default: modules
#install: modules_install
#
#modules modules_install help clean:
#	$(MAKE) -C $(KERNELDIR) M=$(shell pwd) $@ CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm

参考

Raspberry Pi Documentation - The Linux kernel

https://blog.csdn.net/Blazar/article/details/88777101

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 12:16:02  更:2022-04-26 12:19:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:51:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码