全志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
二、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系统移植相关推荐
- 全志F1C100s主线linux入坑记录 (6)音视频播放(视频播放软解)
音视频播放(视频播放软解) 百度网站 文章目录 音视频播放(视频播放软解) 一.音频播放 1.声卡驱移动植入 (1)下载安装声卡补丁 (2)配置声卡 (3)linux内核编译烧录 (4)使用声卡 二. ...
- 全志F1C100s主线linux入坑记录 (3)适配其他分辨率的LCD
适配其他分辨率的LCD 百度网站 文章目录 适配其他分辨率的LCD 一.修改U-boot屏幕参数 二.修改linux内核文件 三.测试效果 一.修改U-boot屏幕参数 修改对应屏幕的参数(我这里是1 ...
- 全志F1C100s主线linux入坑记录 (10)调试串口更改
调试串口更改 百度网站 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 调试串口更改 前言 uboot 修改 一.修改设备树 二.修改文件 3. 修改内核传递参数 内核修改 ...
- 全志F1C100s主线linux入坑记录 (7)GBA模拟器移植
GBA模拟器移植 百度网站 文章目录 GBA模拟器移植 一.下载gpsp 源代碼 二.gpsp环境配置 参考 一.下载gpsp 源代碼 gpsp源码 解压文件 7z x gpsp.7z 二.gpsp环 ...
- 米大师服务端接入坑记录
米大师服务端接入坑记录 近期因为项目需要接入应用宝的米大师支付,在接入中遇到一些坑,这里记录以下,以便方便需要的朋友参考. 主要是以下几个需要注意的问题: 文档混乱,腾讯应用开放平台和米大师支付等地方 ...
- Lichee Zero 荔枝派 零 入坑记录
Lichee Zero 荔枝派 零 入坑记录 参考官方网站 http://zero.lichee.pro buildroot-2019.08-rc1 busybox-1.31.0 重编译 修改gett ...
- 3D建模入坑记录——挑选3D建模软件
背景 最近手痒,想搞一些小手工.盘点了一下,电路板什么的都有,工具也第一时间下单买了台锯和手钻.但是有些支架不总数能凑到合心意的样子.干脆痛下决心买个3D打印机.趁快递都延误在路上,上手学一下3D建模 ...
- X10SLH-N6-ST031入坑记录1
前言 最近看着别人搞All in one虚拟机,手痒的紧,刚好淘宝推荐里看到了这块6口万兆的板子,觉得挺合适,就趁着中秋假期急忙入手了,把玩了几天,把几个坑先记录一下,也方便坑友入坑. 1.为啥选X1 ...
- Linux入门第三天——linux命令(二)
用户和用户组管理 用户管理包括用户与组账号的管理. 在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限. Unix/Lin ...
最新文章
- 财务需要学python-财务方面的学生如何学习python?
- 工作中Oracle常用的SQL
- Mozilla 放出新的 Firefox 3.5 RC 版本(RC 3)
- Hibernate中使用Criteria查询及注解——(HibernateUtil)
- 【0718作业】收集和整理面向对象的六大设计原则
- BeanFactoryPostProcessor接口(容器后处理器)
- C语言实例:三个数从小到大排序
- IDL学习——调用enviTask对高分2号影像进行预处理
- python如何绘制曲线图_如何使用Python的Pandas库绘制折线图
- hosts文件路径及文件介绍
- Android Studio 消除Manifest文件中的黄色背景警告
- Ubuntu 挂在硬盘、内存
- 免费拥有个人云主机——AWS免费EC2套餐
- c语言车队,狂野飙车8车队中c车的详细属性介绍
- 《社交app攻击风险应对策略》
- Rosalind第68题:Counting Optimal Alignments
- 谷粒学院(十五)JWT | 阿里云短信服务 | 登录与注册前后端实现
- 渣基础:比照Hawstein学Cracking the coding interview(1)
- webug4.0通关笔记---(第一天:布尔注入)
- MATLAB的global变量