ubuntu10.10 tftpインストール、構成、テスト
3114 ワード
ubuntu10.10 tftpインストール、構成、テスト
堅持することになり,立ち止まることに負ける
ubuntu/centos/redhatはlinuxですが、カーネルには一定の変更があるため、tftpサーバのインストールには異なるコマンドがあります.
ここでは自分でubuntuをインストールしているので(redhatはrpm方式でインストールされています)
tftp-hpa tftpd-hpa xinetdのインストール
sudo apt-get install tftp-hpa tftpd-hpa xinetd
ルートディレクトリの下にフォルダ/tftpbootを作成します.私のルートディレクトリは/rootです.
ディレクトリ権限chmod-R 777/root/tftpbootの変更
1、tftpプロファイルを修正し、なければ作成する
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 /root/tftpboot
source = 11
cps = 100 2
flags =IPv4
}
2、inetdを修正する.confファイル
vim/etc/inetd.conf tftp dgram udp wait nobody /usr/sbin/tcpd
/usr/sbin/in.tftpd /root/tftpboot
ここで/root/tftpbootはtftp共有ディレクトリ
3、tftpd-hpaファイルの修正
vim/etc/default/tftpd-hpa #RUN_DAEMON="no"
#OPTIONS="-s /tftpboot/root -c -p -U tftpd"
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/root/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"
4./tftpboot/rootでテストファイルfileを作成する
テストの前にサーバを起動します.
方法は2つあります.
1.service xinetd restart
2./etc/init.d/xinetd restart
#cd/tftpboot/root
#touch file
#chmod 777 file
tftpサービスをテストします.
#cd/
#tftp 127.0.0.1
tftp>get file
tftp>q
#ls
現在のディレクトリを表示すると、xxxファイルが現在のディレクトリにあることがわかります.
上記の設定がまだできない場合は、selinuxを無効にします.
vim/etc/selinux/config//selinux/configというファイルがない場合は作成# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
上のSELINUX=enforcingを:SELINUX=disable SeLinuxを無効にし、rebootでPCを再起動する
再起動してからtftpテストを行います.
5、開発ボードのテスト:
/tftpbootディレクトリが存在し、アクセス権があることを確認します(少なくとも「dr-xr-xr-x」が必要です).
あるいはdisable=yesをdisable=noに変更します
これにより、ホストlinuxのtftpサービスが開きます.次にubootのtftpコマンドを使用して、ターゲットボードのramにファイルを転送して実行できます.
ターゲットボードでipアドレスをコマンドprintenvで表示します.
serverip 192.168.2.1//ホストip、すなわちeth 0は、pcと開発ボードの接続がデフォルトでイーサネットであるため
ipaddr 192.168.2.10//ターゲットマシンつまり開発ボードのip
setenvコマンドは、ホストとターゲットのipアドレスを変更できます.
#setenv serverip 192.168.2.1//このコマンドはホストipを設定することができ、このコマンドは設定をramに保存するだけで、再起動すると設定は元の設定に戻ります.このときsaveenvコマンドで設定をflashに保存します.
#saveenv
各パラメータを構成した後、ubootコマンドウィンドウでtftpコマンドを使用してカーネル、ファイルシステムをramにコピーします.
まずping 192.168.2.1は成功すればダウンロードしますが、ping以前に端末設定番号eth 0:sudo ifconfig eth 0 192.168.2.1 netmask 255.255.255.255.255.0 up
#tftp 30008000 zImage_W 35//ホスト/tftpbootディレクトリのzImageファイルをターゲットボードメモリの300000,000アドレスにダウンロードします.
続きます....
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /root/tftpboot
source = 11
cps = 100 2
flags =IPv4
}
tftp dgram udp wait nobody /usr/sbin/tcpd
/usr/sbin/in.tftpd /root/tftpboot
#RUN_DAEMON="no"
#OPTIONS="-s /tftpboot/root -c -p -U tftpd"
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/root/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted