LINUX.ORG.RU

Сообщения x86-

 

Давайте играть в слова

Форум — Talks

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

Ну что ж, я начинаю:

rust

 , ,

x86-
()

lsusb не отображает подключенную мобилку Nokia 5710 XA (ОС S30+)

Форум — Linux-hardware

Всем привет, и сразу к делу:

Bus 001 Device 002: ID 8087:8001 Intel Corp. Integrated Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2/50
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 004: ID 04f2:b45d Chicony Electronics Co., Ltd Integrated Camera
Bus 002 Device 003: ID 8087:0a2a Intel Corp. Bluetooth wireless interface
Bus 002 Device 002: ID 138a:0017 Validity Sensors, Inc. VFS 5011 fingerprint sensor
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Вот, что отображает lsusb после подключения Nokia (в обоих режимах, «Charging only», «USB storage»). Что интересно, в dmesg все ловится, даже модель телефа:

[303864.528541] usb 2-1: New USB device found, idVendor=2e04, idProduct=0044, bcdDevice= 0.01
[303864.528545] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[303864.528547] usb 2-1: Product: Nokia 5710 XpressAudio(TA-1498)
[303864.528548] usb 2-1: Manufacturer: Spreadtrum  
[303864.528549] usb 2-1: SerialNumber: 8CE739CEF739
[303864.529344] usb-storage 2-1:1.0: USB Mass Storage device detected
[303864.529445] scsi host1: usb-storage 2-1:1.0
[303865.577447] scsi 1:0:0:0: Direct-Access     Generic  SDCard DISK           PQ: 0 ANSI: 0 CCS
[303865.580922] scsi 1:0:0:1: Direct-Access     Generic  LOCAL DISK            PQ: 0 ANSI: 0 CCS
[303865.583243] sd 1:0:0:0: [sdb] 15605760 512-byte logical blocks: (7.99 GB/7.44 GiB)
[303865.586721] sd 1:0:0:1: [sdc] 27594 1024-byte logical blocks: (28.3 MB/26.9 MiB)
[303865.589031] sd 1:0:0:0: [sdb] Write Protect is off
[303865.589035] sd 1:0:0:0: [sdb] Mode Sense: 03 00 00 00
[303865.591360] sd 1:0:0:0: [sdb] No Caching mode page found
[303865.591362] sd 1:0:0:0: [sdb] Assuming drive cache: write through
[303865.593672] sd 1:0:0:1: [sdc] Write Protect is off
[303865.593675] sd 1:0:0:1: [sdc] Mode Sense: 03 00 00 00
[303865.595979] sd 1:0:0:1: [sdc] No Caching mode page found
[303865.595981] sd 1:0:0:1: [sdc] Assuming drive cache: write through
[303865.619837]  sdb: sdb1
[303865.626088]  sdc:
[303865.638843] sd 1:0:0:0: [sdb] Attached SCSI removable disk
[303865.655360] sd 1:0:0:1: [sdc] Attached SCSI removable disk
[304126.654764] usb 2-1: USB disconnect, device number 9
[304131.033306] usb 2-1: new high-speed USB device number 11 using xhci_hcd

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

 , , ,

x86-
()

Программы на Electron магически не работают

Форум — Desktop

Всем привет, есть небольшая проблема, решение которой я нигде не могу найти. Мой дистрибутив - гента, glibc, openrc, ядро версии 5.15.75.

Итак, проблема заключается в том, что программы на Electron не работают. Из проверенных - VSCodium и Logseq (в виде Appimage). Опишу вкратце поведение каждой из них:

VSCodium:

При открытии, сразу же крашится с кодом ‘5’: The window terminated unexpectedly (reason: ‘crashed’, code: ‘5’).

Попробуем запустить со следующими аргументами:

vscodium --verbose --log trace

Вылетает гора текста, копировать которую я сюда не буду, но оставлю на pastebin (ссылка).

И теперь, самое странное: ошибок/варнингов толком и нет. Вот каждая из них:

