busybox | 一、只是构建一些经常使用的命令和文件。linux 二、lib 库文件,驱动开发分第三方软件(alsa、iperf、mplayer)等须要本身移植。架构 三、默认没有用户名和密码设置。app |
Buildroot |
一、包含
busybox
二、集成了各类常见的第三方库和软件。
三、能够
构建交叉编译工具链、根文件系统、
uboot
以及
Linux
内
核镜像。
四、相比更简单,相似内核配置的操做,容易理解,编译要求的配置和磁盘空间要求较小
|
yocto
|
一、有 Buildroot 的全部功能。ide 二、上手难度较 Buildroot 更大, 有不少概念、语法须要理解,编译要求配置高工具 三、相比buildroot功能强大,能实现一些buildroot目前很差实现的功能,好比生成Ubuntu的烧写镜像。测试 |
Buildroot 的官方网站是:https://buildroot.org/。网站
使用的 buildroot 版本: buildroot-2019.02.6.tar.bz2ui
make menuconfig
Target options
|
配置平台架构等 |
Toolchain
|
配置交叉编译工具链(路径、版本等)
|
System configuration
|
系统配置(板名、欢迎语、用户名、密码等)
|
Filesystem images
|
根文件系统配置(格式等)
|
Kernel
|
使能(失能)内核编译 |
Bootloaders
|
使能(失能)Bootloaders 编译 |
Target options -> Target Architecture = ARM (little endian) //目标平台 -> Target Binary Format = ELF //目标二进制格式 -> Target Architecture Variant = cortex-A7 //目标架构 -> Target ABI = EABIhf //目标ABI -> Floating point strategy = NEON/VFPv4 //浮点策略 -> ARM instruction set = ARM //ARM指令集
Toolchain -> Toolchain type = External toolchain -> Toolchain = Custom toolchain //本身的交叉编译器 -> Toolchain origin = Pre-installed toolchain //预装的编译器 -> Toolchain path =/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf //本身安装的交叉编译器绝对路径 -> Toolchain prefix = $(ARCH)-linux-gnueabihf //编译器前缀 -> External toolchain gcc version = 4.9.x //编译工具链版本号 -> External toolchain kernel headers series = 4.1.x //编译工具的内核版本号 -> External toolchain C library = glibc/eglibc -> [*] Toolchain has SSP support? (NEW) //选中 -> [*] Toolchain has RPC support? (NEW) //选中 -> [*] Toolchain has C++ support? //选中 -> [*] Enable MMU support (NEW) //选中
System configuration -> System hostname = alpha_imx6ull //平台名字,自行设置 -> System banner = Welcome to alpha i.mx6ull //欢迎语 -> Init system = BusyBox //使用 busybox -> /dev management = Dynamic using devtmpfs + mdev //使用 mdev -> [*] Enable root login with password (NEW) //使能登陆密码 -> Root password = 123456 //登陆密码为 123456
-> Filesystem images -> [*] ext2/3/4 root filesystem //若是是 EMMC 或 SD 卡的话就用 ext3/ext4 -> ext2/3/4 variant = ext4 //选择 ext4 格式 -> [*] ubi image containing an ubifs root filesystem //若是使用 NAND 的话就用 ubifs
-> Kernel -> [ ] Linux Kernel //不要选择编译 Linux Kernel 选项!
-> Bootloaders -> [ ] U-Boot //不要选择编译 U-Boot 选项!
Target packages -> Libraries -> Audio/Sound -> -*- alsa-lib ---> 使能该项,此配置项下的文件所有选中
Target packages -> Audio and video applications -> alsa-utils 使能该项,而且此目录下的软件所有选中
sudo make busybox-menuconfig
2、busybox 中文字符支持spa
修改 /output/build/busybox-1.29.3/libbb/unicode.c 文件:3d
三、编译 busybox
(1)使用如下命令查看当前 buildroot 全部配置了的目标软件包,也就是 packages:
sudo make show-targets
(2)单独编译并安装 busybox
sudo make busybox
(3)编译完成之后编译 buildroot
sudo make
一、编译
sudo make //必定要加 sudo,不能经过-jx 多核编译
二、编译完成:
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.137.18:/home/pjw/linux/nfs/buildrootfs ip=192.168.137.20:192.168.137.18:192.168.1.1:255.255.255.0::eth0:off'
根文件系统运行正常:
修改 /etc/profile 文件:
原始的设置 PS1 环境变量的配置代码,就是它将命令提示符设置为了固定的“#”。
改成设置 PS1 环境变量,格式就是:
[user@hostname]:currentpath$:
改成如下内容:
PS1='[\u@\h]:\w$:' export PS1
修改 /etc/profile 文件完成之后重启开发板,能够看到显示了用户名等: