OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5739|回复: 4

arm架构 linux启动出现Bad inittab entry at line 5错误,系统不能启动

[复制链接]

1

主题

5

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-12-24
在线时间
3 小时
发表于 2020-3-17 17:39:43 | 显示全部楼层 |阅读模式
1金钱
Linux启动的时候出现下面错误:

[    2.158203] VFS: Mounted root (ubifs filesystem) on device 0:10.
[    2.164337] Freeing init memory: 148K
[    2.167785] Write protecting the kernel text section c0008000 - c05ff000
[    2.242767] mmc0: host doesn't support card's voltages
[    2.246429] mmc0: error -22 whilst initialising SDIO card
Bad inittab entry at line 5
can't open /dev/si: No such file or directory
can't open /dev/~~: No such file or directory
can't open /dev/l0: No such file or directory
can't open /dev/l1: No such file or directory
can't open /dev/l2: No such file or directory
can't open /dev/l3: No such file or directory
can't open /dev/l4: No such file or directory
can't open /dev/l5: No such file or directory
can't open /dev/l6: No such file or directory
can't open /dev/m1: No such file or directory


经过查询资料发现,Bad inittab entry at line 的打印信息出现在busybox源码 busybox/init/init.c的文件中的static void parse_inittab(void)里面,源码如下:
  1. static void parse_inittab(void)
  2. {
  3. #if ENABLE_FEATURE_USE_INITTAB
  4.         char *token[4];
  5.         parser_t *parser = config_open2("/etc/inittab", fopen_for_read);

  6.         if (parser == NULL)
  7. #endif
  8.         {
  9.                 /* No inittab file - set up some default behavior */
  10.                 /* Reboot on Ctrl-Alt-Del */
  11.                 new_init_action(CTRLALTDEL, "reboot", "");
  12.                 /* Umount all filesystems on halt/reboot */
  13.                 new_init_action(SHUTDOWN, "umount -a -r", "");
  14.                 /* Swapoff on halt/reboot */
  15.                 if (ENABLE_SWAPONOFF)
  16.                         new_init_action(SHUTDOWN, "swapoff -a", "");
  17.                 /* Prepare to restart init when a QUIT is received */
  18.                 new_init_action(RESTART, "init", "");
  19.                 /* Askfirst shell on tty1-4 */
  20.                 new_init_action(ASKFIRST, bb_default_login_shell, "");
  21. //TODO: VC_1 instead of ""? "" is console -> ctty problems -> angry users
  22.                 new_init_action(ASKFIRST, bb_default_login_shell, VC_2);
  23.                 new_init_action(ASKFIRST, bb_default_login_shell, VC_3);
  24.                 new_init_action(ASKFIRST, bb_default_login_shell, VC_4);
  25.                 /* sysinit */
  26.                 new_init_action(SYSINIT, INIT_SCRIPT, "");
  27.                 return;
  28.         }

  29. #if ENABLE_FEATURE_USE_INITTAB
  30.         /* optional_tty:ignored_runlevel:action:command
  31.          * Delims are not to be collapsed and need exactly 4 tokens
  32.          */
  33.         while (config_read(parser, token, 4, 0, "#:",
  34.                                 PARSE_NORMAL & ~(PARSE_TRIM | PARSE_COLLAPSE))) {
  35.                 /* order must correspond to SYSINIT..RESTART constants */
  36.                 static const char actions[] ALIGN1 =
  37.                         "sysinit\0""wait\0""once\0""respawn\0""askfirst\0"
  38.                         "ctrlaltdel\0""shutdown\0""restart\0";
  39.                 int action;
  40.                 char *tty = token[0];

  41.                 if (!token[3]) /* less than 4 tokens */
  42.                         goto bad_entry;
  43.                 action = index_in_strings(actions, token[2]);
  44.                 if (action < 0 || !token[3][0]) /* token[3]: command */
  45.                         goto bad_entry;
  46.                 /* turn .*TTY -> /dev/TTY */
  47.                 if (tty[0]) {
  48.                         tty = concat_path_file("/dev/", skip_dev_pfx(tty));
  49.                 }
  50.                 new_init_action(1 << action, token[3], tty);
  51.                 if (tty[0])
  52.                         free(tty);
  53.                 continue;
  54. bad_entry:
  55.                 message(L_LOG | L_CONSOLE, "Bad inittab entry at line %d",
  56.                                 parser->lineno);
  57.         }
  58.         config_close(parser);
  59. #endif
  60. }
复制代码


该函数实现对/etc/inittab 的解析,我的inittab文件如下:
  1. ::sysinit:/etc/rc
  2. ::respawn:-/bin/sh
  3. slog:unknown:/sbin/syslogd -n
复制代码
inittab只有3行,但是报错是在第5行。请问哪位大佬遇到过这样的问题,麻烦指导一下。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

890

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2390
金钱
2390
注册时间
2019-9-25
在线时间
397 小时
发表于 2020-3-17 20:20:35 | 显示全部楼层
编译好文件系统以后,这个文件系统是压缩成一个压缩包了拷贝出来的还是没有压缩文件系统,直接以文件夹的形式拷贝的?
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-12-24
在线时间
3 小时
 楼主| 发表于 2020-3-17 22:38:42 | 显示全部楼层
仰望星空之云 发表于 2020-3-17 20:20
编译好文件系统以后,这个文件系统是压缩成一个压缩包了拷贝出来的还是没有压缩文件系统,直接以文件夹的形 ...

仰望星空之云,感谢回复。

文件系统编译好后,制作生成的rootfs.bin文件
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-12-24
在线时间
3 小时
 楼主| 发表于 2020-3-17 22:45:28 | 显示全部楼层
仰望星空之云 发表于 2020-3-17 20:20
编译好文件系统以后,这个文件系统是压缩成一个压缩包了拷贝出来的还是没有压缩文件系统,直接以文件夹的形 ...

仰望星空之云,感谢!

编译好文件系统后,文件系统是制作微rootfs.bin文件的。
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2020-3-18 09:24:28 | 显示全部楼层
什么板子?内核版本,交叉编译器版本啥的都是多少
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 07:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表