You should use a more complete bash command that perform the insert mod,
not an actual command but just the raw idea here:

if [[ $(lsmod | grep "Profibus") != "ProfileBus" ]]; then insmod Profibus fi

Maybe you should check with modprobe to check if the -i or -f flag can help
you to get proper behavior.

That way your command will return error only when the insert fail and you
will not insert mod when already there.

On Wed, Apr 6, 2016 at 1:26 PM, Duane <duane.heb...@group-upc.com> wrote:

> On 06/04/2016 11:47 AM, Thiago Macieira wrote:
>
>> On quarta-feira, 6 de abril de 2016 10:47:39 PDT Duane wrote:
>>
>>> This works in the sense that it returns 0 when there's no error but it
>>> doesn't seem to return the return value from insmod.  For example,
>>> insmod returns 4531 when the file is already loaded but
>>> QProcess::exitCode is 17.  I can rmmod module I guess.
>>>
>>
>> The error code cannot be 4531. There aren't enough bits in the kernel
>> structure that returns status codes.
>>
>> /* If WIFEXITED(STATUS), the low-order 8 bits of the status.  */
>> #define __WEXITSTATUS(status)   (((status) & 0xff00) >> 8)
>>
>>
> 4352. Sorry typo.
>
> Using this call:
> int res = std::system("/sbin/insmod /mnt/sdb1/uio_netx.ko");
>
> Anyway, I don't really need to do this.  I use this to load a Profibus
> mini pci module.  When the module isn't loaded I get a failure trying to
> initialize the "board" that's more explicit.
>
>
> _______________________________________________
> Interest mailing list
> Interest@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to