昨晚剛寫了一篇Ubuntu10.04下的TFTP配置,這裡的TFTP伺服器配置用的是老方法了,不過也還是可以用。雖然TFTP及NFS網路設定方面非常簡單,不過由於長時間不用,今天再回過頭來實現這兩方面的配置過程,結果還真是鬱悶至極,看來不能忽視以前學過的知識,有空還得強化才行。
接著來總結總結今天出現的一些問題,先來說說TFTP配置出來的一些問題吧,簡單的歸結如下:
當TFTP配置成功後,在PC機上測試可以實現上傳與下載,說明是TFTP已經配置成功,是正常的,當目標板燒寫了Uboot之後,設定了環境變數ethaddr、ipaddr、serverip等,然後對主機進行ping操作,結果總是失敗。但是主機ping目標板卻是成功的,這是啥原因呢?
為瞭解決這個問題,我對TFTP伺服器的配置成功與否產生質疑,結果重來了幾次,最終以失敗告終。緊接著在windows環境下用TFTP-server測試,還是出現這種問題,失敗。最後換了個uboot測試,還是沒成功。鬱悶啊鬱悶!!!!這是何等的鬱悶,沒想到被這小小的TFTP給難住了。如果目標板與主板沒連通,我後面的實驗就做不下去了,真是麻煩,心急如焚,雖說不能太急,但是由於已經花了半天的時間了,不能再浪費了。後來出去溜達了兩圈,突然間想到:NND,與目標板相連的是網線,其與PC相連的是有線乙太網路口,即eth0,而我現在連的是無線介面wlan0,這豈不是扯蛋嘛。於是乎,重新點烯了希望,馬上把wlan0無線斷了,啟用eth0的方式與目標板相連,並用ifconfig eth0 192.168.0.112配置主機IP。配置成功後,再次進行ping操作,果然,成功了!!!!!這個問題雖然有點白,不過確實讓我花了很大時間去找,哎,還好解決。
接著談談配置NFS網路存在的一些問題吧,問題如下:
當配置成功後,在本地進行測試,為何會掛載不成功呢:
cpc@ubuntu:~$ sudo mount -t nfs 192.168.0.112:/home/cpc/nfs /mnt/nfs
mount.nfs: access denied by server while mounting 192.168.0.112:/home/cpc/nfs
這個問題還真棘手,不過也成功解決了,原因如下:
1:沒有啟動連接埠映射
應該執行#sudo /etc/rc.d/init.d/portmap start (如果不行,就執行:#sudo /etc/init.d/portmap start,如果還不行,則執行這一條:
#sudo service portmap start(這一條絕對能成功)
2: 將/etc/exports中的“/home/cpc/nfs 192.168.0.*(rw, sync, no_subtree_check)"
改寫成“ /home/cpc/nfs *(rw,sync, no_root_squash)"即可
這樣一改就可以解決上述的問題了。
下面就來詳細地談下如何配置TFTP伺服器和NFS網路吧
1 TFTP伺服器配置
1.1安裝tftpd、tftp和openbsd-inetd
#sudo apt-get install tftpd
#sudo apt-get install tftp
#sudo apt-get install openbsd-inetd
1.2 在使用者主目錄下建立tftpboot目錄並設定其讀取許可權
mkdir /home/cpc/tftpboot
chmod 777 /home/cpc/tftpboot
1.3修改/etc/inetd.conf設定檔
#sudo vim /etc/inetd.conf 開啟檔案
將檔案底部加入為以下內容:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /home/cpc/tftpboot
註:最後面的/home/cpc/tftpboot即為tftp伺服器的目錄了。
1.4修改
/etc/xinetd.d/tftp 設定檔(如果沒有
tftp檔案就建立它)
#sudo vim /etc/xinetd.d/tftp 開啟檔案後修改成如下樣式:
service tftp
{
disable =no
socket_type =dgram
protocol =udp
wait =yes
user =root
server =/usr/sbin/in.tftpd
server_args =-s /home/cpc/tftpboot -c
source = 11
cps = 100 2
}
當然以上的server_args參數可以根據實際情況修改。
1.5 修改
/etc/default/tftpd-hpa檔案如下:
#/etc/default/tftpd-hpa
RUN_DAEMON="no"
OPTIONS="-s /home/cpc/tftpboot -c -p -U tftpd"
1.6開啟服務
sudo /etc/init.d/openbsd-inetd
reload
sudo /etc/init.d/xinetd restart
sudo in.tftpd -l /home/cpc/tftpboot
1.7測試是否成功配置(這塊就不講了,略過)
---------------------------------------------------
2 NFS網路檔案系統配置
2.1安裝
NFS伺服器安裝
nfs-kernel-server
可以通過新立得軟體包管理器來安裝或#sudo apt-get install nfs-kernel-server
2.2 在使用者根目錄下建立nfs目錄並改變目錄許可權
mkdir /home/cpc/nfs
chmod 777 /home/cpc/nfs
2.3 修改/etc/exports設定檔,修改內容如下:
#
/etc/exports: the access control list for filesystems which may be
exported
# to NFS clients. See
exports(5).
#
# Example for NFSv2 and
NFSv3:
# /srv/homes
hostname1(rw
,sync)
hostname2(ro
,sync)
#
# Example for NFSv4:
# /srv/nfs4
gss/krb5i(rw
,sync
,fsid=0
,crossmnt)
# /srv/nfs4/homes
gss/krb5i(rw
,sync)
/home/cpc/nfs *(rw, sync, no_root_squash)
2.4 修改配置完後,接下來最關鍵的一步就是要啟動portmap服務與nfs-kernel-server服務
sudo service portmap start(啟動portmap連接埠映射)
sudo /etc/init.d/nfs-kernel-server
restart (啟動nfs服務)
2.5測試
可以把nfs檔案系統mount到/mnt/下,然後在/mnt下查看檔案的內容,如果在/mnt下能查看到與/nfs目錄下的內容,則說明nfs網路檔案系統配置成功。這樣,嵌入式目標板運行時可以通過設定環境變數bootargs,讓其過掛載nfs上的檔案系統,這樣方便調試。
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
mount –t nfs
192.168.0.112:/home/cpc/nfs/ /mnt
然後查看ls /mnt內容。
---------------------文章結束---------------------