LINUX.ORG.RU

Избранные сообщения qub

Бинарные сборки Wine

 ,

Часто бывает так, что в очередной минорной версии разработчики Wine что-нибудь ломают для одной конкретной программы или игры, при этом все остальные программы работают нормально. И пользователю приходится либо откатываться до предыдущей версии Wine (это возможно не во всех дистрибутивах), ставить PlayOnLinux, что не всем нравится, либо компиллировать самому.

Чтобы предотвратить это неудобство, я с некоторых пор делаю бинарные сборки Wine и выкладываю их для всех желающих. Располагаются они здесь. Когда задумывал это, то вдохновлялся примером PlayOnLinux, которые тоже делают собственные бинарные сборки Wine, но обладают некоторыми недостатками:

  1. Выходят нерегулярно.
  2. Скрипта, который их формирует, я так и не нашел.
  3. Мне нужна еще версия с патчами Staging, а они не для каждой версии их делают.

Поэтому я несколько месяцев назад написал свой собственный скрипт, c помощью которого можно скомпиллировать любую версию Wine, в том числе на выбор, со staging патчами или без.

Преимущество бинарных сборок:

  1. Идут практически любом современном дистрибутиве. За абсолютно все дистрибутивы любой давности ручаться не буду, сам проверял только на паре дистрибутивов, поэтому хотелось бы чтобы вы их протестировали и подтвердили или опровергли это утверждение.
  2. Для использования не требуется ничего, установленных зависимостей для Wine. Сам системный Wine при этом даже необязателен.
  3. Можно иметь хоть с десяток разных версий Wine для разных программ и с легкостью переключаться между ними без каких-то переустановок. Чтобы установить бинарную сборку, достаточно лишь ее распаковать в любой каталог.

В процессе создания бинарных сборок я целенаправленно не применял никаких сторонних патчей. В версии с патчами Staging присутствует только набор патчей из Staging и больше ничего. В ванильной версии не применяются никакие патчи. Даже несмотря на то, что начиная с какой-то версии из ветки 1.9.x Wine стало невозможно скомпиллировать с помощью gcc 5.3.0 и патч довольно оперативно написали, я предпочел откатиться до gcc 4.8.5, чем применять этот патч. Сомневающимся могу порекомендовать скачать мой скрипт, собрать Wine самому с помощью gcc 4.8.5 и после чего сравнить свой хэш получившегося архива с моим.

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

И еще раз ссылки:

  1. Сайт с бинарными сборками Wine
  2. Скрипт, по которому они формируются

P.S. Перед использованием скрипта отредактируйте его и измените содержимое переменных WORKDIR (каталог, в котором будет компиллироваться Wine) и GCC_VERSION (версия GCC, которая применяется для сборки) в соответствии со своими предпочтениями. А то там сейчас стоят мои значения.

Обновлено 04.02.17:
В связи с тем, что после выхода Wine 2.0 сменилась нумерация промежуточных версий (промежуточная версия теперь 2.1 и все исходники будут лежать в папке 2.x и еще они сменили формат архива), то скрипт для сборки разделен. Скрипт wine_build_1.9.x-2.0.sh - для сборки всех предыдущих версий Wine до версии 2.0 включительно и wine_build-2.x.sh - для всех версий после 2.0. Да, это неудобно. Но это лучше, чем если бы в одном скрипте писать кучу костылей по парсингу мажорной версии, минорной версии и их какого-то совмещения. Размер скрипта значительно увеличился бы, он стал бы трудночитаемым и вряд ли это решение было бы совсем безглючным.

Обновлено 25.10.18:
Я закрываю формирование бинарных сборок в связи с тем, что Wine в последнее время оброс сторонними патчсетами, вроде esync, да и самому мне это все надоело. К тому же появился Steam Play. Все предыдущие сборки вы можете скачать отсюда, но новые формироваться вряд ли будут. Там же вы найдете скрипт, с помощью которого можно будет сделать свою собственную сборку.

