首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

关于嵌入式Linux启动过程的有关问题

2013-04-26 
关于嵌入式Linux启动过程的问题各位大虾,请教一个linux启动过程的问题本人用的dm365,移植文件系统后,添加

关于嵌入式Linux启动过程的问题
各位大虾,请教一个linux启动过程的问题
本人用的dm365,移植文件系统后,添加自启动语句,平时跑的好好的,有时会突然启动到一半就停住不动了,且一旦出现上述情况,以后每次启动都这样,系统没有死,在串口敲回车还有反应,一下是正常启动和非正常启动的部分打印
正常
IP-Config: Unable to set interface netmask (-22).
UBIFS: recovery needed
UBIFS: recovery completed
UBIFS: mounted UBI device 0, volume 0, name "rootfs"
UBIFS: file system size:   114405376 bytes (111724 KiB, 109 MiB, 901 LEBs)
UBIFS: journal size:       5713920 bytes (5580 KiB, 5 MiB, 45 LEBs)
UBIFS: media format:       w4/r0 (latest is w4/r0)
UBIFS: default compressor: lzo
UBIFS: reserved for root:  4952683 bytes (4836 KiB)
VFS: Mounted root (ubifs filesystem) on device 0:14.
Freeing init memory: 148K
INIT: version 2.86 booting
@@@@@@@@@@@@@@@FILESYSTEM VERSION:V1.0.0@@@@@@@@@@@@@@@
0000000
11111111
@@@@@@@@
22222222
enterOfrc
rc11111111
rc222222
rc333333
rc4444444
rc5555555
rc666666
rc777777
rc8888888
rc999999999
PHY: 1:01 - Link is Up - 100/Full
Please wait: booting...
Starting udev
Root filesystem already rw, not remounting
Caching udev devnodes
Populating dev cachemv: cannot rename '/tmp/devices': No such file or directory
NET: Registered protocol family 10
ALSA: Restoring mixer settings...
Configuring network interfaces... No state is present for card EVM
/usr/sbin/alsactl: parse:1655: Unable to open file '/usr/share/alsa/init/00main': No such file or directory
No state is present for card EVM
done.
Setting up IP spoofing protection: rp_filter.
hwclock: can't open '/dev/misc/rtc': No such file or directory
Thu Mar 24 19:02:00 UTC 2011
hwclock: can't open '/dev/misc/rtc': No such file or directory
rc000000000000
INIT: Entering runlevel: 5
enterOfrc
rc11111111
rc222222
rc333333
rc4444444
rc5555555
rc666666
rc777777
rc8888888
rc999999999
Starting system message bus: dbus.
Starting telnet daemon.
Starting syslogd/klogd: done
Starting thttpdchdir: No such file or directory
.
enter runlevel 5.
#################START LOAD MODULES#################
mount: special device /dev/sda1 does not exist
CMEMK module: built on Mar 24 2011 at 16:58:03
  Reference Linux version 2.6.32
  File /sdk/build/DVSDK_4_02/4_02_00_06/arago-install/arago-tmp/work/dm368-evm-none-linux-gnueabi/ti-linuxutils-1_2_26_01_02-r52d/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
allocated heap buffer 0xc8000000 of size 0x4400000
heap fallback enabled - will try heap if pool buffer is not available
CMEM Range Overlaps Kernel Physical - allowing overlap
CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x83c00000)


cmemk initialized
IRQK module: built on Mar 24 2011 at 16:58:17
  Reference Linux version 2.6.32
  File /sdk/build/DVSDK_4_02/4_02_00_06/arago-install/arago-tmp/work/dm368-evm-none-linux-gnueabi/ti-linuxutils-1_2_26_01_02-r52d/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/irq/src/module/irqk.c
irqk initialized
EDMAK module: built on Mar 24 2011 at 16:58:11
  Reference Linux version 2.6.32
  File /sdk/build/DVSDK_4_02/4_02_00_06/arago-install/arago-tmp/work/dm368-evm-none-linux-gnueabi/ti-linuxutils-1_2_26_01_02-r52d/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/edma/src/module/edmak.c
