LINUX.ORG.RU

Сообщения amaora

 

Куда бы перейти с дженты

Форум — Talks

Что-то надоело разгребать вывод emerge, читать багзиллу, мержить конфиги, конфигурить ядро. Часто бывает надо что-то срочно сделать а уменя тут mw, жди когда оно скомпиляется на атоме то.

Куда лучше пойти? пока смотрю на Ubuntu 13.10 и stable Debian. На дженте использую по возможности стабильные версии, чему это будет соотвествовать?

У меня /home на reiresfs наверно со времен 10-й или 9-й слаки, пора поменять? на ext4? или что?

По поводу Ubuntu, два сомнения. Плохая стабильность, о ней пишут везде, действительно ли хуже gentoo? Предустановленное spyware, всякая web-online срамота, но его же можно просто удалить через пакетменегер?

По Debian, старьевщина, а мне нужны свежие версии gcc и cross gcc.

 ,

amaora
()

Быстрее чем luakit

Форум — Desktop

Стал замечать как luakit останавливается на время рендеринга/парсинга или даже загрузки страницы. В этот момент уже открытые страницы нельзя даже прокрутить пониже.

Попытался посмотреть на chromium, компилялся всю ночь, в итоге вижу как он лезет на сервера гугла без особых причин. Отключить похоже никак нельзя, все, что можно уже попробовал отключить. Тестить на скорость желаение пропало.

Что есть ещё попробовать? Мелкие и недоделанные не надо, проприетарщину не надо.

Спасибо.

 , ,

amaora
()

Как переключать контекст в pthread

Форум — Development

В небольшой самописной rtos для МК выделяю HAL и пытаюсь запускать её поверх pthread. Для отладки, даже не самой rtos а кода в ней работающего.

Исходная идея была такая. При создании задачи в rtos происходит инициализация стека, в этом месте ставим hal вызов. В нем создается thread и его id записывается на стек. Планировщик вместо сохранения/восстановления контекста берет id и делает suspend/resume. Исходно все thread должны быть созданы в остановленном состоянии.

Но вот начал реализовывать, а suspend/resume то и нет. Похоже только как-то через сигналы можно это сделать, да?

Как создавать thread в остановленном состоянии? делать обертку над start_routine?

 ,

amaora
()

Периодически отключается

Форум — General

Проявляется только при слабом сигнале, держится от нескольких секунд до нескольких минут.

wlan0     IEEE 802.11bgn  ESSID:"DIR-615"  
          Mode:Managed  Frequency:2.417 GHz  Access Point: AC:F1:DF:29:42:4E   
          Bit Rate=6 Mb/s   Tx-Power=19 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=30/70  Signal level=-80 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:21   Missed beacon:0
