LINUX.ORG.RU

Сообщения arhiv_6

 

Игнорируется routing table при отправке arp запросов

Форум — Admin

Добрый день. Сеть настроена следующим образом: два физических порта eth0 и eth1. На eth0 настроены два vlan (vlanid 2 и 3), трафик без vlan-ов на нём не нужен. + есть мост между eth1 и одним из vlan-ов.

      port eth1               bridge br0             vlan eth0.2
     ip 0.0.0.0      ----  ip 192.168.1.103   ----    ip 0.0.0.0       ----  
mac 0a:81:c7:64:2c:8b    mac 0a:81:c7:64:2c:8b    mac 0a:81:c7:64:2c:8b   |         port eth0 
                                                                          |----    ip 0.0.0.0     
                                                      vlan eth0.3         |     mac d2:37:d1:13:3c:42
                                                   ip 100.255.255.0    ----
                                                 mac d2:37:d1:13:3c:42   

В системе видится так:

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.103  netmask 255.255.255.0  broadcast 192.168.1.255
        ether 0a:81:c7:64:2c:8b  txqueuelen 1000  (Ethernet)

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether d2:37:d1:13:3c:42  txqueuelen 1000  (Ethernet)

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 0a:81:c7:64:2c:8b  txqueuelen 1000  (Ethernet)

eth0.2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 0a:81:c7:64:2c:8b  txqueuelen 1000  (Ethernet)

eth0.3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 100.255.255.2  netmask 255.255.255.0  broadcast 0.0.0.0
        ether d2:37:d1:13:3c:42  txqueuelen 1000  (Ethernet)

и соответствующая этим настройкам routing table:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br0
100.255.255.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0.3

При выполнении ping 192.168.1.1 я ожидаю, что система обратится к routing table, там увидит что для этой подсети указан интерфейс br0. В этот интерфейс отправится широковещательный arp запрос «who has 192.168.1.0 ?». И если я буду смотреть wireshark-ом снаружи трафик с порта eth0, я должен увидеть, что этот запрос выйдет с VLAN_tag_id=2 и dst=0a:81:c7:64:2c:8b. Но вылетает пакет без тега vlan и dst=d2:37:d1:13:3c:42. Как будто пакет был отправлен не в br0, а в eth0, которого в routing вообще нет. Чтобы убедиться в этом, пробую сделать arpping, явно указав интерфейс.

arping 192.168.1.1 -I br0

Так всё работает - вылетает пакет с VLAN_tag_id=2 и dst=0a:81:c7:64:2c:8b. Вопрос - почему система игнорирует routing table и посылает arp пакеты не в br0 а в eth0 когда я делаю обычный пинг? Как изменить это поведение?

 , , ,

arhiv_6
()

Получить текущий статус flock() из модуля ядра

Форум — Development

Мне необходимо в модуле ядра определять, заблокирован или нет сейчас файл с помощью flock() . Пока в голову пришло только получить указатель на struct file_lock * из struct file *, но как это сделать?

ssize_t my_driver_write (struct file *filp, const char __user *data, size_t size, loff_t *pos) 
{    
    struct file_lock *fl = НУЖНАЯ_МНЕ_ФУНКЦИЯ(filp);
    if (fl->fl_type == F_UNLCK) { /* ура, файл разблокирован */ }
    return my_driver_write_deeper(data, size);
}

 ,

arhiv_6
()

Определить неисправность диска (или не диска)

Форум — General

Добрый день. Был диск с ext4 разделом, которому уже с десяток лет. Использовался в основном для торрент-хранилища фильмов (торрент клиет - Transmission). Несколько месяцев назад начал замечать, что некоторые файлы из этого хранилища воспроизводятся с артефактами. Запустил в торрент-клиенте проверку фалов - почти все вместо 100% загрузки показали 40...90%. И новый любой файл скачиваешь до 100%, после этого проверяешь данные - он опять помечается недокаченым. Ок, диск старый, похоже сыпется.

Купил новый диск, новый SATA кабель к нему, подключил в новый SATA порт на материнке. Создал ext4 раздел, примонтировал вместо старого диска. Скачал на этот диск несколько фильмов - и точно так же после проверки - файлы недокачены. Пробовал другие торрент-клиенты (Deluge, qBittorent) - то же самое поведение.

Вопрос - что вообще происходит? В какую сторону копать? Это ошибки железа, ОС, программ или ещё чего-то?

dmesg выдаёт ошибки:

