LINUX.ORG.RU

Сообщения velikS

 

Включить log4cplus в свой проект

Всем Привет!

Ситуация примерно следующая: собирали наш проект к дефолтным log4cplus, но понадобилось кое-что добавить в код от log4cplus. Для этого просто добавили log4cplus в наши 3rd библиотеки и включили его через add_subdirectory(). Получили следующее: когда открываем cmake-gui, то видим наши options и кучу всего, что пришло с log4cplus, и что нам не надо видеть.

Вопрос понятен: есть ли простое решение для «проблемы»?

Всем спасибо,
С.

 

velikS
()

Странное поведение по access point

Всем привет!

Имею: embedded систему под которую собран Линукс с Buildroot и основные утилиты на busybox. Есть беспроводной модуль, на который надо настроить AccessPoint и сперва просто протестировать соединение с прибором по iperf3 (прибор будет iperf сервер).

Для начала всё на статических IP адресах. Лэптоп настроен на статический 192.168.50.20. Прибору прописал:

ifconfig uap0 192.168.50.1
hostapd -B /etc.hostapd.conf

В /etc.hostapd.conf:
interface=uap0
driver=nl80211
ssid=DevHotspot
channel=1
ctrl_interface=/var/run/hostapd
logger_syslog=-1
logger_syslog_level=0
logger_stdout=-1
logger_stdout_level=0

Запускаю, лэптоп видит DevHotspot, соединяется. На стороне прибора по
hostapd_cli status
hostapd_cli list

вижу, что лэптоп соединился. Пробую на лэптопе пропинговать прибор и получаю
velik@velik-X270 ~ % ping 192.168.50.1                                                                                                                                                                                                                                    
PING 192.168.50.1 (192.168.50.1) 56(84) bytes of data.
From 192.168.50.20 icmp_seq=1 Destination Host Unreachable
From 192.168.50.20 icmp_seq=2 Destination Host Unreachable

Оставляю активным пинг на лэптопе. Пробую пропинговать лэптоп с прибора. Пинг проходит без ошибок. И, как только проходит первый пинг от прибора, начинает работать пинг с лэптопа (!). И с этого момента соединение работает как часы.

Вот не понимаю, где я туплю и что делаю не так. Почему не работает соединение, пока не пройдёт первый пакет от прибора?

Заранее спасибо за любые советы,
velik

 , ,

velikS
()

Управлять WiFi connman из Qt

Всем Привет,

Имею примерно следующее: прибор в котором будет работать собранная на Buildroot Линукс система. В приборе есть Lan и WLan модуль. Также имеется Qt5.12 и connman. Для начала хотелось бы сделать что-то стандартное: просканировать какие WiFi точки видны, вывести качество сигнала (SignalStrength) и содиниться с ними по паролю.
Так вот, смотрю, что с connman можно общаться через DBus. Но не хочу изобретать велосипед. Нашёл в Qt QNetworkConfigurationManager, который, похоже, использует свой connman bearer плагин, но с ним могу только просканировать и найти точки доступа. И вот не найду, как можно подключиться к точке по паролю. Такое вообще возможно? Нашёл, что в Qt5.6 был QWiFiConfiguration, но его похоже убрали.

Заранее благодарен за любые советы,
Velik

 , ,

velikS
()

Оценка качества кода

Всем привет!

Интересно, чем вы пользуетесь для сабжа? Интересно оценить сложность среднего размера проекта (где-то 1,2Мб С++ кода). Первое, что в голову пришло: cppcheck просто как анализатор того, сколько накосячено; pmccabe для заценить сколько ветвлений в функциях. А чем посоветуете оценить взаимосвязи модулей? Ну и вообще subj )))

Всем заранее спасибо,
velik

 ,

velikS
()

перевод С файла в бинарный код. Нужны идеи ))

Всем привет,

Знаю, что название темы звучит несколько странно. Но что имею:
- XML файл, который с XSLT перевожу в С-Файл со значениями «запакованными» в структуру;
- Прибор, в котором надо перепрограммировать эту структуру со значениями;
- Заказчика, у которого нету нашего компилятора и программатора

Т.е. заказчик хочет что-то поменять в XML файле и перенести эти значения в прибор. Первое, что пришло в голову:
- Написать ещё один XSLT скрипт, который будет генерить питоновский скрипт со значениями из XML файла в текстовой форме. Потом запускается этот скрипт и генерится бинарный файл. Но для этого нужен питон на компе у заказчика
- дать заказчику пакет программ. В этом пакете будет компилятор, и несколько С файлов. Компилятор создаст программу с С-файлом со значениями. А наша С-программа будет писать этот бинарник. Всё бы хорошо, но нужен небольшой компилятор. Попробовал tcc. Он не компилирует мой С-файл. А MinGW больше 400МБ. С ним не пройдёт

