当前位置: 首页 > 工具软件 > Lichee > 使用案例 >

关于Lichee目录结构的介绍

颛孙晗昱
2023-12-01

关于全志A33中Lichee文件的介绍

经过漫长的上网、资料的下载和环境的搭建,在ubuntu 16.04 LTS 64位下可以开始学习编译镜像了,首先我们先看一下Lichee这个文件
Lichee目录结构

.
├── brandy
├── buildroot
├── build.sh
├── clean.sh
├── linux-3.4
├── out
├── README
└── tools

bulidroot的主要功能是构建根文件系统,是busybox的 高级自动化升级版

buildroot的主要作用是管理软件包之间的依赖关系、生成u-boot以及制作根文件系统。以下buildroot的介绍可以看下这个链接https://blog.csdn.net/d_xueliang/article/details/73823790

  1. buildroot的目录结构
    ├── board
    ├── boot
    ├── build.sh
    ├── CHANGES
    ├── Config.in
    ├── configs
    ├── COPYING
    ├── dl
    ├── docs
    ├── external-packages
    ├── fs
    ├── linux
    ├── Makefile
    ├── output
    ├── package
    ├── README
    ├── scripts
    ├── target
    └── toolchain
    boot目录里存放Boot代码,configs目录里存放预定义好的配置文件,比如sun6i_defconfig,里面存放已经下载好 的软件包,scripts目录存放buildroot运作的代码,target目录里存放用于生成根文件系统的一些规则文件,在tools目录中存放的是用于打包和量产的pc工具。对于我们来说最为重要的是package目录,里面包含了很多第三方软件包的生成规则,我们可以在里面添加我们自己的软件包或者是中间件。更多关于buildroot的介绍,可以到buildroot的官方网站http://buildroot.uclibc.org/获取。

    linux-3.4的目录结构

    .
    ├── a33_vstar_defconfig
    ├── android
    ├── arch
    ├── block
    ├── build.sh
    ├── COPYING
    ├── CREDITS
    ├── crypto
    ├── Documentation
    ├── drivers
    ├── e_build.sh
    ├── firmware
    ├── fs
    ├── include
    ├── init
    ├── ipc
    ├── Kbuild
    ├── Kconfig
    ├── kernel
    ├── lib
    ├── MAINTAINERS
    ├── Makefile
    ├── mm
    ├── modules
    ├── modules.builtin
    ├── modules.order
    ├── Module.symvers
    ├── net
    ├── old_config
    ├── output
    ├── README
    ├── REPORTING-BUGS
    ├── rootfs.cpio.gz
    ├── samples
    ├── scripts
    ├── security
    ├── sound
    ├── System.map
    ├── tinyandroid.tar.gz
    ├── tools
    ├── usr
    ├── virt
    ├── vmlinux
    └── vmlinux.o
    以上目录结构跟标准的Linux内核是一致的,除了多一个modules目录。modules目录是我们扩展用来存放没有跟内核的menuconfig集成的外部模块的地方。目前放了 mali这1个外部模块,mali是我们的3D GPU驱动。
    .
    ├── aw_schw
    ├── Kconfig
    ├── mali
    ├── nand
    └── rogue_km

tools的目录结构

① 不同芯片不同产品的集成打包功能
② 不同产品的特殊配置,例如分区、各种外设的配置、CPU频率电压等,基本上涵盖了配置一款产品的所有功能
③ 制作固件包时可能用到的工具和脚本
.
├── daily_build
├── doc
├── pack
└── tools_win
daily_build存放的是各种版本各种型号的自动化脚本
.
├── android_clean.sh
├── auto_crane_2.6.sh
├── auto_crane_3.0.sh
├── auto_linux_2.6.sh
├── auto_linux_3.0.sh
├── auto_linux_3.0_sun5i_a12.sh
├── auto_linux_3.0_sun5i_a13.sh
├── auto_linux_3.0_sun5i.sh
├── build_android4.0.sh
└── clean.sh
这些脚本目前仅仅作为参考,因为在当前的sun8i这个版本中,没有用到其中任何一个脚本

pack是一个非常关键的目录,
chips存放着各种制造商的配置,当然后面的移植过程中将会重点提到,
out目录是打包过程中产生的各种bin、cfg、fex文件,
为最终的img打包文件做准备;
pack脚本是将out目录中的各种文件打包的脚本,后面也会专门探讨,
parser.sh很显然是linux平台下打包vmlinux的处理脚本,
pctools是windows linux2种平台中打包过程中可能用到的小工具,暂时还没有用到;
sun8iw5p1_android_vstar_card0.img就是我们通过pack打包生成的固件,可以直接烧写到目标板,其中sun8i代表是芯片版本(还有sun5i sun6i等) vstar代表是android的固件,xxx代表是产品名,都是自己起的
.
├── chips
├── common
├── out
├── pack
├── parser.sh
├── pctools
├── sun8iw5p1_android_vstar_card0.img
└── sun8iw5p1_android_vstar.img

brandy的目录结构
.
├── basic_loader
├── build.sh
├── extern-libs
├── gcc-linaro
├── pack
├── pack_tools
├── u-boot-2011.09
└── u-boot-2013.01
gcc-linaro是一个交叉编译器
extern-libs就是一个openssl的压缩包
u-boot-2011.09就是我们编译的uboot源码
.
├── api
├── arch
├── board
├── boards.cfg
├── build.sh
├── common
├── config.mk
├── COPYING
├── CREDITS
├── disk
├── doc
├── drivers
├── examples
├── fs
├── include
├── lib
├── MAINTAINERS
├── MAKEALL
├── Makefile
├── memtest
├── mkconfig
├── mmc_spl
├── nand_spl
├── nand_sunxi
├── net
├── onenand_ipl
├── openssl
├── post
├── README
├── rules.mk
├── snapshot.commit
├── spl
├── sprite
├── System.map
├── tools
├── u-boot
├── u-boot.bin
├── u-boot.lds
├── u-boot.map
├── u-boot.srec
├── u-boot-sun8iw5p1.bin
└── usb_sunxi
其中build.sh就是用来编译的

打包的脚本,细心的人应该已经观察到,在buildroot linux-3.4 u-boot目录中都存在一个build.sh的脚本文件,这个文件就是我们实现自动化一步打包的脚本

  • 以下是V33_Vstar的资料可以下载
  • 链接:https://pan.baidu.com/s/14QDmbG-N16blXhxhLdRGZw
    提取码:evij
 类似资料: