ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

记录自制linux的过程1(pcb及原理图后面会开源)

2021-04-26 12:58:32  阅读:376  来源: 互联网

标签:原理图 make boot 编译 linux pcb ARCH arm


环境搭建

镜像编译:

#uboot:

1.下载根文件:

https://github.com/Lichee-Pi/u-boot.git -b v3s-current

需要安装python才能进行编译。且编译错误基本上是缺少相应的库,例如:

	apt-get install swig python-dev python3-dev

2. 编译过程:

2.1需要修改u-boot/include/configs/sun8i.h文件 加入:

#define CONFIG_BOOTCOMMAND "setenv bootm_boot_mode sec; "
"load mmc 0:1 0x41000000 zImage; "
"load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-dock.dtb; "
“bootz 0x41000000 - 0x41800000;”

#define CONFIG_BOOTARGS “console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw vt.global_cursor_default=0”

或者 对u-boot进行以下配置(是使用make ARCH=arm menuconfig后进行配置):

twait root=/dev/mmcblk0p2 earlyprintk rw vt.global_cursor_default=0
load mmc 0:1 0x41000000 zImage;oad mmc 0:1 0x41800000;sun8i-v3s-licheepi-zero-dock.dtb;bootz 0x41000000 - 0x41800000;

在这里插入图片描述

	cd u-boot #进入u-boot文件夹
	make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_800x480LCD_defconfig#选择编译
	#or make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero480x272LCD_defconfig
	#or make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_defconfig
	make ARCH=arm menuconfig#配置u-boot
	#若无法编译记得给权限:sudo 加命令
	time make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 2>&1 | tee build.log#开始编译

编译配置如下:

...
Target select (Support sunxi (Allwinner) SoCs)   进去之后可以选择sunxiSoc系列芯片 
...
[*] Sunxi SoC Variant     这个就是对芯片Soc 的选择,我们可以看到配置选择了`sun8i(Allwinner V3s)
(360) sunxi dram clock speed          配置dram的时钟速率
(14779) sunxi dram zq value             配置dram的ZQ值,是用来动态加强DDR3的
-*-Board uses DDR2 DRAM             使用DDR2 DRAM
SPL / TPL ---> 这个就是SPL相关的配置了
[*]   MMC raw mode: by sector            按扇区 
 (0x50)  Address on the MMC to load U-Boot from  mmc加载uboot的地址 
[*]Support GPIO                                 支持GPIO
[*] Support I2C   支持I2C 
[*] Support common libraries                    支持通用lib
[*]Support disk paritions                      支持分区
[*] Support generic libraries                   支持一般lib库 
[*] Support MMC                  支持MMC 
[*] Support power drivers                  支持电源驱动 
[*] Support serial                               支持串口

buildroot(根文件系统编译):

1. 下载根文件:

采用的是2018.2的根文件系统:
https://source.denx.de/u-boot/custodians/u-boot-imx

2. 配置根文件系统:

	make menuconfig#配置根文件

配置如下:
在这里插入图片描述
外部工具链配置

3. 编译:

 	make
 	#有错可能是需要make clean工程 或者需要加sudo

Linux主线4.13编译:

1. 下载linux核心:

采用的是5.10内核https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.10.y&id=aea70bd5a45591de27aac367af94d184892c06ab

2. 添加zero_编译配置

下载:https://github.com/Lichee-Pi/linux/blob/zero-4.13.y/arch/arm/configs/licheepi_zero_defconfig
把config放入linux核心的arch/arm/configs/文件夹下。(可以直接建应该deconfig,把内容复制进去)

3. 编译:

	cd linux
	make ARCH=arm licheepi_zero_defconfig#配置linux核心
	make ARCH=arm menuconfig   #add bluethooth, etc.
	编译内核:
	make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
	make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16 INSTALL_MOD_PATH=out modules
	make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16 INSTALL_MOD_PATH=out modules_install
    编译设备树: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs

烧录:

1. 准备文件:

linux核心源码位置:arch/arm/boot/下的zImage,out/下的驱动模块。 /arch/arm/boot/dts/
u-boot位置:u-boot-sunxi-with-spl.bin。
bulidroot文件:在output/images/下

2.烧录流程:

    	1) 删除TF卡所有分区,可以直接利用Gparted,或者windows下的磁盘分区创建工具删除sd卡的全部分区。
   		2) 将uboot写入到sd卡8k偏移处(必须8K偏移, brom龟腚的)。
        	 sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8
    	3) 建立第一个分区,大小32M(可以随意填写), 格式FAT16, 把zImage, sun8i-v3s-licheepi-zero-dock.dtb拷贝到 这个分区,例如:
        	 sudo cp zImage  /挂载的tf卡第二个分区目录
    	4) 建立第二个分区,用尽剩余空间,格式ext4, 把buildroot产生的rootfs.tar解压到该分区根目录
        	 sudo tar xvf rootfs.tar -C /挂载的tf卡第二个分区目录

标签:原理图,make,boot,编译,linux,pcb,ARCH,arm
来源: https://blog.csdn.net/qq_46604211/article/details/116024970

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有