tftpput в подводной лодке: ошибка: 'Нарушение прав доступа' (2)

Наконец успех:

Я нашел, что платой USB Torobot можно было общаться с последовательный драйвер Ардуино. Удобно это доступно через opkg:

opkg install kernel-module-cdc-acm

Когда плата включается, она подходит как

/dev/ttyACM0 

Отсюда можно просто повторить команды к устройству.

echo "#8P1500T100" > /dev/ttyACM0

Это в основном говорит "сервомотор набора 8 положению 1500 со скоростью 100"

2
03.07.2014, 00:14
3 ответа
[

] Как справедливо заметил "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[][
] Я могу послать файл на хост-компьютер.[

].
1
27.01.2020, 22:06

Правка: Я только что заметил, что ваш адрес сохранения и размер 0.

Я не пробовал tftpput на u-boot. Из справки по команде видно, что адрес и размер должны быть заданы командной строкой. Я бы попробовал. Я не знаю, где находится оперативная память на вашей платформе, поэтому не могу привести корректный пример командной строки, но он должен выглядеть как:

tftpput 80000000 10

---- Старый ответ, все равно может быть полезен, если вышеизложенное не помогает

На моем месте я бы запустил wireshark на tftp сервере, чтобы посмотреть, что происходит.

Если вы не можете этого сделать, вы можете использовать концентратор (не коммутатор) на устройстве и подключить pc к тому же самому концентратору, чтобы запустить wireshark. (В наши дни хабы трудно найти. Если у вас нет такого хаба из "старых времен", это, вероятно, не сработает для вас.)

Вы не упоминаете, какой tftp сервер вы используете. Он основан на Linux? Часто используются dnsmasq и tftpd-hpa. Я использовал оба с u-boot.

Одна из возможностей - что-то не так с согласованием опций.

Также возможно, что Ethernet драйвер для ваших устройств подходит для маленьких пакетов, но не работает для больших пакетов. (Однако, я думаю, что большинство tftp передач заканчиваются согласованием 512 байт полезной нагрузки, так что пакеты на самом деле не такие большие)

.
2
27.01.2020, 22:06

Краткий ответ: Добавьте чтение прав доступа к файлу в папке tftpboot

Подробный ответ:

У меня была такая же проблема.

К некоторым файлам был осуществлен доступ, поэтому tftp определенно работал.

Мне пришлось добавить доступ на чтение к файлам, которые вызывали проблему, и это было исправлено

0
27.01.2020, 22:06

Теги

Похожие вопросы