[13736:1109/034916.952004:WARNING:bluez_dbus_manager.cc(248)] Floss manager not present, cannot set Floss enable/disable.
[13777:1109/034917.460697:WARNING:sandbox_linux.cc(376)] InitializeSandbox() called with multiple threads in process gpu-process.

Renderer process crashed - see https://www.electronjs.org/docs/tutorial/application-debugging for potential debugging information.
[main 2022-11-08T19:49:23.660Z] CodeWindow: renderer process gone (reason: crashed, code: 5)

Тут даже копать особо некуда, ни одно из загугленных решений не помогло. В одной из ошибок предложен дебаг электрона, но для этого его придется устанавливать/компилить, что займет множество часов (а я лучше откажусь от электрона полностью, чем буду этим заниматься). Магия.

Logseq

Это программа для логирования/заметок. Она открывается, но экран остается белым. Здесь та же история: содержательных варнингов/ошибок нет, по сути. Вот единственное, чего я могу добиться:

[6058:1108/090430.586267:ERROR:platform_font_skia.cc(246)] Could not find any font: Sans, sans. Falling back to the default
09:04:30.812 › Logseq App(0.8.9) Starting... 
Error sending from webFrameMain:  Error: Render frame was disposed before WebFrameMain could be accessed
    at n.send (node:electron/js2c/browser_init:165:417)
    at b.send (node:electron/js2c/browser_init:161:2494)
    at BrowserWindow.<anonymous> (/tmp/.mount_Logseqe4O6Wd/resources/app/electron.js:15261:31)
    at BrowserWindow.emit (node:events:538:35)

Я как-то хз куда копать, гугл результатов особо не выдает. Может, на ЛОРе кто-то имеет представление, что происходит? Проблема с установкой каких-то библиотек?

 , ,

x86-
()

Новое хобби

Форум — Development

Привет, ЛОР!

В последние несколько месяцев многое изменилось, пришлось покинуть моё рабочее место со всеми тулзами, осциллографами и прочим. И, признаться честно, появилось такое ощущение, что мои компьютерные хобби (stm32, гента) свелись к нулю. До сих пор использую Gentoo, даже на Musl-Hardened перешла ради интереса. Но все же хочется найти новое хобби, и сложно с ним определиться. Попробовала вступление в физику, химию и квант.мех., крайне интересно, но компьютеры и желёзки все же не имеют аналога в восхитительности.

Из вариантов пока:

  • Выучить Perl? :D
  • Почитать Khalid Sayood - Introduction to Data Compression.
  • Найти какой-нибудь OSS проект в стадии разработки (C/C++) и исправлять баги / добавлять плюшки.
  • Почитать про аудио/видео кодеки типа H264, AAC.

В общем, что думаете, есть идеи?

 , ,

x86-
()

Взлом искуственного интеллекта?

Форум — Security

Как известно, в машинном обучении вывод Y зависит от фидбека, то есть предыдущих входов X, и от текущего X. Но не делает ли это его уязвимым? Что если заддосить входы ИИ, и, тем самым, настроить его извне? Например, выпускается новый сервер капчи («Выберите фото гидранта»), направляем на него DDOS атаку, выбирающую фото котеек, и ломаем ИИ. Интересно и обратное, предусмотрена ли защита от подобного?

 , ,

x86-
()

mpd нестабильно работает

Форум — General

Всем привет, тут созрел один вопрос касательно mpd. Давно уже им пользуюсь, но в последнее время лаги участились. Типы лагов:

  1. Один трек заканчивает проигрываться, начиная со следующего, звук уже не работает. В логах выводится exception: Failed to play on "My Pulse Output" (pulse): suspended. Если подождать какое-то время (минут 10-15), звук начинает работать опять.
  2. Mpd конфликтует с проигрыванием аудио в других программах. Простой пример, я ставлю на паузу трек mpd и сразу же включаю трек в телеге. Звук перестает работать и там и там. Но если после паузы подождать минут 5-10, все проходит успешно.

Понятия не имею, в чем же может быть проблема? Гугл результатами особо не щедр, так что может на лоре что-нибуть аукнется. Конфиг прикладываю:

