Наконец успех:
Я нашел, что платой USB Torobot можно было общаться с последовательный драйвер Ардуино. Удобно это доступно через opkg:
opkg install kernel-module-cdc-acm
Когда плата включается, она подходит как
/dev/ttyACM0
Отсюда можно просто повторить команды к устройству.
echo "#8P1500T100" > /dev/ttyACM0
Это в основном говорит "сервомотор набора 8 положению 1500 со скоростью 100"
] Как справедливо заметил "wmill" в своем ответе, большинство tftp-серверов будут записывать в файл только в том случае, если он существует. В моем случае это была та же самая проблема. tftpput из u-boot работает нормально. Я установил tftpd-hpa и настроил его следующим образом, чтобы создать файл. отредактируйте /etc/default/tftpd-hpa следующим образом,[
] [# /etc/default/tftpd-hpa
TFTP_USERNAME="root"
TFTP_DIRECTORY="/home/ankur/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-c --secure"
]
[]А затем настройка tftp в /etc/xinet.d/tftp должна быть следующей,[
] [service tftp
{
protocol = udp port = 69
socket_type = dgram
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -c -s /home/ankur/tftpboot
disable = no
}
]
[]Конфигурация выше, когда я запускал команду[
]
[]tftpput 0x80200000 0x500000 192.168.1.3:uImage[
][
]
Я могу послать файл на хост-компьютер.[
Правка: Я только что заметил, что ваш адрес сохранения и размер 0.
Я не пробовал tftpput на u-boot. Из справки по команде видно, что адрес и размер должны быть заданы командной строкой. Я бы попробовал. Я не знаю, где находится оперативная память на вашей платформе, поэтому не могу привести корректный пример командной строки, но он должен выглядеть как:
tftpput 80000000 10
---- Старый ответ, все равно может быть полезен, если вышеизложенное не помогает
На моем месте я бы запустил wireshark на tftp сервере, чтобы посмотреть, что происходит.
Если вы не можете этого сделать, вы можете использовать концентратор (не коммутатор) на устройстве и подключить pc к тому же самому концентратору, чтобы запустить wireshark. (В наши дни хабы трудно найти. Если у вас нет такого хаба из "старых времен", это, вероятно, не сработает для вас.)
Вы не упоминаете, какой tftp сервер вы используете. Он основан на Linux? Часто используются dnsmasq и tftpd-hpa. Я использовал оба с u-boot.
Одна из возможностей - что-то не так с согласованием опций.
Также возможно, что Ethernet драйвер для ваших устройств подходит для маленьких пакетов, но не работает для больших пакетов. (Однако, я думаю, что большинство tftp передач заканчиваются согласованием 512 байт полезной нагрузки, так что пакеты на самом деле не такие большие)
.Краткий ответ: Добавьте чтение прав доступа к файлу в папке tftpboot
Подробный ответ:
У меня была такая же проблема.
К некоторым файлам был осуществлен доступ, поэтому tftp определенно работал.
Мне пришлось добавить доступ на чтение к файлам, которые вызывали проблему, и это было исправлено