Jump to content
kikomax

Mavericks 10.9 - Ultrabook Dell Inspiron 14z + FusionDrive

Recommended Posts

Pessoal, estou com algum problemas na rede do meu hack


Consegui fazer a lan funcionar, com a dica do kikomax


Captura_de_Tela_2013_10_25_s_07_32_53.png


agora tem um problema, ela só funciona em manual e com esses parâmetros, mais a velocidade não passa de 9mb, eu tenho uma internet de 30mb, em automatico ela fala que o cabo esta desconectado.



minha kexts


Captura_de_Tela_2013_10_25_s_07_37_40.png


alguém pode me ajudar?

Mobo: GA-B75M-D3H - I5 3330 - 8GB RAM 1333Mhz - HD 230GB | HD 500GB - Vídeo: Sapphire R9 280x - OSx 10.11 & Windows 10
Link to comment
Share on other sites

@dininho, Até agora não vi ninguém usando ela normalmente. Para um melhor desempenho conselho a troca da Wireless ou optar pelo dongle USB.



@topic, Fusion Drive


Screen_Shot_2012_10_23_at_10_35_35_PM.png


Como o texto da imagem acima diz, a transferência de arquivos, aberturas de aplicativos e tempo de boot do sistema aumenta mais ainda com o Fusion Drive, mas para isto, você deve ter um Disco de Estado Sólido (SSD) equipado em seu notebook ou PC. Para Windows essa tecnologia é chamada de Intel Smart Response, onde o sistema vai se adaptando ao seu modo de usar.


Então vamos lá!


1) Prepare o SSD e HDD.


Abra o Utilitário de Disco e selecione o SSD, clique em Partição, em Leiaute de Partição, selecione 1 Partição, ponha um nome amigável, o formato da partição precisa ser Mac OS Expandido (Reg. Cronológico). Em Opções, a tabela de partições tem que ser GUID, com tudo verificado, aplique!


Faça o mesmo com o HDD.



2) Core Storage e Partições.


Abra o Terminal e digite o comando "diskutil list" (sem áspas) e vejas os discos instalados e preparados.

MacBook-Air-de-Maxx:~ Maxx$ diskutil list
/dev/disk0
  #:                       TYPE NAME                    SIZE       IDENTIFIER
  0:      GUID_partition_scheme                        *32.0 GB    disk0
  1:                        EFI EFI                     209.7 MB   disk0s1
  2:                  Apple_HFS a                       31.7 GB    disk0s2
/dev/disk1
  #:                       TYPE NAME                    SIZE       IDENTIFIER
  0:      GUID_partition_scheme                        *500.1 GB   disk1
  1:                        EFI EFI                     209.7 MB   disk1s1
  2:                  Apple_HFS b                       499.8 GB   disk1s2
/dev/disk2
  #:                       TYPE NAME                    SIZE       IDENTIFIER
  0:      GUID_partition_scheme                        *8.1 GB     disk2
  1:                        EFI EFI                     209.7 MB   disk2s1
  2:                  Apple_HFS Install                 7.8 GB     disk2s2
/dev/disk3
  #:                       TYPE NAME                    SIZE       IDENTIFIER
  0:      GUID_partition_scheme                        *1.0 TB     disk3
  1:                        EFI EFI                     209.7 MB   disk3s1
  2:       Microsoft Basic Data HDD-Ext                 931.1 GB   disk3s2
  3:                  Apple_HFS MavericksExt            68.7 GB    disk3s3

Veja que o SSD e HDD são respectivamente disk0 e disk1 (você dever verificar a ordem seu notebook/PC), então ainda no Terminal digite o seguinte comando para criar um novo disco:

diskutil cs create "Fusion Drive" disk0 disk1

MacBook-Air-de-Maxx:~ Maxx$ diskutil cs create "Fusion Drive" disk0 disk1
Started CoreStorage operation
Unmounting disk0
Repartitioning disk0
Unmounting disk
Creating the partition map
Rediscovering disk0
Adding disk0s2 to Logical Volume Group
Unmounting disk1
Repartitioning disk1
Unmounting disk
Creating the partition map
Rediscovering disk1
Adding disk1s2 to Logical Volume Group
Creating Core Storage Logical Volume Group
Switching disk0s2 to Core Storage
Switching disk1s2 to Core Storage
Waiting for Logical Volume Group to appear
Discovered new Logical Volume Group "63020F36-F8C8-42BE-9C2B-D6199BBA3109"
Core Storage LVG UUID: 63020F36-F8C8-42BE-9C2B-D6199BBA3109
Finished CoreStorage operation

 