[ 1114.841198] EXT4-fs error: 83 callbacks suppressed
[ 1114.841201] EXT4-fs error (device sdc1): ext4_find_extent:909: inode #59769118: comm deluge-gtk: pblk 239108379 bad header/extent: extent tree corrupted - magic f30a, entries 12, max 340(340), depth 0(0)
...
[ 1115.616785] EXT4-fs error (device sdc1): ext4_find_extent:909: inode #59769118: comm deluge-gtk: pblk 239108379 bad header/extent: extent tree corrupted - magic f30a, entries 12, max 340(340), depth 0(0)
[ 1123.538533] EXT4-fs error: 44 callbacks suppressed
[ 1130.214713] EXT4-fs error (device sdc1): ext4_dx_find_entry:1508: inode #59768833: block 3: comm deluge-gtk: Directory block failed checksum
...
[ 1131.310058] EXT4-fs error (device sdc1): ext4_dx_find_entry:1508: inode #59768833: block 3: comm deluge-gtk: Directory block failed checksum
[ 4446.965616] EXT4-fs error: 32 callbacks suppressed
[ 4446.965618] EXT4-fs error (device sdc1): ext4_dx_find_entry:1508: inode #59768833: block 3: comm transmission-gt: Directory block failed checksum
...
[ 4447.647422] EXT4-fs error (device sdc1): ext4_dx_find_entry:1508: inode #59768833: block 3: comm transmission-gt: Directory block failed checksum

 ,

arhiv_6
()

Драйвер cp210x.c - управление GPIO из userspace

Форум — Linux-hardware

День добрый. В ядре есть драйвер cp210x.c в котором есть функции для работы с gpio (начинаются с cp210x_gpio_). Они нужны для для управления gpio-выходами преобразователей USB-to-UART, в моём случае это CP2102N. Судя по тому, что в файл дефайнится <linux/gpio/driver.h>, должен быть какой-то стандартный способ. Но при подключении CP2102N новый gpiochip в /sys/class/gpio/ не появляется, новомодный uapi - то же самое, устройство gpiochip в /dev/ не появляется. Утилиты lsgpio/gpiodetect/gpioinfo видят только 2 устройства, относящиеся к материнской плате. Система - десктопная Ubuntu, ядро 4.15, CONFIG_GPIOLIB включен. Вопрос - а как до этих функций достучаться из userspace, чтобы поуправлять gpio?

 ,

arhiv_6
()

NI-VISA на Ubuntu 16.04

Форум — Development

Добрый день. Есть ли у кого-нибудь опыт запуска библиотеки NI-VISA на Ubuntu 16.04? Делал всё по самой актуальной инструкции, но застопорился на

# /etc/init.d/nipal start
modprobe: ERROR: could not insert 'nipalk': Unknown symbol in module, or unknown parameter (see dmesg)
error: nipalk failed to load
possible causes:
   nipalk was not versioned for this kernel (4.4.0-36-generic)
   modules are not enabled for this kernel (CONFIG_MODULES)
   unresolved symbols
possible solution:
   if you recently installed a new kernel or have rebooted to
   a different kernel from one you were previously running then run
   /usr/local/bin/updateNIDrivers
   to version your NI drivers for kernel 4.4.0-36-generic
В dmesg:
[101.942519] nikal: Unknown symbol pgprot_writecombine (err 0)

updateNIDrivers выполняется без ошибок. Или может быть есть альтернативная реализация библиотеки для для взаимодействия с измерительными приборами по USB по протоколу VISA (Virtual Instrument Software Architecture)? Из известных мне знаю только LibreVISA, но она давно заброшена и глючная.

 

arhiv_6
()

Makefile - исходный код в одной директории, результаты сборки - в другой.

Форум — Development

Здравствуйте. Написал простенький Makefile. При его вызове все исходники из директории ./src собираются в файл ./bin/firmware.elf. Сейчас объектные файлы остаются в директории ./src. Что поправить, чтобы объектные файлы компилировались в ./bin ? Сейчас:

$ tree
.
├── bin
│   └── firmware.elf
├── Makefile
└── src
    ├── blink.c
    ├── blink.h
    ├── blink.o
    ├── main.c
    └── main.o
Хочу:
$ tree
.
├── bin
│   ├── firmware.elf
│   ├── blink.o
│   └── main.o
├── Makefile
└── src
    ├── blink.c
    ├── blink.h
    └── main.с
Makefile
TARGET	= firmware.elf
DEVICE  = msp430f5529

SRC_DIR = ./src
BIN_DIR = ./bin

# Каталог компилятора
GCC_DIR = ~/ti/gcc/bin
# Путь до компилятора и утилит
CC = $(GCC_DIR)/msp430-elf-gcc
SIZE = $(GCC_DIR)/msp430-elf-size
# Путь до программатора
MSPDEBUG = /usr/local/bin/mspdebug
# Путь до системных заголовочных файлов
SUPPORT_FILE_DIR = ~/ti/gcc/include

