-
制作linux最小系统
移植busybox
下载busybox-1.7.0.tar.bz2, 上传到服务器的/soft/:
https://busybox.net/downloads/解压busybox-1.7.0.tar.bz2: $tar xjf busybox-1.7.0.tar.bz2 -C ../tool/ 配置busybox-1.7.0: $cd busybox-1.7.0 $make menuconfig 报错:Makefile:405: *** mixed implicit and normal rules: deprecated syntax Makefile:1242: *** mixed implicit and normal rules: deprecated syntax 解决: 去掉line405: config 去掉line1242: / $make menuconfig Busybox Settings ---> Busybox Library Tuning ---> [*] Tab completion(按tab健自动补全功能) 其他默认 编译busybox-1.7.0 /busybox-1.7.0/Makefile: 修改line175: ARCH ?= $(SUBARCH) CROSS_COMPILE ?= 为 ARCH ?= arm CROSS_COMPILE ?=arm-linux- 编译: $make HOSTLD scripts/kconfig/conf scripts/kconfig/conf -s Config.in *** *** You have not yet configured busybox! *** *** Please run some configurator (e.g. "make oldconfig" or *** "make menuconfig" or "make defconfig"). *** /home/feng/Work/ARM/work/RM9200_new/tool/busybox-1.7.0/scripts/kconfig/Makefile:24: recipe for target 'silentoldconfig' failed make[2]: *** [silentoldconfig] Error 1 /home/feng/Work/ARM/work/RM9200_new/tool/busybox-1.7.0/Makefile:406: recipe for target 'silentoldconfig' failed make[1]: *** [silentoldconfig] Error 2 Makefile:480: recipe for target 'include/autoconf.h' failed make: *** [include/autoconf.h] Error 2 解决: 因为开始的时候没在menuconfig中配置选项,所以会报上面错误,配置任一选项时就编译通过。 $make miscutils/taskset.c:17: error: expected ')' before '*' token miscutils/taskset.c: In function 'taskset_main': miscutils/taskset.c:47: error: 'cpu_set_t' undeclared (first use in this function) miscutils/taskset.c:47: error: (Each undeclared identifier is reported only once miscutils/taskset.c:47: error: for each function it appears in.) miscutils/taskset.c:47: error: expected ';' before 'mask' miscutils/taskset.c:48: warning: ISO C90 forbids mixed declarations and code miscutils/taskset.c:68: warning: implicit declaration of function 'CPU_ZERO' miscutils/taskset.c:68: error: 'new_mask' undeclared (first use in this function) miscutils/taskset.c:69: error: 'CPU_SETSIZE' undeclared (first use in this function) miscutils/taskset.c:71: warning: implicit declaration of function 'CPU_SET' miscutils/taskset.c:78: warning: implicit declaration of function 'sched_getaffinity' miscutils/taskset.c:78: error: 'mask' undeclared (first use in this function) miscutils/taskset.c:81: warning: implicit declaration of function '__from_cpuset' miscutils/taskset.c:81: warning: format '%s' expects type 'char *', but argument 4 has type 'int' miscutils/taskset.c:86: warning: implicit declaration of function 'sched_setaffinity' scripts/Makefile.build:192: recipe for target 'miscutils/taskset.o' failed make[1]: *** [miscutils/taskset.o] Error 1 Makefile:701: recipe for target 'miscutils' failed make: *** [miscutils] Error 2 解决: 进入make menuconfig: 在 Miscellaneous Utilities ---> [ ] taskset 将其前的星号去掉即可。 $make ...... AR util-linux/lib.a LINK busybox_unstripped Trying libraries: crypt m Library crypt is needed Library m is needed Final link with: crypt m 编译成功! 制作最小系统: 执行"make CONFIG_PREFIX=dir_path install" $make CONFIG_PREFIX=../new_fs_mini install $cd .. $cd new_fs_mini $ls bin linuxrc sbin usr
安装glibc库:
$cd new_fs_mini/
$mkdir lib
$cd /usr/local/arm/4.1.1-920t/lib/
$cp .so /new_fs_mini/lib/ -d
$cd new_fs_mini/lib/
$ls
…好多文件构建根文件系统:
创建 etc/inittab 文件:
$cd new_fs_mini/
&mkdir etc
$cd etc
$touch inittab
$vi inittab
# /etc/inittab
::sysinit:/etc/init.d/rcS
ttyS0::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a –r创建 etc/init.d/rcS 文件: $cd etc $mkdir init.d $cd init.d $touch rcS $vi rcS #!/bin/sh ifconfig eth0 10.124.1.33 mount -a mkdir /dev/pts m
挂在最小系统
最新推荐文章于 2020-08-20 16:12:08 发布