Com o novo disco criado, agora devemos criar a sua partição. Note que foi criado um LVG (Logical Volume Group) Grupo de Volume Lógico, anote este UUID. Você pode usar todo os dois disco "100%" ou em partes, exemplo: 350GB, 500GB, etc. Vou criar uma partição com mais ou menos 70% e o restante para o Windows. Digite o seguinte comando mais a sua LVG UUID apresentada na tela, para vê-la novamente, digite o comando:

diskutil cs list

CoreStorage logical volume groups (1 found)
|
+-- Logical Volume Group 63020F36-F8C8-42BE-9C2B-D6199BBA3109
   =========================================================
   Name:         Fusion Drive
   Status:       Online
   Size:         531436961792 B (531.4 GB)
   Free Space:   526207410176 B (526.2 GB)
   |
   +-< Physical Volume 4069C52D-1956-41BF-B340-A25E6A91F6AD
   |   ----------------------------------------------------
   |   Index:    0
   |   Disk:     disk0s2
   |   Status:   Online
   |   Size:     31673073664 B (31.7 GB)
   |
   +-< Physical Volume 0D5E297E-E44B-4DC4-A4AE-32650BB61DFD
       ----------------------------------------------------
       Index:    1
       Disk:     disk1s2
       Status:   Online
       Size:     499763888128 B (499.8 GB)

Criando a partição: (Veja que criei uma partição de 390GB, apenas coloque o "g" para Giga. M = Mega, G= Giga, T= Tera, etc)

diskutil cs createVolume 63020F36-F8C8-42BE-9C2B-D6199BBA3109 jhfs+ Mavericks 390g

The Core Storage Logical Volume Group UUID is 63020F36-F8C8-42BE-9C2B-D6199BBA3109
Started CoreStorage operation
Waiting for Logical Volume to appear
Formatting file system for Logical Volume
Initialized /dev/rdisk4 as a 363 GB case-insensitive HFS Plus volume with a 32768k journal
Mounting disk
Core Storage LV UUID: 8B9F2B81-5C77-4EA4-A6B0-2EEF852F8217
Core Storage disk: disk4
Finished CoreStorage operation

Partição criada, para ver a sua partição digite o comando:

diskutil cs list

CoreStorage logical volume groups (1 found)
|
+-- Logical Volume Group 63020F36-F8C8-42BE-9C2B-D6199BBA3109
   =========================================================
   Name:         Fusion Drive
   Status:       Online
   Size:         531436961792 B (531.4 GB)
   Free Space:   136207392768 B (136.2 GB)
   |
   +-< Physical Volume 4069C52D-1956-41BF-B340-A25E6A91F6AD
   |   ----------------------------------------------------
   |   Index:    0
   |   Disk:     disk0s2
   |   Status:   Online
   |   Size:     31673073664 B (31.7 GB)
   |
   +-< Physical Volume 0D5E297E-E44B-4DC4-A4AE-32650BB61DFD
   |   ----------------------------------------------------
   |   Index:    1
   |   Disk:     disk1s2
   |   Status:   Online
   |   Size:     499763888128 B (499.8 GB)
   |
   +-> Logical Volume Family 8B565CC0-0977-4CA3-B016-9C38C3DD18CB
       ----------------------------------------------------------
       Encryption Status:       Unlocked
       Encryption Type:         None
       Conversion Status:       NoConversion
       Conversion Direction:    -none-
       Has Encrypted Extents:   No
       Fully Secure:            No
       Passphrase Required:     No
       |
       +-> Logical Volume 8B9F2B81-5C77-4EA4-A6B0-2EEF852F8217
           ---------------------------------------------------
           Disk:                  disk4
           Status:                Online
           Size (Total):          390000017408 B (390.0 GB)
           Conversion Progress:   -none-
           Revertible:            No
           LV Name:               Mavericks
           Volume Name:           Mavericks
           Content Hint:          Apple_HFS

 

