Mac OS10.6でPXElan-bootを試しています。
長時間のトラブルシューティングの後、LaunchDが次のオプションを使用してbootpd
を正常に実行できるようになりました。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>detect_other_dhcp_server</key>
<false/>
<key>bootp_enabled</key>
<false/>
<key>dhcp_enabled</key>
<true/>
<key>old_netboot_enabled</key>
<false/>
<key>netboot_enabled</key>
<false/>
<!--
<key>relay_enabled</key>
<false/>
<key>allow</key>
<array/>
<key>deny</key>
<array/>
<key>relay_ip_list</key>
<array/>
-->
<key>reply_threshold_seconds</key>
<integer>0</integer>
<!--
<key>use_open_directory</key>
<false/>
-->
<!--
<key>NetBoot</key>
<dict>
<key>shadow_size_meg</key>
<integer>0</integer>
<key>afp_users_max</key>
<integer>0</integer>
<key>age_time_seconds</key>
<integer>0</integer>
<key>afp_uid_start</key>
<integer>0</integer>
</dict>
-->
<key>Subnets</key>
<array>
<dict>
<key>name</key>
<string>192.168.1</string>
<key>net_address</key>
<string>192.168.1.1</string>
<key>net_mask</key>
<string>255.255.255.0</string>
<key>net_range</key>
<array>
<string>192.168.1.2</string>
<string>192.168.1.254</string>
</array>
<!--
<key>supernet</key>
<string></string>
-->
<key>allocate</key>
<true/>
<key>lease_max</key>
<integer>86400</integer>
<key>lease_min</key>
<integer>86400</integer>
<!--
OTHER OPTIONS FORMAT:
<key>dhcp_*</key>
<string></string>
-->
<!-- DHCP PXE BINDINGS -->
<key>dhcp_option_150</key>
<string>pxe server</string>
<key>dhcp_option_67</key>
<string>boot folder</string>
</dict>
</array>
</dict>
</plist>
物理的な設定は次のとおりです。
Router (DHCP off)
|
|------- Mac (DHCP Server)
|
|------- Thin Client
|
|------- mobile device
ルーターのwifiを介してモバイルデバイスでテストすると、次のようになります。
bootpd[1244]: DHCP DISCOVER [en0]: <MAC ADDRESS>
bootpd[1244]: service time 0.000725 seconds
ただし、デバイスがIPアドレスを受信することはありません。
アドレスを提供する必要があるという私が見逃しているオプションはありますか?
かなりの変更を加えた後、それを機能させた後、それを修正するために何をしたかを思い出そうとします。
まず、起動出力に表示されていた他のエラーに気づきませんでした。
subnets: create failed, 'net_range' start not within subnet
ここでの問題は、255.255.255.0
のマスクを使用すると、net_address
が.0で終わる必要があることです。
<key>name</key>
<string>192.168.1</string>
<key>net_address</key>
<string>192.168.1.0</string>
<key>net_mask</key>
<string>255.255.255.0</string>
<key>net_range</key>
<array>
<string>192.168.1.2</string>
<string>192.168.1.254</string>
</array>
サーバーアドレスがまだ192.168.1.1
<-の場合、これを手動で設定する必要がある場合があります
第二に、dhcp_option_150
はbootpd
use dhcp_option_66
によって理解されません(150ではなく66が67の前にあります。
この時点で私が見つけることができる最後の欠陥は次のとおりです。
<key>dhcp_enabled</key>
<true/>
する必要があります:
<key>dhcp_enabled</key>
<array>
<string>en0</string>
</array>
配列の文字列として使用するインターフェイスを使用します。実際には、起動引数にも-i en0
を指定する必要があるようです。これは、bootps.plist
の/System/Library/LaunchDaemons/bootps.plist
に次のようにあります。
<key>ProgramArguments</key>
<array>
<string>/usr/libexec/bootpd</string>
<string>-i</string>
<string>en0</string>
</array>
他に問題がある場合は、引数を指定してbootpd
を手動で実行することをお勧めします:-dv
これにより、フォアグラウンド(-d
)および詳細(-v
)が実行されます。
これがこの問題で苦労している他の人に役立つことを願っています!
一部のデバイスでは、「reply_threshold_seconds」プロパティを「0」に設定する必要があることも追加します。 ESP8266デバイスがMacに接続するように、これを行う必要がありました。
そうしないと、bootpdサービスが応答しません。