Спасибо что собрали более детальную картину, по официальным анонсам было мало что понятно.
Испытываю схожие ощущения, уже было начал строить планы на ARM-версию плюс самописные модули для «экзотики», а тут такое. Хотя не сильно и удивлён, по работе пользуемся легально года с 2002, за первые два оплаченных года поддержки успели наслушаться ответов в стиле «нам виднее», дальше предпочли заново платить полную цену раз в несколько лет по мере выхода действительно прорывных функций. Они там на своей волне.
Чувствую, с таким их подходом люди начнут (если SDK/плагины в Home оставят, конечно) писать свои «костыли» взамен отрезанного. У самого где-то пылятся исходники отладчиков ARM для RDI+ARMulator и J-Link из времён, когда официальных аналогов не было.
Причём основное содержимое форума от «элитности» далеко, лоскуты информации, заменяющие отсутствующую документацию да ответы на вопросы вида «как через ваше чёртово API сделать вот эту повседневную вещь». Однако в фоне форума — водяные знаки дабы выявлять авторов утёкших наружу скриншотов сих ценностей.
Скорее они изначально работали через bulk transfer, а где-то в HID-дескрипторах (которыми сами и не пользуются) допустили ошибки и HID-драйвер сходит с ума на попытке понять конфигурацию устройства (задержка обнаружения отсоединения опять же намекает). С корректно реализованным HID вполне можно было бы общаться и через bulk transfer без переделок (interrupt endpoint нормально понимает bulk пакеты, на уровне шины токены те же).
Ну да у вас и так всё работает же, замена драйвера — мелочи.
А внутрь устройства не заглядывали? Немного загадочно что приём такой слабый. Типовой трёхногий ИК-приёмник должен бы одинаково хорошо работать что в телевизоре, что в таком девайсе. Его там «глазом» вовнутрь не поставили часом?
А HID там не совсем неправильный и его вполне можно завести с родным драйвером.
Краткая теория: HID предусматривает два варианта обмена — через EP0 control transfer (это и делают HidD_SetOutputReport/HidD_GetInputReport), либо через отдельные interrupt endpoints (посредством ReadFile/WriteFile с тем же самым device handle). Причём ОС опрашивают мыши/клавиатуры через interrupt transfers (более оптимальное использование шины), соответственно разработчики железа часто уделяют этому способу больше внимания.
Китайцы видимо вообще не стали реализовывать работу через control transfer, сделав только interrupt. Сами пакеты — вполне нормальный HID (первый байт — Report ID, второй — длина, дальше — данные этой длины. Лишние данные, добивающие пакет до endpoint MaxPacketSize, как бы даже не часть стандарта).
Это не единичный случай, когда-то натыкался на такое поведение у мышек A4Tech Bloody, тоже обескуражило.
Как работает сей запрет (на шифрование)? Функция в диске есть, но включать её запрещено? А как быть с iPhone и частью Android, делающими это по умолчанию?
Читал-читал, так и не понял, это просто такой идеальный генератор случайных чисел, обеспечивающий forward secrecy? Сами сгенерированные ключи для «текущих» сообщений при этом нужно передавать по некоему защищённому каналу и никаких специальных свойств для защиты канала они не имеют? О том, чтобы пара пластинок, отданных в разные руки, генерировала как-то согласованные последовательности, тем самым исключая необходимость обмена ключами, в статье речи нет.
В статье упоминаются перезагрузка/пробуждение CSME как нечто отдельное, не окажется ли что можно вообще на работающей системе с активной PCIe отправить CSME по «нехорошему» пути ещё раз?
В таком стиле (на полном серьёзе) поступили в своём BootROM Apple: когда выпускали первый iPhone с NVMe накопителем (6s вроде?), встроили поддержку PCIe/NVMe в ROM (как-то же надо было с него загружаться). Потом посмотрели на объём и сложность получившегося необновляемого кода, ужаснулись и в следующей модели приделали «сбоку» намеренно примитивный SPI интерфейс, через который значительно упростившийся ROM вычитывает внешний (а значит обновляемый) первичный загрузчик, а тот уже работает с PCIe/NVMe.
50А в пике — нешуточный ток со всеми сопутствующими эффектами (влияние индуктивности проводов, нагрев плохих соединений). Отсюда несколько простых мыслей (если что, не ругайте за очевидность):
лучше не собирать питание всех лент в одну общую шину, а разбить на несколько групп, от каждой из которых привести свои провода прямо к батарее (соединение звездой).
контроллер также стоит запитать отдельной линией (поможет от сбоев на пиках потребления)
конденсатор параллельно батарее (какие-нибудь 1000мкФ х полтора напряжения питания) облегчит жизнь и батарее и остальной схеме
адекватно выбирать провода (см. таблицы AWG-ток для низковольтных применений. AWG кстати не тип провода, это — система мер сечений)
надёжно соединять провода (где болтается — там нагреется, а возгорания этой штуки на себе явно надо избегать)
n запараллеленых батарейных ячеек (всё равно же ёмкость нужна) снизят требования по макс.току к одиночной ячейке в n раз, что позволит использовать среднетоковые ячейки (а у них и ёмкости и сроки жизни побольше)
можно вместо предохранителя оснастить батарею простенькой платой защиты с AliExpress (защитит не только от перегрузки, но и от переразряда/перезаряда)
Дело в том, что схема эта является стабилизатором тока (не напряжения, а именно тока) и настроена под параметры подключённых к ней светодиодов. Лампа другой мощности потребует другие параметры питания.
LC/RC цепи замедляют изменение величин тока/напряжения, но само начало изменения доберётся «на тот конец» таки со скоростью света — вот это и есть скорость течения тока. LC/RC могут растянуть фронт сигнала как угодно, но сдвинуть его во времени целиком — нет.
Вдруг кому полезно будет: вместо гонок со стартом Cinnamonа решил добавить новую комбинацию смены раскладок (других целей не преследовалось) в меню настроек. Cinnamonовский апплет настроек клавиатуры (он такой же, как на картинке в статье) базируется на libgnomekbd, так что метод должен работать не только на Cinnamon. Апплет не содержит жестко забитого списка комбинаций, а собирает его на лету из конфигов xkb.
В /usr/share/X11/xkb/symbols/group сделал под новым именем копию конфига наиболее близкой комбинации, поправил коды клавиш на нужные. Далее поиском по имени исходной комбинации нашел все её упоминания в файлах в /usr/share/X11/xkb/ (нашлось несколько файлов разных форматов, в том числе xml-подобный список комбинаций с текстами для пунктов меню настроек) и по аналогии добавил везде свою новую комбинацию. Новый пункт сразу появился в меню и заработал как ожидалось.
Попробовал — xkbcomp явно отрабатывает (в .xsession-errors появляются те же «Warning: No symbols defined for ...» что и при ручном запуске), однако эффекта никакого (вручную из терминала всё работает). Подозреваю что Cinnamon что-то переопределяет позже (хотя в его настройках отключил назначение клавиш смены раскладок — это и пытаюсь сделать, свою комбинацию). Можно конечно в /usr/share/X11/xkb/symbols/group отредактировать любую из предлагаемых Cinnamonом комбинацию, но хочется сделать красиво, ищу дальше.
Спасибо! Нубский вопрос для полноты: куда правильно прописать загрузку этого конфига дабы не затронуть других пользователей? Походил по связанным статьям — нашел только о скрипте в /etc/X11/Xsession.d/, но это же для всех.
Я когда-то переезжал за тем же — тишина, покой, белочки на деревьях за окном, для расшатанной в Москве нервной системы было как санаторий, прилетавшим погостить друзьям взахлёб рассказывал как тут всё здорово. А потом, через несколько лет, начало приходить какое-то ощущение бесцельности происходящего вокруг — подававший IT-надежды сосед бросил пражский университет и варит в гараже патрубки для машин, переехавший по схожим с моими причинам инженер из General Electric постоянно говорит «лучшее уже позади» (тот в итоге вернулся в GE, постит бодрые фото с объекта в Мексике), партнёр по фирме убивает по три дня на поиски какого-нибудь SSD на 3€ дешевле (вот это вообще одна из основных черт тамошнего менталитета — поехать в соседний город за скидкой и потратить на топливо больше).
И город городу рознь, пытаюсь сравнить части Братиславы, которые периодически вижу (приехать из Швехата на Млинске Нивы, оттуда на ЖД станцию, либо из аэропорта туда же на ЖД — и то и то центр пересекает) и спальные районы соседней Вены — в Вене за таким надо совсем куда-то в пригороды забираться.
Всё субъективно, само собой, все мы разные.
Наверное несколько туманно выразился, писал как раз о том что нужно как-то специально постараться чтобы НЕ освоить этот язык за такой долгий срок. Кроме пары моментов вроде коротких/долгих гласных, неочевидных не местному на слух, остальное всё очень прямолинейно — как слышится, так и пишется, все слова склоняются («инженер/инженерка», «Бритни Спирсова») итд. Сам менее чем через год после приезда уже без запредельных усилий готовился по местным билетам к экзамену на права (тогда ещё не давали в обмен на российские, сейчас просто обменивают без экзаменов). Основной вопрос действительно — что вы там собираетесь делать. Сейчас при транзите из более западных стран Братислава выглядит совсем депрессивно. На КДПВ — какой-то рендер Братиславского града, реальность серее.
Эти платы не специальные девелоперские, а просто выловлены с конвейера на стадиях тестирования (либо из отбраковки на тех же стадиях). Все розничные платы проходят через это, а где-то «ниже по течению» они превращаются в retail записью соответствующей конфигурации в efuse (однократно программируемую память в самом процессоре).
Серийные номера у всех разные уже на этой стадии, они записываются (в тот же efuse) ещё при тестировании самих процессоров (на месте их производства, а не на телефонной фабрике). Там же записывается конфигурация замены дефектных блоков встроенной в CPU памяти (cache/SRAM) — её там с некоторым избытком, плюс схема подмены адресов, всё вместе позволяет не браковать CPU с небольшими дефектами (эти памяти — миллионы транзисторов, немалая вероятность дефекта).
Спасибо что собрали более детальную картину, по официальным анонсам было мало что понятно.
Испытываю схожие ощущения, уже было начал строить планы на ARM-версию плюс самописные модули для «экзотики», а тут такое. Хотя не сильно и удивлён, по работе пользуемся легально года с 2002, за первые два оплаченных года поддержки успели наслушаться ответов в стиле «нам виднее», дальше предпочли заново платить полную цену раз в несколько лет по мере выхода действительно прорывных функций. Они там на своей волне.
Причём основное содержимое форума от «элитности» далеко, лоскуты информации, заменяющие отсутствующую документацию да ответы на вопросы вида «как через ваше чёртово API сделать вот эту повседневную вещь». Однако в фоне форума — водяные знаки дабы выявлять авторов утёкших наружу скриншотов сих ценностей.
В Twitter Ильфака обратили внимание на не имеющий декомпилятора Motorola 68K в списке процессоров — наводит на нехорошие мысли.
Ну да у вас и так всё работает же, замена драйвера — мелочи.
А внутрь устройства не заглядывали? Немного загадочно что приём такой слабый. Типовой трёхногий ИК-приёмник должен бы одинаково хорошо работать что в телевизоре, что в таком девайсе. Его там «глазом» вовнутрь не поставили часом?
Краткая теория: HID предусматривает два варианта обмена — через EP0 control transfer (это и делают HidD_SetOutputReport/HidD_GetInputReport), либо через отдельные interrupt endpoints (посредством ReadFile/WriteFile с тем же самым device handle). Причём ОС опрашивают мыши/клавиатуры через interrupt transfers (более оптимальное использование шины), соответственно разработчики железа часто уделяют этому способу больше внимания.
Китайцы видимо вообще не стали реализовывать работу через control transfer, сделав только interrupt. Сами пакеты — вполне нормальный HID (первый байт — Report ID, второй — длина, дальше — данные этой длины. Лишние данные, добивающие пакет до endpoint MaxPacketSize, как бы даже не часть стандарта).
Это не единичный случай, когда-то натыкался на такое поведение у мышек A4Tech Bloody, тоже обескуражило.
Как работает сей запрет (на шифрование)? Функция в диске есть, но включать её запрещено? А как быть с iPhone и частью Android, делающими это по умолчанию?
Читал-читал, так и не понял, это просто такой идеальный генератор случайных чисел, обеспечивающий forward secrecy? Сами сгенерированные ключи для «текущих» сообщений при этом нужно передавать по некоему защищённому каналу и никаких специальных свойств для защиты канала они не имеют? О том, чтобы пара пластинок, отданных в разные руки, генерировала как-то согласованные последовательности, тем самым исключая необходимость обмена ключами, в статье речи нет.
В таком стиле (на полном серьёзе) поступили в своём BootROM Apple: когда выпускали первый iPhone с NVMe накопителем (6s вроде?), встроили поддержку PCIe/NVMe в ROM (как-то же надо было с него загружаться). Потом посмотрели на объём и сложность получившегося необновляемого кода, ужаснулись и в следующей модели приделали «сбоку» намеренно примитивный SPI интерфейс, через который значительно упростившийся ROM вычитывает внешний (а значит обновляемый) первичный загрузчик, а тот уже работает с PCIe/NVMe.
PCIe bus master, модифицирующий таблицы трансляции IOMMU в момент, когда они доступны?
https://shop.lambdaconcept.com/home/40-screamer-m2.html — подойдёт?
50А в пике — нешуточный ток со всеми сопутствующими эффектами (влияние индуктивности проводов, нагрев плохих соединений). Отсюда несколько простых мыслей (если что, не ругайте за очевидность):
Дело в том, что схема эта является стабилизатором тока (не напряжения, а именно тока) и настроена под параметры подключённых к ней светодиодов. Лампа другой мощности потребует другие параметры питания.
В /usr/share/X11/xkb/symbols/group сделал под новым именем копию конфига наиболее близкой комбинации, поправил коды клавиш на нужные. Далее поиском по имени исходной комбинации нашел все её упоминания в файлах в /usr/share/X11/xkb/ (нашлось несколько файлов разных форматов, в том числе xml-подобный список комбинаций с текстами для пунктов меню настроек) и по аналогии добавил везде свою новую комбинацию. Новый пункт сразу появился в меню и заработал как ожидалось.
Я когда-то переезжал за тем же — тишина, покой, белочки на деревьях за окном, для расшатанной в Москве нервной системы было как санаторий, прилетавшим погостить друзьям взахлёб рассказывал как тут всё здорово. А потом, через несколько лет, начало приходить какое-то ощущение бесцельности происходящего вокруг — подававший IT-надежды сосед бросил пражский университет и варит в гараже патрубки для машин, переехавший по схожим с моими причинам инженер из General Electric постоянно говорит «лучшее уже позади» (тот в итоге вернулся в GE, постит бодрые фото с объекта в Мексике), партнёр по фирме убивает по три дня на поиски какого-нибудь SSD на 3€ дешевле (вот это вообще одна из основных черт тамошнего менталитета — поехать в соседний город за скидкой и потратить на топливо больше).
И город городу рознь, пытаюсь сравнить части Братиславы, которые периодически вижу (приехать из Швехата на Млинске Нивы, оттуда на ЖД станцию, либо из аэропорта туда же на ЖД — и то и то центр пересекает) и спальные районы соседней Вены — в Вене за таким надо совсем куда-то в пригороды забираться.
Всё субъективно, само собой, все мы разные.
Наверное несколько туманно выразился, писал как раз о том что нужно как-то специально постараться чтобы НЕ освоить этот язык за такой долгий срок. Кроме пары моментов вроде коротких/долгих гласных, неочевидных не местному на слух, остальное всё очень прямолинейно — как слышится, так и пишется, все слова склоняются («инженер/инженерка», «Бритни Спирсова») итд. Сам менее чем через год после приезда уже без запредельных усилий готовился по местным билетам к экзамену на права (тогда ещё не давали в обмен на российские, сейчас просто обменивают без экзаменов). Основной вопрос действительно — что вы там собираетесь делать. Сейчас при транзите из более западных стран Братислава выглядит совсем депрессивно. На КДПВ — какой-то рендер Братиславского града, реальность серее.
Эти платы не специальные девелоперские, а просто выловлены с конвейера на стадиях тестирования (либо из отбраковки на тех же стадиях). Все розничные платы проходят через это, а где-то «ниже по течению» они превращаются в retail записью соответствующей конфигурации в efuse (однократно программируемую память в самом процессоре).
Серийные номера у всех разные уже на этой стадии, они записываются (в тот же efuse) ещё при тестировании самих процессоров (на месте их производства, а не на телефонной фабрике). Там же записывается конфигурация замены дефектных блоков встроенной в CPU памяти (cache/SRAM) — её там с некоторым избытком, плюс схема подмены адресов, всё вместе позволяет не браковать CPU с небольшими дефектами (эти памяти — миллионы транзисторов, немалая вероятность дефекта).