Aug 23 19:32:25 fakemoon dhcpcd[5581]: wlan0: carrier lost
Aug 23 19:32:25 fakemoon kernel: brcmsmac bcma0:0: brcmsmac: brcms_ops_bss_info_changed: disassociated
Aug 23 19:32:25 fakemoon kernel: brcmsmac bcma0:0: brcms_ops_bss_info_changed: arp filtering: enabled false, count 1 (implement)
Aug 23 19:32:25 fakemoon kernel: brcmsmac bcma0:0: brcms_ops_bss_info_changed: qos enabled: false (implement)
Aug 23 19:32:25 fakemoon kernel: cfg80211: Calling CRDA to update world regulatory domain
Aug 23 19:32:25 fakemoon kernel: cfg80211: World regulatory domain updated:
Aug 23 19:32:25 fakemoon kernel: cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Aug 23 19:32:25 fakemoon kernel: cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Aug 23 19:32:25 fakemoon kernel: cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Aug 23 19:32:25 fakemoon kernel: cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
Aug 23 19:32:25 fakemoon kernel: cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Aug 23 19:32:25 fakemoon kernel: cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Aug 23 19:32:26 fakemoon nscd: 5834 cannot stat() file `/var/db/passwd.db': No such file or directory
Aug 23 19:32:26 fakemoon nscd: 5834 cannot stat() file `/var/db/group.db': No such file or directory
Aug 23 19:32:26 fakemoon kernel: wlan0: authenticate with ac:f1:df:29:42:4e
Aug 23 19:32:26 fakemoon kernel: wlan0: send auth to ac:f1:df:29:42:4e (try 1/3)
Aug 23 19:32:26 fakemoon kernel: wlan0: authenticated
Aug 23 19:32:26 fakemoon kernel: wlan0: associate with ac:f1:df:29:42:4e (try 1/3)
Aug 23 19:32:26 fakemoon kernel: wlan0: RX AssocResp from ac:f1:df:29:42:4e (capab=0x411 status=0 aid=1)
Aug 23 19:32:26 fakemoon kernel: brcmsmac bcma0:0: brcmsmac: brcms_ops_bss_info_changed: associated
Aug 23 19:32:26 fakemoon kernel: brcmsmac bcma0:0: brcms_ops_bss_info_changed: arp filtering: enabled true, count 0 (implement)
Aug 23 19:32:26 fakemoon kernel: brcmsmac bcma0:0: brcms_ops_bss_info_changed: qos enabled: true (implement)
Aug 23 19:32:26 fakemoon kernel: wlan0: associated
Aug 23 19:32:26 fakemoon dhcpcd[5581]: wlan0: carrier acquired
Aug 23 19:32:27 fakemoon dhcpcd[5581]: wlan0: sending IPv6 Router Solicitation
Aug 23 19:32:27 fakemoon dhcpcd[5581]: wlan0: rebinding lease of 192.168.1.3
Aug 23 19:32:30 fakemoon dhcpcd[5889]: sending signal 1 to pid 5581
Aug 23 19:32:30 fakemoon dhcpcd[5889]: waiting for pid 5581 to exit
Aug 23 19:32:30 fakemoon dhcpcd[5581]: received SIGHUP, releasing
Aug 23 19:32:30 fakemoon dhcpcd[5581]: wlan0: removing interface
Aug 23 19:32:31 fakemoon kernel: wlan0: deauthenticating from ac:f1:df:29:42:4e by local choice (reason=3)
Aug 23 19:32:31 fakemoon kernel: brcmsmac bcma0:0: brcmsmac: brcms_ops_bss_info_changed: disassociated
Aug 23 19:32:31 fakemoon kernel: brcmsmac bcma0:0: brcms_ops_bss_info_changed: arp filtering: enabled false, count 0 (implement)
Aug 23 19:32:31 fakemoon kernel: brcmsmac bcma0:0: brcms_ops_bss_info_changed: qos enabled: false (implement)
Aug 23 19:32:31 fakemoon kernel: cfg80211: Calling CRDA to update world regulatory domain
Aug 23 19:32:31 fakemoon kernel: cfg80211: World regulatory domain updated:
Aug 23 19:32:31 fakemoon kernel: cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Aug 23 19:32:31 fakemoon kernel: cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Aug 23 19:32:31 fakemoon kernel: cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Aug 23 19:32:31 fakemoon kernel: cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
Aug 23 19:32:31 fakemoon kernel: cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Aug 23 19:32:31 fakemoon kernel: cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Aug 23 19:32:31 fakemoon kernel: brcmsmac bcma0:0: brcms_ops_bss_info_changed: qos enabled: false (implement)
Aug 23 19:32:31 fakemoon kernel: brcmsmac bcma0:0: brcms_ops_config: change power-save mode: false (implement)
Aug 23 19:32:31 fakemoon kernel: IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
Aug 23 19:32:31 fakemoon dhcpcd[5933]: dhcpcd not running
Aug 23 19:32:31 fakemoon kernel: atl1c 0000:01:00.0: irq 46 for MSI/MSI-X
Aug 23 19:32:31 fakemoon kernel: IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
Aug 23 19:32:35 fakemoon kernel: brcmsmac bcma0:0: brcms_ops_bss_info_changed: qos enabled: false (implement)
Aug 23 19:32:35 fakemoon kernel: brcmsmac bcma0:0: brcms_ops_config: change power-save mode: false (implement)
Aug 23 19:32:35 fakemoon kernel: IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready

Но оно же работает, что мешает не дергать dhcp и не терять IP адрес? Что можно сделать?

 

amaora
()

Средства сборки на замену make

Форум — Development

Главный критерий выбора, инструмент должен быть простым. То есть я не хочу связываться с cmake/autotools и подобными, проверка внешних зависимостей мне не нужна.

Собираю обычно мелкие проектики на C, и уже устал постоянно допиливать Makefile. Хочеться результат сборки положить в отдельную директорию, не так просто заставить make это делать. Разложить исходники по разным директориям, снова make сопротивляется. Ещё какие-то более мелкие проблемы (пересборка с новыми CFLAGS например).

Хотя подозреваю, что никакой подходящей замены не существует.

Добавка: впомнил про mk (p9port) и нашел aap, посмотрю.

 

amaora
()

Самостарт сетового интрефейса

Форум — General