Обновлено 24.10.20:
В силу некоторых причин пришлось снова расчехлить мой скрипт для формирования бинарных сборок. Только сами бинарные сборки я выкладывать не буду: мне и влом, и места на хостинге жалко, да и проблемы совместимости с разными версиями glibc в разных дистрибутивах.
Вместо этого я адаптировал сам скрипт согласно современным реалиям и выложил его на GitHub - пользуйтесь, если хотите. Скрипт пришлось практически полностью переписать, убрать костыли, а заодно и поддержку сборки из git. Для сборки из git надо писать отдельный скрипт, поскольку там другие пути и сценарии распаковки и сборки. Может займусь этим когда-нибудь.

Rinaldus
()

Мастерская или человек, способный восстановить (напаять новый) MHF4-разъём на 4G-модеме

 

Приветствую.

В силу собственной криворукости я только что сорвал с платы 4G-модема EM7455 один из трёх коаксиальных антенных разъёмов MHF4. Дорожки и контактные площадки на самой плате не повреждены — я сорвал только внешний цилиндрический «ободок».

Не знает ли кто-нибудь мастерскую, сервисный центр или просто человека, способного/готового напаять на плату новый разъём?

Даже не знаю, что написать в теги и кого скастовать. ncrmnt?

intelfx
()

Посоветуйте софт для поиска дубликатов файлов под Linux

 , ,

Всех приветствую!

Посоветуйте линуксовый софт для поиска дубликатов файлов. Восстановил кучу данных с диска, часть со структурой папок и именами, часть - без. Просматривая мельком восстановленное уже вижу, что часть данных дублируется, иногда неоднократно. Руками не разобрать - всего порядка 370к файлов.

По типам файлов для поиска дубликатов важнее всего фото, видео, документы.

Есть что-то такое под Линукс?

Если не найду софт под Линукс, буду цеплять нарды и использовать софт под макось, но лучше бы Линукс, потому что есть ещё 3тб хард в btrfs, на котором часть данных также может дублироваться.

ekzotech
()

Помощь в разборе задач

 , , ,

