10 Replies Latest reply on Jun 19, 2015 3:27 AM by rosem

    Problems flashing new Image (Yocto or Ubuntu)

    rosem

      Hey everyone,

       

      haven't used my RIoTboard for a while, I wanted to get back to it to use it for some home automation. Unfortunately, I have quite some trouble getting a new image to work.

       

      Starting out with flashing the provided Ubuntu 11.10 image to a SDcard worked well - no problems there. I then tried to get my WiFi USB dongle to work (EDIMAX EW-7811UN) and hit some errors - it could not load the modules required. Googling I found this thread (Linux header unmatched) so I went over to compile my own boot image and kernel as described in the mentioned thread as well as in this really great series: Linux on the RIoTBoard Part 2: Kernel. After having some trouble and struggling, I got it to work and was able to use my WiFi dongle with the provided Ubuntu 11.10 with my custom kernel (yay! ).

       

      I continued to try updating it by changing the APT sources, but no luck - it always stopped and said to me when running sudo do-release-upgrade that no upgrade was available. Next step: get a Ubuntu 14.04 rootfs and try that one........ Seemed to work, however I was not able after searching for ours to get the root console working over serial after boot... another dead end.

       

      Therefore I thought: let's try Yocto. Downloading the Yocto SDcard BSP image provided by Element14 yielded no luck - the kernel does not start as mentioned in my comment there: RIoTboard - Getting Started (I have also tried the SVN3000 version...).

       

      So my question is: Is there _any_ Yocto image out there that does work? Is there already a working Ubuntu 14.04 image? Or at least a working rootfs? Or can someone tell me how to get a root console over serial after boot? (I tried putting a script in /etc/init/ starting a getty on ttymxc1, but no luck)

       

      I would really like to get it up and running but am utterly failing again and again Your help is really appreciated!

       

      Thank you everyone

      Michael

        • Re: Problems flashing new Image (Yocto or Ubuntu)
          radiatortwo

          Try to update the repos with apt-get before trying to upgrade if not already done.

          sudo apt-get update
          sudo do-release-upgrade

           

          About the console.
          Normally if you write the getty at the end of "/etc/inittab" you should get a console after boot.

           

          The line has to look like this:

          T0:2345:respawn:/sbin/getty -L ttymxc1 115200 vt100

          This is the method I use to get the console in my Debian rootfs I create from scratch.

           

          Can´t speak for the official images you get here though.
          I don´t use them...

          • Re: Problems flashing new Image (Yocto or Ubuntu)
            Frederick Vandenbosch

            Strange, the images I worked with could boot properly and the only reason I switched to the SVN3000 image was to get the Wifi to work.

             

            Are you properly unmounting the SD card before doing the dd command ? Do you have the full output ?

             

            * sudo diskUtil list

            * sudo diskUtil unmountDisk /dev/sdX
            * sudo dd if=/path/to/image of=/dev/sdX

             

            How are the DIP switches configured on the RIoTboard ?

              • Re: Problems flashing new Image (Yocto or Ubuntu)
                rosem

                I executed exactly those commands to do the flash, once I get home I'll try it again (in 6 hours roughly) and do show the full output if it fails again. Switches are set to SD boot as shown in the User Manual. I will flash using a Ubuntu VM next time - using my Mac OS X host it took 5-10 minutes instead of just 2 over Ubuntu...

                 

                One question: Did you have your HDMI cable attached while booting?

              • Re: Problems flashing new Image (Yocto or Ubuntu)
                rosem

                So I just went back on trying out my Ubuntu 14.04 rootfs and getting the serial console running... I am now using the following upstart configuration file located as /etc/init/ttymxc1.conf◊

                # ttymxc1 - getty

                #

                # This service maintains a getty on ttymxc1 from the point the system is

                # started until it is shut down again.

                 

                 

                start on stopped rc RUNLEVEL=[12345]

                stop on runlevel [!12345]

                 

                 

                respawn

                exec /sbin/getty -L 115200 ttymxc1 vt102

                But no luck - I only get a tty1 over HDMI. I appended the boot log (which I get over the serial port)...

                 

                Do you have any clues?

                • Re: Problems flashing new Image (Yocto or Ubuntu)
                  rosem

                  More stuff I tried today... I followed your x part tutorial on creating the debian rootfs + kernel etc. Downloaded the latest u-boot, compiled it, downloaded the latest 3.18. kernel (didn't want to go with 4.x) and also compiled it.

                  Got debootstrap to make an Jessie rootfs. Flashed it to an SDcard - didn't work at first. The boot script was wrong for me - I needed to use mmc 0 instead of mmc 2, but got that figured out.

                  The kernel then loads - but loading just stops at some point, see the attached log once again.

                   

                  It's getting really frustrating as I can't figure out what's the issue. Any suggestions from anyone what's going on?!

                    • Re: Problems flashing new Image (Yocto or Ubuntu)
                      radiatortwo

                      The Log says almost at the end "Waiting for root device ..."
                      It seems he can´t find your root filesystem.

                       

                      What does your bootscript look like?
                      Specifically the setenv line.

                       

                      The parameter rootwait tells the kernel to wait for the root file system. But if he can´t find any he won´t boot.

                      You have to change the "root=/dev/mmcblk0p1" parameter to your device and partition.

                      /dev/mmcblk0p1 is the first partition on internal eMMC Flash.


                      If you want to boot from SD Card you´ll need /dev/mmcblk1p1 or /dev/mmcblk2p1. Depending on normal SDCard or Micro SDCard.

                        • Re: Problems flashing new Image (Yocto or Ubuntu)
                          rosem

                          Ah okay, that sounds very much like the problem... sorry I didn't understand it that way.

                          I assume that currently it points to the wrong device - as mentioned before, I needed to change some lines in the bootscript to be able to load kernel and dtb. I did not change the root FS in the env line because in u-boot, mmc reports mmc 0 to be the SDcard and mmc 2 to be the internal eMMC. But I will play around once I get back to the board (probably tomorrow evening or friday). Thanks for your help, I will let you know!

                      • Re: Problems flashing new Image (Yocto or Ubuntu)
                        rosem

                        So update for all - it finally works! Thanks for your help!

                         

                        There were a few caveats I came across, also while following Otto's tutorial, so I will write it up here. The essential changes for me were required in the bootscript.

                        It now looks as follows:

                        setenv bootargs console=ttymxc1,115200 root=/dev/mmcblk0p1 rw nosmp video=mxcfb0:dev=hdmi,1280x720M@60,bpp=32 video=mxcfb1:off fbmem=10M vmalloc=400M rootwait //this is one large line!

                        mmc dev 0

                        ext4load mmc 0 10800000 /boot/zImage

                        ext4load mmc 0 16800000 /boot/imx6dl-riotboard.dtb

                        bootz 10800000 - 16800000

                        I mounted the rootfs as RW in order to be able to edit everything over the serial console. Also I needed to use mmc 0, as this was the SDcard on my board (don't ask me why...).

                         

                        When you want to use WiFi on your board, install at least wpasupplicant while constructing the rootfs to be able to set it up properly. Do not forget to add kernel support for your WiFi device if you wish to (mine was for Realtek, RTL) and furthermore install the appropriate firmware (search for a firmware-xxx package, e.g. firmware-realtek). Look on how to configure your interface in /etc/network/interfaces and you should be good to go!