# Ключи компилятора
CFLAGS = -I $(SUPPORT_FILE_DIR) -mmcu=$(DEVICE) -O2 -g -fdata-sections -ffunction-sections -Wall -std=gnu99
# Ключи линкера
LFLAGS = -L $(SUPPORT_FILE_DIR) -T $(DEVICE).ld -Wl,-gc-sections

###############################################################################
.PHONY: clean

# Получаем списоки файлов
SRCS = $(wildcard $(SRC_DIR)/*.c)
OBJS 	= $(SRCS:.c=.o)

all: $(TARGET)
	$(SIZE) $(BIN_DIR)/$(TARGET)
	

$(TARGET): $(OBJS)
	$(CC) $(CFLAGS) $(LFLAGS) -o $(BIN_DIR)/$(TARGET) $(OBJS) 
 
.c.o:
	$(CC) $(CFLAGS) -c $< -o $@

clean:
	rm -rf $(BIN_DIR)/$(TARGET) $(OBJS) 

program: all
	$(MSPDEBUG) tilib "prog $(BIN_DIR)/$(TARGET) reset"

 

arhiv_6
()

geany - настройки проекта

Форум — Development

Добрый день. При настройке проекта в Geany необходимо указать путь к каталогу проекта. При том указывается абсолютный путь. А как-то можно указать относительный путь (относительно фала с настройками проекта .geany)?

 

arhiv_6
()

Пропали файлы с флешки

Форум — General

Добрый день. Есть флешка «Silicon Power Blaze B10 16GB USB3.0». На флешке один раздел в ext4. Всегда работала без нареканий, а сегодня подключил - а она пустая, как будто все файлы удалили. Но при этом свободно 2,5Gb, как будто данные есть, но их просто «не видно». Что можно попытаться сделать? Заранее спасибо за ответы!

 , ,

arhiv_6
()

Сделать на Sourceforge кнопку Download ссылкой на git

Форум — General

Завел на Sourceforge проект. Добавил файл, кнопка Download на странице проекта позволяет скачать этот файл. Потом я добавил к проекту git репозиторий, а файл удалил. Кнопка Download стала ссылкой на git, но после обновления страницы, она опять стала ссылкой на файл, которого уже нет. Как мне опять сделать эту кнопку ссылкой на репозиторий git? Не могу найти настройки этой кнопки...

 sourcegorge

arhiv_6
()

Rsync по ssh не работает

Форум — General

Добрый день. Настроил между двумя компьютерами работу по SSH без парол (как тут расписано). Проверил работает:

$ ssh remote_user@remote_ip
заходит без требования пароля,
$ scp local_file remote_user@remote_ip:remote_dir
без проблем копирует, Но вот rsync уже не работает:
$ rsync -vvvrc local_file remote_user@remote_ip:remote_dir --exclude */tmp/ --ignore-errors --stats --progress

[client] add_rule(- */tmp/)
Unexpected remote arg: remote_user@remote_ip:remote_dir
rsync error: syntax or usage error (code 1) at main.c(1232) [sender=3.0.9]
[sender] _exit_cleanup(code=1, file=main.c, line=1232): about to call exit(1)
Почему он не работает?

 , ,

arhiv_6
()

Изменить fps .flv файла без перекодировкания

Форум — General

Существует замечательная программа для организации видеонаблюдения Motion у которой есть один известный, но пока не исправленный баг - при сохранении записи в формате .flv неправильно устанавливается fps - вместо желаемых 12 стоит 1000, в итоге часовая запись воспроизводится очень быстро за 50 секунд. Одно из решений - сохранять в формате .avi и потом пережать с помощью ffmpeg в .flv, но по мне это как-то криво... Вопрос - как поменять фпс (время между кадрами) в .flv файле желательно без перекодировки (чтобы не грузить процессор и не ухудшать качество записи)?

 , ,

arhiv_6
()

Русская версия gEDA PCB?

Форум — General

Добрый день! У меня есть вопрос по gEDA (а именно по редактору PCB): где взять русскую версию? В офф. wiki и в нескольких статьях об этом пакете я видел скриншоты полностью переведённого интерфейса. У меня в ubuntu 12.10 интерфейс переведён частично - некоторые элементы переведены, но всё меню на английском. Вам не попадалась переведённая версия этого пакета? Где его найти? Заранее спасибо!

 , ,

arhiv_6
()

RSS подписка на новые темы