При подключении android устройсва через usb-хвост появляется интерфейс usb0. Поднятие и запуск dhcpcd работает,

# /etc/init.d/net.usb0 start

но хочется, чтобы оно стартовало само при появлении usb0. Какие есть правильные способы это сделать?

Если это важно, eudev.

 ,

amaora
()

Зачем тэги храняться в .hgtags?

Форум — Development

1. Дополнительные коммиты засоряют историю.

2. Если сделать update на ревизию где нет какого либо тега или самого файла .hgtags то список тегов все же доступен, странно, какой смысл в коммитах тогда? Хотя если было бы иначе, то тоже было бы странно.

3. Не проверял, но возникают вопросы, что будет при слиянии веток с разными .hgtags?

 

amaora
()

Файлопередача

Форум — General

Сеть через bt не поднялась, может хотябы файлы предам.

$ hcitool scan
Scanning ...
        2C:26:C5:DB:68:2A       ZTE V880E
$ obexftp -b 2C:26:C5:DB:68:2A -v -p .xinitrc 
Browsing 2C:26:C5:DB:68:2A ...
Connecting...failed: connect
Tried to connect for 2ms
error on connect(): Invalid argument
Still trying to connect
Connecting...failed: connect
Tried to connect for 3ms
error on connect(): Invalid argument
Still trying to connect
Connecting...failed: connect
Tried to connect for 3ms
error on connect(): Invalid argument
Still trying to connect

В обратную сторону не понятно. что надо делать.

$ obexftpd -b 
Waiting for connection...

Оно вот так молча висит а отправка файла с удаленной стороны фэйлится.

 ,

amaora
()

Сеть через BT

Форум — General

В новых версиях bluez пропал демон pand который упоминается во всех howto. Сходил на их страницу и даже не обнаружил документации. По манам пока смог только включить сервис (sdptool add nap), вторая сторона это обнаруживает. Как поднять сетевой интерфейс неясно. И кроме того, много вопростов возникает после джентушного wiki. Конфигурация там производиться как-то странно (в частности pairing), где-то в /var какие-то похоже генерируемые файлы правятся.

Где чего почитать?

 ,

amaora
()

Инструкции по выпиливанию

Форум — Mobile

Думаю я не первый кто это хочет сделать. Чего есть почитать о том как запретить ведроиду взаимодействовать с серверами гугла без разрешения?

Спасибо.

 ,

amaora
()

Чем ещё можно работать с патчами

Форум — General

Попробовал shelve из tortoisehg. А что есть ещё для перекидывания изменений между разными (временными) патчами и предстоящим коммитом?

На mq уже смотрю, но что-то пока не очень ясно.

Да и можно не привязываться к конкретной vcs, ведь от нее надо только уметь делать diff.

Спасибо.

 ,

amaora
()

Один файл в двух репозиториях

Форум — Development

Был набор исходников, без VCS. Возникла необходимость перенести часть кода (один файл) в упрощенное окружение для тестов. Сделал новый набор исходников. Сам файл был несколько модифицирован.

Теперь исходники под контролем mercurial, тестовые исходники тоже, в отдельном репозитории. Но hg не застал момента разветвления, нигде в истории этого нет.

Сценарий 1: В тестовой «ветке» фикситься баг, надо перенести в отсновную. Как? Файлы то разные, и присутствует некоторый набор изменений который туда тащить не надо.

Сценарий 2: В основной «векте» делаются изменения, надо тестить в тестовом окружении.

Мне правильно кажется, что я что-то делаю не так?

 ,

amaora
()

Передача параметров

Форум — General

Сейчас такой скрипт.

#!/usr/bin/gnuplot -p

set terminal x11
set grid

N = "`tee`"

if (N == 1) {

	set xlabel 'Time (Sec)'
	set ylabel 'Position (Degree)'
	plot	'OUT1' using 1:4 title 'Plant' with lines, \
		'OUT1' using 1:9 title 'Measured' with lines, \
		'OUT1' using 1:10 title 'Reference' with lines
}

if (N == 2) {

	set xlabel 'Position (Degree)'
	set ylabel 'Speed (Degree/Sec)'
	plot	'OUT1' using 4:3 title 'Plant' with lines, \
		'OUT1' using 4:8 title 'Measured' with lines
}

pause mouse close

Набирать каждый раз номер,return,^d не хорошо, помню что для таких дел было что-то более подходящее, но не помню что. Можно и через параметры было бы передать, но как не понятно.

 

amaora
()

Все сломалось

Форум — General