Вот сижу, думаю, как такое ещё можно сделать.

Заранее благодарен за идеи.
Велик ))

 , , ,

velikS
()

Заменить пробелы в XML файле

Всем привет!

Прислали мне тут, типа, XML файл, который с XML на самом-то деле не совместим. Файл очень большой и примерно следующего содержания:

	<Mode Number>1</Mode Number>
	<Min Set Temp>200</Min Set Temp>
	<Max Set Temp>550</Max Set Temp>
	<Default Temp>350</Default Temp>


Понятно, что в XML файле нельзя использовать пробелы в именах.

Как можно просто заменить пробелы на «_» для имён XML узлов? Т.е. только внутри «<» и «>» чтоб получилось:

	<Mode_Number>1</Mode_Number>
	<Min_Set_Temp>200</Min_Set_Temp>
	<Max_Set_Temp>550</Max_Set_Temp>
	<Default_Temp>350</Default_Temp>


Всем заранее Спасибо,

 ,

velikS
()

XSD. Описать поле в пределах других полей

Всем привет!

ВОт пришлось впервые столкнуться с XSD. Надо создать схему проверки XML файла, для которого стоит следующее:
Min_Set_Temp [ Integer between 0 and 1000 ]
Max Set Temp [ Integer between 0 and 1000 ]
Default_Set_Temp [ Integer between Min Set Temp and Max Set Temp]

Вот не знаю как такое возможно в XSD. Пока имею следующий отрывок

<xs:simpleType name="tSetTemperature">
    <xs:restriction base="xs:unsignedShort">
        <xs:minInclusive value="0"/>
        <xs:maxInclusive value="1000"/>
    </xs:restriction>
</xs:simpleType>

<xs:element name="Bake">
  <xs:complexType>
    <xs:sequence>
        <xs:element name="MinSetTemp" type="tSetTemperature"/>
        <xs:element name="MaxSetTemp" type="tSetTemperature"/>

И КАК ТУТ ПРАВИЛЬНО ОПИСАТЬ DefaultTemperature?


    </xs:sequence>
  </xs:complexType>
</xs:element>



Есть ли у кого идеи, как быть?

Заранее благодарен,
velik

 

velikS
()

ГУЙ только одной программы

Всем привет,

Есть тут одна контора, которой надо написать программу на Qt. Одно из требований заказчика, чтоб было видно только нашу программу и нельзя было просто так переключиться на что-то другое. Думаю, что программа будет работать на Xubuntu. Т.е. на XFCE. Попробовал QMainWindow включить в FullScreen. Всё замечательно - видно только нашу программу, пока программа не показывает какое-нибудь Popup окно. Тогда автоматически появляется панель таск-менеджера. Можно ли как-то программно запретить это дело? И ещё вопрос: как просто отключить/включить обратно Shortcuts? Поскольку ещё одно требование: по умолчанию видно только нашу программу и нельзя запустить ничего другого, но можно ввести пароль и система должна работать как нормальная.

Всем спасибо за идеи,
С.

 , ,

velikS
()

Проверить две сетевые на одном компе

Всем привет!

Задачка примерно следующая: есть embedded приборчик на АРМ процессоре с двумя сетевыми. Надо проверить в производстве нормально ли работают сетевые. Соответственно для теста могу делать, что хочу. Первое, что пришло в голову, использовать ping. Но что-то я делаю не так. Может у кого есть идея?

Заранее спасибо,
velik


/ # ifconfig 
eth0      Link encap:Ethernet  HWaddr 74:E5:0B:0C:C9:E6  
          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::76e5:bff:fe0c:c9e6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:18 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:828 (828.0 B)  TX bytes:2826 (2.7 KiB)
          Interrupt:31 Base address:0xc000 

eth1      Link encap:Ethernet  HWaddr 74:E5:0B:0C:C9:E7  
          inet addr:192.168.1.12  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::76e5:bff:fe0c:c9e7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0
          TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2106 (2.0 KiB)  TX bytes:1612 (1.5 KiB)

/ # route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth1
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1
/ # ping -c 3 192.168.1.11 -I eth1
PING 192.168.1.11 (192.168.1.11): 56 data bytes

--- 192.168.1.11 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss

 

velikS
()

Подключить USB bluetooth модуль

Всем привет.

Чё-та туплю я к вечеру не па-децки. Имею следующее: получил сегодня Evaluation Kit BT чипа от Bluegiga. Вставил в раб. комп, тот сразу определил его на hci1. Всё работает зашибись. Вставил в наш прибор. Никакого hci сходу не нашёл, хотя видит его на lsusb как «Bus 001 Device 005: ID 0a12:0000» Вот теперь сижу, гуглю и туплю как его подключить. В приборе я собрал blueZ 5.27. Знаю, что БТ модули на UART подключаются через hciattach. А как с УСБ?

