Solución de problemas

Se trata de un artículo que contiene los problemas más comunes que se han encontrado los usuarios.

Sugerencia

Para encontrar un elemento específico, presione Ctrl+F para buscar una palabra o frase.

Identificación de la SKU

GetProductInfo API identifica la información de SKU/Edition de IoT Core. El id. de edición o producto se incorporará a la imagen.

PRODUCT_IOTUAP: 0x0000007B = Windows 10 IoT Core

Puede encontrar más información sobre los identificadores de edición aquí.

Asignación de claves virtuales de hardware en Windows 10 IoT Core

Cambie a informes como teclado HID y envíe VK en lugar de controles de consumidor.

Minimizar la asignación de memoria

Si desea minimizar la memoria controlada por el sistema operativo y el procesamiento para mostrar, asegúrese de que el sistema operativo está claro y de que no hay ninguna pantalla conectada. Asegúrese de que la configuración de Intel INF no está faingando una pantalla cuando no está conectada ninguna y configure las salidas para que sean displayPort externas. Esto debería dar lugar a que DWM se ejecute pero actúe como si el monitor estuviera inactivo.

Recuperación de lotes y obtención de volcados de memoria

Para aplicaciones para UWP específicamente:

  1. Obtenga la firma de la tienda de aplicaciones y recibirá telemetría a través del portal de aplicaciones en el Centro de desarrollo. Recibirá pilas de cal, pero no volcados completos.
  2. Puedes usar WerRegisterAppLocalDump para que la aplicación volque los registros y, a continuación, puedes hacer que la aplicación las cargue a donde quieras.
  3. Además, puede instrumentar aún más con VSAppCenter o HockeyApp.

Para problemas del sistema (NTServices, estabilidad del sistema operativo o controlador):

  1. Estamos trabajando en un portal de Información de telemetría de asociados para permitir a los clientes recibir pilas de llamadas e información sobre los servicios bloqueados, los componentes del sistema operativo y los controladores.
  2. Puede tener un script personalizado o exe para recopilar archivos dmp desde el dispositivo.
  3. Puede usar Azure IoT DM para configurar el seguimiento de ETW en el dispositivo según sea necesario y capturar registros.
  4. Puede crear un exe personalizado para llamar a wevtapi.dll y registrar el último motivo de apagado.

Ejecución de SLEEPSTUDY

Si se produce el error 0x080004005 al intentar ejecutar SLEEPSTUDY en Windows 10 IoT Core, deberá hacer lo siguiente para generar un informe SLEEPSTUDY:

  1. Desde SSH/PowerShell, ejecute este comando en IoT COre; powercfg / sleepstudy / xml
  2. Esto generará un "sleepstudy-report.xml".
  3. Copie el informe de sleepstudy-report.xml generado en una máquina de escritorio y ejecute "powercfg/sleepstudy/transformxml sleepstudy-report.xml"
  4. Se generará el sleepstudy-report.html final.

Mantenimiento de aplicaciones y tratamiento con NTServices

Las iteraciones rápidas de aplicaciones se pueden realizar con el App Store o mediante Azure Blob. Con la tienda de aplicaciones, no tienes que pagar por la red CDN ni las perras. También hay cobertura de CDN mundial de forma gratuita con la tienda. Es una buena regla general obtener un id. de la Tienda y una actualización de la Tienda listos para el envío de una actualización rápida de la aplicación.

Establecer la clase Bluetooth del dispositivo en "no un equipo"

Para una buena interoperabilidad y compatibilidad con Bluetooth, es importante que la pila Bluetooth indique una clase adecuada de dispositivo (COD). Los distintos valores se definen mediante el estándar aquí.   De forma predeterminada, Windows lee los datos del factor de forma del valor del tipo de gabinete SmBios (vea la tabla 17 de la página 38) y deriva los campos Clase de dispositivo principal y Clase de dispositivo secundaria del CoD de esa. Si una plataforma desea invalidar el COD predeterminado asignado a través del tipo de gabinete, puede hacerlo estableciendo los valores "COD Major" y "COD Type" documentados aquí.

Establecimiento del nombre del equipo

