免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 12695 | 回复: 17
打印 上一主题 下一主题

[NetBSD] mini2440上运行netbsd 6 beta2 [复制链接]

论坛徽章:
0
跳转到指定楼层
[收藏(0)] [报告]
发表于 2012-07-16 11:17 |只看该作者 |正序浏览
本帖最后由 Prife 于 2012-07-16 11:36 编辑

host: ubuntu 12.04 32bit
netbsd版本: ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-6.0_BETA2/evbarm/
板子:mini2440

最近netbsd增加了对mini2440的支持,参见这里http://xpg.dk/projects/netbsd-support-for-the-mini2440/

上面的网页点击后,内部有一个HOWTO的链接即,http://xpg.dk/projects/netbsd-su ... 440/nb-mini2440-ht/,点击进入之后,就有详细的步骤。

尽管笔者照着他给的howto操作,但依然遇到了困难
1. 问题1, bootmini2440无法通过nfs/tftp加载netsd
beta2中自带的bootmini2440好像有些问题,无法正常初始化DM9000,也就无法使用NFS来加载netbsd,但是u-boot却可以使用nfs和tftp。为了顺利启动内核,我不得不利用uboot将netbsd(bin格式,非elf格式)加载到指定RAM(0x30200000) 然后修改bootmini2440代码,使其设置完MMU后,直接跳转到 0x30200000处运行。

终于成功启动内核。

2.  制作ramfs后启动失败
参考 http://bbs.chinaunix.net/thread-801055-1-1.html 中的步骤,制作了一个3M的 ramdisk,并启动,但却提示如下信息:

下面是uboot中的操作:

MINI2440 # tftp 30a00000 bootmini2440
dm9000 i/o: 0x20000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:08:11:18:12:27
TFTP from server 10.0.0.107; our IP address is 10.0.0.105
Filename 'bootmini2440'.
Load address: 0x30a00000
Loading: ########
done
Bytes transferred = 110208 (1ae80 hex)
MINI2440 # tftp 30200000 ramdisk     
dm9000 i/o: 0x20000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:08:11:18:12:27
TFTP from server 10.0.0.107; our IP address is 10.0.0.105
Filename 'ramdisk'.
Load address: 0x30200000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ###############################
done
Bytes transferred = 5224448 (4fb800 hex)
MINI2440 # go 30a00000
## Starting application at 0x30A00000 ...
S3C: CLK=405 HCLK=101 PCLK=50 UCLK=48
S3C: CLK=405 HCLK=101 PCLK=50 UCLK=48

接下里就可以看到netbsd的启动信息了,如下所示

>> NetBSD/evbarm boot2440, revision 1.0 (Sun Jul 15 11:13:29 CST 2012)
Argument count: 1
Boot string: 30a00000
val = 29282b2a, DM9000 Chip not found
suppose it runs in qemu, run all the same
begin open tftp file, add by prife 2012/07/14 17:42:51
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009, 2010, 2011, 2012
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 6.0_BETA2 (MY_2440) #0: Mon Jul  9 22:47:41 CST 2012
        prife@smart:/usr/src/sys/arch/evbarm/compile/MY_2440
total memory = 65536 KB
avail memory = 58468 KB
mainbus0 (root)
cpu0 at mainbus0: ARM920T rev 0 (ARM9TDMI core)
cpu0: DC enabled IC enabled WB enabled EABT
cpu0: 16KB/32B 64-way Instruction cache
cpu0: 16KB/32B 64-way write-back-locking-A Data cache
ssio0 at mainbus0: fclk 405 MHz hclk 101 MHz pclk 50 MHz
ohci0 at ssio0 intr 26
ohci0: OHCI version 0.0
ohci0: unsupported OHCI revision
ohci0: init failed, error=4
sscom0 at ssio0 unit 0
sscom0: console (major=104)
ssextio0 at ssio0
dme0 at ssextio0 addr 0x20000300 intr 7
dme0: Unable to get mac-address property
lcd0 at ssio0
s3c_lcd_write: attempt to enable LPC3600
wsdisplay0 at lcd0
lcd0: Allocating LCD frame buffer of size 153600
sssdi0 at ssio0
sdmmc0 at sssdi0
ssiis0 at ssio0
udassio0 at ssiis0
audio0 at udassio0: half duplex, playback, capture
sstouch0 at ssio0
wsmouse0 at sstouch0 mux 0
ssrtc0 at ssio0: RTC
clock: hz=100 stathz = 64 PCLK=50625000 prescaler=2 tc=24719
boot device: <unknown>
root on md0a dumps on md0b
root file system type: ffs
warning: no /dev/console
exec /sbin/init: error 2
init: trying /sbin/oinit
exec /sbin/oinit: error 2
init: trying /sbin/init.bak
exec /sbin/init.bak: error 2
init path (default /sbin/init):


但实际上在/sbin/init文件是存在的。不知道为什么无法加载。
笔者google了很久也没有找到解决方案。。。如果有人知道,请多多指点。

PS:  笔者在 mini2440-qemu上和开发板上都作了尝试,同样的错误。关于如何使用qemu来模拟2440可以参考笔者的qemu配置笔记,在这里:
https://github.com/prife/documen ... 40_qemu_install.txt

