挂在最小系统

  1. 制作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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值