# Patch âm thanh với AppleALC

## **Patch âm thanh**

**B1:** Tải xuống kext `AppleALC` từ nguồn [sau](https://github.com/acidanthera/applealc/releases)

**B2**: Down `hackintool` từ nguồn [sau](https://github.com/headkaze/Hackintool/releases)

**B3**: Mở `Hackintool`, vào tab `Sound` vào mục `ALC Layout ID` chọn layout phù hợp và thay vào config mục `NVRAM ==> boot arg ==>alcid=xx`&#x20;

> &#x20;Của mình sẽ là `alcid=3`&#x20;
>
> > Bạn cũng có thể add `layout-id` vào `device properties`

<details>

<summary>Dùng Device Properties</summary>

B1: Mở `config.plist` bằng Propertree

B2: Tìm đến mục `Root --> DeviceProperties --> PciRoot(0x0)/Pci(0x1f,0x3)`&#x20;

B3: Add `layout-id` phía dưới mục trên&#x20;

B4: Chỉnh type cho `layout-id` Apple ALC cho phép bạn chỉnh type là Hex hoặc Decimal đều được&#x20;

* Nếu bạn chọn Hex thì chỉnh type là `Data`
* Nếu bạn chọn Decimal thì chỉnh type là `Number`

B5: Diền `layout-id` đã xác định trong hackintool vào đây

* Nếu như ở trên bạn set type của layout-id là Data thì bạn sẽ cần phải covert decimal thành hex
  * Bạn có thể dùng công cụ [sau](https://www.rapidtables.com/convert/number/decimal-to-hex.html) để convert Hex sang Decimal ![](/files/NVlnEgTO6cl1iDZzjHyX)
  * Chỉnh sửa layout ID thành một cặp 2 chữ số&#x20;
    * VD: `D -> 0D, C -> 0C, FF -> FF`
  * Sau đó thêm `000000` vào cuối cặp 2 chữ số để được `layout-id` hoàn chỉnh
    * Ví dụ:
      * `layout-id | Data | <0B000000>`
      * `layout-id | Number | <11>`
* Nếu như ở trên bạn set type của `layout-id` là Number thì bạn chỉ việc điền `layout-id` vào thôi mà không cần chuyển đổi

B6: Xoá boot-arg `alcid=xx` để `Properties` này hoạt động

</details>

![](https://lh4.googleusercontent.com/gjx8zKgIrbfDE0iaY5JkMcIiago9ZvPnUUivphi1fMeeJclBNWoMpRo_XiwioV__VNZFIhkE4o5IrrpvCLti-mcuEct8qcOlmhg0xhUJsfMDhCn9HALMT9pYcXHoOEZZ53PFby2A=s0)

**B4**: Snapshot config và restart máy&#x20;

{% hint style="danger" %}
Lưu ý:

* Nếu bạn đã làm và máy vẫn không nhận `mic` hoặc ko nhận `speaker` thì bạn thay tất cả `layout-id` khác
* Thử từng layout-id cho tới khi nhận đầy đủ
* Nếu phần hackintool mục sound của bạn không hiện gì cả thì các bạn sẽ tiến hành patch hpet như hướng dẫn ở dưới
* Hoặc bạn cũng có thể patch Apple-ALC trực tiếp trên windows
  * Tìm Layout-ID phù hợp với codec thông qua trang [sau](https://github.com/acidanthera/AppleALC/wiki/Supported-codecs)
    {% endhint %}

{% hint style="warning" %}
Chú ý:

* Nếu như đã patch hpet vẫn không hiện thì các bạn cứ patch bình thường  không ảnh hưởng lỗi thường  gặp ở gen 10 các bạn vào Linux để xác định codec&#x20;
  * Chỉ gen 9 + mới bị
* Một số bạn dùng efi prebuilt cũng có thể gặp lỗi này
* Bạn có thể kiểm tra xem kext AppleALC có được load hay không thông qua `Hackintool -> Extension`
* Bạn cũng có thể kiểm tra xem layout-id đã được apply hay chưa bằng cách xem `Hackintool --> Sound --> Layout-ID`

  * Hoặc là check Ioreg

  <figure><img src="/files/GTnrzNSnqaGbRVgu6L33" alt=""><figcaption></figcaption></figure>

{% endhint %}

<details>

<summary>Xác định codec ở linux</summary>

B1: vào terminal gõ lệnh sau  `cat /proc/asound/card0/codec#0 > ~/Desktop/codec_dump_0.txt`

<img src="https://lh5.googleusercontent.com/wqEGbGfcAtCuPunnfMGD36w3lXMZWtvBvjdijD7_nlohvhDgvs8mJa7WBUQ6tjDAsvBmKk8nDihwIUA9wxm_iDxJS5QW32fMmvV4ACdmQs2ebkiJs3_2FroH9y07okT8ZAMzyYYh=s0" alt="" data-size="original">

B2: tìm alcid\*\* [tại đây](https://github.com/acidanthera/AppleALC/wiki/Supported-codecs)

</details>

{% hint style="info" %}
Đối với một số bạn thử fix `AppleHDA` không được và `AppleALC` bị lỗi thì các bạn có thể tham khảo cách cài cũng như tinh chỉnh VoodooHDA theo hướng dẫn [tại đây](https://advance.heavietnam.com/audio/patch-audio-voi-voodoohda)
{% endhint %}

## **Patch Hpet, IRQ**

{% hint style="info" %}
Lỗi này thường xảy ra đối với các máy Intel gen 5th  trở xuống
{% endhint %}

<figure><img src="/files/IdfAG5whFxfgy5Kqj93b" alt=""><figcaption><p>khi gặp lỗi sẽ bị như ảnh</p></figcaption></figure>

**B1**: Dump DSDT xem hướng dẫn ở mục [Patch DSDT phần 1](https://advance.heavietnam.com/acpi-advance/patch-dsdt-phan-1)

**B2**: Gõ `D` và kéo file DSDT của bạn vào tiếp nhấn enter

![](https://lh4.googleusercontent.com/v_l7aP6THGqwuhGA1OZEONrHCIgvf5c9KVKHrnU-XK8O26PoDtAOf7Aclv-Dek-kcq51LMdKfaUYjlGqEkOILrEG6vGf7rtv2Xq1E2Ad_2lbStIz4-F1QrjdWc8z4qR_obhaLgoj=s0)

**B3**: Chọn mục `patch hpet` chọn sau đó chọn `c` và enter

> Hoặc chọn phù hợp nhất cho máy của các bạn

**B4**: Lấy file `SSDT-Hpet.aml` vừa dum copy nó vào folder `ACPI` trong `EFI`

**B5**: Mở file `patches_OC.plist` vừa dump và copy mục patch qua mục patch của file `config`

> Nếu chưa chỉnh gì mục patch của file `config` thì bạn có thể thay thế nó bằng mục patch của file `patches_OC.plist`

![](https://lh6.googleusercontent.com/Gbgd0KtHasm421xvq-9REljmGeEXYOlVGgNbdle0hUmAltAvPJGOei0fX0j-ifqbQ2XGTxgr0ZYsfHoiYZsN1PxT4OEIbzsuBVtqRLPMXJJr3qDXtyfBKCGVekAXkElQkJz8z1t7=s0)

**B6**: Snapshot và restart

{% hint style="warning" %}
Chú ý cho Clover:

* Bạn sẽ copySSDT vào mục `EFI --> Clover --> ACPI --> patched`&#x20;
* Copy file `patches_clover.plist` vào config thay vì là file `patches_OC.plist`
  {% endhint %}

## Sử dụng sound card PCIe <a href="#su-dung-sound-card-pcie" id="su-dung-sound-card-pcie"></a>

B1: Check path PCIe của sound card

> Có thể dùng  [gfxutil](https://github.com/acidanthera/gfxutil/releases) kéo và terminal
>
> > Hoặc bạn có thể dùng `device manager` theo hướng dẫn [tại đây](https://install.heavietnam.com/general/cach-xac-dinh-phan-cung)
> >
> > > Hoặc dùng hackintool như hướng dẫn phía dưới

<details>

<summary>Dùng hackintool tab PCIe</summary>

B1: Mở `hackintool` tab `PCIe`

B2: Tìm đến mục tên `sound card` của bạn trong cột `Device Name`

![](/files/fzIXtvtL05AFoxnseN0c)

B3: Copy `Device Path` của sound card

</details>

B2: Mở `Config.plist` bằng propertree

B3: Add dòng `device-path` bạn tìm được ở bước 1 ở dưới `DeviceProperties -> ADD`

<table><thead><tr><th width="245.33333333333331">Key</th><th width="114">Type</th><th align="center">Ghi chú</th></tr></thead><tbody><tr><td><code>Device-path</code> của các bạn</td><td>Dictionary</td><td align="center">Thay <code>New String</code> thành <strong>PCI Path</strong>. Nhấp hai lần vào <code>Type</code> để chọn định dạng khác</td></tr></tbody></table>

B4: Chọn vào `device-path` vừa add nhấn tổ hớp phím `command +`  và add dòng sau vào

| Key              | Type   | Value |
| ---------------- | ------ | ----- |
| `external-audio` | `Data` | `01`  |

<figure><img src="/files/0d0apML8VdsjeRaAUNUk" alt=""><figcaption></figcaption></figure>

## Xử lý lỗi

### No Mic on AMD

{% hint style="success" %}
Đây là lỗi quá quen thuộc trên AMD và bạn không thể fix một các đơn giản được

Chúng tôi đề xuất hai cách fix:

* [Patch VoodooHDA](https://advance.heavietnam.com/audio/patch-audio-voi-voodoohda)
* [Patch AppleHDA](https://advance.heavietnam.com/audio/patch-apple-hda)
  {% endhint %}

### Kernel Panic on power state changes in 10.15 <a href="#kernel-panic-on-power-state-changes-in-10-15" id="kernel-panic-on-power-state-changes-in-10-15"></a>

{% hint style="success" %}
Các xử lý:

Enable PowerTimeoutKernelPanic trong config.plist:

* `Kernel -> Quirks -> PowerTimeoutKernelPanic -> True`
  {% endhint %}

### AppleALC working inconsistently <a href="#applealc-working-inconsistently" id="applealc-working-inconsistently"></a>

{% hint style="info" %}
Đôi khi phần cứng âm thanh của bạn chưa khởi động khi AppleHDAController được load điều này dẫn đến việc không có âm thanh&#x20;

> Để nhận biết thì khi bạn khởi động sẽ có xác xuất nào đó âm thanh của bạn sẽ hoạt động
> {% endhint %}

{% hint style="success" %}
Để giải quyết vấn đề này tôi để xuất 2 phương pháp

* Add `boot-arg`: `alcdelay=1000`
* Hoặc dùng `DeviceProperties`
  * `alc-delay | Number | 1000`
    * Add `properties` này ở dưới `device-path audio` trong `config.plist`
* Bạn có thể tăng giảm độ trễ nhưng chú ý độ trễ không vượt quá `3000`
  {% endhint %}

### AppleALC không work khi boot từ Windows <a href="#applealc-not-working-from-windows-reboot" id="applealc-not-working-from-windows-reboot"></a>

{% hint style="info" %}
Dấu hiệu:

Khi bạn boot tư windows sang macos nếu apple ALC không hoạt động&#x20;
{% endhint %}

{% hint style="success" %}
Đối với trường hợp này chúng tôi đề xuất 2 phương pháp:

* Add `boot-arg`: `alctcsel=1`
* Hoặc dùng `DeviceProperties`
  * `alctcsel | Data | 01000000`
    * Add `properties` này ở dưới `device-path audio` trong `config.plist`
      {% endhint %}

{% hint style="danger" %}
**Source tham khảo:** <https://dortania.github.io/OpenCore-Post-Install/universal/audio.html#applealc-not-working-correctly-with-multiple-sound-cards>
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://basic.heavietnam.com/universal/patch-am-thanh-voi-applealc.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
