linux系统移植 (基于SD卡启动)

百度网站


文章目录

  • linux系统移植 (基于SD卡启动)
  • 一、安装gcc交叉编译器
  • 二、Uboot移植
    • 1.下载Uboot 源码
    • 2.配置Uboot
    • 3.编译Uboot
  • 三、Linux内核移植
    • 1.下载linux 内核文件
    • 2.配置linux内核
    • 3.编译linux内核
    • 4.烧录linux内核
  • 四、根目录文件系统移植
    • 1.下载buildroot文件
    • 2.配置buildroot
    • 3.编译buildroot
    • 4.烧录buildroot
  • 参考

一、安装gcc交叉编译器

下载安装包
wget http://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabi/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz
解压
tar -xvf gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz
复制文件
sudo cp -r ./gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi /opt/
设置环境变量
sudo vim /etc/bash.bashrc

文件末尾添加以下内容

PATH="$PATH:/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin"

使路径生效

source /etc/bash.bashrc

测试是否成功安装

arm-linux-gnueabi-gcc -v

二、Uboot移植

1.下载Uboot 源码

获取荔枝派适配好的uboot源码

git clone https://github.com/Lichee-Pi/u-boot.git -b nano-v2018.01&&cd u-boot
cd u-boot查看分支
git branch -a
切换到 Nano 分支
git checkout nano-lcd800480

2.配置Uboot

安装依赖

sudo apt-get install gcc make cmake rsync wget unzip build-essential git bc swig libncurses-dev libpython3-dev libssl-dev python3-distutils android-tools-mkbootimg -y

SD卡启动设置配置文件

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- licheepi_nano_defconfig

可视化配置

make ARCH=arm menuconfig

配置 ARM architecture -> Enable graphical uboot console on HDMI, LCD or VGA 为Y
在底下括号输入LCD参数 800*480 屏幕参数 :
x:800,y:480,depth:18,pclk\khz:33000,le:87,ri:40,up:31,lo:13,hs:1,vs:1,sync:3,vmode:0
配置 ARM architecture ->LCD panel backlight pwm pin 输入PE6 (设置背光引脚为PE6)


设置bootcmd

配置 Enable boot arguments 为Y
输入参数:console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw

配置 Enable a default value for bootcmd 为Y
输入参数:load mmc 0:1 0x80008000 zImage;load mmc 0:1 0x80c08000 suniv-f1c100s-licheepi-nano.dtb;bootz 0x80008000 - 0x80c08000;

3.编译Uboot

 开始编译
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j12

编译报错缺少python环境
安装python环境

apt install python
sudo apt-get install python-dev

报错重定义问题
打开对应的文件注解重定义部分

vi include/configs/suniv.h

编译完成 生成u-boot-sunxi-with-spl.bin 文件 使用dd命令烧入到sd卡 8k偏移处

sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8

安装Linux u盘分区软件

sudo apt-get install gparted

三、Linux内核移植

1.下载linux 内核文件

这里Linux内核选择了荔枝派适配的Linux5.2版本的,推荐选择这个版本,兼容性比较好

下载文件
https://github.com/Lichee-Pi/linux/tree/nano-5.2-tf
解压
sudo unzip linux-nano-5.2-tf.zip
或者直接git
git clone -b nano-5.2-tf  https://github.com/Lichee-Pi/linux.git

2.配置linux内核

下载官方配置文件替换

wget http://dl.sipeed.com/LICHEE/Nano/SDK/config
cd linux-nano-5.2-tf
cp config .config或者直接
make ARCH=arm licheepi_nano_defconfig

可视化配置

make ARCH=arm menuconfig

出现报错:

解决方法安装依赖

apt-get install flex
apt-get install bison

3.编译linux内核

 开始编译
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j12

编译生成生zImage和dtb 文件

4.烧录linux内核

插入SD卡进行分区 使用之前Uboot移植时安装的分区软件

内核分区

根目录文件系统分区

四、根目录文件系统移植

1.下载buildroot文件

基于buildroot制作根目录文件系统

安装依赖
apt-get install linux-headers-$(uname -r)
下载2017版本(2017版本有mplayer)
wget https://buildroot.org/downloads/buildroot-2017.08.tar.gz (发现报错网站证书已过期)
wget --no-check-certificate  https://buildroot.org/downloads/buildroot-2017.08.tar.gz (使用该命令下载)
解压
tar xvf buildroot-2021.02.4.tar.gz
进入源码
cd buildroot-2017.08

2.配置buildroot

make menuconfig

选择芯片架构 ->Target options 选项下如图配置

修改c库 为gilbc 因为部分软件必须在使用这个c库编译 使能buildroot 内部编译器c++等一堆编译支持
配置在 ->Toolchain 路径下 具体配置如图


系统配置 在->System configuration下

3.编译buildroot

buildroot 需要先下载软件的安装包,网络不好的或许要编译很久
make -j12

编译完成

4.烧录buildroot

在 ./output/images/ 下面会生成一个 rootfs.tar 文件 虚拟机插入SD卡 命令行拷贝的SD卡的第二分区rootfs中解压

