![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux系统移植
Linux系统uboot、内核、根文件系统学习记录
JavonPeng
提得起,放得下,提放自如,方是自在人
展开
-
【Linux开发环境搭建】Visual Studio Code(VScode)下载安装配置
一、下载安装1、官网:https://code.visualstudio.com/2、安装:双击安装或者使用以下命令:sudo dpkg -i code_1.43.2-1585036376_amd64.deb3、进入/usr/share/applications 目录中,把VScode复制到桌面二、安装插件C/C++ 基础 C/C++ Snippets ......原创 2020-04-06 12:54:20 · 12954 阅读 · 1 评论 -
【Linux开发环境搭建】arm-linux-gcc交叉编译工具链安装
(1)下载arm-linux-gcc-4.4.3.tar.gz方法一:sudo apt-get install gcc-arm-linux-gnueabihfsudo apt-get install g++-arm-linux-gnueabihf方法二:http://www.arm9.net/download.asp(2) 将编译器拷贝到/usr/local/arm文件夹sudo cp arm-linux-gcc-4.4.3.tar.gz /usr/local/arm/ -..原创 2020-12-07 22:38:47 · 662 阅读 · 0 评论 -
Linux启动方式设置(bootargs 和 bootcmd 环境变量)
bootargsbootargs 保存着 uboot 传递给 Linux 内核的参数。bootargs 环境变量设置:console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw参数含义console=ttymxc0设置 linux 终端,串口 1 的设备文件是/dev/ttymxc0115200设置串口的波特率root=/dev/mmcblk1p2根文件系统存放在 mmcblk1 设备的分区 2 ,即EMMC原创 2021-01-04 10:14:09 · 11765 阅读 · 3 评论 -
【Linux】uboot 中网络环境变量设置
setenv ipaddr 192.168.1.105 //开发板 IP 地址setenv ethaddr 00:02:9a:01:d1:31 //开发板网卡 MAC 地址setenv gatewayip 192.168.1.1 //开发板默认网关setenv netmask 255.255.255.0 //开发板子网掩码setenv serverip 192.168.1.103 //服务器地址,也就是 Ubuntu 地址saveenv原创 2021-01-02 20:48:31 · 3881 阅读 · 0 评论 -
【Linux】IMX6ULL的 U-Boot 与裸机SD卡烧写与启动
1、查询当前挂载的存储设备,确定插入的SD卡名称:ls /dev/sd*2、给imxdownload可执行权限chmod 777 imxdownload3、向 SD 卡烧写 bin 文件./imxdownload <.bin file> <SD Card>./imxdownload u-boot.bin /dev/sdb1...原创 2021-01-02 18:15:43 · 1282 阅读 · 0 评论 -
【Linux】IMX6ULL裸机镜像制作工具源码
creat_imx.c#include "stdio.h"#include "stdlib.h"#include "string.h"#include "create_imx.h"#define SHELLCMD_LEN (200)#define BIN_OFFSET (3072)/* 此宏指明是否打印u-boot.imx的IVT DCD表信息,不同的开发板其IVT和DCD * 表的数据是不同的,因此需要获取所使用的开发板的IVT和DCD表信息,最 * 简单的方法就是读取开发板配套原创 2021-01-02 17:56:27 · 502 阅读 · 0 评论 -
Linux根文件系统(rootfs)目录详情及用法概念
根目录下子目录和文件: /bin 系统需要的可执行文件,一般都是一些命令,比如 ls、mv等命令。此目录下的命令所有的客户都可以使用。 /dev 设备文件 /etc 配置文件 /lib Linux 所必须的库文件。共享库。命令和用户编写的应用程序要使用这些库文件 /mnt 临时挂载目录,一般是空目录,可以...原创 2020-12-05 15:38:19 · 2625 阅读 · 0 评论 -
VScode 内核源码阅读与修改设置
注:以下均基于 IMX6ULL 芯片修改,其他芯片对应修改即可。VScode基础设置参考文章:Visual Studio Code下载安装配置1、隐藏多余的文件.vscode/settings.json 修改如下:{ "search.exclude": { "**/node_modules": true, "**/bower_components": true, "**/*.o":true, "**/*.su"..原创 2020-07-20 15:35:19 · 7844 阅读 · 1 评论 -
Linux 内核(Kernel)组成分析
一、Linux内核简介Linux 内核采用宏内核架构,即 Linux 大部分功能都会在内核中实现,如进程管理、内存管理、设备管理、文件管理以及网络管理等功能,它们是运行在内核空间中(也可以称之为特权模式下运行)。而微内核,它仅仅是将内核的基本功能放入内核中,如进程管理、进程调度等,而其他的设备管理、文件管理等功能都放在内核空间之外(即运行在非特权模式下)。Linux 内核组成 :L...原创 2020-05-08 16:48:59 · 9080 阅读 · 0 评论 -
IMX6的U-boot.imx分析及sd卡烧录详解(dd命令写入)
一、U-boot.imx的组成IMX6solo资料地址u-boot.imx = IVT +Boot Data + DCD + u-boot.binIVT数据格式:IVT 包含了镜像程序的入口点、指向 DCD 的指针和一些用作其它用途的指针名称 含义 header IVT头部,标识IVT、IVT长度、版本信息 entry 入口地址,第...原创 2020-04-24 15:23:04 · 3882 阅读 · 0 评论 -
【Linux系统移植】NXP 官方开发板 uboot 编译与烧录
1、下载NXP 官方 I.MX6ULL EVK 开发板的uboot :uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz22、使用 FileZilla Client 将 uboot拷贝到ubuntu3、解压tar -xjvf uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2解压出来的文件:4、编译uboot...原创 2020-04-06 00:51:35 · 2775 阅读 · 0 评论 -
【Linux系统移植】U-boot移植
移植U-boot主要步骤表:添加主板默认配置文件 mx6ull_iot_emmc_defconfig (官方mx6ull_14x14_evk_emmc_defconfig) 添加主板对应的头文件 include/configs 目录下添加头文件mx6ull_iot_emmc.h (官方mx6ullevk.h) 配置或者裁剪 u...原创 2020-04-06 01:51:48 · 742 阅读 · 0 评论 -
【Linux系统移植】U-Boot编译、烧写与使用
一、U-Boot 简介 Linux 系统要启动就必须需要一个 bootloader 程序,也就说芯片上电以后先运行一段bootloader程序。这段bootloader程序会先初始化DDR等外设,然后将Linux内核从flash(NAND, NOR FLASH,SD,MMC 等)拷贝到 DDR 中,最后启动 Linux 内核。二、U-Boot 编译 (1)解压uboot源码...原创 2020-03-23 00:11:56 · 2931 阅读 · 0 评论 -
【Linux系统移植】U-boot工程目录分析
U-boot工程目录文件(夹)名称 描述 I.MX6ULL相关文件 备注 文件夹 api 与硬件无关的 API 函数 uboot 自带 arch 与架构体系有关的代码 arm、imx-common borad 不同板子(开发板)的定制代码 freescale、mx6u相关...原创 2020-03-28 13:26:03 · 296 阅读 · 0 评论 -
【Linux系统移植】U-Boot命令使用(U-Boot命令表整理)
U-Boot命令表 信息查询命令 help help 或者 ?+命令 帮助查看其他命令的使用方法 printenv(print) printenv...原创 2019-12-06 14:25:46 · 899 阅读 · 0 评论 -
【Linux系统移植】NXP 官方开发板 kernel内核 编译与烧录
1、下载NXP 官方 I.MX6ULL EVK 开发板的kernel:linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz22、使用 FileZilla Client 将 uboot拷贝到ubuntu3、解压tar -xjvf linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2解压出来的文件:4、安装库(1...原创 2020-04-12 16:23:40 · 3830 阅读 · 1 评论 -
【Linux系统移植】kernel移植
一、移植kernel主要步骤表: 添加开发板默认配置文件 arch/arm/configs 目录添加 imx_iot_emmc_defconfig (官方imx_v7_mfg_defconfig) 添加开发板对应的设备树文件 1、arch/arm/boot/dts目录添加imx6ull-iot-emmc.dts...原创 2020-04-13 01:19:33 · 1665 阅读 · 11 评论 -
【Linux系统移植】添加自己的设备树文件
一、新增自己的设备树文件进入arch/arm/boot/dts 设备树文件目录下cd arch/arm/boot/dts# 拷贝一份设备树文件cp sun8i-v3s-licheepi-zero.dts sun8i-v3s-licheepi-zero-480x272.dts二、修改Makefile文件修改arch/arm/boot/dts目录下的Makefile,在dtb-$(CONFIG_MACH_SUN8I)配置项最后加入sun8i-v3s-licheepi-zero-480x272-m原创 2021-03-21 16:33:49 · 1252 阅读 · 1 评论 -
【Linux系统移植】使用BusyBox构建根文件系统
使用BusyBox 构建根文件系统、BusyBox 官网:https://busybox.net/ make defconfigmake menuconfigmake install CONFIG_PREFIX=/home/pjw/linux/nfs/rootfs...原创 2020-04-25 16:03:09 · 904 阅读 · 0 评论 -
【Linux系统移植】Buildroot 根文件系统构建
busybox 1、只是构建一些常用的命令和文件。 2、lib 库文件,驱动开发分第三方软件(alsa、iperf、mplayer)等需要自己移植。 3、默认没有用户名和密码设置。 Buildroot 1、包含busybox 2、集成了各种常见的第三方库和软件。 3、可以构建交叉编译工具链、根文件系统、uboot 以及 Linux 内核镜像。 4、相比更简单,类似内核配置的操作,容易理解,编译要求的配置和磁盘空间要求较小 ..原创 2020-07-19 19:30:13 · 2125 阅读 · 1 评论 -
【Linux开发环境搭建】VIM编辑器的安装与使用
一、VIM编辑器安装使用以下命令安装VIMsudo apt-get install vim二、VIM编辑器使用使用以下命令编辑文件,如果不存在会自动创建vim demo.c三、VIM编辑器命令(1)切换到输入模式的命令i 在当前光标所在字符的前面,转为输入模式 I 在当前光标所在行的行首转换为输入模式 a (常用)在当前光标所在字符的后...原创 2020-03-22 02:29:12 · 668 阅读 · 0 评论 -
【Linux开发环境搭建】arm-linux-gnueabihf 交叉编译工具链安装
一、下载编译器Linaro GCC 编译器,arm-linux-gnueabihf 4.9版本二、安装编译器(1)ubuntu新建tool文件夹放工具mkdir /home/pjw/linux/tools(2)使用FTP客户端把编译器拷贝(gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz)过来(...原创 2020-03-22 02:02:35 · 18578 阅读 · 1 评论 -
【Linux开发环境搭建】NFS服务开启与使用、目录挂载与卸载
一、Ubuntu端配置: Ubuntu下使用以下命令安装NFS服务: sudo apt-get install nfs-kernel-server portmap 创建一个nfs文件夹,路径:/home/pjw/linux/nfs mkdir /home/pjw/linux/nfs/给予NFS目录可读可写可执行权限(文件或文件夹给权限后变为绿色)sudo c...原创 2019-12-06 10:08:10 · 2154 阅读 · 0 评论 -
【Linux开发环境搭建】TFTP服务开启与使用
一、Ubuntu端TFTP服务器配置: Ubuntu下使用以下命令安装TFTP服务:(安装 tftp-hpa 和 tftpd-hpa) sudo apt-get install tftp-hpa tftpd-hpa创建一个TFTP文件夹mkdir /home/pjw/linux/tftpboot给予TFTP目录可读可写可执行权限(文件或文件夹给权限后变为绿色)chm...原创 2019-11-28 18:03:23 · 2082 阅读 · 0 评论 -
【Linux开发】MFGtool工具
一、MFGtool工具文件解析:工具根文件夹: Document 存放与该工具相关的文档 Drivers Windows 32 位和 64 位操作系统的驱动 More_scripts 存放脚本文件 Profile 镜像文件 Mfg...原创 2019-12-12 20:34:04 · 1302 阅读 · 1 评论 -
【Linux裸机实验】SD烧录与启动
1、编写代码,Makefile 文件 ,make生成bin文件使用的编译链: arm-linux-gnueabihf-gcc 将 .s 编译为对应的.o 文件 arm-linux-gnueabihf-ld 将所有的.o 文件链接到一个指定的链接位置 arm-linux-gnueabihf-objcopy ...原创 2020-03-22 22:47:48 · 497 阅读 · 2 评论 -
【Linux裸机实验】BSP工程管理实验
编写Makefile(裸机通用)/*定义编译器*/CROSS_COMPILE ?= arm-linux-gnueabihf-/*定义目标名*/TARGET ?= bsp/*定义编译工具名*/CC := $(CROSS_COMPILE)gccLD := $(CROSS_COMPILE)ldOBJCOPY := $(CROSS_COMPILE)objc...原创 2019-11-28 14:14:15 · 262 阅读 · 0 评论 -
【Linux裸机实验】LED实验
所有文件:.vscode: Visual Studio Code工程文件SI:Source Insight工程文件imxdownload:SD卡烧写工具编写汇编部分(start.S).global _start /* 全局标号 *//* * 描述: _start函数,程序从此函数开始执行,此函数主要功能是设置C * 运行环境。 */_start:...原创 2019-11-14 14:21:18 · 534 阅读 · 0 评论 -
嵌入式Linux系统运行基础组件及其概念
系统运行基础组件:uboot、内核(kernel)、设备树(dtb)、根文件系统(rootfs)Linux烧录文件 u-boot 【u-boot.imx】 u-boot的镜像文件 内核(kernel) 【zImage】 内核的镜像文件 设备树(dtb) 【xx.dtb】 根文件系统(rootfs) 【rootfs.tar.b...原创 2019-12-12 16:04:43 · 461 阅读 · 1 评论 -
Linux嵌入式开发环境搭建步骤
注:点击对应文字进入下载地址或者教程1、安装虚拟机VMware2、虚拟机内安装ubuntu系统,16.04版本3、Windows和虚拟机(Ubuntu)系统之间文件(文字)复制粘贴4、Ubuntu 和 Windows 文件互传(FTP服务)5、安装VIM 编辑器6、Ubuntu 下 NFS(教程)和 SSH 服务开启7、Ubuntu下 TFTP 服务开启7、安装...原创 2020-03-22 01:08:20 · 1043 阅读 · 0 评论