3) Instalação do Mac OS X ou Clonagem.


Você poderá criar uma nova instalação do Mac OS X utilizando um pendrive USB, basta subir a instalação e escolher o disco a ser instalado.

Caso não queira instalar, pode fazer a Clonagem do HDD da instalação atual, neste caso você precisa de um Disco extra, como HDD Externo ou até mesmo um pendrive superior a 16GB.


Neste caso fiz a clonagem do meu Mac OS X para o disco criado "Fusion Drive" usando o CCC (Carbon Copy Cloner), veja a imagem abaixo:


Captura_de_Tela_2013_10_25_s_14_08_44.png


FusionDrive com Mac OS X transferido:


Captura_de_Tela_2013_10_25_s_14_21_56.png



4) Instalando e Configurando o Boot.


Vamos agora para a parte essencial é que o boot, devemos fazer o download da versão binária mais recente do Chameleon. Feito isso, mova a pasta i386 para a raiz do HD atual.


Abra o Terminal e faça login com root e vá para a pasta i386.

Devemos identificar os discos que fazem parte do FusionDrive, para isto, usaremos o diskutil.

diskutil list

/dev/disk0
  #:                       TYPE NAME                    SIZE       IDENTIFIER
  0:      GUID_partition_scheme                        *32.0 GB    disk0
  1:                        EFI EFI                     209.7 MB   disk0s1
  2:          Apple_CoreStorage                         31.7 GB    disk0s2
  3:                 Apple_Boot Boot OS X               134.2 MB   disk0s3
/dev/disk1
  #:                       TYPE NAME                    SIZE       IDENTIFIER
  0:      GUID_partition_scheme                        *500.1 GB   disk1
  1:                        EFI EFI                     209.7 MB   disk1s1
  2:          Apple_CoreStorage                         499.8 GB   disk1s2
  3:                 Apple_Boot Boot OS X               134.2 MB   disk1s3

 

Agora que temos as informações, vamos instalar o boot0 na MBR dos discos 0 e 1 veja os comandos abaixo:

fdisk -f boot0 -u -y /dev/disk0
fdisk -f boot0 -u -y /dev/disk1

Agora vamos instalar o boot1h nas partições Apple_Boot, veja os comandos abaixo:

dd if=boot1h of=/dev/disk0s3
2+0 records in    // Informação que o arquivo gravado/instalado com sucesso
2+0 records out    // Informação que o arquivo gravado/instalado com sucesso
1024 bytes transferred in 0.002425 secs (422276 bytes/sec)    // Informação que o arquivo gravado/instalado com sucesso
dd if=boot1h of=/dev/disk1s3
2+0 records in    // Informação que o arquivo gravado/instalado com sucesso
2+0 records out    // Informação que o arquivo gravado/instalado com sucesso
1024 bytes transferred in 0.003929 secs (260633 bytes/sec)    // Informação que o arquivo gravado/instalado com sucesso

 

Pronto, realizado a instalação do Chameleon, agora é hora da pasta Extra, abra o arquivo org.chameleon.Boot.plist e adicione a opção:

<key>UseKernelCache</key>
<string>Yes</string>

Caso tenha o Chameleon Wizard, abra-o e marque a opção UseKernelCache=Yes, salve-o.


Volte para o Terminal, você deve copiar/mover a pasta Extra para dentro de i386. Neste momento vamos copiar o boot e a pasta Extra para a partição Apple_Boot Boot OS X de ambos os discos que fazem parte do FusionDrive. Veja abaixo:

diskutil mount disk0s3
Volume Boot OS X on disk0s3 mounted    // Informação que a partição foi montada com sucesso
cp boot /Volumes/"Boot OS X"
cp -R Extra /Volumes/"Boot OS X"
diskutil unmount disk0s3
Volume Boot OS X on disk0s3 unmounted    // Informação que a partição foi desmontada com sucesso

Veja que montamos a partição de boot da Apple do disco 0 e copiamos para ela o arquivo boot (Chameleon) e pasta Extra, logo em seguida desmontamos. Faça o mesmo para o disco 1:

