打印

busybox1.1.3制作yaffs文件系统ARM,busybox,LINUXandroid

[复制链接]
214|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
冰糖炖雪梨|  楼主 | 2018-8-24 15:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  

  OK-2440-III文件系统移植--busybox+mdev

  Busybox版本:busybox1.1.3

  编译工具:arm-linux-3.3.2

  目标板:FLOK-2440-III

  编译平台:redhat9

  一、配置安装busybox

  1.配置busybox:

  #    make menuconfig

  Busybox Settings

  General Configuration

  Support for devfs

  Build Options

  Build with Large File Support(for accessing files  2GB)

  Do you want to build Busybox with a Cross Compiler?

  (/usr/local/arm/3.3.2/bin/arm-linux-)Cross Compiler prefix

  //上面的选项用来指定编译工具,我刚开始没有选择这个选项,结果编译出文件系统下到开发板上运行,串口打印信息为:

  大家可以试试。

  Init Utilities  init Support reading an inittab file   Be _extra_ quiet on boot    Support running init from within an initrd (not initramfs) poweroff, halt, and reboot mesg

  Shells

  Choose your default shell (ash)

  (X) ash

  ()hush

  ()lash

  ()nsh

  ()none

  --- ash

  --- Ash Shell Options

  --- Bourne Shell Options               

  [ ]

  Hide message on interactive shell startup      

  [ ]

  Standalone shell              

  command line editing              

  vi-style line editing commands         

  (15)  history size              

  history saving              

  tab completion              

  username completion            

  [ ]

  Fancy shell prompts

  Coreutils

  cp

  cat

  ls

  mkdir

  echo (basic SuSv3 version taking no options)

  env

  mv

  pwd

  rm

  touch

  Editors

  vi

  Linux System Utilities  mdev                //不选这个启动不起来系统,大家可以去掉试试看有什么现象   Support /etc/mdev.conf     mount

  umount

  Support loopback mounts

  Support for the old /etc/mtab file

  Linux Module Utilities---

  insmod     

  rmmod   

  lsmod  

  lsmod pretty output for 2.6.x Linux kernels  

  modprobe   

  Multiple options parsing   

  --- Options common to multiple modutils  

  Support tainted module checking with new kernels   

  [ ]

  Support version 2.2.x to 2.4.x Linux kernels  //此项一定不要选!!!  

  Support version 2.6.x Linux kernels            

  Networking Utilities

  ifconfig

  ping

  Archival Utilities---

  tar

  Enable archive creation (NEW)

  Enable -j option to handle .tar.bz2 files  

  现在配置完成,保存退出之后,执行:make 编译

  #    make ARCH=arm CROSS_COMPILE=/usr/local/arm/3.3.2/bin/arm-linux-

  成功编译完成后执行make install安装

  #    make install

  这样就在busybox1.1.3目录下产生_install文件夹,里面就是编译好的文件系统。

  2、创建根文件系统目录

  要创建的目录有:bin sbin dev etc lib home root usr var proc mnt tmp sys

  可以先创建一个目录比如/usr/src/rootfs,然后进入该目录,创建以上目录。

  #    cd /usr/src/

  #    mkdir rootfs

  #    cd rootfs

  #    mkdir bin sbin dev etc lib home root usr var proc mnt tmp sys

  目录创建好之后把busybox生成的_install目录里那些都复制过来。

  接下来我们要在etc目录下创建两个文件和一个文件夹,两个文件分别为fstab和inittab,文件夹为init.d。

  (1)

  #    cd etc

  #    vi fstab

  fstab的内容是:

  #device        mount-point        type            options        dump        fsck    order

  proc       /proc            proc         defaults           0            0

  tmpfs       /tmp            tmpfs         defaults         0             0

  sysfs       /sys             sysfs        defaults         0             0

  tmpfs       /dev             tmpfs         defaults            0            0

  文 件/etc/fstab用来定义文件系统的“静态信息”,这些信息被用来控制mount命令的行为。

  (2)

  #     vi inittab

  inittab的内容是:

  #/etc/inittab

  ::sysinit:/etc/init.d/rcS

  s3c2410_serial0::askfirst:-/bin/sh    如果不使用mdev则s3c2410_serial0改ttySAC0

  ::ctrlaltdel:/sbin/reboot

  ::shutdown:/bin/umount -a -r

  (3)

  #    mkdir init.d

  #    cd init.d

  #    vi rcS

  init.d\rcS文件的内容:

  #!/bin/sh

  ifconfig eth0 192.168.1.17

  mount -t tmpfs mdev /dev

  mkdir /dev/pts

  mount -t devpts devpts /dev/pts

  mount -t sysfs sysfs /sys

  mount -a

  echo /sbin/mdev  /proc/sys/kernel/hotplug

  mdev –s

  echo My first rootfs

  将rcS文件的属性改成可执行的,这一步很重要,必须改。

  #    chmod 775 etc/init.d/rcS

  (4)我在配置busybox的时候用的是动态库,,所以要把/usr/local/arm/3.4.1/arm-linux/lib下面的3个库文件和一个加载器拷贝到/filesystem_install/lib下:ld-2.3.2.so ld-linux.so.2 libc.so.6libcrypt.so.1libm.so.6

  (5)在/usr、src/rootfs/dev下建立设备节点:

  Console  null

  #    sudo mknod console c 5 1

  #    sudo mknod null c 1 3

  到此为止,必要的文件已经建立好了,现在要生成yaffs文件系统。

  我们用光盘里带的mkyaffs2image工具来生成。将其解压拷贝到主机的/bin目录下即可。转到建立的那个/rootfs目录的上一级,也就是/usr/src目录,然后执行:mkyaffs2image rootfs rootfs.yaffs 就可以生成文件系统镜像了,将rootfs.yaffs烧进板子,当看到My first rootfs Please press Enter to activate this console.就表明你成功了!!!

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