В связи с тем что я не могу создать сообщение в разделе инженерные и наука,создаю здесь и так есть задача из лабораторной 2 вариант 10(вот ссылка кому интересно https://www.dropbox.com/sh/k1ob0rcnqdzfowz/AACCsKLbtinLdbvhtNvFZM7ra?dl=0): Распознавание образов, описываемых произвольными законами распределения. Взять количество наблюдений 50-100.

1. Реализовать алгоритм распознавания двух классов, описываемых произвольным законом распределения с известными параметрами. 2. Провести имитационное моделирование алгоритма. Оценить вероятности ошибок 1-го и 2-го рода. 3. Рассчитать (оценить) теоретические вероятности ошибок и сравнить их с экспериментальными значениями.

1й класс Нормальное распределение mu=10 delta=3 2й класс Распределение Вейбулла mu=1.5 delta=3

И решение:

%task 2,variant 10: [2(1) +10(1)]
clc;
n = 100;
x1 = rand(n,2);
mu1 = 10;
sigma1 = 3;
x2 = rand(n,2);
mu2 = 1.5;
sigma2 = 3;
y1 = normpdf(x1(:,1),mu1,sigma1);
y2 = wblpdf(x2(:,1),mu2,sigma2);%weib

g1 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(y1) + (((y1 - mu1).^2)*(mu2^sigma2))./(2*(sigma1^2)*(y1.^sigma2))
g2 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(y2) + (((y2 - mu1).^2)*(mu2^sigma2))./(2*(sigma1^2)*(y2.^sigma2))
g = g1+g2
newmu1 =  log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(mean(y1)) + (((mean(y1) - mu1)^2)*(mu2^sigma2))/(2*(sigma1^2)*(mean(y1)^sigma2));
newsigma1 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(std(y1)) + (((std(y1) - mu1)^2)*(mu2^sigma2))/(2*(sigma1^2)*(std(y1)^sigma2));

newmu2 =  log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(mean(y2)) + (((mean(y2) - mu1)^2)*(mu2^sigma2))/(2*(sigma1^2)*(mean(y2)^sigma2));
newsigma2 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(std(y2)) + (((std(y2) - mu1)^2)*(mu2^sigma2))/(2*(sigma1^2)*(std(y2)^sigma2));

z1 = normpdf(g,newmu1,newsigma1);
z2 = wblpdf(g,newmu2,newsigma2);

l0 = n/2;
error12 = 0;
for i=1:l0
    error12 = error12 + z1(i);
end;
error21 = 0;
for i=l0:1
    error21 = error21 + z2(i);
end;
error12
error21

yt1 = normpdf(x1(:,2),mu1,sigma1);
yt2 = wblpdf(x2(:,2),mu2,sigma2);%weib

gt1 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(yt1) + (((yt1 - mu1).^2)*(mu2^sigma2))./(2*(sigma1^2)*(yt1.^sigma2));
gt2 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(yt2) + (((yt2 - mu1).^2)*(mu2^sigma2))./(2*(sigma1^2)*(yt2.^sigma2));

gt = gt1+gt2;
newmut1 =  log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(mean(yt1)) + (((mean(yt1) - mu1)^2)*(mu2^sigma2))/(2*(sigma1^2)*(mean(yt1)^sigma2));
newsigmat1 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(std(yt1)) + (((std(yt1) - mu1)^2)*(mu2^sigma2))/(2*(sigma1^2)*(std(yt1)^sigma2));

newmut2 =  log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(mean(yt2)) + (((mean(yt2) - mu1)^2)*(mu2^sigma2))/(2*(sigma1^2)*(mean(yt2)^sigma2));
newsigmat2 = log((mu2^sigma2)/(sigma1/(2*pi)^(1/2))) - (sigma2^2 - sigma2)*log(std(yt2)) + (((std(yt2) - mu1)^2)*(mu2^sigma2))/(2*(sigma1^2)*(std(yt2)^sigma2));

zt1 = normpdf(gt,newmut1,newsigmat1);
zt2 = wblpdf(gt,newmut2,newsigmat2);

errort12 = 0;
for i=1:l0
    errort12 = errort12 + zt1(i);
end;
errort21 = 0;
for i=l0:1
    errort21 = errort21 + zt2(i);
end;
errort12
errort21


Правильно ли решение относительно всех вопросов?
Gremlin_
()

Почему нет госстандарта для асимметричного шифрования?

 , , , ,

Добрый день!

Вопрос отнюдь не праздный. Занимаюсь разработкой простого приложения для секьюрного обмена сообщениями по принципу PGP. Столкнулся с тем, что ГОСТами не предусмотрено алгоритмов асимметричного *шифрования* (не путать с электронной подписью по ГОСТ 34.10). Стало непонятно: почему? Мне казалось, что отечественные стандартны должны охватывать весь спектр криптографического функционала, тем более, в «пост-сноудоневскую» эпоху, а тут такой пробел.

Спасибо!

Nikolaevich
()

Платку поиграться за до $100-150, выбор невелик совсем?

 , , , ,

Я вижу ODROID-XU4 за $110 и BeagleBoard-X15 чуть дороже, первая с вентилем, а вторая вроде еще и не вышла в продажу.

Что купить поиграться? Будет как тонкий десктоп, сам линукс буду собирать на базе Void, там пакеты есть для ARMv6, ARMv7, еще будет тестовой управляющей платкой для cnc-станка.

Нужны нормальные cpu и gpu, памяти от 1 гига, идеально, чтобы был S/PDIF, но его в случае чего можно докупить поставить.

slon
()

Почему гнутый линукс не готов не только для десктопа

 , , , ,

Потому что его использование ничем не отличается от бега с препятствиями на минном поле с повязкой на глазах. Для примера возьмём утилиту wget из фонда GNU, которая есть практически во всех дистрибутивах Linux, и попробуем скачать файл с кириллицей в имени. В случае если сервер отдаст 302 Moved — можем получить файл с названием, которое отличается от ожидаемого. Идём читать ман:

‘--trust-server-names’

If this is set to on, on a redirect the last component of the redirection URL will be used as the local file name. By default it is used the last component in the original URL.


Вроде бы всё ясно. Качаем файл с опцией --trust-server-names и получаем нечитаемую кашу из кириллических букв, цифр и процентов в имени. Открываем опять ман:

--restrict-file-names=modes’


If you specify ‘nocontrol’, then the escaping of the control characters is also switched off. This option may make sense when you are downloading URLs whose names contain UTF-8 characters, on a system which can save and display filenames in UTF-8 (some possible byte values used in UTF-8 byte sequences fall in the range of values designated by Wget as “controls”).


Шёл 2015 год, а для нормальной работы с UTF-8 всё ещё нужно указывать какой-то ключ, подтверждающий что ты не Эдик. Но ведь теперь-то я могу быть уверен что с опциями --trust-server-names --restrict-file-names=nocontrol у меня во всех случаях файлы будут сохраняться с нормальными именами? Нет, т.к. даже осилив прочитать весь многостраничный ман у меня нет гарантий что поведение программы во всех случаях соответствует документации, не говоря уже об интуитивности и предсказуемости её поведения, а значит при беге риск нарваться на очередную скрытую мину времён второй мировой по-прежнему сохраняется.

h578b1bde
()

Указатель на указатель на функцию

 

Небольшой и, возможно, глупый вопрос по Си.

void f(void (**some_func)(void*)) {
    (*some_func)(some_func);
}
...
struct {
    void (*func_ptr)(void*);
    ...
} some_struct = { ... };
f((void (**)(void*))&some_struct);

Является ли приведённый выше код корректным?

По сути дела он базируется на двух предположениях:

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

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

Верны ли эти предположения для всех архитектур, где имеет место быть Си?

KivApple
()

RPN калькулятор

 

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

Про MК-161 знаю, но он великоват. Есть еще какие-то DC, но они стоят сотни нефти.

dikiy
()

Как скрыть поля структуры в интерфейсе?

 ,

ЯП: C99

Пытаюсь запилить shared library. Что имеется:

Файл lib.h (он же интерфейс):

typedef struct mystruct mystruct;

mystruct foo();

Файл lib.c (он же реализация):
#include "lib.h"

struct mystruct {
    float float_val;
    short short_val;
}

mystruct foo() {
    mystruct = {.float_val = 1.1};
    return mystruct;
}


Компилится нормально:
gcc -c lib.c -o lib.o -fPIC
gcc -shared -o lib.so lib.o


Проблема, естественно, состоит в том, что использовать хидер (он же интерфейс) практически невозможно, т.к. размера структуры мы не знаем, и, соответственно, юзер свою прогу с использованием либы скомпилить не сможет:
#include "lib.h"

int main() {
    // ...

    mystruct a = foo(); // вот тут плюнет "error: variable ‘a’ has initializer but incomplete type"
    // затем "invalid use of incomplete typedef ‘mystruct’"
    // а затем "storage size of ‘a’ isn’t known"

    // ...
    return 0;
}


Задача:
1) Юзер имеет только интерфейс. Использует только его и shared object.
2) Юзер не имеет доступа к полям структуры. Т.е. mystruct.float_val = 99.99; выполнить нельзя.

