Fastboot with AR7554

Hi,

I’m currently using the SIWI Legato AR7554 development kit, with a 64 bits Ubuntu 12.04 on a virtual machine.

At first I succeeded in running some basic applications (printing “helloWorld” on the serial output, receiving and sending sms).
However, at some point, I wasn’t able to remove or install apps on the dev board. I tried to use the rmapp/instapp and app remove/start/restart but without success…

So I tried to flash the images (kernel and root) on the board in order to get back into a known state of the device. But I wasn’t able to use the fastboot functionnality correctly, indeed the fastboot isn’t able to recognize the device.

fastboot devices
[/code] returns nothing. Same result with [code]:~$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached

I did create the Udev rules:

Here is what lsusb returns :~$ lsusb Bus 001 Device 006: ID 1199:68c0 Sierra Wireless, Inc.

And when I run fastboot without any arguments I got:

[code]:~$ fastboot
usage: fastboot [ ]

commands:
update reflash device from update.zip
flashall flash boot + recovery + system
flash [ ] write a file to a flash partition
erase erase a flash partition
format format a flash partition
getvar display a bootloader variable
boot [ ] download and boot kernel
flash:raw boot [ ] create bootimage and flash it
devices list all connected devices
continue continue with autoboot
reboot reboot device normally
reboot-bootloader reboot device into bootloader
help show this help message

options:

-w erase userdata and cache (and format
if supported by partition type)
-u do not first erase partition before
formatting
-s specify device serial number
or path to device port
-l with “devices”, lists device paths
-p specify product name
-c override kernel commandline
-i specify a custom USB vendor id
-b <base_addr> specify a custom kernel base address
-n specify the nand page size. default: 2048
-S [K|M|G] automatically sparse files greater than
size. 0 to disable

[/code]

The last command I gave onto the shell was sys_reboot bootloader
How can I get back from the bootloader mode ?
PS: Now, I don’t have any output on UART1, and I can’t see the device (IP) on the router I’m connected on.

Does anybody know how I can make the fastboot operational (so I can flash the kernel and root back and keep on working on apps) ?

Hi.

The best place to start is this post - https://forum.sierrawireless.com/t/ubuntu-udev-rules-issues/11902/1

There is a lot of useful information in there about very similar issues.

BTW - to get back out of fastboot mode you can simply reset the device.

Andrew

I followed all the steps that Dave took for the Ubuntu distribution (adding location to the $PATH, adding dialout group, and installing the ia32-libs).
So i get to the same result as Dave when I run fastboot without arguments (it prints out the help page). But I don’t have the same result when I run fastboot devices …

I also tried the RESET_IN pushbutton (and hardware reset) but I don’t have any output on the serial port or on the router.

Regards,

Hiya,

If you’re running in a VM, have you connected the ‘USB’ device to the VM?

I’m using VMWare workstation 10 and I have to right click on the VM tab, then select devices and connect the WP7xxx device to the VM. It looks something like this:


Once you have done this, Ensure that the WP7 has connected to your device properly by running sudo dmesg in a terminal. You should get something like the following:



Note that the important part here is the line

which indicates that your device has enumerated a serial device on the host VM.

You should be able to connect to the WP7 using minicom (which you might have to install using sudo apt-get install minicom ), on the device indicated above (in my case /dev/ttyACM0).

If you can connect using minicom, then you should be able to get fastboot to connect OK.

Hope this helps a little.

ciao, Dave

Hi Dave,

The device is connected:

But I have an issue with the cdc_acm driver. Indeed when i run ~$ : sudo dmesg [ 202.162943] usb 1-1: New USB device found, idVendor=1199, idProduct=68c0 [ 202.162950] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 202.162954] usb 1-1: Product: AR7554 [ 202.162957] usb 1-1: Manufacturer: Sierra Wireless, Incorporated [ 202.162961] usb 1-1: SerialNumber: 0123456789ABCDEF [ 202.168314] usb 1-1: can't set config #1, error -32

