私は、i.Mx6 クアッド コア プロセッサを使用する SABRE SD 開発ボードに取り組んでいます。このボードの initrd イメージを開発しました。カーネルが起動し、initrd イメージが正常にマウントされます。fec イーサネット ドライバーも適切にロードされます。
しかし、init プロセス中に、dhcp はイーサネット デバイスの IP を指定できません。
「dhcp」コマンドで strace ユーティリティを使用して分析すると、次のログが取得されました。ログの一部を以下に示します。
socket(PF_INET, SOCK_RAW, IPPROTO_RAW) = 6
ioctl(6, SIOCGIFINDEX, {ifr_name="eth0", ifr_index=2}) = 0
ioctl(6, SIOCGIFHWADDR, {ifr_name="eth0", ifr_hwaddr=00:04:9f:02:b3:81}) = 0
close(6) = 0
clock_gettime(CLOCK_MONOTONIC, {53, 815520338}) = 0
write(1, "Sending discover...\n", 20Sending discover...
) = 20
socket(PF_PACKET, SOCK_DGRAM, 8) = 6
bind(6, {sa_family=AF_PACKET, proto=0x800, if2, pkttype=PACKET_HOST, addr(6)={0,
ffffffffffff}, 20) = 0
sendto(6, "E\0\0014\0\0\0\0@\21y\272\0\0\0\0\377\377\377\377\0D\0C\1 ,h\1\1\6\0"..., 308, 0, {sa_family=AF_PACKET, proto=0x800, if2, pkttype=PACKET_HOST, add8
close(6) = 0
fcntl64(5, F_SETFD, FD_CLOEXEC) = 0
clock_gettime(CLOCK_MONOTONIC, {53, 990583005}) = 0
select(6, [3 5], NULL, NULL, {3, 0}) = 0 (Timeout)
ただし、initrd イメージで使用されているのと同じ rootfs が SD カード ブートで使用されている場合、dhcp コマンドは失敗しません。
手がかりを教えてくれる人はいますか?
よろしく、
ヴィベク