ping pc unbuntu tq2440及ubuntu上不了网

      前几个月用了一下TQ2440的板子,现在整理一下当时的记录发出来,防止遗忘。

2011-10-25

首先开发板(天嵌TQ2440)串口线与PC机相连,然后上电(在NOR flash下启动),再插USB下载线,安装USB数据线驱动,按照光盘中开发板使用手册中的步骤即可。

 

      下载linux内核镜像

串口线、USB下载线均与PC机相连,打开DNW软件,在DNW中打开串口,波特率设置为115200,发送地址为0x30000000DNW可以代替超级终端。

开发板在NOR flash模式下启动后,DNW软件界面中会出现如下内容

 

下载可按照readme文件中的步骤,共三步:

使用命令1,烧写ubootNand Flash

输入1enter,然后选择要传送的U-boot文件,我选的文件是u-boot_VGA.bin

然后使用命令3:烧写linux内核(zImage

      U-boot 传送完成以后,按下3,选择linux内核文件,我选的是

zImage_2.6.30.4_VGA_256MB.bin

然后使用命令6:烧写文件系统(root

按下6,选择文件系统镜像文件root_qtopia_2.2.0_2.6.30.4_256MB.bin

之前我并没有查看nandflash的大小,刚开始一直烧的是64M的文件,因此系统一直起不来,后来看了一下nandflash的大小是256M才知道原因,重新烧写与256M相对应的文件之后,就正常了。

 

启动开发板上的linux系统

全部传送完成之后,开发板断电,拨码到NAND flash模式下再上电,就可以看到开发板中的linux系统启动了,在DNW软件的界面中会有启动信息,如下图

之后按下enter键,就可以进入其根目录下,输入ls查看文件

不知道为什么我的这个文件夹名称边都有134m这样的符号,不过并不影响我进入文件夹查看文件

      查看其IP地址

      

Windowsping 192.168.1.6  ping不通,原来它们不再一个网段内,修改开发板的IP地址

开发板IP没变,也不知道后面那些显示是什么意思,就算修改成功了开发板重启之后还是会恢复成原来的IP的,干脆直接修改文件/etc/init.d/srC中的内容,先查看srC文件的内容:

[root@EmbedSky init.d]# cat rcS

#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin

runlevel=S

prevlevel=N

umask 022

export PATH runlevel prevlevel

#

#    Trap CTRL-C &c only in this shell so we can interrupt subprocesses.

#

echo Done > /dev/s3c2410_serial0

mount -a

mkdir /dev/pts

mount -t devpts devpts /dev/pts

echo /sbin/mdev > /proc/sys/kernel/hotplug

mdev -s

mkdir -p /var/lock

mkdir /dev/fb /dev/v4l

ln -s /dev/fb0 /dev/fb/0

ln -s /dev/video0 /dev/v4l/video0

ln -s /dev/ts0 /dev/h3600_tsraw

hwclock -s

insmod /lib/input-polldev.ko

insmod /lib/mac80211.ko

insmod /lib/rt2x00lib.ko

insmod /lib/rt2x00usb.ko

insmod /lib/rt73usb.ko

insmod /lib/ov9650.ko

ifconfig lo 127.0.0.1

net_set &

 

/etc/rc.d/init.d/leds start

/etc/rc.d/init.d/netd start

/etc/rc.d/init.d/httpd start

qtopia &

/bin/hostname -F /etc/sysconfig/HOSTNAME

 

在论坛中看到下面的话;

因此直接查看/etc/net.conf文件

果然和开发板系统中显示的网络配置信息一模一样,那么只要将这个里面的IP等信息改为我们想要的IP信息就可以了,我的PCIP192.168.232.35,因此要把开发板的IPPCIP设在同一网段中,采用VI编辑器修改(这个搞了半天,VI用的不熟啊):

之后重启开发板,输入ip a查看其IP等信息

可以看到IP已经改了,然后ping PC机,但是ping不通,在PC机上通过CMD窗口ping开发板,能ping通,

这是什么问题呢(防火墙早关了),想不通,我干脆直接用网线直连(之前是通过交换机的),还是同样的问题,怎么办呢,上网查吗,搜到一篇帖子,问题基本差不多,上面说关掉瑞星杀毒软件就可以了,于是我试着把瑞星关掉,然后在ping,果然ping通了,万恶的瑞星啊。在这里要感谢一下楼主,让我少费了不少时间。

参考网址

http://deshunfan.blog.163.com/blog/static/34244101200942010204934/

http://bbs.embedsky.net/viewthread.php?tid=199

http://www.examda.com/Linux/Instructs/051123/154203799.html

http://www.examda.com/Linux/Instructs/051123/154203799.html

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2011-10-26

 

接下来我想写一个helloworld测试程序在虚拟机上进行交叉编译,之后通过NFS下载到开发板上,使helloworld在开发板上跑起来。

前面只是开发板和PC机相互ping通了,和虚拟机中的Ubuntu系统还不知道呢。

首先说一下我的整个环境的配置:

虚拟机版本:VMware Workstation7.1.5

虚拟机中的操作系统:Ubuntu11.10

虚拟机IP地址:192.168.91.134

交叉编译器版本:arm-linux-gcc-4.4.3

 

本机系统:Windows XP

本机本地IP地址:192.168.232.35

子网掩码:255.255.255.0

默认网关:192.168.232.1

DNS:     221.12.1.227

 

开发板系统:linux2.6.30.4(内核版本)

IP地址:   192.168.232.154

子网掩码: 255.255.255.0

默认网关: 192.168.232.1

DNS:       221.12.1.227

 

PC机和开发板通过交换机上网,接下来启动Ubuntu11.10系统,ping PC机和开发板都可以ping通,但是开发板ping虚拟机却ping不通,就先输入命令关掉Ubuntu的防火墙(原来可能也没开吧),还ping不通,在改系统IP地址使其和PC机及开发板在同一网段内,在ping,还不通,怎么办呢,上网查资料。

查过资料之后才知道,我的Ubuntu设置的网络连接方式不对,应该把NAT方式改为桥接方式,其实这3种方式我也不怎么懂,花了半天看了一下终于搞明白了。然后开始设置,这个也挺烦的。

首先查看网络连接,虚拟机有两个虚拟网卡18

查看VMnet1IP设置

VMware Bridge Protocol框前打钩

之后在VMware中选择桥接方式,Bridged to 到实际网卡,就那个数据包计划微型端口那个,如图:

接下来对UbuntuIP等信息进行设置,子网掩码、网关、DNS都与PC机一致,IP设在同一网段。

ifconfig等命令设置IP的话系统重启就会还原,因此直接修改文件(当然首先要取得root权限),首先是IP地址、子网掩码和默认网关,在/etc/network/interface文件中添加信息

 

之后保存退出,在/etc/resolv.conf文件中加入DNS信息并保存退出。

接下来重启网络服务或重启系统:

#root@ubuntu:/etc/init.d# ./networking restart

ping,开发板、PC机和虚拟机都可以互相ping通了

但是Ubuntu中不能上网,重启也不行,本来不打算追究这个问题,因为开发板、PC机和虚拟机已经组成了局域网,之间可以互相通信,使用nfs应该没什么问题,但是虚拟机中的Ubuntu没有装nfs,在使用apt-get命令安装软件包的时候它是从网上先下下来才安装的,因此必须要是ubuntu能上网才行(谁知道只是一个IP地址的问题,后面会说)。

其中有一个小问题,就是在/etc/resolv.conf文件中写入的DNS地址在系统每次重启之后,他里面的内容就会还原掉,等于没改,因此改好后要修改文件属性

#chattr -i  /etc/resolv.conf

这样再重启系统此文件中的内容就不会还原了(只是目前不知道改这个文件的属性对系统有没有影响)

我原本以为不能上网是这个问题,但是重启之后还是不能上网,之后又上网查资料,采用了很多方法都不行,从下午搞到晚上都没解决。第二天早上又开始弄,我突然想到会不会是IP地址的问题,我就分别把开发板的IPUbuntuIP改到PC机上,然后看上网情况,都不能上网,难道会是这个问题?我们公司用的是局域网接入外网的方式连网,IP地址并没有和MAC地址绑定,我们部门的网段是192.168.232.xxx0255应该都能用,我去网络管理员那里看了一下IP的分配表,发现最大只到100,难道100以上的就不能上网了?其实我对这个也不是很清楚,当时刚好有一个20没人用,我就把UbuntuIP改为了192.168.232.20然后再重启系统,果然能上网了。真是郁闷死了,早点想到就不用浪费这么多时间了,不过问题总算是解决了(开发板要上网的话,也把IP改到100之内就可以了,最好找别人没用的,不然就会有冲突)。

 

参考的资料及网址

http://hi.baidu.com/swlilike/blog/item/7709b809b2621a3c6b60fb55.html

http://hi.baidu.com/%C4%BE%C4%BE_%C2%DE/blog/item/d39c292f2b982236d52af123.html

http://wenku.baidu.com/view/35410fc489eb172ded63b76a.html

http://baike.baidu.com/view/2761030.htm

ubuntu中设置静态IP和MAC地址,重启不影响

http://bbs.chinaunix.net/thread-2113256-1-1.html

http://cdj850909.blog.163.com/blog/static/1024570220102210025170/

http://www.hostloc.com/redirect.php?fid=45&tid=23659&goto=nextoldset

 

 

 

2011-10-28 

 

那么现在呢开发板、PC机和虚拟机中的Ubuntu就相当于一个局域网中的三台独立的计算机,而且可以相互ping通,接下来就开始研究nfs这个东西了,我对这个东西也不是很了解,上网查资料先。

nfs(网络文件共享系统)分服务器和客户端,简单来说,nfs服务器可以使用nfs来让其他远程机器共享它的本地资源。nfs客户机是访问nfs服务器的共享资源的机器。

nfs服务器使用的命令是:share unshared  shareall  unshareall

nfs客户机使用的命令是:mount umount  mountall  umountall

看起来挺简单的,但弄起来还是有不少问题的。

我接下来的目标是要在虚拟机的ubuntu系统中交叉编译一个简单的helloworld程序,然后通过nfs系统使它在开发板上运行,那么ubuntu系统就应该作为服务器,开发板作为客户机去挂载服务器上的共享文件夹。

因为ubuntu默认是不安装nfs服务程序的,因此首先要在ubuntu中安装nfs服务器程序的软件包,使用apt-get命令一次安装nfs-commonnfs-kernel-server两个软件包,如下图:

安装好以后,需要修改/etc/exports文件,在其后面添加一行文字,如下图

其中/home/gexioyong/armshare事先新建好,用它作为共享文件夹,192.168.232.38是开发板的IP地址(为了使开发板能上网,我把原来的154改成了38)。rw表示客户机用户具有可读写权限,sync表示数据同步写入内存和硬盘,no_root_squash表示允许客户机以他自己的root特权存取该目录,就是说,如果客户机用户是root,那么它就对这个文件共享。

接下来输入exportfs –rv使修改生效

然后输入命令开启nfs服务,

#/etc/init.d/portmap start

#/etc/init.d/nfs-kernel-server start

之后在开发板上的linux系统的根文件系统中新建用于挂载的文件夹

/home中新建nfshare

#mkdir nfshare

 

接下来就是用mount命令加载,但是出现了问题,如图

一直挂载不上,又查了很多资料,做了很多修改,都不行,最后在这个帖子上看了一下:

http://blog.mcuol.com/User/longren/article/10150_1.htm

要在mount命令后加-o nolock参数,我加了之后再挂载,就没什么问题了

什么情况,难道ubuntu上的nfs服务器版本太旧了吗,不清楚。

 

现在离目标就剩最后一步了,在ubuntu上的/home/gexiaoyong/armshare文件夹中用先新建一个nfstest文件夹,然后在文件夹里用vi创建一个hello.c文件,里面当然是经典的helloworld程序了,之后交叉编译(我用的是arm-linux-gcc4.4.3交叉编译器)生成arm平台下的可执行文件(或者在别的地方创建编译,最后把可执行文件拷到共享文件夹里就好了),然后在开发板上的/home/nfshare文件中查看并运行它:

Hello World!出现了,我原本还以为会在开发板的液晶屏上显示一个Hello World!呢,没想到只在DNW上显示了,可能本来就是这样,搞不清楚,我还是菜鸟一只,呵呵。

      现在还有一个问题,那就是开发板每次重启以后就要重新mount,我想让它每次重启后自动加载,那就需要修改开发板上linux系统中的/etc/fstab文件了,首先看一下这个文件里面有什么东西

      看不懂,那就再查资料吧。这里说的相当详细:

http://forum.ubuntu.org.cn/viewtopic.php?t=58468

之后又有问题了,不过到现在已经不像刚开始那样惊慌失措了,问题多了才好呢,多了才能多查资料多学习,才能这部分知识有更深入的理解。

我在fstab文件里添加了一行内容,如下:

但是重启开发板后,共享文件夹没有没有自动挂载上来,我再手动挂载,又挂载不上了,可能是我内容加错了吧。因为在启动信息中(开发板启动的时候会有一些启动信息)有这样一句:

      这就说明自动挂载失败了,但是现在手动也挂载不上了,有点郁闷了。

      全部重启,在ubuntu中启动nfs服务的时候出现了权限问题,必须以root身份启动nfs服务,否则就会失败,然后开发板上电,手动挂载共享文件夹,竟然又可以了,这都是什么问题,算了,不自动挂载了,把fstab文件的内容改回去,每次都手动挂载吧。自动挂载等以后搞清楚了再说。

网上参考资料:

http://www.examda.com/linux/fudao/20090727/091557635.html

http://www.hdpfans.com/thread-12852-1-1.html

http://bbs.chinaunix.net/thread-2267115-1-1.html

http://wenku.baidu.com/view/ab00d8335a8102d276a22f63.html

http://network.51cto.com/art/201008/217334.htm

http://blog.sina.com.cn/s/blog_5aef3d000100f1ko.html

http://www.enet.com.cn/article/2008/0918/A20080918360059.shtml

http://www.hdpfans.com/thread-12852-1-1.html

http://bbs.chinaunix.net/thread-2267115-1-1.html

http://blog.mcuol.com/User/longren/article/10150_1.htm

http://hi.baidu.com/farmerluo/blog/item/07aa5343d2da9f119313c6de.html

http://forum.ubuntu.org.cn/viewtopic.php?t=58468

http://www.linuxso.com/command/mount.html

接下来是移植appweb服务器和搭建嵌入式Linux + web+sqlite +php5.0 的平台,之前记录的比较乱,整理一下在发吧。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值