Indeed I don’t get to the part

Do you have any ideas why the device isn’t configured with the cdc_acm driver ? I couldn’t find anything useful on forums…

Regards,

Hiya,

Blast. I will admit that I’m using a WP7104 rather than the AR7554. And I’m also using VMWare Workstation 10 as my VM manager, not Oracle Virtual Box as it appears you are from your screenshot. I’m not sure how Virtual Box translates the USB connection between the host and VM.

Have you installed the windows drivers? I have also installed them in my host machine (I’m assuming that you have a windows host). There’s a little bit of info in the end of one of the getting started guides about installing the windows software.

Also, can you see the AR7 from windows when you put it into fastboot mode using sys_reboot bootloader ? Note that the adb application doesn’t recognise the WP7 device - but the command fastboot devices returns with MDM9615 fastboot .

Another thing I just noticed in your dmesg output is that the AR7 is reporting a USB VID/PID of 1199/68c0 rather than the 1199/18d1 noted in the getting started guide. Maybe change the udev rules to match your VID/PID?

ciao, Dave

Hello,

Good guessing Dave, i’m indeed on a Windows 7 host and on virtual box (v 4.3.8).

I’ve installed the Google USB drivers on my host machine as the “Legato Alpha-B Getting Started” PDF suggests.
I tried to change the USB VID/PID (into /etc/udev/rules.d/51-android.rules) from 1199/18d1 to 1199/68c0 but it didn’t change anything.

I saw in one of your posts (on another topic) that the fastboot gave you a response after you sent the At commands

But when i run it i got those messages :

root@swi-mdm9x15:~# At!unlock="A710" -sh: !unlock="A710": event not found root@swi-mdm9x15:~# At!custom="ADBENABLE",1 -sh: !custom="ADBENABLE",1: event not found
Maybe i am trying to run the At commands from the wrong place ?

Important point : I managed to fix the original bug which was preventing me to install launch or remove apps. I wanted to use fastboot to fix this bug so i don’t need fastboot anymore but i’ll keep on trying to make it work.

The symptom of the bug were : - On instapp or rmapp the process was blocking configTree.
So i modified the /opt/legato/configTree/system.paper file.
If you guys have a similar problem you should take a look at this file.

Thanks for your help Dave.

Hi.

You can’t run AT commands from the Linux shell. You need to connect to the AT port. If you have the USB devices captured in your VM then you should see a /dev/ttyACM0 which is the AT port that appears in your VM. Connect a terminal program to this (minicom, gtkterm …) at 115K, 8bits, no parity.

If you type AT and see OK in response then you’re ready to go.

Regards,
Andrew

Hello,

I finally succeeded in running adb and fastboot (only on Windows though).

I followed the steps in the Legato Alpha B Getting Started pdf (section Windows Host):
- installation of Android SDK Manager
- setting up the Google USB driver (with the additions)
- installation of Sierra’s drivers

I also installed the firmware (located into $LEGATO/Firmware) by using fdt ar-spkgz-060004.cwe
Thanks to this step I was able to have an answer when I ran (on Windows DOS)

$> adb devices List of devices attached 0123456789ABCDEF device

I ran then

$> adb shell /# sys_reboot bootloader

And i got this output on COM1 (via puTTY)

So everything seems to be fine.
I have a question though, is it possible to flash the kernel and rootfs from Windows host (the pdf Legato Alpha B Getting Started guides us only with Ubuntu) ?
Or I have to run it on Ubuntu (fastboot doesn’t work on Ubuntu for me yet) ?

Regards

Ps. Why do I have an ERROR when i try to run At ?

At<return> ERROR

I also have this output for At!custom?

At!custom? !CUSTOM: ISVOICEN 0x01 PCSCDISABLE 0x03 ADBENABLE 0x01 NOROAM 0x01 GPSENABLE 0x01 RRCREL7CAPDIS 0x02 GPSSEL 0x01 NMEAENABLE 0x01 RMNETREDIALEN 0x01 OK

