{"id":54774,"date":"2020-01-04T00:00:00","date_gmt":"2020-01-03T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha"},"modified":"2020-02-18T14:02:49","modified_gmt":"2020-02-18T11:02:49","slug":"prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha","title":{"rendered":"A coluna de r\u00e1dio da Internet mais simples \"Kodi\" ou a salva\u00e7\u00e3o do \"tijolo framboesa\"","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"A coluna de r\u00e1dio da Internet mais simples &quot;Kodi&quot; ou a salva\u00e7\u00e3o do &quot;tijolo framboesa&quot;\" src=\"\/wp-content\/uploads\/2020\/01\/c20cd49d9e2ba397946a17ed24c117fd.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h5> Premissas principais: <\/h5>\n<p><\/p>\n<ol>\n<li> H\u00e1 uma antiga placa Raspberry Pi de primeira gera\u00e7\u00e3o n\u00e3o utilizada; <\/li>\n<li> A placa est\u00e1 parada em uma prateleira, sem uso - a placa \"Tijolo\"; <\/li>\n<\/ol>\n<p><\/p>\n<h5> O que gostaria de obter: <\/h5>\n<p><\/p>\n<ol>\n<li> Em um determinado momento (por exemplo, de acordo com o humor)<br \/>\na placa deixa de ser um \"Tijolo\" e um cart\u00e3o de mem\u00f3ria m\u00e1gico \u00e9 inserido; <\/li>\n<li> Um cabo Ethernet \u00e9 conectado \u00e0 placa e um plugue de coluna dom\u00e9stica comum ou fones de ouvido; <\/li>\n<li> Depois de ligar, o ex-\"Tijolo\" - <strong>canta<\/strong><\/li>\n<\/ol>\n<p><\/p>\n<h5> A ideia principal: <\/h5>\n<p><\/p>\n<ol>\n<li> M\u00ednima movimenta\u00e7\u00e3o necess\u00e1ria para qualquer configura\u00e7\u00e3o, no caso ideal, conectamos apenas o cabo \"Ethernet\", alimenta\u00e7\u00e3o e colunas, e n\u00e3o fazemos mais nada, de jeito nenhum; <strong>\"de forma alguma\";<\/strong><\/li>\n<li> O ex-\"Tijolo\" suportar\u00e1 por exemplo 20 esta\u00e7\u00f5es de r\u00e1dio da Internet de f\u00e1brica, a mudan\u00e7a entre elas pode ser acionada ao pressionar a roda do mouse ou em um determinado pino GPIO (conectar dois fios e fech\u00e1-los (meu sonho de inf\u00e2ncia));<\/li>\n<li> O controle \u00e9 feito atrav\u00e9s de um canal de r\u00e1dio, e esse canal de r\u00e1dio pode ser um mouse sem fio comum;<\/li>\n<li> Pegar um sistema j\u00e1 pronto, distribuir no \"Yocto Project\"<br \/>\nou seja, como sempre, n\u00e3o faremos nada, pois tudo j\u00e1 est\u00e1 feito.<br \/>\n(basta colocar um observador externo do outro lado <strong>\"da TV\"<\/strong>);<\/li>\n<\/ol>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h5>Descri\u00e7\u00e3o<\/h5>\n<p>\nA coluna de r\u00e1dio da Internet mais simples \"KODI\"<br \/>\nA montagem \u00e9 destinada a placas Raspberry Pi 1 antigas<br \/>\n(empoeiradas em algum lugar na prateleira, mas ainda prontas para trabalhar)<\/p>\n<p>Por padr\u00e3o, \u00e9 usada uma lista m3u8 com 12 esta\u00e7\u00f5es de r\u00e1dio da Internet.<\/p>\n<p>Sup\u00f5e-se que a placa funcione sem sa\u00edda HDMI, e para deslig\u00e1-la, basta desconectar o adaptador de energia da tomada. E como controle remoto ultramoderno e sem fio, voc\u00ea pode usar seu super mouse sem fio (ou conectar um mouse comum com fio).<\/p>\n<p>Ao ligar, a interface de rede \u00e9 configurada por padr\u00e3o via protocolo DHCP, e a \u00faltima esta\u00e7\u00e3o de r\u00e1dio lembrada da lista \u00e9 tocada, o controle de volume da reprodu\u00e7\u00e3o \u00e9 feito com um mouse comum: <br \/>\n(finalmente, defina seu mouse como a \"gerente de controle\" e parabenize-a, ela merece)<\/p>\n<pre><code class=\"html\">  rolagem para frente - aumentar o volume\n  rolagem para tr\u00e1s - diminuir o volume\n  pressionar e segurar (3 segundos ou mais) o bot\u00e3o direito do mouse\n                   - selecionar a pr\u00f3xima esta\u00e7\u00e3o de r\u00e1dio\n  pressionar e segurar (3 segundos ou mais) o bot\u00e3o esquerdo do mouse\n                   - selecionar a esta\u00e7\u00e3o de r\u00e1dio anterior\n<\/code><\/pre>\n<p><\/p>\n<blockquote><p>Para adicionar sua pr\u00f3pria lista de esta\u00e7\u00f5es de r\u00e1dio da Internet <br \/>\nvoc\u00ea sempre pode conectar um cabo HDMI da TV <br \/>\ne usar a interface gr\u00e1fica padr\u00e3o do Kodi 17.6<br \/>\n(desligue a placa, conecte o HDMI e ligue o adaptador de energia)<\/p>\n<p>Menu principal do Kodi =&gt; \"Complementos\" =&gt; \"Meus Complementos\" <br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=&gt; \"Clientes PVR\" =&gt; \"PVR IPTV Simple Client\"\n<\/p><\/blockquote>\n<p><\/p>\n<h5> Implementa\u00e7\u00e3o inicial <\/h5>\n<p> (poss\u00edvel)<br \/>\nInicialmente, quando decidi criar a \"Caixa de Som de Internet\", eu planejava o seguinte:<\/p>\n<ul>\n<li> Uma distribui\u00e7\u00e3o minimalista de console no Yocto Project; <\/li>\n<li> O fluxo de \u00e1udio \u00e9 reproduzido atrav\u00e9s do GStreamer; <\/li>\n<li> A interface de rede \u00e9 configurada via DHCP; <\/li>\n<\/ul>\n<p>\nE essa solu\u00e7\u00e3o tem v\u00e1rias vantagens:<\/p>\n<ol>\n<li> Bastante r\u00e1pida (tempo de inicializa\u00e7\u00e3o de 30-40 segundos ap\u00f3s a alimenta\u00e7\u00e3o);<\/li>\n<li> Bastante confi\u00e1vel (menos programas, menos pontos de falha);<\/li>\n<li> A distribui\u00e7\u00e3o de console \u00e9 muito mais f\u00e1cil de ser convertida para o modo somente leitura<br \/>\n ou seja, os programas n\u00e3o gravam nada no sistema de arquivos raiz<br \/>\n (e o sistema de arquivos em um cart\u00e3o SDHC \u00e9, na minha opini\u00e3o, o primeiro candidato a falhas);<\/li>\n<\/ol>\n<p>\n<b class=\"spoiler_title\">Nota:<\/b> <\/p>\n<pre><code class=\"bash\">    No Yocto, \u00e9 poss\u00edvel converter o sistema de arquivos raiz (rootfs) para o modo somente leitura de maneira bastante simples, alterando um par\u00e2metro durante a constru\u00e7\u00e3o. De forma padr\u00e3o, o Yocto oferece duas op\u00e7\u00f5es: 1) Opera\u00e7\u00e3o do sistema de arquivos no modo normal de leitura\/grava\u00e7\u00e3o (como funciona em todas as distribui\u00e7\u00f5es de prop\u00f3sito geral, por exemplo, Ubuntu) 2) Opera\u00e7\u00e3o do sistema de arquivos no modo somente leitura (como funciona em distribui\u00e7\u00f5es especializadas, por exemplo, em roteadores). No modo somente leitura, todos os diret\u00f3rios onde normalmente os dados de aplicativos e servi\u00e7os s\u00e3o gravados durante a opera\u00e7\u00e3o s\u00e3o montados na mem\u00f3ria RAM (por exemplo, o diret\u00f3rio \/var\/log e assim por diante). Os dados s\u00e3o v\u00e1lidos apenas para a sess\u00e3o atual e ap\u00f3s o desligamento, os dados s\u00e3o perdidos. Se no Yocto Project voc\u00ea especificar durante a constru\u00e7\u00e3o para usar \"somente leitura\", ent\u00e3o ap\u00f3s a constru\u00e7\u00e3o sua distribui\u00e7\u00e3o ser\u00e1 configurada apenas para leitura, mas voc\u00ea sempre pode adicionar a possibilidade de uma transi\u00e7\u00e3o din\u00e2mica de \"somente leitura\" para \"leitura\/grava\u00e7\u00e3o\", mas essa \u00e9 uma hist\u00f3ria completamente diferente ...\n    <\/code><\/pre>\n<p>\nE uma desvantagem principal:<\/p>\n<p>\"\u00c9 preciso faz\u00ea-lo\", ou seja, eu preciso gastar N noites <br \/>\n(geralmente ap\u00f3s o trabalho, e esse \u00e9 o momento mais ineficiente, nesse hor\u00e1rio o c\u00e9rebro j\u00e1 n\u00e3o pensa, geralmente est\u00e1 dormindo)<\/p>\n<p>E ainda, meu artigo anterior no Habr eu escrevi sobre o centro multim\u00eddia <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/467443\">Kodi e Yocto<\/a><\/noindex> projeto<br \/>\ne a possibilidade de continuar na mesma linha superou meu impulso de pesquisa. Isso ser\u00e1 abordado no pr\u00f3ximo cap\u00edtulo.<\/p>\n<h5> Transformando o Kodi em uma coluna de r\u00e1dio da internet <\/h5>\n<p>\nPara adicionar a funcionalidade que preciso, adicionarei mais um m\u00e9todo na receita de constru\u00e7\u00e3o da distribui\u00e7\u00e3o descrita anteriormente <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/467443#distrib_recipe_koditv\"> artigo <\/a><\/noindex> veja o arquivo berserk-image.bb <\/p>\n<pre><code class=\"bash\">GUI_SETTINGS = \"home\/root\/.kodi\/userdata\/guisettings.xml\"\n\n# configura\u00e7\u00e3o do \u00faltimo canal de TV selecionado (1-fundo 2-pr\u00e9via)\nF1_LINE = \"0\"\nR1_LINE = \"1\"\n# configura\u00e7\u00e3o de sa\u00edda de som, apenas a sa\u00edda de \u00e1udio anal\u00f3gica est\u00e1 sempre conectada\nF2_LINE = \"PI:HDMI\"\nR2_LINE = \"PI:Analogue\"\n# j\u00e1 que o HDMI n\u00e3o \u00e9 utilizado por padr\u00e3o, desativo a atualiza\u00e7\u00e3o autom\u00e1tica\n# para evitar que a energia v\u00e1 embora e os dados permane\u00e7am n\u00e3o gravados\nF3_LINE = \"0\"\nR3_LINE = \"2\"\n\n\n# m\u00e9todo respons\u00e1vel por adicionar a configura\u00e7\u00e3o:\n# que transforma \"Smart TV\" em \"simples coluna de r\u00e1dio da Internet\"\nadd_radio_guisettings() {\n    sed -i \"s|${F1_LINE}|${R1_LINE}|\" ${IMAGE_ROOTFS}\/${GUI_SETTINGS}\n    sed -i \"s|${F2_LINE}|${R2_LINE}|\" ${IMAGE_ROOTFS}\/${GUI_SETTINGS}\n    sed -i \"s|${F3_LINE}|${R3_LINE}|\" ${IMAGE_ROOTFS}\/${GUI_SETTINGS}\n}\n\n\nFIND_STR = \"touch .\/tmp\/.FIRST_RUN.\"\nSCRIPT_FIRST_RUN = \"etc\/init.d\/first-run.sh\"\n# j\u00e1 que a sa\u00edda HDMI pode n\u00e3o ser utilizada,\n# \u00e9 necess\u00e1rio desativar a \"boas-vindas do Kodi\"\noff_kodi_welcome() {\n    sed -i \"s|${FIND_STR}|#&amp;|\" ${IMAGE_ROOTFS}\/${SCRIPT_FIRST_RUN}\n}\n<\/code><\/pre>\n<p>\nOs m\u00e9todos s\u00e3o destinados a modificar o sistema de arquivos raiz antes da forma\u00e7\u00e3o da imagem do distribuidor em um \u00fanico arquivo raw, que \u00e9 gravado no cart\u00e3o de mem\u00f3ria com o comando <strong> dd <\/strong><\/p>\n<p>Isso \u00e9 feito da seguinte maneira:<br \/>\n<strong>ROOTFS_POSTPROCESS_COMMAND += \u00abadd_radio_guisettings; off_kodi_welcome;\u00bb <\/strong><\/p>\n<p>Em resumo, no arquivo de configura\u00e7\u00e3o principal do Kodi 17.6, tr\u00eas itens s\u00e3o alterados<\/p>\n<ul>\n<li> Configura\u00e7\u00e3o do \u00faltimo canal de TV selecionado; <\/li>\n<li> Configura\u00e7\u00e3o da sa\u00edda de som, apenas a sa\u00edda de \u00e1udio anal\u00f3gica est\u00e1 sempre conectada; <\/li>\n<li> Desativa\u00e7\u00e3o da atualiza\u00e7\u00e3o autom\u00e1tica; <\/li>\n<li> <b class=\"spoiler_title\">Nota:<\/b>\n<pre><code class=\"html\">    A \u00fanica dificuldade que tive foi que eu precisei trazer o arquivo do banco de dados no formato sqlite =&gt; TV29.db, que indica o canal de TV atualmente sendo reproduzido (j\u00e1 que por padr\u00e3o nenhum canal est\u00e1 selecionado), e isso n\u00e3o pode ser feito atrav\u00e9s da configura\u00e7\u00e3o xml no Kodi.\n    <\/code><\/pre>\n<\/li>\n<\/ul>\n<p>\nsequ\u00eancia de a\u00e7\u00f5es mais detalhada para cada item:<\/p>\n<p>1) Clique no \u00edcone \"engrenagem\" no canto superior esquerdo da tela<br \/>\ne selecione o item \"Configura\u00e7\u00f5es PVR e TV\" (imagem de uma televis\u00e3o com duas antenas)<br \/>\nem seguida, no lado esquerdo do menu, escolha o item \"Reprodu\u00e7\u00e3o\" e na se\u00e7\u00e3o central \"Geral\"<br \/>\nespecifique no menu suspenso \"Continuar com o \u00faltimo canal ao iniciar\"<br \/>\nselecionando a configura\u00e7\u00e3o \"Pr\u00e9via\"<\/p>\n<p>ou de maneira mais visual:<\/p>\n<pre><code class=\"bash\">      \"Configura\u00e7\u00f5es PVR e TV\" \n       =&gt; \"Reprodu\u00e7\u00e3o\" \n       =&gt; \"Continuar do \u00faltimo canal ao iniciar\" =&gt; \"Em primeiro plano\"\n<\/code><\/pre>\n<p>\n2) Clique no \u00edcone de 'engrenagem' no canto superior esquerdo da tela e selecione:<\/p>\n<pre><code class=\"bash\">       \"Configura\u00e7\u00f5es do sistema\"  \n       =&gt; \"Complementos\" =&gt; \"Atualiza\u00e7\u00f5es\" =&gt; \"Nunca verificar atualiza\u00e7\u00f5es\"\n<\/code><\/pre>\n<p>\n3) Clique no \u00edcone de 'engrenagem' no canto superior esquerdo da tela e selecione:<\/p>\n<pre><code class=\"bash\">       \"Configura\u00e7\u00f5es do sistema\" \n       =&gt; \"\u00c1udio\" =&gt; \"Dispositivo de sa\u00edda de \u00e1udio\" =&gt; \"PI: Anal\u00f3gico\"\n<\/code><\/pre>\n<p><\/p>\n<h5> Como passei dois anos assistindo TV de forma errada. <\/h5>\n<p>\nDevo admitir que ao longo de dois anos n\u00e3o aprendi a assistir TV corretamente.<\/p>\n<p>Normalmente assisto TV na cozinha. A TV est\u00e1 conectada a uma placa Raspberry Pi 2B, e a placa possui conectores Ethernet e HDMI. A energia da placa \u00e9 fornecida atrav\u00e9s de um cabo USB comum, que est\u00e1 conectado \u00e0 porta USB da TV; ou seja, basicamente, ligar a TV com o controle remoto tamb\u00e9m fornece energia \u00e0 placa Raspberry Pi, e desligar a TV pelo controle, imediatamente desliga a energia da placa Raspberry Pi.<\/p>\n<p>Sim, estou bem ciente de que isso n\u00e3o \u00e9 o ideal, porque o sistema de arquivos raiz do centro de m\u00eddia Kodi (ext3) opera em um modo normal de leitura\/escrita. Mas sou uma pessoa pregui\u00e7osa, e por enquanto decidi verificar por quanto tempo posso desligar o sistema antes que ele pare de inicializar completamente, mas, infelizmente, em dois anos n\u00e3o consegui fazer isso (talvez eu s\u00f3 tenha tido sorte, n\u00e3o sei).<\/p>\n<p>E, na minha opini\u00e3o, se esse modo funcionou para minha TV, ele tamb\u00e9m funcionar\u00e1 para uma 'simples caixa de r\u00e1dio pela Internet', e como forcei a desativa\u00e7\u00e3o das atualiza\u00e7\u00f5es autom\u00e1ticas de plugins do Kodi, a probabilidade de falha no sistema de arquivos se torna ainda menor. At\u00e9 agora, n\u00e3o vejo problemas com isso.<\/p>\n<p><b class=\"spoiler_title\">Nota:<\/b> <\/p>\n<pre><code class=\"bash\">    Mas voc\u00ea sempre pode, se desejar, usar um comando yocto \n    IMAGE_FEATURES += \"read-only-rootfs\"\n\n    e um pouco de m\u00e1gica para alterar seu sistema em modo 'somente leitura'.\n    <\/code><\/pre>\n<p>A distribui\u00e7\u00e3o 'caixa de r\u00e1dio pela Internet' descrita neste artigo \u00e9 destinada ao uso dom\u00e9stico, e o principal para uma distribui\u00e7\u00e3o dom\u00e9stica \u00e9 ter uma interface gr\u00e1fica bonita. Na minha opini\u00e3o, \u00e9 muito dif\u00edcil ou quase imposs\u00edvel ensinar um usu\u00e1rio comum a digitar comandos m\u00e1gicos incompreens\u00edveis no console, al\u00e9m de que eles nem sabem o que \u00e9 isso. Mas uma interface gr\u00e1fica \u00e9 perfeitamente aceit\u00e1vel.<\/p>\n<p>E este \u00e9, sem d\u00favida, meu principal argumento a favor de uma distribui\u00e7\u00e3o n\u00e3o console. A interface gr\u00e1fica do usu\u00e1rio acolhedora do Kodi, embora n\u00e3o seja estritamente necess\u00e1ria, est\u00e1 dispon\u00edvel.<br \/>\n(Eu quase me esqueci de mencionar que \u00e9 poss\u00edvel controlar o Kodi remotamente, por exemplo, pelo smartphone, instalando o aplicativo \"Yatse\", e isso pode ser uma vantagem para alguns.)<\/p>\n<h3> Configura\u00e7\u00e3o do Kodi para controle via mouse <\/h3>\n<p>\n<b class=\"spoiler_title\">Agora, a Rocket<\/b><\/p>\n<pre><code class=\"xml\">VolumeUp\n          VolumeDown\n          ChannelDown\n          ChannelDown\n          ChannelUp\n          <!-- configura\u00e7\u00e3o rocket -->\n<\/code><\/pre>\n<p>A configura\u00e7\u00e3o redefine eventos globais para os seguintes elementos:<\/p>\n<ul>\n<li> rolagem do bot\u00e3o do mouse para a frente <\/li>\n<li> rolagem do bot\u00e3o do mouse para tr\u00e1s <\/li>\n<li> clique do bot\u00e3o do meio do mouse <\/li>\n<li> processamento de um clique longo no mouse (3 segundos ou mais),<br \/>\n0 identificador do bot\u00e3o direito, 1 identificador do bot\u00e3o esquerdo <\/li>\n<\/ul>\n<p>informa\u00e7\u00f5es mais detalhadas sobre a configura\u00e7\u00e3o dos eventos do mouse:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/kodi.wiki\/view\/Alternative_keymaps_for_mice\">kodi.wiki\/view\/Alternative_keymaps_for_mice<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/kodi.wiki\/view\/Action_IDs\">kodi.wiki\/view\/Action_IDs<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/kodi.wiki\/view\/Window_IDs\">kodi.wiki\/view\/Window_IDs<\/a><\/noindex><\/p>\n<h5> O que fazer se o sistema a cabo n\u00e3o chegar at\u00e9 voc\u00ea<\/h5>\n<p>\n\"Mas eu n\u00e3o tenho portas Ethernet livres em casa (ou nunca tive)\" \u2014 pode exclamar alguns dos felizes propriet\u00e1rios de placas Raspberry Pi 1 antigas (talvez a placa tenha sido comprada para pesquisa e acabou ficando guardada no arm\u00e1rio)<\/p>\n<p>E como a placa n\u00e3o possui Wifi embutido, sem conex\u00e3o Ethernet ela n\u00e3o \u00e9 muito funcional.<\/p>\n<p>Claro que existe a possibilidade de usar a placa Raspberry Pi 1 sem Ethernet, mas isso exigir\u00e1 alguns esfor\u00e7os de sua parte. Normalmente, essas coisas s\u00e3o interessantes apenas no contexto do aprendizado de algo novo, ou seja, n\u00e3o \u00e9 algo voltado para o usu\u00e1rio.<\/p>\n<p>Assim, vamos considerar uma hip\u00f3tese de uso da placa sem Ethernet:<\/p>\n<p>\u00c9 poss\u00edvel conectar um adaptador USB - Wifi externo, partindo do princ\u00edpio <br \/>\nde que o adaptador deve funcionar bem no Linux <\/p>\n<p><b class=\"spoiler_title\">Nota:<\/b> <\/p>\n<pre><code class=\"bash\">    Infelizmente, alguns adaptadores WiFi n\u00e3o funcionar\u00e3o, isso n\u00e3o \u00e9 uma caracter\u00edstica da distribui\u00e7\u00e3o apresentada neste artigo, mas sim um problema espec\u00edfico de certos drivers de adaptadores WiFi no n\u00facleo Linux. Pode-se afirmar que, neste momento, voc\u00ea n\u00e3o pode simplesmente ir a uma loja e comprar qualquer adaptador WiFi. Em vez disso, voc\u00ea deve escolher um adaptador WiFi de uma lista de menos problem\u00e1ticos e que funcionem bem no Linux. \n\n    Eu verifiquei apenas os seguintes modelos:\n    - Adaptador WiFi com chip Atheros D-Link DWA-126 802.11n (AR9271)\n    - Adaptador WiFi NetGear WNDA3200\n    - Adaptador WiFi NetGear WNA1100\n    - Adaptador WiFi TP-Link TL-WN722N (AR9271)\n    - Adaptador WiFi TL-WN322G v3\n    - Adaptador WiFi TL-WN422G\n    - Adaptador WiFi Asus USB-N53 com chip Ralink RT3572 \n    <\/code><\/pre>\n<p>\nSe voc\u00ea j\u00e1 tem um adaptador WiFi USB, pode verificar se ele funciona bem no Linux da seguinte maneira:<\/p>\n<ul>\n<li>Instale uma distribui\u00e7\u00e3o Linux amplamente utilizada<br \/>\n , como o \"Ubuntu Desktop\" <\/li>\n<li>Inicie o sistema<\/li>\n<li>Conecte seu adaptador WiFi USB<\/li>\n<li>Inicie o gerenciador de rede e tente se conectar ao seu ponto de acesso WiFi <\/li>\n<li>Se tudo funcionar bem e sua conex\u00e3o de internet estiver est\u00e1vel, isso significa que seu adaptador \u00e9 bem suportado e voc\u00ea pode continuar seu trabalho de conex\u00e3o desse adaptador em uma distribui\u00e7\u00e3o especializada e possivelmente com outras vers\u00f5es do n\u00facleo<br \/>\n(se n\u00e3o funcionar, melhor n\u00e3o tentar) <\/li>\n<\/ul>\n<p>\n<strong> Suporte a adaptador WiFi externo no \"Raspberry PI\" <\/strong><\/p>\n<p>Para o funcionamento correto do adaptador WiFi no Linux: precisamos de duas coisas:<br \/>\n<strong>1)<\/strong> Suporte no n\u00facleo Linux para o adaptador WiFi espec\u00edfico<br \/>\n<strong>2)<\/strong> A presen\u00e7a no sistema de um m\u00f3dulo do n\u00facleo para o adaptador WiFi espec\u00edfico<\/p>\n<p>Vamos usar como exemplo o adaptador TP-Link TL-WN722N. Ele tem uma antena simplesmente magn\u00edfica.<br \/>\nVamos identificar o chip no qual a placa est\u00e1 baseada \u2014 no meu caso, \u00e9 o \"AR9271\", <b class=\"spoiler_title\">nota:<\/b> <\/p>\n<pre><code class=\"bash\">    o mais interessante \u00e9 que, para o mesmo modelo de um mesmo fabricante, o chip WiFi pode variar. Por exemplo, j\u00e1 me deparei com o fato de que para o TL-WN722N vers\u00e3o 2, j\u00e1 \u00e9 usado um chip diferente, o Realtek RTL8188, e ele funcionava mal no Linux (naquele momento), infelizmente, \u00e9 assim, ou seja, \u00e0s vezes \u00e9 preciso ficar atento aos pequenos n\u00fameros da vers\u00e3o no verso (escuro) do adaptador.    \n    <\/code><\/pre>\n<p>\nAgora vamos encontrar o nome do par\u00e2metro na configura\u00e7\u00e3o do n\u00facleo referente ao driver do chip AR9271, \u00e9 melhor procurar pela combina\u00e7\u00e3o de palavras \"AR9271 cateee.net\".<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0onde \u00abcateee.net\u00bb \u2014 um site incr\u00edvel com descri\u00e7\u00e3o das configura\u00e7\u00f5es dos m\u00f3dulos do kernel Linux<\/p>\n<p>Imediatamente encontramos o nome da configura\u00e7\u00e3o do kernel \u2014 <strong>CONFIG_ATH9K_HTC<\/strong><br \/>\ne o nome do m\u00f3dulo do kernel que precisamos <strong> ath9k_htc <\/strong><\/p>\n<p>e, em seguida, \u00e9 suficiente indicar o nome do m\u00f3dulo necess\u00e1rio no arquivo de fragmento de configura\u00e7\u00e3o <br \/>\ndo kernel Linux =&gt; recipes-kernel\/linux\/files\/rbpi.cfg, adicione a linha:<br \/>\n<strong> CONFIG_ATH9K_HTC=m <\/strong><\/p>\n<p>Assim, no futuro, voc\u00ea poder\u00e1 conectar qualquer hardware adicional ao seu sistema (desde que j\u00e1 seja suportado no kernel Linux)<\/p>\n<h5> O que fazer se voc\u00ea \u00e9 um construtor do Habr Geek <\/h5>\n<p>\nE cria coisas incr\u00edveis, como <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/477440\"> aqui <\/a><\/noindex> ou se voc\u00ea \u00e9 um estudante e sonha em criar algo parecido. <\/p>\n<p>Logo, pode-se rapidamente pegar algum tipo de tela Touch Screen para RPI no aliexpress, tamb\u00e9m encomendar uma bateria adequada, conectar tudo isso \u00e0 placa Raspberry Pi 1, 2 ou 3 (preferencialmente \u00e0 3, pois possui Wi-Fi embutido), escolher um tema de interface gr\u00e1fica no Kodi, projetado para telas sens\u00edveis ao toque, e voil\u00e0 =&gt; voc\u00ea pode ter um simples reprodutor de \u00e1udio. Claro, ele ser\u00e1 bastante volumoso, mas ser\u00e1 seu.<\/p>\n<pre><code class=\"bash\">  Observa\u00e7\u00e3o:\n  Para montar um centro multim\u00eddia Kodi para a placa mais econ\u00f4mica \n  Raspberry Pi Zero Wifi no yocto, basta alterar duas linhas:\n\n  arquivo de configura\u00e7\u00e3o =&gt; build\/conf\/local.conf\n      MACHINE = 'raspberrypi0-wifi'\n\n  receita de montagem do Kodi =&gt; recipes-mediacentre\/kodi\/kodi_17.bbappend\n      EXTRA_OECONF_append = \"${@bb.utils.contains('MACHINE', \n                            'raspberrypi0-wifi', '${BS_RPI}',  '', d)}\"\n<\/code><\/pre>\n<p><\/p>\n<pre>\n  Se a responsividade do GUI Kodi 17.6\n  devido a um n\u00facleo de processador no Zero parecer\n  enigm\u00e1tica, voc\u00ea pode contornar isso e compilar uma vers\u00e3o mais antiga,\n  mas muito r\u00e1pida, como Kodi 15.2, que \u00e9 mais\n  \"amig\u00e1vel\" nesse aspecto (\u00e0s vezes o legado resolve tudo)\n<\/pre>\n<p>\nInfelizmente, n\u00e3o tenho a placa, ent\u00e3o n\u00e3o posso verificar, mas pelo que sinto, isso deve funcionar.<\/p>\n<p><b class=\"spoiler_title\">Instru\u00e7\u00f5es resumidas para a montagem<\/b> <\/p>\n<pre><code class=\"bash\">    1) Instale as depend\u00eancias do Yocto Project (por exemplo, no Ubuntu): \n    sudo apt-get install -y --no-install-suggests --no-install-recommends \n        gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential \n        chrpath socat cpio python python3 python3-pip python3-pexpect \n        xz-utils debianutils iputils-ping python3-git python3-jinja2 \n        libegl1-mesa libsdl1.2-dev xterm\n\n    2) Baixe e instale o Repo:\n        mkdir ~\/bin\n        curl http:\/\/commondatastorage.googleapis.com\/git-repo-downloads\/repo &gt; ~\/bin\/repo\n        chmod a+x ~\/bin\/repo\n\n    3) Baixe o projeto do github:\n        PATH=${PATH}:~\/bin\n        mkdir radio\n        cd radio\n        repo init -u https:\/\/github.com\/berserktv\/bs-manifest \n                  -m raspberry\/rocko\/radio-rpi-0.2.8.xml\n        repo sync\n\n    4) Compile o projeto:\n        .\/shell.sh\n        bitbake berserk-image\n        \n    Voc\u00ea pode compilar o mesmo para as placas Raspberry Pi 3B Plus, 3B e 2B:\n    repo init -u https:\/\/github.com\/berserktv\/bs-manifest \n              -m raspberry\/rocko\/radio-0.2.8.xml\n    <\/code><\/pre>\n<p><\/p>\n<blockquote><p> instru\u00e7\u00f5es mais detalhadas sobre a constru\u00e7\u00e3o <br \/>\n e grava\u00e7\u00e3o no cart\u00e3o microSDHC <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/467443\/#instruction_koditv\">no artigo anterior<\/a><\/noindex>\n <\/p><\/blockquote>\n<h5> P\u00f3s-escrito <\/h5>\n<p>\nClaro, a ideia de uma coluna de r\u00e1dio pela Internet \u00e9 comum e voc\u00ea encontrar\u00e1 muitos artigos sobre esse t\u00f3pico no Habr, por exemplo <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/475172\">aqui<\/a><\/noindex><\/p>\n<p>E voc\u00ea pode pensar que eu apenas adaptei os requisitos para a solu\u00e7\u00e3o pronta. Para isso, posso responder e dizer que n\u00e3o, honestamente.<\/p>\n<p><b class=\"spoiler_title\">A hist\u00f3ria do Sr. Ervi<\/b> <\/p>\n<pre><code class=\"html\">    Acredite se quiser, a hist\u00f3ria foi assim:\n\n    Nosso escrit\u00f3rio se encontra pr\u00f3ximo a uma empresa que fabrica diversos equipamentos de som, e um dia o diretor dessa empresa, vamos cham\u00e1-lo de senhor \"Ervi\", se aproximou do nosso vice-diretor da filial, o senhor \"Arseniy\", e perguntou a ele qu\u00e3o dif\u00edcil seria reproduzir um fluxo de \u00e1udio em uma placa Raspberry Pi, ou seja, a placa se conecta \u00e0 rede e \u00e0s caixas de som, e \"um som caracter\u00edstico \u00e9 ouvido\".\n\n    Depois disso, o senhor Arseniy se dirigiu ao vice-chefe do meu chefe - o senhor \"Boris\" - e redirecionou a pergunta a ele, e eu, como espectador, acabei decorando essa ideia e a chamei de \"A tarefa dos tr\u00eas chefes\".\n\n    Em suma, tentamos fazer o melhor, mas aconteceu, cita\u00e7\u00e3o - \"Mas o senhor Ervi, como sempre, ajudou.\"\n\n    Algum tempo depois, perguntei ao senhor \"Boris\" sua opini\u00e3o sobre escrever uma pequena nota sobre esse tema no \"Habr\", ao que \"Boris\" respondeu que a altera\u00e7\u00e3o de \"tr\u00eas itens de menu\" no Kodi n\u00e3o trazia nenhuma nova informa\u00e7\u00e3o e n\u00e3o merecia uma men\u00e7\u00e3o separada. Certamente, concordo plenamente com ele, e por isso n\u00e3o vou contar a ele que escrevi algo a esse respeito.\n\n    O artigo foi escrito exclusivamente para a placa \"Raspberry Pi 1\" que peguei do senhor \"Boris\" durante o experimento, e qualquer semelhan\u00e7a com outras placas \"Raspberry Pi 1\" \u00e9 mera coincid\u00eancia.\n    <\/code><\/pre>\n<p>Desejo muitas compila\u00e7\u00f5es boas e variadas, e que at\u00e9 mesmo um antigo \"tijolo\" cante para voc\u00ea este ano.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/482714\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u0438: \u0415\u0441\u0442\u044c \u0441\u0442\u0430\u0440\u0430\u044f \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u043f\u043b\u0430\u0442\u0430 Raspberry Pi \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u044f; \u041f\u043b\u0430\u0442\u0430 \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u0448\u043a\u0430\u0444\u0443 \u043c\u0435\u0440\u0442\u0432\u044b\u043c \u0433\u0440\u0443\u0437\u043e\u043c \u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u2014 \u043f\u043b\u0430\u0442\u0430 \u00ab\u041a\u0438\u0440\u043f\u0438\u0447\u00bb; \u0427\u0442\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c: \u0412 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044e) \u043f\u043b\u0430\u0442\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0435\u0442 \u0431\u044b\u0442\u044c \u00ab\u041a\u0438\u0440\u043f\u0438\u0447\u043e\u043c\u00bb, \u0438 \u0432 \u043d\u0435\u0435 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u043f\u0430\u043c\u044f\u0442\u0438; \u041a \u043f\u043b\u0430\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f Ethernet \u043a\u0430\u0431\u0435\u043b\u044c \u0438 \u0448\u0442\u0435\u043a\u0435\u0440 \u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0431\u044b\u0442\u043e\u0432\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":54775,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-54774","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e \u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u00abKodi\u00bb \u0438\u043b\u0438 \u0441\u043f\u0430\u0441\u0435\u043d\u0438\u0435 \u00ab\u041c\u0430\u043b\u0438\u043d\u043e\u0432\u043e\u0433\u043e\u00bb \u043a\u0438\u0440\u043f\u0438\u0447\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-03T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02:49+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47A mais simples coluna de r\u00e1dio da internet \"Kodi\" ou o salvamento do \"tijolo de framboesa\" | ProHoster","description":"Principais.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e \u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u00abKodi\u00bb \u0438\u043b\u0438 \u0441\u043f\u0430\u0441\u0435\u043d\u0438\u0435 \u00ab\u041c\u0430\u043b\u0438\u043d\u043e\u0432\u043e\u0433\u043e\u00bb \u043a\u0438\u0440\u043f\u0438\u0447\u0430 | ProHoster","og:description":"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435.","og:url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/prostejshaya-internet-radio-kolonka-kodi-ili-spasenie-malinovogo-kirpicha","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-03T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:49+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54774","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 12:41:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:58:22","updated":"2026-01-24 12:41:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/54774","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=54774"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/54774\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/54775"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=54774"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=54774"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=54774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}