diskutil mount disk1s3
Volume Boot OS X on disk1s3 mounted    // Informação que a partição foi montada com sucesso
cp boot /Volumes/"Boot OS X"
cp -R Extra /Volumes/"Boot OS X"
diskutil unmount disk1s3
Volume Boot OS X on disk1s3 unmounted    // Informação que a partição foi desmontada com sucesso

 

Pronto, realizado estes procedimentos, reinicie o notebook/PC.


5) Primeiro Boot.


Quando for dar o primeiro boot depois o FusionDrive instalado, aparecerá os dois disco, pode usar quaisquer para subir o Mac OS X.


IMG_20131025_152610.jpg


Mac OS X carregado com FusionDrive:


Captura_de_Tela_2013_10_25_s_15_39_03.png


Depois é só criar a partição e instalar o Windows.


Scores no Geekbench:

http://browser.primatelabs.com/geekbench2/2337440

http://browser.primatelabs.com/geekbench2/2322085

Link to comment
Share on other sites

Disk Speed Test


Antes (HDD) | Depois (FusionDrive)

Disk_Speed_Test12312.pngDisk_Speed_Test_1.png


Tempo de boot com SSD:


IMG_20131015_142652.jpg


Tempo de boot com FusioDrive:

Com o passar do tempo, o boot vai melhorando.


IMG_20131025_165752.jpg


Tempo de boot com HDD:


Sem a foto, mas é demorado.

Link to comment
Share on other sites

Link to comment
Share on other sites


Valeu :D

Com mulita leitura, tentativas, conseguir chegar onde estou. Já pensou no que fazer com a Rede??




USB ou miniPCI-E?

 

USB, tenho azar em abrir coisas na garantia, mesmo sem selo.

Qual é o seu mesmo?

Mobo: GA-B75M-D3H - I5 3330 - 8GB RAM 1333Mhz - HD 230GB | HD 500GB - Vídeo: Sapphire R9 280x - OSx 10.11 & Windows 10
Link to comment
Share on other sites

hehe, também fiz isso aqui...


engraçado é o bug no bilho do meu hack, sempre que ligo o pc ele ta no minimo, ai tenho que aumentar no menu " Monitor "

É??! Tentou reparar as permissões com o Utilitário de Disco? Aqui fica normal.

Link to comment
Share on other sites

Veja aqui: http://Olarila.com/forum/viewtopic.php?f=7&t=646


É raro ter que editar SSDT, quando se usa um app pra fazer isso, como o do Pike ela ja vem pronta.


Somente a DSDT vc tem que modificar pra sua maquina.

Thanks & Regards

IdeaPad Gaming 3i  Aspire A515-52 • Clover / OpenCore
We are in a great Forum, so, let's have some fun and learn from each other!

btn_donate_SM.gif

Link to comment
Share on other sites

Eu já tinha visto, só não entendo como funciona... usei esse editor e só tem linhas de códigos lá.


exemplo meu brilho quando ligo meu hack esta em 60%, tenho sempre que aumentar ele ao iniciar, queria deixar ele 100% sempre. Usei o editor mais não achei nada la parecido com brilho, nem sei por onde começar....

Mobo: GA-B75M-D3H - I5 3330 - 8GB RAM 1333Mhz - HD 230GB | HD 500GB - Vídeo: Sapphire R9 280x - OSx 10.11 & Windows 10
Link to comment
Share on other sites

Eu já tinha visto, só não entendo como funciona... usei esse editor e só tem linhas de códigos lá.


exemplo meu brilho quando ligo meu hack esta em 60%, tenho sempre que aumentar ele ao iniciar, queria deixar ele 100% sempre. Usei o editor mais não achei nada la parecido com brilho, nem sei por onde começar....

Tenta aqui. Você ajusta o seu brilho no máximo ou mínimo (escurece totalmente a tela) ainda restaura no login ou reinicialização.


https://itunes.apple.com/us/app/brightness-slider/id456624497?mt=12

Link to comment
Share on other sites

kikomax


você poderia me explicar se não for muito incomodo como se faz DSDT? já li em varios lugares e não entendo nada... tentei falar com você esses dias no skype e não responde


obrigado

Estes dias estou muito ocorrido, por isso ando ausente no Skype. O que precisa editar na DSDT? Pois precisa de muita leitura, entendimento de hexadecimais, reversão/conversão, hardware, etc.

Link to comment
Share on other sites

