板子TQ2440
u-boot:1.1.6
内核:2.6.22.6
文件系统:yaffs2
现在系统跑到这里了。
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.3, "mtdblock3"
yaffs: auto selecting yaffs2
block 1011 is bad
VFS: Mounted root (yaffs filesystem).
Freeing init memory: 136K
Failed to execute /linuxrc. Attempting defaults...
Kernel panic - not syncing: No init found. Try passing init= option to kernel.
Freeing init memory: 136K ----》这个应该说明我的内核起来了
Failed to execute /linuxrc. Attempting defaults...
Kernel panic - not syncing: No init found. Try passing init= option to kernel. 这里我不知道为什么不行,
我的bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0
也是指向了busybox的
大神们能指导下么,快不行了:)
最近编辑记录 伍零壹 (2020-09-06 01:23:39)
离线
离线
在 ubuntu@x86 用 chroot 到 ARM 平台的 rootfs
http://whycan.cn/t_3251.html#p27976
(出处:哇酷开发者社区【VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT】)试一试这个方法测试一下?
我是个新手 上面的步骤我试了下 电脑死机了,不知道什么原因。
现在我怀疑的几个地方:
1.我编译busybox的时候用的工具链是arm-linux-gcc-4.3.2,制作文件系统的时候里面的glibc库是arm-linux-gcc-3.4.5 不知道是不是这个原因(后来用3.4.5和4.3.2的lib库试过 都不行)
2.我把工具链设置为4.3.2,然后编译busybox和文件系统 重新烧录能到如下,串口也能正常接收,但是不能响应命令 比如我输入ls,终端显示ls这条命令 但是没有任何其他信息出来。
NET: Registered protocol family 1
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
UDF-fs: No VRS found
yaffs: dev is 32505859 name is "mtdblock3"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.3, "mtdblock3"
yaffs: auto selecting yaffs2
block 1011 is bad
VFS: Mounted root (yaffs filesystem).
Freeing init memory: 136K
ls
ee
sss
sss
fsdfsdvdfgb
xbgfnbfgj
但是我自己编译的内核或者烧录韦东山的内核都能正常启动韦东山的yaffs2文件系统,我的内核或者韦东山的内核都不能正常启动我的yaffs2文件系统。
最近编辑记录 伍零壹 (2020-09-06 19:32:13)
离线
1.我编译busybox的时候用的工具链是arm-linux-gcc-4.3.2,制作文件系统的时候里面的glibc库是arm-linux-gcc-3.4.5
用 arm-linux-gcc-3.4.5 去构建 busybox
晕哥 我刚才用3.4.5重新构建了busybox了。现在文件系统能正常启动了。是不是编译busybox和文件系统的时候 必须使用同一版本的工具链,那为什么我用4.3.2编译了busybox然后用再用4.3.2编译文件系统 他就起不来了?
离线
哇酷小二 说:用 arm-linux-gcc-3.4.5 去构建 busybox
晕哥 我刚才用3.4.5重新构建了busybox了。现在文件系统能正常启动了。是不是编译busybox和文件系统的时候 必须使用同一版本的工具链,那为什么我用4.3.2编译了busybox然后用再用4.3.2编译文件系统 他就起不来了?
这是因为你的 busybox 使用了默认的动态链接, 而你又没有拷贝对应的 libc 文件导致可执行程序不能运行.
有三个操作, 你随便选一个都可以:
① make menuconfig 配置 busybox静态链接
② 还是按 4.3.2编译动态链接的busybox,把对应的libc也复制到文件系统
③ 用 arm-linux-gcc-3.4.5 去构建 busybox, 因为你的文件系统已经携带了这个工具栏的 libc
离线
伍零壹 说:晕哥 我刚才用3.4.5重新构建了busybox了。现在文件系统能正常启动了。是不是编译busybox和文件系统的时候 必须使用同一版本的工具链,那为什么我用4.3.2编译了busybox然后用再用4.3.2编译文件系统 他就起不来了?
这是因为你的 busybox 使用了默认的动态链接, 而你又没有拷贝对应的 libc 文件导致可执行程序不能运行.
有三个操作, 你随便选一个都可以:
① make menuconfig 配置 busybox静态链接
② 还是按 4.3.2编译动态链接的busybox,把对应的libc也复制到文件系统
③ 用 arm-linux-gcc-3.4.5 去构建 busybox, 因为你的文件系统已经携带了这个工具栏的 libc
好的 感谢晕哥!
离线
离线