拷贝
cp output/images/rootfs.tar /media/yuwei/rootfs/
跳转路径
cd /media/yuwei/rootfs/
解压
tar -xvf rootfs.tar

根目录文件系统制作完毕,板子插入SD卡开机可进入Linux系统

参考

https://whycan.com/t_7275.html
https://wiki.sipeed.com/soft/Lichee/zh/Nano-Doc-Backup/index.html

全志F1C100s主线linux入坑记录 (1)linux系统移植相关推荐

  1. 全志F1C100s主线linux入坑记录 (6)音视频播放(视频播放软解)

    音视频播放(视频播放软解) 百度网站 文章目录 音视频播放(视频播放软解) 一.音频播放 1.声卡驱移动植入 (1)下载安装声卡补丁 (2)配置声卡 (3)linux内核编译烧录 (4)使用声卡 二. ...

  2. 全志F1C100s主线linux入坑记录 (3)适配其他分辨率的LCD

    适配其他分辨率的LCD 百度网站 文章目录 适配其他分辨率的LCD 一.修改U-boot屏幕参数 二.修改linux内核文件 三.测试效果 一.修改U-boot屏幕参数 修改对应屏幕的参数(我这里是1 ...

  3. 全志F1C100s主线linux入坑记录 (10)调试串口更改

    调试串口更改 百度网站 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 调试串口更改 前言 uboot 修改 一.修改设备树 二.修改文件 3. 修改内核传递参数 内核修改 ...

  4. 全志F1C100s主线linux入坑记录 (7)GBA模拟器移植

    GBA模拟器移植 百度网站 文章目录 GBA模拟器移植 一.下载gpsp 源代碼 二.gpsp环境配置 参考 一.下载gpsp 源代碼 gpsp源码 解压文件 7z x gpsp.7z 二.gpsp环 ...

  5. 米大师服务端接入坑记录

    米大师服务端接入坑记录 近期因为项目需要接入应用宝的米大师支付,在接入中遇到一些坑,这里记录以下,以便方便需要的朋友参考. 主要是以下几个需要注意的问题: 文档混乱,腾讯应用开放平台和米大师支付等地方 ...

  6. Lichee Zero 荔枝派 零 入坑记录

    Lichee Zero 荔枝派 零 入坑记录 参考官方网站 http://zero.lichee.pro buildroot-2019.08-rc1 busybox-1.31.0 重编译 修改gett ...

  7. 3D建模入坑记录——挑选3D建模软件

    背景 最近手痒,想搞一些小手工.盘点了一下,电路板什么的都有,工具也第一时间下单买了台锯和手钻.但是有些支架不总数能凑到合心意的样子.干脆痛下决心买个3D打印机.趁快递都延误在路上,上手学一下3D建模 ...

  8. X10SLH-N6-ST031入坑记录1

    前言 最近看着别人搞All in one虚拟机,手痒的紧,刚好淘宝推荐里看到了这块6口万兆的板子,觉得挺合适,就趁着中秋假期急忙入手了,把玩了几天,把几个坑先记录一下,也方便坑友入坑. 1.为啥选X1 ...

  9. Linux入门第三天——linux命令(二)

    用户和用户组管理 用户管理包括用户与组账号的管理. 在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限. Unix/Lin ...

最新文章

  1. 财务需要学python-财务方面的学生如何学习python?
  2. 工作中Oracle常用的SQL
  3. Mozilla 放出新的 Firefox 3.5 RC 版本(RC 3)
  4. Hibernate中使用Criteria查询及注解——(HibernateUtil)
  5. 【0718作业】收集和整理面向对象的六大设计原则
  6. BeanFactoryPostProcessor接口(容器后处理器)
  7. C语言实例:三个数从小到大排序
  8. IDL学习——调用enviTask对高分2号影像进行预处理
  9. python如何绘制曲线图_如何使用Python的Pandas库绘制折线图
  10. hosts文件路径及文件介绍
  11. Android Studio 消除Manifest文件中的黄色背景警告
  12. Ubuntu 挂在硬盘、内存
  13. 免费拥有个人云主机——AWS免费EC2套餐
  14. c语言车队,狂野飙车8车队中c车的详细属性介绍
  15. 《社交app攻击风险应对策略》
  16. Rosalind第68题:Counting Optimal Alignments
  17. 谷粒学院(十五)JWT | 阿里云短信服务 | 登录与注册前后端实现
  18. 渣基础:比照Hawstein学Cracking the coding interview(1)
  19. webug4.0通关笔记---(第一天:布尔注入)
  20. MATLAB的global变量

热门文章

  1. android编译时忽略某些error
  2. 华擎主板bios设置图解_华擎主板BIOS设置程序手册.pdf
  3. 怎么的测试用例是一个好的测试用例?
  4. Android.bp入门教程
  5. 我的专业偶像作文计算机,我的崇拜的偶像作文(通用5篇)
  6. mdio clause22 clause45以及marvell直接寻址/间接寻址的使用说明--基于mv88e6390 交换机
  7. 【微信生态圈】-谈谈我的学习经验
  8. GOP、IDR、CAR、BLA、RASL、RADL
  9. centos8 免密登录
  10. Serializable的含义