我的也成功了,不过也看一看看这个。

我的停在:

  VFS: Mounted root (yaffs filesystem).

  Mounted devfs on /dev

  Freeing init memory: 160K

  不走了

  按回车还能换行

回复 9# yaoyulian

  你的rcS文件写的对吗?

我的板子是OK2440IV,它提供的文件系统是qte_yaffs.tar.bz2,解压,用mkyaffs2image 工具来制作文件系统:./mkyaffs2image qte_yaffs qte.yaffs 0

  我不知道是不是就不需要在使用busybox制作了。如果要将应用程序烧进去,是不是只需要放到bin下烧写即可。望指教!!

。。。。。。。。。。

回复 13# gyzwl

  板子理带的那个qte。。。的文件系统是带GUI的文件系统,这个是最简单的文件系统,不是用不用的问题,学会做文件系统是学习的一部分,这是个过程,也是学好这个必经的过程

先攒钱,,,,

回复 16# yongma62

  想问一下lz,不带GUI的文件系统启动后是什么样子?黑屏吗?

  飞凌提供的qte_yaffs文件系统是否可以运行其他GUI程序,如minigui?



  

  楼主脑残么,发个制作文件系统的帖子有必要要那么多金币么

  你自己之所以能弄成功,不也是前辈们辛苦摸索,总结出来的经验么

  无聊

购买了就没有金币了。。。穷哦。。。。

楼主,问个问题。我按照你的做法试了一下。不过出现如下问题:

  Starting pid 378, console /dev/tts/0: '/etc/init.d/rcS'

  Bummer, could not run '/etc/init.d/rcS': No such file or direct

  请问是什么问题呢?