Estes dias estou muito ocorrido, por isso ando ausente no Skype. O que precisa editar na DSDT? Pois precisa de muita leitura, entendimento de hexadecimais, reversão/conversão, hardware, etc.

 

ave maria. dai eu só manjo de hardware... mais no momento eu queria mesmo arruma o brilho do meu hack pq eu to sentindo que não esta no máximo, quando ele ta carregando a tela fica realmente acesa, mais quando ele inicia ta em 70% ai é a hora daquele programa que você me passou agir e aumentar no máximo mais eu sinto que ele não esta, pq fica meio escurinho, acho que ainda falta uns 15% pra ficar no full...


aqui também só funciona "FN" pra audio, e queria arrumar o som também, por que via HDMI não esta funcionando, o som ao inves de sair na TV sai pelo note ( e sim, já troquei la pra HDMI nas conf do sistema mais não sai nada na tv )



com isso, queria aprender a modificar elas, pra não precisar ficar pedindo tanto... pq abri aquele editor mais só vejo numeros e mais numeros e não sei pra que cada um daquele serve, o que cada um modifica modifica e etc

Mobo: GA-B75M-D3H - I5 3330 - 8GB RAM 1333Mhz - HD 230GB | HD 500GB - Vídeo: Sapphire R9 280x - OSx 10.11 & Windows 10
Link to comment
Share on other sites


ave maria. dai eu só manjo de hardware... mais no momento eu queria mesmo arruma o brilho do meu hack pq eu to sentindo que não esta no máximo, quando ele ta carregando a tela fica realmente acesa, mais quando ele inicia ta em 70% ai é a hora daquele programa que você me passou agir e aumentar no máximo mais eu sinto que ele não esta, pq fica meio escurinho, acho que ainda falta uns 15% pra ficar no full...


aqui também só funciona "FN" pra audio, e queria arrumar o som também, por que via HDMI não esta funcionando, o som ao inves de sair na TV sai pelo note ( e sim, já troquei la pra HDMI nas conf do sistema mais não sai nada na tv )



com isso, queria aprender a modificar elas, pra não precisar ficar pedindo tanto... pq abri aquele editor mais só vejo números e mais números e não sei pra que cada um daquele serve, o que cada um modifica modifica e etc

kkkkkkkkkkkkkkkkk, pois é, quando vi pela primeira vez não entendia nada daquilo, mas lendo no insanelymac e algumas coisas aqui e na web, passei a entender. Até que é legal, mas tem que gosta mesmo viu.

O programa que te passei não funcionou? Eu testei e funciona perfeitamente.


Add: kikomaxx (Skype)

Link to comment
Share on other sites

mais no momento eu queria mesmo arruma o brilho do meu hack pq eu to sentindo que não esta no máximo, quando ele ta carregando a tela fica realmente acesa, mais quando ele inicia ta em 70% ai é a hora daquele programa que você me passou agir e aumentar no máximo mais eu sinto que ele não esta, pq fica meio escurinho, acho que ainda falta uns 15% pra ficar no full...

Se tu quer aprender, então tome!!


_BCL (Query List of Brightness Control Levels Supported)

_BCM (Set the Brightness Level)

_BQC (Brightness Query Current level)


_BCL (Consulta a Lista de Níveis de Controle de Brilho Suportado)


Este método permite que o sistema operacional consulte uma lista de nível de brilho suportado pelo dispositivos integrado de exibição ou seja, uma LCD ou LED. (Este método não permitido para monitores conectados externamente). Este método é necessário se um LCD integrado é presente e suporta os níveis de brilho.

Cada nível de brilho é representado por um número entre 0 e 100, e pode ser considerado como uma percentagem. Por exemplo, o valor 50 pode ser o consumo de energia de 50% ou 50% de brilho, tal como definida pelo fabricante.

O OEM pode definir o número 0 como "brilho Zero", que pode significar para desligar a iluminação (por exemplo, o painel backlight LCD) do aparelho. Isto pode ser útil no caso de um dispositivo de saída, que ainda podem ser visualizados utilizando apenas luz ambiente, por exemplo, um LCD transflectiva. Se Notificar (dispositivo de saída, 0x85) para "brilho Zero" é emitido, OSPM pode ser capaz de desligar a iluminação, chamando _BCM (0).