Hello Arnaud,

As for AT commands, it seems case matters, so it should be at and not At .

For flashing kernel + rootfs, you should be able to do that on Windows as well since fastboot and adb are running on both platforms (and since you are running adb from Windows, I suppose you know that :slight_smile: ).

If you reboot in bootloader mode, what device do you see on Windows (don’t forget to remove the USB filter in Virtual Box if you have it running at the same time) ?

I tried it on my side and I have an “Android Bootloader Interface” (driver from Google, VID 18D1 PID D00D), which seem to work fine with fastboot.

Regarding your original problem of being unable to remove applications, I’m guessing that something like the Config Tree daemon failed. Hard to tell for sure without logs, though.

Of course, if you tried rebooting the device or running “legato stop” followed by “legato start” on the target device’s console or ssh terminal, then that should have fixed that sort of problem.

Either way, updating your target to the latest software is a good idea.

If you want to remove an application manually, take a look at the steps taken by the “app” script when you run it with the “remove” argument. That script can be found on the target at /usr/local/bin/app or on the build PC under targetFiles/shared/bin/app.

BTW, there are very few differences between the AR7xxx and WP7xxx from the software point-of-view. So, I would guess that the differences that you and Dave are seeing for fastboot/USB access is due to differences between your VMs.

I forgot to mention that we have made some improvements to the app install/uninstall code that will become available in the next release. So, hopefully you won’t have this problem in the future.

If you do run into the problem, it would be great if you could post the logs from your device. I’d like to know what’s causing it so I can be sure we fixed it.

Thanks!

Hiya,

I reproduced the problem of installation/uninstallation of applications.
This is how I proceeded :
- I took an app which compiled and ran OK
- I added a non existant lib into the .adef file

The app was still able to compile OK. But when I ran the instapp tool i got this message in Gtkterm (UART1)

[code]root@swi-mdm9x15:/# INFO | 70/01/01 - 02:15:00.466.009 | serviceDirectory 11500 main serviceDirectory | serviceDirectory.c DispatchClientToServer 540 | Client (pid 12055) connected to server 11502 for service (LogControlProtocol:LogClient).

