LINUX.ORG.RU

Сообщения ants

 

Qt проблема с потоками

Добрый день Столкнулся с проблемой. В конструкторе формы написал строки:

thread = new QThread();
m_core=new CTelegramCore();
m_core->moveToThread(thread);
worker->moveToThread(thread);
Класс CTelegramCore находится в библиотеке, которая подключена к проекту. Пишет следующее:
QObject::moveToThread: Current thread (0xad3ec0) is not the object's thread (0x9e0770).
Cannot move to target thread (0x9e6b78)
Если написать так:
m_core=new CTelegramCore(this);
То выдаст:
QObject: Cannot create children for a parent that is in a different thread.
Первый раз с таким столкнулся. Загуглить решение не смог. У людей есть подобные ошибки, но вызванные неверной структурой программы. Здесь я не понимаю, почему так. Будто создаю объект и он сразу в другом потоке оказывается. Может библиотека подключенная работает в другом потоке, но почему? Спасибо.

 ,

ants
()

Два подключения к интернету одновременно

Задача: создать два подключения к интернету через 3g модемы. Они должны работать одновременно. Мне нужно часть приложений пускать через один модем, а часть через другой. Вроде, я научился подключаться двумя модемами. Через network-manager:

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 04:7d:7b:9a:10:60 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether c0:18:85:9e:bc:47 brd ff:ff:ff:ff:ff:ff
4: wwan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether e6:0e:cf:57:14:a3 brd ff:ff:ff:ff:ff:ff
inet 100.67.83.200/28 brd 100.67.83.207 scope global dynamic wwan0
valid_lft 6947sec preferred_lft 6947sec
inet6 fe80::e40e:cfff:fe57:14a3/64 scope link
valid_lft forever preferred_lft forever
5: wwan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 7a:cf:4a:90:11:2b brd ff:ff:ff:ff:ff:ff
inet 10.189.2.153/30 brd 10.189.2.155 scope global dynamic wwan1
valid_lft 6943sec preferred_lft 6943sec
inet6 fe80::78cf:4aff:fe90:112b/64 scope link
valid_lft forever preferred_lft forever
Либо можно его отключить: /etc/init.d/network-manager stop И подключиться с помощью wvdial:
# wvdial megafon
--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","internet"
AT+CGDCONT=1,"IP","internet"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT 14400000
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Thu Nov 24 21:17:58 2016
--> Pid of pppd: 2091
--> Using interface ppp1
--> pppd: u x [04]
--> X [04]
--> pppd: u x [04]
--> X [04]
--> pppd: u x [04]
--> X [04]
--> pppd: u x [04]
--> X [04]
--> pppd: u x [04]
--> X [04]
--> pppd: u x [04]
--> X [04]
--> local IP address 10.216.24.70
--> pppd: u x [04]
--> X [04]
--> remote IP address 10.64.64.65
--> pppd: u x [04]
--> X [04]
--> primary DNS address 10.77.48.33
--> pppd: u x [04]
--> X [04]
--> secondary DNS address 10.77.48.49
--> pppd: u x [04]
--> X [04]
В другом окне:
# wvdial beeline
--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","internet.beeline.ru"
AT+CGDCONT=1,"IP","internet.beeline.ru"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT 14400000
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Thu Nov 24 21:17:31 2016
--> Pid of pppd: 2054
--> Using interface ppp0
--> pppd: s x [08]X [08]
--> pppd: s x [08]X [08]
--> pppd: s x [08]X [08]
--> pppd: s x [08]X [08]
--> pppd: s x [08]X [08]
--> local IP address 100.96.233.63
--> pppd: s x [08]X [08]
--> remote IP address 10.64.64.64
--> pppd: s x [08]X [08]
--> primary DNS address 10.10.32.14
--> pppd: s x [08]X [08]
--> secondary DNS address 217.118.66.244
--> pppd: s x [08]X [08]
При этом:
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 04:7d:7b:9a:10:60 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether c0:18:85:9e:bc:47 brd ff:ff:ff:ff:ff:ff
4: wwan0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether e6:0e:cf:57:14:a3 brd ff:ff:ff:ff:ff:ff
5: wwan1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 7a:cf:4a:90:11:2b brd ff:ff:ff:ff:ff:ff
6: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 3
link/ppp
inet 100.96.233.63 peer 10.64.64.64/32 scope global ppp0
valid_lft forever preferred_lft forever
8: ppp1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 3
link/ppp
inet 10.184.131.118 peer 10.64.64.65/32 scope global ppp1
valid_lft forever preferred_lft forever
Казалось бы, всё хорошо. Но работает только одно подключение. Маршрутизирую с помощью 3proxy: proxy -n -a -p2001 -i127.0.0.1 -e172.21.9.253 proxy -n -a -p2002 -i127.0.0.1 -e100.103.145.18 Где после -e пишу ip адрес, полученный при подключении. Затем через этот прокси пытаюсь работать. Так вот одно подключение работает, а второе нет. По отдельности оба модема работают. Ещё я в resolv.conf прописываю гугловские прокси. В логах проксика ошибка 13 - сбой подключения connect(), когда пытаюсь через нерабочий интерфейс подключиться. Подскажите, в чём может быть проблема в одновременной работе? В каком направлении копать? Нагуглить пока не получилось, но поиски продолжаю. А ещё может кто-то знает способ маршрутизации получше, чем прокси, для данной задачи? Спасибо.

 ,

