主题 : 为mini2440制作根文件系统,挂载失败,请高手帮忙分析,感激不尽!! 复制链接 | 浏览器收藏 | 打印
在各种放弃与追求中前进
级别: 新手上路
UID: 28745
精华: 0
发帖: 12
金钱: 60 两
威望: 12 点
综合积分: 24 分
注册时间: 2010-09-16
最后登录: 2012-11-16
楼主  发表于: 2010-10-09 15:24

 为mini2440制作根文件系统,挂载失败,请高手帮忙分析,感激不尽!!

bootloader用的自带的vivi:supervivi-128Mkernel是自己移植好的,可以挂载rootfs_qtopia_qt4.img我按照友善的移植指南做的rootfs.img,挂载失败,打印结果如下:eth0: dm9000e at c4872300,c4876304 IRQ 51 MAC: 08:90:90:90:90:90 (chip)
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
usbcore: registered new interface driver libusual
mice: PS/2 mouse device common for all mice
s3c2410 TouchScreen successfully loaded
input: s3c2410 TouchScreen as /devices/virtual/input/input0
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
s3c2410-rtc s3c2410-rtc: rtc disabled, re-enabling
s3c2410-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
i2c /dev entries driver
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
cpuidle: using governor ladder
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
usbcore: registered new interface driver hiddev
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.21.
No device for DAI UDA134X
No device for DAI s3c24xx-i2s
S3C24XX_UDA134X SoC Audio driver
UDA134X SoC Audio Codec
asoc: UDA134X <-> s3c24xx-i2s mapping ok
ALSA device list:
#0: S3C24XX_UDA134X (UDA134X)
TCP cubic registered
NET: Registered protocol family 17
s3c2410-rtc s3c2410-rtc: setting system clock to 2008-09-26 15:52:14 UTC (122244
4334)
yaffs: dev is 32505859 name is "mtdblock3" rw
yaffs: passed flags ""
VFS: Mounted root (yaffs filesystem) on device 31:3.
Freeing init memory: 132K
Warning: unable to open an initial console.
Failed to execute /linuxrc. Attempting defaults...
Kernel panic - not syncing: No init found. Try passing init= option to kernel.
[<c002fce8>] (unwind_backtrace+0x0/0xd8) from [<c02ef5b0>] (panic+0x40/0x118)
[<c02ef5b0>] (panic+0x40/0x118) from [<c00295bc>] (init_post+0xcc/0xf4)
[<c00295bc>] (init_post+0xcc/0xf4) from [<c0008438>] (kernel_init+0xdc/0x10c)
[<c0008438>] (kernel_init+0xdc/0x10c) from [<c002ae68>] (kernel_thread_exit+0x0/
0x8)


我是按照友善提供的移植指南做的,可能版本老了,有些步骤漏了,上次移植kernel就遇到不少问题,还好解决了,
下面是具体步骤,有什么错误请帮忙指正,做过的有什么经验也告诉我一下,谢了!


