记录自制linux的过程1(pcb及原理图后面会开源)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了记录自制linux的过程1(pcb及原理图后面会开源),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3995字,纯文字阅读大概需要6分钟。
内容图文
![记录自制linux的过程1(pcb及原理图后面会开源)](/upload/InfoBanner/zyjiaocheng/923/a321d215e7d746c9adbb07797524a87f.jpg)
环境搭建
镜像编译:
#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卡第二个分区目录
内容总结
以上是互联网集市为您收集整理的记录自制linux的过程1(pcb及原理图后面会开源)全部内容,希望文章能够帮你解决记录自制linux的过程1(pcb及原理图后面会开源)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。