当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : arm linux平台基本搭成
帖子发表于 : 2011-05-21 19:39 
头像

注册: 2008-07-29 8:01
帖子: 89
送出感谢: 0 次
接收感谢: 0 次
飞凌的OK6410板子,买了快一个月了,但就刚买那两天试了下,之后事比较多就放下了。昨天突然想再折腾下,弄了一天终于比较明朗了,总结一下。

基本配置:

cpu: s3c6410

ram: ddr sdram 256M

nandflash: 2G

screen: 4.7 480x272

接口比较多但基本没什么外设,现在用到的有串口接口、SD卡、网口、USB host。

pc主要是linux平台,如果实在解决不了问题用xp虚拟机。目前发现有一个问题不好解决。

串口通信用c-kermit,因为之前用minicom发现有问题,网上也更推荐c-kermit,另外用起来也比较舒服,全命令操作。

自带的Wince系统,用了会,感觉没兴趣,之前就换成linux了。

从nandflash启动,先用启动到Eboot,然后按A清除nandflash,这步是必须的,不然之后会出错。然后再启动就没有任何反应了。

官方手册有两种烧写linux方法,一键烧写和分步烧写。

开始时试分步烧写遇到不少麻烦。因为手册上用的全是windows下的工具,在linux下比较困难,还好经验比较多,又上网找了不少资料。

首先得启动到uboot,只能用sd卡了,而手册里要用一个windows下的工具来制作,无奈用了下虚拟机(之后的操作就再也不用了)。其实它只是把一个文件拷到sd卡的某个地址,但具体是什么地址不清楚,网上说法也不一,有的说是最后的8k,有的说是根据fat32的分区表计算的,这个问题以后再仔细研究吧。

那个文件是一个uboot,自带了一些启动参数,用于自动烧写linux。

然后调整到sd卡启动方式就要以启动了,按空格停住。这时就进入uboot了。

烧写的步骤是分别将uboot、linux内核、文件系统烧写到nandflash的不同地址。

首先要解决的问题就是怎么把文件传到板子上。

因为这里手册上用的超级终端和dnw,在这纠结了好一会。

发现c-kermit串口传文件还是比较方便的:

uboot里运行loadb 地址,然后退到命令模式send filename就可以发过去了,这时文件传到指定的内存地址,再用uboot的命令就可以烧写到nandflash里了。但有一个问题,串口传输太慢,发了uboot还行,发内核就要十多分钟,显然不好用。手册里是用dnw通过usb传的。上网一找dnw有linux版本,但编译了好几个都没法用,最后放弃了。

最后还是用了自动烧写的方式。

还是刚才的sd卡,把3个文件放进去,用它启动就行了。安装完再从nandflash启动就进入了linux。光盘里的linux比较简单,虽然也不小,但不少都是qt相关的东西,默认进入QTOPIA界面,感觉易用性还好。但我对GUI的东西不感兴趣,除了/opt其他的加里来也就十几兆了,不少命令都没有,连dhcpcd或dhclient都没有。昨天试图编译一个dhcpcd,结果发现/分区不可写,运行dhcpcd不方便,于是按手册上烧个yaffs2文件系统。重启调参数后发现启动到内核pc端就没反应了,东西直接显示在lcd上,找了好久不知道怎么回事。

今天终于发现是启动参数弄错了,console=ttySAC0 写成了console=/dev/ttySAC0,是手册上错的,手册看上去很详细,错误一片片的,很无语。

然后根分区可写了。

文件要传到板子上,最明了的方法是用sd卡,但比较麻烦,用网络传比较方便,和pc用交叉网线连上,设好ip,然后在pc上启动一个web或ftp服务器,板子上有wget、ftpget、ftpput,可以下载上传。tftp和nfs因为之前没配明白,先没试,以后直接开ssh就行了。

传上dhcpcd,运行出错,非法指令什么的意思,调参数重编译几回还不行,后来换板子光盘的编译器重编错误变了,但还是连不上。

后来想这个linux也不好用,不如换一个。