ЛОР, подскажи, пожалуйста.

Может внутрь хидера зашибенить какое-то говно типа
struct blablabla {
    char[sizeof(needed_structure)];
};
?

UPD: Решение - opaque pointer. Возвращать структуру а не указатель на неё - моветон. Если так и делать, то лучше открыть структуру вместо велосипедирования.

reprimand
()

Преобразование DOC в HTML на Delphi

 

И желательно чтобы из DOCX тоже преобразование было; Нет руководства, в google был!

KRex
()

В Linux зафиксирована уязвимость CVE-2016-5195

 , ,

Группа Безопасность

В ядре Linux обнаружена уязвимость, позволяющая повысить привилегии локального пользователя.

Причина уязвимости — race condition («состояние гонки») при обработке подсистемой управления памяти copy-on-write операций для частных маппингов памяти, доступной только для чтения. Непривилегированный пользователь может воспользоваться этим для повышения своих привилегий и получения возможности записи в память, размеченную только для чтения.

Патч, устраняющий уязвимость, просуществовавшую в ядре девять лет (начиная с Linux 2.6.22), уже представлен.

>>> Подробности (dirtycow.ninja)

mathcrosp
()

Сортировка пузырьком и делфи

 ,

Почему эта сортировка не работает? Компилятор ошибок не выдает, приложение запускается, но при осуществлении сортировки, приложение крашится, и выскакивает ошибка в связи с вызовом класса исключений...

