Então, parece que o seu IdeaPad Yoga 2 fez o papel da minha maneira. Acabei de descobrir como corrigi-lo com o seguinte:
O rfkill é controlado pelo EC incorporado, que é acionado pelo módulo ideapad-laptop. Este módulo corrige algumas partes erradas no Yoga 2, mas felizmente não de uma forma que quebra permanentemente o material.
O CE se apresenta como um dispositivo de plataforma ACPI, com comandos enumerados e um método de leitura e gravação de propriedade. A estrutura é bastante óbvia se você olhar para o ideapad-laptop.c na sua árvore de código fonte local.
Existem 3 bits de interesse: VPCCMD_W_RF: liga / desliga os dispositivos RF em geral? Este é interessante, pois não é usado em ideapad_laptop.c, mas é inverso, VPCCMD_R_RF -is-. VPCCMD_W_BT: liga / desliga os dispositivos Bluetooth. VPCCMD_W_WIFI: liga / de wi-fi.
Para cada um desses comandos, o envio de um 1 a eles ativa a função e 0 desabilita-os. Eu suspeito que o WRF é realmente não-funcional nas yogas. No entanto, o driver ideapad-laptop verá sua configuração e ativará os sinalizadores persistent rfkill para os dispositivos BT e WIFI.
Eu consertei isso compilando uma versão local do driver ideapad-laptop.c que executa os seguintes comandos o mais rápido possível, então o módulo aborta:
write_ec_cmd(ideapad_handle, VPCCMD_W_RF, 1);
write_ec_cmd(ideapad_handle, VPCCMD_W_BT, 1);
write_ec_cmd(ideapad_handle, VPCCMD_W_WIFI, 1);
Depois disso, certifiquei-me de manter o módulo ideapad-laptop com a opção ideapad-laptop da lista negra em um arquivo em /etc/modprobe.d/whatever.conf.
Eu tenho trabalhado bem desde então.
Infelizmente, o módulo ideapad-laptop mudou de uma versão do kernel para outra, então não posso simplesmente descarregar um módulo construído para o arquivo fonte completo, mas se você procurar esse arquivo por cadeias write_ec_cmd e construir sua própria cópia esse arquivo com instruções como as do link para criar módulos externos, você pode estar bem.
Você provavelmente vai querer colocá-lo em um dos arquivos debugfs para poder executá-lo enviando um arquivo debugfs, depois descarregar o módulo antes de acertar acidentalmente um botão de rfkill.
Você deve ser capaz de listar e ver-se desbloqueado!