music_directory          "/home/nav/.mpd/music"
playlist_directory	 "/home/nav/.mpd/playlists"
db_file	                 "/home/nav/.mpd/database"
log_file		 "/home/nav/.mpd/log"
pid_file		 "/home/nav/.mpd/pid"
state_file		 "/home/nav/.mpd/state"

user		    "nav"
bind_to_address	    "localhost"
bind_to_address	    "/var/lib/mpd/socket"
port		    "420"

input {
        plugin  "curl"
}

audio_output {
	type	"pulse"
	name	"My Pulse Output"
#      server   "localhost"
}

audio_output {
        type      "fifo"
        name      "my_fifo"
        path      "/tmp/mpd.fifo"
        format    "44100:16:2"
}

filesystem_charset   "UTF-8"
id3v1_encoding       "UTF-8"

P.S. для обновления базы данных и всего прочего, использую ncmcpp. 95% времени переключаю треки в polybar’е. ОС Gentoo Linux.

 , ,

x86-
()

Четверное нижнее подчеркивание?

Форум — Development

Сегодня мне попался такой массив структур __versions в коде ядра:

static const struct modversion_info ____versions[]
__used __section("__versions") = {
	{ 0x86e941f6, "module_layout" },
	{ 0x3213f038, "mutex_unlock" },
	{ 0xe1537255, "__list_del_entry_valid" },
	{ 0x4dfa8d4b, "mutex_lock" },
	{ 0x68f31cbd, "__list_add_valid" },
	{ 0x800473f, "__cond_resched" },
	{ 0x542be051, "__x86_indirect_alt_jmp_rax" },
	{ 0x687303f7, "module_put" },
	{ 0x2ea2c95c, "__x86_indirect_thunk_rax" },
	{ 0xbdfb6dbb, "__fentry__" },
	{ 0x9a353ae, "__x86_indirect_alt_call_rax" },
	{ 0x64a62cf6, "try_module_get" },
};

По имени ____versions[]… Грепнула, а там есть и пятерное, и девятерное нижнее подчеркивание. Пруф:

include/linux/rcupdate.h:	typeof(*p) *_________p1 = (typeof(*p) *__force)READ_ONCE(p); \

Зачем вообще используют подобную практику? Неудобно же (да, даже в моно-шрифте), я еще понимаю двойное или тройное, но 9х? Разработчики там сидят и считают каждое подчеркивание, как в Лиспе скобочки? Или может у них есть тулзы для подсчета нижних подчеркиваний? Дискасс

 , ,

x86-
()

Кем вы работаете / на кого учитесь?

Голосования — Голосования

