网页
https://buildroot.org/downloads/manual/manual.html#_init_system
make clean
在buildroot的make menuconfig的时候,Target packages里面 选择了 python3
编译之后在 NUC970_Buildroot-master/output/target/usr/bin目录下面有python3
那么如果 这个时候 最终编译出来的 rootfs,你又不想要这个 python3了怎么办呢?
一个办法是 直接在target里面删掉
另外一个是在 make menuconfig 的时候,先去掉之前选中的选项。
然后执行 make clean。make clean之后,out 目录下面都是空的,没有build目录和target目录了,
然后执行 make -j4 .经过很长时间的编译,就会编译出来 自己 想要的那个image了。
如何 把 编译出来的 uClibc ,放到外面,以后用
下图是不确定的
Cannot execute cross-compiler ‘/usr/local/arm_linux_4.8/usr/bin/arm-nuvoton-linux-uclibcgnueabi–gcc.br_real’
package/pkg-generic.mk:206: recipe for target ‘/home/user/NUC970_Buildroot-master/output/build/toolchain-external/.stamp_configured’ failed
/usr/local/arm_linux_4.8/usr/arm-nuvoton-linux-uclibcgnueabi/sysroot/usr/include/linux/version.h
make -j4
及时备份
备份 .config 文件
下面的文件会在 make clean的时候 被清除
备份 output/image
备份 output/target
make clean 之后
output目录中的东西,都会被清空,
这样你之前通过 make linux-menuconfig 设置的内核配置选项,也会被清空
你之前通过 make busybox-menuconfig 设置的内核配置选项,也会被清空
你需要提前保存 这两个地方的 配置文件
初始network interface 文件
mkdir -p /home/user/NUC970_Buildroot-master/output/target/etc/network/
( echo “# interface file auto-generated by buildroot”; echo ; echo “auto lo”; echo “iface lo inet loopback”; ) > /home/user/NUC970_Buildroot-master/output/target/etc/network/interfaces
rcS
user@ubuntu:~/NUC970_Buildroot-master$ grep -r “Start all init scripts in /etc/init.d” .
./output/target_a/etc/init.d/rcS:# Start all init scripts in /etc/init.d
Binary file ./output/images_b/rootfs.tar matches
Binary file ./output/images_b/rootfs.cpio matches
Binary file ./output/images/rootfs.tar matches
Binary file ./output/images/rootfs.cpio matches
./output/target/etc/init.d/rcS:# Start all init scripts in /etc/init.d
./output/target_b/etc/init.d/rcS:# Start all init scripts in /etc/init.d
./package/initscripts/init.d/rcS:# Start all init scripts in /etc/init.d
./board/nuvoton/rootfs-lorag/etc/init.d/rcS:# Start all init scripts in /etc/init.d
yaffs
rootdir=/home/user/NUC970_Buildroot-master/output/target
table='/home/user/NUC970_Buildroot-master/output/build/_device_table.txt'
mkyaffs2 0.2.9_20120815: image building tool for YAFFS2.
stage 1: scanning directory '/home/user/NUC970_Buildroot-master/output/target'... [done]
scanning complete, total objects: 1284.
stage 2: creating image '/home/user/NUC970_Buildroot-master/output/images/rootfs.yaffs2'
[=================================================================================================================] 1284/1284 100%
operation complete,
1284 objects in 16080 NAND pages.
/usr/bin/install -m 0644 support/misc/target-dir-warning.txt /home/user/NUC970_Buildroot-master/output/target/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM
3333
es/Image; fi
>>> host-yaffs2utils 0.2.9 Downloading
--2021-04-11 16:17:03-- https://yaffs2utils.googlecode.com/files/0.2.9.tar.gz
Resolving yaffs2utils.googlecode.com (yaffs2utils.googlecode.com)... 64.233.189.82
Connecting to yaffs2utils.googlecode.com (yaffs2utils.googlecode.com)|64.233.189.82|:443... failed: Connection refused.
--2021-04-11 16:17:26-- http://sources.buildroot.net/0.2.9.tar.gz
Resolving sources.buildroot.net (sources.buildroot.net)... 104.26.1.37, 172.67.72.56, 104.26.0.37, ...
Connecting to sources.buildroot.net (sources.buildroot.net)|104.26.1.37|:80... failed: Connection refused.
Connecting to sources.buildroot.net (sources.buildroot.net)|172.67.72.56|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 39689 (39K) [application/x-gtar-compressed]
Saving to: ‘/home/user/NUC970_Buildroot-master/output/build/.0.2.9.tar.gz.W44nHu/output’
/home/user/NUC970_Buildroot-mast 100%[=========================================================>] 38.76K --.-KB/s in 0s
2021-04-11 16:17:48 (128 MB/s) - ‘/home/user/NUC970_Buildroot-master/output/build/.0.2.9.tar.gz.W44nHu/output’ saved [39689/39689]
0.2.9.tar.gz: OK (sha256: 9b0912bf683eb839b6e57c9255c83894c3b700d16489a49d319c54c1abf8f6d7)
>>> host-yaffs2utils 0.2.9 Extracting
gzip -d -c /home/user/NUC970_Buildroot-master/dl/0.2.9.tar.gz | tar --strip-components=1 -C /home/user/NUC970_Buildroot-master/output/build/host-yaffs2utils-0.2.9 -xf -
>>> host-yaffs2utils 0.2.9 Patching
Applying nuc980.patch using patch:
patching file Makefile
patching file mkyaffs2.c
patching file nand_ecclayout.h
patching file unspare2.c
patching file unyaffs2.c
patching file version.h
>>> host-yaffs2utils 0.2.9 Configuring
>>> host-yaffs2utils 0.2.9 Building
PATH="/home/user/NUC970_Buildroot-master/output/host/bin:/home/user/NUC970_Buildroot-master/output/host/sbin:/home/user/NUC970_Buildroot-master/output/host/usr/bin:/home/user/NUC970_Buildroot-master/output/host/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/user/NUC970_Buildroot-master/output/host/usr/bin" PKG_CONFIG="/home/user/NUC970_Buildroot-master/output/host/usr/bin/pkg-config" PKG_CONFIG_SYSROOT_DIR="/" PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 PKG_CONFIG_LIBDIR="/home/user/NUC970_Buildroot-master/output/host/usr/lib/pkgconfig:/home/user/NUC970_Buildroot-master/output/host/usr/share/pkgconfig" /usr/bin/make -j2 -C /home/user/NUC970_Buildroot-master/output/build/host-yaffs2utils-0.2.9
make[1]: Entering directory '/home/user/NUC970_Buildroot-master/output/build/host-yaffs2utils-0.2.9'
gcc -I. -I./yaffs2 -O2 -D_HAVE_BROKEN_MTD_H -Wall -Wshadow -Winline -Wpointer-arith -Wnested-externs -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -D_HAVE_MMAP -c -o yaffs2/yaffs_hweight.o yaffs2/yaffs_hweight.c
gcc -I. -I./yaffs2 -O2 -D_HAVE_BROKEN_MTD_H -Wall -Wshadow -Winline -Wpointer-arith -Wnested-externs -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -D_HAVE_MMAP -c -o yaffs2/yaffs_ecc.o yaffs2/yaffs_ecc.c
gcc -I. -I./yaffs2 -O2 -D_HAVE_BROKEN_MTD_H -Wall -Wshadow -Winline -Wpointer-arith -Wnested-externs -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -D_HAVE_MMAP -c -o yaffs2/yaffs_packedtags1.o yaffs2/yaffs_packedtags1.c
gcc -I. -I./yaffs2 -O2 -D_HAVE_BROKEN_MTD_H -Wall -Wshadow -Winline -Wpointer-arith -Wnested-externs -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -D_HAVE_MMAP -c -o yaffs2/yaffs_packedtags2.o yaffs2/yaffs_packedtags2.c
gcc -I. -I./yaffs2 -O2 -D_HAVE_BROKEN_MTD_H -Wall -Wshadow -Winline -Wpointer-arith -Wnested-externs -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -D_HAVE_MMAP -c -o safe_rw.o safe_rw.c
gcc -I. -I./yaffs2 -O2 -D_HAVE_BROKEN_MTD_H -Wall -Wshadow -Winline -Wpointer-arith -Wnested-externs -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -D_HAVE_MMAP -c -o endian_convert.o endian_convert.c
gcc -I. -I./yaffs2 -O2 -D_HAVE_BROKEN_MTD_H -Wall -Wshadow -Winline -Wpointer-arith -Wnested-externs -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -D_HAVE_MMAP -c -o progress_bar.o progress_bar.c
gcc -I. -I./yaffs2 -O2 -D_HAVE_BROKEN_MTD_H -Wall -Wshadow -Winline -Wpointer-arith -Wnested-externs -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -D_HAVE_MMAP -c -o mkyaffs2.o mkyaffs2.c
gcc -I. -I./yaffs2 -O2 -D_HAVE_BROKEN_MTD_H -Wall -Wshadow -Winline -Wpointer-arith -Wnested-externs -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -D_HAVE_MMAP -c -o unyaffs2.o unyaffs2.c
unyaffs2.c: In function ‘unyaffs2_obj_chattr’:
unyaffs2.c:763:2: warning: ignoring return value of ‘lchown’, declared with attribute warn_unused_result [-Wunused-result]
lchown(fpath, obj->uid, obj->gid);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from unyaffs2.c:51:0:
At top level:
nand_ecclayout.h:44:25: warning: ‘nuc970_oobTb’ defined but not used [-Wunused-variable]
static nand_ecclayout_t nuc970_oobTb = {
^~~~~~~~~~~~
In file included from /usr/include/string.h:494:0,
from unyaffs2.c:26:
In function ‘memcpy’,
inlined from ‘unyaffs2_extract_hardlink.constprop’ at unyaffs2.c:1222:2,
inlined from ‘unyaffs2_extract_obj’ at unyaffs2.c:1289:10:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:34:10: warning: ‘__builtin___memcpy_chk’ writing 16 bytes into a region of size 8 overflows the destination [-Wstringop-overflow=]
return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc -I. -I./yaffs2 -O2 -D_HAVE_BROKEN_MTD_H -Wall -Wshadow -Winline -Wpointer-arith -Wnested-externs -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -D_HAVE_MMAP -c -o unspare2.o unspare2.c
gcc -o mkyaffs2 yaffs2/yaffs_hweight.o yaffs2/yaffs_ecc.o yaffs2/yaffs_packedtags1.o yaffs2/yaffs_packedtags2.o safe_rw.o endian_convert.o progress_bar.o mkyaffs2.o -lm
gcc -o unspare2 yaffs2/yaffs_hweight.o yaffs2/yaffs_ecc.o yaffs2/yaffs_packedtags1.o yaffs2/yaffs_packedtags2.o safe_rw.o endian_convert.o progress_bar.o unspare2.o -lm
gcc -o unyaffs2 yaffs2/yaffs_hweight.o yaffs2/yaffs_ecc.o yaffs2/yaffs_packedtags1.o yaffs2/yaffs_packedtags2.o safe_rw.o endian_convert.o progress_bar.o unyaffs2.o -lm
make[1]: Leaving directory '/home/user/NUC970_Buildroot-master/output/build/host-yaffs2utils-0.2.9'
>>> host-yaffs2utils 0.2.9 Installing to host directory
PATH="/home/user/NUC970_Buildroot-master/output/host/bin:/home/user/NUC970_Buildroot-master/output/host/sbin:/home/user/NUC970_Buildroot-master/output/host/usr/bin:/home/user/NUC970_Buildroot-master/output/host/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/user/NUC970_Buildroot-master/output/host/usr/bin" PKG_CONFIG="/home/user/NUC970_Buildroot-master/output/host/usr/bin/pkg-config" PKG_CONFIG_SYSROOT_DIR="/" PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 PKG_CONFIG_LIBDIR="/home/user/NUC970_Buildroot-master/output/host/usr/lib/pkgconfig:/home/user/NUC970_Buildroot-master/output/host/usr/share/pkgconfig" /usr/bin/make -j2 -C /home/user/NUC970_Buildroot-master/output/build/host-yaffs2utils-0.2.9 INSTALLDIR=/home/user/NUC970_Buildroot-master/output/host/usr/bin install
make[1]: Entering directory '/home/user/NUC970_Buildroot-master/output/build/host-yaffs2utils-0.2.9'
cp mkyaffs2 unyaffs2 unspare2 /home/user/NUC970_Buildroot-master/output/host/usr/bin
make[1]: Leaving directory '/home/user/NUC970_Buildroot-master/output/build/host-yaffs2utils-0.2.9'
>>> Finalizing target directory
PYTHONPATH="/home/user/NUC970_Buildroot-master/output/target/usr/lib/python2.7/sysconfigdata/:/home/user/NUC970_Buildroot-master/output/target/usr/lib/python2.7/site-packages/" /home/user/NUC970_Buildroot-master/output/host/usr/bin/python2.7 support/scripts/pycompile.py /home/user/NUC970_Buildroot-master/output/target/usr/lib/python2.7
find /home/user/NUC970_Buildroot-master/output/target/usr/lib/python2.7 -name '*.py' -print0 | xargs -0 --no-run-if-empty rm -f
find /home/user/NUC970_Buildroot-master/output/target/usr/lib/python2.7 -name '*.pyo' -print0 | xargs -0 --no-run-if-empty rm -f
mkdir -p /home/user/NUC970_Buildroot-master/output/target/etc
echo "buildroot" > /home/user/NUC970_Buildroot-master/output/target/etc/hostname
/bin/sed -i -e '$a \127.0.1.1\tbuildroot' -e '/^127.0.1.1/d' /home/user/NUC970_Buildroot-master/output/target/etc/hosts
mkdir -p /home/user/NUC970_Buildroot-master/output/target/etc
Binary file output/host/usr/bin/mkyaffs2 matches
fs/yaffs2/yaffs.mk: $(HOST_DIR)/usr/bin/mkyaffs2 --inband-tags --all-root $(TARGET_DIR) $@
Binary file output/build/host-yaffs2utils-0.2.9/mkyaffs2 matches
参考
./yaffs2utils/mkyaffs2 --inband-tags -p 2048 -s 64 rootfs rootfs.yaffs2 && cp rootfs.yaffs2 /media/vmuer/share/image/
mkyaffs2 0.2.9_20120815: image building tool for YAFFS2.
stage 1: scanning directory 'rootfs'... [done]
scanning complete, total objects: 1555.
stage 2: creating image 'rootfs.yaffs2'
777
################################################################################
#
# Build the yaffs2 root filesystem image
#
################################################################################
ROOTFS_YAFFS2_DEPENDENCIES = host-yaffs2utils
define ROOTFS_YAFFS2_CMD
$(HOST_DIR)/usr/bin/mkyaffs2 --inband-tags --all-root $(TARGET_DIR) $@
endef
$(eval $(call ROOTFS_TARGET,yaffs2))
~
ubuntu下修改yaffs2文件系统镜像文件
sudo mount -t yaffs2 /dev/mtdblock0 mnt/system
#sudo dd if=system.img of=/dev/mtdblock0
sudo nandwrite -a -o /dev/mtd0 system.img
463650+0 records in
463650+0 records out
237388800 bytes (237 MB) copied, 11.0737 s, 21.4 MB/s
mkdir -p mnt/system
sudo mount -t yaffs2 /dev/mtdblock0 mnt/system
ls -l system
如何修改yaffs文件系统的内容并重新生成yaffs2映像
cd /home/user/NUC970_Buildroot-master/output/images
mkdir -p rootfs
sudo tar xvf rootfs.tar -C rootfs/
sudo /home/user/NUC970_Buildroot-master/output/host/usr/bin/mkyaffs2 --inband-tags --all-root rootfs aa.yaffs2
ooo
sudo /home/user/nuc980_iot/NUC970_Buildroot-master/output/host/usr/bin/mkyaffs2 --inband-tags --all-root rootfs nuc980_rootfs.yaffs2
/home/user/nuc980_iot/NUC970_Buildroot-master/my_rootfs
11
1
pack烧写