INFO | 70/01/01 - 02:15:00.470.739 | serviceDirectory 11500 main serviceDirectory | serviceDirectory.c DispatchClientToServer 540 | Client (pid 12055) connected to server 11504 for service (93845fd65125b498008e4945e0a94a91d2ba11ffd3e701b7a22990c799c5fbb6

-WRN- | 70/01/01 - 02:15:00.473.364 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 85 blocks.

INFO | 70/01/01 - 02:15:01.579.483 | serviceDirectory 11500 main serviceDirectory | serviceDirectory.c DispatchClientToServer 540 | Client (pid 12070) connected to server 11502 for service (LogControlProtocol:LogClient).

INFO | 70/01/01 - 02:15:01.585.862 | serviceDirectory 11500 main serviceDirectory | serviceDirectory.c DispatchClientToServer 540 | Client (pid 12070) connected to server 11504 for service (93845fd65125b498008e4945e0a94a91d2ba11ffd3e701b7a22990c799c5fbb6

-WRN- | 70/01/01 - 02:15:01.592.027 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 86 blocks.

-WRN- | 70/01/01 - 02:15:01.592.363 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 87 blocks.

-WRN- | 70/01/01 - 02:15:01.592.516 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 88 blocks.

-WRN- | 70/01/01 - 02:15:01.592.668 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 89 blocks.

-WRN- | 70/01/01 - 02:15:01.592.821 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 90 blocks.

-WRN- | 70/01/01 - 02:15:01.592.943 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 91 blocks.

-WRN- | 70/01/01 - 02:15:01.593.095 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 92 blocks.

-WRN- | 70/01/01 - 02:15:01.593.218 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 93 blocks.

-WRN- | 70/01/01 - 02:15:01.593.370 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 94 blocks.

-WRN- | 70/01/01 - 02:15:01.593.492 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 95 blocks.

-WRN- | 70/01/01 - 02:15:01.593.645 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 96 blocks.

-WRN- | 70/01/01 - 02:15:01.593.767 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 97 blocks.

-WRN- | 70/01/01 - 02:15:01.594.591 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 98 blocks.

-WRN- | 70/01/01 - 02:15:01.594.774 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 99 blocks.

-WRN- | 70/01/01 - 02:15:01.594.927 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 100 blocks.

-WRN- | 70/01/01 - 02:15:01.595.079 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 101 blocks.

-WRN- | 70/01/01 - 02:15:01.595.262 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 102 blocks.

-WRN- | 70/01/01 - 02:15:01.595.415 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 103 blocks.

-WRN- | 70/01/01 - 02:15:01.595.537 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 104 blocks.

-WRN- | 70/01/01 - 02:15:01.595.690 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 105 blocks.

-WRN- | 70/01/01 - 02:15:01.595.842 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 106 blocks.

-WRN- | 70/01/01 - 02:15:01.595.995 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 107 blocks.

-WRN- | 70/01/01 - 02:15:01.596.270 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 108 blocks.

-WRN- | 70/01/01 - 02:15:01.932.177 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 109 blocks.

-WRN- | 70/01/01 - 02:15:01.932.329 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 110 blocks.

-WRN- | 70/01/01 - 02:15:01.932.482 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 111 blocks.

-WRN- | 70/01/01 - 02:15:01.932.635 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 112 blocks.

-WRN- | 70/01/01 - 02:15:01.932.787 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 113 blocks.

-WRN- | 70/01/01 - 02:15:01.932.909 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 114 blocks.

-WRN- | 70/01/01 - 02:15:01.933.062 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 115 blocks.

-WRN- | 70/01/01 - 02:15:01.933.184 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 116 blocks.

-WRN- | 70/01/01 - 02:15:01.933.337 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 117 blocks.

-WRN- | 70/01/01 - 02:15:01.933.489 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 118 blocks.

-WRN- | 70/01/01 - 02:15:01.933.611 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 119 blocks.

-WRN- | 70/01/01 - 02:15:01.933.794 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 120 blocks.

-WRN- | 70/01/01 - 02:15:01.934.130 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 121 blocks.

-WRN- | 70/01/01 - 02:15:01.934.405 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 122 blocks.

-WRN- | 70/01/01 - 02:15:01.934.649 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 123 blocks.

-WRN- | 70/01/01 - 02:15:01.934.893 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 124 blocks.

-WRN- | 70/01/01 - 02:15:01.935.137 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 125 blocks.

-WRN- | 70/01/01 - 02:15:01.935.381 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 126 blocks.

-WRN- | 70/01/01 - 02:15:01.935.626 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 127 blocks.

-WRN- | 70/01/01 - 02:15:01.935.870 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 128 blocks.

-WRN- | 70/01/01 - 02:15:01.936.175 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 129 blocks.

-WRN- | 70/01/01 - 02:15:01.936.480 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 130 blocks.

-WRN- | 70/01/01 - 02:15:02.265.459 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 131 blocks.

-WRN- | 70/01/01 - 02:15:02.265.612 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 132 blocks.

-WRN- | 70/01/01 - 02:15:02.265.764 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 133 blocks.

-WRN- | 70/01/01 - 02:15:02.265.917 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 134 blocks.

-WRN- | 70/01/01 - 02:15:02.266.100 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 135 blocks.

-WRN- | 70/01/01 - 02:15:02.266.253 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 136 blocks.

-WRN- | 70/01/01 - 02:15:02.266.375 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 137 blocks.

-WRN- | 70/01/01 - 02:15:02.266.527 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 138 blocks.

-WRN- | 70/01/01 - 02:15:02.266.680 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 139 blocks.

-WRN- | 70/01/01 - 02:15:02.266.802 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 140 blocks.

-WRN- | 70/01/01 - 02:15:02.266.955 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 141 blocks.

-WRN- | 70/01/01 - 02:15:02.267.138 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 142 blocks.

-WRN- | 70/01/01 - 02:15:02.267.535 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 143 blocks.

-WRN- | 70/01/01 - 02:15:02.267.840 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 144 blocks.

-WRN- | 70/01/01 - 02:15:02.268.084 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 145 blocks.

-WRN- | 70/01/01 - 02:15:02.268.328 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 146 blocks.

-WRN- | 70/01/01 - 02:15:02.268.572 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 147 blocks.

-WRN- | 70/01/01 - 02:15:02.268.817 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 148 blocks.

-WRN- | 70/01/01 - 02:15:02.269.061 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 149 blocks.

-WRN- | 70/01/01 - 02:15:02.269.305 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 150 blocks.

-WRN- | 70/01/01 - 02:15:02.269.549 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 151 blocks.

-WRN- | 70/01/01 - 02:15:02.269.793 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 152 blocks.

-WRN- | 70/01/01 - 02:15:02.270.098 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 153 blocks.

-WRN- | 70/01/01 - 02:15:02.598.803 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 154 blocks.

-WRN- | 70/01/01 - 02:15:02.598.955 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 155 blocks.

-WRN- | 70/01/01 - 02:15:02.599.108 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 156 blocks.

-WRN- | 70/01/01 - 02:15:02.599.261 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 157 blocks.

-WRN- | 70/01/01 - 02:15:02.599.383 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 158 blocks.

-WRN- | 70/01/01 - 02:15:02.599.535 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 159 blocks.

-WRN- | 70/01/01 - 02:15:02.599.688 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 160 blocks.

-WRN- | 70/01/01 - 02:15:02.599.810 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 161 blocks.

-WRN- | 70/01/01 - 02:15:02.599.963 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 162 blocks.

-WRN- | 70/01/01 - 02:15:02.600.085 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 163 blocks.

-WRN- | 70/01/01 - 02:15:02.600.237 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.nodePool’ overflowed. Expanded to 164 blocks.

-WRN- | 70/01/01 - 02:15:02.625.508 | supervisor 11498 main framework | user.c CheckIfUserOrGroupExist 701 | User ‘appsms’ already exists.

=ERR= | 70/01/01 - 02:15:02.627.614 | supervisor 11498 main | le_cfg_client.c le_cfg_GetPath 1049 | newPathPtrNumElements < 513

=ERR= | 70/01/01 - 02:15:02.630.910 | supervisor 11498 main | le_cfg_client.c le_cfg_GetString 2458 | valuePtrNumElements < 513

=ERR= | 70/01/01 - 02:15:02.631.429 | supervisor 11498 main | le_cfg_client.c le_cfg_GetString 2458 | valuePtrNumElements < 513

INFO | 70/01/01 - 02:15:02.632.314 | supervisor 11498 main supervisor | sandbox.c ImportFile 260 | Imported ‘/lib/ld-linux.so.3’ into sandbox ‘/tmp/legato/sandboxes/sms/lib/ld-linux.so.3’.

=ERR= | 70/01/01 - 02:15:02.632.772 | supervisor 11498 main | le_cfg_client.c le_cfg_GetString 2458 | valuePtrNumElements < 513

=ERR= | 70/01/01 - 02:15:02.633.230 | supervisor 11498 main | le_cfg_client.c le_cfg_GetString 2458 | valuePtrNumElements < 513

INFO | 70/01/01 - 02:15:02.633.993 | supervisor 11498 main supervisor | sandbox.c ImportFile 260 | Imported ‘/lib/libc.so.6’ into sandbox ‘/tmp/legato/sandboxes/sms/lib/libc.so.6’.

=ERR= | 70/01/01 - 02:15:02.634.420 | supervisor 11498 main | le_cfg_client.c le_cfg_GetString 2458 | valuePtrNumElements < 513

=ERR= | 70/01/01 - 02:15:02.634.847 | supervisor 11498 main | le_cfg_client.c le_cfg_GetString 2458 | valuePtrNumElements < 513

INFO | 70/01/01 - 02:15:02.635.610 | supervisor 11498 main supervisor | sandbox.c ImportFile 260 | Imported ‘/lib/libpthread.so.0’ into sandbox ‘/tmp/legato/sandboxes/sms/lib/libpthread.so.0’.

=ERR= | 70/01/01 - 02:15:02.636.007 | supervisor 11498 main | le_cfg_client.c le_cfg_GetString 2458 | valuePtrNumElements < 513

=ERR= | 70/01/01 - 02:15:02.636.556 | supervisor 11498 main | le_cfg_client.c le_cfg_GetString 2458 | valuePtrNumElements < 513

INFO | 70/01/01 - 02:15:02.637.381 | supervisor 11498 main supervisor | sandbox.c ImportFile 260 | Imported ‘/lib/librt.so.1’ into sandbox ‘/tmp/legato/sandboxes/sms/lib/librt.so.1’.

=ERR= | 70/01/01 - 02:15:02.638.021 | supervisor 11498 main | le_cfg_client.c le_cfg_GetString 2458 | valuePtrNumElements < 513

=ERR= | 70/01/01 - 02:15:02.971.914 | supervisor 11498 main | le_cfg_client.c le_cfg_GetString 2458 | valuePtrNumElements < 513

INFO | 70/01/01 - 02:15:02.972.983 | supervisor 11498 main supervisor | sandbox.c ImportFile 260 | Imported ‘/usr/local/lib/liblegato.so’ into sandbox ‘/tmp/legato/sandboxes/sms/lib/liblegato.so’.

=ERR= | 70/01/01 - 02:15:02.973.501 | supervisor 11498 main | le_cfg_client.c le_cfg_GetString 2458 | valuePtrNumElements < 513

=ERR= | 70/01/01 - 02:15:02.973.990 | supervisor 11498 main | le_cfg_client.c le_cfg_GetString 2458 | valuePtrNumElements < 513

INFO | 70/01/01 - 02:15:02.974.783 | supervisor 11498 main supervisor | sandbox.c ImportFile 260 | Imported ‘/opt/legato/apps/sms/bin/sms’ into sandbox ‘/tmp/legato/sandboxes/sms/bin/sms’.

=ERR= | 70/01/01 - 02:15:02.975.211 | supervisor 11498 main | le_cfg_client.c le_cfg_GetString 2458 | valuePtrNumElements < 513

=ERR= | 70/01/01 - 02:15:02.975.668 | supervisor 11498 main | le_cfg_client.c le_cfg_GetString 2458 | valuePtrNumElements < 513

INFO | 70/01/01 - 02:15:02.976.553 | supervisor 11498 main supervisor | sandbox.c ImportFile 260 | Imported ‘/usr/local/lib/lible_mdm_client.so’ into sandbox ‘/tmp/legato/sandboxes/sms/lib/lible_mdm_client.so’.

=ERR= | 70/01/01 - 02:15:02.977.011 | supervisor 11498 main | le_cfg_client.c le_cfg_GetString 2458 | valuePtrNumElements < 513

=ERR= | 70/01/01 - 02:15:02.977.469 | supervisor 11498 main | le_cfg_client.c le_cfg_GetString 2458 | valuePtrNumElements < 513

=ERR= | 70/01/01 - 02:15:02.978.202 | supervisor 11498 main supervisor | sandbox.c ImportFile 256 | Could not import ‘/usr/local/lib/lible.so’ into sandbox destination ‘/tmp/legato/sandboxes/sms/lib/lible.so’. No such file or directory

INFO | 70/01/01 - 02:15:02.979.422 | supervisor 11498 main supervisor | sandbox.c sandbox_Remove 585 | Unmounting ‘/var/volatile/tmp/legato/sandboxes/sms/lib/ld-linux.so.3’

INFO | 70/01/01 - 02:15:02.979.972 | supervisor 11498 main supervisor | sandbox.c sandbox_Remove 585 | Unmounting ‘/var/volatile/tmp/legato/sandboxes/sms/lib/libc.so.6’

INFO | 70/01/01 - 02:15:02.980.491 | supervisor 11498 main supervisor | sandbox.c sandbox_Remove 585 | Unmounting ‘/var/volatile/tmp/legato/sandboxes/sms/lib/librt.so.1’

INFO | 70/01/01 - 02:15:02.980.948 | supervisor 11498 main supervisor | sandbox.c sandbox_Remove 585 | Unmounting ‘/var/volatile/tmp/legato/sandboxes/sms/lib/liblegato.so’

INFO | 70/01/01 - 02:15:02.981.345 | supervisor 11498 main supervisor | sandbox.c sandbox_Remove 585 | Unmounting ‘/var/volatile/tmp/legato/sandboxes/sms/bin/sms’

INFO | 70/01/01 - 02:15:02.981.772 | supervisor 11498 main supervisor | sandbox.c sandbox_Remove 585 | Unmounting ‘/var/volatile/tmp/legato/sandboxes/sms/lib/lible_mdm_client.so’

INFO | 70/01/01 - 02:15:02.983.024 | supervisor 11498 main supervisor | sandbox.c sandbox_Remove 585 | Unmounting ‘/var/volatile/tmp/legato/sandboxes/sms/lib/libpthread.so.0’

INFO | 70/01/01 - 02:15:02.984.245 | supervisor 11498 main supervisor | sandbox.c sandbox_Remove 613 | Unmounting /tmp/legato/sandboxes/sms

INFO | 70/01/01 - 02:15:02.986.259 | supervisor 11498 main supervisor | sandbox.c sandbox_Remove 627 | ‘sms’ sandbox removed.

=ERR= | 70/01/01 - 02:15:02.986.473 | supervisor 11498 main supervisor | app.c app_Start 371 | Could not create sandbox for application ‘sms’. This application cannot be started.[/code]

(Look near the end of the logs : (I know it’s a non existant lib but errare humanum est)
=ERR= | 70/01/01 - 02:15:02.978.202 | supervisor 11498 main supervisor | sandbox.c ImportFile 256 | Could not import ‘/usr/local/lib/lible.so’ into sandbox destination ‘/tmp/legato/sandboxes/sms/lib/lible.so’. No such file or directory)

And now i’m unable to remove the app :
Using rmapp on linux :

jeremy@jeremy-VirtualBox:~/Documents/LEGATO_Apps/SMS$ rmapp sms.ar7 192.168.1.89 root@192.168.1.89's password: App 'sms' wasn't running. Removing app 'sms'... INFO | 70/01/01 - 02:21:12.706.234 | appCfgRemove 12568 main <invalid> | configInit.c le_cfg_Initialize 16 | ---- Initializing the configuration API ---- -WRN- | 70/01/01 - 02:21:12.707.455 | appCfgRemove 12568 main framework | mem.c InitPool 266 | Memory pool name '93845fd65125b498008e4945e0a94a91d2ba11ffd3e701b7a22990c799c5fbb6-Msgs' is truncated to '93845fd65125b498008e4945e0a94a9' -WRN- | 70/01/01 - 02:21:12.709.286 | appCfgRemove 12568 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool 'ClientThreadData' overflowed. Expanded to 1 blocks. INFO | 70/01/01 - 02:21:12.709.683 | appCfgRemove 12568 main appConfig | configInstaller.c cfgInstall_Remove 72 | Removing configuration for application 'sms'.

Here is the response on the UART (for rmapp):

[code]root@swi-mdm9x15:/# INFO | 70/01/01 - 02:22:57.673.852 | serviceDirectory 11500 main serviceDirectory | serviceDirectory.c DispatchClientToServer 540 | Client (pid 12717) connected to server 11502 for service (LogControlProtocol:LogClient).

INFO | 70/01/01 - 02:22:57.678.766 | serviceDirectory 11500 main serviceDirectory | serviceDirectory.c DispatchClientToServer 540 | Client (pid 12717) connected to server 11504 for service (93845fd65125b498008e4945e0a94a91d2ba11ffd3e701b7a22990c799c5fbb6

-WRN- | 70/01/01 - 02:22:57.679.285 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘safeRefFdEventHandlers’ overflowed. Expanded to 18 blocks.

-WRN- | 70/01/01 - 02:22:57.679.499 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘safeRefFdEventHandlers’ overflowed. Expanded to 20 blocks.

-WRN- | 70/01/01 - 02:22:57.681.025 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.requestPool’ overflowed. Expanded to 3 blocks.[/code]

And here is the answer of app remove (on the UART)

[code]root@swi-mdm9x15:/# app remove sms

App ‘sms’ wasn’t running.

Removing app ‘sms’…

INFO | 70/01/01 - 02:16:08.457.524 | serviceDirectory 11500 main serviceDirectory | serviceDirectory.c DispatchClientToServer 540 | Client (pid 12164) connected to server 11502 for service (LogControlProtocol:LogClient).

INFO | 70/01/01 - 02:16:08.460.118 | appCfgRemove 12164 main | configInit.c le_cfg_Initialize 16 | ---- Initializing the configuration API ----

-WRN- | 70/01/01 - 02:16:08.461.431 | appCfgRemove 12164 main framework | mem.c InitPool 266 | Memory pool name ‘93845fd65125b498008e4945e0a94a91d2ba11ffd3e701b7a22990c799c5fbb6-Msgs’ is truncated to ‘93845fd65125b498008e4945e0a94a9’

INFO | 70/01/01 - 02:16:08.462.499 | serviceDirectory 11500 main serviceDirectory | serviceDirectory.c DispatchClientToServer 540 | Client (pid 12164) connected to server 11504 for service (93845fd65125b498008e4945e0a94a91d2ba11ffd3e701b7a22990c799c5fbb6

-WRN- | 70/01/01 - 02:16:08.463.262 | appCfgRemove 12164 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘ClientThreadData’ overflowed. Expanded to 1 blocks.

INFO | 70/01/01 - 02:16:08.463.689 | appCfgRemove 12164 main appConfig | configInstaller.c cfgInstall_Remove 72 | Removing configuration for application ‘sms’.

-WRN- | 70/01/01 - 02:16:08.464.940 | configTree 11504 main framework | mem.c le_mem_ForceAlloc 610 | Memory pool ‘configTree.requestPool’ overflowed. Expanded to 1 blocks.[/code]

In order to unblock these tools I modify the following file into the chip:
/opt/legato/configTree/system.paper (which can be system.rock or system.scissors, well played :smiling_imp: )

I remove the block containing the unexisting library (and edit the numbers so they match) and after a reboot I can delete these app normally (using app remove or rmapp).

Regards,

Thanks for the info. I’m now able to reproduce this.

I also found another workaround that is a little easier:

If you run “legato stop” to stop the Legato runtime, then run “legato start ; appCfgRemove sms”, it should get you back in action.

Looking at the code, I see the bug. The Supervisor is forgetting to terminate its configuration database transaction (by deleting its iterator) in the error case when it fails to start an application.

At line 424 of framework/c/src/supervisor/supervisor.c (in the “Start the app.” part of the function “LaunchApp”), it should call le_cfg_DeleteIterator(appCfg);

I just tested that change and it works for me. :smiley:

So, you can patch that up in your own copy of the code for now, and I’ll make sure the fix gets into the Beta release.

Thanks again!

–Jen