> For the complete documentation index, see [llms.txt](https://basic.heavietnam.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://basic.heavietnam.com/universal/patch-am-thanh-voi-applealc.md).

# 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 ![](https://272971286-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FauskGAp5wYbI1xQWn4YZ%2Fuploads%2Fl6mCSQzBH6qnHHUFF6Pa%2Fimage.png?alt=media\&token=b92a5111-6523-4d2b-8afa-43329ae87c0d)
  * 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="https://272971286-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FauskGAp5wYbI1xQWn4YZ%2Fuploads%2FRNBMDi5bYbiBdRkq30Qr%2Fimage.png?alt=media&amp;token=02397841-37c0-497a-ac59-64f39fc13b6e" 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="https://272971286-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FauskGAp5wYbI1xQWn4YZ%2Fuploads%2F3CgdLFYe1Eb18620wKZk%2Fimage.png?alt=media&amp;token=9eeaa242-e4f4-42f0-871c-f9ad8cdebae7" 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`

![](https://272971286-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FauskGAp5wYbI1xQWn4YZ%2Fuploads%2FJ27cWLPzOFh3ofqiyPzv%2Fimage.png?alt=media\&token=355f82c3-a875-44a2-b68c-17edc05f46ec)

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="https://272971286-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FauskGAp5wYbI1xQWn4YZ%2Fuploads%2FD5of7ncxXogXFet8wA5f%2FCleanShot%202023-08-14%20at%2005.00.49.png?alt=media&amp;token=665dac45-bc7b-4828-8525-f13d02abc3cb" 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 %}
