695|0

81

帖子

3

TA的资源

一粒金砂(中级)

楼主
 

【玄铁杯第三届RISC-V应用创新大赛】LicheePi 4A+TF卡启动文件系统 [复制链接]

 

官方文档没有说怎么烧写系统到TF卡以及从TF卡启动系统,所以只能从另一个方向去实现TF卡启动系统,来获取更大的存储空间了。

 

首先通过电脑端挂载rootfs-sing.ext4看了一下文件系统文件没有问题,可以直接挂载,然后就通过imagewrite将文件系统直接烧写到TF卡内。

 

 

接着修改uboot启动参数,默认的参数如下:

Light LPI4A# printenv
aon_ram_addr=0xffffef8000
arch=riscv
audio_ram_addr=0x32000000
baudrate=115200
board=light-c910
board_name=light-c910
boot_conf_addr_r=0xc0000000
boot_conf_file=/extlinux/extlinux.conf
bootcmd=run bootcmd_load; bootslave; sysboot mmc ${mmcdev}:${mmcbootpart} any $boot_conf_addr_r $boot_conf_file;
bootcmd_load=run findpart;run load_aon;run load_c906_audio; load mmc ${mmcdev}:${mmcbootpart} $opensbi_addr fw_dynamic.bin
bootdelay=2
cpu=c9xx
eth1addr=ee:aa:13:3c:43:46
ethaddr=ee:aa:13:3c:43:45
fdt_addr_r=0x02800000
fdt_high=0xffffffffffffffff
fdtcontroladdr=ffba81f0
fdtfile=thead/light-lpi4a.dtb
finduuid=part uuid mmc ${mmcdev}:${mmcpart} uuid
fwaddr=0x10000000
gpt_partition=gpt write mmc ${mmcdev} $partitions
kdump_buf=180M
kernel_addr_r=0x00200000
load_aon=load mmc ${mmcdev}:${mmcbootpart} $fwaddr light_aon_fpga.bin;cp.b $fwaddr $aon_ram_addr $filesize
load_c906_audio=load mmc ${mmcdev}:${mmcbootpart} $fwaddr light_c906_audio.bin;cp.b $fwaddr $audio_ram_addr $filesize
mmcbootpart=2
mmcdev=0
opensbi_addr=0x0
partitions=name=table,size=2031KB;name=boot,size=500MiB,type=boot;name=root,size=-,type=linux,uuid=${uuid_rootfsA}
pxefile_addr_r=0x00600000
ramdisk_addr_r=0x06000000
scriptaddr=0x00500000
splashimage=0x30000000
splashpos=m,m
uuid_rootfsA=80a5a8e9-c744-491a-93c1-4f4194fd690a
vendor=thead

Environment size: 1311/131068 bytes

查看mmc设备,有两个,如下

 

默认是mmc0,先看看mmc0的分区,其中分区2是启动分区:

 

分区3是文件系统分区:

 

切换到mmc1看看:

 

通过ext4ls查看TF卡的文件系统

  

所有检查都没有问题,接着修改启动参数,从mmc1启动:

通过分析bootcmd参数,可以得知,最后是通过sysboot来启动系统的,启动参数位于/extlinux/extlinux.conf

所以需要先创建一个/extlinux/extlinux_tf.conf,里面将启动分区指向TF卡就行,下面是两个文件的内容:

extlinux.conf:

## /boot/extlinux/extlinux.conf
##
## IMPORTANT WARNING
##
## The configuration of this file is generated automatically.
## Do not edit this file manually, use: u-boot-update

default l0
menu title U-Boot menu
prompt 2
timeout 50


label l0
        menu label RevyOS GNU/Linux 5.10.113-lpi4a
        linux /Image
        fdtdir /dtbs/linux-image-5.10.113-lpi4a/

        append root=/dev/mmcblk0p3 console=ttyS0,115200 rootwait rw earlycon clk_ignore_unused loglevel=7 eth= rootrwoptions=rw,noatime rootrwreset=yes

label l0r
        menu label RevyOS GNU/Linux 5.10.113-lpi4a (rescue target)
        linux /vmlinux-5.10.113-lpi4a
        initrd /initrd.img-5.10.113-lpi4a
        fdtdir /dtbs/linux-image-5.10.113-lpi4a/
        append root=/dev/mmcblk0p3 console=ttyS0,115200 rootwait rw earlycon clk_ignore_unused loglevel=7 eth= rootrwoptions=rw,noatime rootrwreset=yes single

