SEED-DIM3517实验三、四记录

进行实验三的时候发现用minicom进入启动界面后让他自己autoboot会报错

warning:unable to open an initial console kernel panic:No init
found.Try passing init=option to kernel.

当时没太注意,就决定先做实验四

实验四前面的步骤都一个不差
因为不了解交叉工具链还特意去查了一下

arm-none-linux-gnueabi-gcc (ARM architecture, no vendor, creates binaries that run on the Linux operating system, and uses the GNU EABI) 主要用于基于ARM架构的Linux系统,可用于编译 ARM 架构的 u-boot、Linux内核、linux应用等。arm-none-linux-gnueabi基于GCC,使用Glibc库,经过 Codesourcery 公司优化过推出的编译器。arm-none-linux-gnueabi-xxx交叉编译工具的浮点运算非常优秀。一般ARM9、ARM11、Cortex-A 内核,带有 Linux 操作系统的会用到。

这里写图片描述
这里写图片描述
在使用ubuntu17.10编译Linux-2.6.31内核时出现这样的错误
可以修改timeconst.pl的内容后正常编译。
以下是编译错误提示的内容:
Can’t use ‘defined(@array)’ (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
/opt/ARM/mini6410/linux/linux-2.6.38/kernel/Makefile:140: recipe for target ‘kernel/timeconst.h’ failed
make[1]: * [kernel/timeconst.h] Error 255
Makefile:916: recipe for target ‘kernel’ failed
make: * [kernel] Error 2
将kernel/timeconst.pl中第373行的defined()去掉只留下@val就可以了
这里写图片描述
这里写图片描述
但是最后一步!!
拷到U盘然后启动的时候报错!!
还是之前那个

warning:unable to open an initial console kernel panic:No init
found.Try passing init=option to kernel.

这里写图片描述
这里写图片描述
心痛到爆炸,一个下午还是这个鬼样子
明明小企鹅都出现了
这里写图片描述
百度上面有很多解决方法
大多数都是说是初始化console节点失败问题
这个主要是没有建立控制台,缺少 /dev/console 和 /dev/null
在建立他们之前UDEV就先使用到他们了。
解决方式:
在文件系统中的dev目录下建立如下设备文件:
sudo mknod console c 5 1
sudo mknod null c 1 3

可是我要怎么在系统还没有启动的时候修改呢
在一开始还没有autoboot的时候放弃自动引导然后手动启动吗???
还没有想好,先写到这吧

猜你喜欢

转载自blog.csdn.net/b__t__t/article/details/78639831