/**************************************************************************** ** ** Copyright (c) 2013 Digia Plc and/or its subsidiary(-ies). ** ** Qt and Qt logos are trademarks of of Digia Corporation in Finland and/or ** other countries worldwide. All other trademarks are property of their ** respective owners. ** ** ** Licensees holding valid Qt Commercial licenses may use this document in ** accordance with the Qt Commercial License Agreement provided with the ** Software or, alternatively, in accordance with the terms contained in a ** written agreement between you and Digia. ** ** ****************************************************************************/ /*! \contentspage{index.html}{Qt Enterprise Embedded} \page index.html \nextpage qee-installation-guide.html \title Qt Enterprise Embedded \e{\b{IMPORTANT:} Make sure to follow the \l{Installation Guide} closely!} \section1 Contents \list \li \l{Installation Guide} \li \l{Preparing Hardware} \list \li \l{Preparing Nexus 7}{Nexus 7 (embedded Android)} \li \l{Preparing Sabre Lite i.MX 6}{Sabre Lite i.MX 6 (embedded Android and Linux)} \li \l{Preparing BeagleBoard-xM}{BeagleBoard-xM (embedded Android and Linux)} \li \l{Preparing Raspberry Pi}{Raspberry Pi Model B (embedded Linux)} \endlist \li \l{Building and Running an Example} \li \l{Customization} \li \l{Supported Platforms} \li \l{Troubleshooting} \endlist \section1 About \SDK \SDK includes the \B2Q stack, providing a complete software development package for creating applications on embedded devices. It comes with the Qt Creator IDE with preconfigured build targets for hardware platforms as well as an \l{Emulator}{emulator}. \section1 What is \B2Q? \e{\b{\B2Q}} is a light-weight UI stack for embedded systems, based on the \l{http://qt.digia.com/}{Qt Framework} by Digia, offering an elegant means of developing beautiful and performant embedded devices. It supports two different operating systems: \list \li \b{\B2QA} places Qt on top of an Android (version 4.1 or higher) kernel/baselayer. \li \b{\B2QL} places Qt on top of an Linux kernel/baselayer, built using Yocto 1.4 'Dylan' release. \endlist Both versions have been tested and verified on a number of different hardware configurations. \B2Q support is not limited to the devices used as reference platforms, it can be made to run on a variety of hardware. \section1 About Qt \l{http://qt.digia.com/}{Qt} is a full development framework with tools designed to streamline the creation of applications and user interfaces for desktop, embedded and mobile platforms. \list \li \b{Qt Framework} - intuitive APIs for C++ and CSS/JavaScript-like programming with \b{Qt Quick} for rapid UI creation \li \b{Qt Creator IDE} - powerful cross-platform integrated development environment, including UI designer tools and on-device debugging \li \b{Tools and toolchains} - internationalization support, embedded toolchains and more. \endlist With Qt, you can reuse code efficiently to target multiple platforms with one code base. The modular C++ class library and developer tools enables developers to create applications for one platform and easily build and run to deploy also on other platforms. \section1 \B2Q vs Qt for Android \image b2qt-vs-qt-for-android.png \e{\b{Qt for Android}} is a port of the Qt Framework to be used for application development on the Android platform. Its purpose is to enable development of applications that can run on Android devices. For developers writing applications for the Android ecosystem, Qt for Android is the right choice. \b{\B2QA} tries to strip down the Android stack to the bare minimum, relying only on basic Linux features. The majority of the Android stack, such as \e{Dalvik virtual machine} is not running in \B2Q, resulting in faster startup times, lower memory consumption and overall better performance. \b{\B2QL} is build from scratch using Yocto 1.4 tools to contain only components required in the embedded device, resulting in smaller image sizes while keeping valuable development tools available. */ /*! \page qee-installation-guide.html \title Installation Guide \previouspage index.html \nextpage qee-preparing-hardware.html \e{IMPORTANT: \SDK requires the following installation steps to be followed closely.} In case of problems, see the \l{Troubleshooting} information and the \l{http://qt.digia.com/en/Product/Boot-to-Qt/Boot-to-Qt-Known-Issues/} {Qt Enterprise Embedded Known Issues} page. \target Requirements for Development Host \section1 0. Requirements for Development Host A 64-bit Linux system is required to install and use \SDK. Instructions in this documentation assume Ubuntu Linux 64-bit 12.04 LTS or later. Other Linux distributions may work, but have not been tested. C/C++ build essentials must be installed. \target Installing 32-bit Support Libraries \section1 1. Installing 32-bit Support Libraries Some of the build tools in \SDK are 32-bit programs, and on 64-bit systems they require that support libraries for running 32-bit code are present in the system. To install the required packages in Ubuntu, use the following command in a terminal: \code sudo apt-get install g++-multilib ia32-libs \endcode \target Installing VirtualBox \section1 2. Installing VirtualBox The \B2Q emulator in \SDK relies on VirtualBox virtualization software. You can download it from \l{https://www.virtualbox.org/wiki/Linux_Downloads} or install it from the command line with the following command: \code sudo apt-get install virtualbox \endcode \b{Configuring VirtualBox} Open VirtualBox network settings: Select \b{File > Preferences...} and click on the \b{Network} tab. Create a new network named \e{vboxnet0} and edit its properties: \list \li Change IPv4 address to 192.168.56.1 and IPv4 network mask to 255.255.255.0. \li Check \b{Enable Server} in \b{DCHP Server} tab. \li Change server address to 192.168.56.1. \li Change both the lower and upper address bounds to 192.168.56.101. \endlist \section1 3. Installing \SDK If you have not already installed \SDK, do it as follows. After downloading the binary installer, make sure it is executable either by \list \li Using \c{chmod +x } command, or \li Right-clicking on the file, selecting \b{Properties}, and checking \b{Allow executing file as program} on the \b{Permissions} tab. \endlist Run the installer and follow its instructions. The installer will let you select a directory where \SDK will be installed. In the rest of this documentation, that directory is referred to as \b{\c{}}. The default installation directory is \tt{~/Qt}. \target Installing Boot to Qt on Target Devices \section1 4. Install \B2Q on Target Devices \e{If targeting only the emulator, this step may be skipped} Before deploying and testing your Qt application on hardware, the target device needs to be flashed with an image that contains the \B2Q stack. These steps vary from device to device. See the following chapter and follow the instructions specific to your device. \list \li \l {Preparing Hardware} \endlist \section1 5. Setting up USB Access to Embedded Devices \e{If targeting only the emulator, this step may be skipped} \include b2qt-post-install-setup.qdocinc setting up usb access \section1 6. Configuring a Device Kit in Qt Creator \include b2qt-post-install-setup.qdocinc configuring device kit \b {You are now ready to start developing for your device!} See \l{Building and Running an Example} */ /*! \page qee-preparing-hardware.html \title Preparing Hardware \previouspage qee-installation-guide.html \nextpage qee-building-and-running.html Before deploying and testing your Qt application on hardware, the target device needs to be flashed with an image that contains the \B2Q stack. These steps vary from device to device: \list \li \l{Nexus 7 (embedded Android)} \li \l{Sabre Lite i.MX 6 (embedded Android and Linux)} \li \l{BeagleBoard-xM (embedded Android and Linux)} \li \l{Raspberry Pi Model B (embedded Linux)} \endlist If you are only using the emulator, you can skip this step and continue straight to \l {Building and Running an Example}. */ /*! \target Nexus 7 (embedded Android) \page qee-preparing-hardware-nexus-7.html \title Preparing Nexus 7 \previouspage qee-installation-guide.html \nextpage qee-building-and-running.html When using a \l{http://www.google.com/nexus/7/specs/}{Nexus 7} as a development device, following steps are required to prepare it for \B2Q. \section1 Unlocking Nexus 7 Bootloader The Nexus 7 Bootloader has to be unlocked to allow custom software to be installed. This has to be done only once. \list 1 \li Power down the device. \li Connect it to the development host with a USB cable. \li Start the Nexus up in \e{fastboot} mode: Press the power button for a second, and then keep the Volume Down key pressed, until you see a screen with a green robot with its front panel open. Note: If you get the ordinary startup screen instead, just power it down and try again. \li On the development host, give the command \code sudo /Tools/b2qt/fastboot oem unlock \endcode The Nexus screen will ask if you want to unlock the bootloader. Press power button to confirm. \li Wait a few seconds, and check that the text line stating the \c{LOCK STATE} now says \c{UNLOCKED}. \endlist \section1 Updating a Nexus 7 with \B2Q Images \note \b{It is important that the steps in this section are repeated every time after updating \SDK.} An unlocked Nexus 7 device can now be updated with a \B2Q image. To do so, first make sure that the device is in \e{fastboot} mode (see above), and connected to the development host via USB. Then, re-flash the \e{boot}, \e{system}, and \e{userdata} partitions on the device, using the following commands in the order they are listed: \code cd sudo ./Tools/b2qt/fastboot flash boot Boot2Qt-1.0/nexus7-eAndroid/images/boot.img sudo ./Tools/b2qt/fastboot flash system Boot2Qt-1.0/nexus7-eAndroid/images/system.img sudo ./Tools/b2qt/fastboot flash userdata Boot2Qt-1.0/nexus7-eAndroid/images/data.img \endcode Once the flashing is completed successfully, reboot the device: \code sudo ./Tools/b2qt/fastboot reboot \endcode \note Until the next step is performed, the Nexus 7 will not boot correctly (the screen will only show the "Google" logo). \section1 Installing Proprietary Drivers Download the proprietary drivers for your Nexus 7. The following script will download the third party drivers from \l{https://developers.google.com/android/nexus/drivers#grouperjdq39} {https://developers.google.com/android/nexus/drivers#grouperjdq39} \code cd ./Boot2Qt-1.0/nexus7-eAndroid/images/download.sh \endcode \note Only the version "Android 4.2.2 (JDQ39 to JDQ39E)" will work with the current \B2Q image. Make sure your Nexus 7 is powered up, is \e{not} in fastboot mode, and is connected to the computer via USB. Then, follow these steps to update the Nexus 7: \note Make sure you have read the license terms enclosed in each individual extractor \list 1 \li Run the driver extractors: \code cd Boot2Qt-1.0/nexus7-eAndroid/images/drivers ./extract-nvidia-grouper.sh ./extract-asus-grouper.sh ./extract-invensense-grouper.sh cd - \endcode \li Find out the serial number of the connected Nexus 7 device: \code ./Tools/b2qt/adb devices \endcode \li Deploy the drivers to your device using the following command: \code ./Boot2Qt-1.0/nexus7-eAndroid/images/deploy.sh \endcode \endlist After the installation is complete, power up the device and confirm that it shows a \B2Q welcome screen and/or demo. \section1 Setting up USB Access \include b2qt-post-install-setup.qdocinc setting up usb access \section1 Configuring a Device Kit in Qt Creator \include b2qt-post-install-setup.qdocinc configuring device kit \b {You are now ready to start developing for your device!} See \l{Building and Running an Example} */ /*! \target BeagleBoard-xM (embedded Android and Linux) \page qee-preparing-hardware-beagleboard.html \title Preparing BeagleBoard-xM \previouspage qee-installation-guide.html \nextpage qee-building-and-running.html When using a \l{http://beagleboard.org/hardware-xM}{BeagleBoard-xM} as a development device, following steps are required to prepare it for \B2Q. \note \b{It is important that the steps in this section are repeated every time after updating \SDK.} The images containing \B2Q stack for BeagleBoard-xM is included in the SDK, ready to be copied to a micro-SD card. \section1 Preparing a Micro-SD Card For \B2QA, a micro-SD card of at least 2GB capacity is needed. For \B2QL, a card of at least 512MB capacity is sufficient. \include detect-sd-card-device-name.qdocinc instructions \section1 Installing the \B2Q Image The commands used in this step vary depending on whether you are developing for embedded Android or embedded Linux. Write the image to the micro-SD card: \list \li \b{\B2QA} \code cd sudo dd if=Boot2Qt-1.0/beagleboard-eAndroid/images/sdcard.img of=/dev/XXX bs=1M \endcode \li \b{\B2QL} \code cd sudo Boot2Qt-1.0/beagleboard-eLinux/images/deploy.sh /dev/XXX \endcode \endlist After the image has been deployed, power up the device and confirm that it shows a \B2Q welcome screen and/or demo. \section1 Setting up USB Access \include b2qt-post-install-setup.qdocinc setting up usb access \section1 Configuring a Device Kit in Qt Creator \include b2qt-post-install-setup.qdocinc configuring device kit \b {You are now ready to start developing for your device!} See \l{Building and Running an Example} */ /*! \target Sabre Lite i.MX 6 (embedded Android and Linux) \page qee-preparing-hardware-imx6.html \title Preparing Sabre Lite i.MX 6 \previouspage qee-installation-guide.html When using a \l{http://boundarydevices.com/products/sabre-lite-imx6-sbc/}{Sabre Lite i.MX 6} as a development device, following steps are required to prepare it for \B2Q. \note \b{It is important that the steps in this section are repeated every time after updating \SDK.} The images containing the \B2Q stack for Sabre Lite i.MX 6 are included in the SDK, ready to be copied to a micro-SD card. \section1 Preparing a Micro-SD Card For \B2QA, a micro-SD card of at least 4GB capacity is needed. For \B2QL, a card of at least 512MB capacity is sufficient. \include detect-sd-card-device-name.qdocinc instructions \section1 Installing the Android image \e{If installing} \B2QL, \e{you can skip this step and proceed to} \l{Installing the Boot to Qt Image}. Download the package \e{imx6-jb-20130628.tar.gz} from \l{http://boundarydevices.com/android-jellybean-on-i-mx6-with-no-disclaimers/}{Boundary Devices Android Jellybean i.MX6 images} (registration required). Use the following commands to create a micro-SD card containing the downloaded image: \list \li Extract the downloaded package \code ~/$ mkdir bd-android ~/$ cd bd-android ~/bd-android$ sudo tar zxvf ~/Downloads/imx6-jb-20130628.tar.gz \endcode \li Run device/boundary/mksdcard.sh: \code ~/bd-android$ sudo device/boundary/mksdcard.sh /dev/XXX ~/bd-android$ sync \endcode \endlist \section1 Installing the \B2Q Image Make sure you have the required tools installed in your development machine: \code sudo apt-get install u-boot-tools \endcode Then, upgrade the micro-SD Card with \B2Q. Use one of the commands below, depending on whether you're developing for embedded Android or Linux: \list \li \b{\B2QA} \code cd Boot2Qt-1.0/iMX6-eAndroid/images/deploy.sh /dev/XXX \endcode \li \b{\B2QL} \code cd Boot2Qt-1.0/iMX6-eLinux/images/deploy.sh /dev/XXX \endcode \endlist After the installation is complete, power up the device and confirm that it shows a \B2Q welcome screen and/or demo. \section1 Setting up USB Access \include b2qt-post-install-setup.qdocinc setting up usb access \section1 Configuring a Device Kit in Qt Creator \include b2qt-post-install-setup.qdocinc configuring device kit \b {You are now ready to start developing for your device!} See \l{Building and Running an Example} */ /*! \target Raspberry Pi Model B (embedded Linux) \page qee-preparing-hardware-rasberrypi.html \title Preparing Raspberry Pi \previouspage qee-installation-guide.html \nextpage qee-building-and-running.html When using a \l{http://www.raspberrypi.org/}{Raspberry Pi} as a development device, following steps are required to prepare it for \B2Q. Note that Ethernet networking is required to connect the device to Qt Creator. This means that the support is currently limited to Raspberry Pi Model B which includes an Ethernet port. \note \b{It is important that the steps in this section are repeated every time after updating \SDK.} The images containing \B2Q stack for Raspberry Pi is included in the SDK, ready to be copied to a micro-SD card. \section1 Preparing a Micro-SD Card An SD card of at least 512MB capacity is sufficient. \include detect-sd-card-device-name.qdocinc instructions \section1 Installing the \B2Q Image Write the image to the micro-SD card: \code cd sudo Boot2Qt-1.0/raspberrypi-eLinux/images/deploy.sh /dev/XXX \endcode After the image has been deployed, power up the device and confirm that it shows a \B2Q welcome screen and/or demo. \section1 Configuring a Device Kit in Qt Creator \include b2qt-post-install-setup.qdocinc configuring network device \b {You are now ready to start developing for your device!} See \l{Building and Running an Example} */ /*! \page qee-building-and-running.html \title Building and Running an Example \previouspage qee-installation-guide.html \nextpage qee-customization.html Once the installation and configuration steps for \SDK and the target device(s) are completed, it's time to test the setup. First, make sure your device is powered up and connected to the development host via USB. Then, follow these steps to create and run a simple \l{Qt Quick} application on the device: \list 1 \li Open \b{File > New File or Project}, select \b{Qt Quick 2 Application (Built-in Types)} and click \b{Choose...}. \li In \b{Kit Selection} dialog, select the kit(s) for your devices. You can also select the emulator kit to test running the project in the emulator. \li Click \b{Next} and finish the wizard. \li In \b{Projects > Build & Run}, select the correct kit for your connected device. \li To build and run the project, click \inlineimage qtcreator-run.png \endlist \section1 Setting Up an Already Existing Project for Deployment The projects generated by Qt Creator will always have the correct settings for deployment on the device or emulator. However, existing projects may need some changes. As a general rule, application binaries and resources (such as QML files and images) are deployed under \c {/data/user/qt/} directory. Therefore, the \c path variable for \c INSTALLS target(s) need to be adjusted accordingly in .pro files: For example, the following: \code target.path = ... INSTALLS += target \endcode should be migrated to: \code target.path = /data/user/qt/ INSTALLS += target \endcode */ /*! \page qee-customization.html \title Customization \previouspage qee-building-and-running.html \nextpage qee-supported-platforms.html \section1 Environment and Input By default, the basic environment variables and startup options of \B2Q applications are set in the file \c {/system/bin/appcontroller.conf} in embedded Android devices and in \c{/etc/appcontroller.conf} in embedded Linux devices. This file can be customized if targeting a hardware device that has different input devices than what the \B2Q stack is configured for by default. Note that on some devices, the root file system (where this file resides) is mounted read-only at boot time. It needs to be remounted read-write to allow modification. The following command does that: \code /Tools/b2qt/adb remount \endcode In the \c{appcontroller.conf} file the input devices are specified by the lines similar to these: \code env=QT_QPA_GENERIC_PLUGINS=evdevtouch:/dev/input/event0 \endcode Usually there is no need to change this setting. USB input devices like keyboards and mice are automatically recognized. The mouse pointer is shown automatically if a mouse is connected. Note however that hotplugging may not work, meaning that the input devices, like keyboard and mouse, have to be connected at boot time. On some devices, for example the i.MX6 Sabre Lite, the touchscreen device is specified explicitly in \c QT_QPA_GENERIC_PLUGINS. This is necessary because the automatic device discovery would fail to find the touchscreen. \section1 Booting to a Custom Application After you have deployed your own application to the device it will be launched instead of the \B2Q demo launcher on boot. To prevent this behavior you have to remove this step from the build steps of your project's run configuration. To remove your application from the default startup use the following command: \code /Tools/b2qt/adb shell appcontroller --remove-default \endcode \section1 Switching Between Portrait and Landscape Views Depending on a device screen dimensions and application requirements it might be desirable to change the default view orientation. The following example shows how to rotate your application in QML. \code import QtQuick 2.0 Item { id: root width: 800 height: 1280 // Container element for rotating Rectangle { id: main // Swap the width and height of the root item width: root.height height: root.width anchors.centerIn: parent // Rotate 90 degrees clockwise around transformOrigin rotation: 90 // The rotated content Text { text: qsTr("Hello World") anchors.centerIn: parent } MouseArea { anchors.fill: parent onClicked: { Qt.quit(); } } } } \endcode */ /*! \page qee-supported-platforms.html \title Supported Platforms \previouspage qee-customization.html \nextpage qee-troubleshooting.html \section1 Supported Target Devices The \B2Q stack can be made to run on a variety of hardware. \B2QA requires hardware that has support for the Android operating system, version 4.0 or later. Approximate minimal hardware requirements for running \B2Q are: \list \li 256Mb of RAM \li 500Mhz CPU, 1Ghz preferred for 60 FPS velvet-smooth UI \li OpenGL ES 2.0 support \li Android 4.0+ compatible hardware \endlist The following devices have been used as reference and are tested to work: \list \li \l{http://www.google.com/nexus/7/specs/}{Google/Asus Nexus 7} \li \l{http://beagleboard.org/hardware-xM}{BeagleBoard-xM} \li \l{http://boundarydevices.com/products/sabre-lite-imx6-sbc/}{Freescale i.MX6 Sabre Lite board (Boundary Devices)} \li \l{http://www.raspberrypi.org/faqs}{Raspberry Pi Model B} \endlist \section1 Supported Development Environment The development environment supported by \SDK is Ubuntu Linux 64-bit (12.04 LTS or 12.10). \sa {Requirements for Development Host} */ /*! \page qee-troubleshooting.html \title Troubleshooting \previouspage qee-supported-platforms.html \note An updated version of this information may be available in the Digia customer portal. See also \b{\l{http://qt.digia.com/en/Product/Boot-to-Qt/Boot-to-Qt-Known-Issues/}{Qt Enterprise Embedded Known Issues}.} \section1 General Issues \section2 I have problems deploying/launching the application in Qt Creator Check if the device is properly connected to the PC via USB. See \l{Connectivity Issues}. If using the emulator, see \l{Installing VirtualBox}{Configuring VirtualBox}. \section2 I have problems deploying/launching a Qt or Qt Quick example application Because of a technical peculiarity in \c{qmake}, it is not possible to get correct deployment setup for any application that is placed inside a Qt source code tree. The workaround is to copy the example sources to a location outside the Qt source tree, and open this copy of the example application instead. \section2 I have problems launching or running applications on hardware after updating the SDK Remember to repeat the process of updating also your device with the latest version of \B2Q. See \l{Installing Boot to Qt on Target Devices}. \section2 Booting Sabre Lite i.MX 6 stops with \e {6x_bootscript not found} error Check the U-Boot version number. It should start with either \c{2012} or \c{2013}. If it is \c{2009.xx}, an upgrade of the bootloader is required. See information and instructions here: \list \li \l http://boundarydevices.com/6q_bootscript/ \li \l http://boundarydevices.com/switching-u-boot-versions-on-i-mx6/ \endlist \section2 How do I restore my Nexus 7 to factory settings? Goto \l{https://developers.google.com/android/nexus/images} and download the correct file for your device. Unpack it, and then \code /Tools/b2qt/adb reboot bootloader /Tools/b2qt/fastboot -w update .zip \endcode \section2 How do I shut down the Nexus 7? If the \B2Q demo launcher is running, start the "Launcher Settings" app, and press the "Power Off" button. Otherwise, make sure the Nexus 7 is connected to your PC with USB, and run the following command in a terminal: \code /Tools/b2qt/adb shell reboot -p \endcode Alternatively, press and hold the power button for 10 seconds. This will force a reboot. \section2 Trying to build for the emulator target fails with error message \e{make: i686-android-linux-g++: Command not found} You need to install proper libraries in order to run 32-bit programs in 64-bit Linux operating system. See \l{Installing 32-bit Support Libraries}. \section2 Something crashed! The following command shows the system log: \code /Tools/b2qt/adb logcat \endcode \section2 Mouse or touch input does not work See \l{Customization}. Note that hotplugging does not currently work; any input device must be present at boot time to be recognized. \section2 Application stops with \e{EGLFS: OpenGL windows cannot be mixed with others.} OpenGL and Qt Quick 2 applications can only have one fullscreen window existing at a time. Trying to create another OpenGL window, or trying to mix an OpenGL window with a raster one will display the above message and abort the application. \note For raster windows (software rendered content based on QWidget or QPainter), there is no such limitation. \section2 I cannot edit the contents of appcontroller.conf on the device The file system where this file is located may be mounted as read-only. See \l{Customization}. \section1 Connectivity Issues \section2 I cannot connect to my hardware device via USB See \l{5. Setting up USB Access to Embedded Devices}. \section2 adb fails with "error: more than one device and emulator" You have to specify which android device you want \c{adb} to talk to, using adb's \c{-s } option. Use the following command to find to see the serial number of the connected devices: \code /Tools/b2qt/adb devices \endcode \section2 The emulator cannot connect to the internet By default, the Virtualbox is configured to use host-only network, so external connections do not work in the emulator. You may be able to enable internet connectivity with another virtual network adapter in NAT mode by adapting \l{http://askubuntu.com/questions/293816/in-virtualbox-how-do-i-set-up-host-only-virtual-machines-that-can-access-the-in}{these} instructions. \section2 The emulator is stuck in 'Waiting for display data' or fails to start properly Check the output of the following command: \code /Tools/b2qt/adb devices \endcode If the emulator (192.168.56.101) is not listed there, try connecting to it: \code /Tools/b2qt/adb connect 192.168.56.101 \endcode If the emulator is already listed, try disconnecting it: \code /Tools/b2qt/adb disconnect 192.168.56.101 \endcode And then close the emulator and retry. \section2 What is the user and password to access my embedded Linux device Embedded Linux devices can be accessed using user \c{root} and an empty password. */