Выбирайте основную специальность либо соответствующий пункт при её отсутствии. Нестандартные ответы пишите в комментариях.

  1. Сисадмин / DevOps / сетевой админ 130 (19%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. Совмещаю разные типы IT-деятельности 83 (12%)

    ************************************************************************************************************************************************************************************************************

  3. Прикладной программист (Desktop, Mobile...) 78 (12%)

    ************************************************************************************************************************************************************************************************

  4. Web-разработчик 67 (10%)

    ********************************************************************************************************************************************************************

  5. Системный программист / железячник 61 (9%)

    ******************************************************************************************************************************************************

  6. Инженер другой направленности 38 (6%)

    *********************************************************************************************

  7. Ремесло или физический труд (грузчик, курьер, сантехник, продавец, глиномес) 30 (4%)

    *************************************************************************

  8. Руководитель 25 (4%)

    *************************************************************

  9. Другое (напишу в комментарии) 24 (4%)

    ***********************************************************

  10. Другая специальность в IT 22 (3%)

    ******************************************************

  11. Не учусь и не работаю (NEET, пенсионер, etc.) 21 (3%)

    ***************************************************

  12. Специалист по информационной безопасности 15 (2%)

    ************************************

  13. Работаю на 2+ ставки, совмещаю специальности 13 (2%)

    ********************************

  14. Математик / программист-математик 12 (2%)

    *****************************

  15. Преподаватель в вузе 10 (1%)

    ************************

  16. Офисный работник, бухгалтер, юрист и подобное 10 (1%)

    ************************

  17. Я еще в школе и/или не определился 10 (1%)

    ************************

  18. Data science / ИИ / Big data 7 (1%)

    *****************

  19. Домохозяин / домохозяйка 6 (1%)

    **************

  20. Преподаватель в школе и/или другом учебном заведении / репетитор 4 (1%)

    *********

  21. Общественная деятельность, журналистика и прочее 3 (0%)

    *******

  22. Переводчик / лингвист 0 (0%)

Всего голосов: 669

 ,

x86-
()

Покраснел глаз, что делать?

Форум — Talks

В прямом смысле. Смотрю сегодня в зеркало, не отходя от компа, а у меня глаз покраснел! ЛОРовцы и прочие красноглазы, а что вы делаете в таком случае, как лечить? Хочу, чтобы побелел скорее, но компьютер нужен почти круглосуточно. Может есть хорошие способы по вашему опыту?

 ,

x86-
()

Тачпад перестал работать после обновления

Форум — Linux-hardware

После обновления Gentoo, и ядра, тачпад перестал работать. Новое ядро - 5.15.11. Для сборки всегда использую genkernel all, раньше проблем не было но сейчас возникла. Мышь и клавиатура работают.

Использую libinput без synaptics (INPUT_DEVICES="libinput").

Вывод dmesg:

➜  ~  ᐅ  dmesg | grep i8042
[    0.524908] i8042: PNP: PS/2 Controller [PNP0303:KBC0] at 0x60,0x64 irq 1
[    0.524922] i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
[    0.527599] serio: i8042 KBD port at 0x60,0x64 irq 1
[    0.540289] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input3

xinput list

➜  ~  ᐅ  xinput list 
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Telink Wireless Receiver Mouse          	id=9	[slave  pointer  (2)]
⎜   ↳ Telink Wireless Receiver Consumer Control	id=10	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ Telink Wireless Receiver System Control 	id=11	[slave  keyboard (3)]
    ↳ Telink Wireless Receiver                	id=12	[slave  keyboard (3)]
    ↳ HD Camera: HD Camera                    	id=13	[slave  keyboard (3)]
    ↳ Huawei WMI hotkeys                      	id=14	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=15	[slave  keyboard (3)]
    ↳ Telink Wireless Receiver Consumer Control	id=16	[slave  keyboard (3)]

libinput list-devices

gensek➜  ~  ᐅ  sudo libinput list-devices          
Password: 
Device:           Power Button
Kernel:           /dev/input/event2
Group:            1
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Video Bus
Kernel:           /dev/input/event8
Group:            2
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Lid Switch
Kernel:           /dev/input/event0
Group:            3
Seat:             seat0, default
Capabilities:     switch
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Power Button
Kernel:           /dev/input/event1
Group:            4
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Telink Wireless Receiver Mouse
Kernel:           /dev/input/event4
Group:            5
Seat:             seat0, default
Capabilities:     pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   button
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   flat *adaptive
Rotation:         n/a

Device:           Telink Wireless Receiver Consumer Control
Kernel:           /dev/input/event5
Group:            5
Seat:             seat0, default
Capabilities:     keyboard pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    disabled
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Telink Wireless Receiver System Control
Kernel:           /dev/input/event6
Group:            5
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Telink Wireless Receiver
Kernel:           /dev/input/event7
Group:            5
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           HD Camera: HD Camera
Kernel:           /dev/input/event13
Group:            6
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Huawei WMI hotkeys
Kernel:           /dev/input/event11
Group:            7
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           AT Translated Set 2 keyboard
Kernel:           /dev/input/event3
Group:            8
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

На всякий случай пересобрала xf86-input-libinput, но не помогло. Пробовала также подключить synaptics, но тоже не помогло. Есть у кого-нибудь идеи, как починить тачпад? Перепробовала уже кучу вариантов с англо форумов, но ни один не помог.

 , , ,

x86-
()

Новогоднее рабочее место линуксоида

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

Начало холодать, а значит пора установить побольше гирлянд на мониторы. И почитывать ЛОР с анонимуса ;-( с неанонимуса с горячим чаем. ;-))) К слову, еще не успела купить гирлянд кроме одной, но этого достаточно для праздничного настроения.