IoT tiene una herramienta Win32 integrada denominada "SetComputerName".  Se puede llamar a para cambiar el nombre del equipo.  Se requiere un reinicio para cambiar el nombre.  Desafortunadamente, se debe llamar a esta utilidad desde el contexto de administrador y las aplicaciones para UWP que se ejecutan en el contexto de usuario DefaultAccount.   Una manera de solucionar este problema es ejecutar un archivo por lotes desde una tarea programada desencadenada manualmente que llama a SetComputerName.  El archivo por lotes tendrá que leer el nombre de equipo deseado de un archivo de texto en el que la aplicación para UWP principal guardará el nombre.  Por ejemplo, la aplicación para UWP podría guardar un archivo en la carpeta de documentos públicos y el archivo por lotes lo leería desde allí.  La aplicación para UWP tendría que usar el iniciador de procesos (para desencadenar la tarea programada para ejecutarse (por ejemplo, schtasks /run /TN "SetMyComputerNameTask") Lea los documentos de processlauncher aquí Read schTasks docs here (Leer documentos de schTasks aquí).

Compatibilidad con ASUS Tinkerboard y Rockchip

Aunque no admitamos ASUS Tinkerboard y Rockchip de forma oficial, hay casos en los que Rockchip ha colaborado con terceras partes para conseguir que SoC funcionara en Windows 10 IoT Core.

Problema al conectar un dispositivo MBM en itinerancia

Hay dos aspecto que tener en cuenta al habilitar la itinerancia:

  1. profile.xml configura la itinerancia y define el comportamiento para establecer de forma automática una conexión a la red de telefonía móvil. Para establecer un perfil para itinerancia, consulte este artículo.

      <!-- applicability to any combination of home carrier, partner MOs and non-partner MOs, except for HomeAndNonPartner -->
      <xs:simpleType name="roamApplicabilityType">
        <xs:restriction base="xs:token">
           <xs:enumeration value="NonPartnerOnly"/>
           <xs:enumeration value="PartnerOnly"/>
           <xs:enumeration value="HomeOnly"/>
           <xs:enumeration value="HomeAndPartner"/>
           <xs:enumeration value="PartnerAndNonpartner"/>
           <xs:enumeration value="AllRoaming"/>
        </xs:restriction>
      </xs:simpleType>
    
      <xs:simpleType name="roamControlType">
        <xs:restriction base="xs:token">
           <xs:enumeration value="AllRoamAllowed"/>
           <xs:enumeration value="PartnerRoamAllowed"/>
           <xs:enumeration value="NoRoamAllowed"/>
        </xs:restriction>
      </xs:simpleType>
    

    Para establecer un perfil de conexión automática, seleccione "auto":

    <!-- Connection Mode, default is "manual" -->
        <xs:element name="ConnectionMode" minOccurs="0">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <!-- manual connect always -->
              <xs:enumeration value="manual" />
              <!-- auto connect always -->
              <xs:enumeration value="auto" />
              <!-- auto connect when not roaming -->
              <xs:enumeration value="auto-home"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
    
  2. Otro factor es que se debe cumplir la directiva de itinerancia por cada interfaz. De forma predeterminada, esa directiva se establece en FALSE ("solo operador local"). Esto se puede consultar y cambiar en la línea de comandos a través de netsh mbn get/set dataroamcontrol.

    Ejemplo:

        netsh mbn show dataroamcontrol int=*
        netsh mbn set dataroamcontrol interface=Cellular profileset=all state=all
        netsh mbn set dataroamcontrol help
    

    Puede obtener el error 0x139f (ERROR_INVALID_STATE) cuando el dispositivo está en itinerancia pero la directiva de itinerancia no permite la itinerancia de datos; error en una solicitud de conexión enviada a wwansvc.

Problemas de arranque de Raspberry Pi 3B+

Nota

Esta versión para Raspberry Pi 3B+ es una versión preliminar técnica no admitida. Se ha completado la habilitación y la validación limitadas. Para obtener una mejor experiencia de evaluación y para cualquier producto comercial, use Raspberry Pi 3B u otros dispositivos con SoC de Intel, Qualcomm o NXP admitidos. Para solucionar problemas relacionados con el dispositivo Raspberry Pi 3B+, vea nuestra guía de solución de problemas, aquí.

El dispositivo Raspberry Pi 3 modelo B+ es el producto más reciente de la gama Raspberry Pi 3, con un procesador de cuatro núcleos de 64 bits a 1,4 GHz, LAN inalámbrica de banda dual a 2,4 GHz y 5 GHz, Bluetooth 4.2/BLE, Ethernet más rápido y funciones PoE a través de alta disponibilidad de PoE independiente.

Recientemente, muchos clientes interesados en Windows 10 IoT Core han encontrado un problema que hacía que el dispositivo no se pudiera iniciar con normalidad después de instalar la imagen de Windows 10 IoT Core, pero el dispositivo Raspbian funciona bien en él. A continuación se indican algunas sugerencias sobre cómo solucionar el problema de inicio.

Hay algunos problemas conocidos en esta imagen de Insider Preview. Tenga en cuenta lo siguiente:

  • Esta imagen solo está pensada para el dispositivo Raspberry Pi 3B+ y no arrancará en Raspberry Pi 2.
  • La implementación de controlador F5 desde Visual Studio no funciona en Windows 10 IoT Core.
  • Wi-Fi y Bluetooth en la placa no funcionan en el dispositivo Raspberry Pi 3B+.
  • El controlador de pantalla táctil Ft5406 está deshabilitado en Raspberry Pi 3B+.
  • El LED de actividad de tarjeta SD está deshabilitado.

Solo hay dos requisitos al elegir las tarjetas SD que se van a usar con Windows 10 IoT Core. Tendrá que usar una tarjeta SD de clase 10 y asegurarse de que tenga espacio suficiente, al menos 8 GB. Microsoft ha comprobado la compatibilidad de un par de tarjetas SD con Windows 10 IoT Core:

  • Tarjeta Micros SDHC de clase 10 Samsung EVO de 32 GB
  • SanDisk Ultra Micro SDHC, de 16 GB

Por lo general, tendrá que comprobar si la tarjeta SD es falsa o si está dañada. Igualmente la tarjeta SD puede sufrir daños debido a diversos factores, como la escasez de alimentación o una extracción incorrecta. Es importante proteger la tarjeta de memoria de posibles daños.

Para instalar la imagen en una tarjeta SD, puede usar el Panel de Windows 10 IoT Core. Tendrá que elegir "Personalizada" en el campo de la compilación del sistema operativo y luego seleccionar el archivo FFU para instalar.

Compruebe si hay algún error de hardware en el dispositivo. Hay dos LED en la placa Raspberry Pi 3B+, como en el modelo 3B. Uno es para PWR, mientras que el otro es para ACT. El número de parpadeos que emite la luz ACT determinará si la placa arranca o no. En el modelo Raspberry Pi 3B+, el LED de actividad de la tarjeta SD no parpadeará durante algunas fases del arranque.

Cuando el dispositivo está arrancando y muestra la página de espera, espere pacientemente. Por lo general, esto suele durar hasta un minuto. Pero en ocasiones, debido a la velocidad de lectura y escritura de la tarjeta SD, es posible que tarde más tiempo.

Si el dispositivo no puede arrancar normalmente con Windows 10 IoT Core, puede intentar instalar un sistema operativo Linux (como Raspbian) en la tarjeta SD para concretar si el problema se debe al hardware.

Si recibe una "pantalla arco iris", asegúrese de que ha instalado la versión de lanzamiento 3B+, disponible aquí. Aquí puede comprobar el proceso con un tutorial sobre instalación de imágenes de 3B+ enviado por la comunidad.

Comunicación de puerto serie en Windows 10 IoT Core para Raspberry Pi

En el dispositivo Raspberry Pi, la aplicación puede usar los adaptadores de hardware UART y UART USB con la comunicación serie. De forma predeterminada, los pines de transmisión y recepción UART en el encabezado GPIO son el 8 y el 10.

Adaptadores UART y UART USB

Puede leer este artículo para obtener más información sobre cómo inicializar UART0 y realizar una operación de escritura seguida de una de lectura.

Además, la comunicación por radiofrecuencia (RFCOMM) es la comunicación de serie subyacente para Bluetooth clásico. Consulte este ejemplo de GitHub para información sobre la ejecución de aplicaciones para UWP en Windows 10 IoT Core conectadas a través de un dispositivo IoT con Bluetooth de serie.

Si comprueba que el dispositivo no puede leer o escribir datos a través del puerto serie, siga estos pasos para solucionar problemas:

  1. Conecte la transmisión (TX) a la recepción (RX) mediante el puente (mostrado a continuación) y después ejecute el código de ejemplo para comprobar si la aplicación puede leer o escribir datos. Si esto no funciona, es posible que el circuito integrado de la placa esté dañado.

    TX a RX en Raspberry Pi

  2. Asegúrese de que la velocidad en baudios, el protocolo de enlace y los bits de parada están configurados correctamente. Si el puerto serie que se va a probar tiene una interfaz RS232 completa (por ejemplo, DB9), use un conector DB con los cables cruzados RxTx conectados con los cables cruzados de enlace típicos. Algunos puertos RS232 (o adaptadores USB) requieren que se confirmen señales como las de detección de operador (DCD) y DCE listo (DSR) antes de funcionar correctamente.

  3. Si quiere usar adaptadores UART USB en Windows 10 IoT Core, se admiten los siguientes:

  • CP2102 USB 2.0
  • Convertidor serie del módulo TTL
  • FTDI
  • usbser.sys genérico

También puede usar el cmdlet devcon.exe stack y devcon.exe status para comprobar el estado esperado de la pila de controladores y los controladores en Windows 10 IoT Core.

USB\VID_10C4&PID_EA60\0001
    Name: Silicon Labs CP210x USB to UART Bridge
    Setup Class: {4d36e978-e325-11ce-bfc1-08002be10318} Ports
    Controlling service:
        silabser

Mincomm es otra herramienta útil para solucionar problemas de puerto serie. Esta herramienta puede enumerar puertos, proporcionar sus nombres descriptivos y los identificadores de dispositivo, abrir puertos, configurar ajustes (como la velocidad en baudios, los bits de parada, etc.) y enviar y recibir datos.

Servicio de prueba Sirep

Aunque el servicio de prueba Sirep no está habilitado de manera predeterminada en las imágenes comerciales, si todavía quiere deshabilitarlo al inicio, puede iniciar sesión y deshabilitar el inicio automático de Sirep.

Puede usar los comandos de PowerShell siguientes para hacerlo, como se muestra a continuación:

administrator@MINWINPC C:\Data\Users\administrator>sc stop TestSirepSvc

SERVICE_NAME: TestSirepSvc
       TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 3  STOP_PENDING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_PRESHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x4
        WAIT_HINT          : 0x1770

administrator@MINWINPC C:\Data\Users\administrator>sc query TestSirepSvc

SERVICE_NAME: TestSirepSvc
        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 1  STOPPED
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

administrator@MINWINPC C:\Data\Users\administrator>sc config TestSirepSvc start=disabled
[SC] ChangeServiceConfig SUCCESS

Modo tableta

El "modo tableta" es un concepto que solo existe en el shell de escritorio y no se aplica a IoT Core.

Si el dispositivo tiene hardware compatible (ya sea a través de I2C o USB HID Touch), la función táctil debería funcionar de forma automática con los controladores de clase de bandeja de entrada. Puede obtener más información al respecto aquí.

Compatibilidad con Yubikey

Windows 10 IoT Core no es compatible con tarjetas inteligentes. Pero las tarjetas inteligentes suelen ser dispositivos que se usan para la identidad del usuario y no la del dispositivo, ya que están protegidas mediante PIN y, en el caso de Yubikey, un botón que hay que presionar. Esto no concuerda con un dispositivo IoT. Si busca una alternativa, un TPM 2.0 en el dispositivo puede ser más indicado que Yubikey o una tarjeta inteligente. Contamos con soporte para certificados completo para TPM y están diseñados para almacenar dispositivos, así como certificados de usuario y credenciales de acceso de Azure IoT (Limpets).