//MArr- заданный пользователем и собранный из случайных чисел 2 мерный динамический массив из int'ов
//i-строки
//j-столбцы
        i:=Low(MArr);
        Sort:=true;
      
        while Sort do
        begin

        sort:=false;

          Repeat

          begin
          for j:= Low(MArr[i]) to High(MArr[i]) do    
            begin

            // перебор каждой ячейки строки от 1 до последней
            if ( j<High(MArr[i]) ) then
              begin
              if ( MArr[i, j]>MArr[i, j+1] ) then
              begin
              Sort:=True;
              Tmp:=MArr[i, j];
              MArr[i, j]:=MArr[i, j+1];
              MArr[i, j+1]:=Tmp;
              end;
              end

            else if ( i<High(MArr) ) then
            begin
            if ( MArr[i, j]>MArr[i+1, 0] ) then
              begin
              Sort:=True;
              Tmp:=MArr[i+1, 0];
              MArr[i+1, 0]:=MArr[i, j];
              MArr[i, j]:=Tmp;
              end;
            end;
            end;

            Inc(i);
          end;
          until (i=High(MArr)+1);
        end; 
Rot1
()

Где купить Raspberry Pi 3?

 , ,

Хочу к телевизору прицепить Raspberry Pi + OpenELEC + HDD + пульт ДУ от ТВ для просмотра мультимедиа (фото, видео до 1080p).

Собственно несколько вопросов:

1. Где принято покупать Raspberry Pi 3?

2. Пульт от телевизора можно будет прицепить к OpenELEC?

Allakka
()

Аппаратный ускоритель сортировки и поиска.

 , ,

Интересно, существуют ли аппаратные ускорители поиска и сортировки?

Например сортировка. Чип состоит из массива ячеек каждый из которых имеет размер 512 байт. параллельно с длинной ячейкой есть короткая содержащая исходный порядковый номер. Каждая ячейка соединёна с той 2 соседними n-1 и n+1. Когда на ячейки приходит сигнал сортировки. Ячейки обмениваются значениями, таким образом каждый такт значения «тонут» и «всплывают». Когда происходит такт при котором обмен не совершался, обмен считается завершённым. Можно считать значения напрямую или считать их исходные номера.

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

Неужели таких чипов ещё никто не делал?

rezedent12
()

Антикомариная крайне жестокая геноцид-ситема

 ,

Я живу там, где жарко. Я живу там, где есть комары. Я страдаю.
Чтобы хоть в какой-то степени облегчить мои страдания я к старому стриммеру прицепил пару 12В кулеров.
В комнате темно. Есть лишь слабое дежурное освещение и свет монитора.
Эти жалкие свистящие кровопийцы летят к кулерам.
И их там, уродцев сраных, перемалывает лопастями!
Человеческий гений победил! Спасибо тебе, непроизносимый немецкий производитель стриммеров. Ты меня спас.

СОВЕТ: ПОСТАВЬТЕ РЯДОМ С ИСТОЧНИКОМ СВЕТА ВЕНТИЛЯТОР С ХОРОШЕЙ ТЯГОЙ. Комаров, ничтожеств, туда затягивает как в чёрную дыру. Ктулху свидетель!

P.S. Комары летят на тепло и запах пота. Если нет возможности их уничтожить, то помойтесь перед отбоем — будет легче.