3. SD卡安装netbsd失败
然后尝试参考HOWTO的第一节,尝试将netbsd安装到SD卡上,同样遇到问题,笔者使用的是2G的SD卡,在安装时选择分区后,始终提示遇到错误,无法安装,然后就会返回第一页继续安装,整个过程如下所示。













到下一步就出错了,然后就会回到第一个页面继续。

评分

参与人数 1可用积分 +6 收起 理由
send_linux + 6

查看全部评分

论坛徽章:
1
2015年亚洲杯之中国
日期:2015-02-25 15:48:22
17 [报告]
发表于 2015-04-07 15:08 |只看该作者
warning: no /dev/console
这个应该是你生成ramdisk后,没有执行下面的命令造成的:
cp /dev/MAKEDEV   /ramdisk
sh ./MAKEDEV all
回复 1# Prife


   

论坛徽章:
0
16 [报告]
发表于 2012-10-06 10:33 |只看该作者
顶顶、、、、、、

论坛徽章:
20
CU大牛徽章
日期:2013-04-17 11:48:26羊年新春福章
日期:2015-03-10 22:39:202015年中国系统架构师大会
日期:2015-06-29 16:11:282015亚冠之平阳省
日期:2015-07-31 09:19:042015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-09-30 06:20:002015亚冠之柏太阳神
日期:2015-10-19 20:29:5915-16赛季CBA联赛之天津
日期:2016-11-29 14:03:4315-16赛季CBA联赛之北控
日期:2016-12-24 20:51:492015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-12 20:58:532014年中国系统架构师大会
日期:2014-10-14 15:59:00
15 [报告]
发表于 2012-08-07 14:06 |只看该作者
意义是什么?

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
14 [报告]
发表于 2012-07-18 19:49 |只看该作者
回复 14# Prife


    用readelf查查吧.搞嵌入式动手才是解决方案,可能一时解决不了,但是一定排除检验过的原因.逻辑推理没用,甚至有时候芯片数据手册都有误你咋推理...

论坛徽章:
0
13 [报告]
发表于 2012-07-18 19:23 |只看该作者
回复 11# gvim

实际上,我用的 build.sh 编译了 release。然后解压 base.tgz和 etc.tgz,然后制作的ramdisk。不应该是这个的问题啊。

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
12 [报告]
发表于 2012-07-18 18:40 |只看该作者
回复 8# Prife

看了下mini2440的代码和smdk2410的不一样,不能照搬
   

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
11 [报告]
发表于 2012-07-18 18:18 |只看该作者
看起来只像是文件系统的问题了.前面都正常.

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
10 [报告]
发表于 2012-07-18 18:17 |只看该作者
回复 10# Prife


    你用的/sbin/init和/netbsd编译器用的一样吗?看下他们的abi是不是一样的,编译指令的版本是不是一样的.

论坛徽章:
0
9 [报告]
发表于 2012-07-18 18:13 |只看该作者
回复 9# gvim

好像没什么新变化,我修改的是 MINI2440

MINI2440_INSTALL 依赖 MINI2440这个宏。

options     VERBOSE_INIT_ARM # verbose bootstraping messages

然后启动这个新的netbsd。信息如下

    >> NetBSD/evbarm boot2440, revision 1.0 (Sun Jul 15 11:13:29 CST 2012)
Argument count: 1
Boot string: 30a00000
val = 29282b2a, DM9000 Chip not found
suppose it runs in qemu, run all the same
begin open tftp file, add by prife 2012/07/14 17:42:51
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009, 2010, 2011, 2012
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 6.0_BETA2 (MY_2440) #2: Wed Jul 18 18:06:36 CST 2012
        prife@smart:/usr/src/sys/arch/evbarm/compile/MY_2440
total memory = 65536 KB
avail memory = 56456 KB
mainbus0 (root)
cpu0 at mainbus0: ARM920T rev 0 (ARM9TDMI core)
cpu0: DC enabled IC enabled WB enabled EABT
cpu0: 16KB/32B 64-way Instruction cache
cpu0: 16KB/32B 64-way write-back-locking-A Data cache
ssio0 at mainbus0: fclk 405 MHz hclk 101 MHz pclk 50 MHz
ohci0 at ssio0 intr 26
ohci0: OHCI version 0.0
ohci0: unsupported OHCI revision
ohci0: init failed, error=4
sscom0 at ssio0 unit 0
sscom0: console (major=104)
ssextio0 at ssio0
dme0 at ssextio0 addr 0x20000300 intr 7
dme0: Unable to get mac-address property
lcd0 at ssio0
s3c_lcd_write: attempt to enable LPC3600
wsdisplay0 at lcd0
lcd0: Allocating LCD frame buffer of size 153600
sssdi0 at ssio0
sdmmc0 at sssdi0
ssiis0 at ssio0
udassio0 at ssiis0
audio0 at udassio0: half duplex, playback, capture
sstouch0 at ssio0
wsmouse0 at sstouch0 mux 0
ssrtc0 at ssio0: RTC
clock: hz=100 stathz = 64 PCLK=50625000 prescaler=2 tc=24719
boot device: <unknown>
root on md0a dumps on md0b
root file system type: ffs
warning: no /dev/console
panic: init died (signal 0, exit 11)
Stopped in pid 1.1 (init) at    c0218d3c:       mov     r15, r14
db>

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
8 [报告]
发表于 2012-07-18 18:00 |只看该作者
VERBOSE_INIT_ARM

你把这个宏打开.
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP