Raspbian Jessie(最新の安定版、カーネルバージョン4.4)を使用してRaspberry Piでフラッシュステーションを実行しようとしています。
しかし、私は4つのUSBポートを利用したいと思います。これにはUSB経由のイーサネットを使用します(u-bootはtftpサーバーを確認するためにイーサネットを使用するためです)。
前提条件と構成
Raspberry Piにインストールしたものは次のとおりです。
- isc-dhcp-サーバー
- シネット
複数のファイルを設定しました。
/etc/dhcp/dhcpd.conf
log-facility local7;
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.2.0 netmask 255.255.255.0
{
range dynamic-bootp 192.168.2.2 192.168.2.100;
if substring (option vendor-class-identifier, 0, 10) = "AM335x ROM"
{
filename "u-boot-spl-restore.bin";
}
elsif substring (option vendor-class-identifier, 0, 17) = "AM335x U-Boot SPL"
{
filename "u-boot-restore.img";
}
else
{
filename "zImage";
}
range 192.168.2.101 192.168.2.199;
}
最初の4行はデフォルトで存在します。
/etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
}
ファイルが存在しないため作成する必要があります。これは他のサービスと同様に含まれます/etc/xinetd.conf
。
/tftpboot/
このフォルダを作成し、次のコマンドを実行します。
sudo cp /path/to/boot/files/* /tftpboot/
sudo chmod -R 777 /tftpboot/
sudo chown -R nobody:nogroup /tftpboot
/etc/default/isc-dhcp-server
usb0
インターフェイスリストに追加:
INTERFACES="usb0"
/etc/network/interfaces
インターフェースを作成しましたusb0
。
allow-hotplug usb0
iface usb0 inet static
address 192.168.2.1
network 192.168.2.0
netmask 255.255.255.0
broadcast 192.168.2.255
up /etc/network/if-up.d/usb-interfaces
/etc/network/if-up.d/usb-interfaces
次のスクリプトが作成され、引用されました/etc/network/interfaces
。
#!/bin/sh
if [ "$IFACE" = usb0 ]; then
sudo service isc-dhcp-server restart
fi
すべてのサービスを再起動してください!
sudo /etc/init.d/tftp-hpa restart
sudo /etc/init.d/xinetd restart
テストと結果
私たちはラズベリー波と呼びます。所有者そしてLinuxを更新したいターゲット。
したがって、これを行うには、ホストにすべてのログがあり、ターゲットにシリアルコンソールがあります(つまり、カーネルからブートログにアクセスできることを意味します)。
基本的に何が起こるか:
- ターゲットのPoVから:シリアルログには特に何も表示されません。通常、しばらくブロックされてから始まります。
- ホストの観点から:以下は完全なログです。
usb0
Linuxシステムが起動し始めると、インターフェイスは消えて停止します。ご覧のとおり、後ろBOOTREQUEST
にしっかり付いてくださいBOOTREPLY
。この時点で、ターゲットはサーバーから取得する必要があるファイル名tftp
(/etc/dhcp/dhcpd.conf
ファイルに割り当てられている)を知っているので、tftp
要求する必要がありますが、何も起こりません。
tftp
ターゲットコンピュータとコンピュータの両方でRaspberry Piで実行されているサーバーをテストしましたが、どちらの場合もファイルを正しくインポートできます。また、別のファイルを試してみて、使用したファイル(私の/tftpboot/
フォルダ内)が正確で有効であることを確認することができました。
私の考えとテスト:
- Raspberry PiのUSBポートは十分な電力を提供しません。独立して電源が供給されたUSB 2.0ハブでテストした結果は同じでした。
どんな助けでも大変感謝します。
ベストアンサー1
問題は、私のシステムで複数のTFTPサーバーが実行されていますが、正しいサーバーを構成していないことです。
この問題が発生した場合は、次のようなコマンドを実行することをお勧めしますps ax | grep tftp
。また、通常はTFTPサーバーのルートディレクトリとして使用されるディレクトリを知らせます。