LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1192|回复: 9

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

[复制链接]
发表于 2008-7-14 22:30:02 | 显示全部楼层 |阅读模式
我现在在梦珑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位内核,和这个不兼容?
发表于 2008-7-15 21:04:41 | 显示全部楼层
Post by HuiCai;1874589
我现在在梦珑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-7-17 08:58:34 | 显示全部楼层
采取交叉编译方式进行编译的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-7-17 09:33:23 | 显示全部楼层
多谢,我重新检查一下看看。

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

inittab当时为复制过去的为,也没看出问题:
  1. # Begin /etc/inittab
  2. id:3:initdefault:
  3. si::sysinit:/etc/rc.d/init.d/rc sysinit
  4. l0:0:wait:/etc/rc.d/init.d/rc 0
  5. l1:S1:wait:/etc/rc.d/init.d/rc 1
  6. l2:2:wait:/etc/rc.d/init.d/rc 2
  7. l3:3:wait:/etc/rc.d/init.d/rc 3
  8. l4:4:wait:/etc/rc.d/init.d/rc 4
  9. l5:5:wait:/etc/rc.d/init.d/rc 5
  10. l6:6:wait:/etc/rc.d/init.d/rc 6
  11. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
  12. su:S016:once:/sbin/sulogin
  13. 1:2345:respawn:/sbin/agetty tty1 9600
  14. 2:2345:respawn:/sbin/agetty tty2 9600
  15. 3:2345:respawn:/sbin/agetty tty3 9600
  16. 4:2345:respawn:/sbin/agetty tty4 9600
  17. 5:2345:respawn:/sbin/agetty tty5 9600
  18. 6:2345:respawn:/sbin/agetty tty6 9600
  19. # End /etc/inittab
复制代码

多谢提醒简历,头一次写简历,见笑了。好像也没写多少东西,我写的都是熟悉,不敢写精通。我继续简化。
回复 支持 反对

使用道具 举报

发表于 2008-7-17 12:13:18 | 显示全部楼层
看来,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-7-17 19:00:23 | 显示全部楼层
多谢!
直接在32位龙芯系统上运行setarch不成:
  1. bin@RAYS-b0f748fa# setarch mips64 ./bash
  2. setarch: ./bash: No such file or directory
复制代码
下午单独编译ncuses、readline、bash不成,又重新包括工具链等重新编译了一边,问题还是老样子。

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

使用道具 举报

发表于 2008-7-17 19:45:01 | 显示全部楼层
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}- [color="Red"]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-7-17 22:15:50 | 显示全部楼层
多谢!
当时测试过setarch mips64 chroot /your_64bit_rootfs,一样的现象。
youbest的文章,我没跳过,并且修正了一些疏漏。大部分代码都是直接复制运行的,而且已经编译过2次,但出错的现象完全一样,应该不会同样的错误出两次。

至于
  1. cp vmlinux.32 ${TARGET_DIR}/boot/loongson-vmlinux-64-2.6.24.2 &&
  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/viewth ... &extra=page%3D1
现在我都搞不清楚到底只有2.6.18支持2F,还是2.6.25.9也支持了。
编译过程中使用的是2.6.24的内核头文件,希望不是这个造成的。

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

现在先尝试不像以前是在至强的系统上,而是直接在2F福珑上直接交叉编译成64位系统,看看可有什么变换。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2008-7-17 22:48:10 | 显示全部楼层
一个简单的选择,下载能正常运行的内核2.6.18源码,华镭,debian系,下载后可以看看其针对2F的补丁,如简单,可考虑直接修补你的新版内核,不行就使用其源码。

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

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

使用道具 举报

 楼主| 发表于 2008-7-18 12:19:17 | 显示全部楼层
多谢,终于搞定了,打了这个patch就成了
http://cross-lfs.org/view/svn/mips64-64/temp-system/bash.html
回复 支持 反对

使用道具 举报

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

本版积分规则

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