Ошибка при копировании (!)
Модератор: SLEDopit
-
Zloydog
- Сообщения: 17
- ОС: Linux Debian
Ошибка при копировании
Ситуация такая — подключился со шлюза на котором стоит Debian к самбе с помощью Midnight Commander через Shell. Стал перекидывать архивы бекапов и Midnight Commander выдает ошибки «Не возможно сменить владельца целевого файла. Ошибка удаленного вводавывода 121» и потом вторая «Невозможно сменить режим доступа целевого файла»
Сходил до сервера воткнул флешку, примонтировал и все спокойно перекинул. Но хотелось бы разобраться в чем проблема данная.
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит…
- ОС: Slackware-current
- Контактная информация:
Re: Ошибка при копировании
Сообщение
drBatty » 12.11.2014 09:31
Zloydog писал(а): ↑
11.11.2014 17:32
Ситуация такая — подключился со шлюза на котором стоит Debian к самбе с помощью Midnight Commander через Shell. Стал перекидывать архивы бекапов
КУДА копировали?
Zloydog писал(а): ↑
11.11.2014 17:32
Но хотелось бы разобраться в чем проблема данная.
проблема в том, что какие-то атрибуты файлов в удалённой системе не поддерживаются.
Zloydog писал(а): ↑
11.11.2014 17:32
воткнул флешку
это с FAT, да? Так там никакие атрибуты не поддерживаются, только временной штамп, и то 32х битный. Вот вы их все успешно потеряли.
Hint: что-бы не потерять атрибуты(основные, такие как права доступа и владельца), используйте tar-архив для передачи, ну или rsync over ssh тоже хорошо работает.
-
Zloydog
- Сообщения: 17
- ОС: Linux Debian
Re: Ошибка при копировании
Сообщение
Zloydog » 12.11.2014 09:42
drBatty писал(а): ↑
12.11.2014 09:31
Zloydog писал(а): ↑
11.11.2014 17:32
Ситуация такая — подключился со шлюза на котором стоит Debian к самбе с помощью Midnight Commander через Shell. Стал перекидывать архивы бекапов
КУДА копировали?
Zloydog писал(а): ↑
11.11.2014 17:32
Но хотелось бы разобраться в чем проблема данная.
проблема в том, что какие-то атрибуты файлов в удалённой системе не поддерживаются.
Zloydog писал(а): ↑
11.11.2014 17:32
воткнул флешку
это с FAT, да? Так там никакие атрибуты не поддерживаются, только временной штамп, и то 32х битный. Вот вы их все успешно потеряли.
Hint: что-бы не потерять атрибуты(основные, такие как права доступа и владельца), используйте tar-архив для передачи, ну или rsync over ssh тоже хорошо работает.
Копировал с со шлюза (Debian) на Samba файлообменник (debian). Архив создал 1.tar.gz
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит…
- ОС: Slackware-current
- Контактная информация:
Re: Ошибка при копировании
Сообщение
drBatty » 12.11.2014 10:04
Zloydog
очень плохая идея копировать файлы удалённо от/в root-доступ. Это РЕШЕТО.
Так никто не делает, потому и не тестирует никто. А если вы копируете обычным пользователем, то владелец автоматически меняется на получателя. Причём AFAIK в mc всё вроде-бы менялось без ошибок.
Ваша проблема скорее всего в том, что пользователи разные, и mc почему-то хочет сменить владельца файла на отправителя, как оно на локальной системе.
А зачем вы используете именно SMB соединение, ведь оно предназначено лишь для Windows™ систем? Нельзя-ли использовать OpenSSH?
Ещё вопрос: надеюсь вы применяете «SMB соединение», а не «FiSH»?
-
Zloydog
- Сообщения: 17
- ОС: Linux Debian
Re: Ошибка при копировании
Сообщение
Zloydog » 12.11.2014 13:45
drBatty писал(а): ↑
12.11.2014 10:04
Zloydog
очень плохая идея копировать файлы удалённо от/в root-доступ. Это РЕШЕТО.Так никто не делает, потому и не тестирует никто. А если вы копируете обычным пользователем, то владелец автоматически меняется на получателя. Причём AFAIK в mc всё вроде-бы менялось без ошибок.
Ваша проблема скорее всего в том, что пользователи разные, и mc почему-то хочет сменить владельца файла на отправителя, как оно на локальной системе.
А зачем вы используете именно SMB соединение, ведь оно предназначено лишь для Windows™ систем? Нельзя-ли использовать OpenSSH?
Ещё вопрос: надеюсь вы применяете «SMB соединение», а не «FiSH»?
То есть перекидывать из под пользователя? Ну вообще я по SSH и так цепляюсь к серверам..Физически их нет рядом. да smb. Я пробовал менял у архива владельца и группу на те что на папку в которую скидваю тоже не хочет.. мне конечно не лень раз в неделю дойти до сервера подцепить флешку и бекап сделать, но хотелось бы автоматизировать все, чтобы он сам перекидывал бекапы на сервер самбы
-
Bizdelnick
- Модератор
- Сообщения: 20363
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Ошибка при копировании
Сообщение
Bizdelnick » 12.11.2014 14:30
Zloydog писал(а): ↑
12.11.2014 13:45
хотелось бы автоматизировать все, чтобы он сам перекидывал бекапы на сервер самбы
Ну не через mc же бекапы будут перекидываться? Обычным cp пробовали копировать?
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще |
в течение (часа) новичок нюанс по умолчанию |
приемлемо проблема пробовать трафик |
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит…
- ОС: Slackware-current
- Контактная информация:
Re: Ошибка при копировании
Сообщение
drBatty » 13.11.2014 16:20
Zloydog писал(а): ↑
12.11.2014 13:45
То есть перекидывать из под пользователя?
естественно. Для бекапов проще из под рута(хотя и опасно), НО: обязательно в простого пользователя. Этому удалённому пользователю можно назначить права write only, а также, как я их называю, «янтарные каталоги» сделать, это в ext4 атрибут append only, что-бы бекап нельзя было удалить с другой системы.
Zloydog писал(а): ↑
12.11.2014 13:45
Ну вообще я по SSH и так цепляюсь к серверам.
дык и смысл?
Zloydog писал(а): ↑
12.11.2014 13:45
но хотелось бы автоматизировать все, чтобы он сам перекидывал бекапы на сервер самбы
я не пойму: зачем вам вообще SMB и mc в данной задаче? Аж две лишних сущности.
-
Zloydog
- Сообщения: 17
- ОС: Linux Debian
Re: Ошибка при копировании
Сообщение
Zloydog » 14.11.2014 11:30
drBatty писал(а): ↑
13.11.2014 16:20
Zloydog писал(а): ↑
12.11.2014 13:45
То есть перекидывать из под пользователя?
естественно. Для бекапов проще из под рута(хотя и опасно), НО: обязательно в простого пользователя. Этому удалённому пользователю можно назначить права write only, а также, как я их называю, «янтарные каталоги» сделать, это в ext4 атрибут append only, что-бы бекап нельзя было удалить с другой системы.
Zloydog писал(а): ↑
12.11.2014 13:45
Ну вообще я по SSH и так цепляюсь к серверам.
дык и смысл?
Zloydog писал(а): ↑
12.11.2014 13:45
но хотелось бы автоматизировать все, чтобы он сам перекидывал бекапы на сервер самбы
я не пойму: зачем вам вообще SMB и mc в данной задаче? Аж две лишних сущности.
Так и пробовал кидать из под рута на пользователя..
В смысле смысл? А как еще цепляться то к серверам с винды в кабинете?) в кабинете винда стоит, а сервера в другом конце здания там Linux
Да вот решил МС попробовать чтобы удаленно скопировать, так то все время ножками до сервером и накопитель цепляю)
Или так попробовать, через «scp -r user@server1:/var/www/html/ /backup»?
-
Bizdelnick
- Модератор
- Сообщения: 20363
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Ошибка при копировании
Сообщение
Bizdelnick » 14.11.2014 12:05
Zloydog писал(а): ↑
14.11.2014 11:30
Или так попробовать, через «scp -r user@server1:/var/www/html/ /backup»?
Да хотя бы так. Хотя лучше, конечно, rsync, если всё время в одно и то же место копируете.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще |
в течение (часа) новичок нюанс по умолчанию |
приемлемо проблема пробовать трафик |
-
BigBrother
- Сообщения: 436
- Статус: ¯_(ツ)_/¯
- ОС: linux based
Re: Ошибка при копировании
Сообщение
BigBrother » 23.11.2014 23:47
Zloydog писал(а): ↑
11.11.2014 17:32
Ситуация такая — подключился со шлюза на котором стоит Debian к самбе с помощью Midnight Commander через Shell. Стал перекидывать архивы бекапов и Midnight Commander выдает ошибки «Не возможно сменить владельца целевого файла. Ошибка удаленного вводавывода 121» и потом вторая «Невозможно сменить режим доступа целевого файла»
У mc есть опция «сохранять атрибуты» при копировании, попробуйте ее убрать.
I am facing problems, that pyhton throws me on my raspberry pi 3 sometimes this IOError during starting a script which is requesting data from an Arduino over I2C.
Electrical connection is perfect so this is not the issues.
Furthermore I also dont get any errors while using i2cget -y 1 0x04
Only the python scripts sucks sometime and I dont know why.
This is my Arduino Code:
I register an onReceive and an onRequestEvent.
onReceive Callback will define what kind of data should be send back to the raspberry.
onRequest Callback does the response.
#include <CommonFunction.h>
#include <Wire.h>
#define I2C_ADDRESS 0x4
commonFunc GetCountsEverySecond;
int g_iOnRequestActionCode = 0;
unsigned long g_lSecondsSinceStart = 0;
void setup()
{
Wire.begin(I2C_ADDRESS);
Wire.onRequest(sendDataOverI2CGateway);
Wire.onReceive(defineOnRequestAction);
}
void loop()
{
tickSeconds();
}
void tickSeconds()
{
if (GetCountsEverySecond.TimeTriggerAt(1000))
{
g_lSecondsSinceStart++;
}
}
void sendOperationTimeDataOverI2C()
{
unsigned long longInt = g_lSecondsSinceStart;
byte size = sizeof(longInt);
byte arr[size];
for (int i = 0; i < size; i++)
{
int iBitShift = 8 * (size - i - 1);
if (iBitShift >= 8)
arr[i] = ((longInt >> iBitShift) & 0xFF);
else
arr[i] = (longInt & 0xFF);
}
Wire.write(arr, size);
g_bI2CSending = true;
}
void sendDataOverI2CGateway()
{
switch(g_iOnRequestActionCode)
{
case 0:
sendRainDataOverI2C();
break;
case 1: // send firmware version
sendVersionDataOverI2C();
break;
case 2: // send operation time of arduino in seconds from start
sendOperationTimeDataOverI2C();
break;
default: break;
}
}
void defineOnRequestAction(int iBuffer)
{
while (Wire.available())
{
g_iOnRequestActionCode = Wire.read();
}
}
Here is my python Code.
Pretty straight forward but it causes some headache.
import smbus
import time
bus = smbus.SMBus(1)
while True:
data = bus.read_i2c_block_data(0x04,0x02,4)
result = 0
for b in data:
result = result * 256 + int(b)
print(result)
time.sleep(1)
After executing my python script I am getting sometime this error:
pi@WeatherStation:~/workspace $ sudo python readTimeOperationData.py
Traceback (most recent call last):
File "readTimeOperationData.py", line 5, in <module>
data = bus.read_i2c_block_data(0x04,0x02,4)
IOError: [Errno 121] Remote I/O error
Can anyone help me to fix this issue?
Cheers Dieter
При копировании через Shell link соединение в Midnight Сommander с Debian на Ubuntu, появлялась ошибка: cannot chown target file remote i/o error 121.
Такая ошибка говорит о том, что MC (а может и не он) не может перенести права на файл, на удаленную систему. Для того чтобы все же удалось скопировать, необходимо в диалоге копирования MC убрать галочку с пункта: preserve Attributes
Автор: Виталий Орлов
| Рейтинг: 4/5 |
Теги: midnight commander
Перейти к контенту
Ошибка при копировании (!)
Модератор: SLEDopit
-
Zloydog
- Сообщения: 17
- ОС: Linux Debian
Ошибка при копировании
Ситуация такая — подключился со шлюза на котором стоит Debian к самбе с помощью Midnight Commander через Shell. Стал перекидывать архивы бекапов и Midnight Commander выдает ошибки «Не возможно сменить владельца целевого файла. Ошибка удаленного вводавывода 121» и потом вторая «Невозможно сменить режим доступа целевого файла»
Сходил до сервера воткнул флешку, примонтировал и все спокойно перекинул. Но хотелось бы разобраться в чем проблема данная.
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит…
- ОС: Slackware-current
- Контактная информация:
Re: Ошибка при копировании
Сообщение
drBatty » 12.11.2014 09:31
Zloydog писал(а): ↑
11.11.2014 17:32
Ситуация такая — подключился со шлюза на котором стоит Debian к самбе с помощью Midnight Commander через Shell. Стал перекидывать архивы бекапов
КУДА копировали?
Zloydog писал(а): ↑
11.11.2014 17:32
Но хотелось бы разобраться в чем проблема данная.
проблема в том, что какие-то атрибуты файлов в удалённой системе не поддерживаются.
Zloydog писал(а): ↑
11.11.2014 17:32
воткнул флешку
это с FAT, да? Так там никакие атрибуты не поддерживаются, только временной штамп, и то 32х битный. Вот вы их все успешно потеряли.
Hint: что-бы не потерять атрибуты(основные, такие как права доступа и владельца), используйте tar-архив для передачи, ну или rsync over ssh тоже хорошо работает.
-
Zloydog
- Сообщения: 17
- ОС: Linux Debian
Re: Ошибка при копировании
Сообщение
Zloydog » 12.11.2014 09:42
drBatty писал(а): ↑
12.11.2014 09:31
Zloydog писал(а): ↑
11.11.2014 17:32
Ситуация такая — подключился со шлюза на котором стоит Debian к самбе с помощью Midnight Commander через Shell. Стал перекидывать архивы бекапов
КУДА копировали?
Zloydog писал(а): ↑
11.11.2014 17:32
Но хотелось бы разобраться в чем проблема данная.
проблема в том, что какие-то атрибуты файлов в удалённой системе не поддерживаются.
Zloydog писал(а): ↑
11.11.2014 17:32
воткнул флешку
это с FAT, да? Так там никакие атрибуты не поддерживаются, только временной штамп, и то 32х битный. Вот вы их все успешно потеряли.
Hint: что-бы не потерять атрибуты(основные, такие как права доступа и владельца), используйте tar-архив для передачи, ну или rsync over ssh тоже хорошо работает.
Копировал с со шлюза (Debian) на Samba файлообменник (debian). Архив создал 1.tar.gz
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит…
- ОС: Slackware-current
- Контактная информация:
Re: Ошибка при копировании
Сообщение
drBatty » 12.11.2014 10:04
Zloydog
очень плохая идея копировать файлы удалённо от/в root-доступ. Это РЕШЕТО.
Так никто не делает, потому и не тестирует никто. А если вы копируете обычным пользователем, то владелец автоматически меняется на получателя. Причём AFAIK в mc всё вроде-бы менялось без ошибок.
Ваша проблема скорее всего в том, что пользователи разные, и mc почему-то хочет сменить владельца файла на отправителя, как оно на локальной системе.
А зачем вы используете именно SMB соединение, ведь оно предназначено лишь для Windows™ систем? Нельзя-ли использовать OpenSSH?
Ещё вопрос: надеюсь вы применяете «SMB соединение», а не «FiSH»?
-
Zloydog
- Сообщения: 17
- ОС: Linux Debian
Re: Ошибка при копировании
Сообщение
Zloydog » 12.11.2014 13:45
drBatty писал(а): ↑
12.11.2014 10:04
Zloydog
очень плохая идея копировать файлы удалённо от/в root-доступ. Это РЕШЕТО.Так никто не делает, потому и не тестирует никто. А если вы копируете обычным пользователем, то владелец автоматически меняется на получателя. Причём AFAIK в mc всё вроде-бы менялось без ошибок.
Ваша проблема скорее всего в том, что пользователи разные, и mc почему-то хочет сменить владельца файла на отправителя, как оно на локальной системе.
А зачем вы используете именно SMB соединение, ведь оно предназначено лишь для Windows™ систем? Нельзя-ли использовать OpenSSH?
Ещё вопрос: надеюсь вы применяете «SMB соединение», а не «FiSH»?
То есть перекидывать из под пользователя? Ну вообще я по SSH и так цепляюсь к серверам..Физически их нет рядом. да smb. Я пробовал менял у архива владельца и группу на те что на папку в которую скидваю тоже не хочет.. мне конечно не лень раз в неделю дойти до сервера подцепить флешку и бекап сделать, но хотелось бы автоматизировать все, чтобы он сам перекидывал бекапы на сервер самбы
-
Bizdelnick
- Модератор
- Сообщения: 19769
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Ошибка при копировании
Сообщение
Bizdelnick » 12.11.2014 14:30
Zloydog писал(а): ↑
12.11.2014 13:45
хотелось бы автоматизировать все, чтобы он сам перекидывал бекапы на сервер самбы
Ну не через mc же бекапы будут перекидываться? Обычным cp пробовали копировать?
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще |
в течение (часа) новичок нюанс по умолчанию |
приемлемо проблема пробовать трафик |
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит…
- ОС: Slackware-current
- Контактная информация:
Re: Ошибка при копировании
Сообщение
drBatty » 13.11.2014 16:20
Zloydog писал(а): ↑
12.11.2014 13:45
То есть перекидывать из под пользователя?
естественно. Для бекапов проще из под рута(хотя и опасно), НО: обязательно в простого пользователя. Этому удалённому пользователю можно назначить права write only, а также, как я их называю, «янтарные каталоги» сделать, это в ext4 атрибут append only, что-бы бекап нельзя было удалить с другой системы.
Zloydog писал(а): ↑
12.11.2014 13:45
Ну вообще я по SSH и так цепляюсь к серверам.
дык и смысл?
Zloydog писал(а): ↑
12.11.2014 13:45
но хотелось бы автоматизировать все, чтобы он сам перекидывал бекапы на сервер самбы
я не пойму: зачем вам вообще SMB и mc в данной задаче? Аж две лишних сущности.
-
Zloydog
- Сообщения: 17
- ОС: Linux Debian
Re: Ошибка при копировании
Сообщение
Zloydog » 14.11.2014 11:30
drBatty писал(а): ↑
13.11.2014 16:20
Zloydog писал(а): ↑
12.11.2014 13:45
То есть перекидывать из под пользователя?
естественно. Для бекапов проще из под рута(хотя и опасно), НО: обязательно в простого пользователя. Этому удалённому пользователю можно назначить права write only, а также, как я их называю, «янтарные каталоги» сделать, это в ext4 атрибут append only, что-бы бекап нельзя было удалить с другой системы.
Zloydog писал(а): ↑
12.11.2014 13:45
Ну вообще я по SSH и так цепляюсь к серверам.
дык и смысл?
Zloydog писал(а): ↑
12.11.2014 13:45
но хотелось бы автоматизировать все, чтобы он сам перекидывал бекапы на сервер самбы
я не пойму: зачем вам вообще SMB и mc в данной задаче? Аж две лишних сущности.
Так и пробовал кидать из под рута на пользователя..
В смысле смысл? А как еще цепляться то к серверам с винды в кабинете?) в кабинете винда стоит, а сервера в другом конце здания там Linux
Да вот решил МС попробовать чтобы удаленно скопировать, так то все время ножками до сервером и накопитель цепляю)
Или так попробовать, через «scp -r user@server1:/var/www/html/ /backup»?
-
Bizdelnick
- Модератор
- Сообщения: 19769
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Ошибка при копировании
Сообщение
Bizdelnick » 14.11.2014 12:05
Zloydog писал(а): ↑
14.11.2014 11:30
Или так попробовать, через «scp -r user@server1:/var/www/html/ /backup»?
Да хотя бы так. Хотя лучше, конечно, rsync, если всё время в одно и то же место копируете.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще |
в течение (часа) новичок нюанс по умолчанию |
приемлемо проблема пробовать трафик |
-
BigBrother
- Сообщения: 436
- Статус: ¯_(ツ)_/¯
- ОС: linux based
Re: Ошибка при копировании
Сообщение
BigBrother » 23.11.2014 23:47
Zloydog писал(а): ↑
11.11.2014 17:32
Ситуация такая — подключился со шлюза на котором стоит Debian к самбе с помощью Midnight Commander через Shell. Стал перекидывать архивы бекапов и Midnight Commander выдает ошибки «Не возможно сменить владельца целевого файла. Ошибка удаленного вводавывода 121» и потом вторая «Невозможно сменить режим доступа целевого файла»
У mc есть опция «сохранять атрибуты» при копировании, попробуйте ее убрать.
1 / 1 / 0 Регистрация: 16.10.2012 Сообщений: 37 |
|
1 |
|
Ошибка при копировании12.11.2014, 09:16. Показов 7295. Ответов 9
Ситуация такая — подключился со шлюза на котором стоит Debian к самбе с помощью Midnight Commander через Shell. Стал перекидывать архивы бекапов и Midnight Commander выдает ошибки «Не возможно сменить владельца целевого файла. Ошибка удаленного вводавывода 121» и потом вторая «Невозможно сменить режим доступа целевого файла» Сходил до сервера воткнул флешку, примонтировал и все спокойно перекинул. Но хотелось бы разобраться в чем проблема данная.
__________________ 0 |
12380 / 7220 / 757 Регистрация: 09.09.2009 Сообщений: 28,177 |
|
12.11.2014, 10:38 |
2 |
снять птицу «сохранять атрибуты» 0 |
1 / 1 / 0 Регистрация: 16.10.2012 Сообщений: 37 |
|
12.11.2014, 13:46 [ТС] |
3 |
Не вариант, пробовал, тогда он вообще не копирует. При снятой галке он не выдает ошибки но и не копирует.. то есть идет вид копирования, а в той папке пусто. 0 |
12380 / 7220 / 757 Регистрация: 09.09.2009 Сообщений: 28,177 |
|
12.11.2014, 15:34 |
4 |
как раз таки и вариант 0 |
1 / 1 / 0 Регистрация: 16.10.2012 Сообщений: 37 |
|
14.11.2014, 11:22 [ТС] |
5 |
При снятой галке не копирует, так же наблюдаю пустую папку куда копирую 0 |
Модератор 8386 / 3077 / 106 Регистрация: 24.05.2011 Сообщений: 14,223 Записей в блоге: 8 |
|
16.11.2014, 21:01 |
6 |
Zloydog, А права на целевую папку? 0 |
Заблокирован |
|
17.11.2014, 06:51 |
7 |
Хм. Ну как я и предполагал… Не освоил шелл, а уже побежал софт собирать или даже писать… 0 |
1 / 1 / 0 Регистрация: 16.10.2012 Сообщений: 37 |
|
17.11.2014, 09:07 [ТС] |
8 |
права полные давал,как только не пробовал 0 |
Заблокирован |
|
17.11.2014, 09:13 |
9 |
Ему не права надо, а owner’a менять. Такое может только рут в общем виде(в частных можно от себя дать кому-то, но у тебя с другой системы 99% не совпадают uid/gid). Отрубай сохранение прав и ownerов при копировании. 0 |
1 / 1 / 0 Регистрация: 16.10.2012 Сообщений: 37 |
|
17.11.2014, 09:21 [ТС] |
10 |
Не понял маленько 0 |
#python #raspberry-pi #gpio #i2c #smbus
Вопрос:
Я пытаюсь получить данные из i2c, но они отображаются с IOError: [Errno 121] Remote I/O error
помощью . Я бы знал, какая часть пошла не так и как это исправить.
import time
import smbus
import math
# define BMP388 Device I2C address
I2C_ADD_BMP388_AD0_LOW = 0x76
I2C_ADD_BMP388_AD0_HIGH = 0x77
I2C_ADD_BMP388 = I2C_ADD_BMP388_AD0_LOW
BMP388_REG_ADD_WIA = 0x00
BMP388_REG_VAL_WIA = 0x50
BMP388_REG_ADD_ERR = 0x02
BMP388_REG_VAL_FATAL_ERR = 0x01
BMP388_REG_VAL_CMD_ERR = 0x02
BMP388_REG_VAL_CONF_ERR = 0x04
BMP388_REG_ADD_STATUS = 0x03
BMP388_REG_VAL_CMD_RDY = 0x10
BMP388_REG_VAL_DRDY_PRESS = 0x20
BMP388_REG_VAL_DRDY_TEMP = 0x40
BMP388_REG_ADD_CMD = 0x7E
BMP388_REG_VAL_EXTMODE_EN = 0x34
BMP388_REG_VAL_FIFI_FLUSH = 0xB0
BMP388_REG_VAL_SOFT_RESET = 0xB6
BMP388_REG_ADD_PWR_CTRL = 0x1B
BMP388_REG_VAL_PRESS_EN = 0x01
BMP388_REG_VAL_TEMP_EN = 0x02
BMP388_REG_VAL_NORMAL_MODE = 0x30
BMP388_REG_ADD_PRESS_XLSB = 0x04
BMP388_REG_ADD_PRESS_LSB = 0x05
BMP388_REG_ADD_PRESS_MSB = 0x06
BMP388_REG_ADD_TEMP_XLSB = 0x07
BMP388_REG_ADD_TEMP_LSB = 0x08
BMP388_REG_ADD_TEMP_MSB = 0x09
BMP388_REG_ADD_T1_LSB = 0x31
BMP388_REG_ADD_T1_MSB = 0x32
BMP388_REG_ADD_T2_LSB = 0x33
BMP388_REG_ADD_T2_MSB = 0x34
BMP388_REG_ADD_T3 = 0x35
BMP388_REG_ADD_P1_LSB = 0x36
BMP388_REG_ADD_P1_MSB = 0x37
BMP388_REG_ADD_P2_LSB = 0x38
BMP388_REG_ADD_P2_MSB = 0x39
BMP388_REG_ADD_P3 = 0x3A
BMP388_REG_ADD_P4 = 0x3B
BMP388_REG_ADD_P5_LSB = 0x3C
BMP388_REG_ADD_P5_MSB = 0x3D
BMP388_REG_ADD_P6_LSB = 0x3E
BMP388_REG_ADD_P6_MSB = 0x3F
BMP388_REG_ADD_P7 = 0x40
BMP388_REG_ADD_P8 = 0x41
BMP388_REG_ADD_P9_LSB = 0x42
BMP388_REG_ADD_P9_MSB = 0x43
BMP388_REG_ADD_P10 = 0x44
BMP388_REG_ADD_P11 = 0x45
class BMP388(object):
"""docstring for BMP388"""
def __init__(self, address=I2C_ADD_BMP388):
self._address = address
self._bus = smbus.SMBus(1)
# Load calibration values.
if self._read_byte(BMP388_REG_ADD_WIA) == BMP388_REG_VAL_WIA:
print("Pressure sersor is BMP388!rn")
u8RegData = self._read_byte(BMP388_REG_ADD_STATUS)
if ( u8RegData amp; BMP388_REG_VAL_CMD_RDY ):
self._write_byte(BMP388_REG_ADD_CMD, BMP388_REG_VAL_SOFT_RESET)
time.sleep(0.01)
else:
print("Pressure sersor NULL!rn")
self._write_byte( BMP388_REG_ADD_PWR_CTRL,BMP388_REG_VAL_PRESS_EN | BMP388_REG_VAL_TEMP_EN | BMP388_REG_VAL_NORMAL_MODE)
self._load_calibration()
def _read_byte(self,cmd):
return self._bus.read_byte_data(self._address,cmd)
def _read_s8(self,cmd):
result = self._read_byte(cmd)
if result > 128:result -= 256
return result
def _read_u16(self,cmd):
LSB = self._bus.read_byte_data(self._address,cmd)
MSB = self._bus.read_byte_data(self._address,cmd 1)
return (MSB << 8) LSB
def _read_s16(self,cmd):
result = self._read_u16(cmd)
if result > 32767:result -= 65536
return result
def _write_byte(self,cmd,val):
self._bus.write_byte_data(self._address,cmd,val)
def _load_calibration(self):
print("_load_calibrationrn")
"load calibration"
""" read the temperature calibration parameters """
self.T1 =self._read_u16(BMP388_REG_ADD_T1_LSB)
self.T2 =self._read_u16(BMP388_REG_ADD_T2_LSB)
self.T3 =self._read_s8(BMP388_REG_ADD_T3)
""" read the pressure calibration parameters """
self.P1 =self._read_s16(BMP388_REG_ADD_P1_LSB)
self.P2 =self._read_s16(BMP388_REG_ADD_P2_LSB)
self.P3 =self._read_s8(BMP388_REG_ADD_P3)
self.P4 =self._read_s8(BMP388_REG_ADD_P4)
self.P5 =self._read_u16(BMP388_REG_ADD_P5_LSB)
self.P6 =self._read_u16(BMP388_REG_ADD_P6_LSB)
self.P7 =self._read_s8(BMP388_REG_ADD_P7)
self.P8 =self._read_s8(BMP388_REG_ADD_P8)
self.P9 =self._read_s16(BMP388_REG_ADD_P9_LSB)
self.P10 =self._read_s8(BMP388_REG_ADD_P10)
self.P11=self._read_s8(BMP388_REG_ADD_P11)
def compensate_temperature(self,adc_T):
partial_data1 = (adc_T - (256 * (self.T1)))
partial_data2 = (self.T2 * partial_data1)
partial_data3 = (partial_data1 * partial_data1)
partial_data4 = (( partial_data3) * ( self.T3))
partial_data5 = ( (( partial_data2) * 262144) partial_data4)
partial_data6 = (( partial_data5) / 4294967296)
self.T_fine = partial_data6
comp_temp = ((partial_data6 * 25) / 16384)
return comp_temp;
def compensate_pressure(self,adc_P):
partial_data1 = self.T_fine * self.T_fine
partial_data2 = partial_data1 / 64
partial_data3 = (partial_data2 * self.T_fine) / 256
partial_data4 = (self.P8 * partial_data3) / 32
partial_data5 = (self.P7 * partial_data1) * 16
partial_data6 = (self.P6 * self.T_fine) * 4194304;
offset = ( (self.P5) * 140737488355328) partial_data4 partial_data5 partial_data6
partial_data2 = (( self.P4) * partial_data3) / 32
partial_data4 = (self.P3 * partial_data1) * 4
partial_data5 = ( (self.P2) - 16384) * ( self.T_fine) * 2097152
sensitivity = (( (self.P1) - 16384) * 70368744177664) partial_data2 partial_data4 partial_data5
partial_data1 = (sensitivity / 16777216) * adc_P
partial_data2 = (self.P10) * (self.T_fine)
partial_data3 = partial_data2 (65536 * (self.P9))
partial_data4 = (partial_data3 * adc_P) / 8192
partial_data5 = (partial_data4 * adc_P) / 512
partial_data6 = ( adc_P * adc_P)
partial_data2 = ( (self.P11) * (partial_data6)) / 65536
partial_data3 = (partial_data2 * adc_P) / 128
partial_data4 = (offset / 4) partial_data1 partial_data5 partial_data3
comp_press = (( partial_data4 * 25) / 1099511627776)
return comp_press;
def get_temperature_and_pressure_and_altitude(self):
"""Returns pressure in Pa as double. Output value of "6386.2"equals 96386.2 Pa = 963.862 hPa."""
xlsb = self._read_byte(BMP388_REG_ADD_TEMP_XLSB)
lsb = self._read_byte(BMP388_REG_ADD_TEMP_LSB)
msb = self._read_byte(BMP388_REG_ADD_TEMP_MSB)
adc_T = (msb << 16) (lsb << 8) (xlsb)
temperature = self.compensate_temperature(adc_T)
xlsb = self._read_byte(BMP388_REG_ADD_PRESS_XLSB)
lsb = self._read_byte(BMP388_REG_ADD_PRESS_LSB)
msb = self._read_byte(BMP388_REG_ADD_PRESS_MSB)
adc_P = (msb << 16) (lsb << 8) (xlsb)
pressure = self.compensate_pressure(adc_P)
altitude = 4433000 * (1 - pow(((pressure/100.0) / 101325.0), 0.1903))
return temperature,pressure,altitude
if __name__ == '__main__':
import time
print(" Test start ...n")
bmp388 = BMP388()
try:
while True:
time.sleep(0.5)
temperature,pressure,altitude = bmp388.get_temperature_and_pressure_and_altitude()
print(' Temperature = %.1f Pressure = %.2f Altitude =%.2f '%(temperature/100.0,pressure/100.0,altitude/100.0))
except IOError as e:
print("IO error detected")
print(e)
except KeyboardInterrupt:
print("End of program")
print("ctrl c:")
exit()
Вот полная трассировка ошибок:
python test.py
Test start ...
Traceback (most recent call last):
File "test.py", line 193, in <module>
bmp388 = BMP388()
File "test.py", line 68, in __init__
if self._read_byte(BMP388_REG_ADD_WIA) == BMP388_REG_VAL_WIA:
File "test.py", line 80, in _read_byte
return self._bus.read_byte_data(self._address,cmd)
IOError: [Errno 121] Remote I/O error
Комментарии:
1. Эта ошибка-всего лишь общая ошибка связи. Обычно это означает «нет ответа от устройства». Правильно ли настроена ваша шина I2C? Правильный ли адрес? Что
i2cdetect
сообщает?
Ответ №1:
Для любого, кто узнает об этом. Я смог все исправить IOError: [Errno 121] Remote I/O error
. Я использовал i2cdetect -y 1
, и он показывал устройство, но оно продолжало попадать [Errno 121]
. Я перешел от использования макета к непосредственному подключению устройства. Что — то с подключением через макет испортило сигнал.
1 / 1 / 0 Регистрация: 16.10.2012 Сообщений: 37 |
|
1 |
|
Ошибка при копировании12.11.2014, 09:16. Показов 8256. Ответов 9
Ситуация такая — подключился со шлюза на котором стоит Debian к самбе с помощью Midnight Commander через Shell. Стал перекидывать архивы бекапов и Midnight Commander выдает ошибки «Не возможно сменить владельца целевого файла. Ошибка удаленного вводавывода 121» и потом вторая «Невозможно сменить режим доступа целевого файла» Сходил до сервера воткнул флешку, примонтировал и все спокойно перекинул. Но хотелось бы разобраться в чем проблема данная.
0 |
12712 / 7281 / 772 Регистрация: 09.09.2009 Сообщений: 28,438 |
|
12.11.2014, 10:38 |
2 |
снять птицу «сохранять атрибуты»
0 |
1 / 1 / 0 Регистрация: 16.10.2012 Сообщений: 37 |
|
12.11.2014, 13:46 [ТС] |
3 |
Не вариант, пробовал, тогда он вообще не копирует. При снятой галке он не выдает ошибки но и не копирует.. то есть идет вид копирования, а в той папке пусто.
0 |
12712 / 7281 / 772 Регистрация: 09.09.2009 Сообщений: 28,438 |
|
12.11.2014, 15:34 |
4 |
как раз таки и вариант
0 |
1 / 1 / 0 Регистрация: 16.10.2012 Сообщений: 37 |
|
14.11.2014, 11:22 [ТС] |
5 |
При снятой галке не копирует, так же наблюдаю пустую папку куда копирую
0 |
Модератор 8391 / 3145 / 106 Регистрация: 24.05.2011 Сообщений: 14,306 Записей в блоге: 8 |
|
16.11.2014, 21:01 |
6 |
Zloydog, А права на целевую папку?
0 |
Заблокирован |
|
17.11.2014, 06:51 |
7 |
Хм. Ну как я и предполагал… Не освоил шелл, а уже побежал софт собирать или даже писать…
0 |
1 / 1 / 0 Регистрация: 16.10.2012 Сообщений: 37 |
|
17.11.2014, 09:07 [ТС] |
8 |
права полные давал,как только не пробовал
0 |
Заблокирован |
|
17.11.2014, 09:13 |
9 |
Ему не права надо, а owner’a менять. Такое может только рут в общем виде(в частных можно от себя дать кому-то, но у тебя с другой системы 99% не совпадают uid/gid). Отрубай сохранение прав и ownerов при копировании.
0 |
1 / 1 / 0 Регистрация: 16.10.2012 Сообщений: 37 |
|
17.11.2014, 09:21 [ТС] |
10 |
Не понял маленько
0 |