pc上用的archlinux,很顺手,但官方没有arm版。虽然有个非官方的但一看包很少,也不活跃,就算了。其余可以考虑的基本就debian和gentoo了。对gentoo无爱,没那么多时间浪费在交叉编译上,环境也不好搭。debian成最优解。又恰好看到http://code.google.com/p/mini6410-debian/,可以直接用里边的文件系统,思路就明朗了。

按之前烧写yaffs2的方法,只是文件换成了上边的debian_squeeze_armel_minimal_28.01.2011.tar.bz2。而内核还用之前的,尝试下果然可行。虽然启动比之前慢了点,但命令基本可pc没什么差别了,又可以从源安装包,非常方便。

还有个问题是系统装在nandflash不大方便,如果能安在sd卡上就好了。

现在的情况是uboot和内核在nandflash上,文件系统在sd卡上,基本实现了,下一步就是看怎么把内核也放sd卡上。

走了些弯路,最后这么实现的:

sd卡只放文件系统,单分区,ext3格式,直接把上边的文件解压到里边。

改uboot启动参数:

setenv bootargs "root=/dev/mmcblk0 console=ttySAC0,115200"

bootcmd不变:

bootcmd=nand read 0xc0008000 0x100000 0x500000;bootm 0xc0008000

但有个问题,默认的内核不支持ext3分区。开始时想办法把sd卡弄成yaffs2格式,发现好像不对。后来重编译内核加入ext3支持可以启动了。

然后回来了开始的dhcp问题,现在有dhclient命令了,但运行发现无问题,应该是少内核选项,重编译后好了。

板子终于可以上外网了。

一些备忘:

bootargs=root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200
bootcmd=nand erase;fatload mmc 0:1 0x50008000 u-boot.bin;nand write.uboot 0x50008000 0 0x100000;fatload mmc 0:1 0x50008000 zImage;nand write.e 0x50008000 0x100000 0x500000;fatload mmc 0:1 0x50008000 cramfs;nand write.e 0x50008000 0x600000 0x7800000;
#nand:
bootargs=root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200
bootcmd=nand read 0xc0008000 0x100000 0x500000;bootm 0xc0008000
bootdelay=1
baudrate=115200
ethaddr=00:40:5c:26:0a:5b
ipaddr=192.168.1.20
serverip=192.168.1.10
gatewayip=192.168.1.1
netmask=255.255.255.0
stdin=serial
stdout=serial
stderr=serial

/dev/mmcblk0
/dev/mmcblk0p2
setenv bootargs "root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200"
setenv bootargs "root=/dev/mtdblock3 rootfstype=yaffs2 console=ttySAC0,115200"

dhclient -v -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0


_________________
http://ly50247.diandian.com


页首
 用户资料  
 
2 楼 
 文章标题 : Re: arm linux平台基本搭成
帖子发表于 : 2011-09-05 16:51 

注册: 2011-09-05 16:47
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
楼主您好,我最近也在弄SD卡更新内核和文件系统的问题,请问你使用fatload mmc 0:1 addr filename 命令时,下载速度不会很慢吗?尤其是下载文件系统时更慢(我的根文件系统大约60M),约用5分钟,而用tftp下载根文件系统只需要2分钟,请问这是为什么?谢谢!


页首
 用户资料  
 
3 楼 
 文章标题 : Re: arm linux平台基本搭成
帖子发表于 : 2011-09-05 17:55 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
不是应该可以使用nfs启动的嘛。


_________________
● 鸣学


页首
 用户资料  
 
4 楼 
 文章标题 : Re: arm linux平台基本搭成
帖子发表于 : 2011-09-09 15:04 
头像

注册: 2007-11-11 17:50
帖子: 176
地址: 深圳福田
送出感谢: 2
接收感谢: 0 次
潜水学习中


_________________
努力,
要的不是结果!


页首
 用户资料  
 
5 楼 
 文章标题 : Re: arm linux平台基本搭成
帖子发表于 : 2011-09-09 16:40 
头像

注册: 2008-04-26 12:41
帖子: 11000
送出感谢: 11
接收感谢: 38
:em09


_________________
[新手必读]wubi安装常见问题(FAQ)
[分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法
kde下唯美的暗黑内透主题(无需编译)
无穷老机上的Trinity Desktop Environment


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 5 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译