На столе расположены:

  • Ультратонкий Huawei Matebook 13, с гентой на борту, bspwm и xfce4-terminal
  • Слева броневик Panasonic Toughbook CF-19 mk6 (2004 года!) с оффтопиком для работы увы
  • Внешний монитор, Samsung LS2… неважно, 1920х1080, 24"
  • Гибкая лампа трансформер
  • Паяльная станция 858D с термофеном для пайки SMD деталей
  • Немалоизвестный карманный осциллограф DSO 150
  • Мультиметр DT-830D
  • Мк stm32f100
  • Гирлянда (1 шт)
  • Красные лазерные очки, надеваю их за 1-2 часа до сна для усиления выработки мелатонина (1 шт)
  • Иконы (12 шт)

Вот еще пару фото:

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

>>> Просмотр (4000x3000, 4243 Kb)

 , , ,

x86-
()

Кто-то в курсе, как подобное произошло?

Форум — Linux-org-ru

Сегодня утром у @XoFfiCEr было 4 зеленые звезды, вечером уже одна. Это, выходит, 15 сообщений по -20 снесли за сутки, что-то неординарное для ЛОРа. У кого-то есть ссылка на драму?

 ,

x86-
()

В каких ЯПах существуют функции, способные возвращать несколько значений?

Форум — Development

Вроде такого:

int, double, double add (int a) {
    return (a+1), (a+2.2), (a+3.3);
}

int a = 8;
int b;
double c, d;

b, c, d = add(a);

А вообще, в чем проявлялась бы неэффективность подобной возможности? Могу представить разве то, что она не так хорошо приспособлена к трансляции в ассемблерный код как функция с единичным возвращаемым значением. Так по конвенции все кладут результат в RAX да и все, а с множественными значениями придется еще что-то изобретать и ломать ABI.

Ответ:

Список япов:

  1. go
  2. lua
  3. haskell
  4. rust и проч.

Реализованы - через тульпы/структуры, поэтому в abi ничего не меняется. Но есть и более интересные вариации: так, например, в SBCL первые три возвращаемых значения передаются через регистры (RDX, RDI, RSI), а остальные через стек

 , , ,

x86-
()

Почему частота генерируемого аудиозвука DAC остается неизменной?

Форум — Development

Сап двач лор. Есть такой код для stm32f1x: (cmsis + spl)

#include <stm32f10x.h>
#include <stm32f10x_rcc.h>
#include <stm32f10x_gpio.h>
#include <stm32f10x_dac.h>
#include "sine_wave.c"

void Delay(uint32_t nTime);
void dac_init();

int main(void){

    dac_init();

    // Configure SysTick Timer
    if(SysTick_Config(SystemCoreClock / 1000))
        while(1);

    while(1) {
        for (int i = 0; i < ARR_SIZE; i++) {
            DAC_SetChannel1Data(DAC_Align_12b_R, a441[i]);
            Delay(1);
        }
    }
}

void dac_init()
{
    GPIO_InitTypeDef GPIO_InitStructure;
    DAC_InitTypeDef DAC_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC , ENABLE);

    GPIO_StructInit(&GPIO_InitStructure);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    // DAC channel1 Configuration

    DAC_StructInit(&DAC_InitStructure);
    DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;
    DAC_Init(DAC_Channel_1 , &DAC_InitStructure);

    // Enable DAC

    DAC_Cmd(DAC_Channel_1 , ENABLE);
}

// Timer code
static __IO uint32_t TimingDelay;

void Delay(uint32_t nTime){
    TimingDelay = nTime;
    while(TimingDelay != 0);
}

void SysTick_Handler(void){
    if(TimingDelay != 0x00)
        TimingDelay --;
}

