本文共 3737 字,大约阅读时间需要 12 分钟。
busybox | 1、只是构建一些常用的命令和文件。 2、lib 库文件,驱动开发分第三方软件(alsa、iperf、mplayer)等需要自己移植。 3、默认没有用户名和密码设置。 |
Buildroot | 1、包含 busybox 2、集成了各种常见的第三方库和软件。 3、可以 构建交叉编译工具链、根文件系统、 uboot 以及 Linux 内 核镜像。 4、相比更简单,类似内核配置的操作,容易理解,编译要求的配置和磁盘空间要求较小 |
yocto | 1、有 Buildroot 的所有功能。 2、上手难度较 Buildroot 更大, 有很多概念、语法需要理解,编译要求配置高 3、相比buildroot功能强大,能实现一些buildroot目前不好实现的功能,比如生成Ubuntu的烧写镜像。 |
Buildroot 的官方网站是:https://buildroot.org/。
使用的 buildroot 版本: buildroot-2019.02.6.tar.bz2
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 中文字符支持
修改 /output/build/busybox-1.29.3/libbb/unicode.c 文件:
3、编译 busybox
(1)使用以下命令查看当前 buildroot 所有配置了的目标软件包,也就是 packages:
sudo make show-targets
(2)单独编译并安装 busybox
sudo make busybox
(3)编译完成以后编译 buildroot
sudo make
1、编译
sudo make //一定要加 sudo,不能通过-jx 多核编译
2、编译完成:
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 文件完成以后重启开发板,可以看到显示了用户名等:
转载地址:http://ckzi.baihongyu.com/