一、建立根文件系统目录
1.进入到/opt/studyarm 目录,新建建立根文件系统目录的脚本文件create_rootfs_bash
#!/bin/sh
echo "------Create rootfs directons start...--------"
mkdir rootfs
cd rootfs
echo "--------Create root,dev....----------"
mkdir root dev etc boot tmp var sys proc lib mnt home usr
mkdir etc/init.d etc/rc.d etc/sysconfig
mkdir usr/sbin usr/bin usr/lib usr/modules
echo "make node in dev/console dev/null"
mknod -m 600 dev/console c 5 1
mknod -m 600 dev/null c 1 3
mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp
mkdir var/lib var/lock var/run var/tmp
chmod 1777 tmp
chmod 1777 var/tmp
echo "-------make direction done---------"
指南上没有usr目录,我加上了
2.用命令chmod +x create_rootfs_bash 改变文件的可执行权限
3、create_rootfs_bash 运行脚本
二、建立动态链接库
先解压友善之臂的根文件包,拷贝 lib 的内容到新建的根文件目录lib 内
tar -zxvf rootfs_qtopia_qt4-20100816.tar.gz -C /opt/studyarm
cp -rfd /opt/studyarm/root_qtopia_qt4/lib/* /opt/studyarm/rootfs/lib/*
三、交叉编译Bosybox
1、解压busybox
tar -zxvf busybox-1.13.3.tar.tgz -C /opt/studyarm


2、进入源码,修改Makefile 文件:
cd /opt/studyarm/busybox-1.13.3
修改:
CROSS_COMPILE ?=arm-linux- //第164 行
ARCH ?=arm //第189 行


3、配置busybox
用busybox-1.13.3-mini2440.tgz,解压后里面包含了友善之臂提供的缺省配置文件:fa_config
输入命令“cp fa.config .config”


4、编译busybox
编译busybox 到指定目录:
cd /opt/studyarm/busybox-1.13.3
make CONFIG_PREFIX=/opt/studyarm/rootfs install


四、建立etc 目录下的配置文件
1、etc/mdev.conf 文件,内容为空。


2、拷贝主机etc 目录下的passwd、group、shadow 文件到rootfs/etc 目录下。


3、etc/sysconfig 目录下新建文件HOSTNAME,内容为”H3-Studio”。


4、etc/inittab 文件:
::sysinit:/etc/init.d/rcS
s3c2410_serial0::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a –r


5、etc/init.d/rcS 文件:
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
echo "----------munt all----------------"
mount -a
echo /sbin/mdev>/proc/sys/kernel/hotplug
mdev -s
echo "***********************************************"
echo "****************Studying ARM*********************"
echo "Kernel version:linux-2.6.29.1"
echo "Student:Huang huahai"
echo "Date:2009.10.1"
echo "***********************************************"
/bin/hostname -F /etc/sysconfig/HOSTNAME


使用以下命令改变 rcS 的执行权限:
Chmod +x rcS


6、etc/fstab 文件:
#device mount-point type option dump fsck order
proc /proc proc defaults 0 0none /tmp ramfs defaults 0 0
sysfs /sys sysfs defaults 0 0
mdev /dev ramfs defaults 0 0


7、 etc/profile 文件:
#Ash profile
#vim:syntax=sh
#No core file by defaults
#ulimit -S -c 0>/dev/null 2>&1
USER="id -un"
LOGNAME=$USER
PS1='[\u@\h=W]#'
PATH=$PATH
HOSTNAME='/bin/hostname'
export USER LOGNAME PS1 PATH


五、制作根文件系统映像文件
1、安装好 yaffs 文件系统制作工具:
tar -zxvf mkyaffs2image.tgz -C /
2、在/opt/studyarm 目录下,使用命令
mkyaffs2image rootfs rootfs.img
生成根文件系统映像文件。

[ 此帖被afan2009在2010-10-09 16:51重新编辑 ]
级别: 侠客
UID: 28121
精华: 0
发帖: 58
金钱: 290 两
威望: 58 点
综合积分: 116 分
注册时间: 2010-09-06
最后登录: 2017-09-13
1楼  发表于: 2010-10-11 00:26
你的nandflash是128M+就用mkyaffs2image-128M的制作,如果还不行就找下别的问题
在各种放弃与追求中前进
级别: 新手上路
UID: 28745
精华: 0
发帖: 12
金钱: 60 两
威望: 12 点
综合积分: 24 分
注册时间: 2010-09-16
最后登录: 2012-11-16
2楼  发表于: 2010-10-12 12:17

 回 1楼(376240497) 的帖子

楼上正解,拜服,多谢!!
级别: 新手上路
UID: 28852
精华: 0
发帖: 19
金钱: 95 两
威望: 19 点
综合积分: 38 分
注册时间: 2010-09-18
最后登录: 2012-03-02
3楼  发表于: 2010-12-20 22:46
安装手册移植串口打印如下信息是怎么回事啊?:can't open /dev/s3c2440_serial0:No such file or directory
级别: 新手上路
UID: 39134
精华: 0
发帖: 2
金钱: 10 两
威望: 2 点
综合积分: 4 分
注册时间: 2011-03-05
最后登录: 2011-03-09
4楼  发表于: 2011-03-05 21:55
我也是按照手册做的,出现了同样的问题,用的是mkyaffs2image-128M,还是出现同样的问题,是什么原因?