Я заливаю его на платку и подключаю к PA4 аудиоусилитель, а к нему - динамик. Цель - воспроизводить звуки разной частоты/высоты.

Так вот, звук реально воспроизводится. Но проблема в том, что частота этого звука неизменно остается где-то 1980 Гц (нота B6), когда я меняю длительность delay.

Мне кажется, что при более длинной задержке, частота должна уменьшаться (волна «растягивается») и тон становиться ниже. Но тон неизменяем.

Что посоветуете, может я ошибаюсь где-то?

 , , ,

x86-
()

Как с платы мк счищать пыль?

Форум — Talks

После пары месяцев использования, плата микроконтроллера покрылась пылью в некоторых местах. Как счищать?

  1. Пальцем - нет, слишком широкий.
  2. Тряпки - аналогично.
  3. Дуть - не помогает.
  4. Водой - сами понимаете.
  5. Пылесос - шумно, сейчас ночь. И не факт, что поможет (см. п.3)

Что может помочь?


Results:

  1. Для сухой, быстрой чистки: кисть, зубная щетка, баллончик со сжатым воздухом, специальная спринцовка
  2. Для влажной, более глубокой чистки: спирт с дальнейшим обсушиванием

 , ,

x86-
()

bspwm перевести окна созданных в qtcreator приложений в состояние floating

Форум — Desktop

Сабж. Создаю в qtcreator приложение типа Hello world, нажимаю Ctrl+R (Run). Все хорошо, но хотелось бы, чтобы после сборки приложение автоматически переключалось в floating mode.

Для этого в конфиг bspwm нужно добавить строку такого типа:

bspc rule -a feh state=floating

Проблема заключается в том, что мне неизвестно имя всплывающих окон такого типа. Знатоки bspwm, если таковые здесь есть, не подскажете, как его узнать?

Перемещено xaizek из development

 , ,

x86-
()

TIM1 захват входного сигнала

Форум — Development

Всем привет, уже пару дней ломаю голову над этой проблемой - не выходит настроить TIM1 input capture (для измерения длины импульсов, посылаемых HC-SR04 - ультразвуковым дальнометром). Плата - stm32vldiscovery, для разработки использую CMSIS и STDPeriph. Я новичок, если что.

Вкратце для тех кто не в курсе, как устроен протокол HC-SR04 - данный дальнометр располагает двумя пинами - Trigger и Echo. Получив на Trigger 10-микросек. сигнал, дальнометр активируется и определяет расстояние до ближайшей преграды с помощью ультразвука. Далее, он отвечает - на пин Echo посылается сигнал, длительность которого пропорциональна определенному расстоянию. (150-2500 мкс)

Вот скриншот с логического анализатора, как весь этот процесс выглядит: https://imgur.com/a/MXN13ZP. Как видно на этом фото, первая часть (триггер) у меня отлично работает (взят TIM4 CH4).

Проблема выходит со второй частью - я пытаюсь настроить TIM1 для определения длительности импульса Echo, вот код:

static void echo_init()
{
    // reconfigure PA8 to alternative function push-pull
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

    GPIO_InitTypeDef Gpio;
    GPIO_StructInit(&Gpio);
    
    Gpio.GPIO_Pin = GPIO_Pin_8;
    Gpio.GPIO_Mode = GPIO_Mode_AF_PP;
    //Gpio.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOA, &Gpio);

    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
    TIM_ICInitTypeDef TIM_ICInitStructure;
    
    // enable timer clock
    RCC_APB1PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);

    // configure timer
    // PWM frequency = 10 hz with 24,000,000 hz system clock

    TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
    TIM_TimeBaseStructure.TIM_Prescaler = SystemCoreClock/100000 - 1; // 10 hz or 100 ms cycle
    TIM_TimeBaseStructure.TIM_Period = 10000 - 1; // 0..9999
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);

    // Channel 1 latches the timer on a rising input on t1
    TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;
    TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
    TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
    TIM_ICInitStructure.TIM_ICPrescaler = 0;
    TIM_ICInitStructure.TIM_ICFilter = 0;
    TIM_ICInit(TIM1, &TIM_ICInitStructure);

    // Channel 2 latches the timer on a falling input on t2
    TIM_ICInitStructure.TIM_Channel = TIM_Channel_2;
    TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Falling;
    TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_IndirectTI;
    TIM_ICInitStructure.TIM_ICPrescaler = 0;
    TIM_ICInitStructure.TIM_ICFilter = 0;
    TIM_ICInit(TIM1, &TIM_ICInitStructure);

    // Configure the timer slave mode with TI1FP1 as reset signal
    TIM_SelectInputTrigger(TIM1, TIM_TS_TI1FP1);
    TIM_SelectSlaveMode(TIM1, TIM_SlaveMode_Reset);
    TIM_SelectMasterSlaveMode(TIM1, TIM_MasterSlaveMode_Enable);

    // Enable Timer
    TIM_Cmd(TIM1, ENABLE);
}

