Today, I was debugging an strange issue in LAVA while trying to boot a board.
I was under the impression that the board was not receiving all the u-boot commands that LAVA was sending.
The serial connection is accessible on the network by ser2net.
I discovered that ser2net can log inputs, outputs or both to a file:
TRACEFILE:trace1:/var/log/ser2net.2000.log 2000:telnet:0:/dev/ttyUSB0:9600 tr=trace1
ser2net will print both inputs and outputs characters to /var/log/ser2net.2000.log.
Going back to my issue, the logfile was:
sseetteennvv aauuttoollooaadd nnoo sseettenv initrd_high '0xffffffff'
When the characters are doubled, it means that ser2net has sent and received that character. That's what I was expected as the board is supposed to echo all characters.
However, the characters are suddenly no longer doubled: the board is not echoing. This does explain why the board was not booting.
The question remains: why is the serial line breaking after a random number of characters.
Static analysis for Python
type() vs isinstance()
When running pylint on your Python source code, you might encounter this message:
Using type() instead of isinstance() for a typecheck. (unidiomatic-typecheck)
This message will be raised for this kind of code:
d = dict() if type(d) == dict: print("d is a dict")
The code is valid but pylint does ...read more
Migrating from Python2 to Python3
Porting code from Python 2 to Python 3 is made easier by using 2to3. This application will find patterns that should be changed to keep the same behavior in Python 2 and 3.
However, 2to3 is sometime too conservative, trying to keep the exact same semantic.
For instance, dictionaries functions ...read more
We will be at FOSDEM to talk about PRoot and some other tools based on it.
Cedric will do a Lightning talk Saturday about syscall instrumentation. He will present some tools, based on syscall instrumentation, that we develop and use at STMicroelectronics:
- PRoot, emulate chroot, bind mount and binfmt_misc for ...
Pretending to be root inside PRoot
PRoot now in Debian
Scaling the time
Using valgrind on time-dependent softwares like VLC media player is often a nightmare and leads to poor results. Let's present a simple and elegant way to workaround this issue
Valgrind and realtime softwares
Valgrind is a really useful tool that checks for memory leaks, wrong memory access and many ...read more
Making VLC at home
A good practice for software developer is to provide a test suite while developing a software. When developing for Linux, it's also a good practice to compile the software and run the test suite on many distributions like Debian, Ubuntu, Fedora, ArchLinux, Centos, Slackware and for both i386 and ...read more