1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Маскировка Sata И "желтые Иконки"

Тема в разделе 'DSDT', создана пользователем cvad, 24 ноя 2009.

  1. cvad

    cvad Модератор Команда форума Разработчик

    Симпатии:
    1`059
    Маскировка SATA под нативный ICH8M для ICH9 (ICH8R) чипсетов.

    Хочу прояснить ситуацию для всех владельцев ICH9 (ICH8R) чипсетов.

    Для ICH9 не все так просто.
    Этот чипсет, лишь немного улучшенный вариант чипсета ICH8, тогда как ICH10 отличается уже намного больше.

    В процессе улучшения легаси кекста для AHCI контроллера, было проведено много тестов, и мне удалось определить, что внесение соответствия

    чудесным образом, позволяет избавиться от кернел паник, которые мучали многих его владельцев при переходе на 10.6.
    Что косвенным образом, подтверждает оч.близкое родство этих чипсетов.

    Резюме:

    Для ICH9 (ICH8R) чипсетов, лучшим вариантом, будет маскировка под нативный ICH8M.

    Пример:

    Код:
    Device (SATA)
    {
    Name (_ADR, 0x001F0002)
    Name (_SUN, 0x02) // добавляем эту строчку для показа устройства в профилере.
    // 0x02 - номер для каждого устройства должен быть уникальный
    Method (_DSM, 4, NotSerialized)
    {
    Store (Package ()
    {
    "device-id",
    Buffer ()
    {
    0x29, 0x28, 0x00, 0x00 // Hack the ID to ICH8M (8086:2829)
    },
    
    "device_type",
    Buffer ()
    {
    "AHCI Controller"
    },
    
    "model",
    Buffer ()
    {
    "ICH8M hack (ICH9|ICH8-R SATA/AHCI Controller)" // пишем что нам нравится
    },
    
    "name",
    Buffer ()
    {
    "ICH8M hack (ICH9|ICH8-R SATA/AHCI Controller)" // пишем что нам нравится
    }
    }, Local0)
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
    Return (Local0)
    }
    }
    
    Пропись этого кода в DSDT, позволяет избавиться от использования LegacyAppleAHCIPort.kext (если не учитывать Jmicron).
    Желтизну иконок, IMHO лучше убирать (если мешает ), "натягиванием" своих иконок на иконки дисков.
    ==================================================================================
    Update:
    Маскировка ICH10 под ICH6(ESB2) для того чтобы диски не были "внешними" считается неудачным решением. В случае, когда для вас это важно, лучше используйте IOAHCIBlockStorageInjector.kext или бинарный патч Меняем External на Internal.
     
    Последнее редактирование модератором: 21 окт 2013
  2. TimeWalker

    TimeWalker iГуру

    Симпатии:
    926
    Чтоб избавиться от оранжевости и неизвестности прикинься макрошным ich6.

    0x81, 0x26, 0x00, 0x00
     
  3. apoll

    apoll iПрофи

    Симпатии:
    61
    Конечно не "родное", но получилось  TimeWalker -спасибо!

    [​IMG]


    Ну вот- новый ДСДТ, кому интересно- отображение в профайлере ,и диски нормального "стального цвета"(прописано наверное Фсё!)

    Посмотреть вложение DSDTMacPro1.2APOLL.dsl.zip
     
  4. syava96

    syava96 iНовичок

    Симпатии:
    15
    Ну уж если прикидываться, то лучше чем-то более соответствующим. ICH10 всё-таки ближе к ICH9 чем ICH6.  Добавляем 
    Код:
                   Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x02)
                            {
                                "device-id", 
                                Buffer (0x04)
                                {
                                    0x22, 0x3A, 0x00, 0x00
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                     }
    Как результат в профиле ICH10, ну и LegacyAppleAHCIPort больше не нужен.  На счёт оранжевости, то же всегда интересовало, как в настоящих маках висят те же SATA диски на тех же контроллерах и с цветом всё в порядке. Возможно в том же DSDT как-то можно указать ему это, но как - вопрос. Я решаю эту проблему так:
    Show Spoiler
    mv /System/Library/Extensions/IOStorageFamily.kext/Contents/Resources/External.icns /System/Library/Extensions/IOStorageFamily.kext/Contents/Resources/External.icns.back  
    cp /System/Library/Extensions/IOStorageFamily.kext/Contents/Resources/Internal.icns /System/Library/Extensions/IOStorageFamily.kext/Contents/Resources/External.icns
    Никаких сторонних примочек, полное сохранение функциональности (hot swap/plug), простая подмена иконок.
    Рад, что тема ожила.  
     
    1 человеку нравится это.
  5. GLXOZ

    GLXOZ Adv. iГуру Гуру

    Симпатии:
    583
    Сделал по этому методу на компе жены, не стал выголятья оставил просто ICH8M и скопировал иконку от желтизны и все. Работает без нареканий.
     
  6. SunKi

    SunKi GURU Гуру

    Симпатии:
    570
    Так как использую внешний eSATA винт, то давно отказался от ЛегасиБлокДевайс так как он изменяет функционал SATA портов и просто подменяю екстернал иконки на интернал...
    Считаю, что это далеко не самое изящное решение и потому экпереминтирую с инжектированием параметров для сата портов.
    В связи с этим хотелось бы узнать как через ДСДТ инжектировать параметры типа Boolean и Dictionary !?!?!
    Пробовал прописать так:

    Код:
    Device (PRT5)
    {
    Name (_ADR, 0x05)
    Method (_GTF, 0, NotSerialized)
    {
    Name (PIB4, Buffer (0x07)
    {
    0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
    })
    Return (PIB4)
    }
    Method (_DSM, 4, NotSerialized)
    {
    Store (Package (0x06)
    {
    "Physical Interconnect",
    "SATA",
    "Physical Interconnect Location",
    "External",
    "io-device-location",
    Buffer (0x06)
    { "Bay 5" }
    }, Local0)
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
    Return (Local0)
    }
    
    }
    
    Но конечно в итоге получал вот это:

    [​IMG]

    Так же пробовал с AHCPI Port ESATA, ALPM.
    Все упирается в типы!
    Кто-нибудь знает как решить?
     
  7. SunKi

    SunKi GURU Гуру

    Симпатии:
    570
    Как прописать Dictionary понял:
    Код:
    Method (_DSM, 4, NotSerialized)
    {
    Store (Package (0x04)
    {
    "Protocol Characteristics",
    Package (0x04)
    {
    "Physical Interconnect",
    "SATA",
    "Physical Interconnect Location",
    "Internal"
    },
    "io-device-location",
    Buffer (0x06)
    { "Bay 1" }
    }, Local0)
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
    Return (Local0)
    }
    
    К сожалению проблему это не решило. Картинка становится такой:

    [​IMG]

    В итоге ниже девайс все-таки становится External :(

    Вопрос с Boolean в силе.

    UPD: Нет. Выше приведенный кусок кода не ижектирует Dictionary.... Параметры стали как без прописывания SATA девайса :(
     
  8. VmikV

    VmikV iПрофи

    Симпатии:
    50
    помогите мне понять
    при установке системы я ставил три легася для чипсета
    LegacyAppleAHCIPort.kext
    LegacyAppleIntelPIIXATA.kext
    LegacyIOAHCIBlockStorage.kext
    с их помощью прописывалась инфа в профайлере и убирались желтые иконки.

    Сейчас я прописал инфу о чипсете в DSDT. Теперь эти легаси не нужны.
    Если я удалю все, то у меня иконки дисков становятся желтыми.
    Можно, конечно подменить иконки, но не хочется идти этим путем.
    Если я удалю только два первых легася оставив последний, то получу нормальные иконки дисков.
    Могу я идти этим путем? Не возникнет ли какого-нибудь конфликта?

    В принципе я проблем не вижу, но вдруг...
     
  9. SunKi

    SunKi GURU Гуру

    Симпатии:
    570
    Меняется функционал - пропадает хотплаг. Для винтов внутри корпуса не столь актуально. Для внешних esata уже не подойдет. По-этому на данный момент для меня существует только вариант с подменой иконок.
     
  10. гык-sse2

    гык-sse2 Apple Life Dev Разработчик

    Симпатии:
    987
    К вопросу об AHCI, а точнее о SATA вообще. Вот у меня южный мост ICH7 не M и не R, ID 27c0 (стандартный для этого типа). Поставил SATA-хард. AHCI у меня на плате нет. Т.к. это не P5K, на которой на старом биосе есть AHCI для любых мостов. Все работает, в иореге Controller Name=ICH7, кексты запущены. А в профайлере вместо названия - пустота. В DSDT нет SATA, есть только NATA с кучей PIO + PRIM, SECD, MAST, SLAV. Куда прописать ICH7?
     
  11. sts

    sts iНовичок

    Симпатии:
    18
    Но AppleAHCI к нему цепляется?
    Тогда вместо NATA пишешь SATA, кучу PIO + PRIM, SECD, MAST, SLAV удаляешь - это все для IDE, можно все удалить, главное, был бы

    Device (SATA)
    {
    Name (_ADR, 0x001F0002)
    или какой там, (как бы необходимый минимум).

    Дальше по вкусу, прописать ID, например:

    Method (_DSM, 4, NotSerialized)
    {
    Store (Package (0x04)
    {
    "device-id",
    Buffer (0x04)
    {
    0x81, 0x26, 0x00, 0x00
    },

    "ICH6 SATA/AHCI Controller",
    Buffer (0x04)
    {
    0x00, 0x00, 0x00, 0x00
    }
    }, Local0)
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
    Return (Local0)
    }

    Picture 2. это на P5W64WSPro, ICH7R.
    Ну и другое разное можно, порты перечислить...
     
  12. гык-sse2

    гык-sse2 Apple Life Dev Разработчик

    Симпатии:
    987
    ICH7R, а у меня ICH7 и там нет AHCI вообще. Там есть SATA в режиме эмуляции IDE и все. Если прописываю 27c0 в AppleAHCI, то КП. К нему цепляется какой-то кекст внутри IOATAFamily. Настоящий IDE мне еще очень нужен, там висит 80-гиговый хард.
     
  13. GLXOZ

    GLXOZ Adv. iГуру Гуру

    Симпатии:
    583
    По поводу темы товарища Квада....он прав - это факт, хотя DSDT собранная Кейном с мимикрией под ESB2 работает просто идеально, хотя я не удержался и для эксперимента попробовал подменить ID контроллера.
    difference.
    Слева ICH8M , спрапва ESB2.

    Теперь смотрим на иксбенче.
    Show Spoiler


    Вот ESB2
    Results 139.28
    System Info
    Xbench Version 1.3
    System Version 10.6.2 (10C540)
    Physical RAM 4096 MB
    Model MacPro3,1
    Drive Type ST3320613AS
    CPU Test 200.53
    GCD Loop 333.19 17.56 Mops/sec
    Floating Point Basic 161.89 3.85 Gflop/sec
    vecLib FFT 131.02 4.32 Gflop/sec
    Floating Point Library 318.84 55.52 Mops/sec
    Thread Test 367.03
    Computation 583.68 11.82 Mops/sec, 4 threads
    Lock Contention 267.67 11.52 Mlocks/sec, 4 threads
    Memory Test 237.22
    System 311.26
    Allocate 672.68 2.47 Malloc/sec
    Fill 224.57 10919.14 MB/sec
    Copy 270.36 5584.19 MB/sec
    Stream 191.64
    Copy 181.25 3743.56 MB/sec
    Scale 179.94 3717.53 MB/sec
    Add 203.94 4344.27 MB/sec
    Triad 204.31 4370.77 MB/sec
    Quartz Graphics Test 237.06
    Line 205.75 13.70 Klines/sec [50% alpha]
    Rectangle 268.38 80.13 Krects/sec [50% alpha]
    Circle 228.91 18.66 Kcircles/sec [50% alpha]
    Bezier 248.28 6.26 Kbeziers/sec [50% alpha]
    Text 243.34 15.22 Kchars/sec
    OpenGL Graphics Test 99.49
    Spinning Squares 99.49 126.21 frames/sec
    User Interface Test 364.81
    Elements 364.81 1.67 Krefresh/sec
    Disk Test 46.90
    Sequential 133.83
    Uncached Write 138.15 84.82 MB/sec [4K blocks]
    Uncached Write 113.58 64.26 MB/sec [256K blocks]
    Uncached Read 132.07 38.65 MB/sec [4K blocks]
    Uncached Read 159.42 80.13 MB/sec [256K blocks]
    Random 28.43
    Uncached Write 8.95 0.95 MB/sec [4K blocks]
    Uncached Write 153.19 49.04 MB/sec [256K blocks]
    Uncached Read 65.70 0.47 MB/sec [4K blocks]
    Uncached Read 138.60 25.72 MB/sec [256K blocks]

    А вот ICH8M

    Results 145.76
    System Info
    Xbench Version 1.3
    System Version 10.6.2 (10C540)
    Physical RAM 4096 MB
    Model MacPro3,1
    Drive Type ST3320613AS
    CPU Test 201.03
    GCD Loop 332.89 17.55 Mops/sec
    Floating Point Basic 162.28 3.86 Gflop/sec
    vecLib FFT 131.66 4.34 Gflop/sec
    Floating Point Library 318.90 55.53 Mops/sec
    Thread Test 617.89
    Computation 633.59 12.84 Mops/sec, 4 threads
    Lock Contention 602.95 25.94 Mlocks/sec, 4 threads
    Memory Test 236.15
    System 310.63
    Allocate 669.55 2.46 Malloc/sec
    Fill 224.80 10930.18 MB/sec
    Copy 269.12 5558.52 MB/sec
    Stream 190.48
    Copy 180.09 3719.59 MB/sec
    Scale 178.63 3690.44 MB/sec
    Add 203.06 4325.51 MB/sec
    Triad 203.09 4344.65 MB/sec
    Quartz Graphics Test 237.66
    Line 205.94 13.71 Klines/sec [50% alpha]
    Rectangle 268.46 80.15 Krects/sec [50% alpha]
    Circle 228.73 18.64 Kcircles/sec [50% alpha]
    Bezier 251.36 6.34 Kbeziers/sec [50% alpha]
    Text 243.47 15.23 Kchars/sec
    OpenGL Graphics Test 99.46
    Spinning Squares 99.46 126.17 frames/sec
    User Interface Test 351.10
    Elements 351.10 1.61 Krefresh/sec
    Disk Test 49.79
    Sequential 142.89
    Uncached Write 140.49 86.26 MB/sec [4K blocks]
    Uncached Write 141.37 79.99 MB/sec [256K blocks]
    Uncached Read 128.02 37.47 MB/sec [4K blocks]
    Uncached Read 166.93 83.90 MB/sec [256K blocks]
    Random 30.15
    Uncached Write 9.42 1.00 MB/sec [4K blocks]
    Uncached Write 152.35 48.77 MB/sec [256K blocks]
    Uncached Read 78.27 0.55 MB/sec [4K blocks]
    Uncached Read 138.22 25.65 MB/sec [256K blocks]


    И в логе после пробуждения машины появляется такое собщение:
    kernel[0]: IOHIDSystem::relativePointerEventGated: VBL too high (26204951), capping to 20000000
    с DSDT ESB2 мимикрией такого просто нет.


    Что лучше решать вам.
     
  14. osik

    osik iЮзер

    Симпатии:
    19
    а с 0x22, 0x3a, 0x00, 0x00 не пробовал? просто интересно...
     
  15. GLXOZ

    GLXOZ Adv. iГуру Гуру

    Симпатии:
    583
    Пробовал, но не я , а сам автор DSDT, товарищ Кейн, я только тестировал, была с делана мимикрия УСБ и АТА под ICH10, нормально тоже работало, но Кейн хотел добиться стабильности работы плюс отсутствие дополнительных файлов "анти-желтиков". :) И у него получилось, с его вариантом лог всегда чист.
     
  16. GLXOZ

    GLXOZ Adv. iГуру Гуру

    Симпатии:
    583
    Без проблем , все тут http://www.applelife.ru/topic/5093-intel-dp35dp/page__hl__DP35DP__fromsearch__1
     
  17. kozlek

    kozlek Apple Life Dev Разработчик

    Симпатии:
    1`064
    Это к желтым дискам. Бит 18 в

    Port 0: ABAR + 118h Attribute: R/W, RO, R/WO
    Port 1: ABAR + 198h
    Port 2: ABAR + 218h (Desktop Only)
    Port 3: ABAR + 298h (Desktop Only)
    Port 4: ABAR + 318h
    Port 5: ABAR + 398h
    Port 6: ABAR + 418h

    Это для H55. Для других чипсетов может быть по-другому. Вопрос, как получить ABAR в ДСДТ? В последствии можно для каждого порта выставить в 0, и желтые иконки исчезнут. В описании говорится, что этот бит только для софта, его можно выставлять как угодно, на железный хотплаг это никак не повлияет.

    Скорее всего ЕФИ эппла выствляет эти значения в 0, это самое простое.

    П.С. Я особо не читал, просто нашел инфу. Может АБАР это адрес самого устройства, что скорее всего. Приду домой, поэксперемениитрую.

    П.П.С.
    24h–27h ABAR / SIDPBA AHCI Base Address / SATA Index Data Pair Base Address
     
  18. гык-sse2

    гык-sse2 Apple Life Dev Разработчик

    Симпатии:
    987
    ABAR - это область памяти, которую выделяет BIOS. Если он не выделяет, то включить AHCI программно практически невозможно (хотя кто-то сделал под линуксом, но для конкреттной платы, и там по-моему его выделяло правленное ядро).
    А почему 7 портов?
     
  19. kozlek

    kozlek Apple Life Dev Разработчик

    Симпатии:
    1`064
    PCI Configuration Registers (SATA–D31:F2)

    SATA Controller PCI Register Address Map (SATA–D31:F2) (Sheet 1 of 2)

    offset description
    24h–27h ABAR / SIDPBA AHCI Base Address / SATA Index Data Pair Base Address

    Я не хочу включать, я хочу убрать желтые иконки.
     
  20. гык-sse2

    гык-sse2 Apple Life Dev Разработчик

    Симпатии:
    987
    Да это понятно, просто я пытался начать пытаться включить его на ICH7.
    Ну, значит, надо сначала получить PCI конфигурационное пространство контроллера AHCI
    Кстати, проблема желтых значков есть и на винде: говорят, что XP предлагает извлечь винчестер, с которого она загружена.
     
Similar Threads: Маскировка Sata
Форум Заголовок Дата
DSDT ASRock 775XFire-eSATA2+ Прошу помощи с DSDT 2 апр 2013
DSDT Intel DH77KC (H77 Express) вообще и SATA в частности (нужна помощь) 29 янв 2013

Поделиться этой страницей