+ -
当前位置:首页 → 问答吧 → 编译运行64位的龙芯2F出现unable to determine your tty name错误

编译运行64位的龙芯2F出现unable to determine your tty name错误

时间:2008-07-15

来源:互联网

我现在在梦珑2F下编译64位系统,遇到了困难,想请教一下:

系统是在至强CPU的Debian下按照http://zdbr.net.cn/download/Loongson64-1.1.htm,采取交叉编译方式进行编译的CLFS,利用直接编译的2.6.24内核说unvalid file format。利用梦珑自带的2.6.18内核,启动init: entering runlevel:3后就直接到了(none) login:,没有其余输出信息,但输入root登录后,显示 unable to determine your tty name,接着退到登录状态,估计系统根本就没正常启动,那些rc等文件没正常执行。在/etc/rc.d/init.d/rc添加打印语句也没任何显示,不清楚系统现在应该执行什么,哪里的错误。在启动参数中添加init=/bin/sh,则黑屏,看不到任何信息。难道是/bin/sh就无法运行?梦珑2F自带的64位内核,和这个不兼容?

作者: HuiCai   发布时间: 2008-07-15

引用:
作者: HuiCai
我现在在梦珑2F下编译64位系统,遇到了困难,想请教一下:

系统是在至强CPU的Debian下按照http://zdbr.net.cn/download/Loongson64-1.1.htm,采取交叉编译方式进行编译的CLFS,利用直接编译的2.6.24内核说unvalid file format。利用梦珑自带的2.6.18内核,启动init: entering runlevel:3后就直接到了(none) login:,没有其余输出信息,但输入root登录后,显示 unable to determine your tty name,接着退到登录状态,估计系统根本就没正常启动,那些rc等文件没正常执行。在/etc/rc.d/init.d/rc添加打印语句也没任何显示,不清楚系统现在应该执行什么,哪里的错误。在启动参数中添加init=/bin/sh,则黑屏,看不到任何信息。难道是/bin/sh就无法运行?梦珑2F自带的64位内核,和这个不兼容?
初步估计是Glibc的问题。64位系统很可能存在lib目录路径的问题:请检查你的glibc安装在了什么路径,配置是否正确。

作者: 地球发动机   发布时间: 2008-07-16

引用:
采取交叉编译方式进行编译的CLFS,利用直接编译的2.6.24内核说unvalid file format。利用梦珑自带的2.6.18内核,启动init: entering runlevel:3后就直接到了(none) login:,没有其余输出信息,但输入root登录后,显示 unable to determine your tty name,接着退到登录状态,
lz 使用 梦珑自带的linux-kernel + CLFS的rootfs 可以看到文本登录界面。
这个说明,CLFS的rootfs基本正常,至少init、glibc、agetty已正常工作。

引用:
估计系统根本就没正常启动,那些rc等文件没正常执行。在/etc/rc.d/init.d/rc添加打印语句也没任何显示,
这个有必要检查一下,/etc/inittab及相关配置文件,要一个字符一个字符的检查,如果是敲错了,没什么可说的。

引用:
在启动参数中添加init=/bin/sh,则黑屏,看不到任何信息。难道是/bin/sh就无法运行?梦珑2F自带的64位内核,和这个不兼容?
这个有可能是bash没有编译成功,检查bash编译过程,必要时重编译。

另,lz 可这样做,用梦珑自带系统启动,chroot到CLFS的rootfs,如成功bash完好。

PS:看过lz签名资料,只想说两句,简历要短些、再短些才是简历,什么都精通=什么都不精通。

作者: 聚焦深空   发布时间: 2008-07-17

多谢,我重新检查一下看看。

将bash替换为一个明显不能执行的文件,则报那些rc无法执行
不过在梦珑的系统启动后chroot的光标在闪,但没任何字符输出,也不接受任何输入。
在梦珑自带的32位系统64位内核下,能否chroot到64位内核和64位系统?

inittab当时为复制过去的为,也没看出问题:
代码:
# Begin /etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/init.d/rc sysinit
l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
su:S016:once:/sbin/sulogin
1:2345:respawn:/sbin/agetty tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
3:2345:respawn:/sbin/agetty tty3 9600
4:2345:respawn:/sbin/agetty tty4 9600
5:2345:respawn:/sbin/agetty tty5 9600
6:2345:respawn:/sbin/agetty tty6 9600
# End /etc/inittab
多谢提醒简历,头一次写简历,见笑了。好像也没写多少东西,我写的都是熟悉,不敢写精通。我继续简化。