load gpio
start init gpio driver.
pinmux4 is 0x5151c415
pinmux3 is 0x615affff
Virtual addr base = 0xfec67000
#################START VEDIO RECORD(PAL)#################
rc000000000000
Encode demo started.
非正常启动如下
IP-Config: Unable to set interface netmask (-22).
UBIFS: recovery needed
UBIFS: recovery completed
UBIFS: mounted UBI device 0, volume 0, name "rootfs"
UBIFS: file system size:   114405376 bytes (111724 KiB, 109 MiB, 901 LEBs)
UBIFS: journal size:       5713920 bytes (5580 KiB, 5 MiB, 45 LEBs)
UBIFS: media format:       w4/r0 (latest is w4/r0)
UBIFS: default compressor: lzo
UBIFS: reserved for root:  4952683 bytes (4836 KiB)
VFS: Mounted root (ubifs filesystem) on device 0:14.
Freeing init memory: 148K
INIT: version 2.86 booting
@@@@@@@@@@@@@@@FILESYSTEM VERSION:V1.0.0@@@@@@@@@@@@@@@
0000000
11111111
@@@@@@@@
22222222
enterOfrc
rc11111111
rc222222
rc333333
rc4444444
rc5555555
rc666666
rc777777
rc8888888
rc999999999
PHY: 1:01 - Link is Up - 100/Full
Please wait: booting...
Starting udev
scsi 0:0:0:0: Direct-Access     RunCore    SSD            0009 PQ: 0 ANSI: 0
sd 0:0:0:0: [sda] 15621980 512-byte logical blocks: (7.99 GB/7.44 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI disk
Root filesystem already rw, not remounting
Caching udev devnodes
Populating dev cachemv: cannot rename '/tmp/devices': No such file or directory
FAT: invalid media value (0xb9)
VFS: Can't find a valid FAT filesystem on dev sda.
NET: Registered protocol family 10
ALSA: Restoring mixer settings...
Configuring network interfaces... No state is present for card EVM
/usr/sbin/alsactl: parse:1655: Unable to open file '/usr/share/alsa/init/00main': No such file or directory


No state is present for card EVM
done.
Setting up IP spoofing protection: rp_filter.
hwclock: can't open '/dev/misc/rtc': No such file or directory
Thu Mar 24 19:02:00 UTC 2011
hwclock: can't open '/dev/misc/rtc': No such file or directory
rc000000000000
CMEMK module: built on Mar 24 2011 at 16:58:03
  Reference Linux version 2.6.32
  File /sdk/build/DVSDK_4_02/4_02_00_06/arago-install/arago-tmp/work/dm368-evm-none-linux-gnueabi/ti-linuxutils-1_2_26_01_02-r52d/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
allocated heap buffer 0xc8000000 of size 0x4400000
heap fallback enabled - will try heap if pool buffer is not available
CMEM Range Overlaps Kernel Physical - allowing overlap
CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x83c00000)
cmemk initialized
IRQK module: built on Mar 24 2011 at 16:58:17
  Reference Linux version 2.6.32
  File /sdk/build/DVSDK_4_02/4_02_00_06/arago-install/arago-tmp/work/dm368-evm-none-linux-gnueabi/ti-linuxutils-1_2_26_01_02-r52d/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/irq/src/module/irqk.c
irqk initialized
EDMAK module: built on Mar 24 2011 at 16:58:11
  Reference Linux version 2.6.32
  File /sdk/build/DVSDK_4_02/4_02_00_06/arago-install/arago-tmp/work/dm368-evm-none-linux-gnueabi/ti-linuxutils-1_2_26_01_02-r52d/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/edma/src/module/edmak.c
start init gpio driver.
pinmux4 is 0x5151c415
pinmux3 is 0x615affff
Virtual addr base = 0xfec67000
其中打印上出的111、2222、@@@、####等是我在一些配置文件中加的打印,“CMEM....”是我应用程序启动前加载的部分驱动
我看了下两个启动过程,若是能打印“INIT: Entering runlevel: 5”(系统默认登陆级别是5)则能正常启动,但是若换成登陆级别6的话,非正常启动的板子会重启,说明,它是进入了该级别运行了。搞了好些天没整理出头绪来,希望各位大虾指导下感激不尽,刚申请的号,没多少分,见谅。
若需要其他信息,请留言,我会贴下,谢谢各位!!! Linux 启动过程 嵌入式 启动级别
[解决办法]
没细看你的log。你为啥要改init 6。 init 6就是相当重启。
[解决办法]
有几处No such file or directory,是不是文件系统挂载有问题
[解决办法]
应该是文件系统挂载有问题文件系统挂载有问题
[解决办法]

引用:
我用的是ubi文件系统,在启动参数里加上了noinitrd参数就不出问题了,不知道什么原因,哪位大侠能详细讲下这个noinitrd参数具体干什么用的


initrd(PC上使用很普遍):
Linux初始 RAM磁盘(initrd)是在系统引导过程中挂载的一个临时根文件系统,用来支持两阶段的引导过程。initrd文件中包含了各种可执行程序和驱动程序,它们可以用来挂载实际的根文件系统,然后再将这个 initrd RAM 磁盘卸载,并释放内存。在很多嵌入式Linux 系统中,initrd 就是最终的根文件系统。


没有使用initrd的话还是把noinitrd这个参数传给内核吧,好让内核做出正确的处理!

热点排行