dlinyj: (Default)
[personal profile] dlinyj
Вообще, за время работы много чего узнал, от чего шевелятся волосы. Все ваши вопли, мол Поттеринг всё сломал и линукс превратил в мастдайку (привет [livejournal.com profile] eddy_em ) ерунда, в сравнении с реальным положением дел. И даже то что мелкомягкие мейнтенерят в ядро, это тоже не так страшно. Титан надвигающегося вселенского ада - это Китай. В частности один из самых распространённых китайских процессоров - Mediatek и прочее такое же гхм... Тысячи их и терабайты и петабайты китайского говнокода, который никто и никогда не перепишет и всё радостно идёт в ядро ведра.

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

1. Если устройство не загрузилось, оно не будет заряжаться. Да-да, если вдруг слетела прошивка и работает только загрузчик (даже вторичный), а не ядро - заряжаться не будет. Для зарядки, суко, нужны ДРАЙВЕРА (фейспалм). Пример на фото. Железка (некоторая железка на медиатеке), к ней аппаратная консоль. Я втыкаю просто провод питания от зарядного устройства и на аппаратной консоли (припаяна и висит сзади платка преобразователя на 1,8 в) вижу лог загрузки и сообщения ядра.


Данное открытие я сделал, когда поймал бутлуп на устройстве, да что скрывать, на bv6000s. Аккумулятор не съёмный. Я был молод и глуп не видал больших ... и ушёл в пятницу домой, оставив его на зарядке. А в понедельник утром обнаружил полностью разряженный кирпич. Так что, если играетесь с прошивкой телефона, заряжайте его на 100% и в случае неудачи - снимайте аккумулятор. Реанимировать прошивку возможно (если, конечно калибровки не затёрли, но это надо талант иметь), но если устройство полностью сядет - сделать это будет сложнее.

2. Китайский говнокод.

Для меня было адовым откровением, что в сорцах ведра огромное количество тупо бинарных файлов, которые из userspace напрямую работают с железом, минуя системные вызовы ядра. И у меня вообще ощущение, что там libc используют едва-едва, только чтобы хоть запускалось. Это прямо боль и унижение. А самое большое унижение, это сами дрова железа. Вот ковыряю драйвер вайфая, в ядре линукс. И вижу такой, эм... Такое странное место.


На минуточку - это ЯДРО! Святая святых. Какого лешего там дефайны на windows??? Что за лютый треш? И такого ада там куча. Дрова написаны через жопу, даже мимолётно не соблюдая стандарты POSIX. Это АД!!!

Всё, я выплеснул свои впечатления ада, который есть сейчас.

Date: 2019-04-26 10:05 am (UTC)
From: [identity profile] aterentiev.livejournal.com
К первому фейспалму - добро пожаловать в начинающие пользователи USB. В правильные пользователи. Где устройству по умолчанию дается 100мА, и только после хендшейка можно вежливо попросить у хоста дать 500мА. Это стандарт. Все, что работает по-другому - китайчатская поделка.

Ну а ко второму - сэр имеет что-то против мультиплатформенности кода? :)

Date: 2019-04-26 10:15 am (UTC)
From: [identity profile] dlinyj.livejournal.com
>>Ну а ко второму - сэр имеет что-то против мультиплатформенности кода? :)

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

Date: 2019-04-26 12:08 pm (UTC)
From: [identity profile] sergey gimaev (from livejournal.com)
гыгы код в ядре гыгы
я щас одну массовую летающую погремушку потрошу. не знаю какие индийско вьетнамские китайцы ие писали. но
и2ц ногодрыгом
СПИ ногодрыгом
собака в таймере который ШИМ гонит
кругом НАЛ пополам с ассемблерной прямой записью в регистры (нивжись не поверю, что это инлайн так скомпилился)
вызовы функицй из оберток, привет ++
....

Date: 2019-04-26 12:21 pm (UTC)
From: [identity profile] minimumlaw.livejournal.com
Вы первый раз встречаетесь с таким кодом (это про второй пример)? Не хочу Вас расстраивать, но все что не принято в ванильную ветку как правило выглядит именно так. Что у Китайцев (ralink, и прочие стремные wlan драйвера), что у японцев (sony), что у корейцев (samsung), что у прочих (NVidia, Broadcom и прочие).

Увы, херак-херак и в продакшн не только Российский лозунг. На любую новую железку рождается сначала франкенштейн - один и на все платформы. С голой ifdef'ов. И только если повезет, то через некоторое время появится нормальный драйвер (при чем в случае с Linux или силами сообщества, или силами одного-двух спецов от производителя). Но для этого надо несколько миллионов железок продать.

Уж на что популярен I.MX6 - так и то... Media драйвера до сих пор в staging. Video работает не в полном объеме, а про кодеки/декодеки лучше даже не заикаться. А уж про MIPI вообще помолчим. Более менее полно оно работает только с примерно таким же кодом от производителя. И его, конечно же, никто поддерживать желанием не горит.

Стоит ли после этого удивляться кривости работы планшетов? За то иконки плоские и окошки красивые... Такова жизнь.

Date: 2019-04-26 12:23 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Я впервые столкнулся и коричневая волна цунами китайского говнокода меня захлестнула...

Date: 2019-04-26 05:01 pm (UTC)
From: [identity profile] minimumlaw.livejournal.com
Понимаю Ваше недовольство. Сам регулярно ругаюсь (местами даже матом). Но не могу еще раз не повторить - если бы этим грешили только китайцы было бы проще. А так, увы, это мировая практика...

Вы будете еще больше удивлены если копнете глубже. Очень много функционала, вполне себе наличествующего в ядре, дублируется в драйвере (при чем не очень прямо). Начиная со связных списков и дальше. В конкретно взятом wlan драйвере может быть зачем-то продублирован (естественно не в полном объеме и крайне криво) функционал cfg80211/mac80211.

Date: 2019-04-26 07:28 pm (UTC)
From: [identity profile] getinaks.livejournal.com
Стандарт DCP и то, как он определяется железом уже отменили?

Date: 2019-04-27 07:51 pm (UTC)
From: [identity profile] e-pipe.livejournal.com
У знакомого был самсунь, для зарядки которого от USB на компьютере было необходимо установить программу на винду, и из неё включить зарядку...

Date: 2019-04-28 12:31 pm (UTC)
From: [identity profile] shur-ik.livejournal.com
Было бы интересно "задружится" с Вами в(в рамках ЖЖ -- а, может быть, и вне них).

Date: 2019-04-30 01:57 pm (UTC)
From: [identity profile] 5kopejek.livejournal.com
Китайцы экономят как всегда и судя по коду пишут код ядра сразу под linux и windows CE :)

Date: 2019-05-08 01:05 am (UTC)
From: [identity profile] alexfilonov.livejournal.com
Image
да там тьма отсылок
ядро 4.19.23
Вот даже так бывает :)
/* RME says n = 104857600000000, but in the windows MADI driver, I see:
return 104857600000000 / rate; // 100 MHz
return 110100480000000 / rate; // 105 MHz
*/

Date: 2019-05-08 08:20 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Мои глаза...

January 2026

S M T W T F S
    123
456 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 01:11 pm
Powered by Dreamwidth Studios