Linux驱动学习——内核编译

devtools/2024/10/9 6:42:23/

1、从官网下载适合板子的Linux内核版本

选择什么版本的内核需要根据所使用的硬件平台而定,最好使用硬件厂商推荐使用的版本

https://www.kernel.org/pub/linux/kernel/ 

2、将压缩包复制到Ubuntu内进行解压

sudo tar -xvf linux-2.6.32.2-mini2440-20150709.tgz

 然后进入该目录,以下3、4、5操作都在内核源码的顶层目录下进行,及该文件的顶层目录

3、拷贝默认配置到 .config。

cp config_mini2440_td35 .config 

4、打开可视化配置菜单(内核活地图)

make menuconfig 

在菜单里选择需要的功能,这里不做修改,选择默认的功能即可 

5、编译uImage

 make uImage

编译后发现报错 

打开 kernel/timeconst.pl修改第373行代码

372     @val = @{$canned_values{$hz}};
373     if (!defined(@val)) {                                                                                                        
374         @val = compute_values($hz);
375     }
376     output($hz, @val);
377 }
378 exit 0;

将defined删掉

然后再编译

出现 Image arch/arm/boot/uImage is ready 表示编译成功,但也不完全成功

然后将uImage拷贝到tftpboot

6、打开minicom进入uboot

 分别输入

tftp 0x30008000 uImage

bootm 0x30008000

会发现内核启动失败

检测到有未定义指令,CPU复位

 进入arch/arm/boot/Makefile,修改为0x30008040

 修改后再重新编译,更新tftpboot里的uImage,就能成功启动操作系统了


http://www.ppmy.cn/devtools/123242.html

相关文章

Brave编译指南2024 MacOS篇-更新与维护(七)

引言 在上一篇文章中,我们成功构建并运行了Brave浏览器。然而,浏览器开发是一个持续的过程,Brave和Chromium都在不断更新。本文将介绍如何保持你的Brave构建与最新版本同步,以及如何处理更新过程中可能遇到的问题。 1. 更新Brav…

epoll究竟是同步的还是异步的?

简单说一句话,你需要分层看这个事: epoll 这个系统调用,是同步的,也就是必须等待操作系统返回值。 而底层用了 epoll 的封装后的框架,可以是异步的,只要你暴露给外部的接口,无需等待你的返回值…

原生input实现时间选择器用法

2024.10.08今天我学习了如何用原生的input&#xff0c;实现时间选择器用法&#xff0c;效果如下&#xff1a; 代码如下&#xff1a; <div><input id"yf_start" type"text"> </div><script>$(#yf_start).datepicker({language: zh…

3.C语言入门:解锁基础概念,动手实现首个C程序

C语言入门&#xff1a;解锁基础概念&#xff0c;动手实现首个C程序 文章目录 C语言入门&#xff1a;解锁基础概念&#xff0c;动手实现首个C程序前言一、源文件和头文件1.1 如何新建项目1.2 添加头文件和源文件 二、第一个C语言程序1.创建一个源文件2.写代码3.运行代码 三、mai…

[Algorithm][贪心][可被三整除的最大和][距离相等的条形码][重构字符串]详细讲解

目录 1.可被三整除的最大和1.题目链接2.算法原理详解3.代码实现 2.距离相等的条形码1.题目链接2.算法原理详解3.代码实现 3.重构字符串1.题目链接2.算法原理详解3.代码实现 1.可被三整除的最大和 1.题目链接 可被三整除的最大和 2.算法原理详解 思路&#xff1a;正难则反 贪…

云原生(四十五) | ECS服务器项目部署实战

文章目录 ECS服务器项目部署实战 一、ECS服务器项目部署说明 二、下载WordPress 三、部署WordPress需要哪些应用 ECS服务器项目部署实战 一、ECS服务器项目部署说明 案例&#xff1a;为了让大家更好的理解ECS服务器的使用场景&#xff0c;我们通过一个比较经典的WordPres…

grpc和http的区别

当面试官问到gRPC和HTTP的区别时&#xff0c;你可以从以下几个方面进行回答&#xff1a; 协议层次&#xff1a; gRPC&#xff1a;gRPC是一个现代的、开源的、高性能的远程过程调用&#xff08;RPC&#xff09;框架&#xff0c;它使用HTTP/2作为传输协议&#xff0c;并使用Pro…

RK3568平台开发系列讲解(I2C篇)i2c 总线驱动介绍

🚀返回专栏总目录 文章目录 一、i2c 总线定义二、i2c 总线注册三、i2c 设备和 i2c 驱动匹配规则沉淀、分享、成长,让自己和他人都能有所收获!😄 i2c 总线驱动由芯片厂商提供,如果我们使用 ST 官方提供的 Linux 内核, i2c 总线驱动已经保存在内核中,并且默认情况下已经…