При этом, по идее, таймер должен быть полностью сконфигурирован, но каждый раз, когда я заглядываю в регистры TIM1->CCR1 и TIM1->CCR2, они пусты! Т.е. хранят 0. Что я делаю не так, может кто-то подскажет?

int ultrasonic_get_distance()
{
    return TIM1->CCR2 - TIM1->CCR1 * 17/100;
    
    //is supposed to return distance in mm
    //always returns zero for some reason
}

ЗЫ: конфиг взят из этой книги, глава 10.2, ну и частично дописан мной.

 , ,

x86-
()

Сборка ПК под Gentoo

Форум — Linux-hardware

Привет, ЛОР. Впервые дело дошло до сборки компьютера, до этого я пользовалась исключительно ноутами. Хотелось бы собрать что-то достаточно мощное для компиляции программ с исходников, но при этом не оверпрайс. Вот мой текущий выбор компонентов: найдутся ли у вас советы об улучшении этого списка? Бюджет - около 1000 баксов, на данный момент немного превышен, но отклонение в $100-200 для меня приемлемо.

  1. Процессор - AMD Ryzen 7 5700G ($386, ссылка). 8 ядер, 16 потоков, с кулером в комплекте и интегрированным GPU.
  2. Материнка - MSI B550-A PRO ($114, ссылка). ATX, остальные спеки можете посмотреть по ссылке.
  3. ОЗУ - DDR4 32GB (2x16GB) 3200 MHz Ripjaws ($150, ссылка)
  4. SSD диск - Kingston NV1 1TB M.2 ($90, ссылка)
  5. Блок питания - Seasonic S12III-550 550W ($54, ссылка). 550 вт вроде многовато для моей сборки, но и так сойдет.
  6. Корпус: Cougar MX330-G Air ($60, ссылка). Midi tower. 4 USB порта на внешней части, т.к. мне часто нужно присоединять к компютеру различные девайсы вроде UART-TTL конвертера или Saleae Logic анализатора. Остальные спеки особо не важны.
  7. Монитор: AOC 27" Q27V4EA Black ($260, ссылка). 27", 1440p.
  8. Клавиатура: Keychron K8 RGB ($117, ссылка). Давно хочу попробовать механическую, эта - с переключателями Gateron Brown, 80%.

В сумме: $1231. Нормальная ли эта цена для десктопа? И хорошо ли подобраны компоненты?

 , ,

x86-
()

Голосование Мистер ЛОР

Форум — Talks

 

x86-
()

Релиз Debian 11 Edu / Skolelinux  — школьный дистрибутив

Новости — Debian
Группа Debian

15 августа 2021 года состоялся релиз новой версии Debian Edu / Skolelinux, основанной на Debian 11 Bullseye.

Skolelinux – версия дебиана для школ, с более чем 60 обучающими пакетами и удобным веб-интерфейсом GOsa² для администрации юзеров, групп и сетевых сервисов, а также возможности быстро настроить школьную локальную сеть.

( читать дальше... )

>>> Руководство по установке

>>> Подробности

 , ,

x86-
()

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