飞凌OK-2440-III文件系统移植--busybox+mdev

  Busybox版本:busybox1.1.3

  编译工具:arm-linux-3.3.2

  目标板:飞凌OK-2440-III

  编译平台:redhat9

  一、配置安装busybox

  1.配置busybox:

  #  make menuconfig

  Busybox Settings

  General Configuration

 

  Support for devfs

  Build Options

 Build with Large File Support(for accessing files  2GB)

 Do you want to build Busybox with a Cross Compiler?

  (/usr/local/arm/3.3.2/bin/arm-linux-)Cross Compiler prefix

  //上面的选项用来指定编译工具,我刚开始没有选择这个选项,结果编译出文件系统下到开发板上运行,串口打印信息为:

  大家可以试试。

  Init Utilities

 

  init

 

  Support reading an inittab file  

 

  Be _extra_ quiet on boot   

 

  Support running init from within an initrd (not initramfs)

 

  poweroff, halt, and reboot

 

  mesg

  Shells

  Choose your default shell (ash)

  (X) ash

  ()hush

  ()lash

  ()nsh

  ()none

  --- ash

  --- Ash Shell Options

  --- Bourne Shell Options               

  [ ]

  Hide message on interactive shell startup      

  [ ]

  Standalone shell              

 

  command line editing              

 

  vi-style line editing commands         

  (15)  history size              

 

  history saving              

 

  tab completion              

 

  username completion            

  [ ]

  Fancy shell prompts

  Coreutils

 

  cp

 

  cat

 

  ls

 

  mkdir

 

  echo (basic SuSv3 version taking no options)

 

  env

 

  mv

 

  pwd

 

  rm

 

  touch

  Editors

 

  vi

  Linux System Utilities

 

  mdev          //不选这个启动不起来系统,大家可以去掉试试看有什么现象

 

  Support /etc/mdev.conf  

 

  mount

 

  umount

 

  Support loopback mounts

 

  Support for the old /etc/mtab file

  Linux Module Utilities---

 

  insmod     

 

  rmmod   

 

  lsmod  

 

  lsmod pretty output for 2.6.x Linux kernels  

 

  modprobe   

 

  Multiple options parsing   

  --- Options common to multiple modutils  

 

  Support tainted module checking with new kernels   

  [ ]

  Support version 2.2.x to 2.4.x Linux kernels  //此项一定不要选!!!  

 

  Support version 2.6.x Linux kernels            

  Networking Utilities

 

  ifconfig

 

  ping

  Archival Utilities---

 

  tar

 

  Enable archive creation (NEW)

 

  Enable -j option to handle .tar.bz2 files  

  现在配置完成,保存退出之后,执行:make 编译

  #  make ARCH=arm CROSS_COMPILE=/usr/local/arm/3.3.2/bin/arm-linux-

  成功编译完成后执行make install安装

  #  make install

  这样就在busybox1.1.3目录下产生_install文件夹,里面就是编译好的文件系统。

  2、创建根文件系统目录

  要创建的目录有:bin sbin dev etc lib home root usr var proc mnt tmp sys

  可以先创建一个目录比如/usr/src/rootfs,然后进入该目录,创建以上目录。

  #  cd /usr/src/

  #  mkdir rootfs

  #  cd rootfs

  #  mkdir bin sbin dev etc lib home root usr var proc mnt tmp sys

  目录创建好之后把busybox生成的_install目录里那些都复制过来。

  接下来我们要在etc目录下创建两个文件和一个文件夹,两个文件分别为fstab和inittab,文件夹为init.d。

  (1)

  #  cd etc

  #  vi fstab

  fstab的内容是:

  #device      mount-point      type        options      dump      fsck  order

  proc     /proc        proc     defaults         0        0

  tmpfs     /tmp        tmpfs     defaults     0         0

  sysfs     /sys         sysfs      defaults     0         0

  tmpfs     /dev         tmpfs     defaults        0        0

  文 件/etc/fstab用来定义文件系统的“静态信息”,这些信息被用来控制mount命令的行为。

  (2)

  #   vi inittab

  inittab的内容是:

  #/etc/inittab

  ::sysinit:/etc/init.d/rcS

  s3c2410_serial0::askfirst:-/bin/sh    如果不使用mdev则s3c2410_serial0改ttySAC0

  ::ctrlaltdel:/sbin/reboot

  ::shutdown:/bin/umount -a -r

  (3)

  #  mkdir init.d

  #  cd init.d

  #  vi rcS

  init.d\rcS文件的内容:

  #!/bin/sh

  ifconfig eth0 192.168.1.17

  mount -t tmpfs mdev /dev

  mkdir /dev/pts

  mount -t devpts devpts /dev/pts

  mount -t sysfs sysfs /sys

  mount -a

  echo /sbin/mdev  /proc/sys/kernel/hotplug

  mdev –s

  echo My first rootfs

  将rcS文件的属性改成可执行的,这一步很重要,必须改。

  #  chmod 775 etc/init.d/rcS

  (4)我在配置busybox的时候用的是动态库,,所以要把/usr/local/arm/3.4.1/arm-linux/lib下面的3个库文件和一个加载器拷贝到/filesystem_install/lib下:ld-2.3.2.so ld-linux.so.2 libc.so.6libcrypt.so.1libm.so.6

  (5)在/usr、src/rootfs/dev下建立设备节点:

  Console  null

  #  sudo mknod console c 5 1

  #  sudo mknod null c 1 3

  到此为止,必要的文件已经建立好了,现在要生成yaffs文件系统。

  我们用光盘里带的mkyaffs2image工具来生成。将其解压拷贝到主机的/bin目录下即可。转到建立的那个/rootfs目录的上一级,也就是/usr/src目录,然后执行:mkyaffs2image rootfs rootfs.yaffs 就可以生成文件系统镜像了,将rootfs.yaffs烧进板子,当看到My first rootfs Please press Enter to activate this console.就表明你成功了!!!

