0、Buildroot 说明下载
Buildroot 是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序)。
下载可通过以下链接,下载后解压即可:
发行版:http://buildroot.net/downloads/
历史版本:http://buildroot.net/downloads/snapshots/
对于buildroot与yocto的差异可移步:Buildroot vs OpenEmbedded or Yocto Project。
1、利用buildroot 先编译一个 ssh
cd buildroot-2022.11/ make menuconfig
1.1 Target options:目标板的配置,先配置目标板,根据你的目标板子需求配置
Target Architecture:目标架构,这里选择 ARM(little endian),ARM小端模式
Target Architecture Variant:架构体为 cortex-A8,内核类型
Target ABI:应用程序二进制接口,为EABI
Floating point strategy:浮点数的策略,选择为 VFPv2
ARM instruction set:arm 汇编指令集,选择 ARM
Target Binary Format:二进制格式,为 ELF
1.2 Toolchain:工具链选项,根据你的交叉编译器实际去配置
Toolchain type:Buildroot提供两种方式使用toolchain external toolthain:非Buildroot提供的交叉编译器,这里使用外部,选择此项 Buildroot toolchain:Buildroot本身编译生成的Buildroot toolchain
Toolchain:客制化工具链,实际就是外部交叉编译器
Toolchain path:该项需要你选择外部工具链才会出,填你的交叉编译器路径
Toolchain prefix:你的交叉编译器前缀,根据你实际的交叉编译器
External toolchain gcc version:根据你实际的交叉编译器选择
External toolchain kernel headers series:根据你实际的交叉编译器选择
External toolchain C library:根据你实际的交叉编译器选择
1.3 Target packages:包管理;文件系统通常要包含很多第三方软件,通过该配置,自动从指定的服务器上下载源码包,自动编译,自动搭建,这里选择我们要的 SSH 服务
Target packages ---> Networking applications ---> [*] openssh
1.4 保存退出,开始编译
make
2、将编译好的sshd 复制到 自己文件系统中
cd ./output/target/ sudo cp etc/ssh/ /home/filesystem/rootfs/etc/ -rf # /home/filesystem/rootfs 是你保存自己制作的文件系统的路径,如果你只需要在现有板子的系统上升级,就复制到板子上的 /etc 文件夹即可,下面操作同样 sudo cp etc/init.d/S50sshd /home/filesystem/rootfs/etc/init.d/ -rf sudo cp usr/sbin/sshd /home/filesystem/rootfs/usr/sbin/ -rf sudo cp usr/bin/ssh* /home/filesystem/rootfs/usr/bin/ -rf.
//一些文件系统可能还会缺失一些 lib 库文件,这时候可以把编译出来的缺失的对应的库文件复制进去,编译出来的库文件所在目录是 ./output/target/usr/lib ,
亦或者把整个目录替复制过去 cp ./output/target/usr/lib /home/filesystem/rootfs/usr/lib
3、将该文件系统烧入板子, 启动
标签:Buildroot,Target,buildroot,编译器,SSH,Linux,usr,rootfs From: https://www.cnblogs.com/xingboy/p/16994919.html