作者: HuiCai   发布时间: 2008-07-17

看来,lz 有必要检查bash的相关依赖安装情况,好在glibc完好,只需检查ncuses、readline。

至于32bit到64bit系统chroot,你需要setarch帮忙,下面是一个例子:
x86_64硬件环境,linux-kernel 64bit (已打开32bit支持)+ rootfs 32bit 软件环境,有另一64bit rootfs /rootfs-x86_64,chroot需要的命令是 linux64 chroot /rootfs-x86_64 (linux64是指向setarch的链接,mips环境具体需要的命令请man setarch)

作者: 聚焦深空   发布时间: 2008-07-17

多谢!
直接在32位龙芯系统上运行setarch不成:
代码:
bin@RAYS-b0f748fa# setarch mips64 ./bash
setarch: ./bash: No such file or directory
下午单独编译ncuses、readline、bash不成,又重新包括工具链等重新编译了一边,问题还是老样子。

我担心针对2F有什么补丁需要打才成,但没找到相关资料。

作者: HuiCai   发布时间: 2008-07-17

setarch+chroot 应用下面的命令才对,man chroot,单独用setarch基本无意义,除非是静态链接的。
setarch mips64 chroot /your_64bit_rootfs

至于内核,你可以这样试试,这样应能正常启动系统,如果能启动,可以重新配置编译合适的内核。
make mrproper &&
cp arch/mips/configs/fulong_defconfig .config &&
make ARCH=mips CROSS_COMPILE=${CROSS_TARGET}- oldconfig &&
make ARCH=mips CROSS_COMPILE=${CROSS_TARGET}- &&
make ARCH=mips CROSS_COMPILE=${CROSS_TARGET}- INSTALL_MOD_PATH=${TARGET_DIR} modules_install &&
cp vmlinux.32 ${TARGET_DIR}/boot/loongson-vmlinux-64-2.6.24.2 &&
cp System.map ${TARGET_DIR}/boot/loongson-System.map-64-2.6.24.2

至于补丁,youbest文章中应该给全的,希望你没有跳过什么。

作者: 聚焦深空   发布时间: 2008-07-17

多谢!
当时测试过setarch mips64 chroot /your_64bit_rootfs,一样的现象。
youbest的文章,我没跳过,并且修正了一些疏漏。大部分代码都是直接复制运行的,而且已经编译过2次,但出错的现象完全一样,应该不会同样的错误出两次。

至于
代码:
cp vmlinux.32 ${TARGET_DIR}/boot/loongson-vmlinux-64-2.6.24.2 &&
cp System.map ${TARGET_DIR}/boot/loongson-System.map-64-2.6.24.2
等,利用这个内核根本起不来,出现invalid file format Configuration failed.
http://www.lemote.com/bbs/viewthread...extra=page%3D1
现在我都搞不清楚到底只有2.6.18支持2F,还是2.6.25.9也支持了。
编译过程中使用的是2.6.24的内核头文件,希望不是这个造成的。

我担心youbest是针对龙芯2E的,在2F上需要做些修正(附件,几处笔误,还有部分软件版本有变化,diff可看出修改的),正在联系龙芯那边,看看是否对需要打特殊补丁。

现在先尝试不像以前是在至强的系统上,而是直接在2F福珑上直接交叉编译成64位系统,看看可有什么变换。
上传的附件
Loongson64-1.1.htm.gz (15.3 KB, 1 次查看)

作者: HuiCai   发布时间: 2008-07-18

一个简单的选择,下载能正常运行的内核2.6.18源码,华镭,debian系,下载后可以看看其针对2F的补丁,如简单,可考虑直接修补你的新版内核,不行就使用其源码。

2F如果不向下兼容2E,龙芯就太失败了,不可原谅的失败。

交叉编译的话,宿主只要满足基本要求,使用一样的步骤,不管是什么平台架构,什么操作系统,结果只与使用的源码和补丁有关。
2F上再交叉编译一遍,没意义的。

作者: 聚焦深空   发布时间: 2008-07-18

多谢,终于搞定了,打了这个patch就成了
http://cross-lfs.org/view/svn/mips64...stem/bash.html

作者: HuiCai   发布时间: 2008-07-18