Stahl
()

Распределить на равные группы

 

Есть Set<List<String>> listSet. Листы в сете могут быть произвольной длинны. Нужно распределить листы на две группы, чтобы получилось почти одинаковое кол-во по list.size() в левой и правой группе.

Ткните носом в формулу, плз

by_zero
()

systemd и key-файл LUKS/dm-crypt на флешке

 ,

Третьи сутки не могу заставить Debian Stretch (винт полностью зашифрован при установке, /boot вынесен на флешку) стартовать с использованием key-файла на запускной флешке. Многочисленные нагугленные инструкции относятся к до-systemd'шной эре, как его стартовать в новых условиях так и не нашел. Прошу подсказать по теме или дать ссылку где прочитать.

Neuro75
()

Работа с COM-портом через QSerialPort

 , ,

Qt: 5.6.1, GNU/Linux: Gentoo. Пишу программку по обмену данными с счётчиком Меркурий 200 по RS-485. Свисток USB->RS-485: Exar XR21B1411.

Пишу используя QSerialPort.

Проблема в следующем, программа не передаёт/принимает данные, при этом никаких сообщений об ошибках нет.

При этом на serial->open( QIODevice::ReadWrite ) на свисте загораться светодиод, а на serail->close(); гаснет.

Метод serial->write( byte, 7 ) возвращает 7 байт как записанных, а сигнал readyRead() вообще не вызывается.

Да, в винде всё работает, но мне надо бы в линуксе.

~ $ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 011: ID 04e2:1411 Exar Corp. 
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 003: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 003 Device 002: ID 046d:c505 Logitech, Inc. Cordless Mouse+Keyboard Receiver
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Какое может быть решение?

keeper_b
()

Помогите починить dsdt

 ,

Помогите собрать dsdt без ошибок. Сам уже замучился разбираться в этом asl, жутко странный язык, на русском ничего по нему не нашел, а по-английски не готов читать. Ошибки какие-то не типичные. Также не понятно, как asus собрал dsdt интеловским компилятором 2012 года, если у меня он выдает 5 ошибок (может декомпилируется с ошибками?).

aml: http://rgho.st/8ZqBGGyLn

asl: http://rgho.st/8jJbgdf9Y

Декомпиляция:

Intel ACPI Component Architecture
ASL+ Optimizing Compiler version 20160212-64
Copyright (c) 2000 - 2016 Intel Corporation

Input file dsdt.dat, Length 0x161BD (90557) bytes
ACPI: DSDT 0x0000000000000000 0161BD (v02 _ASUS_ Notebook 00000012 INTL 20120711)
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

Parsing completed

Found 18 external control methods, reparsing with new information
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

Parsing completed
Disassembly completed
ASL Output:    dsdt.dsl - 750692 bytes
Обратная компиляция:
Intel ACPI Component Architecture
ASL+ Optimizing Compiler version 20160212-64
Copyright (c) 2000 - 2016 Intel Corporation

Compiler aborting due to parser-detected syntax error(s)
dsdt.dsl   2399:                 Zero
Error    6126 -                    ^ syntax error, unexpected PARSEOP_ZERO

dsdt.dsl   2483:                         Zero
Error    6126 -                            ^ syntax error, unexpected PARSEOP_ZERO

dsdt.dsl  12338:         }
Error    6126 -         ^ syntax error, unexpected '}'

dsdt.dsl  21771:                 Local1 = (0x0A - Local0)
Error    6126 -                      ^ syntax error, unexpected PARSEOP_LOCAL1

dsdt.dsl  24058: 
Error    6126 - syntax error, unexpected $end and premature End-Of-File

ASL Input:     dsdt.dsl - 24058 lines, 750692 bytes, 11855 keywords
Hex Dump:      dsdt.hex - 203 bytes

Compilation complete. 5 Errors, 0 Warnings, 0 Remarks, 0 Optimizations
Ноутбук asus x555ld. Кто в этом разбирается гляньте пожалуйста.

Simarc
()