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

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

全志F1C100s主线linux入坑记录 (1)linux系统移植_第1张图片

二、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)

全志F1C100s主线linux入坑记录 (1)linux系统移植_第2张图片
设置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;

全志F1C100s主线linux入坑记录 (1)linux系统移植_第3张图片

3.编译Uboot

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

编译报错缺少python环境
全志F1C100s主线linux入坑记录 (1)linux系统移植_第4张图片安装python环境

apt install python
sudo apt-get install python-dev

报错重定义问题
全志F1C100s主线linux入坑记录 (1)linux系统移植_第5张图片打开对应的文件注解重定义部分

vi include/configs/suniv.h

全志F1C100s主线linux入坑记录 (1)linux系统移植_第6张图片

编译完成 生成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

全志F1C100s主线linux入坑记录 (1)linux系统移植_第7张图片

三、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

出现报错:
全志F1C100s主线linux入坑记录 (1)linux系统移植_第8张图片
解决方法安装依赖

apt-get install flex
apt-get install bison

3.编译linux内核

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

编译生成生zImage和dtb 文件
全志F1C100s主线linux入坑记录 (1)linux系统移植_第9张图片

4.烧录linux内核

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

内核分区
全志F1C100s主线linux入坑记录 (1)linux系统移植_第10张图片

根目录文件系统分区

全志F1C100s主线linux入坑记录 (1)linux系统移植_第11张图片

四、根目录文件系统移植

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 选项下如图配置
全志F1C100s主线linux入坑记录 (1)linux系统移植_第12张图片
修改c库 为gilbc 因为部分软件必须在使用这个c库编译 使能buildroot 内部编译器c++等一堆编译支持
配置在 ->Toolchain 路径下 具体配置如图

全志F1C100s主线linux入坑记录 (1)linux系统移植_第13张图片
系统配置 在->System configuration下
全志F1C100s主线linux入坑记录 (1)linux系统移植_第14张图片

3.编译buildroot

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

编译完成

全志F1C100s主线linux入坑记录 (1)linux系统移植_第15张图片

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,嵌入式硬件,单片机,驱动开发)