extlinux_tf.conf:

## /boot/extlinux/extlinux.conf
##
## IMPORTANT WARNING
##
## The configuration of this file is generated automatically.
## Do not edit this file manually, use: u-boot-update

default l0
menu title U-Boot menu
prompt 2
timeout 50


label l0
        menu label RevyOS GNU/Linux 5.10.113-lpi4a
        linux /Image
        fdtdir /dtbs/linux-image-5.10.113-lpi4a/

        append root=/dev/mmcblk1 console=ttyS0,115200 rootwait rw earlycon clk_ignore_unused loglevel=7 eth= rootrwoptions=rw,noatime rootrwreset=yes

label l0r
        menu label RevyOS GNU/Linux 5.10.113-lpi4a (rescue target)
        linux /vmlinux-5.10.113-lpi4a
        initrd /initrd.img-5.10.113-lpi4a
        fdtdir /dtbs/linux-image-5.10.113-lpi4a/
        append root=/dev/mmcblk0p3 console=ttyS0,115200 rootwait rw earlycon clk_ignore_unused loglevel=7 eth= rootrwoptions=rw,noatime rootrwreset=yes single

启动参数修改如下,首先是增加环境变量:

setenv bootcheck 'if mmc dev 1; then setenv boot_conf_file /extlinux/extlinux_tf.conf; else setenv boot_conf_file /extlinux/extlinux.conf;fi'

然后是修改启动参数:

bootcmd 'run bootcmd_load; bootslave; run bootcheck; sysboot mmc ${mmcdev}:${mmcbootpart} any $boot_conf_addr_r $boot_conf_file;'

这样,当又TF插入时就会从TF卡启动了。

 

启动之后查看文件系统挂载情况如下:

 

这里可以看到空间很小,需要手动resize一下tf卡分区:

 

resize之后的空间已经是58GB了,可以正常用了。

 

点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
Luminary系列所有型号的选型工具

Luminary的函数库和图形库,上面集成的东西很丰富,很多工程师都会喜欢。 可以按着对外设的需求,来选。想要USB,就点“USB ...

单片机操作2.4寸TFT彩屏的源码与大家共享!含SD驱动!

元旦在淘宝上,花39个银子,淘了块2.4寸的TFT彩屏模块,,用店主提供的代码,用STC的51单片机,驱动起来,也显示图片了,发帖庆祝 ...

[Open Source]YS18-3荧光管电子时钟100%开源放送(软件源工程及代码.硬件原理图)

YS18-3的荧光管电子时钟曾是饱含了我所有期待的完美的荧光管电子时钟,它的功能比较完备,也受到了很多DIYer的关注与支持。 ...

Helper2416开发板移植ucgui(嵌入式linux运行ucgui)

本帖最后由 Gyroxp 于 2015-1-30 17:28 编辑 一些简单的应用,使用ucgui作为图形界面可能更加方便快捷。得益于ucgui良好 ...

求推荐:想买本C8051F单片机的书!

需要用C8051F580单片机开发产品。我做软件,C语言。 想买本 这方面的书。求推荐! 谢谢!

MSP430F149 I/O口控制

所谓IO口控制就是控制单片机的端口输出0或1,或者读出端口的状态,也就是输入和输出。 先说输出。想让MSP430单片机的端口 ...

无线连接技术选择指南

选择合适的无线连接技术从一开始就是一个关键的设计决策。这决定了应用的协议互操作性、距离、稳健性和用例。本选择指南将引导 ...

【花雕动手做】有趣好玩的音乐可视化系列小项目(16)--热干胶棒棒灯

偶然心血来潮,想要做一个声音可视化的系列专题。这个专题的难度有点高,涉及面也比较广泛,相关的FFT和FHT等算法也相当复杂,不 ...

颁奖:是德科技感恩月—遇见KeysightCare - 贵重仪器安全避坑指南

颁奖:是德科技感恩月—遇见KeysightCare - 贵重仪器安全避坑指南 名单详见下方列表。本颁奖贴只公布获奖名单,礼品 ...

【STM32U5A5ZJ开发板】USB设备及VCP通讯测试

STM32U5A5ZJ 上的USB是自带PHY的OTG USB设备,不但具有电源管理还具有设备管理功能,使用的接口也是Type C接口。 794377 ...

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表