Valor de Retorno:

Um package (pacote) de comprimento variável que contém uma lista de números inteiros (Intergers) que representam os níveis de brilho suportados. Cada inteiro (Interger) tem 8 bits de dados significativos.


Exemplo:

Method (_BCL, 0) {
              // Lista de níveis de brilho suportado
Return (Package(7){
   80,        // nível quando o notebook tem a carga completa ou conectado no AC (fonte de energia)
   50,        // nível quando o notebook está na bateria
              // outros níveis suportados:
   20, 40, 60, 80, 100}
}

O primeiro número do package (pacote) é o nível do painel quando está conectado ao AC (fonte de energia). O segundo número do package é o nível do painel quando está na bateria. Todos os outros números são tratados como uma lista de níveis de OSPM irá percorrer quando o usuário alterna (através de um keystroke - combinação de teclas) o nível de brilho da tela. Estes níveis será definido utilizando o método _BCM.


Então em ASL: (Exemplo, o código é muito grande)

                Method (_BCL, 0, NotSerialized)
               {
                   If (LEqual (OSYS, 0x07DC))
                   {
                       Return (Package (0x67)     // Número do pacote (package) 103 valores abaixo... 
                       {
                           0x64, 
                           0x1E, 
                           Zero,    // 0% de Brilho ou seja brilho zero
                           One,     // 1% de Brilho...
                           0x02,   // 2%
                           0x03,   // 3%
                           0x04, 
                           0x05, 
                           0x06, 
                           0x07, 
                           0x08, 
                           0x09, 
                           0x0A, 
                           0x0B, 
                           0x0C, 
                           0x0D, 
                           0x0E,
...
                           0x62,  // 98%
                           0x63,  // 99%
                           0x64  // Valor 100% ou seja o valor máximo de brilho
                       })
                   }
                   Else
                   {
                       Return (Package (0x12)    // Valores que são controlados pelo o usuário e usando as teclas FN.
                       {
                           0x64, 
                           0x1E, 
                           0x06, 
                           0x0C, 
                           0x12, 
                           0x18, 
...
                           0x48, 
                           0x4E, 
                           0x54, 
                           0x5A, 
                           0x64
                       })
                   }
               }

 

_BCM (Ajuste o Nível de Brilho)


Este método permite que OSPM ajuste o nível de brilho de um dispositivo de saída de video embutido (tela LCD).

O sistema operacional só vai definir os níveis que foram relatados através do método _BCL. Este método é necessário se _BCL é implementada.


Argumentos: (1)

Arg0 - Um inteiro (Interger) contendo o novo nível de brilho


Exemplo:

Method (_BCM, 1) { // Set the requestes level }

O método será chamado em resposta a uma mudança de fonte de energia ou a pedido específico do usuário final, por exemplo, quando o usuário pressiona uma tecla de função que representa o controle de brilho.

 

                Method (_BCM, 1, NotSerialized)
               {
                   If (LAnd (LGreaterEqual (Arg0, Zero), LLessEqual (Arg0, 0x64)))  // 1ª 
                   {
                       AINT (One, Arg0)
                       Store (Arg0, BRTL)
                   }
               }

 

Vamos lá:

1ª Verifica se o primeiro parâmetro de entrada Agr0 é maior ou igual à Zero (0%); e também verifica se o primeiro parâmetro de entrada Agr0 menor ou igual à 0x64 (100%).


Onde:

If = Condicional Se

LAnd = Operador Lógico E

LGreaterEqual = Operador Lógico Maior ou Igual a

LLessEqual = Operador Lógico Menor ou Igual a


_BQC (Consulta de Nível de Brilho Atual)


Esse método retorna o nível de brilho atual de um dispositivo de saída de vídeo embutido.


Valor de Retorno:

Um inteiro (Integer) contendo o nível de brilho atual (deve ser um dos valores retornados do método _BCL).

                Method (_BQC, 0, NotSerialized)
               {
                   Return (BRTL)
               }

 


Entendeu agora? rsrs

Lembrando que caso tenha algum usuário mais avançado em DSDT e programação ASL, por favor tendo algo errado, informe por gentileza, pois é muito útil compartilhar informações.


Abraço!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.





×
  • Create New...