ko/lib /裁剪介绍
1. 相关文件介绍¶
表1-1:So文件介绍
名称 | 大小(KB) | 用途 | 是否必须 |
---|---|---|---|
lib/ld-uClibc-1.0.31.so | 20.9 | toolchain 使用的标准库 | YES |
lib/libncurses.so.6.0 | 183.3 | toolchain 使用的标准库 | YES |
lib/libstdc++.so.6.0.20 | 619.5 | toolchain 使用的标准库 | 如果应用没有使用C++,则不需要 |
lib/libthread_db-1.0.31.so | 17.1 | toolchain 使用的标准库 | NO |
lib/libgcc_s.so.1 | 93.6 | toolchain 使用的标准库 | YES |
lib/libuClibc-1.0.31.so | 349.9 | toolchain 使用的标准库 | YES |
lib/libatomic.so.1.1.0 | 13.3 | toolchain 使用的标准库 | YES |
lib/libAEC_LINUX.so | 65.8 | audio算法库:回音消除 | NO |
lib/libAED_LINUX.so | 112.1 | audio算法库:babycry,高分贝检测 | NO |
lib/libAPC_LINUX.so | 90.7 | audio算法库:EQ,NR,HPF,AGC | 如果没有使用audio功能,则不需要 |
lib/libBF_LINUX.so | 70.9 | audio算法库:波束成型。 | NO |
lib/libMD_LINUX.so | 442.4 | 运行检测算法 | NO |
lib/libOD_LINUX.so | 430.4 | 遮挡检测算法 | NO |
lib/libSRC_LINUX.so | 30.0 | audio算法库:重采样。 | NO |
lib/libSSL_LINUX.so | 30.2 | audio算法库:声源定位。 | NO |
lib/libVG_LINUX.so | 69.7 | 虚拟围栏检测算法 | NO |
lib/libcam_fs_wrapper.so | 5.4 | sys模块与linux API的中间层 | YES |
lib/libcam_os_wrapper.so | 33.8 | sys模块与linux API的中间层 | YES |
lib/libcus3a.so | 17.4 | AF、 AE、 AWB接口 | YES |
lib/libg711.so | 5.4 | 音频编码库 | NO |
lib/libg726.so | 9.2 | 音频编码库 | NO |
lib/libispalgo.so | 225.2 | 提供isp高级功能,如AF、 AE、 AWB | YES |
lib/libmi_ai.so | 251.2 | audio 输入相关库 | 如果没有使用audio功能,则不需要 |
lib/libmi_ao.so | 82.9 | audio 输出相关库 | 如果没有使用audio功能,则不需要 |
lib/libmi_common.so | 41.7 | MI必备基础库 | YES |
lib/libmi_divp.so | 5.3 | 多媒体模块和 DIVP函数的接口 | YES |
lib/libmi_iqserver.so | 66.4 | 与iqtool工具通讯,提供网络调试iq的功能,对接ISP模块 | NO |
lib/libmi_iqserver_pretzel.so | 42.0 | 与iqtool工具通讯,非335 337平台 | NO |
lib/libmi_isp.so | 42.4 | ISP函数接口封装库 | YES |
lib/libmi_isp_pretzel.so | 38.0 | ISP函数接口封装库,非335 337平台 | NO |
lib/libmi_ive.so | 454.6 | 提供硬件算子的使用 | 如果没有使用IVE算子和SIGMASTAR MD 、OD、 VG算法,则不需要 |
lib/libmi_ldc.so | 9.4 | 镜头畸变校正的函数接口,335 337无此功能 | NO |
lib/libmi_rgn.so | 9.4 | OSD函数接口 | YES |
lib/libmi_sed.so | 13.3 | smart encoder | NO |
lib/libmi_sensor.so | 9.3 | 多媒体模块 SENSOR函数接口 | YES |
lib/libmi_shadow.so | 13.4 | 提供VDF对接接口 | 如果使用SIGMASTAR的MD OD VG算法,则需要 |
lib/libmi_sys.so | 17.4 | MI层 必备基础库,负责搭建基础mi框架,提供buf管理 | YES |
lib/libmi_vdf.so | 85.6 | 提供视频算法功能,包括移动监测,遮挡检测,虚拟围栏等 | 如果使用SIGMASTAR的MD OD VG算法,则需要 |
lib/libmi_venc.so | 25.4 | 多媒体模块 VENC函数接口,提供视频解码功能 | YES |
lib/libmi_vif.so | 9.3 | 多媒体模块 VIF函数接口 | YES |
lib/libmi_vpe.so | 13.4 | 多媒体模块 VPE函数接口 | YES |
4166KB |
表1-2:Ko文件介绍
名称 | 大小(KB) | 用途 | 是否必须 |
---|---|---|---|
/config/modules/4.9.84/SC4238_MIPI.ko | 19.9 | SC4238 sensor 驱动 | NO |
/config/modules/4.9.84/imx291_MIPI.ko | 10.3 | imx291 sensor 驱动 | NO |
/config/modules/4.9.84/imx307_MIPI.ko | 19.6 | imx307 sensor 驱动 | NO |
/config/modules/4.9.84/mhal.ko | 1228.8 | 多媒体层的底层实现 | YES |
/config/modules/4.9.84/mi_ai.ko | 170.1 | Audio 采集模块的实现 | 如果没有使用audio功能,则不需要 |
/config/modules/4.9.84/mi_ao.ko | 91.9 | Audio 输出模块的实现 | 如果没有使用audio功能,则不需要 |
/config/modules/4.9.84/mi_common.ko | 9.7 | mi 必备基础库的实现 | YES |
/config/modules/4.9.84/mi_divp.ko | 52.8 | 多媒体 DIVP模块的实现 | YES |
/config/modules/4.9.84/mi_ldc.ko | 7.6 | 镜头畸变校正的实现,335 337无此功能 | NO |
/config/modules/4.9.84/mi_rgn.ko | 92.1 | OSD模块的实现 | YES |
/config/modules/4.9.84/mi_sensor.ko | 29.6 | 多媒体 SENSOR模块的实现 | YES |
/config/modules/4.9.84/mi_shadow.ko | 46.8 | vdf对接接口的实现 | 如果使用SIGMASTAR的MD OD VG算法,则需要 |
/config/modules/4.9.84/mi_sys.ko 需要配合config_tool和 mmap.ini所在路径添加指定参数 | 414.4 | MI层 必备基础库的实现,负责搭建基础mi框架,提供buf管理 | YES |
/config/modules/4.9.84/mi_venc.ko 需要配合chagall.bin固件所在路径添加指定参数 | 165.0 | 多媒体 VENC模块的实现 | YES |
/config/modules/4.9.84/mi_vif.ko | 40.7 | 多媒体 VIF模块的实现 | YES |
/config/modules/4.9.84/mi_vpe.ko | 143.9 | 多媒体 VPE模块的实现 | YES |
/config/modules/4.9.84/mmc_block.ko | 28.9 | SD卡相关驱动,mmc 基础驱动 | NO |
/config/modules/4.9.84/mmc_core.ko | 95.2 | SD卡相关驱动,mmc 基础驱动 | NO |
/config/modules/4.9.84/ms_notify.ko | 4.1 | netlink,运行mixer才需要加载 | NO |
/config/modules/4.9.84/msdos.ko | 9.8 | MSDOS 文件系统 | NO |
/config/modules/4.9.84/nfs.ko | 123.0 | nfs网络文件系统 | NO |
/config/modules/4.9.84/nfsv2.ko | 16.9 | nfs网络文件系统 | NO |
/config/modules/4.9.84/nls_utf8.ko | 3.6 | utf8 字体驱动 | NO |
/config/modules/4.9.84/ntfs.ko | 87.0 | NTFS 文件系统驱动 | NO |
/config/modules/4.9.84/sc4236_MIPI.ko | 12.7 | SC4236 sensor驱动 | NO |
/config/modules/4.9.84/scsi_mod.ko | 118.2 | USB 和 SD卡需要驱动 | NO |
/config/modules/4.9.84/sd_mod.ko | 30.5 | SD卡相关驱动,scsi 接口磁盘支持 | NO |
/config/modules/4.9.84/sunrpc.ko | 173.6 | 用于远程命令执行的远程过程调用(RPC)协议,被网络文件系统(NFS)使用 | NO |
/config/modules/4.9.84/usb-common.ko | 5.5 | usb 基础驱动 | NO |
/config/modules/4.9.84/usb-storage.ko | 68.4 | usb 盘驱动 (依赖usb基础驱动) | NO |
/config/modules/4.9.84/usbcore.ko | 144.3 | usb host 基础驱动 | NO |
/config/modules/4.9.84/cifs.ko | 202.6 | CIFS 文件系统驱动 | NO |
/config/modules/4.9.84/ehci-hcd.ko | 40.5 | usb2.0 host控制器驱动 | NO |
/config/modules/4.9.84/fat.ko | 53.0 | fat 文件系统 | NO |
/config/modules/4.9.84/grace.ko | 5.4 | nfs网络文件系统 | NO |
/config/modules/4.9.84/lockd.ko | 49.1 | Mount nfs 所需要驱动 | NO |
/config/modules/4.9.84/kdrv_sdmmc.ko | 30.7 | sd 卡驱动 | NO |
/config/modules/4.9.84/vfat.ko | 11.5 | vfat 文件系统(u 盘或者SD卡) | NO |
表1-3:其他部分
工具及配置文件 | 大小 | 用途 | 是否必须 |
---|---|---|---|
config_tool 和 mmap.ini | insmod mi_sys.ko的时候,驱动调用config_tool解析mmap.ini分硬件分配buffer。默认位于/config目录下,更换位置时需要在insmod mi_sys.ko之后加default_config_path='/new/path' | YES | |
isp_api.xml | 连接iqtool生成软件界面项目。更换路径时需要应用在iqserver_open 之前调用mi_iqserver.h的 MI_S32 MI_IQSERVER_SetDataPath(char* path) | NO | |
iqfile0.bin -> imx307_iqfile.bin | ISP启动(应用运行)时会到/config/iqfile目录下读取名为iqfilex.bin的iq file(x表示isp channel),图像的基础效果一般是软链接指向实际的iq file。如果该文件更换位置,需要在应用运行前执行 echo isproot /new/path > /dev/ispmid | YES | |
chagall.bin | HW encoder fireware。默认位于/config/fw_path/chagall.bin,更换位置时需要在insmod mi_venc.ko之后加fw_path=/new/path/chagall.bin | YES |
-
Initial RAM filesystem and RAM disk //for ramdisk, 如果不需要可删除;
-
General
-
Kprobes // kernel 内添加钩子函数(断点)
-
Kernel performance events and counters // perf 等,用于kernel hacking
-
-
Network
-
The IPv6 protocol
-
Wireless
-
其他部分视用户需求而定
-
-
Device 相关
-
Serial ATA and Parallel ATA drivers
-
MMC/SD/SDIO card support
-
Staging drivers
-
USB host
-
Ehci //2.0
-
Uhci //3.0
-
-
USB device:
-
UVC 相关;
-
Webcam 相关;
-
-
File systems
-
NFS //used for debug;
-
CIFS //used for debug
-
JFFS2 // 权限W/R
-
UBIFS // 权限W/R
-
FAT/NTFS //windos fs
-
-
-
Kernel hacking
-
Tracers //ftrace 等
-
KGDB: kernel debugger //gdb
-
Debug Lockups and Hangs //debug mutex and so on.
-
Debug Lockups and Hangs
-
DEBUG_INFO //debug info, 删除后不便于debug
-
KALLSYMS // kernel symbol 等,删除后不便于debug
-
-
Device Drivers
-
Multimedia support // usb cam 相关的设定
-
Input device support
-
Mouse interface
-
Keyboards
-
Mice
-
Touchscreens
-
-
-
SStar SoC platform drivers // 根据用户需求
-
SStar SATA HOST //sata 等
-
SStar SD/MMC Card Interface Support
-
-
其他:建议使用用户的config 来check
2. BUSYBOX 编译与配置¶
2.1. 使用默认配置编译¶
-
prepare
wget https://busybox.net/downloads/busybox-1.31.1.tar.bz2
tar -xvf wget busybox-1.31.1.tar.bz2 cd busybox-1.31.1
-
make
make defconfig (默认使用共享库模式进行编译, CONFIG_STATIC -> N) make -j4 CROSS_COMPILE=arm-none-linux-gnueabi-
2.2. BUSYBOX 裁剪¶
根据busybox 主选项进行分类。
表2-1:setting
配置选项 | 占用空间 (Bytes) | 功能描述 |
---|---|---|
CONFIG_DESKTOP | 8K | 开启一些非必要的配置以兼容桌面系统 |
CONFIG_INCLUDE_SUSv2 | --- | 开启UNIX 98支持 |
CONFIG_SHOW_USAGE | 7K | applets 帮助信息 |
CONFIG_FEATURE_UTMP | 用于记录当前登录用户, who功能会使用到 | |
CONFIG_FEATURE_PIDFILE | pid文件生成路径 | |
CONFIG_FEATURE_SUID | 开启root权限管理 | |
CONFIG_STACK_OPTIMIZATION_386 | i386架构stack-boundary=2 | |
CONFIG_FLOAT_DURATION | 使applets支持浮点, 例如:sleep N.NNN | |
CONFIG_FEATURE_NON_POSIX_CP | Non-POSIX标准cp命令 |
Applets
按照 Applets 显示顺序进行排序:
下列为busybox工具的支持配置, 可以根据需要选择是否开启:
-
Archival Utilities
各类压缩格式以及压缩工具的配置
-
Coreutils
系统常用工具的配置
-
Console Utilities
控制台工具配置
-
Debian Utilities
Debian 系统工具
-
klibc-utils
klibc 工具,包括minips(ps), nuke(rm -rf) , resume, run-init
-
Editors
编辑工具, 包括sed, awk, vi等
-
Finding Utilities
find, grep, xargs 等工具功能的配置
-
Init Utilities
系统初始化工具, 包括reboot, poweroff,halt等
-
Login/Password Management Utilities
登录以及密码管理工具
-
Linux Ext2 FS Progs
Ext2 文件系统管理相关工具
-
Linux Module Utilities
linux 模块管理, insmod/rmmod/modprobe等
-
Linux System Utilities
linux 系统管理工具
-
Miscellaneous Utilities
杂项类工具
-
Networking Utilities
网络管理工具, 可配置Ipv4/ipv6支持,以及tftp, telnetd等工具的支持
-
Print Utilities
打印机工具,包括lpd/lpr/lpq 工具
-
Mail Utilities
邮件相关工具
-
Process Utilities
进程管理工具, 包括free, kill, top, watch等
-
Runit Utilities
runit 套件的支持,
-
Shells
包括ash, 以及hush两种shell的支持
-
System Logging Utilities
系统log工具的支持,