Linux驱动开发重要操作汇总

本文主要记录imx6ull的linux驱动开发过程中常用的一些操作。

uboot编译

前提是打开UBOOT顶层的Makefile文件,直接给 ARCH 和CORSS_COMPILE 赋值:

也就是加上这两句

objectivec 复制代码
ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-

直接输入交叉编译工具链的可执行路径。

之后即可使用简易的编译指令

复制代码
make distclean

make mx6ull_14x14_evk_emmc_defconfig

make V=1 -j4

如何SD卡烧录uboot

参考这篇文章里的代码烧写部分

I.MX6U裸机-汇编LED灯实验_mdk i.mx6-CSDN博客

sd卡启动方式拨码如下:

烧写命令如下:

复制代码
./imxdownload u-boot.bin /dev/sdd

注意,要烧写到自己的sd卡中,不能烧写到/dev/sda 或 sda1 里面

kernel编译

修改顶层 Makefile,直接在顶层 Makefile 文件里面定义 ARCH 和 CROSS_COMPILE 这两个的变量值:

复制代码
ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-

因为我的系统中有两个交叉编译工具链,所以需要用绝对路径指定要用的是哪一个。

结果如下图所示:

注释掉之前的,然后分别设置了 ARCH 和 CROSS_COMPILE 这两个变量的值,这样在编译的时候就不用输入很长的命令了。

之后执行如下命令来编译

第一次编译 Linux 内核之前先清理一下

复制代码
make clean

配置 Linux 内核

复制代码
make imx_v7_mfg_defconfig
相关推荐
xywww1689 小时前
大模型 API 选型实战:GPT、Gemini、Claude 接入时该看哪些指标?
运维·服务器·人工智能·python·gpt·langchain
梦想的颜色12 小时前
【Docker原理】Docker 容器一文打尽:生命周期、环境管控、迁移备份、日志进程排查、垃圾清理
运维·docker·容器·容器生命周期·容器日志排查·容器迁移备份·容器进程管理
donoot14 小时前
Linux系统下图书馆级电子书全自动标准化分类整理完整实施方案
大数据·linux·运维·电子书管理
ITKEY_15 小时前
macOS brew 安装的nginx 文件在哪里?
运维·nginx·macos
Felix-lxd15 小时前
Ubuntu 22.04 配置 Nginx
linux·nginx·ubuntu
Elastic 中国社区官方博客15 小时前
如何比较两个 Elasticsearch 索引并找出缺失的文档
大数据·运维·数据库·elasticsearch·搜索引擎
Tim_Van16 小时前
在 CentOS 7 中安装 Chromium 的完整步骤
linux·运维·chrome·centos
2023自学中16 小时前
C++ 内存追踪器
linux·c++
孫治AllenSun17 小时前
【Nginx】配置参数和使用案例
运维·nginx
啵啵鱼爱吃小猫咪18 小时前
Ubuntu 20.04 + ROS Noetic 源码安装 libfranka 0.8.0 和 franka_ros 0.8.0 完整教程
linux·运维·ubuntu