D3100 (DisplayLink) and XPS 13-9343 with Ubuntu

I’m delighted with my XPS 13-9343 running Ubuntu from nearly 2 years now.

Few months ago I decided to buy a D3100 docking station to connect my two 24” monitors to my laptop. That was risky because I read a lot about the bad support and low quality drivers for the DisplayLink chipset. But I took the risk.

I installed the drivers from DisplayLink website, but nothing seems to work. After several tries and forum diving, I get some usable system.

I’m running kubuntu 16.10 with the last kernel (4-8.0-45 generic x86_64)

Here my steps:

  1. Install drivers from DisplayLink website
  2. Try it! Maybe it starts working fine to you, lucky you! If it is not working, or you have a very low speed monitor or some windows are displayed oddly, follow to step 3
  3. Try to open a console and run “Xorg :1 -configure”, copy the generated xorg.conf.new file to /etc/X11/xorg.conf
  4. Edit the file and add ” Option “PageFlip” “off” ” to the Device sections
  5. Reboot
  6. If you’re lucky your screens will be working fine!

My results are:

  • glxgears on HDMI displays show ~5000 FPS!!! (on laptop screen shows ~60 FPS)
  • almost everything is well displayed except:
    • systemsettings
    • dolphin

I get the information from DisplayLink forum (here, here, and here)

My xorg.conf file

Updated 1st April: System is stable. I can watch Netflix on Chrome and it is very smooth (I don’t know the exact FPS). CPU usage is about 50% DisplayLinkManager and 30% Chrome

Posted in General | Tagged , , , , , , , , | Leave a comment

Fix for new Touchpad using elantech driver (linux)

I’ve recently bought  a ASUS s301l laptop. This laptop seems to have a new version of touchpad that elantech module cannot detect (kernel version 3.15.4). Because of that, touchpad is detected like an PS/2 and it lacks most of the funcionlities (two fingers gestures, etc.). The error that psmouse driver is giving is: psmouse:elantech_detect: psmouse serio4: elantech: Elantech version query result 0x46, 0x1f, 0x14. psmouse:elantech_detect: psmouse serio4: elantech: Probably not a real Elantech touchpad. Aborting. This detection is performed in elantech_is_signature_valid function. This function compares one of the registers read from the touchpad controller to a set of numbers . If the value of the register matches one of the numbers, the detection fails. (I don’t know the reason of all of this). My touchpad controller returns one of the forbidden values (0x14) so I’ve tried a quick hack: removing the  offending value from the list in that function. After compiling and loading the module, the touchpad is recognized (good!) and it is working (awesome!). If you are in the same problem with your laptop, this is the line you may change in elantech.c module: // static const unsigned char rates[] = { 200, 100, 80, 60, 40, 20, 10 }; static const unsigned char rates[] = { 200, 100, 80, 60, 40, 21, 10 };

Posted in General | Tagged , , , , , | 10 Comments

Añadir etiquetas nepomuk con línia de comandos

De hace tiempo que uso nepomuk en mi entorno de trabajo basado en KDE4. Yo lo uso etiquetando (poniendo tags) a los ficheros que quiero poder recuperar luego rápidamente. Luego en el gestor de ficheros Dolphin (o también en krunner) con solo buscar con la etiqueta recupero todos los ficheros con ese tag.

El coñazo es etiquetar uno a uno los ficheros con Dolphin (entornos gráficos…) así que me he hecho una aplicación en Python para etiquetar desde la línea de comandos (Link a GitHub). Como verás, mis conocimientos de python son más bien escasos, así que cualquier comentario será bienvenido.

Por cierto, parece que la próxima versión de KDE (la KDE 4.13) cambiarán el motor de búsqueda semántica por defecto, ya veremos qué pasará.

Posted in General | Tagged , , , , | 3 Comments

The Internet of Things

Article originally posted at Worldsensing webpage

RFID tags are cheap. Sensors are dropping in price. Many factors are aligning to usher in the Internet of Things.

Factors Feeding into the Internet of Things

The Internet of Things (IoT) covers all different objects that are capable, at the very least, of identifying themselves in a digital format. It means that every tool, box, device, computer or object that can send its identification to other devices belongs to the Internet of Things. Of course, an object can send more information than just its identification: sensors (temperature, light, humidity, vibration, etc.); its status (a trashcan warning it is almost full); or even receive commands to react to the environment (a valve closing off the water supply, a heater system beginning to heat your house before your arrive home).

Continue reading »

Posted in General | Leave a comment

Una clase para Loggearlos a todos

Una buena forma de sacar información de lo que está pasando en nuestras simulaciones SystemC es generar un archivo de log con la distinta información que necesitemos (nombre del módulo, tiempo de simulación, qué se está enviado o recibiendo, etc.).

Para ello la forma más elegante y sencilla de hacerlo es crearse una clase especial para la tarea, que los demás módulos puedan usar para enviar sus información y ésta los grabe en un fichero. Esto se consigue diseñando una clase de tipo singleton. Este patrón de diseño restringe la creación de un solo objecto de una clase dada. En nuestro caso, hará que todos los módulos usen el mismo objecto.

Continue reading »

Posted in General | Tagged , , , | Leave a comment

Configurando Eclipse para desarrollar proyectos TLM-2.0

Hoy os explico cómo crear un proyecto en eclipse para desarrollar un proyecto en TLM-2 y SystemC, es muy fácil! Continue reading »

Posted in General | Tagged , , | Leave a comment

Loosely time y temporal decoupling

Este estilo de codificación permite tan sólo 2 puntos de tiempo en cada transacción, correspondientes a la llamada y al retorno de la función b_transport. (usando el protocolo base, esto se correspondo con el inicio de la petición y el inicio de la respuesta de la transacción).Podemos elegir que estos dos puntos sean el mismo (y la transacción ocurre en tiempo 0)
El tiempo que se pasa como parámetro en la función b_transport indica el tiempo de inicio (y de respuesta) de la transacción respecto al tiempo actual de simulación. En el uso normal (sin usar temporal decoupling), este valor será siempre 0. El target de la transacción puede usar wait() dentro de la función b_transport para simular su tiempo de respuesta, etc.

Continue reading »

Posted in General | Tagged | Leave a comment

Interfaces, sockets, DMI y demás

Interfaces

Cuando usamos el canal normal para comunicar un Initiator con un Target usamos los interfaces que se definen en TLM2.0. De hecho, un Initiator crea una transacción y la pasa como argumento al método del interface (ya sea bloqueante o no). Este método lo implementa el Target que recibe la transacción y hace con ella lo que deba (la ejecuta). Este camino se conoce como forward path. Una vez el Target ha ejecutado la transacción, debe retornar al Initiator, y puede hacerse de dos formas distintas: a través de llamadas a métodos desde el Target al Initiator (a este camino se le llama el backward path; o usando el retorno del método del interface (se conoce como return path).

Continue reading »

Posted in General | Tagged , , , | Leave a comment

Estilos de codificación (Coding Styles)

En TLM-2 se contemplan 3 modos distintos de modelado (llamados Coding Styles en los documentos oficiales) : Untimed, Loosely-timed y Approximately.timed. Cada uno de ellos sirve para un propósito determinado, y para modelar distintos tipos de sistemas. También debemos tener en cuenta el coste de simulación de cada modo (menos costoso Untimed, más costoso el Approximatelly-timed).

Continue reading »

Posted in General | Tagged , , , , | Leave a comment

Bienvenido

Empiezo este blog con la intención de hablar, comentar, informar, aprender sobre el mundo SystemC-TLM.

Posted in General | Tagged , | 1 Comment