Обновлялся вчера с 171-r9 до eudev, т.к. почитал eselect news про переход на 19x версии. Однако после рестарта процесс запуска застрял говоря что-то про CONFIG_DEVTMPFS=y который у меня не включен. Запустился с live-flash вернулся на 171-r10 (r9 уже не было), странно, но ничего не поменялось. Достал бэкап, кое как вернул все на место (на самом деле куча проблем, видимо из-за того, что я не удалил файлы новых версий udev).

В сообщениях было ещё писано про libudev.so.0 и про то, что X.org теперь отвалится, я только не понял, что же с этим делать?

Да, и revdep-rebuild я делать не забывал.

Где почитать, куда надо обновляться?

Спасибо.

 , ,

amaora
()

Возврат нескольких значений из функции

Форум — Development

В некторых функциях иногда возникает необходимость вернуть несколько значений. Какие для этого есть красивые способы? Я знаю следующие,

1. Самое простое, через глобальные переменные, некрасиво. 2. Запись по преданному адресу, толсто и медлительно. 3. Возврат длинного слова (в регистрах) составленного из нескольких значений. Есть варианты через битовые сдвиги или union. Красивый макрос написать не получается, то то (typeof не работает, expected specifier-qualifier-list before ‘typeof’), то се (начинается использование стека при взятии адреса, хотя мне надо только тип сменить без последствий). Да и ещё в месте вызова надо это слово парсить на куски. Но все же это пока лучший из известных мне вариантов.

Язык C, компилятор avr-gcc.

	x = s2i(s);

	ri = (s16_t) (x & 0xFFFF);
	s = (const char *) (u16_t) (x >> 16);

 

amaora
()

Темна темница

Галерея — Рабочие места

Но все видно.

>>> Просмотр (1824x1368, 196 Kb)

amaora
()

Какие есть новые игры с софтверной растеризацией?

Форум — Games

Чтобы как в q1 квадраты на текстурах и 256 цветов. Без использования OpenGL. Но только не псевдо 3д клоны doom.

 ,

amaora
()

Как надо перемещать группу модулей?

Форум — General

Пытался выделять рамкой, скрывать верхний слой (пады, дороги, отдельно), чтобы переместить группу модулей на нижнем слое (зеленый, там sot23-5 и резисторы вокруг него). Но ничего не помогает, всегда цепляется ещё и несколько модулей с верхнего слоя.

До - http://ompldr.org/vZnBuOA После - http://ompldr.org/vZnBuaQ

 ,

amaora
()

Как нормально сконфигурить?

Форум — General

Сейчас чтобы начать печатать, делаю сдледующие действия.

Sep 15 20:42:02 fakemoon kernel: usb 1-1: new high-speed USB device number 7 using ehci_hcd
Sep 15 20:42:02 fakemoon kernel: usb 1-1: New USB device found, idVendor=03f0, idProduct=4117
Sep 15 20:42:02 fakemoon kernel: usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Sep 15 20:42:02 fakemoon kernel: usb 1-1: Product: HP LaserJet 1018
Sep 15 20:42:02 fakemoon kernel: usb 1-1: Manufacturer: Hewlett-Packard
Sep 15 20:42:02 fakemoon kernel: usb 1-1: SerialNumber: KP3CB8W

# modprobe usblp

Sep 15 20:42:56 fakemoon kernel: usb 1-1: new high-speed USB device number 8 using ehci_hcd
Sep 15 20:42:56 fakemoon kernel: usb 1-1: New USB device found, idVendor=03f0, idProduct=4117
Sep 15 20:42:56 fakemoon kernel: usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Sep 15 20:42:56 fakemoon kernel: usb 1-1: Product: HP LaserJet 1018
Sep 15 20:42:56 fakemoon kernel: usb 1-1: Manufacturer: Hewlett-Packard
Sep 15 20:42:56 fakemoon kernel: usb 1-1: SerialNumber: KP3CB8W
Sep 15 20:42:56 fakemoon kernel: usblp0: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117

# modprobe -r usblp
# echo /sbin/hotplug > /proc/sys/kernel/hotplug

Sep 15 20:43:43 fakemoon kernel: usb 1-1: new high-speed USB device number 9 using ehci_hcd
Sep 15 20:43:43 fakemoon kernel: usb 1-1: New USB device found, idVendor=03f0, idProduct=4117
Sep 15 20:43:43 fakemoon kernel: usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Sep 15 20:43:43 fakemoon kernel: usb 1-1: Product: HP LaserJet 1018
Sep 15 20:43:43 fakemoon kernel: usb 1-1: Manufacturer: Hewlett-Packard
Sep 15 20:43:43 fakemoon kernel: usb 1-1: SerialNumber: KP3CB8W