请教楼主:在配置好busybox后,出现如下问题:

  [root@localhost busybox-1.1.3]# make

  /bin/sh: line 1: /usr/i386-linux-uclibc/bin/i386-uclibc-gcc: 没有那个文件或目录

  /bin/sh: line 1: /usr/i386-linux-uclibc/bin/i386-uclibc-gcc: 没有那个文件或目录

  /bin/sh: line 1: /usr/i386-linux-uclibc/bin/i386-uclibc-gcc: 没有那个文件或目录

  /bin/sh: line 1: /usr/i386-linux-uclibc/bin/i386-uclibc-ld: 没有那个文件或目录

  /bin/sh: line 1: /usr/i386-linux-uclibc/bin/i386-uclibc-gcc: 没有那个文件或目录

  /bin/sh: line 1: /usr/i386-linux-uclibc/bin/i386-uclibc-gcc: 没有那个文件或目录

  /bin/sh: line 1: /usr/i386-linux-uclibc/bin/i386-uclibc-gcc: 没有那个文件或目录

  /bin/sh: line 1: /usr/i386-linux-uclibc/bin/i386-uclibc-ld: 没有那个文件或目录

  GEN include/bbconfigopts.h

  GEN .depend

  CC applets/applets.o

  /bin/sh: line 1: /usr/i386-linux-uclibc/bin/i386-uclibc-gcc: 没有那个文件或目录

  make[1]: *** [/tmp/gaoyg/busybox-1.1.3/busybox-1.1.3/applets/applets.o]

  Error 127

  make: *** [_all]

  Error 2

  不知道问题出在哪了,该如何解决呢?请多指教,不胜感激。

“(4)我在配置busybox的时候用的是动态库,,所以要把/usr/local/arm/3.4.1/arm-linux/lib下面的3个库文件和一个加载器拷贝到/filesystem_install/lib下:ld-2.3.2.so ld-linux.so.2 libc.so.6libcrypt.so.1libm.so.6

  ”

  请问这一步里面的库文件和加载器应该是/usr/local/arm/3.3.2/arm-linux/lib 吧?

  然后是拷到我们自己创建的文件系统目录里面的lib文件夹下吧?也就是/usr/src/rootfs/lib

  如果是的话,我的怎么到这一步就卡住了

  VFS: Mounted root (yaffs filesystem).

  Freeing init memory: 132K

  /linuxrc: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

  Kernel panic - not syncing: Attempted to kill init!

  请楼主给解释一下,如果可以,能把你创建的文件系统的目录,就是/usr/src/rootfs这个文件夹打包发给我看看吗?不胜感激啊!!596468834@qq.com

回复 1# yongma62

  感谢分享!

请教楼主:我按资料说的方法制作文件系统,结果在运行后出现如下错误:

  Failed to execute /linuxrc.Attempting defaults...

  Kernel panic - not syncing: No init found.Try passing init= option to kernel.

  是怎么回事呢?帮忙解决下。。非常感谢。

楼主,你好。为什么你用ARM-LINUX-3.3.2动态编译BUSYBOX1.1.3,那为什么要把/3.4.1/arm-linux/lib拷到/filesystem_install/lib下呢。而不拷/3.3.2/arm-linux/lib的库呢?

适合飞凌的所有的开发板不?

  我OK6410的说

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

我没有钱啊,怎么办 郁闷了……………………………………

先攒钱,,,,



  

  看看,,学些

挺他妈垃圾一个人,搞个文件系统还要钱,你他妈也就是这个水平了。

非常感谢。。。。。。。。。。。。。。。。。。。。。

回复 12# yongma62

  rc.S文件的作用是什么?

学习学习,谢谢分享!

看不太懂啊,这样重新制作busybox后就可以ping域名了吗?

没钱了,呜呜。。。。。



  

  呜呜,没钱真可怜

  楼主可以免费发放不,邮箱526216967@qq.com,跪求

看看自己有多多多多多多多多多多多多多多少钱

为了大家以后方便下载,特意改成免费,祝大家赶快学习好嵌入式系统

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

430

主题

436

帖子

0

粉丝