分类: 嵌入式
2009-12-29 17:40:48
1.Linux资源 Linux以其开源、免费的特点而成为嵌入式系统的优选操作系统,然而它还有一个巨大的优势就是其浩瀚无限的资源!即无数各色的maillist,下面给出各个嵌入式Linux的站点资源: (1)uClinux:所有NOMMU的处理器都跑uClinux uClinux发行包下载点: MAILLIST搜索引擎: 一个搞uClinux的开发人员都应该关注的地方: (2)ppclinux:PowerPC系列处理器平台都跑ppclinux ppclinux发行包下载点: http://penguinppc.org/dev/kernel.shtml MAILLIST搜索引擎: 选择linuxppc-embedded 软件下载点: (3)armlinux:除ARM7 NOMMU的处理器外,其它的ARM9/XSCALE等ARM系列处理器都跑armlinux armlinux发行包下载: 通用的下载方式 还有可以是CVS的方式:一般的都在sourceforge.net CVS命令如下: (这是你的Redhat Linux PC必须能够接通Internet) cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/armlinux login cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/armlinux co linux-2.4 ARM开发大全:http://www.arm.linux.org.uk/developer/ ARM内核移植编译的文章: MAILLIST搜索引擎: (4)bootloader的资源 其它常用东东: microwin开发maillist minigui开发 rtai实时性补丁 GNU CC(gcc)英文资源(文档,非常好) 2. 处理器PDF手册下载(请右键点击,选择“目标另存为(A)”) :它是MPC866的"ethernet only version",所以就是MPC866的手册 3. 其它资源 华恒冷火HHCF系列嵌入式Linux开发平台常见问题解答 华恒PowerPC系列产品常见问题解答 华恒ARM系列产品常见问题解答 4.Redhat Linux 光盘映像下载点 5.常用资源 串口通信: http://www-900.ibm.com/developerWorks/cn/linux/l-serials/index.shtml#1 AT&T嵌入式汇编 http://www.32mcu.com/linux1.htm BDM+GDB调试 6.宿主机Linux安装注意事项及NFS的配置 建议都采用RedHat系列 目前华恒所有产品的宿主机平台以RedHat9.0为标准平台。 有些手册上所建议的RedHat7.2,现在都建议采用RedHat9.0,当然RedHat7.2/7.3的系统也都是可以用的,但鉴于市面上目前能买到的都是RedHat9.0,所以建议采用RedHat9.0 宿主机配置中一个常见的问题就是NFS的配置,这里介绍一种较为直接简单的方法: 首先在RedHat Linux PC机上执行setup,弹出菜单界面后,选中: System services,回车进入系统服务选项菜单,在其中选中 [*]nfs , 然后退出setup界面返回到命令提示符下。 vim /etc/exports 将这个默认的空文件修改为只有如下一行内容:(注意中间有空格) / ???(rw) 然后保存退出(:wq),然后执行如下命令: /etc/rc.d/init.d/nfs restart Shutting down NFS mountd: [ OK ] Shutting down NFS daemon: [ OK ] Shutting down NFS quotas: [ OK ] Shutting down NFS services: [ OK ] Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS daemon: [ OK ] Starting NFS mountd: [ OK ] 这样就一切OK了! 【注意】 因NFS不会每次自动启动,即无法像linuxconf命令那样设置成Automatic启动方式,执行如下命令重启NFS服务: /etc/rc.d/init.d/nfs restart (最好把上面一句写入/etc/rc.local文件中,这样每次计算机重新启动就省去每次都要执行上面的命令来启动NFS服务) 配置完成后,可用如下办法简单测试一下NFS是否配置好了: 在宿主机上自己mount自己,看是否成功就可以判断NFS是否配好了。例如在宿主机/目录下执行: mount -o nolock 192.168.2.32:/???/mnt(有时若根目录不让读写,执行chmod 777 / 试试) 然后到/mnt/目录下看是否可以列出/目录下的所有文件和目录,可以则说明mount成功,NFS配置成功。 但实际上,RedHat Linux PC自己mount自己成功也不能完全说明NFS就可以工作了,因为还有一个防火墙的问题,一般的我们建议客户在安装RedHat Linux时就默认选择No Firewall,但若客户没有这样选择的话,RedHat 启动时会加载防火墙规则,这样你自己能 mount 自己,但其它PC和板子也无法mount这台PC。所以这时要运行setup关闭防火墙。注意!setup里面的防火墙显示永远都是High,这个是RedHat一直的一个小BUG,即使你安装时默认选择了NO FIREWALL,setup里面也照样会显示防火墙设置是HIGH的,这个可以不必理会。只要你选择了一次NO Firewall 就可以了。关于防火墙等问题,请参见您的光盘里面的PDF手册。另外,建议对LINUX操作不是非常熟悉的客户,务必请阅读我们手册附录的“Linux常用命令”。 还有,就是RedHat还有这样一个问题,就是加入网关设置后,网络建立TCP链接非常慢,例如FTP/TELNET/NFS等都是,建立链接后,以太网通信还是很快的。若您安装网络时加入了网关,就会出现你在板子NFS mount REDHAT PC时,敲入mount -o nolock pcip:/ /mnt后非常长的时间不返回SHELL提示符,就一直停在那里,这就是建立连接的时间非常的长。一般的,遇到这种情况,建议在RedHat Linux PC上执行 route del default 即去掉网关,然后再进行NFS mount等操作就会非常快了。 再有,若您用的不是华恒的开发板,那么可能您的busybox可能没有加入NFS mount的支持,这样您就需要重新编译busybox,加入NFS mount支持,然后更新ramdisk,重新烧写即可。 当然了,测试NFS你必须用以太网将板子和REDHAT LINUX PC连接起来才行,连接的方式有两种:一是板子和PC都用普通的网线接到HUB或者交换机上;二是用交叉网线将板子和PC直连起来,注意!这种网线是特制的,内部收发交换的! 测试板子和PC网络是否连通的方式是:板子正常启动LINUX后,在minicom里面ping PC看是否能通即可,当然了,用PC来ping板子看是否通也是可以的。 注意:板子必须启动到LINUX后才能ping通,板子处在bootloader阶段一般是无法ping通的,即使这时板子的bootloader初始化了以太网也不行。 若板子跟PC的网络不通,mount报错信息为: # mount -o nolock 192.168.2.211:/ /mnt mount: RPC: Unable to receive; eNrno = No route Fo host mount: Sfsmount failed::Bad file descriptor mount program didn't pass remote address! mount: Mounting 192.168.2.211:/ on /mnt failed: Invalid argument 关于tftp服务安装的问题 有些客户在安装RedHat Linux时,有时没有选Custom-->Packages里面选择everything,导致没有安装tftp服务(典型的就是安装完成后没有/tftpboot目录,setup-->system services里面也没有tftp选项 ),这时若要重新完全安装就太麻烦了,可如下单独安装改服务: <感谢深圳客户廖代国先生和瘦网虫提供资讯> 安装tftp 的方法: rpm -ivh tftp-server-0.32-4.i386.rpm. 其中tftp-server-0.32-4.i386.rpm在Redhat9的第3张光盘里面。 7.WEB SERVER boa的使用及配置 (1)、对于uClinux-dist而言,就是make menuconfig在应用程序选单中,在network application下面选择boa,然后到uClinux-dist目录下执行make编译即可。 对于有MMU的平台,如armlinux和ppclinux,都是到网上下载一个boa的tar包,随便找个主流的可用的版本即可,不要最新的也不要最旧的。下载到REDHAT宿主机上后,解压到任意目录,然后修改boa/src/Makefile里面的编译器,就只要加入两三行即可,例如: CC = /LinuxPPC/CDK/bin/powerpc-linux-gcc -DHHTECH_PPC CPP = /LinuxPPC/CDK/bin/powerpc-linux-g++ 然后直接在boa/src目录下执行make即可生成boa可执行文件,将其复制到ramdisk加载mount的目录的bin里面,然后等一同加入后面的配置文件和HTML/CGI文件后,重做ramdisk即可。 (2)、编制配置文件boa.conf Linux下的应用程序的配置都是以配置文件的形式提供的,一般的都是放在目标板/etc/目录下或者/etc/config目录下,但boa的配置文件boa.conf一般都放置在目标板/home/httpd/目录下。 例如一个典型的boa.conf文件格式如下: ServerName HHCF5272-R1 DocumentRoot /home/httpd/html ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/ ScriptAlias /index.html /home/httpd/html/index.html 它指定了HTML页面(例如index.html必须放到/home/httpd/html目录下,cgi可执行文件必须放到/home/httpd/cgi-bin目录下) (3)、编译uClinux-dist后或者重做ramdisk后,烧写后在一台WINDOWS的PC机上就可以用IE访问板子上的webserver,例如输入板子IP地址,即可看到你用dreamweaver做的网页index.html了。但这里只能做到对静态页面的支持,若要支持FORM表单处理和动态页面,就必须用C代码编制CGI代码,uClinux-dist/user/cgi-generic目录下提供了样板代码,或者可以从华恒公司购买。注意:这个CGI的可执行文件必须放置到板子的/home/httpd/cgi-bin目录下。 建议阅读文章: 8.关于PPP拨号 (1)、首先是根据板子的串口2的信号定义制作串口线接MODEM,例如HHCF5249/5272系列平台就要将接MODEM的串口线2、3交换,7、8交换。做好线之后,可用tip软件进行与MODEM通信的测试: tip -l /dev/ttyS1 -s 19200 显示connected后,用户就可以输入AT命令直接与MODEM对话了,这样做的目的是测试串口线。 (2)、配置内核支持PPP,并编译拨号用相关应用程序:pppd/chat。关于内核支持,就是make menuconfig在内核配置的Network device support ---> 中选择PPP/SLIP/CSLIP等,具体细节选项可任选,其实全部选中就可以了。关于应用程序的做法,和上面boa的做法完全类似。 (3)、编译拨号脚本和相关配置文件。做拨号必须先在RedHat上手工拨号成功(不要用图像界面),然后才能到板子上做测试。而且,这只是第一步,简单的拨号上去并没有任何意思,因为产品过程中,还要涉及许多的应用细节,例如断线重拨检测,开机自动拨号,无流量自动断开,有流量自动拨号等,都是非常麻烦的细节,需要做长时间大量的稳定性可靠性测试。华恒提供经过全球各大城市测试稳定应用的拨号软件(GPRS/ADSL),可大大节省用户产品的上市时间。 |