# modprobe usblp

Sep 15 20:44:19 fakemoon kernel: usb 1-1: new high-speed USB device number 10 using ehci_hcd
Sep 15 20:44:19 fakemoon kernel: usb 1-1: New USB device found, idVendor=03f0, idProduct=4117
Sep 15 20:44:19 fakemoon kernel: usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Sep 15 20:44:19 fakemoon kernel: usb 1-1: Product: HP LaserJet 1018
Sep 15 20:44:19 fakemoon kernel: usb 1-1: Manufacturer: Hewlett-Packard
Sep 15 20:44:19 fakemoon kernel: usb 1-1: SerialNumber: KP3CB8W
Sep 15 20:44:19 fakemoon kernel: usblp0: USB Bidirectional printer dev 10 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
Sep 15 20:44:19 fakemoon /etc/hotplug/usb/hplj1018: foo2zjs: loading HP LaserJet 1018 firmware /usr/share/foo2zjs/firmware/sihp1018.dl to /dev/usb/lp0 ...
Sep 15 20:44:19 fakemoon /etc/hotplug/usb/hplj1018: foo2zjs: loading HP LaserJet 1018 firmware /usr/share/foo2zjs/firmware/sihp1018.dl to /dev/usblp0 ...
Sep 15 20:44:19 fakemoon /etc/hotplug/usb/hplj1018: foo2zjs: ... download failed.
Sep 15 20:44:20 fakemoon /etc/hotplug/usb/hplj1018: foo2zjs: ... download successful.

Печатаю, но обработка стрянет.

▼ ID ▼	Name	User	Size	Pages	State	Control
HP_LaserJet_1018-53 	Unknown 	Withheld 	77k 	1 	 processing since

Sat 15 Sep 2012 08:45:58 PM MSK 
"Waiting for printer to become available."

Делаю.

modprobe -r usblp

Начинается печать.

Как можно нормально это сконфигурить? Надоело каждый раз все делать. А иногда ещё и забывать (печатаю ~два раза в год) и разбираться повторно из-за чего не работает.

Для hotplug скриптов отправляющих firmware нужен usblp. Для работы cups же он мешает.

И ещё hotplug не включен, не понятно где это должно быть сделано.

 , , ,

amaora
()

Наблюдатель нелинейной динамической системы

Форум — Development

Где ещё можно спросить не знаю.

Есть динамическая система с некоторыми нелинеяностями связанными с вращательным движением. Если записать её уравннения в пространтсве состояний для непрерывного времени то они будут содержать произведения элементов вектора состояния.

Надо синтезировать наблюдатель для этой системы. Есть ограничения по сложности метода, скажем адаптации фильтра Калмана для нелинейного случая (EKF/UKF) слишком вычислительно тяжелы.

Почитав про MRAC и градиентный идентификатор, возникла идея сделать градиентный наблюдатель. Сейчас играюсь с моделью и этим наблюдателем в octave. Похоже оно работает. Суть метода проста.

x_{n+1} = F(x_n)
z_n = H x_n

Набюдатель линейный. Пока полагаем, что модель системы известна точно.

y'_{n+1} = F(y_n)
w_n = H w_n
e_n = z_n - w_n
y_n = y'_n + e K

Отличие от линейных наблюдателей только в выборе K. Для этого записываем оценку отклонения.

d = e^2

И находим градиент d в пространстве состояний дискретизованной по времени системы. Получаем нечто следующее для матрицы K.

K_ij = u dF_i/dx_j

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

Вопрос в оптимальности (максимально возможном быстродействии) такого метода. Нигде не нашел упоминаний подобного применительно к имеено наблюдателям. Хотелось почитать что либо по теме, возможно есть какие либо `улучшения` этого метода, способы выбора оптимального u, ещё что-то.

И ещё вероятно скоро потребуется идентификатор (определение точных параметров системы), и все идеи опять же заканчиваются на градиентном методе.

И последнее, есть такой способ регулирования `sliding mode control`, он же может быть использован и в наблюдателе. Как я понимаю, нужно всего лишь исключить зависимость поправки от величины ошибки и для дискретного случая вычислять длину шага так, чтобы оказатся на поверхности где ошибка равна нулю. Но польза этого не очевидна. И даже появляются сомнения о вреде при наличии ошибки измерения (шума) выхода настоящей системы.

 control theory

amaora
()

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