Buildroot
来自百问网嵌入式Linux wiki
buildroot版本为2018.02LTS版 官网使用手册 #https://buildroot.org/downloads/manual/manual.html
配置单板架构
Target options --->
cortex-A8配置
Target Architecture (ARM (little endian)) ---> Target Binary Format (ELF) ---> Target Architecture Variant (cortex-A8) ---> Target ABI (EABIhf) ---> Floating point strategy (VFPv3-D16) ---> ARM instruction set (ARM) --->
cortex-A9配置
Target Architecture (ARM (little endian)) ---> Target Binary Format (ELF) ---> Target Architecture Variant (cortex-A9) ---> [*] Enable NEON SIMD extension support [*] Enable VFP extension support Target ABI (EABIhf) ---> Floating point strategy (VFPv3-D16) ---> ARM instruction set (ARM) --->
构建配置
Build options --->
Commands ---> (/ti/mini437x_buildroot/configs/mini4378_defconfig) Location to save buildroot config ($(TOPDIR)/dl) Download dir ($(BASE_DIR)/host) Host dir Mirrors and Download locations ---> (0) Number of jobs to run simultaneously (0 for auto) [ ] Enable compiler cache [ ] build packages with debugging symbols [*] strip target binaries () executables that should not be stripped () directories that should be skipped when stripping gcc optimization level (optimize for size) ---> [ ] Enable google-breakpad support libraries (shared only) ---> ($(CONFIG_DIR)/local.mk) location of a package override file (board/mini437x/patches) global patch directories Advanced ---> *** Security Hardening Options *** Stack Smashing Protection (None) ---> RELRO Protection (None) ---> Buffer-overflow Detection (FORTIFY_SOURCE) (None) --->
配置工具链
Toolchain type (External toolchain) --->
( ) Buildroot toolchain (X) External toolchain
在线下载的
Toolchain type (External toolchain) ---> *** Toolchain External Options *** Toolchain (Custom toolchain) ---> Toolchain origin (Toolchain to be downloaded and installed) ---> (https://publishing-ap-linaro-org.s3.amazonaws.com/...) ($(ARCH)-linux-gnueabihf) Toolchain prefix External toolchain gcc version (5.x) ---> External toolchain kernel headers series (4.0.x) ---> External toolchain C library (glibc/eglibc) ---> [*] Toolchain has SSP support? [*] Toolchain has RPC support? [*] Toolchain has C++ support? () Extra toolchain libraries to be copied to target [ ] Copy gdb server to the Target *** Host GDB Options *** [ ] Build cross gdb for the host *** Toolchain Generic Options *** [ ] Copy gconv libraries [*] Enable MMU support () Target Optimizations () Target linker options [ ] Register toolchain within Eclipse Buildroot plug-in
系统配置
System configuration --->
Root FS skeleton (default target skeleton) ---> (mini437x) System hostname (Welcome to Mini437x) System banner Passwords encoding (md5) ---> Init system (systemV) ---> /dev management (Dynamic using devtmpfs + mdev) ---> (system/device_table.txt) Path to the permission tables [ ] support extended attributes in device tables [ ] Use symlinks to /usr for /bin, /sbin and /lib [*] Enable root login with password () Root password /bin/sh (bash) ---> [*] Run a getty (login prompt) after boot ---> [*] remount root filesystem read-write during boot (eth0) Network interface to configure through DHCP [*] Purge unwanted locales (C en_US) Locales to keep () Generate locale data [ ] Enable Native Language Support (NLS) -*- Install timezone info (default) timezone list (Etc/UTC) default local time () Path to the users tables (board/mini437x/rootfs-overlay) Root filesystem overlay directories (board/mini437x/post-build.sh) Custom scripts to run before creating filesystem images () Custom scripts to run inside the fakeroot environment (board/mini437x/post-image.sh) Custom scripts to run after creating filesystem images () Extra arguments passed to custom scripts
配置登陆信息
(mini437x) System hostname (Welcome to Mini437x) System banner Passwords encoding (md5) ---> [*] Enable root login with password () Root password
配置登陆串口
[*] Run a getty (login prompt) after boot --->
--- Run a getty (login prompt) after boot (ttyS0) TTY port Baudrate (keep kernel default) ---> (vt100) TERM environment variable () other options to pass to getty
其它配置
(board/mini437x/rootfs-overlay) Root filesystem overlay directories (board/mini437x/post-build.sh) Custom scripts to run before creating filesystem images () Custom scripts to run inside the fakeroot environment (board/mini437x/post-image.sh) Custom scripts to run after creating filesystem images
配置linuxkernel
Kernel --->
[*] Linux Kernel *** Linux kernel in thumb mode may be broken with binutils >= 2.29 *** Kernel version (Custom Git repository) ---> (https://git.coding.net/codebug8/mini437x_kernel.git) URL of custom repository (master) Custom repository version () Custom kernel patches Kernel configuration (Using an in-tree defconfig file) ---> (mini437x) Defconfig name () Additional configuration fragment files Kernel binary format (zImage) ---> Kernel compression format (gzip compression) ---> [*] Build a Device Tree Blob (DTB) (am437x-sk-evm) In-tree Device Tree Source file names () Out-of-tree Device Tree Source file paths [*] Install kernel image to /boot in target [ ] Needs host OpenSSL [ ] Needs host libelf Linux Kernel Extensions ---> Linux Kernel Tools --->
包的管理
Target packages --->
-*- BusyBox (package/busybox/busybox.config) BusyBox configuration file to use? () Additional BusyBox configuration fragment files -*- Show packages that are also provided by busybox [ ] Enable SELinux support [ ] Individual binaries [ ] Install the watchdog daemon startup script Audio and video applications ---> Compressors and decompressors ---> Debugging, profiling and benchmark ---> Development tools ---> Filesystem and flash utilities ---> Fonts, cursors, icons, sounds and themes ---> Games ---> Graphic libraries and applications (graphic/text) ---> Hardware handling ---> Interpreter languages and scripting ---> Libraries ---> Mail ---> Miscellaneous ---> Networking applications ---> Package managers ---> Real-Time ---> Security ---> Shell and utilities ---> System tools ---> Text editors and viewers --->
添加蓝牙工具
[*] bluez-tools [ ] bluez-utils [*] bluez-utils 5.x [*] build OBEX support [*] build CLI client [*] install deprecated tool [*] build experimental obexd plugin [*] build health plugin [*] build midi profile [*] build nfc plugin [*] build sap plugin
[*] openobex
添加wifi工具
> Target packages > Networking applications
[*] wpa_supplicant [*] Enable nl80211 support [*] Enable AP mode [*] Enable Wi-Fi Display [*] Enable mesh networking [*] Enable autoscan [*] Enable EAP [*] Enable HS20 [*] Enable syslog support [*] Enable WPS [*] Install wpa_cli binary [*] Install wpa_client shared library [*] Install wpa_passphrase binary [*] Enable support for old DBus control interface [*] Enable support for new DBus control interface [*] Introspection support
添加http+php工具
添加httpd工具包
[*] lighttpd [*] openssl support [*] zlib support [*] bzip2 support [*] pcre support [*] webdav support
添加php工具包
> Target packages > Interpreter languages and scripting
[*] php
[*] CGI interface
[ ] CLI interface
[*] FPM interface
Extensions --->
[*] Readline
[*] Session
*** Compression extensions ***
[*] zlib
*** Cryptography extensions ***
[ ] hash
[ ] mcrypt
[ ] openssl
*** Database extensions ***
[ ] DBA
[ ] Mysqli
[ ] SQLite3
[ ] PDO
*** Human language and character encoding support ***
*** Gettext support needs NLS enabled ***
[ ] iconv
[ ] intl
[ ] mbstring
*** Image processing ***
[ ] EXIF
[ ] GD
*** Mathematical extensions ***
[ ] BC math
[ ] GMP
*** Other basic extensions ***
[*] JSON
[ ] Tokenizer
*** Other services ***
[ ] cURL
[ ] FTP
[ ] SNMP
[*] sockets
*** Process Control ***
[ ] PCNTL
[*] Posix
External php extensions --->
配置http+php
添加Qt
> Target packages > Graphic libraries and applications (graphic/text) > Qt5
Qt5 version (Latest (5.9)) ---> *** qt53d module needs an OpenGL-capable backend *** -*- qt5base () Custom configuration options () Config file [ ] Compile and install examples (with code) -*- concurrent module [ ] MySQL Plugin [ ] PostgreSQL Plugin SQLite 3 support (No sqlite support) ---> -*- gui module -*- widgets module *** OpenGL support needs an OpenGL-capable backend *** [*] linuxfb support [*] directfb support *** X.org XCB backend available if X.org is enabled *** *** eglfs backend available if OpenGL and EGL are enabled *** () Default graphical platform [*] fontconfig support [*] harfbuzz support [*] GIF support [*] JPEG support [*] PNG support -*- DBus module -*- Enable ICU support [*] Enable Tslib support *** qt5canvas3d needs an OpenGL-capable backend *** [*] qt5charts [*] qt5connectivity [*] qt5declarative [*] quick module [*] qt5enginio *** qt5graphicaleffects needs an OpenGL-capable backend *** [*] qt5imageformats [*] qt5location [*] qt5multimedia [ ] qt5quickcontrols [ ] qt5quickcontrols2 [ ] qt5script [ ] qt5scxml [ ] qt5sensors [ ] qt5serialbus [ ] qt5serialport [ ] qt5svg [ ] qt5tools [ ] qt5virtualkeyboard *** qt5wayland needs an OpenGL-capable backend *** [*] qt5webchannel [*] qt5webkit [*] qt5webkit-examples *** qt5webengine needs udev /dev management and a glibc toolchain w/ gcc >= 4.8, host gcc >= 4.8, threads, wchar *** *** qt5webengine needs an OpenGL and EGL-capable backend *** -*- qt5websockets -*- qt5xmlpatterns
添加can-until
添加ssh工具
选中包
> Target packages > Networking applications
[*] openssh
修改配置文件
添加mkfs格式化工具
添加自己的bin文件
编译bootloader
Bootloaders --->
[ ] afboot-stm32 [ ] Barebox [ ] mxs-bootlets [ ] s500-bootloader [ ] ts4800-mbrboot [*] U-Boot [ ] CRC image for Altera SoC FPGA (mkpimage) [ ] Environment image ---- [ ] Generate a U-Boot boot script () Device Tree Source file paths [ ] X-loader
u-boot编译
[*] U-Boot Build system (Kconfig) ---> U-Boot Version (Custom Git repository) ---> (https://git.coding.net/codebug8/mini437x_uboot.git) URL of custom repository (master) Custom repository version () Custom U-Boot patches U-Boot configuration (Using an in-tree board defconfig file) ---> (mini437x) Board defconfig () Additional configuration fragment files [*] U-Boot needs dtc [ ] U-Boot needs pylibfdt [ ] U-Boot needs OpenSSL U-Boot binary format ---> [ ] produce a .ift signed image (OMAP) [*] Install U-Boot SPL binary image (MLO) U-Boot SPL/TPL binary image name(s)
系统镜像的生成
[ ] axfs root filesystem [ ] cloop root filesystem for the target device [*] cpio the root filesystem (for use as an initial RAM filesystem) Compression method (gzip) ---> [*] Create U-Boot image of the root filesystem [ ] cramfs root filesystem [*] ext2/3/4 root filesystem ext2/3/4 variant (ext4) ---> () filesystem label (300M) exact size (0) exact number of inodes (leave at 0 for auto calculation) (5) reserved blocks percentage (-O ^64bit) additional mke2fs options Compression method (no compression) ---> [ ] initial RAM filesystem linked into linux kernel [ ] jffs2 root filesystem [ ] romfs root filesystem [ ] squashfs root filesystem [*] tar the root filesystem Compression method (gzip) ---> () other random options to pass to tar [ ] ubi image containing an ubifs root filesystem [ ] ubifs root filesystem [ ] yaffs2 root filesystem