全志F1C100s入坑与填坑 uboot Linux Kernel 与buildroot

news/2024/11/7 18:42:55/

全志F1C100s
入手了几块全志的板子准备玩一玩随便记录一下!!
如图 是一块荔枝派 Nano

在这里插入图片描述
从sipeed官网可得如下介绍
官网传送门-----》 sipeed
在这里插入图片描述
Nano 硬件参数#
硬件参数
CPU: 全志 F1C100s, ARM 926EJS , 最高 900MHz

内存:

集成32MB DDR
存储:

预留SOP8 SPI Flash焊盘(可定制贴片8~32MB SPI Nor Flash);
板载 TF卡座,可TF启动。
显示:

通用 40P RGB LCD FPC座
可直插常见的40P 4.3/5/7寸屏幕(板载背光驱动),通过转接板可插50P 7/9寸屏
支持常见的272x480, 480x800, 1024x600等分辨率
板载电阻式触摸屏芯片,另配合底板可适配电容触摸屏
支持 720P 视频输出
支持 H.264 / MPEG 等视频流解码
通信接口

SDIO,可搭配配套SDIO WiFi+BT 模块
SPI x2
TWI x3
UART x3
OTG USB x1
TV out
下面开始入坑!!!

uboot

首先获取uboot源码

git clone https://gitee.com/LicheePiNano/u-boot.git
cd u-boot# 查看分支
git branch -a
# 切换到 Nano 分支
git checkout nano-lcd800480
# 此处告知make采用arm-linux-gnueabi下的所有交叉编译工具,目标架构为Arm,设定各项默认配置为 nano 的spiflash支持版
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- f1c100s_nano_uboot_defconfig# 若不带spi-flash的板子,请换成 licheepi_nano_defconfig# 进行可视化配置
make ARCH=arm menuconfig

我这里使用的屏幕分辨率是800 x 480
需要去修改一下配置
第一步
ARM architecture --> Enable graphical uboot console on HDMI, LCD or VGA 为 Y
第二步
LCD panel timing details 为:
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
在这里插入图片描述
开始编译

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

在这里插入图片描述
成功生成了 u-boot-sunxi-witch-spl.bin文件
在这里u-boot已经编译完成
下一步开始编译Linux

Linux

第一步 获取Linux源码

git clone https://gitee.com/LicheePiNano/Linux.git

使用./arch/arm/configs/f1c100s_nano_linux_defconfig配置文件

make ARCH=arm f1c100s_nano_linux_defconfig

修改设备树支持LCD屏幕

Nano的设备树在源码的
linux --> arch --> arm --> boot --> dts --> suniv-f1c100s-licheepi-nano.dts;

改为适配800X480的屏,此处应当:

/ { }所包裹的根节点目录下,panel属性下的compatible,应修改为:
“lg,lb070wv8”, “simple-panel”
在这里插入图片描述

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8  
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8 INSTALL_MOD_PATH=out modules 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8 INSTALL_MOD_PATH=out modules_install 

最后生成zImage文件与dtb文件
内核img文件:./arch/arm/boot/zImage
设备树dtb文件:./arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dtb
下一步编译buildroot

buildroot

首先安装一些依赖,比如linux头文件:

apt-get install linux-headers-$(uname -r)
wget https://buildroot.org/downloads/buildroot-2021.02.4.tar.gz
tar xvf buildroot-2021.02.4.tar.gz
cd buildroot-2021.02.4/
make menuconfig

make menuconfig

以下选项为基础配置:

  • Target options
    • Target Architecture (ARM (little endian))
    • Target Variant arm926t
  • Toolchain
    • C library (musl) # 使用musl减小最终体积
  • System configuration
    • Use syslinks to /usr … # 启用/bin, /sbin, /lib的链接
    • Enable root login # 启用root登录
    • Run a getty after boot # 启用登录密码输入窗口
    • (123456) Root password # 默认账户为root 密码为licheepi

另可自行添加或删除指定的软件包
如下图所示

在这里插入图片描述
在这里插入图片描述
开始编译!!!

make

根文件系统编译花费时间较长

把编译好的文件准备好之后下面开始烧录进flash了

编译和使用sunxi-tools

烧录需要这个工具

git clone https://github.com/Icenowy/sunxi-tools.git -b f1c100s-spiflash

安装依赖库

sudo apt install libz libusb-1.0-0-dev
make
make install

在flash芯片第一脚 飞出一根线在板子USB上电时与GND连接 启动后然后断开连接
在这里插入图片描述
然后连接到Ubuntu
可以通过下面命令查看是否连接成功

sudo sunxi-fel ver

在这里插入图片描述

烧写u-boot

sunxi-fel -p spiflash-write 0 ../u-boot/u-boot-sunxi-with-spl.bin

然后等待下载完成即可完成uboot烧写
在这里插入图片描述

烧写Linux&dtb

sudo sunxi-fel -p spiflash-write 0x0100000 ../Linux/arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dtb
sudo sunxi-fel -p spiflash-write 0x0110000 ../Linux/arch/arm/boot/zImage

烧写文件系统
在buildroot
/licheepi_nano/buildroot-2021.02.4/output/images生成了一个rootfs.tar文件

在这里插入图片描述
然后解压到一个目录

sudo tar -xvf rootfs.tar -C /home/dwh/f1c100s/rootfs

使用mkfs.jffs2 工具把/rootfs转为img文件

sudo mkfs.jffs2 -s 0x100 -e 0x10000 --pad=0xAF0000 -d rootfs/ -o jffs2.img

烧录

sudo sunxi-fel -p spiflash-write 0x510000 ../../f1c100s/jffs2.img

