请教下,我自己做了一个根文件系统,下载到板子上后,显示内核加载成功了,在终端也可以进到各个系统文件对各个文件进行操作,但是如果我把自己写的程序放在系统的话,执行的时候会提示错误 “-/bin/sh:XXX:not found”(XX是程序的名称)。请问这是怎么回事。

我用的是2.6.29的内核,内核是让照文档上的方法做的,根文件是让照网上的一个方法做的,大家看看是不做根文件的时候有问题,或者是还需要添加什么吗?谢谢了!

另外我还想请教的一个问题是,以前还是2.6.13内核的时候,光盘里有一个缺省的root_default.tgz的根文件系统的,现在的2.6.29没有这个文件了吗?我觉得使用缺省的很方便自己移植QT4。

1.  创建必须的文件夹及设备文件

# mkdir rootfs

# cd rootfs

# mkdir bin dev etc lib mnt proc sbin sys root

# mkdir  /etc/var

# mkdir  /etc/tmp

# ln  -s /etc/var /var

# ln  -s /etc/tmp /tmp

2. 创建设备文件系统

从 Linux-2.6.18开始,负责旧版本的设备管理系统devfs已被废除,但新

版本的udev是一个基于用户空间的设备管理系统。在内核启动时并不能

自动创建设备节点,固需手动创建console和null两个启动过程必须的设

备节点。我们将采用busybox中内置的mdev,一个简化的udev版本.

# mknod -m 660 dev/console c 5 1

# mknod -m 660 dev/null        c 1 3

3. 建立动态运行库

由于linux只安装上了arm-linux-gcc 4.3.2没有glibc的库文件,只好把友善之臂提供的

yaffs2文件系统下的lib文件拷贝过来。

# cp -rfd /2440/root_qtopia/lib/*  /2440/rootfs/lib/

拷贝经过交叉编译的库文件,参数-d,保持库文件的链接关系。

4. 交叉编译busybox

解压缩tar -zxf busybox1.13.3.tar

解压后修改Makefile,指明交叉编译器:

ARCH             ?= arm

CROSS_COMPILE    ?= arm-linux-

5.执行make CONFIG_PREFIX=/2440/rootfs install

在/2440/rootfs目录下生成sbin,usr目录和linuxrc文件

6.创建etc目录下文件

在rootfs/etc目录下创建一个inittab文件

内容如下:

# /etc/inittab

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

s3c2410_serial0::askfirst:-/bin/sh

::ctrlaltdel:/sbin/reboot

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

创建etc/init.d/rcS文件

#!/bin/sh

ifconfig eth0 192.168.1.17

mount -a

mkdir /dev/pts

mount -t devpts devpts /dev/pts

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

mdev -s

最后还要改变它的属性使它能够执行。

chmod +x etc/init.d/rcS

创建etc/fstab文件

#device        mount-point        type        options        dump        fack 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

7.构建其他目录

mkdir proc mnt tmp sys root

8.使用mkyaffsimgae命令生成yaffs映像文件

mkyaffsimage rootfs rootfs.yaffs

linux运行bin not found,自己制作根文件后,程序-/bin/sh:XXX:not found错误相关推荐

  1. Linux系统rootfs切换到真正的根文件系统详细源码解析(附工作项目手动制作根文件实例)

    目录 一.简介 二.设计过程总结 2.1 busybox制作精简的文件系统并完成ramfs启动 2.2 通过精简的文件系统制作完整的文件系统并拷贝到硬盘 2.3 rootfs切换到真正的根文件配置 2 ...

  2. linux下编辑某个文件,linux下修改以某个字母开头的文件后戳

    1.怎么在linux下修改以某一字母开头的文件后戳 源文件内容[root@localhost test]# ls stu10.txt.php  stu3.txt.php  stu6.txt.php   ...

  3. arm linux not syncing,Kernel panic - not syncing: No init found(busybox制作根文件

    1. 在正确的位置烧写正确的文件系统映象: (a). 正确的位置 嵌入式开发中,常通过bootloader烧写文件系统映象,假设写在flash的地址A处. 内核启动时,显然要从地址A处读取文件系统,内 ...

  4. linux运行python脚本_将Python脚本文件包装成可执行文件

    将Python脚本文件包装成可执行文件,其目的有二: 一则: 不需要依赖Python编译器就可以运行软件 二则: 不想让自己的源码公布出去 常用的工具有: py2exe.cx_freeze等 [工具: ...

  5. Linux运行jar包报错:Error:Invalid or corrupt jarfile xxx.jar

    各种查找,没有对症的,最后仔细查看信息提示发现是自己大意造成的,原因是服务器空间不足导致保存传递过来的jar包不完整导致的 巨坑!怪自己不够仔细

  6. linux运行cobol语言,COBOL语言初级教程(2)--COBOL程序

    在COBOL-85标准前,COBOL程序要求全部使用大写.因此许多旧程序都是全部用大写字母编写的,但COBOL-85允许采用小写字母,因为利用大小写混合用提高程序的可读性. 1.COBOL程序的部(D ...

  7. linux下设定动态库路径的命令-error while loading shared libraries: xxx.so.x错误的原因和解决办法

    网站:http://blog.chinaunix.net/uid-26212859-id-3256667.html 一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: ...

  8. Linux笔记-scp或ftp或sftp传文件后最后修改时间

    这里先说下这几条命令: #scp scp 1.txt it1995@192.168.1.100:/home/it1995#ftp ftp it1995@192.168.1.100 cd /home/i ...

  9. busybox制作根文件系统

    一.分配空间 制作64M的镜像文件,命名为myrootfs.ext3 sudo dd if=/dev/zero of=myrootfs.ext3 bs=1M count=64 用ext3格式化上一步的 ...

最新文章

  1. Python3中的类和实例
  2. 配置网络(静态ip)
  3. oracle定时任务(dbms_job)
  4. IDEA——必备插件指南
  5. vim命令杂烩(复制粘贴、建文件、撤销等)
  6. webService简单入门实战(一)
  7. php软件开发--html进阶
  8. python制作会动的表情包_Python自动生成表情包,python在手,从此斗图无敌手
  9. 一行代码实现数组降维去重排序
  10. 从G1设计到堆空间调整
  11. ARM中R0-R15寄存器的作用
  12. 2021年度考核登记表
  13. 智伴机器人班尼怎么联网_智伴机器人官网
  14. 简单概括一下《金字塔原理》的主要内容?
  15. Fetcher failure for URL: ‘gitsm://github.com/Xilinx/qemu.git;protocol=https petalinux build 问题
  16. 17个你必须牢记的Win7快捷键
  17. 大数据高级开发工程师——Spark学习笔记(8)
  18. 如何选择分析场景?2种指标梳理方式
  19. 机器学习之密度聚类算法
  20. 实战SV验证学习(lab4)

热门文章

  1. 终于升级?89年的Linux内核C语言“跟上时代”转成现代C
  2. 24K 内存上诞生的操作系统,是如何改变计算机世界的?
  3. 小米回应造车传闻;饿了么就春节“套路”骑手活动致歉;Go 1.16 正式发布 | 极客头条...
  4. 25 人以下,免费!
  5. 算力至上?AI芯片大对决
  6. SpaceX 载人飞船首发成功!
  7. 达摩院再获自动驾驶权威测评第一,车辆可识别“厘米级”障碍物
  8. Milvus加入LF AI孵化,立志成为最流行的AI数据平台
  9. 看我发现了什么好东西? Java Optional,绝对值得一学 | 原力计划
  10. 利用 Python 制作酷炫的飞船大战!|原力计划