Автор Тема: Samsung NP-N145Plus (нетбук)  (Прочитано 11401 раз)

Оффлайн K0T

  • Завсегдатай
  • *
  • Сообщений: 215
  • Simply 7.0.5
    • Email
Re: Samsung NP-N145Plus (нетбук)
« Ответ #15 : 07.04.2018 16:37:16 »
Цитата: Speccyfighter
Нужно искать fixing DSDT с описанием таблицы и исправлять таблицу. Т.е. разворачивать все эти потроха.
Просто рекомпилляция ничего не исправит.

я как бы медленно, но верно и иду в соответствии со статьей,
т.е. теперь после рекомпиляции есть 11 ошибок, которые надо изучить и попытаться пофиксить:
dsdt.dsl    899:                         (CAPB & 0xFFFFFFFC)
Error    6114 -                               ^ Result is not used, operator has no effect

dsdt.dsl    900:                         (CAPB | 0x00)
Error    6114 -                               ^ Result is not used, operator has no effect

dsdt.dsl   1067:                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
Error    6090 -                                             ^ Min/Max/Length/Gran are all zero, but no resource tag

dsdt.dsl   1079:                     0x00000000,         // Length
Error    6043 -                              ^ Invalid combination of Length and Min/Max fixed flags

dsdt.dsl   4190:                 Field (IDEP, DWordAcc, NoLock, Preserve)
Error    6029 -                           ^ Access width is greater than region size

dsdt.dsl   4192:                     PCMD,   16
Error    6030 -                        ^ Access width of Field Unit extends beyond region limit

dsdt.dsl   4196:                 Field (IDES, DWordAcc, NoLock, Preserve)
Error    6029 -                           ^ Access width is greater than region size

dsdt.dsl   4198:                     SCMD,   16
Error    6030 -                        ^ Access width of Field Unit extends beyond region limit

dsdt.dsl   4228:                 Field (IDE1, DWordAcc, NoLock, Preserve)
Error    6029 -                           ^ Access width is greater than region size

dsdt.dsl   4230:                     MAP,    8,
Error    6030 -                       ^ Access width of Field Unit extends beyond region limit

dsdt.dsl   4232:                     PCS,    8
Error    6030 -                       ^ Access width of Field Unit extends beyond region limit

а потом уже исправленный код компилировать

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

Оффлайн K0T

  • Завсегдатай
  • *
  • Сообщений: 215
  • Simply 7.0.5
    • Email
Re: Samsung NP-N145Plus (нетбук)
« Ответ #16 : 08.04.2018 21:05:57 »
пробую начать разбираться с ошибками
dsdt.dsl    885:             Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
Remark   2120 -                        ^ Control Method should be made Serialized (due to creation of named objects within)

dsdt.dsl    899:                         (CAPB & 0xFFFFFFFC)
Error    6114 -                               ^ Result is not used, operator has no effect

dsdt.dsl    900:                         (CAPB | 0x00)
Error    6114 -                               ^ Result is not used, operator has no effect

если смотреть код
            Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
            {
                Local0 = Arg2
                Local1 = (Local0 * 0x04)
                Name (BUF1, Buffer (Local1){})
                BUF1 = Arg3
                Local1 = 0x00
                Local2 = 0x00
                While (Local0)
                {
                    Local2 = (Local1 * 0x04)
                    CreateDWordField (BUF1, Local2, CAPB)
                    If (Arg2)
                    {
                        (CAPB & 0xFFFFFFFC)
                        (CAPB | 0x00)
                    }
                    Else
                    {
                    }

                    Local1++
                    Local0--
                }

                Return (BUF1) /* \_SB_.PCI0._OSC.BUF1 */
            }

на ремарки и варнинги можно не обращать внимания, но так и не понял в чем разница между Serialized и NotSerialized?

гуглил, ничего совсем похожего не нашел, но пришел к выводу что если результат не используется и оператор не дает эффекта, то нафига он тогда нужен?

вариант кода
            Method (_OSC, 4, Serialized)  // _OSC: Operating System Capabilities
            {
                Local0 = Arg2
                Local1 = (Local0 * 0x04)
                Name (BUF1, Buffer (Local1){})
                BUF1 = Arg3
                Local1 = 0x00
                Local2 = 0x00
                While (Local0)
                {
                    Local2 = (Local1 * 0x04)
                    CreateDWordField (BUF1, Local2, CAPB)
                    If (Arg2)
                    {
                    }
                    Else
                    {
                    }

                    Local1++
                    Local0--
                }

                Return (BUF1) /* \_SB_.PCI0._OSC.BUF1 */
            }

при рекомпиляции избавляет от ошибок, остается только
dsdt.dsl    896:                     CreateDWordField (BUF1, Local2, CAPB)
Remark   2089 -                               Object is not referenced ^  (Name [CAPB] is within a method [_OSC])

Оффлайн K0T

  • Завсегдатай
  • *
  • Сообщений: 215
  • Simply 7.0.5
    • Email
Re: Samsung NP-N145Plus (нетбук)
« Ответ #17 : 22.04.2018 20:03:43 »
идем дальше

dsdt.dsl   1065:                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
Error    6090 -                                             ^ Min/Max/Length/Gran are all zero, but no resource tag

                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0x00000000,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length
                    0x00,, , AddressRangeMemory, TypeStatic)

lenght считается так: Maximum - Minimum + 1
т.е. выставляем 0x00000001,         // Length

почти аналогично

dsdt.dsl   1077:                     0x00000000,         // Length
Error    6043 -                              ^ Invalid combination of Length and Min/Max fixed flags

                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xFED40000,         // Range Minimum
                    0xFED44FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length

