cp
не имеет опции --files-from
(по крайней мере, GNU cp
не имеет ), но rsync
имеет:
rsync --files-from abc.txt -av / Folder/
/
используется, если ваш файл test.txt
содержит файлы с абсолютными путями. В противном случае это должен быть корень источника.
Если ваши файлы завершаются нулем -, а не символом новой строки -, вы должны включить опцию --from0
.
На случай, если кто-то найдет этот вопрос, как это сделал я, пытаясь заставить SC16IS752 работать с I2C на RPi, краткий ответ:
sc16is7xx.c
не содержит кода, вызывающего uart_get_rs485_mode()
, как описано вserial_core.c
и присутствует в нескольких других последовательных драйверах; rs485-rts-active-low
было добавлено только в ядра RPi 5.3 и более поздних версий (см. этот коммит). Чтобы решить первую проблему, я внес несколько небольших изменений в драйвер sc16is7xx.c
, см. этот коммит .Функция uart_get_rs485_mode()
берет соответствующие свойства из дерева устройств и записывает struct serial_rs485
, то же самое, что используется для TIOCSRS485
ioctl. Изменения не подвергались регрессионному тестированию, но в настоящее время они надежно работают на моем макетном интерфейсе SC16IS752.
Этот коммит основан на ядре 5.4, поэтому поддерживает свойство rs485-rts-active-low
и поэтому хорошо работает с моими линейными драйверами MAX3072.
Вот часть моего файла оверлея:
fragment@1 {
target = <&i2c_arm>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
sc16is752: sc16is752@48 {
compatible = "nxp,sc16is752";
reg = <0x48>; /* i2c address */
clocks = <&sc16is752_clk>;
interrupt-parent = <&gpio>;
interrupts = <18 2>; /* IRQ_TYPE_EDGE_FALLING */
gpio-controller;
#gpio-cells = <2>;
i2c-max-frequency = <400000>;
linux,rs485-enabled-at-boot-time;
rs485-rts-active-low;
};
};
};
А вот изображение прицела, показывающее, как он работает:
Для ссылок :D8=SCL
, D9=SDA
, D10=_IRQ
, D11=TXD
, D12=_RTS
, D13=RXD
, Analog1=one RS485 line
,Analog2=RXD
(аналогично D13 ). Ответ на команду поступает от удаленного устройства ModBus. Обратите внимание, что _RTS
имеет высокий уровень (3,3 В )во время передачи, так как имеет место двойное отрицание.