Заранее спасибо,
velik

 

velikS
()

Проблема с переездом на device tree

Всем привет,

Надо в одном встроенном устройстве на Atmel ARM процессоре переехать с 3.10 на новое ядро. Взял 3.19. И тут заподлец - ребята переехали в 3.19 на device tree. Ну ладно. Хочу скомпилировать ядро снячала просто для Evaluation Kit. Вызываю:

Kernel$ make -j4 ARCH=arm CROSS_COMPILE=/home/Developer/Toolchain/arm-toolchain/usr/bin/arm-linux- at91_dt_defconfig at91sam9m10g45ek.dtb

Получаю:

DTC arch/arm/boot/dts/at91sam9m10g45ek.dtb
In file included from arch/arm/boot/dts/at91sam9m10g45ek.dts:10:0:
arch/arm/boot/dts/at91sam9g45.dtsi:13:34: fatal error: dt-bindings/dma/at91.h: No such file or directory
compilation terminated.
make[2]: *** [arch/arm/boot/dts/at91sam9m10g45ek.dtb] Error 1

Это как понимать? Похоже этот DTC не находит заголовочные файлы, но не найду, как ему указать пути поиска? Или, может, я что-то совсем не догоняю?

Всем заранее спасибо, velik

 

velikS
()

Почистить активный лог. Как?

Всем привет!

Пользуюсь log4cplus. Есть ситуация, когда надо удалить все логи. Просто тупо удаляю лог-файлы и получаю следующую фишку: новые лог сообщения показываются в консоли,но лог файл не создаётся. Надо перегрузить прибор и тогда новые лог сообщения пишутся в файл. Уже замучался искать, откуда ноги растут. Может кто с подобным встречался и пнёт советом? Вот мой файл с настройками лога:

# specific loggers
log4cplus.logger.serviceLogger=TRACE, stdout_Service, file_Service
log4cplus.additivity.serviceLogger=false

# Service logger messages
log4cplus.appender.stdout_Service=log4cplus::ConsoleAppender
log4cplus.appender.stdout_Service.layout=log4cplus::PatternLayout
log4cplus.appender.stdout_Service.layout.ConversionPattern=%d{%H.%M.%S} %m%n

log4cplus.appender.file_Service=log4cplus::RollingFileAppender
log4cplus.appender.file_Service.File=/mnt/data/maintenance/service.log
log4cplus.appender.file_Service.MaxFileSize=100KB
log4cplus.appender.file_Service.MaxBackupIndex=1
log4cplus.appender.file_Service.layout=log4cplus::PatternLayout
log4cplus.appender.file_Service.layout.ConversionPattern=%d{%d.%m.%y %H.%M} %m%n

Заранее спасибо velik

 

velikS
()

Автоматическое установление соединения с BT мышкой

Всем привет!

Купил себе для Lenovo X220 bluetooth мышку.
Пользуюсь Kubuntu14.04.
Пользуюсь каким-то Kubuntu апплетом. Без проблем нашёл мышку, соединился, всё работает прекрасно. Но как только выключаю и заново включаю мышку, то приходится заново устанавливать соединение вручную. Есть ли возможность как-то определять и подключать её автоматически (как в Windows)? А то задалбывает ручное переподключение

Всем заранее Спасибо,
velik

velikS
()

Непонятки с 3.10

Всем привет.

Что-то странное наблюдаю с 3.9 и 3.10. Может кто тут подскажет, куда копать?

Имею следующее: платка на АРМ процессоре AT91SAM9G45, пока крутится на 3.8.13 без проблем. Захотелось попробовать свежее ядро. ещё есть у меня драйвер управления бипером (для акустического подтверждения того, что пользователь нажал кнопку на GUI) и в этом драйвере запрограммирован hr_timer. С этим таймером я запрограммировал длительность бипа. Т.е. бипер включается при приеме команды, таймер выставляется на длительность и в callback методе таймера бипер выключается. С 3.8 никаких проблем. Но с 3.9 или 3.10 мой таймер частенько может пищать вместо нескольких милисекунд примерно секунду (!!!)
Причем во время этого длинного пищания прибор вполне себе реагирует на нажатия тач скрина. Короче, фигня какая-то и не пойму откуда ноги растут.

Кто-то уже видел подобное?
Заранее спасибо за ответы,
velik

 , , , ,

velikS
()

Слетела система. Не пойму, как восстановить

Всем привет!

Что-то странное произошло. Выключил комп, включаю, он выдает:

error: file '/boot/vmlinuz-3.8.0-19-generic' not found error: you need to load the kernel first...

Хм. Загрузился с Live стика. Смотрю, что лежит в boot директории слетевшей системы. Там только ядро 3.8.0-21. Интересно, с какого перепуга взялось 3.8.0-19???