最后看看效果吧u-boot成功启动
在这里插入图片描述
屏幕也显示了荔枝派开机的Logo
在这里插入图片描述

最后成功进入文件系统
在这里插入图片描述

遇到的问题,试过一次出现Linux内核启动后进入不了文件系统的情况

[    1.550893] ALSA device list:
[    1.560150]   #0: Loopback 1
[    1.569966] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    1.590760] cfg80211: failed to load regulatory.db
[    1.603821] EXT4-fs (mmcblk0p2): couldn't mount as ext3 due to feature incompatibilities
[    1.670528] EXT4-fs (mmcblk0p2): recovery complete
[    1.683334] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.703641] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    1.724527] devtmpfs: mounted
[    1.738167] Freeing unused kernel memory: 1024K
[    1.814266] request_module: kmod_concurrent_max (0) close to 0 (max_modprobes: 50), for module binfmt-0000, throttling...
[    6.888833] request_module: modprobe binfmt-0000 cannot be processed, kmod busy with 50 threads for more than 5 seconds now
[    6.928203] Starting init: /sbin/init exists but couldn't execute it (error -8)
[    7.029799] request_module: kmod_concurrent_max (0) close to 0 (max_modprobes: 50), for module binfmt-0000, throttling...
[   12.088839] request_module: modprobe binfmt-0000 cannot be processed, kmod busy with 50 threads for more than 5 seconds now
[   12.129497] Starting init: /bin/sh exists but couldn't execute it (error -8)
[   12.179874] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance.
[   12.213491] CPU: 0 PID: 1 Comm: swapper Not tainted 4.15.0-rc8-licheepi-nano+ #4
[   12.234051] Hardware name: Allwinner suniv Family
[   12.245560] [<c010e550>] (unwind_backtrace) from [<c010b6a8>] (show_stack+0x10/0x14)
[   12.266672] [<c010b6a8>] (show_stack) from [<c0116878>] (panic+0xb8/0x230)
[   12.286927] [<c0116878>] (panic) from [<c06652bc>] (kernel_init+0xd4/0x10c)
[   12.307407] [<c06652bc>] (kernel_init) from [<c0107dc0>] (ret_from_fork+0x14/0x34)
[   12.328601] Rebooting in 5 seconds..
[   18.314583] Reboot failed -- System halted

解决方法出现编译文件系统然后出现烧录。


http://www.ppmy.cn/news/180431.html

相关文章

全志V3s学习记录(1)资料汇总

文章目录 一、相关网站论坛二、开发环境分类2.1 Camdriod官方SDK2.2 主线Uboot Bsp内核2.3 主线Uboot 主线Linux 三、芯片资源介绍3.1 Lichee Zero功能概述 一、相关网站论坛 SIPEED—矽速科技—荔枝派资料下载站 荔枝派Zero 用户指南 荔枝派github 荔枝派Zero指南-看云 …

全志D1/D1s芯片:芒果派麻雀点RGB屏填坑

前言 最近全志推出了D1处理器&#xff0c;搭载平头哥玄铁906 RISC-V的应用处理器。于是准备入手玩一下&#xff0c;买了芒果派做了基于D1s的麻雀板&#xff0c;D1s是D1内封64M DDR的版本&#xff0c;去掉了hdmi输出,号称点屏强芯&#xff0c;点个屏来玩玩。 先晒下小巧精致的麻…

k8s节点扩容与缩容

#使用镜像&#xff1a;ikubernetes/myapp:v1 1个master节点2个node节点 [rootmaster ~]# kubectl get nodes -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME master …

全志V3S Linux 开发过程回记

半年没有碰linux了&#xff0c;一直在玩ESP32&#xff0c;把esp32的人脸识别、语音识别、百度AI识别都摸了个遍 &#xff0c;搞完这些开源出来后&#xff0c;竟然没人喜欢&#xff0c;瞬间就觉得没意思 于是&#xff0c;重新捡起linux开发&#xff0c;我是从全志V3S入门&#x…

荔枝派 zero(全志V3S)-编译及SD烧录

之前买了个荔枝派&#xff0c;全志的A3S芯片。折腾了两天&#xff0c;写一下编译和SD烧录的过程。 目录 1.直接烧录镜像文件 2.uboot编译 3.kernel编译 4.rootfs编译 5.烧录 6.串口登录 1.直接烧录镜像文件 百度到了一堆的资料&#xff0c;下面是网盘链接 链接&#x…

电网电压及中国TN-S系统学习

目前各国的室内电压大体分为两种&#xff1a;100V~130V&#xff0c;220V~240V两个类型。 100V、110V~130V被归类低压&#xff0c;如美国、日本等以及船上的电压&#xff0c;注重安全&#xff1b;220V~240V被称为高压&#xff0c;其中包括中国的220伏及英国的230伏和很多欧洲国…

k8s(三)、kube-router: K8S BGP直通网络CNI方案

前言 上一篇讲到&#xff0c;k8s使用traefik代理集群内部服务&#xff0c;灵活地注入代理配置的方式&#xff0c;提供7层对外服务&#xff08;参考&#xff1a;k8s&#xff08;二&#xff09;、对外服务&#xff09;。在本篇&#xff0c;使用kube-router的cni&#xff0c;实现…

RISC-V (CH32V103)与Cortex-M3内核(CH32F103)单片机中断延时测评

最近在学习RISC-V架构的MCU&#xff0c;特地学习了一下“中断处理机制”&#xff0c;对比之前使用过的Cortex-M3内核单片机&#xff0c;研究它们在中断执行和处理上的差异和效率。 样品选择 CH32V103C8T6和CH32F103C8T6 CH32V103C8T6&#xff0c;沁恒微电子的RSIC-V架构32位…