FED44FFF - FED40000 = 5000 (единицу не добавляем, ибо значения ненулевые)

Оффлайн K0T

  • Завсегдатай
  • *
  • Сообщений: 215
  • Simply 7.0.5
    • Email
Re: Samsung NP-N145Plus (нетбук)
« Ответ #18 : 22.04.2018 20:17:29 »
остаются еще несколько ошибок

dsdt.dsl   4188:                 Field (IDEP, DWordAcc, NoLock, Preserve)
Error    6029 -                           ^ Access width is greater than region size

dsdt.dsl   4194:                 Field (IDES, DWordAcc, NoLock, Preserve)
Error    6029 -                           ^ Access width is greater than region size

dsdt.dsl   4196:                     SCMD,   16
Error    6030 -                        ^ Access width of Field Unit extends beyond region limit

dsdt.dsl   4226:                 Field (IDE1, DWordAcc, NoLock, Preserve)
Error    6029 -                           ^ Access width is greater than region size

погуглив, нашел вариант решения ошибки "Access width is greater than region size":
заменить dWord на Byte
вторая ошибка "Access width of Field Unit extends beyond region limit" убирается при этом сама

итого имеем после рекомпиляции

# iasl -tc dsdt.dsl

Intel ACPI Component Architecture
ASL+ Optimizing Compiler/Disassembler version 20171110
Copyright (c) 2000 - 2017 Intel Corporation

...

ASL Input:     dsdt.dsl - 5965 lines, 204783 bytes, 2736 keywords
AML Output:    dsdt.aml - 22227 bytes, 692 named objects, 2044 executable opcodes
Hex Dump:      dsdt.hex - 208757 bytes

Compilation complete. 0 Errors, 22 Warnings, 44 Remarks, 781 Optimizations, 4 Constants Folded

вроде как все ошибки убраны, теперь осталось понять как это грузить и проверять ...

Оффлайн K0T

  • Завсегдатай
  • *
  • Сообщений: 215
  • Simply 7.0.5
    • Email
Re: Samsung NP-N145Plus (нетбук)
« Ответ #19 : 22.04.2018 23:09:33 »
продолжая выполнять инструкцию https://wiki.archlinux.org/index.php/DSDT#Loading_at_runtime

т.е. используя вариант Loading at runtime

я остановился и не понимаю что надо модернизировать в инструкции, ибо после создания /etc/grub.d/01_acpi и chmod +x /etc/grub.d/01_acpi

#grub-mkconfig -o /boot/grub/grub.cfg
Генерируется grub.cfg …
Найдена тема: /boot/grub/themes/slinux/theme.txt
Found custom ACPI table: /boot/dsdt.aml
/usr/sbin/grub-probe: ошибка: не удалось найти привод GRUB для ${grub_probe} --target=device ${GRUB_CUSTOM_ACPI}. Проверьте device.map.
Found background image: grub.jpg
Найден образ linux: /boot/vmlinuz-un-def
skipping symlink: /boot/vmlinuz-un-def
Найден образ linux: /boot/vmlinuz
Найден образ initrd: /boot/initrd.img
Найден образ linux: /boot/vmlinuz-4.14.32-un-def-alt0.M80P.1
Найден образ initrd: /boot/initrd-4.14.32-un-def-alt0.M80P.1.img
Найден образ linux: /boot/vmlinuz-4.14.24-un-def-alt0.M80P.1
Найден образ initrd: /boot/initrd-4.14.24-un-def-alt0.M80P.1.img
Найден образ linux: /boot/vmlinuz-4.9.35-un-def-alt0.M80P.1
Найден образ initrd: /boot/initrd-4.9.35-un-def-alt0.M80P.1.img
Found memtest image: /boot/memtest-5.01.bin
завершено

что надо еще сделать, чтобы грузить свой dsdt?  :-(
« Последнее редактирование: 22.04.2018 23:31:53 от K0T »

Оффлайн K0T

  • Завсегдатай
  • *
  • Сообщений: 215
  • Simply 7.0.5
    • Email
Re: Samsung NP-N145Plus (нетбук)
« Ответ #20 : 28.04.2018 23:56:47 »
Так и не могу понять и нагуглить, чего делать дальше и как решать проблему
/usr/sbin/grub-probe: ошибка: не удалось найти привод GRUB для ${grub_probe} --target=device ${GRUB_CUSTOM_ACPI}. Проверьте device.map.
если посмотреть тему https://forum.altlinux.org/index.php?topic=41506.msg327416#msg327416
/usr/sbin/grub-install: ошибка: не удалось найти привод GRUB для /dev/disk/by-id/ata-VBOX_HARDDISK_VB36797d6d-c5aa8bd2. Проверьте device.map.
тоже что-то похожее, а если почитать The map between BIOS drives and OS devices , то начинает мучить вопрос: а будет ли работать этот метод вообще (или как правильно задать эти переменные/префиксы) или это с grub в Альтах намудрили?

Оффлайн novitchok

  • Начинающий
  • *
  • Сообщений: 2
Re: Samsung NP-N145Plus (нетбук)
« Ответ #21 : 01.12.2018 03:14:14 »
Нужно искать fixing DSDT с описанием таблицы и исправлять таблицу. Т.е. разворачивать все эти потроха.
Просто рекомпилляция ничего не исправит.
пробуйте по инструкции из arch перебрать dsdt и ssdt в /sys/firmware/acpi/tables/
++ https://habr.com/post/165897/
++ https://vk.com/page-69254254_49261436