Ладно. Сделал что-то стандартное вроде:

 sudo mount /dev/sda6 /mnt 
 sudo mount -o bind /dev /mnt/dev
 sudo mount -o bind /sys /mnt/sys 
 sudo mount -t proc /proc /mnt/proc 
 sudo cp /proc/mounts /mnt/etc/mtab 
 sudo chroot /mnt /bin/bash
 grub-install /dev/sda
 update-grub 

Перегружаюсь, опять хочет 19. ЧЯДНТ? Система кубунта13.04

Всем спасибо,

velik

velikS
()

Вопрос по klogd: Как получить стартовые сообщения ядра

Всем привет,

У меня примерно следующая проблема: использую syslogd+klogd от busybox связку в embedded приборчике. Запускаю syslogd+klogd из инит-процесса. В лог файл попадают вещи, которые генерятся ядром уже после запуска клогд. А как получить в лог файл то, что происходило ДО запуска логеров, т.е. то, что выводится с dmesg?

Всем спасибо,
velikS

 klogd, ,

velikS
()

Как в миникоме сменить \r на \n или на \r\n?

Всем привет!

Совершенно примитивный вопрос, но не могу найти ответ в гугле :) Имею: соединение с прибором по RS232, передаю в него команды, набирая строку и нажимая ENTER. Так вот minicom передаёт '\r', а прибор «настроен» на строку с концом '\n'. Соответственно нифига не принимает. Подскажите плз, где поменять, чтоб он отсылал '\n' или «\r\n».

Спасибо,
velik

 

velikS
()

Ошибки при rebase. Как побороть?

Всем привет!

Склонировал я когда-то 3.3 ядро для использования в одном приборе. Потихоньку пришлось некоторые вещи подрихтовать для себя. Соответственно появились десятка два моих коммитов на 3.3 основе. Между делом появились 3.3.1 - 3.3.8. Я перенёс свои изменения на эти ядра с чем-то вроде «git fetch stable» + «git rebase 3.3.8». Всё работало на Ура. Вот сейчас хочу перенести свои коммиты на 3.7 ядро. При этом получаю ошибку mergА в файле, который никогда не трогал:

velik@work:/home/Developer/Work/trunk/Kernel$ git rebase v3.7
First, rewinding head to replay your work on top of it...
Applying: staging: android/lowmemorykiller: Don't unregister notifier from atomic context
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging drivers/staging/android/lowmemorykiller.c
CONFLICT (content): Merge conflict in drivers/staging/android/lowmemorykiller.c
Failed to merge in the changes.
Patch failed at 0001 staging: android/lowmemorykiller: Don't unregister notifier from atomic context

Такое ощущение, что гит отматывает не только мои коммиты на 3.3 ветке, а гораздо дальше... Кто-то с таким уже встречался? Как можно побороть? И немного другой вопрос, но из этой же темы: Есть ли возможность в git rebase указать, что я хочу перенести не все мои коммиты с 3.3 ветки на 3.7, а, допустим, только два последних?

Всем спасибо velik

 

velikS
()

Сделать ссылку на веб странице на webmin

Всем привет!

Есть весьма примитивный вопрос, на который не найду решения в гугле. Имею: примитивный сервер, на который поставил webmin. Webmin прекрасно отзывается на https://адрес-сервера:10000. На сервере запущен апач, с примитивной веб мордой примерно следующего содержания:

<p><a href="mediawiki">Wiki</a></p>
<p><a href="phpbb">Forum</a></p>
<p><a href="gitweb">Git repository</a></p>
<p><a href="developer">Browse developing state</a></p>

Т.е. со ссылками на установленные прибамбасы. Хочется сделать на этой же страничке ещё и ссылку на webmin. но когда добавляю следующую строку:

<p><a href="https://localhost:10000">Test</a></p>

то меня, естессно, перенаправляет не на webmin на сервере, а на webmin на рабочей машине. Подскажите: как сделать правильно?

Всем спасибо

 

velikS
()

регулярное выражение

Всем привет.

Что-то туплю я с поведением простого выражения. Надо: просто получить 4 символа в конце одного выражения. Что может быть проще? Но почему мне этот вариант:

echo "hello_world_release-0003-1-g8dc5266" |  sed -e 's/\(....\)$/\1/'

выдаёт hello_world_release-0003-1-g8dc5266 ? Вот такой вариант, например, работает без проблем:

velik@sve:/home/TMP/$ echo "hello_world_release-0003-1-g8dc5266" |  sed -e 's/.*\(....\)$/\1/'                                       
5266

Где я туплю? Разве \(....\)$ не означает, что не надо 4 символа с конца строки?

Всем спасибо, velik

 

velikS
()

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