ants
()

ограничение на количество адресов ifconfig

Добрый день.

Есть сервер на Ubuntu-14.04-amd64. Необходимо поднять на нём много прокси (использую 3proxy). После того, как количество адресов, добавляемых для интерфейса, переваливает за 300 (даже если прокси-сервер все их не использует), прокси перестают работать все сразу.

Адреса добавляю вот так: ifconfig tun6to4 inet6 add 2001:470:c842:69d:798a:3d1d:307d:bbef/48

299 адресов - работают. 301 - не работают.

Начал искать, думал, нужно изменить ограничение на количество сокетов, но не помогло (пользовался http://forum.ubuntu.ru/index.php?topic=81465.0).

Поиск в переменных sysctl: Код

# sysctl --all | grep 300 kernel.keys.gc_delay = 300 net.core.netdev_budget = 300 net.ipv4.neigh.default.base_reachable_time_ms = 30000 net.ipv4.neigh.eth0.base_reachable_time_ms = 30000 net.ipv4.neigh.lo.base_reachable_time_ms = 30000 net.ipv4.neigh.sit0.base_reachable_time_ms = 30000 net.ipv4.neigh.tun6to4.base_reachable_time_ms = 30000 net.ipv4.route.gc_timeout = 300 net.ipv6.neigh.default.base_reachable_time_ms = 30000 net.ipv6.neigh.lo.base_reachable_time_ms = 30000 net.ipv6.neigh.sit0.base_reachable_time_ms = 30000 net.ipv6.neigh.tun6to4.base_reachable_time_ms = 30000 vm.dirty_expire_centisecs = 3000

Вроде, ничего подходящего.

Подскажите, пожалуйста, с чем может быть связано, как исправить это ограничение?

 ,

ants
()

восстановление раздела на диске

Здравствуйте! Произошла катастрофа: вместо того, чтобы отформатировать флешку, я форматнул жёсткий диск с информацией. Жёсткий диск на 500 гб, на нём был один раздел ext 4, который форматнули в ntfs. После формата ничего на диск не записывал. Интересует как можно восстановить раздел. Именно раздел целиком, а не информацию. Если есть утилита, то какая лучше? А вообще знаю, что можно hex редактором править таблицу разделов, только никогда этого не делал... Подскажите, пожалуйста, как восстановить раздел.

ants
()

графика с core i3

Здравствуйте! В процессоре intel core i3 есть графическое ядро Clarkdale Integrated Graphics Controller Этот проц должен реализовывать графику круче, чем мой предыдущий radeon 9600 Но какие драйвера надо установить, где их взять? что нужно сделать, чтобы полностью использовать возможности? У меня не работает ничего... Графические эффекты не включаются, openGL не работает, поэтому cairo dock не прозрачный, у амарока всплывающие сообщения должны быть получпрозрачными. Вобщем получается всё как то кастрировано. А хотелось бы ещё и в игрушки поиграть... Что надо поставить, чтобы всё заработало?

ants
()

Помогите исправить и оптимизировать скрипт

Здравствуйте!
Есть почти скрипт, он должен обрабатывать каждую строку из файла по отдельности, в моём случае это email адреса:

#!/bin/bash
#выдёргиваем адреса из адресной книги
grep -E -o -h "[a-zA-Z0123456789=_-]+@([a-zA-Z0123456789=_-]+\.)+[a-zA-Z0123456789=_-]{2,3}" ~/.kde4/share/apps/kabc/std.vcf | uniq | cat -n | expand > abc
#цикл поочереди дожен выдёргивать строки из сделанного файла
i=1 #первая строка имеет номер 1
until [ "$i" -eq 5 ] #всего у нас 4 адреса
do
#выдёргиваем первую строку и выводим её в файл
grep -E -o -h $i+' '+'[a-zA-Z0123456789=_-]+@([a-zA-Z0123456789=_-]+\.)+[a-zA-Z0123456789=_-]{2,3} ' abc | grep -E -o -h '[a-zA-Z0123456789=_-]+@([a-zA-Z0123456789=_-]+\.)+[a-zA-Z0123456789=_-]{2,3}' > abctmp
#отображаем выдернутую строку
cat abctmp
#
#сюда я вставлю потом скрипт отправки сообщения на выдернутый адрес из первой строки
#
#переходим на вторую строку
let "i += 1"
done
#удаляем результат жизнедеятельности
rm -f abctmp
rm -f abc
exit

Я хотел бы, чтобы когда в цикле выдёргивается строка с адресом, она помещалась в переменную, а не в файл.
Может кто-нибудь сможет упростить код или предложить альтернативу некоторым сложным конструкциям?

ants
()

bash скрипт, копирующий данные на съёмный диск

здравствуйте! помогите пожалуйста, требуется написать bash скрипт, копирующий данные на съёмный диск. Проблема в том, что он сам должен обнаруживать съёмный диск и копировать информацию автоматически. у меня был вариант с бесконечным циклом, который постоянно проверяет - не подключено ли устройство, но как полностью это реализовать не знаю.

ants
()

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