<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.yobi.be/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PhilippeTeuwen</id>
	<title>YobiWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.yobi.be/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PhilippeTeuwen"/>
	<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Special:Contributions/PhilippeTeuwen"/>
	<updated>2026-05-22T14:20:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Exim&amp;diff=10569</id>
		<title>Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Exim&amp;diff=10569"/>
		<updated>2026-03-18T21:51:07Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Nouveau compte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation et configuration d&#039;Exim sur Etch avec smarthost==&lt;br /&gt;
 apt-get install exim4-daemon-heavy&lt;br /&gt;
 dpkg-reconfigure exim4-config&lt;br /&gt;
* Yes, split =&amp;gt; conf files are in /etc/exim4/conf.d&lt;br /&gt;
* Or if you prefer, No, don&#039;t split =&amp;gt; conf file is /etc/exim4/exim4.conf.template&lt;br /&gt;
* Mail sent by smarthost; received via SMTP or fetchmail&lt;br /&gt;
* Mail name: teuwen.org&lt;br /&gt;
* List of IP-addresses to listen on: &#039;&#039;empty&#039;&#039;&lt;br /&gt;
* List of domains as final destination: &#039;&#039;empty&#039;&#039;&lt;br /&gt;
* Machines to relay mail for: 10.0.0.0/8:192.168.2.4&amp;lt;br&amp;gt;Note that if only the localhost must be able to use this smtp without authentication, it has still to be mentioned explicitely: &#039;&amp;lt;ip&amp;gt;/32&#039;&lt;br /&gt;
* smarthost: courriel.latribu.com&lt;br /&gt;
* Hide: no&lt;br /&gt;
* Dial-on-Demand: no&lt;br /&gt;
&lt;br /&gt;
Éditer /etc/exim4/passwd.client&lt;br /&gt;
 courriel.latribu.com:philippe.teuwen@latribu.com:xxxxxx&lt;br /&gt;
&lt;br /&gt;
 update-exim4.conf =&amp;gt; regenerate /var/lib/exim4/config.autogenerated&lt;br /&gt;
Attention!!! à partir d&#039;une certaine version de exim4, le système refuse d&#039;utiliser l&#039;authentification s&#039;il ny a pas d&#039;encryption.&lt;br /&gt;
&amp;lt;br&amp;gt; cf /usr/share/doc/exim4/README.Debian.gz:&lt;br /&gt;
&#039;&#039;AUTH PLAIN and AUTH LOGIN are disabled for connections which are not protected by SSL/TLS per default. These authentication methods use cleartext passwords (like telnet).&amp;lt;br&amp;gt;If you need to enable them for unencrypted connections because your service provider does support neither TLS encryption nor the CRAM MD5 authentication method, you can do so by setting the appropriate macro as mentioned in the comments in the configuration file.&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Le problème est résolu en créant un fichier /etc/exim4/exim4.conf.localmacros avec: AUTH_CLIENT_ALLOW_NOTLS_PASSWORDS = true pour une configuration monolithique et en créant un fichier /etc/exim4/conf.d/main/000_localmacros avec le même contenu pour une configuration &amp;quot;split&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Incidemment une autre modification à apporter est le nom du SMTP server dans /etc/exim4/passwd.client&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;Symptome&#039;&#039;: l&#039;envoi de mails hors du domaine de l&#039;ISP (donc envoi qui requiert une authentification) échoue et on en trouve trace dans /var/log/exim4/mainlog&lt;br /&gt;
 2005-XX-XX XX:XX:XX XXXXXX-XXXXXX-XX ** XX@XX.XX R=smarthost T=remote_smtp_smarthost:&lt;br /&gt;
 SMTP error from remote mailer after RCPT TO:&amp;lt;XX@XX.XX&amp;gt;: host __courriel.talessa.com [85.234.192.2]__: 550 relay not permitted&lt;br /&gt;
&#039;&#039;Raison&#039;&#039;: le smarthost déclaré dans /etc/exim4/update-exim4.conf.conf est dc_smarthost=&#039;__courriel.latribu.com__&#039; mais exim cherche la correspondance dans /etc/exim4/passwd.client avec &#039;&#039;&#039;courriel.talessa.com&#039;&#039;&#039; comme indiqué plus haut.&lt;br /&gt;
&amp;lt;br&amp;gt;Pourquoi? la réponse est dans la résolution DNS du smarthost:&lt;br /&gt;
 host &#039;&#039;&#039;courriel.latribu.com&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;courriel.latribu.com&#039;&#039;&#039;    CNAME   &#039;&#039;&#039;courriel.talessa.com&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;courriel.talessa.com&#039;&#039;&#039;    A       85.234.192.2&lt;br /&gt;
&#039;&#039;Solution&#039;&#039;: un bugreport existe: [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=244724 #244724] et [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=314327 #314327]&lt;br /&gt;
&amp;lt;br&amp;gt;En attendant, il faut faire référence à courriel.talessa.com dans /etc/exim4/passwd.client&lt;br /&gt;
&#039;&#039;UPDATE&#039;&#039; Bizarrement bien que le bugreport ne soit pas fermé on dirait que le problème est réglé et il faut, avec les dernières versions d&#039;Exim, indiquer le même smarthost dans passwd.client que dans update-exim4.conf.&lt;br /&gt;
&lt;br /&gt;
==Installation et configuration d&#039;Exim sur Etch==&lt;br /&gt;
Pour écouter sur un port additionnel autre que le 25, ajouter à la configuration d&#039;exim:&lt;br /&gt;
 daemon_smtp_ports = 25 : 2525&lt;br /&gt;
Autre solution lue sur le Net, ça dépend sans doute de la version éditer /etc/default/exim4:&lt;br /&gt;
    # options for daemon listening on port 25 and port 2525&lt;br /&gt;
    SMTPLISTENEROPTIONS=&#039;-oX 2525:25&#039;&lt;br /&gt;
&lt;br /&gt;
==SMTP server avec TLS et auth==&lt;br /&gt;
 apt-get install openssl&lt;br /&gt;
Générer les certificats avec par exemple: &lt;br /&gt;
 /usr/share/doc/exim4-base/examples/exim-gencert&lt;br /&gt;
Activer le TLS en créant/ajoutant à /etc/exim4/exim4.conf.localmacros: &lt;br /&gt;
&amp;lt;br&amp;gt;MAIN_TLS_ENABLE = true pour une configuration monolithique et en créant un fichier /etc/exim4/conf.d/main/000_localmacros avec le même contenu pour une configuration &amp;quot;split&amp;quot;.&lt;br /&gt;
Activer l&#039;auth en se basant sur le daemon de courier-imap: décommenter dans la section AUTHENTIFICATION CONFIGURATION du fichier /etc/exim4/exim4.conf.template les sections&lt;br /&gt;
&amp;lt;br&amp;gt;plain_courier_authdaemon et login_courier_authdaemon pour une configuration monolithique et en faisant de même dans le fichier /etc/exim4/conf.d/auth/30_exim4-config_examples avec le même contenu pour une configuration &amp;quot;split&amp;quot;.&lt;br /&gt;
Autoriser exim4 à accéder au socket de courier-imap (/var/run/courier/authdaemon/socket): &lt;br /&gt;
 adduser Debian-exim daemon&lt;br /&gt;
Note qu&#039;à partir d&#039;un certain moment, le serveur SMTP denamdait à voir le certificate du client lorsque c&#039;était possible et comme j&#039;ai un certificat CACert dans Thunderbird, celui-ci me promptait à chaque fois que j&#039;envoyais un mail, pour pas grand chose puisque certif ou pas la communication se faisait.&lt;br /&gt;
&amp;lt;br&amp;gt;Explication: cf /etc/exim4/conf.d/main/03_exim4-config_tlsoptions &lt;br /&gt;
&amp;lt;br&amp;gt;Pour éliminer cela j&#039;ai donc ajouté à mon /etc/exim4/conf.d/main/000_localmacros&lt;br /&gt;
 MAIN_TLS_TRY_VERIFY_HOSTS =&lt;br /&gt;
&lt;br /&gt;
==Support d&#039;adresses email secondaires==&lt;br /&gt;
Je crée souvent des adresses sur mesure pour tous ces sites qui veulent un email: phil-parci, phil-parla...&lt;br /&gt;
&amp;lt;br&amp;gt;Modifier dans /etc/exim4/exim4.conf.template (ou dans /etc/exim4/conf.d/router/900_exim4-config_local_user et 700_exim4-config_procmail selon, pour une configuration &amp;quot;split&amp;quot;), les routeur local_user (et routeur procmail, selon) en ajoutant avant check_local_user:&lt;br /&gt;
 local_part_suffix = +* : -* : _*&lt;br /&gt;
 local_part_suffix_optional&lt;br /&gt;
Si votre &amp;quot;user&amp;quot; favori n&#039;est pas celui de votre account mais un alias défini dans /etc/aliases les adresses secondaires ne fonctionneront pas avec ce &amp;quot;user&amp;quot; favori.&lt;br /&gt;
&amp;lt;br&amp;gt;Pour que cela fonctionne il faut aussi modifier le routeur system_aliases dans /etc/exim4/exim4.conf.template (ou dans /etc/exim4/conf.d/router/400_exim4-config_system_aliases pour une configuration &amp;quot;split&amp;quot;) avant le data = ...lookup:&lt;br /&gt;
 local_part_suffix = +* : -* : _*&lt;br /&gt;
 local_part_suffix_optional&lt;br /&gt;
On peut aussi utiliser des adresses du type phil.xxx en ajoutant .* à la liste local_part_suffix:&lt;br /&gt;
 local_part_suffix = +* : -* : _* : .*&lt;br /&gt;
&lt;br /&gt;
==Domaines virtuels==&lt;br /&gt;
cf http://www.debian-administration.org/articles/140 &lt;br /&gt;
&amp;lt;br&amp;gt;Combiné à la règle précédente, cela signifie qu&#039;il faut ajouter les lignes local_part_suffix... au routeur vdom_aliases, local_user et procmail ne nécessitent alors plus cette modification.&lt;br /&gt;
==Nouveau compte==&lt;br /&gt;
En résumé pour ajouter un compte:&lt;br /&gt;
* adduser --disabled-password --shell /usr/sbin/nologin toto&lt;br /&gt;
* userdb toto set uid=1234 gid=1234 home=/home/toto&lt;br /&gt;
* userdbpw -hmac-md5 | userdb toto set hmac-md5pw   # for courier-imap -&amp;gt; choose encrypted pwd in client config&lt;br /&gt;
* userdbpw -md5 | userdb toto set systempw&lt;br /&gt;
* makeuserdb&lt;br /&gt;
* service courier-authdaemon reload&lt;br /&gt;
* (echo &amp;quot;toto : toto@localhost&amp;quot; &amp;gt;&amp;gt; /etc/exim4/virtual/mydomain.com)&lt;br /&gt;
* su -s /bin/bash - toto&lt;br /&gt;
** maildirmake Maildir&lt;br /&gt;
&lt;br /&gt;
Pour le récupérer via fetchmail:&lt;br /&gt;
 ~/.fetchmailrc :&lt;br /&gt;
 poll imap.yobi.be with proto IMAP and with interval 5&lt;br /&gt;
       user &#039;toto&#039; there with password &#039;xxx&#039; is &#039;totolocal&#039; here fetchall &lt;br /&gt;
&lt;br /&gt;
 $ fetchmail -v&lt;br /&gt;
=&amp;gt; cela donne une erreur de vérification de certificat et le fingerprint, qu&#039;on peut rajouter ainsi:&lt;br /&gt;
 ~/.fetchmailrc :&lt;br /&gt;
 poll imap.yobi.be with proto IMAP and with interval 5&lt;br /&gt;
       user &#039;toto&#039; there with password &#039;xxx&#039; is &#039;totolocal&#039; here fetchall sslfingerprint  &amp;quot;62:7B:89:58:7B:33:ED:FF:2B:CF:D9:43:CA:E1:32:0E&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Qqs commandes utiles==&lt;br /&gt;
* Pour lister la queue de messages: &lt;br /&gt;
 exim4 -bp&lt;br /&gt;
ou &lt;br /&gt;
 mailq&lt;br /&gt;
* Pour forcer le process de la queue de messages (par ex. car + de 10 messages ont été rapatriés en une fois): &lt;br /&gt;
 exim4 -q&lt;br /&gt;
ou&lt;br /&gt;
 runq&lt;br /&gt;
* Pour forcer le process de la queue de messages, même pour les messages reschedulés pour plus tard (ex: greylisted): &lt;br /&gt;
 exim4 -qf&lt;br /&gt;
* Pour &amp;quot;dégeler&amp;quot; (thaw) tous les messages gelés (frozen): &lt;br /&gt;
 mailq|gawk &#039;/frozen/{print $3}&#039;|xargs exim4 -Mt;runq&lt;br /&gt;
* Pour effacer un message de la queue: &lt;br /&gt;
 exim4 -Mrm &amp;lt;ID du message&amp;gt;&lt;br /&gt;
* Pour débugger un envoi: &lt;br /&gt;
 echo test|./exim -d+all XX@XX.XX &amp;gt;/tmp/exim-log.txt 2&amp;gt;&amp;amp;1&lt;br /&gt;
* Pour avoir les stats du jour: &lt;br /&gt;
 eximstats /var/log/exim4/mainlog&lt;br /&gt;
* Pour les recevoir par mail, cela est prévu dans /etc/cron.daily/exim4-base, il suffit de décommenter le code et ajouter son adresse email.&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Exim&amp;diff=10568</id>
		<title>Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Exim&amp;diff=10568"/>
		<updated>2026-03-18T21:36:37Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Nouveau compte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation et configuration d&#039;Exim sur Etch avec smarthost==&lt;br /&gt;
 apt-get install exim4-daemon-heavy&lt;br /&gt;
 dpkg-reconfigure exim4-config&lt;br /&gt;
* Yes, split =&amp;gt; conf files are in /etc/exim4/conf.d&lt;br /&gt;
* Or if you prefer, No, don&#039;t split =&amp;gt; conf file is /etc/exim4/exim4.conf.template&lt;br /&gt;
* Mail sent by smarthost; received via SMTP or fetchmail&lt;br /&gt;
* Mail name: teuwen.org&lt;br /&gt;
* List of IP-addresses to listen on: &#039;&#039;empty&#039;&#039;&lt;br /&gt;
* List of domains as final destination: &#039;&#039;empty&#039;&#039;&lt;br /&gt;
* Machines to relay mail for: 10.0.0.0/8:192.168.2.4&amp;lt;br&amp;gt;Note that if only the localhost must be able to use this smtp without authentication, it has still to be mentioned explicitely: &#039;&amp;lt;ip&amp;gt;/32&#039;&lt;br /&gt;
* smarthost: courriel.latribu.com&lt;br /&gt;
* Hide: no&lt;br /&gt;
* Dial-on-Demand: no&lt;br /&gt;
&lt;br /&gt;
Éditer /etc/exim4/passwd.client&lt;br /&gt;
 courriel.latribu.com:philippe.teuwen@latribu.com:xxxxxx&lt;br /&gt;
&lt;br /&gt;
 update-exim4.conf =&amp;gt; regenerate /var/lib/exim4/config.autogenerated&lt;br /&gt;
Attention!!! à partir d&#039;une certaine version de exim4, le système refuse d&#039;utiliser l&#039;authentification s&#039;il ny a pas d&#039;encryption.&lt;br /&gt;
&amp;lt;br&amp;gt; cf /usr/share/doc/exim4/README.Debian.gz:&lt;br /&gt;
&#039;&#039;AUTH PLAIN and AUTH LOGIN are disabled for connections which are not protected by SSL/TLS per default. These authentication methods use cleartext passwords (like telnet).&amp;lt;br&amp;gt;If you need to enable them for unencrypted connections because your service provider does support neither TLS encryption nor the CRAM MD5 authentication method, you can do so by setting the appropriate macro as mentioned in the comments in the configuration file.&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Le problème est résolu en créant un fichier /etc/exim4/exim4.conf.localmacros avec: AUTH_CLIENT_ALLOW_NOTLS_PASSWORDS = true pour une configuration monolithique et en créant un fichier /etc/exim4/conf.d/main/000_localmacros avec le même contenu pour une configuration &amp;quot;split&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Incidemment une autre modification à apporter est le nom du SMTP server dans /etc/exim4/passwd.client&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;Symptome&#039;&#039;: l&#039;envoi de mails hors du domaine de l&#039;ISP (donc envoi qui requiert une authentification) échoue et on en trouve trace dans /var/log/exim4/mainlog&lt;br /&gt;
 2005-XX-XX XX:XX:XX XXXXXX-XXXXXX-XX ** XX@XX.XX R=smarthost T=remote_smtp_smarthost:&lt;br /&gt;
 SMTP error from remote mailer after RCPT TO:&amp;lt;XX@XX.XX&amp;gt;: host __courriel.talessa.com [85.234.192.2]__: 550 relay not permitted&lt;br /&gt;
&#039;&#039;Raison&#039;&#039;: le smarthost déclaré dans /etc/exim4/update-exim4.conf.conf est dc_smarthost=&#039;__courriel.latribu.com__&#039; mais exim cherche la correspondance dans /etc/exim4/passwd.client avec &#039;&#039;&#039;courriel.talessa.com&#039;&#039;&#039; comme indiqué plus haut.&lt;br /&gt;
&amp;lt;br&amp;gt;Pourquoi? la réponse est dans la résolution DNS du smarthost:&lt;br /&gt;
 host &#039;&#039;&#039;courriel.latribu.com&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;courriel.latribu.com&#039;&#039;&#039;    CNAME   &#039;&#039;&#039;courriel.talessa.com&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;courriel.talessa.com&#039;&#039;&#039;    A       85.234.192.2&lt;br /&gt;
&#039;&#039;Solution&#039;&#039;: un bugreport existe: [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=244724 #244724] et [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=314327 #314327]&lt;br /&gt;
&amp;lt;br&amp;gt;En attendant, il faut faire référence à courriel.talessa.com dans /etc/exim4/passwd.client&lt;br /&gt;
&#039;&#039;UPDATE&#039;&#039; Bizarrement bien que le bugreport ne soit pas fermé on dirait que le problème est réglé et il faut, avec les dernières versions d&#039;Exim, indiquer le même smarthost dans passwd.client que dans update-exim4.conf.&lt;br /&gt;
&lt;br /&gt;
==Installation et configuration d&#039;Exim sur Etch==&lt;br /&gt;
Pour écouter sur un port additionnel autre que le 25, ajouter à la configuration d&#039;exim:&lt;br /&gt;
 daemon_smtp_ports = 25 : 2525&lt;br /&gt;
Autre solution lue sur le Net, ça dépend sans doute de la version éditer /etc/default/exim4:&lt;br /&gt;
    # options for daemon listening on port 25 and port 2525&lt;br /&gt;
    SMTPLISTENEROPTIONS=&#039;-oX 2525:25&#039;&lt;br /&gt;
&lt;br /&gt;
==SMTP server avec TLS et auth==&lt;br /&gt;
 apt-get install openssl&lt;br /&gt;
Générer les certificats avec par exemple: &lt;br /&gt;
 /usr/share/doc/exim4-base/examples/exim-gencert&lt;br /&gt;
Activer le TLS en créant/ajoutant à /etc/exim4/exim4.conf.localmacros: &lt;br /&gt;
&amp;lt;br&amp;gt;MAIN_TLS_ENABLE = true pour une configuration monolithique et en créant un fichier /etc/exim4/conf.d/main/000_localmacros avec le même contenu pour une configuration &amp;quot;split&amp;quot;.&lt;br /&gt;
Activer l&#039;auth en se basant sur le daemon de courier-imap: décommenter dans la section AUTHENTIFICATION CONFIGURATION du fichier /etc/exim4/exim4.conf.template les sections&lt;br /&gt;
&amp;lt;br&amp;gt;plain_courier_authdaemon et login_courier_authdaemon pour une configuration monolithique et en faisant de même dans le fichier /etc/exim4/conf.d/auth/30_exim4-config_examples avec le même contenu pour une configuration &amp;quot;split&amp;quot;.&lt;br /&gt;
Autoriser exim4 à accéder au socket de courier-imap (/var/run/courier/authdaemon/socket): &lt;br /&gt;
 adduser Debian-exim daemon&lt;br /&gt;
Note qu&#039;à partir d&#039;un certain moment, le serveur SMTP denamdait à voir le certificate du client lorsque c&#039;était possible et comme j&#039;ai un certificat CACert dans Thunderbird, celui-ci me promptait à chaque fois que j&#039;envoyais un mail, pour pas grand chose puisque certif ou pas la communication se faisait.&lt;br /&gt;
&amp;lt;br&amp;gt;Explication: cf /etc/exim4/conf.d/main/03_exim4-config_tlsoptions &lt;br /&gt;
&amp;lt;br&amp;gt;Pour éliminer cela j&#039;ai donc ajouté à mon /etc/exim4/conf.d/main/000_localmacros&lt;br /&gt;
 MAIN_TLS_TRY_VERIFY_HOSTS =&lt;br /&gt;
&lt;br /&gt;
==Support d&#039;adresses email secondaires==&lt;br /&gt;
Je crée souvent des adresses sur mesure pour tous ces sites qui veulent un email: phil-parci, phil-parla...&lt;br /&gt;
&amp;lt;br&amp;gt;Modifier dans /etc/exim4/exim4.conf.template (ou dans /etc/exim4/conf.d/router/900_exim4-config_local_user et 700_exim4-config_procmail selon, pour une configuration &amp;quot;split&amp;quot;), les routeur local_user (et routeur procmail, selon) en ajoutant avant check_local_user:&lt;br /&gt;
 local_part_suffix = +* : -* : _*&lt;br /&gt;
 local_part_suffix_optional&lt;br /&gt;
Si votre &amp;quot;user&amp;quot; favori n&#039;est pas celui de votre account mais un alias défini dans /etc/aliases les adresses secondaires ne fonctionneront pas avec ce &amp;quot;user&amp;quot; favori.&lt;br /&gt;
&amp;lt;br&amp;gt;Pour que cela fonctionne il faut aussi modifier le routeur system_aliases dans /etc/exim4/exim4.conf.template (ou dans /etc/exim4/conf.d/router/400_exim4-config_system_aliases pour une configuration &amp;quot;split&amp;quot;) avant le data = ...lookup:&lt;br /&gt;
 local_part_suffix = +* : -* : _*&lt;br /&gt;
 local_part_suffix_optional&lt;br /&gt;
On peut aussi utiliser des adresses du type phil.xxx en ajoutant .* à la liste local_part_suffix:&lt;br /&gt;
 local_part_suffix = +* : -* : _* : .*&lt;br /&gt;
&lt;br /&gt;
==Domaines virtuels==&lt;br /&gt;
cf http://www.debian-administration.org/articles/140 &lt;br /&gt;
&amp;lt;br&amp;gt;Combiné à la règle précédente, cela signifie qu&#039;il faut ajouter les lignes local_part_suffix... au routeur vdom_aliases, local_user et procmail ne nécessitent alors plus cette modification.&lt;br /&gt;
==Nouveau compte==&lt;br /&gt;
En résumé pour ajouter un compte:&lt;br /&gt;
* adduser --disabled-password --shell /usr/sbin/nologin toto&lt;br /&gt;
* userdb toto set uid=1234 gid=1234 home=/home/toto&lt;br /&gt;
* userdbpw -hmac-md5 | userdb toto set hmac-md5pw   # for courier-imap -&amp;gt; choose encrypted pwd in client config&lt;br /&gt;
* userdbpw -md5 | userdb toto set systempw&lt;br /&gt;
* makeuserdb&lt;br /&gt;
* service courier-authdaemon reload&lt;br /&gt;
* echo &amp;quot;toto : toto@localhost&amp;quot; &amp;gt;&amp;gt; /etc/exim4/virtual/mydomain.com&lt;br /&gt;
* su - toto&lt;br /&gt;
** maildirmake Maildir&lt;br /&gt;
&lt;br /&gt;
Pour le récupérer via fetchmail:&lt;br /&gt;
 ~/.fetchmailrc :&lt;br /&gt;
 poll imap.yobi.be with proto IMAP and with interval 5&lt;br /&gt;
       user &#039;toto&#039; there with password &#039;xxx&#039; is &#039;totolocal&#039; here fetchall &lt;br /&gt;
&lt;br /&gt;
 $ fetchmail -v&lt;br /&gt;
=&amp;gt; cela donne une erreur de vérification de certificat et le fingerprint, qu&#039;on peut rajouter ainsi:&lt;br /&gt;
 ~/.fetchmailrc :&lt;br /&gt;
 poll imap.yobi.be with proto IMAP and with interval 5&lt;br /&gt;
       user &#039;toto&#039; there with password &#039;xxx&#039; is &#039;totolocal&#039; here fetchall sslfingerprint  &amp;quot;62:7B:89:58:7B:33:ED:FF:2B:CF:D9:43:CA:E1:32:0E&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Qqs commandes utiles==&lt;br /&gt;
* Pour lister la queue de messages: &lt;br /&gt;
 exim4 -bp&lt;br /&gt;
ou &lt;br /&gt;
 mailq&lt;br /&gt;
* Pour forcer le process de la queue de messages (par ex. car + de 10 messages ont été rapatriés en une fois): &lt;br /&gt;
 exim4 -q&lt;br /&gt;
ou&lt;br /&gt;
 runq&lt;br /&gt;
* Pour forcer le process de la queue de messages, même pour les messages reschedulés pour plus tard (ex: greylisted): &lt;br /&gt;
 exim4 -qf&lt;br /&gt;
* Pour &amp;quot;dégeler&amp;quot; (thaw) tous les messages gelés (frozen): &lt;br /&gt;
 mailq|gawk &#039;/frozen/{print $3}&#039;|xargs exim4 -Mt;runq&lt;br /&gt;
* Pour effacer un message de la queue: &lt;br /&gt;
 exim4 -Mrm &amp;lt;ID du message&amp;gt;&lt;br /&gt;
* Pour débugger un envoi: &lt;br /&gt;
 echo test|./exim -d+all XX@XX.XX &amp;gt;/tmp/exim-log.txt 2&amp;gt;&amp;amp;1&lt;br /&gt;
* Pour avoir les stats du jour: &lt;br /&gt;
 eximstats /var/log/exim4/mainlog&lt;br /&gt;
* Pour les recevoir par mail, cela est prévu dans /etc/cron.daily/exim4-base, il suffit de décommenter le code et ajouter son adresse email.&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Bind&amp;diff=10567</id>
		<title>Bind</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Bind&amp;diff=10567"/>
		<updated>2026-01-27T21:47:28Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Setup on server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Intro==&lt;br /&gt;
Some notes how to setup a dynamic DNS...&lt;br /&gt;
&amp;lt;br&amp;gt;Setup is based on Askarel&#039;s [https://github.com/askarel/dynaname dynaname]&lt;br /&gt;
&amp;lt;br&amp;gt;Thank you Fred for the help!&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
===Your DNS server===&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
This will be the nameserver &#039;&#039;&#039;ns0.foo.org&#039;&#039;&#039; for our dynamic subdomain &#039;&#039;&#039;dyn.bar.org&#039;&#039;&#039; so this has to be announced in the primary DNS of your bar.org domain:&lt;br /&gt;
 dyn    NS    ns0.foo.org.&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @your.primary.dns.for.bar.org dyn.bar.org&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.        10800    IN    NS    ns0.foo.org.&lt;br /&gt;
&lt;br /&gt;
===Your dynamic IP client===&lt;br /&gt;
Old notes:&lt;br /&gt;
 apt-get install dnsutils bind9utils&lt;br /&gt;
 git clone https://github.com/askarel/dynaname.git&lt;br /&gt;
&lt;br /&gt;
On Debian Trixie:&lt;br /&gt;
&lt;br /&gt;
If not yet merged, use my branch with tsig-keygen: [https://github.com/doegox/dynaname/tree/phil doegox/dynaname:phil]&lt;br /&gt;
  apt-get install bind9-dnsutils bind9&lt;br /&gt;
  git clone https://github.com/doegox/dynaname&lt;br /&gt;
  cd dynaname&lt;br /&gt;
  git checkout phil&lt;br /&gt;
&lt;br /&gt;
After key generation (cf below), one can remove bind9 and its dependencies&lt;br /&gt;
  apt remove bind9 bind9-utils dns-root-data&lt;br /&gt;
&lt;br /&gt;
And we keep bind9-dnsutils for nsupdate&lt;br /&gt;
&lt;br /&gt;
==Setup on client==&lt;br /&gt;
To create e.g. home.dyn.bar.org:&lt;br /&gt;
 cd dynaname&lt;br /&gt;
 ./dynaname -G -H home.dyn.bar.org -S ns0.foo.org&lt;br /&gt;
==Setup on server==&lt;br /&gt;
Copy client ns0.foo.org/etc/bind/dynaname.conf to ns0.foo.org:/etc/bind/&lt;br /&gt;
&amp;lt;br&amp;gt;and add a hook into ns0.foo.org:/etc/bind/named.conf:&lt;br /&gt;
 include &amp;quot;/etc/bind/dynaname.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For info dynaname.conf should now look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
key home.dyn.bar.org {&lt;br /&gt;
        algorithm HMAC-SHA512;&lt;br /&gt;
        secret &amp;quot;some secret...&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
        update-policy {&lt;br /&gt;
                grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
        };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create ns0.foo.org:/var/cache/bind/dyn/dyn.bar.org with the following content:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN .&lt;br /&gt;
$TTL 3600    ; 1 hour&lt;br /&gt;
dyn.bar.org.      IN SOA    ns0.foo.org. me.bar.org. (&lt;br /&gt;
                  2014060301 ; serial, increment it every time you edit file&lt;br /&gt;
                  600        ; refresh (10 minutes)&lt;br /&gt;
                  300        ; retry (5 minutes)&lt;br /&gt;
                  86400      ; expire (1 day)&lt;br /&gt;
                  300        ; minimum (5 minutes)&lt;br /&gt;
                  )&lt;br /&gt;
dyn.bar.org.      IN NS     ns0.foo.org.&lt;br /&gt;
$ORIGIN dyn.bar.org.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure bind has RW access:&lt;br /&gt;
 root@ns0:/var/cache/bind/dyn# ls -al&lt;br /&gt;
 total 16&lt;br /&gt;
 drwxrwxr-x 2 root bind 4096 Jun  3 23:44 .&lt;br /&gt;
 drwxrwxr-x 3 root bind 4096 Jun  3 23:15 ..&lt;br /&gt;
 -rw-r--r-- 1 bind bind  389 Jun  3 23:44 dyn.bar.org&lt;br /&gt;
&lt;br /&gt;
Reload bind&lt;br /&gt;
 service bind9 reload&lt;br /&gt;
&lt;br /&gt;
Check messages&lt;br /&gt;
 tail /var/log/syslog&lt;br /&gt;
&lt;br /&gt;
==Setup on server with multiple clients==&lt;br /&gt;
For several clients under the same zone dyn.bar.org, e.g. adding work.dyn.bar.org, add to dynaname.conf:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
+ key work.dyn.bar.org {&lt;br /&gt;
+         algorithm HMAC-SHA512;&lt;br /&gt;
+         secret &amp;quot;some other secret...&amp;quot;;&lt;br /&gt;
+ };&lt;br /&gt;
  &lt;br /&gt;
  zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
          type master;&lt;br /&gt;
          file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
          update-policy {&lt;br /&gt;
                  grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
+                 grant work.dyn.bar.org name work.dyn.bar.org A AAAA TXT;&lt;br /&gt;
          };&lt;br /&gt;
  };&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And reload bind&lt;br /&gt;
 /etc/init.d/bind9 reload&lt;br /&gt;
&lt;br /&gt;
==Update from client==&lt;br /&gt;
 ./dynaname -H home.dyn.bar.org -S ns0.foo.org -A 1.2.3.4&lt;br /&gt;
&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @ns0.foo.org home.dyn.bar.org&lt;br /&gt;
 ;; QUESTION SECTION:&lt;br /&gt;
 ;home.dyn.bar.org.		IN	A&lt;br /&gt;
 ;; ANSWER SECTION:&lt;br /&gt;
 home.dyn.bar.org.	300	IN	A	1.2.3.4&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.	3600	IN	NS	ns0.foo.org.&lt;br /&gt;
==Update from client automatically==&lt;br /&gt;
Using [https://github.com/twalrant/yadynip yadynip]:&lt;br /&gt;
 git clone https://github.com/twalrant/yadynip&lt;br /&gt;
 cd yadynip&lt;br /&gt;
 patch -p0 &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
 --- bin/yadynip     2024-11-11 17:20:40.005543486 +0100&lt;br /&gt;
 +++ bin/yadynip     2024-11-11 17:20:59.274511702 +0100&lt;br /&gt;
 @@ -148,6 +148,7 @@&lt;br /&gt;
  &lt;br /&gt;
  ## Perform actions with detected IP address&lt;br /&gt;
  for part in $(runparts $etcdir/actions.d); do&lt;br /&gt;
 +    [ -d &amp;quot;$part&amp;quot; ] &amp;amp;&amp;amp; continue&lt;br /&gt;
      # Get and check last known IP address for this action&lt;br /&gt;
      lastip=$(lastip $(basename $part))&lt;br /&gt;
 EOF&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/00dir600*&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/10all-nettools&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/12showmyip&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/13whatismyip&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/20voo-netgear*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00ipUpdate*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00zeupdate*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/10sendmail*&lt;br /&gt;
 mkdir -p /var/cache/yadynip/ipcaches/&lt;br /&gt;
 ln -s /root/dynaname /usr/local/etc/yadynip/actions.d&lt;br /&gt;
/usr/local/etc/yadynip.conf:&lt;br /&gt;
 verbose=none&lt;br /&gt;
 logfile=/var/log/yadynip.log&lt;br /&gt;
 sharedir=/var/cache/yadynip&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/conf/d00ynaname.conf:&lt;br /&gt;
 host=home.dyn.bar.org&lt;br /&gt;
 ns=ns0.foo.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/dynaname/: the original dynaname with key files&lt;br /&gt;
 dynaname&lt;br /&gt;
 home.dyn.bar.org.private&lt;br /&gt;
Now we can call yadynip from cron&lt;br /&gt;
 crontab -e&lt;br /&gt;
 */10 * * * * /usr/local/bin/yadynip&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=CTF&amp;diff=10566</id>
		<title>CTF</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=CTF&amp;diff=10566"/>
		<updated>2024-11-18T14:21:03Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
* @vhutsebaut Vincent Hutsebaut&lt;br /&gt;
* @MasureMarc Marc Masure&lt;br /&gt;
* @y0ug Hugo Caron&lt;br /&gt;
* @doegox Philippe Teuwen&lt;br /&gt;
* @haxelion Charles Hubain&lt;br /&gt;
* @tlk___ Jeremie Boutoille&lt;br /&gt;
* @macteca Matthieu Kaczmarek // tecamac&lt;br /&gt;
* @Karion_ Vincent Fargues&lt;br /&gt;
* @polymorf34 David Berard&lt;br /&gt;
* @0xf4b Fabien Perigaud&lt;br /&gt;
* Rocky De Wiest // weasel86&lt;br /&gt;
* @jybu Jean-Yves Burlett&lt;br /&gt;
* @lorenzo2472 Laurent Clévy&lt;br /&gt;
* @dummys1337 Jonathan Borgeaud&lt;br /&gt;
* @Baldanos Nicolas Oberli&lt;br /&gt;
* @P3b7_ Charles Guillemet&lt;br /&gt;
* @Fenrisfulsur Sami Babigeon&lt;br /&gt;
* @patacca Riccardo Mori&lt;br /&gt;
* @Ange Ange Albertini&lt;br /&gt;
* @IooNag Nicolas Iooss&lt;br /&gt;
* @TrAyZeN Léo Benito&lt;br /&gt;
=Hacknowledge-Contest 2014-2017? Finale=&lt;br /&gt;
TBD&lt;br /&gt;
&amp;lt;br&amp;gt;pollypocket representing Belgium&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=GreHack CTF 2024=&lt;br /&gt;
&amp;lt;!-- * [https://ctftime.org/event/???? ctftime] --&amp;gt;&lt;br /&gt;
== #2 with @everyone ==&lt;br /&gt;
&amp;lt;!-- Team: @doegox @Fenrisfulsur @patacca @Ange @niels @IooNag @TrAyZeN @pilvar --&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:GreHack2024.png|300px]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:GreHack2024b.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=GreHack CTF 2019=&lt;br /&gt;
* [https://ctftime.org/event/922 ctftime]&lt;br /&gt;
== #1 with GreHax0r ==&lt;br /&gt;
&amp;lt;!-- Team: @doegox @Baldanos @Pelissier_S @bvernoux xx xx xx xx --&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:GreHack2019.jpg|300px]]&lt;br /&gt;
==[https://github.com/SideChannelMarvels/Deadpool/blob/master/wbs_aes_grehack2019 GreHack 2019 AES WB Writeup]==&lt;br /&gt;
&lt;br /&gt;
=GreHack CTF 2018=&lt;br /&gt;
* [https://ctftime.org/event/679 ctftime]&lt;br /&gt;
== #2 with donjon-qsec ==&lt;br /&gt;
&amp;lt;!-- Team: @papazours @doegox guiton jbb gab victor camille @P3b7_ --&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:GreHack2018.jpg|300px]]&lt;br /&gt;
==[[GreHack 2018 Writeups|Writeups]]==&lt;br /&gt;
&lt;br /&gt;
=Hack.lu 2018 CTF by Fluxfingers=&lt;br /&gt;
* [https://ctftime.org/event/699 ctftime]&lt;br /&gt;
== #34 (#3 local) with pollypocket ==&lt;br /&gt;
&amp;lt;!-- Team: doegox mortis adrien/geekou panda tecamac zours? GoFish? plcp?  --&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacklu2018ctf.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=GreHack CTF 2017=&lt;br /&gt;
* [https://ctftime.org/event/426 ctftime]&lt;br /&gt;
== #1 with qsec ==&lt;br /&gt;
&amp;lt;!-- Team: @papazours @doegox kylma+ robin jbb guiton adrien  --&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:GreHack2017.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
=Hack.lu 2017 CTF by Fluxfingers=&lt;br /&gt;
* [https://ctftime.org/event/525 ctftime]&lt;br /&gt;
== #17 (#3 local) with pollypocket ==&lt;br /&gt;
==[[Hack.lu 2017 Writeups|Writeups]]==&lt;br /&gt;
&lt;br /&gt;
=GreHack CTF 2016=&lt;br /&gt;
* [https://ctftime.org/event/301 ctftime]&lt;br /&gt;
== #1 with qsec ==&lt;br /&gt;
&amp;lt;!-- Team: @haxe @doegox @newsoft jbb guiton gheilles sebrummerlhardt xmehrenberger --&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:GreHack2016.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
=Hack.lu 2016 CTF by Fluxfingers=&lt;br /&gt;
* [https://ctftime.org/event/380 ctftime]&lt;br /&gt;
== #13 (#4 local) with pollypocket ==&lt;br /&gt;
&lt;br /&gt;
=Y-not-CTF at CybSec15=&lt;br /&gt;
== #2 with team1 ==&lt;br /&gt;
&amp;lt;!-- Team: @dummys1337 @Baldanos kralor @doegox --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Hack.lu 2015 CTF by Fluxfingers=&lt;br /&gt;
* [https://ctftime.org/event/244 ctftime]&lt;br /&gt;
== #10 (#3 local) with pollypocket ==&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacklu2015ctf2.png|300px]]&lt;br /&gt;
==[[Hack.lu 2015 Writeups|Writeups]]==&lt;br /&gt;
&lt;br /&gt;
=Brucon 2015 MWR challenges=&lt;br /&gt;
There were three challenges proposed by MWR during Brucon 2015.&lt;br /&gt;
&amp;lt;br&amp;gt;pollypocket won two of them, cf tweets [https://twitter.com/mwrlabs/status/652120505877680128 here] and [https://twitter.com/mwrlabs/status/652474013743251456 there]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Brucon2015MRW1.jpg|300px]] [[Image:Brucon2015MRW3.png|390px]] [[Image:Brucon2015MRW2.jpg|220px]]&lt;br /&gt;
&lt;br /&gt;
=CHES2015 CTF=&lt;br /&gt;
Philippe Teuwen&lt;br /&gt;
== #2 under pseudo yobibe ==&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Ches2015timefinal.png|300px]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Ches2015rump1.png|300px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;And BTW [https://twitter.com/doegox/status/615463104214863872 first to solve them all after 5.5 days]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Ches2015time.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==[[CHES2015 Writeup|Writeups]]==&lt;br /&gt;
[[Image:Ches2015rump2.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=Nuit du Hack CTF Finals 2015 by Hackerzvoice=&lt;br /&gt;
== #3 with pollypocket ==&lt;br /&gt;
Team: Vincent Hutsebaut, Marc Masure, Charles Hubain, Jeremie Boutoille, Philippe Teuwen&lt;br /&gt;
&amp;lt;br&amp;gt;(#3 of the 10 CTF finalists, #4 including the public wargame participants)&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Ndh2015final.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=[http://communaute.sstic.org/ChallengeSSTIC2015 SSTIC Challenge 2015]=&lt;br /&gt;
Philippe Teuwen [http://static.sstic.org/challenge2015/solutions/philippe_teuwen.pdf write-up (pdf)] (FR)&lt;br /&gt;
== #2 classement qualité ==&lt;br /&gt;
[[Image:Sstic2015topqual.png|300px]]&lt;br /&gt;
== #9 classement vitesse ==&lt;br /&gt;
[[Image:Sstic2015topspeed.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=Nuit du Hack CTF Quals 2015 by Hackerzvoice=&lt;br /&gt;
* [https://ctftime.org/event/196 ctftime]&lt;br /&gt;
== #1 with pollypocket ==&lt;br /&gt;
Team: Vincent Hutsebaut, Philippe Teuwen, Charles Hubain, Marc Masure, Jeremie Boutoille, Matthieu Kaczmarek&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Ndh2015quals.png|300px]][[Image:NdhTop10.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==[[NDH Writeups#2015 Nuit du Hack CTF Quals by Hackerzvoice|Writeups]]==&lt;br /&gt;
=Codegate CTF preliminary 2015=&lt;br /&gt;
* [https://ctftime.org/event/201 ctftime]&lt;br /&gt;
== #22 with pollypocket ==&lt;br /&gt;
&amp;lt;!-- @MasureMarc @haxelion @doegox @tlk___ @polymorf? @karion? --&amp;gt;&lt;br /&gt;
[[Image:Codegate2015ctf.png|300px]]&lt;br /&gt;
=Hack.lu 2014 CTF by Fluxfingers=&lt;br /&gt;
* [https://ctftime.org/event/154 ctftime]&lt;br /&gt;
== #6 (#1 local) with pollypocket ==&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacklu2014ctf.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=Brucon 2014 CTF by Facebook=&lt;br /&gt;
== #2 (local) with pollypocket ==&lt;br /&gt;
Team: Vincent Hutsebaut, Marc Masure, Charles Hubain, Philippe Teuwen&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Brucon2014ctf0.png|300px]][[Image:Brucon2014ctf1.png|300px]][[Image:Brucon2014ctf2.png|300px]]&lt;br /&gt;
&amp;lt;br&amp;gt;#1 in Base points and in Bonus points ;-)&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Brucon2014ctf3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=Nuit du Hack CTF Finals 2014 by Hackerzvoice=&lt;br /&gt;
* [https://ctftime.org/event/149 ctftime]&lt;br /&gt;
== #6 with pollypocket ==&lt;br /&gt;
Team: Vincent Hutsebaut, Matthieu Kaczmarek, Hugo Caron, Philippe Teuwen, Charles Hubain&lt;br /&gt;
==[[NDH Writeups#2014 Nuit du Hack CTF by Hackerzvoice|Writeups]]==&lt;br /&gt;
=Hacknowledge-Contest 2014-2015 selections for Belgium=&lt;br /&gt;
In the news: [http://www.zataz.com/news/23372/zataz.html Zataz], [http://www.tvlux.be/video/des-hackers-au-wex-_16188.html TV Lux] &lt;br /&gt;
&amp;lt;!-- ([http://www.tvlux.be/videos/2014/140428-marche-wex-hakingknowlege-contest-hakers-securite-informa.mp4 video]) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- https://www.facebook.com/hacknowledge.contest.belgium/photos_stream --&amp;gt;&lt;br /&gt;
== #1 with pollypocket ==&lt;br /&gt;
Team: Vincent Hutsebaut, Marc Masure, Hugo Caron, Philippe Teuwen, Charles Hubain, Jeremie Boutoille&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacknowledge_quals_2.png|300px]]&lt;br /&gt;
[[Image:Hacknowledge_quals_1.png|300px]]&lt;br /&gt;
[[Image:Hacknowledge_quals_winner.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=Nuit du Hack CTF Quals 2014 by Hackerzvoice=&lt;br /&gt;
* [https://ctftime.org/event/142 ctftime]&lt;br /&gt;
== #2 with pollypocket ==&lt;br /&gt;
Team: Vincent Hutsebaut, Matthieu Kaczmarek, Hugo Caron, Philippe Teuwen, Charles Hubain, Jeremie Boutoille&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Ndh2014quals.png|300px]]&lt;br /&gt;
[[Image:Stega-expert.png|300px]]&lt;br /&gt;
[[Image:Forensics expert.png|300px]]&lt;br /&gt;
[[Image:Web expert.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==[[NDH Writeups#2014 Nuit du Hack CTF Quals by Hackerzvoice|Writeups]]==&lt;br /&gt;
&lt;br /&gt;
=Brucon 2013 CTF by Facebook=&lt;br /&gt;
== #1 (local) with pollypocket ==&lt;br /&gt;
Team: Vincent Hutsebaut, Bert Veldeman, Guy Brismée, Philippe Teuwen&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Brucon2013ctf1.png|300px]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Brucon2013ctf2.png|300px]]&lt;br /&gt;
&amp;lt;!-- https://www.youtube.com/watch?v=w2fdPqlHLOU --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Hack.lu 2013 CTF by Fluxfingers=&lt;br /&gt;
* [https://ctftime.org/event/97 ctftime]&lt;br /&gt;
== #5 (#2 local) with pollypocket ==&lt;br /&gt;
Team: Vincent Hutsebaut, Matthieu Kaczmarek, Hugo Caron, Charles Hubain, Philippe Teuwen&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacklu2013ctf.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=Troopers 2013 CTF by PacketWars=&lt;br /&gt;
== #1 (local) with Living Dead anti-Defamation League ==&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Troopers2013pw.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=Hack.lu 2012 CTF by Fluxfingers=&lt;br /&gt;
* [https://ctftime.org/event/38 ctftime]&lt;br /&gt;
== #15 (#2 local) with woyouyizhixiaomaol ==&lt;br /&gt;
Team: Cédric Bonhomme, William Robinet, Guy Brismée, Raphaël Vinot, Philippe Teuwen, Christophe Kyvrakidis&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacklu2012ctf.png|300px]]&lt;br /&gt;
==T-Shirt challenge==&lt;br /&gt;
I designed the Hack.lu 2012 T-Shirt backside, and a more visual version for online teams, see [[Hack.lu Writeups#2012 T-Shirt contest|writeup]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacklu2012_IMG_4924.png|300px]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacklu2012_Noclue.png|300px]]&lt;br /&gt;
==[[Hack.lu 2012 Writeups#2012 T-Shirt contest|Writeups]]==&lt;br /&gt;
&lt;br /&gt;
=Brucon 2012 CTF by The Hex Factor=&lt;br /&gt;
== #3(?) (local) with xflame_doegox(?) ==&lt;br /&gt;
Team: Guy Brismée, Philippe Teuwen&lt;br /&gt;
&amp;lt;br&amp;gt;I don&#039;t remember exactly but we got a prize ;-)&lt;br /&gt;
&lt;br /&gt;
=BeNeLux OWASP Day 2012 CTF by Martin Knobloch, OWASP CTF Project=&lt;br /&gt;
== #2 (local) individual ==&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Owaspbnl2012ctf.jpg|300px]]&lt;br /&gt;
&amp;lt;!-- https://twitter.com/knoblochmartin/status/274562724049063938 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Hack.lu 2011 CTF by Fluxfingers=&lt;br /&gt;
* [https://ctftime.org/event/13 ctftime]&lt;br /&gt;
* [http://2011.hack.lu/index.php?title=CaptureTheFlag Hack.lu CTF]&lt;br /&gt;
== #2 at pre-con crypto challenge ==&lt;br /&gt;
&amp;lt;!-- https://twitter.com/fluxfingers/status/113888231195549696 --&amp;gt;&lt;br /&gt;
== #21 (#5 local) with letmein ==&lt;br /&gt;
[[Image:Hacklu2011ctf.png]]&lt;br /&gt;
&lt;br /&gt;
=Brucon 2011 CTF by The Hex Factor=&lt;br /&gt;
==Member of The Hex Factor==&lt;br /&gt;
That year I was part of The Hex Factor team to design &amp;quot;physical&amp;quot; challenges:&lt;br /&gt;
&amp;lt;br&amp;gt; RFID, visual crypto &amp;amp; QR, Knock knock box&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[Image:Brucon2011ctfbox.png|300px]]&lt;br /&gt;
[[Image:Brucon2011ctfrfid.png|300px]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Brucon2011ctfqr.png|300px]]&lt;br /&gt;
[[Image:Brucon2011ctfqr.gif]]&lt;br /&gt;
&lt;br /&gt;
=Hack.lu 2010 CTF by Fluxfingers=&lt;br /&gt;
== #2 at pre-con crypto challenge ==&lt;br /&gt;
== #12 (#3 local) with xflame_doegox ==&lt;br /&gt;
Team: Guy Brismée, Philippe Teuwen&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacklu2010ctf.png]]&lt;br /&gt;
&lt;br /&gt;
=Brucon 2010 CTF by The Hex Factor=&lt;br /&gt;
== #1 at pre-con stegano challenge ==&lt;br /&gt;
&amp;lt;!-- http://blog.brucon.org/2010/08/winner-and-solution-of-thehexfactor.html --&amp;gt;&lt;br /&gt;
== #2 (local) with xflame_doegox ==&lt;br /&gt;
Team: Guy Brismée, Philippe Teuwen, ...&lt;br /&gt;
&amp;lt;!-- http://www.thehexfactor.org/conferences/brucon/2010 --&amp;gt;&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=File:GreHack2024b.png&amp;diff=10565</id>
		<title>File:GreHack2024b.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=File:GreHack2024b.png&amp;diff=10565"/>
		<updated>2024-11-18T14:15:37Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: PhilippeTeuwen uploaded a new version of File:GreHack2024b.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=File:GreHack2024.png&amp;diff=10564</id>
		<title>File:GreHack2024.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=File:GreHack2024.png&amp;diff=10564"/>
		<updated>2024-11-18T14:15:03Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: PhilippeTeuwen uploaded a new version of File:GreHack2024.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=File:GreHack2024b.png&amp;diff=10563</id>
		<title>File:GreHack2024b.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=File:GreHack2024b.png&amp;diff=10563"/>
		<updated>2024-11-18T14:13:04Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=File:GreHack2024.png&amp;diff=10562</id>
		<title>File:GreHack2024.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=File:GreHack2024.png&amp;diff=10562"/>
		<updated>2024-11-18T14:12:46Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=CTF&amp;diff=10561</id>
		<title>CTF</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=CTF&amp;diff=10561"/>
		<updated>2024-11-18T14:12:16Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
* @vhutsebaut Vincent Hutsebaut&lt;br /&gt;
* @MasureMarc Marc Masure&lt;br /&gt;
* @y0ug Hugo Caron&lt;br /&gt;
* @doegox Philippe Teuwen&lt;br /&gt;
* @haxelion Charles Hubain&lt;br /&gt;
* @tlk___ Jeremie Boutoille&lt;br /&gt;
* @macteca Matthieu Kaczmarek // tecamac&lt;br /&gt;
* @Karion_ Vincent Fargues&lt;br /&gt;
* @polymorf34 David Berard&lt;br /&gt;
* @0xf4b Fabien Perigaud&lt;br /&gt;
* Rocky De Wiest // weasel86&lt;br /&gt;
* @jybu Jean-Yves Burlett&lt;br /&gt;
* @lorenzo2472 Laurent Clévy&lt;br /&gt;
* @dummys1337 Jonathan Borgeaud&lt;br /&gt;
* @Baldanos Nicolas Oberli&lt;br /&gt;
* @P3b7_ Charles Guillemet&lt;br /&gt;
* @Fenrisfulsur Sami Babigeon&lt;br /&gt;
* @patacca Riccardo Mori&lt;br /&gt;
* @Ange Ange Albertini&lt;br /&gt;
* @IooNag Nicolas Iooss&lt;br /&gt;
=Hacknowledge-Contest 2014-2017? Finale=&lt;br /&gt;
TBD&lt;br /&gt;
&amp;lt;br&amp;gt;pollypocket representing Belgium&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=GreHack CTF 2024=&lt;br /&gt;
&amp;lt;!-- * [https://ctftime.org/event/???? ctftime] --&amp;gt;&lt;br /&gt;
== #2 with @everyone ==&lt;br /&gt;
&amp;lt;!-- Team: @doegox @Fenrisfulsur @patacca @Ange @niels @IooNag @TrAyZeN @pilvar --&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:GreHack2024.png|300px]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:GreHack2024b.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=GreHack CTF 2019=&lt;br /&gt;
* [https://ctftime.org/event/922 ctftime]&lt;br /&gt;
== #1 with GreHax0r ==&lt;br /&gt;
&amp;lt;!-- Team: @doegox @Baldanos @Pelissier_S @bvernoux xx xx xx xx --&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:GreHack2019.jpg|300px]]&lt;br /&gt;
==[https://github.com/SideChannelMarvels/Deadpool/blob/master/wbs_aes_grehack2019 GreHack 2019 AES WB Writeup]==&lt;br /&gt;
&lt;br /&gt;
=GreHack CTF 2018=&lt;br /&gt;
* [https://ctftime.org/event/679 ctftime]&lt;br /&gt;
== #2 with donjon-qsec ==&lt;br /&gt;
&amp;lt;!-- Team: @papazours @doegox guiton jbb gab victor camille @P3b7_ --&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:GreHack2018.jpg|300px]]&lt;br /&gt;
==[[GreHack 2018 Writeups|Writeups]]==&lt;br /&gt;
&lt;br /&gt;
=Hack.lu 2018 CTF by Fluxfingers=&lt;br /&gt;
* [https://ctftime.org/event/699 ctftime]&lt;br /&gt;
== #34 (#3 local) with pollypocket ==&lt;br /&gt;
&amp;lt;!-- Team: doegox mortis adrien/geekou panda tecamac zours? GoFish? plcp?  --&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacklu2018ctf.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=GreHack CTF 2017=&lt;br /&gt;
* [https://ctftime.org/event/426 ctftime]&lt;br /&gt;
== #1 with qsec ==&lt;br /&gt;
&amp;lt;!-- Team: @papazours @doegox kylma+ robin jbb guiton adrien  --&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:GreHack2017.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
=Hack.lu 2017 CTF by Fluxfingers=&lt;br /&gt;
* [https://ctftime.org/event/525 ctftime]&lt;br /&gt;
== #17 (#3 local) with pollypocket ==&lt;br /&gt;
==[[Hack.lu 2017 Writeups|Writeups]]==&lt;br /&gt;
&lt;br /&gt;
=GreHack CTF 2016=&lt;br /&gt;
* [https://ctftime.org/event/301 ctftime]&lt;br /&gt;
== #1 with qsec ==&lt;br /&gt;
&amp;lt;!-- Team: @haxe @doegox @newsoft jbb guiton gheilles sebrummerlhardt xmehrenberger --&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:GreHack2016.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
=Hack.lu 2016 CTF by Fluxfingers=&lt;br /&gt;
* [https://ctftime.org/event/380 ctftime]&lt;br /&gt;
== #13 (#4 local) with pollypocket ==&lt;br /&gt;
&lt;br /&gt;
=Y-not-CTF at CybSec15=&lt;br /&gt;
== #2 with team1 ==&lt;br /&gt;
&amp;lt;!-- Team: @dummys1337 @Baldanos kralor @doegox --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Hack.lu 2015 CTF by Fluxfingers=&lt;br /&gt;
* [https://ctftime.org/event/244 ctftime]&lt;br /&gt;
== #10 (#3 local) with pollypocket ==&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacklu2015ctf2.png|300px]]&lt;br /&gt;
==[[Hack.lu 2015 Writeups|Writeups]]==&lt;br /&gt;
&lt;br /&gt;
=Brucon 2015 MWR challenges=&lt;br /&gt;
There were three challenges proposed by MWR during Brucon 2015.&lt;br /&gt;
&amp;lt;br&amp;gt;pollypocket won two of them, cf tweets [https://twitter.com/mwrlabs/status/652120505877680128 here] and [https://twitter.com/mwrlabs/status/652474013743251456 there]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Brucon2015MRW1.jpg|300px]] [[Image:Brucon2015MRW3.png|390px]] [[Image:Brucon2015MRW2.jpg|220px]]&lt;br /&gt;
&lt;br /&gt;
=CHES2015 CTF=&lt;br /&gt;
Philippe Teuwen&lt;br /&gt;
== #2 under pseudo yobibe ==&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Ches2015timefinal.png|300px]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Ches2015rump1.png|300px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;And BTW [https://twitter.com/doegox/status/615463104214863872 first to solve them all after 5.5 days]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Ches2015time.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==[[CHES2015 Writeup|Writeups]]==&lt;br /&gt;
[[Image:Ches2015rump2.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=Nuit du Hack CTF Finals 2015 by Hackerzvoice=&lt;br /&gt;
== #3 with pollypocket ==&lt;br /&gt;
Team: Vincent Hutsebaut, Marc Masure, Charles Hubain, Jeremie Boutoille, Philippe Teuwen&lt;br /&gt;
&amp;lt;br&amp;gt;(#3 of the 10 CTF finalists, #4 including the public wargame participants)&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Ndh2015final.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=[http://communaute.sstic.org/ChallengeSSTIC2015 SSTIC Challenge 2015]=&lt;br /&gt;
Philippe Teuwen [http://static.sstic.org/challenge2015/solutions/philippe_teuwen.pdf write-up (pdf)] (FR)&lt;br /&gt;
== #2 classement qualité ==&lt;br /&gt;
[[Image:Sstic2015topqual.png|300px]]&lt;br /&gt;
== #9 classement vitesse ==&lt;br /&gt;
[[Image:Sstic2015topspeed.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=Nuit du Hack CTF Quals 2015 by Hackerzvoice=&lt;br /&gt;
* [https://ctftime.org/event/196 ctftime]&lt;br /&gt;
== #1 with pollypocket ==&lt;br /&gt;
Team: Vincent Hutsebaut, Philippe Teuwen, Charles Hubain, Marc Masure, Jeremie Boutoille, Matthieu Kaczmarek&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Ndh2015quals.png|300px]][[Image:NdhTop10.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==[[NDH Writeups#2015 Nuit du Hack CTF Quals by Hackerzvoice|Writeups]]==&lt;br /&gt;
=Codegate CTF preliminary 2015=&lt;br /&gt;
* [https://ctftime.org/event/201 ctftime]&lt;br /&gt;
== #22 with pollypocket ==&lt;br /&gt;
&amp;lt;!-- @MasureMarc @haxelion @doegox @tlk___ @polymorf? @karion? --&amp;gt;&lt;br /&gt;
[[Image:Codegate2015ctf.png|300px]]&lt;br /&gt;
=Hack.lu 2014 CTF by Fluxfingers=&lt;br /&gt;
* [https://ctftime.org/event/154 ctftime]&lt;br /&gt;
== #6 (#1 local) with pollypocket ==&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacklu2014ctf.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=Brucon 2014 CTF by Facebook=&lt;br /&gt;
== #2 (local) with pollypocket ==&lt;br /&gt;
Team: Vincent Hutsebaut, Marc Masure, Charles Hubain, Philippe Teuwen&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Brucon2014ctf0.png|300px]][[Image:Brucon2014ctf1.png|300px]][[Image:Brucon2014ctf2.png|300px]]&lt;br /&gt;
&amp;lt;br&amp;gt;#1 in Base points and in Bonus points ;-)&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Brucon2014ctf3.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=Nuit du Hack CTF Finals 2014 by Hackerzvoice=&lt;br /&gt;
* [https://ctftime.org/event/149 ctftime]&lt;br /&gt;
== #6 with pollypocket ==&lt;br /&gt;
Team: Vincent Hutsebaut, Matthieu Kaczmarek, Hugo Caron, Philippe Teuwen, Charles Hubain&lt;br /&gt;
==[[NDH Writeups#2014 Nuit du Hack CTF by Hackerzvoice|Writeups]]==&lt;br /&gt;
=Hacknowledge-Contest 2014-2015 selections for Belgium=&lt;br /&gt;
In the news: [http://www.zataz.com/news/23372/zataz.html Zataz], [http://www.tvlux.be/video/des-hackers-au-wex-_16188.html TV Lux] &lt;br /&gt;
&amp;lt;!-- ([http://www.tvlux.be/videos/2014/140428-marche-wex-hakingknowlege-contest-hakers-securite-informa.mp4 video]) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- https://www.facebook.com/hacknowledge.contest.belgium/photos_stream --&amp;gt;&lt;br /&gt;
== #1 with pollypocket ==&lt;br /&gt;
Team: Vincent Hutsebaut, Marc Masure, Hugo Caron, Philippe Teuwen, Charles Hubain, Jeremie Boutoille&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacknowledge_quals_2.png|300px]]&lt;br /&gt;
[[Image:Hacknowledge_quals_1.png|300px]]&lt;br /&gt;
[[Image:Hacknowledge_quals_winner.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=Nuit du Hack CTF Quals 2014 by Hackerzvoice=&lt;br /&gt;
* [https://ctftime.org/event/142 ctftime]&lt;br /&gt;
== #2 with pollypocket ==&lt;br /&gt;
Team: Vincent Hutsebaut, Matthieu Kaczmarek, Hugo Caron, Philippe Teuwen, Charles Hubain, Jeremie Boutoille&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Ndh2014quals.png|300px]]&lt;br /&gt;
[[Image:Stega-expert.png|300px]]&lt;br /&gt;
[[Image:Forensics expert.png|300px]]&lt;br /&gt;
[[Image:Web expert.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==[[NDH Writeups#2014 Nuit du Hack CTF Quals by Hackerzvoice|Writeups]]==&lt;br /&gt;
&lt;br /&gt;
=Brucon 2013 CTF by Facebook=&lt;br /&gt;
== #1 (local) with pollypocket ==&lt;br /&gt;
Team: Vincent Hutsebaut, Bert Veldeman, Guy Brismée, Philippe Teuwen&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Brucon2013ctf1.png|300px]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Brucon2013ctf2.png|300px]]&lt;br /&gt;
&amp;lt;!-- https://www.youtube.com/watch?v=w2fdPqlHLOU --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Hack.lu 2013 CTF by Fluxfingers=&lt;br /&gt;
* [https://ctftime.org/event/97 ctftime]&lt;br /&gt;
== #5 (#2 local) with pollypocket ==&lt;br /&gt;
Team: Vincent Hutsebaut, Matthieu Kaczmarek, Hugo Caron, Charles Hubain, Philippe Teuwen&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacklu2013ctf.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=Troopers 2013 CTF by PacketWars=&lt;br /&gt;
== #1 (local) with Living Dead anti-Defamation League ==&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Troopers2013pw.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=Hack.lu 2012 CTF by Fluxfingers=&lt;br /&gt;
* [https://ctftime.org/event/38 ctftime]&lt;br /&gt;
== #15 (#2 local) with woyouyizhixiaomaol ==&lt;br /&gt;
Team: Cédric Bonhomme, William Robinet, Guy Brismée, Raphaël Vinot, Philippe Teuwen, Christophe Kyvrakidis&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacklu2012ctf.png|300px]]&lt;br /&gt;
==T-Shirt challenge==&lt;br /&gt;
I designed the Hack.lu 2012 T-Shirt backside, and a more visual version for online teams, see [[Hack.lu Writeups#2012 T-Shirt contest|writeup]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacklu2012_IMG_4924.png|300px]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacklu2012_Noclue.png|300px]]&lt;br /&gt;
==[[Hack.lu 2012 Writeups#2012 T-Shirt contest|Writeups]]==&lt;br /&gt;
&lt;br /&gt;
=Brucon 2012 CTF by The Hex Factor=&lt;br /&gt;
== #3(?) (local) with xflame_doegox(?) ==&lt;br /&gt;
Team: Guy Brismée, Philippe Teuwen&lt;br /&gt;
&amp;lt;br&amp;gt;I don&#039;t remember exactly but we got a prize ;-)&lt;br /&gt;
&lt;br /&gt;
=BeNeLux OWASP Day 2012 CTF by Martin Knobloch, OWASP CTF Project=&lt;br /&gt;
== #2 (local) individual ==&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Owaspbnl2012ctf.jpg|300px]]&lt;br /&gt;
&amp;lt;!-- https://twitter.com/knoblochmartin/status/274562724049063938 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Hack.lu 2011 CTF by Fluxfingers=&lt;br /&gt;
* [https://ctftime.org/event/13 ctftime]&lt;br /&gt;
* [http://2011.hack.lu/index.php?title=CaptureTheFlag Hack.lu CTF]&lt;br /&gt;
== #2 at pre-con crypto challenge ==&lt;br /&gt;
&amp;lt;!-- https://twitter.com/fluxfingers/status/113888231195549696 --&amp;gt;&lt;br /&gt;
== #21 (#5 local) with letmein ==&lt;br /&gt;
[[Image:Hacklu2011ctf.png]]&lt;br /&gt;
&lt;br /&gt;
=Brucon 2011 CTF by The Hex Factor=&lt;br /&gt;
==Member of The Hex Factor==&lt;br /&gt;
That year I was part of The Hex Factor team to design &amp;quot;physical&amp;quot; challenges:&lt;br /&gt;
&amp;lt;br&amp;gt; RFID, visual crypto &amp;amp; QR, Knock knock box&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[Image:Brucon2011ctfbox.png|300px]]&lt;br /&gt;
[[Image:Brucon2011ctfrfid.png|300px]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Brucon2011ctfqr.png|300px]]&lt;br /&gt;
[[Image:Brucon2011ctfqr.gif]]&lt;br /&gt;
&lt;br /&gt;
=Hack.lu 2010 CTF by Fluxfingers=&lt;br /&gt;
== #2 at pre-con crypto challenge ==&lt;br /&gt;
== #12 (#3 local) with xflame_doegox ==&lt;br /&gt;
Team: Guy Brismée, Philippe Teuwen&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Hacklu2010ctf.png]]&lt;br /&gt;
&lt;br /&gt;
=Brucon 2010 CTF by The Hex Factor=&lt;br /&gt;
== #1 at pre-con stegano challenge ==&lt;br /&gt;
&amp;lt;!-- http://blog.brucon.org/2010/08/winner-and-solution-of-thehexfactor.html --&amp;gt;&lt;br /&gt;
== #2 (local) with xflame_doegox ==&lt;br /&gt;
Team: Guy Brismée, Philippe Teuwen, ...&lt;br /&gt;
&amp;lt;!-- http://www.thehexfactor.org/conferences/brucon/2010 --&amp;gt;&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Bind&amp;diff=10560</id>
		<title>Bind</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Bind&amp;diff=10560"/>
		<updated>2024-11-11T16:25:36Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Update from client automatically */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Intro==&lt;br /&gt;
Some notes how to setup a dynamic DNS...&lt;br /&gt;
&amp;lt;br&amp;gt;Setup is based on Askarel&#039;s [https://github.com/askarel/dynaname dynaname]&lt;br /&gt;
&amp;lt;br&amp;gt;Thank you Fred for the help!&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
===Your DNS server===&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
This will be the nameserver &#039;&#039;&#039;ns0.foo.org&#039;&#039;&#039; for our dynamic subdomain &#039;&#039;&#039;dyn.bar.org&#039;&#039;&#039; so this has to be announced in the primary DNS of your bar.org domain:&lt;br /&gt;
 dyn    NS    ns0.foo.org.&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @your.primary.dns.for.bar.org dyn.bar.org&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.        10800    IN    NS    ns0.foo.org.&lt;br /&gt;
&lt;br /&gt;
===Your dynamic IP client===&lt;br /&gt;
Old notes:&lt;br /&gt;
 apt-get install dnsutils bind9utils&lt;br /&gt;
 git clone https://github.com/askarel/dynaname.git&lt;br /&gt;
&lt;br /&gt;
On Debian Trixie:&lt;br /&gt;
&lt;br /&gt;
If not yet merged, use my branch with tsig-keygen: [https://github.com/doegox/dynaname/tree/phil doegox/dynaname:phil]&lt;br /&gt;
  apt-get install bind9-dnsutils bind9&lt;br /&gt;
  git clone https://github.com/doegox/dynaname&lt;br /&gt;
  cd dynaname&lt;br /&gt;
  git checkout phil&lt;br /&gt;
&lt;br /&gt;
After key generation (cf below), one can remove bind9 and its dependencies&lt;br /&gt;
  apt remove bind9 bind9-utils dns-root-data&lt;br /&gt;
&lt;br /&gt;
And we keep bind9-dnsutils for nsupdate&lt;br /&gt;
&lt;br /&gt;
==Setup on client==&lt;br /&gt;
To create e.g. home.dyn.bar.org:&lt;br /&gt;
 cd dynaname&lt;br /&gt;
 ./dynaname -G -H home.dyn.bar.org -S ns0.foo.org&lt;br /&gt;
==Setup on server==&lt;br /&gt;
Copy client ns0.foo.org/etc/bind/dynaname.conf to ns0.foo.org:/etc/bind/&lt;br /&gt;
&amp;lt;br&amp;gt;and add a hook into ns0.foo.org:/etc/bind/named.conf:&lt;br /&gt;
 include &amp;quot;/etc/bind/dynaname.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For info dynaname.conf should now look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
key home.dyn.bar.org {&lt;br /&gt;
        algorithm HMAC-SHA512;&lt;br /&gt;
        secret &amp;quot;some secret...&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
        update-policy {&lt;br /&gt;
                grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
        };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create ns0.foo.org:/var/cache/bind/dyn/dyn.bar.org with the following content:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN .&lt;br /&gt;
$TTL 3600    ; 1 hour&lt;br /&gt;
dyn.bar.org.      IN SOA    ns0.foo.org. me.bar.org. (&lt;br /&gt;
                  2014060301 ; serial, increment it every time you edit file&lt;br /&gt;
                  600        ; refresh (10 minutes)&lt;br /&gt;
                  300        ; retry (5 minutes)&lt;br /&gt;
                  86400      ; expire (1 day)&lt;br /&gt;
                  300        ; minimum (5 minutes)&lt;br /&gt;
                  )&lt;br /&gt;
dyn.bar.org.      IN NS     ns0.foo.org.&lt;br /&gt;
$ORIGIN dyn.bar.org.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure bind has RW access:&lt;br /&gt;
 root@ns0:/var/cache/bind/dyn# ls -al&lt;br /&gt;
 total 16&lt;br /&gt;
 drwxrwxr-x 2 root bind 4096 Jun  3 23:44 .&lt;br /&gt;
 drwxrwxr-x 3 root bind 4096 Jun  3 23:15 ..&lt;br /&gt;
 -rw-r--r-- 1 bind bind  389 Jun  3 23:44 dyn.bar.org&lt;br /&gt;
&lt;br /&gt;
Reload bind&lt;br /&gt;
 service reload bind9&lt;br /&gt;
&lt;br /&gt;
Check messages&lt;br /&gt;
 tail /var/log/syslog&lt;br /&gt;
&lt;br /&gt;
==Setup on server with multiple clients==&lt;br /&gt;
For several clients under the same zone dyn.bar.org, e.g. adding work.dyn.bar.org, add to dynaname.conf:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
+ key work.dyn.bar.org {&lt;br /&gt;
+         algorithm HMAC-SHA512;&lt;br /&gt;
+         secret &amp;quot;some other secret...&amp;quot;;&lt;br /&gt;
+ };&lt;br /&gt;
  &lt;br /&gt;
  zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
          type master;&lt;br /&gt;
          file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
          update-policy {&lt;br /&gt;
                  grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
+                 grant work.dyn.bar.org name work.dyn.bar.org A AAAA TXT;&lt;br /&gt;
          };&lt;br /&gt;
  };&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And reload bind&lt;br /&gt;
 /etc/init.d/bind9 reload&lt;br /&gt;
&lt;br /&gt;
==Update from client==&lt;br /&gt;
 ./dynaname -H home.dyn.bar.org -S ns0.foo.org -A 1.2.3.4&lt;br /&gt;
&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @ns0.foo.org home.dyn.bar.org&lt;br /&gt;
 ;; QUESTION SECTION:&lt;br /&gt;
 ;home.dyn.bar.org.		IN	A&lt;br /&gt;
 ;; ANSWER SECTION:&lt;br /&gt;
 home.dyn.bar.org.	300	IN	A	1.2.3.4&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.	3600	IN	NS	ns0.foo.org.&lt;br /&gt;
==Update from client automatically==&lt;br /&gt;
Using [https://github.com/twalrant/yadynip yadynip]:&lt;br /&gt;
 git clone https://github.com/twalrant/yadynip&lt;br /&gt;
 cd yadynip&lt;br /&gt;
 patch -p0 &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
 --- bin/yadynip     2024-11-11 17:20:40.005543486 +0100&lt;br /&gt;
 +++ bin/yadynip     2024-11-11 17:20:59.274511702 +0100&lt;br /&gt;
 @@ -148,6 +148,7 @@&lt;br /&gt;
  &lt;br /&gt;
  ## Perform actions with detected IP address&lt;br /&gt;
  for part in $(runparts $etcdir/actions.d); do&lt;br /&gt;
 +    [ -d &amp;quot;$part&amp;quot; ] &amp;amp;&amp;amp; continue&lt;br /&gt;
      # Get and check last known IP address for this action&lt;br /&gt;
      lastip=$(lastip $(basename $part))&lt;br /&gt;
 EOF&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/00dir600*&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/10all-nettools&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/12showmyip&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/13whatismyip&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/20voo-netgear*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00ipUpdate*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00zeupdate*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/10sendmail*&lt;br /&gt;
 mkdir -p /var/cache/yadynip/ipcaches/&lt;br /&gt;
 ln -s /root/dynaname /usr/local/etc/yadynip/actions.d&lt;br /&gt;
/usr/local/etc/yadynip.conf:&lt;br /&gt;
 verbose=none&lt;br /&gt;
 logfile=/var/log/yadynip.log&lt;br /&gt;
 sharedir=/var/cache/yadynip&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/conf/d00ynaname.conf:&lt;br /&gt;
 host=home.dyn.bar.org&lt;br /&gt;
 ns=ns0.foo.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/dynaname/: the original dynaname with key files&lt;br /&gt;
 dynaname&lt;br /&gt;
 home.dyn.bar.org.private&lt;br /&gt;
Now we can call yadynip from cron&lt;br /&gt;
 crontab -e&lt;br /&gt;
 */10 * * * * /usr/local/bin/yadynip&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Bind&amp;diff=10559</id>
		<title>Bind</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Bind&amp;diff=10559"/>
		<updated>2024-11-11T16:25:17Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Update from client automatically */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Intro==&lt;br /&gt;
Some notes how to setup a dynamic DNS...&lt;br /&gt;
&amp;lt;br&amp;gt;Setup is based on Askarel&#039;s [https://github.com/askarel/dynaname dynaname]&lt;br /&gt;
&amp;lt;br&amp;gt;Thank you Fred for the help!&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
===Your DNS server===&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
This will be the nameserver &#039;&#039;&#039;ns0.foo.org&#039;&#039;&#039; for our dynamic subdomain &#039;&#039;&#039;dyn.bar.org&#039;&#039;&#039; so this has to be announced in the primary DNS of your bar.org domain:&lt;br /&gt;
 dyn    NS    ns0.foo.org.&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @your.primary.dns.for.bar.org dyn.bar.org&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.        10800    IN    NS    ns0.foo.org.&lt;br /&gt;
&lt;br /&gt;
===Your dynamic IP client===&lt;br /&gt;
Old notes:&lt;br /&gt;
 apt-get install dnsutils bind9utils&lt;br /&gt;
 git clone https://github.com/askarel/dynaname.git&lt;br /&gt;
&lt;br /&gt;
On Debian Trixie:&lt;br /&gt;
&lt;br /&gt;
If not yet merged, use my branch with tsig-keygen: [https://github.com/doegox/dynaname/tree/phil doegox/dynaname:phil]&lt;br /&gt;
  apt-get install bind9-dnsutils bind9&lt;br /&gt;
  git clone https://github.com/doegox/dynaname&lt;br /&gt;
  cd dynaname&lt;br /&gt;
  git checkout phil&lt;br /&gt;
&lt;br /&gt;
After key generation (cf below), one can remove bind9 and its dependencies&lt;br /&gt;
  apt remove bind9 bind9-utils dns-root-data&lt;br /&gt;
&lt;br /&gt;
And we keep bind9-dnsutils for nsupdate&lt;br /&gt;
&lt;br /&gt;
==Setup on client==&lt;br /&gt;
To create e.g. home.dyn.bar.org:&lt;br /&gt;
 cd dynaname&lt;br /&gt;
 ./dynaname -G -H home.dyn.bar.org -S ns0.foo.org&lt;br /&gt;
==Setup on server==&lt;br /&gt;
Copy client ns0.foo.org/etc/bind/dynaname.conf to ns0.foo.org:/etc/bind/&lt;br /&gt;
&amp;lt;br&amp;gt;and add a hook into ns0.foo.org:/etc/bind/named.conf:&lt;br /&gt;
 include &amp;quot;/etc/bind/dynaname.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For info dynaname.conf should now look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
key home.dyn.bar.org {&lt;br /&gt;
        algorithm HMAC-SHA512;&lt;br /&gt;
        secret &amp;quot;some secret...&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
        update-policy {&lt;br /&gt;
                grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
        };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create ns0.foo.org:/var/cache/bind/dyn/dyn.bar.org with the following content:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN .&lt;br /&gt;
$TTL 3600    ; 1 hour&lt;br /&gt;
dyn.bar.org.      IN SOA    ns0.foo.org. me.bar.org. (&lt;br /&gt;
                  2014060301 ; serial, increment it every time you edit file&lt;br /&gt;
                  600        ; refresh (10 minutes)&lt;br /&gt;
                  300        ; retry (5 minutes)&lt;br /&gt;
                  86400      ; expire (1 day)&lt;br /&gt;
                  300        ; minimum (5 minutes)&lt;br /&gt;
                  )&lt;br /&gt;
dyn.bar.org.      IN NS     ns0.foo.org.&lt;br /&gt;
$ORIGIN dyn.bar.org.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure bind has RW access:&lt;br /&gt;
 root@ns0:/var/cache/bind/dyn# ls -al&lt;br /&gt;
 total 16&lt;br /&gt;
 drwxrwxr-x 2 root bind 4096 Jun  3 23:44 .&lt;br /&gt;
 drwxrwxr-x 3 root bind 4096 Jun  3 23:15 ..&lt;br /&gt;
 -rw-r--r-- 1 bind bind  389 Jun  3 23:44 dyn.bar.org&lt;br /&gt;
&lt;br /&gt;
Reload bind&lt;br /&gt;
 service reload bind9&lt;br /&gt;
&lt;br /&gt;
Check messages&lt;br /&gt;
 tail /var/log/syslog&lt;br /&gt;
&lt;br /&gt;
==Setup on server with multiple clients==&lt;br /&gt;
For several clients under the same zone dyn.bar.org, e.g. adding work.dyn.bar.org, add to dynaname.conf:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
+ key work.dyn.bar.org {&lt;br /&gt;
+         algorithm HMAC-SHA512;&lt;br /&gt;
+         secret &amp;quot;some other secret...&amp;quot;;&lt;br /&gt;
+ };&lt;br /&gt;
  &lt;br /&gt;
  zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
          type master;&lt;br /&gt;
          file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
          update-policy {&lt;br /&gt;
                  grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
+                 grant work.dyn.bar.org name work.dyn.bar.org A AAAA TXT;&lt;br /&gt;
          };&lt;br /&gt;
  };&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And reload bind&lt;br /&gt;
 /etc/init.d/bind9 reload&lt;br /&gt;
&lt;br /&gt;
==Update from client==&lt;br /&gt;
 ./dynaname -H home.dyn.bar.org -S ns0.foo.org -A 1.2.3.4&lt;br /&gt;
&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @ns0.foo.org home.dyn.bar.org&lt;br /&gt;
 ;; QUESTION SECTION:&lt;br /&gt;
 ;home.dyn.bar.org.		IN	A&lt;br /&gt;
 ;; ANSWER SECTION:&lt;br /&gt;
 home.dyn.bar.org.	300	IN	A	1.2.3.4&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.	3600	IN	NS	ns0.foo.org.&lt;br /&gt;
==Update from client automatically==&lt;br /&gt;
Using [https://github.com/twalrant/yadynip yadynip]:&lt;br /&gt;
 git clone https://github.com/twalrant/yadynip&lt;br /&gt;
 cd yadynip&lt;br /&gt;
 patch -p0 &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
--- bin/yadynip     2024-11-11 17:20:40.005543486 +0100&lt;br /&gt;
+++ bin/yadynip     2024-11-11 17:20:59.274511702 +0100&lt;br /&gt;
@@ -148,6 +148,7 @@&lt;br /&gt;
 &lt;br /&gt;
 ## Perform actions with detected IP address&lt;br /&gt;
 for part in $(runparts $etcdir/actions.d); do&lt;br /&gt;
+    [ -d &amp;quot;$part&amp;quot; ] &amp;amp;&amp;amp; continue&lt;br /&gt;
     # Get and check last known IP address for this action&lt;br /&gt;
     lastip=$(lastip $(basename $part))&lt;br /&gt;
EOF&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/00dir600*&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/10all-nettools&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/12showmyip&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/13whatismyip&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/20voo-netgear*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00ipUpdate*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00zeupdate*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/10sendmail*&lt;br /&gt;
 mkdir -p /var/cache/yadynip/ipcaches/&lt;br /&gt;
 ln -s /root/dynaname /usr/local/etc/yadynip/actions.d&lt;br /&gt;
/usr/local/etc/yadynip.conf:&lt;br /&gt;
 verbose=none&lt;br /&gt;
 logfile=/var/log/yadynip.log&lt;br /&gt;
 sharedir=/var/cache/yadynip&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/conf/d00ynaname.conf:&lt;br /&gt;
 host=home.dyn.bar.org&lt;br /&gt;
 ns=ns0.foo.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/dynaname/: the original dynaname with key files&lt;br /&gt;
 dynaname&lt;br /&gt;
 home.dyn.bar.org.private&lt;br /&gt;
Now we can call yadynip from cron&lt;br /&gt;
 crontab -e&lt;br /&gt;
 */10 * * * * /usr/local/bin/yadynip&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Bind&amp;diff=10558</id>
		<title>Bind</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Bind&amp;diff=10558"/>
		<updated>2024-11-11T15:58:29Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Update from client automatically */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Intro==&lt;br /&gt;
Some notes how to setup a dynamic DNS...&lt;br /&gt;
&amp;lt;br&amp;gt;Setup is based on Askarel&#039;s [https://github.com/askarel/dynaname dynaname]&lt;br /&gt;
&amp;lt;br&amp;gt;Thank you Fred for the help!&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
===Your DNS server===&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
This will be the nameserver &#039;&#039;&#039;ns0.foo.org&#039;&#039;&#039; for our dynamic subdomain &#039;&#039;&#039;dyn.bar.org&#039;&#039;&#039; so this has to be announced in the primary DNS of your bar.org domain:&lt;br /&gt;
 dyn    NS    ns0.foo.org.&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @your.primary.dns.for.bar.org dyn.bar.org&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.        10800    IN    NS    ns0.foo.org.&lt;br /&gt;
&lt;br /&gt;
===Your dynamic IP client===&lt;br /&gt;
Old notes:&lt;br /&gt;
 apt-get install dnsutils bind9utils&lt;br /&gt;
 git clone https://github.com/askarel/dynaname.git&lt;br /&gt;
&lt;br /&gt;
On Debian Trixie:&lt;br /&gt;
&lt;br /&gt;
If not yet merged, use my branch with tsig-keygen: [https://github.com/doegox/dynaname/tree/phil doegox/dynaname:phil]&lt;br /&gt;
  apt-get install bind9-dnsutils bind9&lt;br /&gt;
  git clone https://github.com/doegox/dynaname&lt;br /&gt;
  cd dynaname&lt;br /&gt;
  git checkout phil&lt;br /&gt;
&lt;br /&gt;
After key generation (cf below), one can remove bind9 and its dependencies&lt;br /&gt;
  apt remove bind9 bind9-utils dns-root-data&lt;br /&gt;
&lt;br /&gt;
And we keep bind9-dnsutils for nsupdate&lt;br /&gt;
&lt;br /&gt;
==Setup on client==&lt;br /&gt;
To create e.g. home.dyn.bar.org:&lt;br /&gt;
 cd dynaname&lt;br /&gt;
 ./dynaname -G -H home.dyn.bar.org -S ns0.foo.org&lt;br /&gt;
==Setup on server==&lt;br /&gt;
Copy client ns0.foo.org/etc/bind/dynaname.conf to ns0.foo.org:/etc/bind/&lt;br /&gt;
&amp;lt;br&amp;gt;and add a hook into ns0.foo.org:/etc/bind/named.conf:&lt;br /&gt;
 include &amp;quot;/etc/bind/dynaname.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For info dynaname.conf should now look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
key home.dyn.bar.org {&lt;br /&gt;
        algorithm HMAC-SHA512;&lt;br /&gt;
        secret &amp;quot;some secret...&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
        update-policy {&lt;br /&gt;
                grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
        };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create ns0.foo.org:/var/cache/bind/dyn/dyn.bar.org with the following content:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN .&lt;br /&gt;
$TTL 3600    ; 1 hour&lt;br /&gt;
dyn.bar.org.      IN SOA    ns0.foo.org. me.bar.org. (&lt;br /&gt;
                  2014060301 ; serial, increment it every time you edit file&lt;br /&gt;
                  600        ; refresh (10 minutes)&lt;br /&gt;
                  300        ; retry (5 minutes)&lt;br /&gt;
                  86400      ; expire (1 day)&lt;br /&gt;
                  300        ; minimum (5 minutes)&lt;br /&gt;
                  )&lt;br /&gt;
dyn.bar.org.      IN NS     ns0.foo.org.&lt;br /&gt;
$ORIGIN dyn.bar.org.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure bind has RW access:&lt;br /&gt;
 root@ns0:/var/cache/bind/dyn# ls -al&lt;br /&gt;
 total 16&lt;br /&gt;
 drwxrwxr-x 2 root bind 4096 Jun  3 23:44 .&lt;br /&gt;
 drwxrwxr-x 3 root bind 4096 Jun  3 23:15 ..&lt;br /&gt;
 -rw-r--r-- 1 bind bind  389 Jun  3 23:44 dyn.bar.org&lt;br /&gt;
&lt;br /&gt;
Reload bind&lt;br /&gt;
 service reload bind9&lt;br /&gt;
&lt;br /&gt;
Check messages&lt;br /&gt;
 tail /var/log/syslog&lt;br /&gt;
&lt;br /&gt;
==Setup on server with multiple clients==&lt;br /&gt;
For several clients under the same zone dyn.bar.org, e.g. adding work.dyn.bar.org, add to dynaname.conf:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
+ key work.dyn.bar.org {&lt;br /&gt;
+         algorithm HMAC-SHA512;&lt;br /&gt;
+         secret &amp;quot;some other secret...&amp;quot;;&lt;br /&gt;
+ };&lt;br /&gt;
  &lt;br /&gt;
  zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
          type master;&lt;br /&gt;
          file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
          update-policy {&lt;br /&gt;
                  grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
+                 grant work.dyn.bar.org name work.dyn.bar.org A AAAA TXT;&lt;br /&gt;
          };&lt;br /&gt;
  };&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And reload bind&lt;br /&gt;
 /etc/init.d/bind9 reload&lt;br /&gt;
&lt;br /&gt;
==Update from client==&lt;br /&gt;
 ./dynaname -H home.dyn.bar.org -S ns0.foo.org -A 1.2.3.4&lt;br /&gt;
&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @ns0.foo.org home.dyn.bar.org&lt;br /&gt;
 ;; QUESTION SECTION:&lt;br /&gt;
 ;home.dyn.bar.org.		IN	A&lt;br /&gt;
 ;; ANSWER SECTION:&lt;br /&gt;
 home.dyn.bar.org.	300	IN	A	1.2.3.4&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.	3600	IN	NS	ns0.foo.org.&lt;br /&gt;
==Update from client automatically==&lt;br /&gt;
Using [https://github.com/twalrant/yadynip yadynip]:&lt;br /&gt;
 git clone https://github.com/twalrant/yadynip&lt;br /&gt;
 cd yadynip&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/00dir600*&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/10all-nettools&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/12showmyip&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/13whatismyip&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/20voo-netgear*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00ipUpdate*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00zeupdate*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/10sendmail*&lt;br /&gt;
 mkdir -p /var/cache/yadynip/ipcaches/&lt;br /&gt;
 ln -s /root/dynaname /usr/local/etc/yadynip/actions.d&lt;br /&gt;
/usr/local/etc/yadynip.conf:&lt;br /&gt;
 verbose=none&lt;br /&gt;
 logfile=/var/log/yadynip.log&lt;br /&gt;
 sharedir=/var/cache/yadynip&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/conf/d00ynaname.conf:&lt;br /&gt;
 host=home.dyn.bar.org&lt;br /&gt;
 ns=ns0.foo.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/dynaname/: the original dynaname with key files&lt;br /&gt;
 dynaname&lt;br /&gt;
 home.dyn.bar.org.private&lt;br /&gt;
Now we can call yadynip from cron&lt;br /&gt;
 crontab -e&lt;br /&gt;
 */10 * * * * /usr/local/bin/yadynip&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Bind&amp;diff=10557</id>
		<title>Bind</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Bind&amp;diff=10557"/>
		<updated>2024-11-11T15:56:18Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Update from client automatically */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Intro==&lt;br /&gt;
Some notes how to setup a dynamic DNS...&lt;br /&gt;
&amp;lt;br&amp;gt;Setup is based on Askarel&#039;s [https://github.com/askarel/dynaname dynaname]&lt;br /&gt;
&amp;lt;br&amp;gt;Thank you Fred for the help!&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
===Your DNS server===&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
This will be the nameserver &#039;&#039;&#039;ns0.foo.org&#039;&#039;&#039; for our dynamic subdomain &#039;&#039;&#039;dyn.bar.org&#039;&#039;&#039; so this has to be announced in the primary DNS of your bar.org domain:&lt;br /&gt;
 dyn    NS    ns0.foo.org.&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @your.primary.dns.for.bar.org dyn.bar.org&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.        10800    IN    NS    ns0.foo.org.&lt;br /&gt;
&lt;br /&gt;
===Your dynamic IP client===&lt;br /&gt;
Old notes:&lt;br /&gt;
 apt-get install dnsutils bind9utils&lt;br /&gt;
 git clone https://github.com/askarel/dynaname.git&lt;br /&gt;
&lt;br /&gt;
On Debian Trixie:&lt;br /&gt;
&lt;br /&gt;
If not yet merged, use my branch with tsig-keygen: [https://github.com/doegox/dynaname/tree/phil doegox/dynaname:phil]&lt;br /&gt;
  apt-get install bind9-dnsutils bind9&lt;br /&gt;
  git clone https://github.com/doegox/dynaname&lt;br /&gt;
  cd dynaname&lt;br /&gt;
  git checkout phil&lt;br /&gt;
&lt;br /&gt;
After key generation (cf below), one can remove bind9 and its dependencies&lt;br /&gt;
  apt remove bind9 bind9-utils dns-root-data&lt;br /&gt;
&lt;br /&gt;
And we keep bind9-dnsutils for nsupdate&lt;br /&gt;
&lt;br /&gt;
==Setup on client==&lt;br /&gt;
To create e.g. home.dyn.bar.org:&lt;br /&gt;
 cd dynaname&lt;br /&gt;
 ./dynaname -G -H home.dyn.bar.org -S ns0.foo.org&lt;br /&gt;
==Setup on server==&lt;br /&gt;
Copy client ns0.foo.org/etc/bind/dynaname.conf to ns0.foo.org:/etc/bind/&lt;br /&gt;
&amp;lt;br&amp;gt;and add a hook into ns0.foo.org:/etc/bind/named.conf:&lt;br /&gt;
 include &amp;quot;/etc/bind/dynaname.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For info dynaname.conf should now look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
key home.dyn.bar.org {&lt;br /&gt;
        algorithm HMAC-SHA512;&lt;br /&gt;
        secret &amp;quot;some secret...&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
        update-policy {&lt;br /&gt;
                grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
        };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create ns0.foo.org:/var/cache/bind/dyn/dyn.bar.org with the following content:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN .&lt;br /&gt;
$TTL 3600    ; 1 hour&lt;br /&gt;
dyn.bar.org.      IN SOA    ns0.foo.org. me.bar.org. (&lt;br /&gt;
                  2014060301 ; serial, increment it every time you edit file&lt;br /&gt;
                  600        ; refresh (10 minutes)&lt;br /&gt;
                  300        ; retry (5 minutes)&lt;br /&gt;
                  86400      ; expire (1 day)&lt;br /&gt;
                  300        ; minimum (5 minutes)&lt;br /&gt;
                  )&lt;br /&gt;
dyn.bar.org.      IN NS     ns0.foo.org.&lt;br /&gt;
$ORIGIN dyn.bar.org.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure bind has RW access:&lt;br /&gt;
 root@ns0:/var/cache/bind/dyn# ls -al&lt;br /&gt;
 total 16&lt;br /&gt;
 drwxrwxr-x 2 root bind 4096 Jun  3 23:44 .&lt;br /&gt;
 drwxrwxr-x 3 root bind 4096 Jun  3 23:15 ..&lt;br /&gt;
 -rw-r--r-- 1 bind bind  389 Jun  3 23:44 dyn.bar.org&lt;br /&gt;
&lt;br /&gt;
Reload bind&lt;br /&gt;
 service reload bind9&lt;br /&gt;
&lt;br /&gt;
Check messages&lt;br /&gt;
 tail /var/log/syslog&lt;br /&gt;
&lt;br /&gt;
==Setup on server with multiple clients==&lt;br /&gt;
For several clients under the same zone dyn.bar.org, e.g. adding work.dyn.bar.org, add to dynaname.conf:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
+ key work.dyn.bar.org {&lt;br /&gt;
+         algorithm HMAC-SHA512;&lt;br /&gt;
+         secret &amp;quot;some other secret...&amp;quot;;&lt;br /&gt;
+ };&lt;br /&gt;
  &lt;br /&gt;
  zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
          type master;&lt;br /&gt;
          file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
          update-policy {&lt;br /&gt;
                  grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
+                 grant work.dyn.bar.org name work.dyn.bar.org A AAAA TXT;&lt;br /&gt;
          };&lt;br /&gt;
  };&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And reload bind&lt;br /&gt;
 /etc/init.d/bind9 reload&lt;br /&gt;
&lt;br /&gt;
==Update from client==&lt;br /&gt;
 ./dynaname -H home.dyn.bar.org -S ns0.foo.org -A 1.2.3.4&lt;br /&gt;
&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @ns0.foo.org home.dyn.bar.org&lt;br /&gt;
 ;; QUESTION SECTION:&lt;br /&gt;
 ;home.dyn.bar.org.		IN	A&lt;br /&gt;
 ;; ANSWER SECTION:&lt;br /&gt;
 home.dyn.bar.org.	300	IN	A	1.2.3.4&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.	3600	IN	NS	ns0.foo.org.&lt;br /&gt;
==Update from client automatically==&lt;br /&gt;
Using [https://github.com/twalrant/yadynip yadynip]:&lt;br /&gt;
 git clone https://github.com/twalrant/yadynip&lt;br /&gt;
 cd yadynip&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/00dir600*&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/10all-nettools&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/12showmyip&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/13whatismyip&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/20voo-netgear*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00ipUpdate*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00zeupdate*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/10sendmail*&lt;br /&gt;
 mkdir -p /var/cache/yadynip/ipcaches/&lt;br /&gt;
 ln -s /root/dynaname /usr/local/etc/yadynip/actions.d&lt;br /&gt;
/usr/local/etc/yadynip.conf:&lt;br /&gt;
 verbose=none&lt;br /&gt;
 logfile=/var/log/yadynip.log&lt;br /&gt;
 sharedir=/var/cache/yadynip&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/conf/d00ynaname.conf:&lt;br /&gt;
 host=home.dyn.bar.org&lt;br /&gt;
 ns=ns0.foo.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/dynaname/: the original dynaname with key files&lt;br /&gt;
 dynaname&lt;br /&gt;
 home.dyn.bar.org.private&lt;br /&gt;
Now we can call yadynip from cron&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Bind&amp;diff=10556</id>
		<title>Bind</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Bind&amp;diff=10556"/>
		<updated>2024-11-11T15:50:22Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Update from client automatically */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Intro==&lt;br /&gt;
Some notes how to setup a dynamic DNS...&lt;br /&gt;
&amp;lt;br&amp;gt;Setup is based on Askarel&#039;s [https://github.com/askarel/dynaname dynaname]&lt;br /&gt;
&amp;lt;br&amp;gt;Thank you Fred for the help!&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
===Your DNS server===&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
This will be the nameserver &#039;&#039;&#039;ns0.foo.org&#039;&#039;&#039; for our dynamic subdomain &#039;&#039;&#039;dyn.bar.org&#039;&#039;&#039; so this has to be announced in the primary DNS of your bar.org domain:&lt;br /&gt;
 dyn    NS    ns0.foo.org.&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @your.primary.dns.for.bar.org dyn.bar.org&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.        10800    IN    NS    ns0.foo.org.&lt;br /&gt;
&lt;br /&gt;
===Your dynamic IP client===&lt;br /&gt;
Old notes:&lt;br /&gt;
 apt-get install dnsutils bind9utils&lt;br /&gt;
 git clone https://github.com/askarel/dynaname.git&lt;br /&gt;
&lt;br /&gt;
On Debian Trixie:&lt;br /&gt;
&lt;br /&gt;
If not yet merged, use my branch with tsig-keygen: [https://github.com/doegox/dynaname/tree/phil doegox/dynaname:phil]&lt;br /&gt;
  apt-get install bind9-dnsutils bind9&lt;br /&gt;
  git clone https://github.com/doegox/dynaname&lt;br /&gt;
  cd dynaname&lt;br /&gt;
  git checkout phil&lt;br /&gt;
&lt;br /&gt;
After key generation (cf below), one can remove bind9 and its dependencies&lt;br /&gt;
  apt remove bind9 bind9-utils dns-root-data&lt;br /&gt;
&lt;br /&gt;
And we keep bind9-dnsutils for nsupdate&lt;br /&gt;
&lt;br /&gt;
==Setup on client==&lt;br /&gt;
To create e.g. home.dyn.bar.org:&lt;br /&gt;
 cd dynaname&lt;br /&gt;
 ./dynaname -G -H home.dyn.bar.org -S ns0.foo.org&lt;br /&gt;
==Setup on server==&lt;br /&gt;
Copy client ns0.foo.org/etc/bind/dynaname.conf to ns0.foo.org:/etc/bind/&lt;br /&gt;
&amp;lt;br&amp;gt;and add a hook into ns0.foo.org:/etc/bind/named.conf:&lt;br /&gt;
 include &amp;quot;/etc/bind/dynaname.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For info dynaname.conf should now look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
key home.dyn.bar.org {&lt;br /&gt;
        algorithm HMAC-SHA512;&lt;br /&gt;
        secret &amp;quot;some secret...&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
        update-policy {&lt;br /&gt;
                grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
        };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create ns0.foo.org:/var/cache/bind/dyn/dyn.bar.org with the following content:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN .&lt;br /&gt;
$TTL 3600    ; 1 hour&lt;br /&gt;
dyn.bar.org.      IN SOA    ns0.foo.org. me.bar.org. (&lt;br /&gt;
                  2014060301 ; serial, increment it every time you edit file&lt;br /&gt;
                  600        ; refresh (10 minutes)&lt;br /&gt;
                  300        ; retry (5 minutes)&lt;br /&gt;
                  86400      ; expire (1 day)&lt;br /&gt;
                  300        ; minimum (5 minutes)&lt;br /&gt;
                  )&lt;br /&gt;
dyn.bar.org.      IN NS     ns0.foo.org.&lt;br /&gt;
$ORIGIN dyn.bar.org.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure bind has RW access:&lt;br /&gt;
 root@ns0:/var/cache/bind/dyn# ls -al&lt;br /&gt;
 total 16&lt;br /&gt;
 drwxrwxr-x 2 root bind 4096 Jun  3 23:44 .&lt;br /&gt;
 drwxrwxr-x 3 root bind 4096 Jun  3 23:15 ..&lt;br /&gt;
 -rw-r--r-- 1 bind bind  389 Jun  3 23:44 dyn.bar.org&lt;br /&gt;
&lt;br /&gt;
Reload bind&lt;br /&gt;
 service reload bind9&lt;br /&gt;
&lt;br /&gt;
Check messages&lt;br /&gt;
 tail /var/log/syslog&lt;br /&gt;
&lt;br /&gt;
==Setup on server with multiple clients==&lt;br /&gt;
For several clients under the same zone dyn.bar.org, e.g. adding work.dyn.bar.org, add to dynaname.conf:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
+ key work.dyn.bar.org {&lt;br /&gt;
+         algorithm HMAC-SHA512;&lt;br /&gt;
+         secret &amp;quot;some other secret...&amp;quot;;&lt;br /&gt;
+ };&lt;br /&gt;
  &lt;br /&gt;
  zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
          type master;&lt;br /&gt;
          file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
          update-policy {&lt;br /&gt;
                  grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
+                 grant work.dyn.bar.org name work.dyn.bar.org A AAAA TXT;&lt;br /&gt;
          };&lt;br /&gt;
  };&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And reload bind&lt;br /&gt;
 /etc/init.d/bind9 reload&lt;br /&gt;
&lt;br /&gt;
==Update from client==&lt;br /&gt;
 ./dynaname -H home.dyn.bar.org -S ns0.foo.org -A 1.2.3.4&lt;br /&gt;
&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @ns0.foo.org home.dyn.bar.org&lt;br /&gt;
 ;; QUESTION SECTION:&lt;br /&gt;
 ;home.dyn.bar.org.		IN	A&lt;br /&gt;
 ;; ANSWER SECTION:&lt;br /&gt;
 home.dyn.bar.org.	300	IN	A	1.2.3.4&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.	3600	IN	NS	ns0.foo.org.&lt;br /&gt;
==Update from client automatically==&lt;br /&gt;
Using [https://github.com/twalrant/yadynip yadynip]:&lt;br /&gt;
 git clone https://github.com/twalrant/yadynip&lt;br /&gt;
 cd yadynip&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/00dir600*&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/10all-nettools&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/12showmyip&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/13whatismyip&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/20voo-netgear*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00ipUpdate*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00zeupdate*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/10sendmail*&lt;br /&gt;
 mkdir -p /var/cache/yadynip/ipcaches/&lt;br /&gt;
/usr/local/etc/yadynip.conf:&lt;br /&gt;
 verbose=none&lt;br /&gt;
 logfile=/var/log/yadynip.log&lt;br /&gt;
 sharedir=/var/cache/yadynip&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/conf/dynaname:&lt;br /&gt;
 host=home.dyn.bar.org&lt;br /&gt;
 ns=ns0.foo.org&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/00dynaname:&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
host=&lt;br /&gt;
ns=&lt;br /&gt;
## Config file.&lt;br /&gt;
configfile=$(basename $0)&lt;br /&gt;
configfile=$(dirname $0)/conf/${configfile:2}&lt;br /&gt;
if [ -n &amp;quot;$configfile&amp;quot; ] &amp;amp;&amp;amp; [ -f $configfile ]; then&lt;br /&gt;
    . $configfile&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Quit silently if not configured&lt;br /&gt;
[ &amp;quot;$host&amp;quot; == &amp;quot;&amp;quot; ] || [ &amp;quot;$ns&amp;quot; == &amp;quot;&amp;quot; ] &amp;amp;&amp;amp; exit 1&lt;br /&gt;
&lt;br /&gt;
tooldir=$(basename $0)&lt;br /&gt;
tooldir=$(dirname $0)/${tooldir:2}&lt;br /&gt;
cd $tooldir&lt;br /&gt;
./dynaname -H $host -S $ns -A $1 || exit $?&lt;br /&gt;
[ -z &amp;quot;$2&amp;quot; ] &amp;amp;&amp;amp; exit 0;&lt;br /&gt;
echo $(date -R) &amp;quot;Dynaname update zone $host with $1&amp;quot; &amp;gt;&amp;gt; $2&lt;br /&gt;
&lt;br /&gt;
# Successfull action exit with 0&lt;br /&gt;
exit 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/dynaname/: the original dynaname with key files&lt;br /&gt;
 dynaname&lt;br /&gt;
 home.dyn.bar.org.key&lt;br /&gt;
 home.dyn.bar.org.private&lt;br /&gt;
 Khome.dyn.bar.org.+165+04905.key&lt;br /&gt;
 Khome.dyn.bar.org.+165+04905.private&lt;br /&gt;
Now we can call yadynip from cron&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Bind&amp;diff=10555</id>
		<title>Bind</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Bind&amp;diff=10555"/>
		<updated>2024-11-11T15:47:15Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Update from client automatically */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Intro==&lt;br /&gt;
Some notes how to setup a dynamic DNS...&lt;br /&gt;
&amp;lt;br&amp;gt;Setup is based on Askarel&#039;s [https://github.com/askarel/dynaname dynaname]&lt;br /&gt;
&amp;lt;br&amp;gt;Thank you Fred for the help!&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
===Your DNS server===&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
This will be the nameserver &#039;&#039;&#039;ns0.foo.org&#039;&#039;&#039; for our dynamic subdomain &#039;&#039;&#039;dyn.bar.org&#039;&#039;&#039; so this has to be announced in the primary DNS of your bar.org domain:&lt;br /&gt;
 dyn    NS    ns0.foo.org.&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @your.primary.dns.for.bar.org dyn.bar.org&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.        10800    IN    NS    ns0.foo.org.&lt;br /&gt;
&lt;br /&gt;
===Your dynamic IP client===&lt;br /&gt;
Old notes:&lt;br /&gt;
 apt-get install dnsutils bind9utils&lt;br /&gt;
 git clone https://github.com/askarel/dynaname.git&lt;br /&gt;
&lt;br /&gt;
On Debian Trixie:&lt;br /&gt;
&lt;br /&gt;
If not yet merged, use my branch with tsig-keygen: [https://github.com/doegox/dynaname/tree/phil doegox/dynaname:phil]&lt;br /&gt;
  apt-get install bind9-dnsutils bind9&lt;br /&gt;
  git clone https://github.com/doegox/dynaname&lt;br /&gt;
  cd dynaname&lt;br /&gt;
  git checkout phil&lt;br /&gt;
&lt;br /&gt;
After key generation (cf below), one can remove bind9 and its dependencies&lt;br /&gt;
  apt remove bind9 bind9-utils dns-root-data&lt;br /&gt;
&lt;br /&gt;
And we keep bind9-dnsutils for nsupdate&lt;br /&gt;
&lt;br /&gt;
==Setup on client==&lt;br /&gt;
To create e.g. home.dyn.bar.org:&lt;br /&gt;
 cd dynaname&lt;br /&gt;
 ./dynaname -G -H home.dyn.bar.org -S ns0.foo.org&lt;br /&gt;
==Setup on server==&lt;br /&gt;
Copy client ns0.foo.org/etc/bind/dynaname.conf to ns0.foo.org:/etc/bind/&lt;br /&gt;
&amp;lt;br&amp;gt;and add a hook into ns0.foo.org:/etc/bind/named.conf:&lt;br /&gt;
 include &amp;quot;/etc/bind/dynaname.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For info dynaname.conf should now look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
key home.dyn.bar.org {&lt;br /&gt;
        algorithm HMAC-SHA512;&lt;br /&gt;
        secret &amp;quot;some secret...&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
        update-policy {&lt;br /&gt;
                grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
        };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create ns0.foo.org:/var/cache/bind/dyn/dyn.bar.org with the following content:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN .&lt;br /&gt;
$TTL 3600    ; 1 hour&lt;br /&gt;
dyn.bar.org.      IN SOA    ns0.foo.org. me.bar.org. (&lt;br /&gt;
                  2014060301 ; serial, increment it every time you edit file&lt;br /&gt;
                  600        ; refresh (10 minutes)&lt;br /&gt;
                  300        ; retry (5 minutes)&lt;br /&gt;
                  86400      ; expire (1 day)&lt;br /&gt;
                  300        ; minimum (5 minutes)&lt;br /&gt;
                  )&lt;br /&gt;
dyn.bar.org.      IN NS     ns0.foo.org.&lt;br /&gt;
$ORIGIN dyn.bar.org.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure bind has RW access:&lt;br /&gt;
 root@ns0:/var/cache/bind/dyn# ls -al&lt;br /&gt;
 total 16&lt;br /&gt;
 drwxrwxr-x 2 root bind 4096 Jun  3 23:44 .&lt;br /&gt;
 drwxrwxr-x 3 root bind 4096 Jun  3 23:15 ..&lt;br /&gt;
 -rw-r--r-- 1 bind bind  389 Jun  3 23:44 dyn.bar.org&lt;br /&gt;
&lt;br /&gt;
Reload bind&lt;br /&gt;
 service reload bind9&lt;br /&gt;
&lt;br /&gt;
Check messages&lt;br /&gt;
 tail /var/log/syslog&lt;br /&gt;
&lt;br /&gt;
==Setup on server with multiple clients==&lt;br /&gt;
For several clients under the same zone dyn.bar.org, e.g. adding work.dyn.bar.org, add to dynaname.conf:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
+ key work.dyn.bar.org {&lt;br /&gt;
+         algorithm HMAC-SHA512;&lt;br /&gt;
+         secret &amp;quot;some other secret...&amp;quot;;&lt;br /&gt;
+ };&lt;br /&gt;
  &lt;br /&gt;
  zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
          type master;&lt;br /&gt;
          file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
          update-policy {&lt;br /&gt;
                  grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
+                 grant work.dyn.bar.org name work.dyn.bar.org A AAAA TXT;&lt;br /&gt;
          };&lt;br /&gt;
  };&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And reload bind&lt;br /&gt;
 /etc/init.d/bind9 reload&lt;br /&gt;
&lt;br /&gt;
==Update from client==&lt;br /&gt;
 ./dynaname -H home.dyn.bar.org -S ns0.foo.org -A 1.2.3.4&lt;br /&gt;
&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @ns0.foo.org home.dyn.bar.org&lt;br /&gt;
 ;; QUESTION SECTION:&lt;br /&gt;
 ;home.dyn.bar.org.		IN	A&lt;br /&gt;
 ;; ANSWER SECTION:&lt;br /&gt;
 home.dyn.bar.org.	300	IN	A	1.2.3.4&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.	3600	IN	NS	ns0.foo.org.&lt;br /&gt;
==Update from client automatically==&lt;br /&gt;
Using [https://github.com/twalrant/yadynip yadynip]:&lt;br /&gt;
 git clone https://github.com/twalrant/yadynip&lt;br /&gt;
 cd yadynip&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/00dir600*&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/10all-nettools&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/12showmyip&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/13whatismyip&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/20voo-netgear*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00zeupdate&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/10sendmail&lt;br /&gt;
 mkdir -p /var/cache/yadynip/ipcaches/&lt;br /&gt;
/usr/local/etc/yadynip.conf:&lt;br /&gt;
 verbose=none&lt;br /&gt;
 logfile=/var/log/yadynip.log&lt;br /&gt;
 sharedir=/var/cache/yadynip&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/conf/dynaname:&lt;br /&gt;
 host=home.dyn.bar.org&lt;br /&gt;
 ns=ns0.foo.org&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/00dynaname:&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
host=&lt;br /&gt;
ns=&lt;br /&gt;
## Config file.&lt;br /&gt;
configfile=$(basename $0)&lt;br /&gt;
configfile=$(dirname $0)/conf/${configfile:2}&lt;br /&gt;
if [ -n &amp;quot;$configfile&amp;quot; ] &amp;amp;&amp;amp; [ -f $configfile ]; then&lt;br /&gt;
    . $configfile&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Quit silently if not configured&lt;br /&gt;
[ &amp;quot;$host&amp;quot; == &amp;quot;&amp;quot; ] || [ &amp;quot;$ns&amp;quot; == &amp;quot;&amp;quot; ] &amp;amp;&amp;amp; exit 1&lt;br /&gt;
&lt;br /&gt;
tooldir=$(basename $0)&lt;br /&gt;
tooldir=$(dirname $0)/${tooldir:2}&lt;br /&gt;
cd $tooldir&lt;br /&gt;
./dynaname -H $host -S $ns -A $1 || exit $?&lt;br /&gt;
[ -z &amp;quot;$2&amp;quot; ] &amp;amp;&amp;amp; exit 0;&lt;br /&gt;
echo $(date -R) &amp;quot;Dynaname update zone $host with $1&amp;quot; &amp;gt;&amp;gt; $2&lt;br /&gt;
&lt;br /&gt;
# Successfull action exit with 0&lt;br /&gt;
exit 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/dynaname/: the original dynaname with key files&lt;br /&gt;
 dynaname&lt;br /&gt;
 home.dyn.bar.org.key&lt;br /&gt;
 home.dyn.bar.org.private&lt;br /&gt;
 Khome.dyn.bar.org.+165+04905.key&lt;br /&gt;
 Khome.dyn.bar.org.+165+04905.private&lt;br /&gt;
Now we can call yadynip from cron&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Bind&amp;diff=10554</id>
		<title>Bind</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Bind&amp;diff=10554"/>
		<updated>2024-11-11T15:46:52Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Update from client automatically */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Intro==&lt;br /&gt;
Some notes how to setup a dynamic DNS...&lt;br /&gt;
&amp;lt;br&amp;gt;Setup is based on Askarel&#039;s [https://github.com/askarel/dynaname dynaname]&lt;br /&gt;
&amp;lt;br&amp;gt;Thank you Fred for the help!&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
===Your DNS server===&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
This will be the nameserver &#039;&#039;&#039;ns0.foo.org&#039;&#039;&#039; for our dynamic subdomain &#039;&#039;&#039;dyn.bar.org&#039;&#039;&#039; so this has to be announced in the primary DNS of your bar.org domain:&lt;br /&gt;
 dyn    NS    ns0.foo.org.&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @your.primary.dns.for.bar.org dyn.bar.org&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.        10800    IN    NS    ns0.foo.org.&lt;br /&gt;
&lt;br /&gt;
===Your dynamic IP client===&lt;br /&gt;
Old notes:&lt;br /&gt;
 apt-get install dnsutils bind9utils&lt;br /&gt;
 git clone https://github.com/askarel/dynaname.git&lt;br /&gt;
&lt;br /&gt;
On Debian Trixie:&lt;br /&gt;
&lt;br /&gt;
If not yet merged, use my branch with tsig-keygen: [https://github.com/doegox/dynaname/tree/phil doegox/dynaname:phil]&lt;br /&gt;
  apt-get install bind9-dnsutils bind9&lt;br /&gt;
  git clone https://github.com/doegox/dynaname&lt;br /&gt;
  cd dynaname&lt;br /&gt;
  git checkout phil&lt;br /&gt;
&lt;br /&gt;
After key generation (cf below), one can remove bind9 and its dependencies&lt;br /&gt;
  apt remove bind9 bind9-utils dns-root-data&lt;br /&gt;
&lt;br /&gt;
And we keep bind9-dnsutils for nsupdate&lt;br /&gt;
&lt;br /&gt;
==Setup on client==&lt;br /&gt;
To create e.g. home.dyn.bar.org:&lt;br /&gt;
 cd dynaname&lt;br /&gt;
 ./dynaname -G -H home.dyn.bar.org -S ns0.foo.org&lt;br /&gt;
==Setup on server==&lt;br /&gt;
Copy client ns0.foo.org/etc/bind/dynaname.conf to ns0.foo.org:/etc/bind/&lt;br /&gt;
&amp;lt;br&amp;gt;and add a hook into ns0.foo.org:/etc/bind/named.conf:&lt;br /&gt;
 include &amp;quot;/etc/bind/dynaname.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For info dynaname.conf should now look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
key home.dyn.bar.org {&lt;br /&gt;
        algorithm HMAC-SHA512;&lt;br /&gt;
        secret &amp;quot;some secret...&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
        update-policy {&lt;br /&gt;
                grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
        };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create ns0.foo.org:/var/cache/bind/dyn/dyn.bar.org with the following content:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN .&lt;br /&gt;
$TTL 3600    ; 1 hour&lt;br /&gt;
dyn.bar.org.      IN SOA    ns0.foo.org. me.bar.org. (&lt;br /&gt;
                  2014060301 ; serial, increment it every time you edit file&lt;br /&gt;
                  600        ; refresh (10 minutes)&lt;br /&gt;
                  300        ; retry (5 minutes)&lt;br /&gt;
                  86400      ; expire (1 day)&lt;br /&gt;
                  300        ; minimum (5 minutes)&lt;br /&gt;
                  )&lt;br /&gt;
dyn.bar.org.      IN NS     ns0.foo.org.&lt;br /&gt;
$ORIGIN dyn.bar.org.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure bind has RW access:&lt;br /&gt;
 root@ns0:/var/cache/bind/dyn# ls -al&lt;br /&gt;
 total 16&lt;br /&gt;
 drwxrwxr-x 2 root bind 4096 Jun  3 23:44 .&lt;br /&gt;
 drwxrwxr-x 3 root bind 4096 Jun  3 23:15 ..&lt;br /&gt;
 -rw-r--r-- 1 bind bind  389 Jun  3 23:44 dyn.bar.org&lt;br /&gt;
&lt;br /&gt;
Reload bind&lt;br /&gt;
 service reload bind9&lt;br /&gt;
&lt;br /&gt;
Check messages&lt;br /&gt;
 tail /var/log/syslog&lt;br /&gt;
&lt;br /&gt;
==Setup on server with multiple clients==&lt;br /&gt;
For several clients under the same zone dyn.bar.org, e.g. adding work.dyn.bar.org, add to dynaname.conf:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
+ key work.dyn.bar.org {&lt;br /&gt;
+         algorithm HMAC-SHA512;&lt;br /&gt;
+         secret &amp;quot;some other secret...&amp;quot;;&lt;br /&gt;
+ };&lt;br /&gt;
  &lt;br /&gt;
  zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
          type master;&lt;br /&gt;
          file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
          update-policy {&lt;br /&gt;
                  grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
+                 grant work.dyn.bar.org name work.dyn.bar.org A AAAA TXT;&lt;br /&gt;
          };&lt;br /&gt;
  };&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And reload bind&lt;br /&gt;
 /etc/init.d/bind9 reload&lt;br /&gt;
&lt;br /&gt;
==Update from client==&lt;br /&gt;
 ./dynaname -H home.dyn.bar.org -S ns0.foo.org -A 1.2.3.4&lt;br /&gt;
&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @ns0.foo.org home.dyn.bar.org&lt;br /&gt;
 ;; QUESTION SECTION:&lt;br /&gt;
 ;home.dyn.bar.org.		IN	A&lt;br /&gt;
 ;; ANSWER SECTION:&lt;br /&gt;
 home.dyn.bar.org.	300	IN	A	1.2.3.4&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.	3600	IN	NS	ns0.foo.org.&lt;br /&gt;
==Update from client automatically==&lt;br /&gt;
Using [https://github.com/twalrant/yadynip yadynip]:&lt;br /&gt;
 git clone https://github.com/twalrant/yadynip&lt;br /&gt;
 cd yadynip&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/00dir600*&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/10all-nettools&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/12showmyip&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/13whatismyip&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/20voo-netgear*&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00zeupdate&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/10sendmail&lt;br /&gt;
 mkdir -p /var/cache/yadynip/ipcaches/&lt;br /&gt;
/usr/local/etc/yadynip.conf:&lt;br /&gt;
 quiet=on&lt;br /&gt;
 logfile=/var/log/yadynip.log&lt;br /&gt;
 sharedir=/var/cache/yadynip&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/conf/dynaname:&lt;br /&gt;
 host=home.dyn.bar.org&lt;br /&gt;
 ns=ns0.foo.org&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/00dynaname:&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
host=&lt;br /&gt;
ns=&lt;br /&gt;
## Config file.&lt;br /&gt;
configfile=$(basename $0)&lt;br /&gt;
configfile=$(dirname $0)/conf/${configfile:2}&lt;br /&gt;
if [ -n &amp;quot;$configfile&amp;quot; ] &amp;amp;&amp;amp; [ -f $configfile ]; then&lt;br /&gt;
    . $configfile&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Quit silently if not configured&lt;br /&gt;
[ &amp;quot;$host&amp;quot; == &amp;quot;&amp;quot; ] || [ &amp;quot;$ns&amp;quot; == &amp;quot;&amp;quot; ] &amp;amp;&amp;amp; exit 1&lt;br /&gt;
&lt;br /&gt;
tooldir=$(basename $0)&lt;br /&gt;
tooldir=$(dirname $0)/${tooldir:2}&lt;br /&gt;
cd $tooldir&lt;br /&gt;
./dynaname -H $host -S $ns -A $1 || exit $?&lt;br /&gt;
[ -z &amp;quot;$2&amp;quot; ] &amp;amp;&amp;amp; exit 0;&lt;br /&gt;
echo $(date -R) &amp;quot;Dynaname update zone $host with $1&amp;quot; &amp;gt;&amp;gt; $2&lt;br /&gt;
&lt;br /&gt;
# Successfull action exit with 0&lt;br /&gt;
exit 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/dynaname/: the original dynaname with key files&lt;br /&gt;
 dynaname&lt;br /&gt;
 home.dyn.bar.org.key&lt;br /&gt;
 home.dyn.bar.org.private&lt;br /&gt;
 Khome.dyn.bar.org.+165+04905.key&lt;br /&gt;
 Khome.dyn.bar.org.+165+04905.private&lt;br /&gt;
Now we can call yadynip from cron&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Bind&amp;diff=10553</id>
		<title>Bind</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Bind&amp;diff=10553"/>
		<updated>2024-11-11T15:39:00Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Setup on server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Intro==&lt;br /&gt;
Some notes how to setup a dynamic DNS...&lt;br /&gt;
&amp;lt;br&amp;gt;Setup is based on Askarel&#039;s [https://github.com/askarel/dynaname dynaname]&lt;br /&gt;
&amp;lt;br&amp;gt;Thank you Fred for the help!&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
===Your DNS server===&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
This will be the nameserver &#039;&#039;&#039;ns0.foo.org&#039;&#039;&#039; for our dynamic subdomain &#039;&#039;&#039;dyn.bar.org&#039;&#039;&#039; so this has to be announced in the primary DNS of your bar.org domain:&lt;br /&gt;
 dyn    NS    ns0.foo.org.&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @your.primary.dns.for.bar.org dyn.bar.org&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.        10800    IN    NS    ns0.foo.org.&lt;br /&gt;
&lt;br /&gt;
===Your dynamic IP client===&lt;br /&gt;
Old notes:&lt;br /&gt;
 apt-get install dnsutils bind9utils&lt;br /&gt;
 git clone https://github.com/askarel/dynaname.git&lt;br /&gt;
&lt;br /&gt;
On Debian Trixie:&lt;br /&gt;
&lt;br /&gt;
If not yet merged, use my branch with tsig-keygen: [https://github.com/doegox/dynaname/tree/phil doegox/dynaname:phil]&lt;br /&gt;
  apt-get install bind9-dnsutils bind9&lt;br /&gt;
  git clone https://github.com/doegox/dynaname&lt;br /&gt;
  cd dynaname&lt;br /&gt;
  git checkout phil&lt;br /&gt;
&lt;br /&gt;
After key generation (cf below), one can remove bind9 and its dependencies&lt;br /&gt;
  apt remove bind9 bind9-utils dns-root-data&lt;br /&gt;
&lt;br /&gt;
And we keep bind9-dnsutils for nsupdate&lt;br /&gt;
&lt;br /&gt;
==Setup on client==&lt;br /&gt;
To create e.g. home.dyn.bar.org:&lt;br /&gt;
 cd dynaname&lt;br /&gt;
 ./dynaname -G -H home.dyn.bar.org -S ns0.foo.org&lt;br /&gt;
==Setup on server==&lt;br /&gt;
Copy client ns0.foo.org/etc/bind/dynaname.conf to ns0.foo.org:/etc/bind/&lt;br /&gt;
&amp;lt;br&amp;gt;and add a hook into ns0.foo.org:/etc/bind/named.conf:&lt;br /&gt;
 include &amp;quot;/etc/bind/dynaname.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For info dynaname.conf should now look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
key home.dyn.bar.org {&lt;br /&gt;
        algorithm HMAC-SHA512;&lt;br /&gt;
        secret &amp;quot;some secret...&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
        update-policy {&lt;br /&gt;
                grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
        };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create ns0.foo.org:/var/cache/bind/dyn/dyn.bar.org with the following content:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN .&lt;br /&gt;
$TTL 3600    ; 1 hour&lt;br /&gt;
dyn.bar.org.      IN SOA    ns0.foo.org. me.bar.org. (&lt;br /&gt;
                  2014060301 ; serial, increment it every time you edit file&lt;br /&gt;
                  600        ; refresh (10 minutes)&lt;br /&gt;
                  300        ; retry (5 minutes)&lt;br /&gt;
                  86400      ; expire (1 day)&lt;br /&gt;
                  300        ; minimum (5 minutes)&lt;br /&gt;
                  )&lt;br /&gt;
dyn.bar.org.      IN NS     ns0.foo.org.&lt;br /&gt;
$ORIGIN dyn.bar.org.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure bind has RW access:&lt;br /&gt;
 root@ns0:/var/cache/bind/dyn# ls -al&lt;br /&gt;
 total 16&lt;br /&gt;
 drwxrwxr-x 2 root bind 4096 Jun  3 23:44 .&lt;br /&gt;
 drwxrwxr-x 3 root bind 4096 Jun  3 23:15 ..&lt;br /&gt;
 -rw-r--r-- 1 bind bind  389 Jun  3 23:44 dyn.bar.org&lt;br /&gt;
&lt;br /&gt;
Reload bind&lt;br /&gt;
 service reload bind9&lt;br /&gt;
&lt;br /&gt;
Check messages&lt;br /&gt;
 tail /var/log/syslog&lt;br /&gt;
&lt;br /&gt;
==Setup on server with multiple clients==&lt;br /&gt;
For several clients under the same zone dyn.bar.org, e.g. adding work.dyn.bar.org, add to dynaname.conf:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
+ key work.dyn.bar.org {&lt;br /&gt;
+         algorithm HMAC-SHA512;&lt;br /&gt;
+         secret &amp;quot;some other secret...&amp;quot;;&lt;br /&gt;
+ };&lt;br /&gt;
  &lt;br /&gt;
  zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
          type master;&lt;br /&gt;
          file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
          update-policy {&lt;br /&gt;
                  grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
+                 grant work.dyn.bar.org name work.dyn.bar.org A AAAA TXT;&lt;br /&gt;
          };&lt;br /&gt;
  };&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And reload bind&lt;br /&gt;
 /etc/init.d/bind9 reload&lt;br /&gt;
&lt;br /&gt;
==Update from client==&lt;br /&gt;
 ./dynaname -H home.dyn.bar.org -S ns0.foo.org -A 1.2.3.4&lt;br /&gt;
&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @ns0.foo.org home.dyn.bar.org&lt;br /&gt;
 ;; QUESTION SECTION:&lt;br /&gt;
 ;home.dyn.bar.org.		IN	A&lt;br /&gt;
 ;; ANSWER SECTION:&lt;br /&gt;
 home.dyn.bar.org.	300	IN	A	1.2.3.4&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.	3600	IN	NS	ns0.foo.org.&lt;br /&gt;
==Update from client automatically==&lt;br /&gt;
Using [https://github.com/twalrant/yadynip yadynip]:&lt;br /&gt;
 git clone https://github.com/twalrant/yadynip&lt;br /&gt;
 cd yadynip&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/00dir600&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00zeupdate&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/10sendmail&lt;br /&gt;
 mkdir -p /var/cache/yadynip/ipcaches/&lt;br /&gt;
/usr/local/etc/yadynip.conf:&lt;br /&gt;
 quiet=on&lt;br /&gt;
 logfile=/var/log/yadynip.log&lt;br /&gt;
 sharedir=/var/cache/yadynip&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/conf/dynaname:&lt;br /&gt;
 host=home.dyn.bar.org&lt;br /&gt;
 ns=ns0.foo.org&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/00dynaname:&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
host=&lt;br /&gt;
ns=&lt;br /&gt;
## Config file.&lt;br /&gt;
configfile=$(basename $0)&lt;br /&gt;
configfile=$(dirname $0)/conf/${configfile:2}&lt;br /&gt;
if [ -n &amp;quot;$configfile&amp;quot; ] &amp;amp;&amp;amp; [ -f $configfile ]; then&lt;br /&gt;
    . $configfile&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Quit silently if not configured&lt;br /&gt;
[ &amp;quot;$host&amp;quot; == &amp;quot;&amp;quot; ] || [ &amp;quot;$ns&amp;quot; == &amp;quot;&amp;quot; ] &amp;amp;&amp;amp; exit 1&lt;br /&gt;
&lt;br /&gt;
tooldir=$(basename $0)&lt;br /&gt;
tooldir=$(dirname $0)/${tooldir:2}&lt;br /&gt;
cd $tooldir&lt;br /&gt;
./dynaname -H $host -S $ns -A $1 || exit $?&lt;br /&gt;
[ -z &amp;quot;$2&amp;quot; ] &amp;amp;&amp;amp; exit 0;&lt;br /&gt;
echo $(date -R) &amp;quot;Dynaname update zone $host with $1&amp;quot; &amp;gt;&amp;gt; $2&lt;br /&gt;
&lt;br /&gt;
# Successfull action exit with 0&lt;br /&gt;
exit 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/dynaname/: the original dynaname with key files&lt;br /&gt;
 dynaname&lt;br /&gt;
 home.dyn.bar.org.key&lt;br /&gt;
 home.dyn.bar.org.private&lt;br /&gt;
 Khome.dyn.bar.org.+165+04905.key&lt;br /&gt;
 Khome.dyn.bar.org.+165+04905.private&lt;br /&gt;
Now we can call yadynip from cron&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Bind&amp;diff=10552</id>
		<title>Bind</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Bind&amp;diff=10552"/>
		<updated>2024-11-11T15:38:36Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Your dynamic IP client */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Intro==&lt;br /&gt;
Some notes how to setup a dynamic DNS...&lt;br /&gt;
&amp;lt;br&amp;gt;Setup is based on Askarel&#039;s [https://github.com/askarel/dynaname dynaname]&lt;br /&gt;
&amp;lt;br&amp;gt;Thank you Fred for the help!&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
===Your DNS server===&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
This will be the nameserver &#039;&#039;&#039;ns0.foo.org&#039;&#039;&#039; for our dynamic subdomain &#039;&#039;&#039;dyn.bar.org&#039;&#039;&#039; so this has to be announced in the primary DNS of your bar.org domain:&lt;br /&gt;
 dyn    NS    ns0.foo.org.&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @your.primary.dns.for.bar.org dyn.bar.org&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.        10800    IN    NS    ns0.foo.org.&lt;br /&gt;
&lt;br /&gt;
===Your dynamic IP client===&lt;br /&gt;
Old notes:&lt;br /&gt;
 apt-get install dnsutils bind9utils&lt;br /&gt;
 git clone https://github.com/askarel/dynaname.git&lt;br /&gt;
&lt;br /&gt;
On Debian Trixie:&lt;br /&gt;
&lt;br /&gt;
If not yet merged, use my branch with tsig-keygen: [https://github.com/doegox/dynaname/tree/phil doegox/dynaname:phil]&lt;br /&gt;
  apt-get install bind9-dnsutils bind9&lt;br /&gt;
  git clone https://github.com/doegox/dynaname&lt;br /&gt;
  cd dynaname&lt;br /&gt;
  git checkout phil&lt;br /&gt;
&lt;br /&gt;
After key generation (cf below), one can remove bind9 and its dependencies&lt;br /&gt;
  apt remove bind9 bind9-utils dns-root-data&lt;br /&gt;
&lt;br /&gt;
And we keep bind9-dnsutils for nsupdate&lt;br /&gt;
&lt;br /&gt;
==Setup on client==&lt;br /&gt;
To create e.g. home.dyn.bar.org:&lt;br /&gt;
 cd dynaname&lt;br /&gt;
 ./dynaname -G -H home.dyn.bar.org -S ns0.foo.org&lt;br /&gt;
==Setup on server==&lt;br /&gt;
Copy client ns0.foo.org/etc/bind/dynaname.conf to ns0.foo.org:/etc/bind/&lt;br /&gt;
&amp;lt;br&amp;gt;and add a hook into ns0.foo.org:/etc/bind/named.conf:&lt;br /&gt;
 include &amp;quot;/etc/bind/dynaname.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For info dynaname.conf should now look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
key home.dyn.bar.org {&lt;br /&gt;
        algorithm HMAC-SHA512;&lt;br /&gt;
        secret &amp;quot;some secret...&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
        update-policy {&lt;br /&gt;
                grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
        };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create ns0.foo.org:/var/cache/bind/dyn/dyn.bar.org with the following content:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN .&lt;br /&gt;
$TTL 3600    ; 1 hour&lt;br /&gt;
dyn.bar.org.      IN SOA    ns0.foo.org. me.bar.org. (&lt;br /&gt;
                  2014060301 ; serial, increment it every time you edit file&lt;br /&gt;
                  600        ; refresh (10 minutes)&lt;br /&gt;
                  300        ; retry (5 minutes)&lt;br /&gt;
                  86400      ; expire (1 day)&lt;br /&gt;
                  300        ; minimum (5 minutes)&lt;br /&gt;
                  )&lt;br /&gt;
dyn.bar.org.      IN NS     ns0.foo.org.&lt;br /&gt;
$ORIGIN dyn.bar.org.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure bind has RW access:&lt;br /&gt;
 root@ns0:/var/cache/bind/dyn# ls -al&lt;br /&gt;
 total 16&lt;br /&gt;
 drwxrwxr-x 2 root bind 4096 Jun  3 23:44 .&lt;br /&gt;
 drwxrwxr-x 3 root bind 4096 Jun  3 23:15 ..&lt;br /&gt;
 -rw-r--r-- 1 bind bind  389 Jun  3 23:44 dyn.bar.org&lt;br /&gt;
&lt;br /&gt;
Reload bind&lt;br /&gt;
 /etc/init.d/bind9 reload&lt;br /&gt;
&lt;br /&gt;
Check messages&lt;br /&gt;
 tail /var/log/syslog&lt;br /&gt;
==Setup on server with multiple clients==&lt;br /&gt;
For several clients under the same zone dyn.bar.org, e.g. adding work.dyn.bar.org, add to dynaname.conf:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
+ key work.dyn.bar.org {&lt;br /&gt;
+         algorithm HMAC-SHA512;&lt;br /&gt;
+         secret &amp;quot;some other secret...&amp;quot;;&lt;br /&gt;
+ };&lt;br /&gt;
  &lt;br /&gt;
  zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
          type master;&lt;br /&gt;
          file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
          update-policy {&lt;br /&gt;
                  grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
+                 grant work.dyn.bar.org name work.dyn.bar.org A AAAA TXT;&lt;br /&gt;
          };&lt;br /&gt;
  };&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And reload bind&lt;br /&gt;
 /etc/init.d/bind9 reload&lt;br /&gt;
&lt;br /&gt;
==Update from client==&lt;br /&gt;
 ./dynaname -H home.dyn.bar.org -S ns0.foo.org -A 1.2.3.4&lt;br /&gt;
&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @ns0.foo.org home.dyn.bar.org&lt;br /&gt;
 ;; QUESTION SECTION:&lt;br /&gt;
 ;home.dyn.bar.org.		IN	A&lt;br /&gt;
 ;; ANSWER SECTION:&lt;br /&gt;
 home.dyn.bar.org.	300	IN	A	1.2.3.4&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.	3600	IN	NS	ns0.foo.org.&lt;br /&gt;
==Update from client automatically==&lt;br /&gt;
Using [https://github.com/twalrant/yadynip yadynip]:&lt;br /&gt;
 git clone https://github.com/twalrant/yadynip&lt;br /&gt;
 cd yadynip&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/00dir600&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00zeupdate&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/10sendmail&lt;br /&gt;
 mkdir -p /var/cache/yadynip/ipcaches/&lt;br /&gt;
/usr/local/etc/yadynip.conf:&lt;br /&gt;
 quiet=on&lt;br /&gt;
 logfile=/var/log/yadynip.log&lt;br /&gt;
 sharedir=/var/cache/yadynip&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/conf/dynaname:&lt;br /&gt;
 host=home.dyn.bar.org&lt;br /&gt;
 ns=ns0.foo.org&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/00dynaname:&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
host=&lt;br /&gt;
ns=&lt;br /&gt;
## Config file.&lt;br /&gt;
configfile=$(basename $0)&lt;br /&gt;
configfile=$(dirname $0)/conf/${configfile:2}&lt;br /&gt;
if [ -n &amp;quot;$configfile&amp;quot; ] &amp;amp;&amp;amp; [ -f $configfile ]; then&lt;br /&gt;
    . $configfile&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Quit silently if not configured&lt;br /&gt;
[ &amp;quot;$host&amp;quot; == &amp;quot;&amp;quot; ] || [ &amp;quot;$ns&amp;quot; == &amp;quot;&amp;quot; ] &amp;amp;&amp;amp; exit 1&lt;br /&gt;
&lt;br /&gt;
tooldir=$(basename $0)&lt;br /&gt;
tooldir=$(dirname $0)/${tooldir:2}&lt;br /&gt;
cd $tooldir&lt;br /&gt;
./dynaname -H $host -S $ns -A $1 || exit $?&lt;br /&gt;
[ -z &amp;quot;$2&amp;quot; ] &amp;amp;&amp;amp; exit 0;&lt;br /&gt;
echo $(date -R) &amp;quot;Dynaname update zone $host with $1&amp;quot; &amp;gt;&amp;gt; $2&lt;br /&gt;
&lt;br /&gt;
# Successfull action exit with 0&lt;br /&gt;
exit 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/dynaname/: the original dynaname with key files&lt;br /&gt;
 dynaname&lt;br /&gt;
 home.dyn.bar.org.key&lt;br /&gt;
 home.dyn.bar.org.private&lt;br /&gt;
 Khome.dyn.bar.org.+165+04905.key&lt;br /&gt;
 Khome.dyn.bar.org.+165+04905.private&lt;br /&gt;
Now we can call yadynip from cron&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Bind&amp;diff=10551</id>
		<title>Bind</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Bind&amp;diff=10551"/>
		<updated>2024-11-11T15:33:40Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Intro==&lt;br /&gt;
Some notes how to setup a dynamic DNS...&lt;br /&gt;
&amp;lt;br&amp;gt;Setup is based on Askarel&#039;s [https://github.com/askarel/dynaname dynaname]&lt;br /&gt;
&amp;lt;br&amp;gt;Thank you Fred for the help!&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
===Your DNS server===&lt;br /&gt;
 apt-get install bind9&lt;br /&gt;
This will be the nameserver &#039;&#039;&#039;ns0.foo.org&#039;&#039;&#039; for our dynamic subdomain &#039;&#039;&#039;dyn.bar.org&#039;&#039;&#039; so this has to be announced in the primary DNS of your bar.org domain:&lt;br /&gt;
 dyn    NS    ns0.foo.org.&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @your.primary.dns.for.bar.org dyn.bar.org&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.        10800    IN    NS    ns0.foo.org.&lt;br /&gt;
&lt;br /&gt;
===Your dynamic IP client===&lt;br /&gt;
 apt-get install dnsutils bind9utils&lt;br /&gt;
 git clone https://github.com/askarel/dynaname.git&lt;br /&gt;
==Setup on client==&lt;br /&gt;
To create e.g. home.dyn.bar.org:&lt;br /&gt;
 cd dynaname&lt;br /&gt;
 ./dynaname -G -H home.dyn.bar.org -S ns0.foo.org&lt;br /&gt;
==Setup on server==&lt;br /&gt;
Copy client ns0.foo.org/etc/bind/dynaname.conf to ns0.foo.org:/etc/bind/&lt;br /&gt;
&amp;lt;br&amp;gt;and add a hook into ns0.foo.org:/etc/bind/named.conf:&lt;br /&gt;
 include &amp;quot;/etc/bind/dynaname.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For info dynaname.conf should now look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
key home.dyn.bar.org {&lt;br /&gt;
        algorithm HMAC-SHA512;&lt;br /&gt;
        secret &amp;quot;some secret...&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
        update-policy {&lt;br /&gt;
                grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
        };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create ns0.foo.org:/var/cache/bind/dyn/dyn.bar.org with the following content:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ORIGIN .&lt;br /&gt;
$TTL 3600    ; 1 hour&lt;br /&gt;
dyn.bar.org.      IN SOA    ns0.foo.org. me.bar.org. (&lt;br /&gt;
                  2014060301 ; serial, increment it every time you edit file&lt;br /&gt;
                  600        ; refresh (10 minutes)&lt;br /&gt;
                  300        ; retry (5 minutes)&lt;br /&gt;
                  86400      ; expire (1 day)&lt;br /&gt;
                  300        ; minimum (5 minutes)&lt;br /&gt;
                  )&lt;br /&gt;
dyn.bar.org.      IN NS     ns0.foo.org.&lt;br /&gt;
$ORIGIN dyn.bar.org.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure bind has RW access:&lt;br /&gt;
 root@ns0:/var/cache/bind/dyn# ls -al&lt;br /&gt;
 total 16&lt;br /&gt;
 drwxrwxr-x 2 root bind 4096 Jun  3 23:44 .&lt;br /&gt;
 drwxrwxr-x 3 root bind 4096 Jun  3 23:15 ..&lt;br /&gt;
 -rw-r--r-- 1 bind bind  389 Jun  3 23:44 dyn.bar.org&lt;br /&gt;
&lt;br /&gt;
Reload bind&lt;br /&gt;
 /etc/init.d/bind9 reload&lt;br /&gt;
&lt;br /&gt;
Check messages&lt;br /&gt;
 tail /var/log/syslog&lt;br /&gt;
==Setup on server with multiple clients==&lt;br /&gt;
For several clients under the same zone dyn.bar.org, e.g. adding work.dyn.bar.org, add to dynaname.conf:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
+ key work.dyn.bar.org {&lt;br /&gt;
+         algorithm HMAC-SHA512;&lt;br /&gt;
+         secret &amp;quot;some other secret...&amp;quot;;&lt;br /&gt;
+ };&lt;br /&gt;
  &lt;br /&gt;
  zone &amp;quot;dyn.bar.org&amp;quot; in {&lt;br /&gt;
          type master;&lt;br /&gt;
          file &amp;quot;dyn/dyn.bar.org&amp;quot;;&lt;br /&gt;
          update-policy {&lt;br /&gt;
                  grant home.dyn.bar.org name home.dyn.bar.org A AAAA TXT;&lt;br /&gt;
+                 grant work.dyn.bar.org name work.dyn.bar.org A AAAA TXT;&lt;br /&gt;
          };&lt;br /&gt;
  };&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And reload bind&lt;br /&gt;
 /etc/init.d/bind9 reload&lt;br /&gt;
&lt;br /&gt;
==Update from client==&lt;br /&gt;
 ./dynaname -H home.dyn.bar.org -S ns0.foo.org -A 1.2.3.4&lt;br /&gt;
&lt;br /&gt;
To test it:&lt;br /&gt;
 dig @ns0.foo.org home.dyn.bar.org&lt;br /&gt;
 ;; QUESTION SECTION:&lt;br /&gt;
 ;home.dyn.bar.org.		IN	A&lt;br /&gt;
 ;; ANSWER SECTION:&lt;br /&gt;
 home.dyn.bar.org.	300	IN	A	1.2.3.4&lt;br /&gt;
 ;; AUTHORITY SECTION:&lt;br /&gt;
 dyn.bar.org.	3600	IN	NS	ns0.foo.org.&lt;br /&gt;
==Update from client automatically==&lt;br /&gt;
Using [https://github.com/twalrant/yadynip yadynip]:&lt;br /&gt;
 git clone https://github.com/twalrant/yadynip&lt;br /&gt;
 cd yadynip&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 rm /usr/local/etc/yadynip/checkip.d/00dir600&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/00zeupdate&lt;br /&gt;
 rm /usr/local/etc/yadynip/actions.d/10sendmail&lt;br /&gt;
 mkdir -p /var/cache/yadynip/ipcaches/&lt;br /&gt;
/usr/local/etc/yadynip.conf:&lt;br /&gt;
 quiet=on&lt;br /&gt;
 logfile=/var/log/yadynip.log&lt;br /&gt;
 sharedir=/var/cache/yadynip&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/conf/dynaname:&lt;br /&gt;
 host=home.dyn.bar.org&lt;br /&gt;
 ns=ns0.foo.org&lt;br /&gt;
&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/00dynaname:&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
host=&lt;br /&gt;
ns=&lt;br /&gt;
## Config file.&lt;br /&gt;
configfile=$(basename $0)&lt;br /&gt;
configfile=$(dirname $0)/conf/${configfile:2}&lt;br /&gt;
if [ -n &amp;quot;$configfile&amp;quot; ] &amp;amp;&amp;amp; [ -f $configfile ]; then&lt;br /&gt;
    . $configfile&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Quit silently if not configured&lt;br /&gt;
[ &amp;quot;$host&amp;quot; == &amp;quot;&amp;quot; ] || [ &amp;quot;$ns&amp;quot; == &amp;quot;&amp;quot; ] &amp;amp;&amp;amp; exit 1&lt;br /&gt;
&lt;br /&gt;
tooldir=$(basename $0)&lt;br /&gt;
tooldir=$(dirname $0)/${tooldir:2}&lt;br /&gt;
cd $tooldir&lt;br /&gt;
./dynaname -H $host -S $ns -A $1 || exit $?&lt;br /&gt;
[ -z &amp;quot;$2&amp;quot; ] &amp;amp;&amp;amp; exit 0;&lt;br /&gt;
echo $(date -R) &amp;quot;Dynaname update zone $host with $1&amp;quot; &amp;gt;&amp;gt; $2&lt;br /&gt;
&lt;br /&gt;
# Successfull action exit with 0&lt;br /&gt;
exit 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
/usr/local/etc/yadynip/actions.d/dynaname/: the original dynaname with key files&lt;br /&gt;
 dynaname&lt;br /&gt;
 home.dyn.bar.org.key&lt;br /&gt;
 home.dyn.bar.org.private&lt;br /&gt;
 Khome.dyn.bar.org.+165+04905.key&lt;br /&gt;
 Khome.dyn.bar.org.+165+04905.private&lt;br /&gt;
Now we can call yadynip from cron&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=NSC_Writeups&amp;diff=10550</id>
		<title>NSC Writeups</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=NSC_Writeups&amp;diff=10550"/>
		<updated>2024-02-07T18:26:00Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Oppida/NoSuchCon challenge=&lt;br /&gt;
==Intro==&lt;br /&gt;
In April 2013, Oppida [http://seclists.org/fulldisclosure/2013/Apr/133 proposed a challenge] associated with NoSuchCon 2013.&lt;br /&gt;
&amp;lt;br&amp;gt;The challenge was designed by Eloi Vanderbéken [https://twitter.com/elvanderb @elvanderb] and consisted into a PE binary embedding a white-box AES implementation. &lt;br /&gt;
&amp;lt;br&amp;gt;It was of &amp;quot;keygen-me&amp;quot; type.&lt;br /&gt;
&amp;lt;br&amp;gt;The challenge was broken by a few people and some write-ups are available:&lt;br /&gt;
* by Axel [https://twitter.com/0vercl0k @0vercl0k]: [http://0vercl0k.tuxfamily.org/bl0g/?p=253 AES Whitebox Unboxing: No Such Problem]&lt;br /&gt;
* by Arnaud [https://twitter.com/kutioo @kutioo]: [http://kutioo.blogspot.be/2013/05/nosuchcon-2013-challenge-write-up-and.html NoSuchCon 2013 challenge - Write up and Methodology]&lt;br /&gt;
* by Guy [https://twitter.com/Shiftreduce @Shiftreduce]: [http://archive.hack.lu/2013/Interactive%20deobfuscation.ppt Interactive deobfuscation (ppt)]&lt;br /&gt;
To break the challenge one has to guess what input to the white-boxed AES will produce the desired output such that MD5(nickname) == AES(serial) i.e. to revert the AES block such that serial=AES^-1(MD5(nickname)).&lt;br /&gt;
&amp;lt;br&amp;gt;This white-box being made of look-up tables, it could be reverted step by step, round by round from output to input, but the AES key itself was left unbroken.&lt;br /&gt;
&amp;lt;br&amp;gt;There are pointers in Shiftreduce&#039;s presentation to the BGE attack, a now classical attack against a no less classical Chow white-box AES implementation but this implementation is quite different from Chow implementation and AFAIK Shiftreduce didn&#039;t recover the key.&lt;br /&gt;
&lt;br /&gt;
Because I got curious about white-box only recently, I looked around what was publicly available and decided to investigate this one, a bit late for the competition I admit ;-)&lt;br /&gt;
&lt;br /&gt;
The advantage of starting late is that I can rely on the wonderful work published by those three people and concentrate directly on the white-box itself, sparing me the need to peel the onion at first (it would have made me crying for sure).&lt;br /&gt;
&amp;lt;br&amp;gt;After the challenge period, Eloi even [http://pastebin.com/MvXpGZts published the code of his generator], very useful to study it and generate our own challenges (under Linux)!&lt;br /&gt;
&lt;br /&gt;
==Structure==&lt;br /&gt;
[[Image:NSC2013.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;The drawing depicts the detail of the computation of one AES round, more precisely just the first byte of the state (and the three next, depending on the same 4 input bytes).&lt;br /&gt;
&amp;lt;br&amp;gt;The first and last rounds are different:&lt;br /&gt;
* First round is similar to intern rounds but the tables applying the SBox here are also applying the initial round key in a so-called TBox and the input is not encoded by &amp;lt;math&amp;gt;X_2&amp;lt;/math&amp;gt; but by a so-called external encoding &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; to be reverted.&lt;br /&gt;
* Last round as usual doesn&#039;t contain the MixColumn operation therefore is much simpler but another external encoding &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; is applied on the output.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Notations of the drawing (please forgive my lack of math strictness):&lt;br /&gt;
&amp;lt;br&amp;gt;All datapaths are 8-bit wide&lt;br /&gt;
* &amp;lt;math&amp;gt;F^{-1}(x)&amp;lt;/math&amp;gt; applies the inverse input encoding, a random 8-bit bijection&lt;br /&gt;
* &amp;lt;math&amp;gt;G(x)&amp;lt;/math&amp;gt; applies the output encoding, a random 8-bit bijection&lt;br /&gt;
* &amp;lt;math&amp;gt;T_i^1(x)=S(x \oplus \hat{k^0}[i])&amp;lt;/math&amp;gt; is similar to Chow&#039;s &amp;lt;math&amp;gt;T_i^r(x)&amp;lt;/math&amp;gt; but used only in first round&lt;br /&gt;
* &amp;lt;math&amp;gt;S(x)&amp;lt;/math&amp;gt; is the AES SBox&lt;br /&gt;
* &amp;lt;math&amp;gt;Ty_{j,k}(x)=x\cdot MC_{j,k}&amp;lt;/math&amp;gt; is multiplication by a single element of [https://en.wikipedia.org/wiki/Rijndael_mix_columns AES&#039;MDS matrix]&lt;br /&gt;
* &amp;lt;math&amp;gt;K_{i,j}^r(x)=x \oplus \hat{k_j^r}[i]&amp;lt;/math&amp;gt; is xoring by a share j of round r key byte i.&amp;lt;br&amp;gt;There are 4 shares therefore &amp;lt;math&amp;gt;\hat{k^r}[i]=\hat{k_0^r}[i]\oplus \hat{k_1^r}[i]\oplus \hat{k_2^r}[i]\oplus \hat{k_3^r}[i]&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;B_j(x)&amp;lt;/math&amp;gt; for &amp;lt;math&amp;gt;j=0..3&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;B_j^{-1}(x)&amp;lt;/math&amp;gt; apply an intermediate encoding, a random 8-bit bijection, and its inverse&lt;br /&gt;
* &amp;lt;math&amp;gt;X_0(x), X_1(x), X_2(x)&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;X_0^{-1}(x), X_1^{-1}(x), X_2^{-1}(x)&amp;lt;/math&amp;gt; apply an intermediate encoding, a random 8-bit bijection, and its inverse. &amp;lt;br&amp;gt;So &amp;lt;math&amp;gt;X_2(x)&amp;lt;/math&amp;gt; encodes intermediate results between rounds.&lt;br /&gt;
* &amp;lt;math&amp;gt;xor&amp;lt;/math&amp;gt; is a byte xor 2x8-bit -&amp;gt; 8-bit&lt;br /&gt;
&lt;br /&gt;
So this design makes use of 9 random substitution tables (that you don&#039;t find as such in the binary but which are used during generation) and their inverse:&lt;br /&gt;
* &amp;lt;math&amp;gt;F, G, B_0, B_1, B_2, B_3, X_0, X_1, X_2&amp;lt;/math&amp;gt;&lt;br /&gt;
and the same substitutions are re-used in all rounds (otherwise the 3 large xor tables would have to be duplicated many times)&lt;br /&gt;
&amp;lt;br&amp;gt;At the end, the binary contains those tables:&lt;br /&gt;
* 3 xor tables of 256*256 values&lt;br /&gt;
* 9*16*4 round tables of 256 values&lt;br /&gt;
* 16 final round tables of 256 values&lt;br /&gt;
A curiosity of the design when compared with classical Chow is that each round key is applied before MixCol and therefore split into 4 random shares (recombined later by the xors). So the first round tables contain already the first two round keys.&lt;br /&gt;
&amp;lt;br&amp;gt;If you want to compare with Chow, see [http://eprint.iacr.org/2013/104.pdf A Tutorial on White-box AES] by James A. Muir and zoom on this picture:&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:ChowAES.png|400px|link=http://wiki.yobi.be/images/1/16/ChowAES.png]]&lt;br /&gt;
&lt;br /&gt;
==Attack==&lt;br /&gt;
Because the internal encoding &amp;lt;math&amp;gt;X_2&amp;lt;/math&amp;gt; is the same between all rounds one may choose to attack a reduced version of AES with only 3 round keys but the problem is that the external encodings are completely unknown.&lt;br /&gt;
&amp;lt;br&amp;gt;I propose another attack that works against any of the intermediate rounds and doesn&#039;t require a ton of equations because... I hate math.&lt;br /&gt;
&amp;lt;br&amp;gt;Here attacking Round 3 but any round between 2 and 9 will do.&lt;br /&gt;
&amp;lt;br&amp;gt;Let&#039;s guess the encoding of one single value &amp;lt;math&amp;gt;P=0&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;X_2&amp;lt;/math&amp;gt;, the encoding table used between rounds.&lt;br /&gt;
&amp;lt;br&amp;gt;Encoding of &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;X_2(P)=X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;br&amp;gt;Try to find the corresponding key of 3nd round (so the 4rd round key):&lt;br /&gt;
* There are 16 groups of round tables for each round, taking 4 bytes as input and producing one byte (one round table group here is actually the 4 sub-round tables combined with the 3 xor tables)&lt;br /&gt;
* To attack one group, we fix the 4 input bytes as &amp;lt;math&amp;gt;X\!:\!X\!:\!X\!:\!X&amp;lt;/math&amp;gt; so the decoded input is supposed to be &amp;lt;math&amp;gt;0\!:\!0\!:\!0\!:\!0&amp;lt;/math&amp;gt;&lt;br /&gt;
* We compute the encoded output byte out and compare it with &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;&lt;br /&gt;
** if output &amp;lt;math&amp;gt;Y \neq X&amp;lt;/math&amp;gt;, we create a new input &amp;lt;math&amp;gt;Y\!:\!X\!:\!X\!:\!X&amp;lt;/math&amp;gt; and chain executions of that group till output &amp;lt;math&amp;gt; = X&amp;lt;/math&amp;gt; so we know decoded output is &amp;lt;math&amp;gt;P=0&amp;lt;/math&amp;gt;&lt;br /&gt;
* The required number of iterations to reach an output &amp;lt;math&amp;gt; = X&amp;lt;/math&amp;gt; is then compared with a clean implementation without encodings to check which k candidates require the same number of iterations, so here going from &amp;lt;math&amp;gt;0\!:\!0\!:\!0\!:\!0&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;&lt;br /&gt;
Example requiring 3 iterations:&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:NSC2013_attack.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Clean group implementation:&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:NSC2013_clean.png]]&lt;br /&gt;
&lt;br /&gt;
So from each initial encoding guess we get typically something like this: (i=ith byte, n=nr of iterations)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;Hypothesis 00 is encoded as 00&lt;br /&gt;
&amp;lt;br&amp;gt;i=00 n=10 k= 12 22 63 87 C5 D7 F0 F4&lt;br /&gt;
&amp;lt;br&amp;gt;i=04 n=21 k= 05 63 F0 FA&lt;br /&gt;
&amp;lt;br&amp;gt;i=08 n=E8 k= 1E 63 6D 78 A6 FE&lt;br /&gt;
&amp;lt;br&amp;gt;i=12 n=0B k= 63&lt;br /&gt;
&amp;lt;br&amp;gt;i=01 n=64 k= 00 05 22 23 63 A2 A9 BF C5 C9 D0 DF F1&lt;br /&gt;
&amp;lt;br&amp;gt;i=05 n=7D k= 2E 63 70 97 AF&lt;br /&gt;
&amp;lt;br&amp;gt;i=09 n=1E k= 04 05 36 54 63 A6 AF B7 C0 E7 EE FA&lt;br /&gt;
&amp;lt;br&amp;gt;i=13 n=5A k= 2C 33 3B 3F 63 68 81 88 8F 94 A1 A3 AA CF DB ED F7&lt;br /&gt;
&amp;lt;br&amp;gt;i=02 n=42 k= 42 63 74 D1&lt;br /&gt;
&amp;lt;br&amp;gt;i=06 n=3D k= 63 73 A3&lt;br /&gt;
&amp;lt;br&amp;gt;i=10 n=AC k= 0D 38 44 63 A6 E9&lt;br /&gt;
&amp;lt;br&amp;gt;i=14 n=78 k= 07 1B 1E 33 45 57 61 63 68 88 8F 95 A3 AA B7 D1 DB ED F6 F7&lt;br /&gt;
&amp;lt;br&amp;gt;i=03 n=D0 k= 0E 12 22 63 87 C5 D7 D8 F0 F4 FB&lt;br /&gt;
&amp;lt;br&amp;gt;i=07 n=4A k= 02 63 8F A6&lt;br /&gt;
&amp;lt;br&amp;gt;i=11 n=100 k= 0E 57 63 76 78 A6 E5 EA&lt;br /&gt;
&amp;lt;br&amp;gt;i=15 n=E6 k= 11 33 4B 56 5A 63 6B 7A 8F 93 B1 ED&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Then we can take a second guess for the encoding value of &amp;lt;math&amp;gt;P=1&amp;lt;/math&amp;gt; and filter the k candidates to keep those which are compatible with those we kept.&lt;br /&gt;
&amp;lt;br&amp;gt;If no k candidates is left for one of the round key bytes, we backtrack our encoding guesses.&lt;br /&gt;
&amp;lt;br&amp;gt;Here there is already no key candidate left.&lt;br /&gt;
&amp;lt;br&amp;gt;So we backtrack and try another guess for the encoding of &amp;lt;math&amp;gt;P=0&amp;lt;/math&amp;gt; till...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;Hypothesis 00 is encoded as CE&lt;br /&gt;
&amp;lt;br&amp;gt;i=00 n=AE k= 18 63 70 72 74 77 7D 8D &#039;&#039;&#039;9B&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=04 n=78 k= 04 05 2D 36 3F 40 46 54 63 78 89 8E 9B A6 AF B7 C0 &#039;&#039;&#039;CD&#039;&#039;&#039; E7 EE FA&lt;br /&gt;
&amp;lt;br&amp;gt;i=08 n=E8 k= 1E 63 &#039;&#039;&#039;6D&#039;&#039;&#039; 78 A6 FE&lt;br /&gt;
&amp;lt;br&amp;gt;i=12 n=F0 k= 07 1A 1B 1E 33 36 &#039;&#039;&#039;44&#039;&#039;&#039; 45 4C 57 5D 61 63 68 6F 88 8F 95 A3 AA B7 C5 D1 DB ED F6 F7 FC&lt;br /&gt;
&amp;lt;br&amp;gt;i=01 n=EE k= 0B 41 4E 63 76 &#039;&#039;&#039;A8&#039;&#039;&#039; BB CA DE EB&lt;br /&gt;
&amp;lt;br&amp;gt;i=05 n=7D k= &#039;&#039;&#039;2E&#039;&#039;&#039; 63 70 97 AF&lt;br /&gt;
&amp;lt;br&amp;gt;i=09 n=1E k= 04 05 36 &#039;&#039;&#039;54&#039;&#039;&#039; 63 A6 AF B7 C0 E7 EE FA&lt;br /&gt;
&amp;lt;br&amp;gt;i=13 n=100 k= &#039;&#039;&#039;13&#039;&#039;&#039; 33 45 49 57 63 8F BF C5 C7 ED&lt;br /&gt;
&amp;lt;br&amp;gt;i=02 n=47 k= 63 &#039;&#039;&#039;96&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=06 n=3D k= 63 73 &#039;&#039;&#039;A3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=10 n=AC k= &#039;&#039;&#039;0D&#039;&#039;&#039; 38 44 63 A6 E9&lt;br /&gt;
&amp;lt;br&amp;gt;i=14 n=DF k= &#039;&#039;&#039;30&#039;&#039;&#039; 63 F9&lt;br /&gt;
&amp;lt;br&amp;gt;i=03 n=D8 k= 0A 12 17 22 34 4F 52 58 63 74 &#039;&#039;&#039;79&#039;&#039;&#039; 95 B7 C5 CF D7 E2 ED&lt;br /&gt;
&amp;lt;br&amp;gt;i=07 n=B3 k= 63 9D &#039;&#039;&#039;A4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=11 n=100 k= 0E 57 63 &#039;&#039;&#039;76&#039;&#039;&#039; 78 A6 E5 EA&lt;br /&gt;
&amp;lt;br&amp;gt;i=15 n=78 k= 07 1B 1E 33 45 57 61 63 68 88 8F 95 A3 AA &#039;&#039;&#039;B7&#039;&#039;&#039; D1 DB ED F6 F7&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;(in bold I already highlight the correct key bytes that we&#039;ll recover in a moment)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;tt&amp;gt;Hypothesis 01 is encoded as 10&lt;br /&gt;
&amp;lt;br&amp;gt;i=00 n=28 k= 7D &#039;&#039;&#039;9B&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=04 n=24 k= 2D &#039;&#039;&#039;CD&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=08 n=E8 k= &#039;&#039;&#039;6D&#039;&#039;&#039; FE&lt;br /&gt;
&amp;lt;br&amp;gt;i=12 n=67 k= &#039;&#039;&#039;44&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=01 n=B0 k= 63 &#039;&#039;&#039;A8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=05 n=7D k= &#039;&#039;&#039;2E&#039;&#039;&#039; 70&lt;br /&gt;
&amp;lt;br&amp;gt;i=09 n=82 k= &#039;&#039;&#039;54&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=13 n=38 k= &#039;&#039;&#039;13&#039;&#039;&#039; C7&lt;br /&gt;
&amp;lt;br&amp;gt;i=02 n=48 k= &#039;&#039;&#039;96&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=06 n=3D k= &#039;&#039;&#039;A3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=10 n=AC k= &#039;&#039;&#039;0D&#039;&#039;&#039; 38 44&lt;br /&gt;
&amp;lt;br&amp;gt;i=14 n=1C k= &#039;&#039;&#039;30&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=03 n=6C k= &#039;&#039;&#039;79&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=07 n=4A k= &#039;&#039;&#039;A4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=11 n=100 k= &#039;&#039;&#039;76&#039;&#039;&#039; EA&lt;br /&gt;
&amp;lt;br&amp;gt;i=15 n=44 k= 1B &#039;&#039;&#039;B7&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Hypothesis 02 is encoded as A0&lt;br /&gt;
&amp;lt;br&amp;gt;i=00 n=1E k= &#039;&#039;&#039;9B&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=04 n=21 k= &#039;&#039;&#039;CD&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=08 n=E8 k= &#039;&#039;&#039;6D&#039;&#039;&#039; FE&lt;br /&gt;
&amp;lt;br&amp;gt;i=12 n=E8 k= &#039;&#039;&#039;44&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=01 n=87 k= &#039;&#039;&#039;A8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=05 n=36 k= &#039;&#039;&#039;2E&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=09 n=82 k= &#039;&#039;&#039;54&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=13 n=B3 k= &#039;&#039;&#039;13&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=02 n=3B k= &#039;&#039;&#039;96&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=06 n=11 k= &#039;&#039;&#039;A3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=10 n=35 k= &#039;&#039;&#039;0D&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=14 n=C8 k= &#039;&#039;&#039;30&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=03 n=2F k= &#039;&#039;&#039;79&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=07 n=4A k= &#039;&#039;&#039;A4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;i=11 n=100 k= &#039;&#039;&#039;76&#039;&#039;&#039; EA&lt;br /&gt;
&amp;lt;br&amp;gt;i=15 n=48 k= &#039;&#039;&#039;B7&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And so on.&lt;br /&gt;
&amp;lt;br&amp;gt;At the end only one possible key round is left so we found the round key and the complete &amp;lt;math&amp;gt;X_2&amp;lt;/math&amp;gt; mapping.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
R3K candidate: 9BCD6D44A82E541396A30D3079A476B7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then it&#039;s just a matter of reversing the key scheduling of AES (yes it&#039;s invertible) to go back to the first round key == AES key.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
K00: 4E5343234F707069646123B8DCE442D0&lt;br /&gt;
K01: 267F33A5690F43CC0D6E6074D18A22A4&lt;br /&gt;
K02: 5AEC7A9B33E339573E8D5923EF077B87&lt;br /&gt;
K03: 9BCD6D44A82E541396A30D3079A476B7  &amp;lt;=&lt;br /&gt;
K04: DAF5C4F272DB90E1E4789DD19DDCEB66&lt;br /&gt;
K05: 4C1CF7AC3EC7674DDABFFA9C476311FA&lt;br /&gt;
K06: 979EDA0CA959BD4173E647DD34855627&lt;br /&gt;
K07: 402F1614E976AB559A90EC88AE15BAAF&lt;br /&gt;
K08: 99DB6FF070ADC4A5EA3D282D44289282&lt;br /&gt;
K09: B6947CEBC639B84E2C049063682C02E1&lt;br /&gt;
K10: F1E384AE37DA3CE01BDEAC8373F2AE62&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;So the AES key is &#039;&#039;&#039;4E5343234F707069646123B8DCE442D0&#039;&#039;&#039; !&lt;br /&gt;
 echo 4E5343234F707069646123B8DCE442D0|xxd -r -p&lt;br /&gt;
 NSC#Oppida#&amp;lt;some_garbage&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;math&amp;gt;X_2&amp;lt;/math&amp;gt; mapping:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00:CE 01&#039;10 02:A0 03:48 04:C1 05:61 06:33 07:E4 08:6B 09:19 0A:C0 0B:E6 0C:C9 0D:6D 0E:93 0F:E1&lt;br /&gt;
10:EA 11:5F 12:13 13:EF 14:3C 15:07 16:54 17:02 18:CA 19:9F 1A:DF 1B:1E 1C:AA 1D:9B 1E:99 1F:03&lt;br /&gt;
20:DD 21:FF 22:B7 23:8F 24:37 25:EE 26:4F 27:F7 28:C5 29:81 2A:E5 2B:CF 2C:FB 2D:D5 2E:FD 2F:E3&lt;br /&gt;
30:7A 31:D3 32:41 33:C7 34:40 35:8C 36:CC 37:4C 38:26 39:30 3A:45 3B:C8 3C:F2 3D:56 3E:9D 3F:CD&lt;br /&gt;
40:D6 41:82 42:B5 43:6F 44:BB 45:1D 46:AF 47:67 48:F9 49:52 4A:6E 4B:DC 4C:BD 4D:59 4E:BA 4F:8B&lt;br /&gt;
50:18 51:22 52:7F 53:87 54:A8 55:35 56:A4 57:90 58:4D 59:57 5A:7C 5B:6C 5C:55 5D:24 5E:D8 5F:5B&lt;br /&gt;
60:C2 61:84 62:2D 63:11 64:9C 65:4E 66:28 67:68 68:F3 69:65 6A:E7 6B:89 6C:15 6D:2A 6E:01 6F:96&lt;br /&gt;
70:DE 71:C3 72:BC 73:E0 74:A3 75:63 76:E8 77:DB 78:B2 79:0D 7A:5D 7B:5A 7C:A6 7D:50 7E:F6 7F:D4&lt;br /&gt;
80:B1 81:5E 82:95 83:C4 84:78 85:4B 86:38 87:34 88:06 89:F8 8A:AE 8B:F1 8C:27 8D:71 8E:14 8F:B4&lt;br /&gt;
90:E2 91:49 92:2C 93:09 94:BE 95:7D 96:D7 97:4A 98:EC 99:70 9A:04 9B:2B 9C:92 9D:66 9E:9A 9F:32&lt;br /&gt;
A0:6A A1:97 A2:31 A3:9E A4:08 A5:3A A6:43 A7:85 A8:0C A9:91 AA:A2 AB:D1 AC:8E AD:20 AE:AC AF:A5&lt;br /&gt;
B0:39 B1:74 B2:B6 B3:16 B4:76 B5:F4 B6:3D B7:5C B8:1A B9:ED BA:51 BB:0B BC:80 BD:2F BE:1C BF:DA&lt;br /&gt;
C0:94 C1:A9 C2:12 C3:05 C4:73 C5:0A C6:53 C7:62 C8:AD C9:F5 CA:3F CB:75 CC:25 CD:77 CE:B9 CF:42&lt;br /&gt;
D0:36 D1:7E D2:EB D3:BF D4:B0 D5:E9 D6:C6 D7:98 D8:69 D9:72 DA:60 DB:B8 DC:86 DD:23 DE:47 DF:00&lt;br /&gt;
E0:88 E1:B3 E2:83 E3:FC E4:64 E5:46 E6:A7 E7:CB E8:D2 E9:58 EA:7B EB:21 EC:F0 ED:44 EE:3B EF:3E&lt;br /&gt;
F0:0E F1:1B F2:17 F3:FA F4:2E F5:D9 F6:8D F7:AB F8:0F F9:D0 FA:1F FB:FE FC:A1 FD:29 FE:8A FF:79&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;The full attack takes 3.1s on my laptop.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Recovery of the external encodings is left as exercise for the reader ;-)&lt;br /&gt;
&amp;lt;br&amp;gt;Fun facts: if on the clear implementation we don&#039;t look for &amp;lt;math&amp;gt;0\!:\!0\!:\!0\!:\!0&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; but for &amp;lt;math&amp;gt;x\!:\!x\!:\!x\!:\!x&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; is arbitrarily chosen, we still find the right round key but with a wrong &amp;lt;math&amp;gt;X_2&amp;lt;/math&amp;gt; mapping.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Thanks for your patience if you have read so far, feel free to share your thoughts with me ([https://twitter.com/doegox @doegox]).&lt;br /&gt;
&amp;lt;br&amp;gt;And thanks to Eloi for this great challenge and to Axel, Arnaud and Guy those who have shared their write-up!&lt;br /&gt;
&lt;br /&gt;
==Epilogue==&lt;br /&gt;
&lt;br /&gt;
Before being able to mount the attack, we had to recover the actual tables and that&#039;s not that simple.&lt;br /&gt;
&amp;lt;br&amp;gt;Axel&#039;s version contains the tables but still unsorted as this was not needed for him to break the challenge:&lt;br /&gt;
* Table names and positions are random&lt;br /&gt;
* Code is flattened&lt;br /&gt;
* Intermediate variables are taken in arbitrary order from a reusable pool, including output buffer&lt;br /&gt;
* Steps are calculated out of order, only order due to dependencies is preserved&lt;br /&gt;
* Half of tables are actually tables to function snippets in the original code but Axel&#039;s version removed already that obfuscation layer, sigh!&lt;br /&gt;
So to rename properly the tables one needs to:&lt;br /&gt;
* Rewrite code with static single assignment (SSA) form, to be able to reorder it without conflicts&lt;br /&gt;
* Start from output buffers and rename logically intermediate values and tables&lt;br /&gt;
Detailed steps:&lt;br /&gt;
* As SSA version I took wbaes128_solve.cpp from his writeup, extracted and reordered the rounds (by hand)&lt;br /&gt;
 //ROUND1&lt;br /&gt;
 memory[2] = T_00430909[key[0x0]];&lt;br /&gt;
 memory[9] = T_004E19C5[key[0xa]];&lt;br /&gt;
 memory[10] = T_0055BF00[key[0xf]];&lt;br /&gt;
 memory[18] = TH_005D3C2C[key[0xf]];&lt;br /&gt;
 memory[20] = T16_00415EFE[memory[9]][memory[10]];&lt;br /&gt;
 etc&lt;br /&gt;
* To have something to compare with, I took the whitebox generator and replaced actual lookups by printf(), making sure all intermediate values are on SSA form too&lt;br /&gt;
 b1_0[0] = rT0[0][0][t[0][0]]&lt;br /&gt;
 b1_0[1] = rT0[0][1][t[0][5]]&lt;br /&gt;
 b1_0[2] = rT0[0][2][t[0][10]]&lt;br /&gt;
 b1_0[3] = rT0[0][3][t[0][15]]&lt;br /&gt;
 b1_0_01 = xT0[b1_0[0]][b1_0[1]]&lt;br /&gt;
 b1_0_23 = xT1[b1_0[2]][b1_0[3]]&lt;br /&gt;
 t[1][0] = xT2[b1_0_01][b1_0_23]&lt;br /&gt;
 etc&lt;br /&gt;
* Then I build a dictionary associating tables and indexes with each variable assignment from this output.&lt;br /&gt;
* Reading backward the SSA version, now I can make matches between table names:&lt;br /&gt;
 fT[0] = TH_0049CA9E&lt;br /&gt;
 fT[1] = T_00493D6C&lt;br /&gt;
 fT[2] = TH_004866A5&lt;br /&gt;
 fT[3] = T_005D1023&lt;br /&gt;
 fT[4] = T_00534D4A&lt;br /&gt;
 ...&lt;br /&gt;
 rT0[0][0] = T_00438C5E&lt;br /&gt;
 rT0[0][1] = T_005FCF50&lt;br /&gt;
 rT0[0][2] = TH_004D3B58&lt;br /&gt;
 rT0[0][3] = TH_005D3C2C&lt;br /&gt;
 ...&lt;br /&gt;
* Then based on those matches, I generate C code to copy NSC tables to aes_wbs_s struct of the wb generator code&lt;br /&gt;
 memcpy(aes.finalTable[0], TH_0049CA9E, sizeof(TH_0049CA9E));&lt;br /&gt;
 memcpy(aes.finalTable[1], T_00493D6C, sizeof(T_00493D6C));&lt;br /&gt;
 memcpy(aes.finalTable[2], TH_004866A5, sizeof(TH_004866A5));&lt;br /&gt;
 memcpy(aes.finalTable[3], T_005D1023, sizeof(T_005D1023));&lt;br /&gt;
 memcpy(aes.finalTable[4], T_00534D4A, sizeof(T_00534D4A));&lt;br /&gt;
 ...&lt;br /&gt;
 memcpy(aes.roundTables[0][0][0], T_00438C5E, sizeof(T_00438C5E));&lt;br /&gt;
 memcpy(aes.roundTables[0][0][1], T_005FCF50, sizeof(T_005FCF50));&lt;br /&gt;
 memcpy(aes.roundTables[0][0][2], TH_004D3B58, sizeof(TH_004D3B58));&lt;br /&gt;
 memcpy(aes.roundTables[0][0][3], TH_005D3C2C, sizeof(TH_005D3C2C));&lt;br /&gt;
 ...&lt;br /&gt;
* Compile and execute :) We obtain a file with the right tables in the same format as the one produced by the whitebox generator code.&lt;br /&gt;
&lt;br /&gt;
==Source code==&lt;br /&gt;
All scripts have finally been published here: https://github.com/SideChannelMarvels/Deadpool/tree/master/wbs_aes_nsc2013&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10549</id>
		<title>Laptop Dell XPS 15</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10549"/>
		<updated>2023-06-14T22:16:19Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Notes about installing a Debian Stretch on a Dell XPS 15&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
Dell XPS 15 model 9550 (variant with touchscreen &amp;amp; PCIe m.2 ssd)&lt;br /&gt;
&lt;br /&gt;
From the [http://www.dell.com/support/home/fr/fr/frdhs1/product-support/servicetag/DHVNH72/configuration configuration] list:&lt;br /&gt;
* 6th Generation Intel(R) Core (TM) i7-6700HQ Quad Core (6M Cache, up to 3.5 GHz)&lt;br /&gt;
* 16Go (2x8Go) DDR4 2133MHz&lt;br /&gt;
* 15.6&amp;quot; 4K Ultra HD (3840 x 2160) InfinityEdge touch, Sliver&lt;br /&gt;
* 1To PCIe Solid State&lt;br /&gt;
* DW1830 3x3 802.11ac 2.4/5GHz + Bluetooth 4.1&lt;br /&gt;
* Dell 84 WHr 6-Cell Lithium-Ion Battery&lt;br /&gt;
* Internal US/International Qwerty Backlit Keyboard&lt;br /&gt;
From the drivers list:&lt;br /&gt;
* Realtek High Definition Audio ALC3266&lt;br /&gt;
* Realtek RTS5242 PCIe Gen2 CardReader&lt;br /&gt;
* Realtek USB GBE Ethernet Controller&lt;br /&gt;
* ST Microlectronics LNG3DMTR Motion Sensor&lt;br /&gt;
* Intel HD Graphics 530/P530&lt;br /&gt;
* nVIDIA Geforce GTX 960M Graphics&lt;br /&gt;
From dmesg (incomplete):&lt;br /&gt;
* BCM20703A1 Bluetooth 4.1 (firmware brcm/BCM-0a5c-6410.hcd)&lt;br /&gt;
From lspci -nn:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00:00.0 Host bridge [0600]: Intel Corporation Sky Lake Host Bridge/DRAM Registers [8086:1910] (rev 07)&lt;br /&gt;
00:01.0 PCI bridge [0604]: Intel Corporation Sky Lake PCIe Controller (x16) [8086:1901] (rev 07)&lt;br /&gt;
00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:191b] (rev 06)&lt;br /&gt;
00:04.0 Signal processing controller [1180]: Intel Corporation Device [8086:1903] (rev 07)&lt;br /&gt;
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f] (rev 31)&lt;br /&gt;
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131] (rev 31)&lt;br /&gt;
00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #0 [8086:a160] (rev 31)&lt;br /&gt;
00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #1 [8086:a161] (rev 31)&lt;br /&gt;
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-H CSME HECI #1 [8086:a13a] (rev 31)&lt;br /&gt;
00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-H SATA Controller [AHCI mode] [8086:a103] (rev 31)&lt;br /&gt;
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #1 [8086:a110] (rev f1)&lt;br /&gt;
00:1c.1 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #2 [8086:a111] (rev f1)&lt;br /&gt;
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #9 [8086:a118] (rev f1)&lt;br /&gt;
00:1d.4 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #13 [8086:a11c] (rev f1)&lt;br /&gt;
00:1d.6 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #15 [8086:a11e] (rev f1)&lt;br /&gt;
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC Controller [8086:a14e] (rev 31)&lt;br /&gt;
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H PMC [8086:a121] (rev 31)&lt;br /&gt;
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD Audio [8086:a170] (rev 31)&lt;br /&gt;
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus [8086:a123] (rev 31)&lt;br /&gt;
01:00.0 3D controller [0302]: NVIDIA Corporation GM107M [GeForce GTX 960M] [10de:139b] (rev ff)&lt;br /&gt;
02:00.0 Network controller [0280]: Broadcom Corporation BCM43602 802.11ac Wireless LAN SoC [14e4:43ba] (rev 01)&lt;br /&gt;
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device [10ec:525a] (rev 01)&lt;br /&gt;
04:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd Device [144d:a802] (rev 01)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 001 Device 003: ID 04f3:21d5 Elan Microelectronics Corp.            &amp;lt;= touchscreen&lt;br /&gt;
Bus 001 Device 002: ID 0a5c:6410 Broadcom Corp.                         &amp;lt;= bluetooth&lt;br /&gt;
Bus 001 Device 004: ID 0c45:6713 Microdia                               &amp;lt;= webcam&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From lscpu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Architecture:          x86_64&lt;br /&gt;
CPU op-mode(s):        32-bit, 64-bit&lt;br /&gt;
Byte Order:            Little Endian&lt;br /&gt;
CPU(s):                8&lt;br /&gt;
On-line CPU(s) list:   0-7&lt;br /&gt;
Thread(s) per core:    2&lt;br /&gt;
Core(s) per socket:    4&lt;br /&gt;
Socket(s):             1&lt;br /&gt;
NUMA node(s):          1&lt;br /&gt;
Vendor ID:             GenuineIntel&lt;br /&gt;
CPU family:            6&lt;br /&gt;
Model:                 94&lt;br /&gt;
Model name:            Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz&lt;br /&gt;
Stepping:              3&lt;br /&gt;
CPU MHz:               2847.812&lt;br /&gt;
CPU max MHz:           3500.0000&lt;br /&gt;
CPU min MHz:           800.0000&lt;br /&gt;
BogoMIPS:              5183.88&lt;br /&gt;
Virtualization:        VT-x&lt;br /&gt;
L1d cache:             32K&lt;br /&gt;
L1i cache:             32K&lt;br /&gt;
L2 cache:              256K&lt;br /&gt;
L3 cache:              6144K&lt;br /&gt;
NUMA node0 CPU(s):     0-7&lt;br /&gt;
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush &lt;br /&gt;
dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts &lt;br /&gt;
rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 &lt;br /&gt;
ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx &lt;br /&gt;
f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_notify hwp_act_window hwp_epp &lt;br /&gt;
intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid &lt;br /&gt;
rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dell Wireless 1830 = BCM43602 + BCM20703A1 (DW1830 Bluetooth 4.1 LE)&lt;br /&gt;
&lt;br /&gt;
BCM43602	PCI ID: 14e4:43ba&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# smartctl -d scsi -i /dev/nvme0n1&lt;br /&gt;
smartctl 6.4 2015-06-04 r4109 [x86_64-linux-4.3.0-1-amd64] (local build)&lt;br /&gt;
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org&lt;br /&gt;
&lt;br /&gt;
=== START OF INFORMATION SECTION ===&lt;br /&gt;
Vendor:               NVMe&lt;br /&gt;
Product:              PM951 NVMe SAMSU&lt;br /&gt;
Revision:             7D0Q&lt;br /&gt;
Compliance:           SPC-4&lt;br /&gt;
User Capacity:        1,024,209,543,168 bytes [1.02 TB]&lt;br /&gt;
Logical block size:   512 bytes&lt;br /&gt;
Rotation Rate:        Solid State Device&lt;br /&gt;
Logical Unit id:      0x0025384cf1b0fd29&lt;br /&gt;
Serial number:        S2FZNXAGC03824&lt;br /&gt;
Device type:          disk&lt;br /&gt;
Local Time is:        Sun Feb 14 22:02:03 2016 CET&lt;br /&gt;
SMART support is:     Unavailable - device lacks SMART capability.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* http://topics-cdn.dell.com/pdf/xps-15-9550-laptop_Service%20Manual_en-us.pdf&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dell_XPS_15&lt;br /&gt;
* https://bbs.archlinux.org/viewtopic.php?id=204739&lt;br /&gt;
* http://ubuntuforums.org/showthread.php?t=2301071&lt;br /&gt;
* http://forthescience.org/blog/2015/03/20/installing_ubuntu_14_04_on_the_new_dell_xps_13/&lt;br /&gt;
* https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013&lt;br /&gt;
* http://bartongeorge.net/2015/02/23/update-2-dell-xps-13-laptop-developer-edition-sputnik-gen-4/&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
I first tried to keep a dual-boot just in case, but once we disable Raid and put SATA in AHCI mode, Windows can&#039;t boot anymore. (later I read it could be possible to fix it by rebooting several times Windows till safe mode is kicked in, but it was too late for me.)&lt;br /&gt;
&lt;br /&gt;
Just in case again, one can boot Windows and create a USB recovery.&lt;br /&gt;
==Bios==&lt;br /&gt;
* &#039;&#039;&#039;Secure Boot: disable&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SATA: switch from Raid to AHCI&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Advances Boot Options:/ NOT Enable Legacy Option ROMs&#039;&#039;&#039;&lt;br /&gt;
* Boot: not sure it&#039;s needed but I disabled Windows boot manager entry and kept the hdd UEFI entry: UEFI: PM951 NVMe SAMSUNG 1024GB, Partition 1&lt;br /&gt;
** See below (first boot) how to create a new entry&lt;br /&gt;
* POST/Fastboot/Auto&lt;br /&gt;
* auto os recovery threshold off&lt;br /&gt;
* Fn Lock Options&lt;br /&gt;
** NOT Fn Lock&lt;br /&gt;
** Lock Mode Enable/Secondary&lt;br /&gt;
* UEFI Capsule Firmware Updates / Enable&lt;br /&gt;
** This allows using ``fwupdmgr update`` e.g. to update the TPM firmware&lt;br /&gt;
&lt;br /&gt;
To update the BIOS:&lt;br /&gt;
* put it on a USB stick&lt;br /&gt;
* reboot&lt;br /&gt;
* select BIOS flash update on the boot screen (F12).&lt;br /&gt;
No need to put it on a bootable DOS, just give the exe to the BIOS update built-in util.&lt;br /&gt;
&amp;lt;br&amp;gt;You can even drop the update on /boot/efi as it&#039;s also a FAT partition, no need for a USB memory stick.&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
* 1.2.0 aka A6 [https://downloads.dell.com/FOLDER03659467M/1/XPS_9550_1.2.0.exe XPS_9550_1.2.0.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=KTR76 fixes]&lt;br /&gt;
* 1.2.10 aka A10 [https://downloads.dell.com/FOLDER03800340M/1/XPS_9550_1.2.10.exe XPS_9550_1.2.10.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=96T2K fixes]&lt;br /&gt;
* 1.2.14 aka A13 [https://downloads.dell.com/FOLDER03906323M/1/XPS_9550_1.2.14.exe XPS_9550_1.2.14.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=VNMDK fixes]&lt;br /&gt;
* 1.2.16 [https://downloads.dell.com/FOLDER04030973M/1/XPS_9550_1.2.16.exe XPS_9550_1.2.16.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=J8GY6 fixes]&lt;br /&gt;
* 1.2.18 aka A16 [https://downloads.dell.com/FOLDER04078627M/1/XPS_9550_1.2.18.exe XPS_9550_1.2.18.exe] [http://www.dell.com/support/home/us/en/4/Drivers/DriversDetails?driverId=KD0C7 fixes]&lt;br /&gt;
* 1.2.21 [https://downloads.dell.com/FOLDER04190863M/1/XPS_9550_1.2.21.exe XPS_9550_1.2.21.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=6RV34 fixes]&lt;br /&gt;
* 1.2.25 [https://downloads.dell.com/FOLDER04319442M/1/XPS_9550_1.2.25.exe XPS_9550_1.2.25.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=3W30W fixes]&lt;br /&gt;
* 1.2.29 [https://downloads.dell.com/FOLDER04449988M/1/XPS_9550_1.2.29.exe XPS_9550_1.2.29.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=F7M6G fixes]&lt;br /&gt;
* 1.3.0 [https://downloads.dell.com/FOLDER04481870M/1/XPS_9550_1.3.0.exe XPS_9550_1.3.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=NXVMP fixes]&lt;br /&gt;
* 1.4.0 [https://downloads.dell.com/FOLDER04499656M/1/XPS_9550_1.4.0.exe XPS_9550_1.4.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=DR9N6 fixes]&lt;br /&gt;
* 1.5.1 [https://downloads.dell.com/FOLDER04604618M/1/XPS_9550_1.5.1.exe XPS_9550_1.5.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=TWKFC fixes]&lt;br /&gt;
* 1.6.1 [https://downloads.dell.com/FOLDER04717493M/1/XPS_9550_1.6.1.exe XPS_9550_1.6.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=PFJ08 fixes]&lt;br /&gt;
* 1.7.0 [https://downloads.dell.com/FOLDER04839266M/1/XPS_9550_1.7.0.exe XPS_9550_1.7.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=RYY62 fixes]&lt;br /&gt;
* 1.8.0 [https://downloads.dell.com/FOLDER05099834M/1/XPS_9550_1.8.0.exe XPS_9550_1.8.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=4GDY8 fixes]&lt;br /&gt;
* 1.9.0 [https://downloads.dell.com/FOLDER05256907M/1/XPS_9550_1.9.0.exe XPS_9550_1.9.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=xv1gp fixes]&lt;br /&gt;
* 1.10.0 [https://downloads.dell.com/FOLDER05476993M/1/XPS_9550_1.10.0.exe XPS_9550_1.10.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=3N7TY fixes]&lt;br /&gt;
* 1.11.2 [https://downloads.dell.com/FOLDER05770328M/1/XPS_9550_1.11.2.exe XPS_9550_1.11.2.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=gtm85 fixes]&lt;br /&gt;
* 1.12.0 [https://downloads.dell.com/FOLDER05865451M/1/XPS_9550_1.12.0.exe XPS_9550_1.12.0.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=7HTW2 fixes]&lt;br /&gt;
* 1.13.1 [https://dl.dell.com/FOLDER06021536M/1/XPS_9550_1.13.1.exe XPS_9550_1.13.1.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=3hr07 fixes]&lt;br /&gt;
* 1.14.0 [https://dl.dell.com/FOLDER06130362M/1/XPS_9550_1.14.0.exe XPS_9550_1.14.0.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=90khw fixes]&lt;br /&gt;
&lt;br /&gt;
Attention: with versions 1.2.10 through 1.2.16 and older Linux kernels, there is a serious bug that let the screen black after suspend/wake up. The workaround is to set the lightness to the maximum but it breaks further lightness tuning.&lt;br /&gt;
&lt;br /&gt;
Linux kernels 4.8 and below tend to work best with A6 BIOS (1.2.0), although there is a workaround that allows it to work with later versions.  This workaround uses the intel_reg utility to reset the &amp;quot;pwm_granuality&amp;quot; setting of the onboard graphics.  Solution discussed here: [http://en.community.dell.com/techcenter/os-applications/f/4613/t/19985320].  This issue is reportedly fixed in Linux 4.9, and also in recent Ubuntu 16.10 kernel updates.  See the patch here [https://patchwork.freedesktop.org/patch/109407/].&lt;br /&gt;
&lt;br /&gt;
Even with the intel_reg workaround above, the screen brightness cannot be set to the lowest level without turning the screen off.  This is fixed in 1.2.18.&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
I kept UEFI so we need a Debian netinstall because liveCD doesn&#039;t have UEFI support yet.&lt;br /&gt;
&amp;lt;br&amp;gt;But Wi-Fi requires a proprietary firmware:&lt;br /&gt;
 https://github.com/OpenELEC/wlan-firmware/blob/master/firmware/brcm/brcmfmac43602-pcie.bin&lt;br /&gt;
so the easiest is to take a Debian netinstall with proprietary firmwares included.&lt;br /&gt;
&amp;lt;br&amp;gt;At time of writing Stretch is testing and last release is alpha5:&lt;br /&gt;
 http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/stretch_di_alpha5/amd64/iso-cd/&lt;br /&gt;
dd the image on a USB stick and boot it.&lt;br /&gt;
&amp;lt;br&amp;gt;It will also complain for a missing brcmfmac43602-pcie.txt but we can safely ignore it. (well I think so, but Wi-Fi has troubles now and then under heavy load, see below)&lt;br /&gt;
&amp;lt;!-- sysml eml ems --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I chose a guided partitionning of the entire disk, with encrypted LVM containing /, /home and swap. But proposed / was a bit too small IMHO (10G) so I deleted and recreated / (50G) and /home.&lt;br /&gt;
&amp;lt;br&amp;gt;Initially I tried to add the &amp;quot;discard&amp;quot; option for the partitions which should help on SSD but the kernel reported that &amp;quot;discard&amp;quot; wasn&#039;t supported by the disk.&lt;br /&gt;
&lt;br /&gt;
If you want to backup partition table and partitions before destroying everything, it&#039;s the right time!&lt;br /&gt;
 parted /dev/nvme0n1&lt;br /&gt;
 print&lt;br /&gt;
 sgdisk --backup=/some/safe/location/nvme0n1.gpt /dev/nvme0n1&lt;br /&gt;
I installed Cinnamon. I don&#039;t know for the others but Cinnamon has a nice auto setting to double features on HiDPI screens.&lt;br /&gt;
&lt;br /&gt;
===Gnome===&lt;br /&gt;
Update: now using Gnome3.&lt;br /&gt;
Needs to replace lightdm by gdm3 to get newer lock screen (gnome-screensaver is deprecated)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg-reconfigure gdm3&lt;br /&gt;
(choose gdm3)&lt;br /&gt;
# delay before blanking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.session idle-delay 300&lt;br /&gt;
# delay after blanking before locking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.screensaver lock-delay 10&lt;br /&gt;
(reboot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sometimes after a crash, gnome extensions (https://extensions.gnome.org/local/) are disabled. To reenable them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dconf write /org/gnome/shell/disable-user-extensions false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Wayland===&lt;br /&gt;
Got quite some troubles with Wayland, so I reverted it back to X11:&lt;br /&gt;
&lt;br /&gt;
Edit /etc/gdm3/daemon.conf and uncomment line:&lt;br /&gt;
    WaylandEnable=false&lt;br /&gt;
&lt;br /&gt;
==First boot==&lt;br /&gt;
Once installed, the Debian didn&#039;t boot up.&lt;br /&gt;
&amp;lt;br&amp;gt;I tried many things but at the end the only thing that worked was to copy Debian EFI to the default one:&lt;br /&gt;
&lt;br /&gt;
Starting the netinstall again, in rescue mode, get a chroot shell, then&lt;br /&gt;
 mount /dev/nvme0n1p1 /boot/efi&lt;br /&gt;
 cd /boot/efi/EFI&lt;br /&gt;
 mkdir boot&lt;br /&gt;
 cp debian/grubx64.efi boot/bootx64.efi&lt;br /&gt;
I also deleted the Windows files in EFI.&lt;br /&gt;
&lt;br /&gt;
Resource:&lt;br /&gt;
* https://wiki.debian.org/GrubEFIReinstall&lt;br /&gt;
* https://wiki.archlinux.org/index.php/GRUB#Create_an_ESP&lt;br /&gt;
* https://help.ubuntu.com/community/UEFI&lt;br /&gt;
* https://wiki.debian.org/UEFI&lt;br /&gt;
* https://isalo.org/wiki.debian-fr/Debian_%26_UEFI    &lt;br /&gt;
&lt;br /&gt;
FTR things that failed included:&lt;br /&gt;
* [http://www.rodsbooks.com/refind/getting.html Refind] couldn&#039;t boot at all. Strange as the netinstall could boot...&lt;br /&gt;
* tweaks with efibootmgr, update-grub etc&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UPDATE&#039;&#039;&#039;: It might be possible to fix the issue from the BIOS itself, see http://www.dell.com/support/article/us/en/04/SLN297060/en&lt;br /&gt;
* Boot Sequence / Add Boot Option&lt;br /&gt;
** Boot Option Name : Debian&lt;br /&gt;
** File System List : PciRoot(0x0)/Pic(0x1D,0x0)/Pci(0x0,0x0)/?/HD(1,GPT,&amp;lt;UUID&amp;gt;)&lt;br /&gt;
** File Name : FS0 - EFI - debian - grubx64.efi&lt;br /&gt;
* Advances Boot Options / NOT Enable Legacy Option ROMs&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
===Working===&lt;br /&gt;
* Screen&lt;br /&gt;
* Touchscreen&lt;br /&gt;
* Touchpad&lt;br /&gt;
* Keyboard backlight and media buttons (volume, luminosity, backlight)&lt;br /&gt;
* Wi-Fi (with the proprietary driver, cf installation above)&lt;br /&gt;
* HDMI&lt;br /&gt;
* SD-Card reader&lt;br /&gt;
* Speakers, mic&lt;br /&gt;
* Webcam&lt;br /&gt;
&lt;br /&gt;
===Working after manual steps===&lt;br /&gt;
====i915====&lt;br /&gt;
Screen was working but dmesg was complaining:&lt;br /&gt;
 i915 0000:00:02.0: firmware: failed to load i915/skl_dmc_ver1.bin&lt;br /&gt;
So I installed that firmware, not sure what it&#039;s changed&lt;br /&gt;
 sudo apt-get install firmware-misc-nonfree&lt;br /&gt;
====Optimus &amp;amp; CUDA====&lt;br /&gt;
Resources:&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Optimus&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Bumblebee&lt;br /&gt;
 apt-get install bumblebee-nvidia nvidia-cuda-toolkit mesa-utils&lt;br /&gt;
 reboot&lt;br /&gt;
Examples:&lt;br /&gt;
 optirun -b none nvidia-settings -c :8&lt;br /&gt;
 optirun -vv glxgears&lt;br /&gt;
 optirun -vv clinfo&lt;br /&gt;
 optirun -b none ./hashcat64.bin -I&lt;br /&gt;
 optirun --no-xorg ./hashcat64.bin -I&lt;br /&gt;
 optirun -b none ./hashcat.bin -m 500 example500.hash example.dict&lt;br /&gt;
GPU load:&lt;br /&gt;
 optirun --no-xorg nvidia-smi&lt;br /&gt;
&lt;br /&gt;
As bridge, primus or virtualgl can be used. Primus is available in the Debian repos while VirtualGL is [https://sourceforge.net/projects/virtualgl/?source=typ_redirect here]. Using primus currently.&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
Nothing wrong with the touchpad but its default config is a bit painful especially because it&#039;s large and my right palm touches it often, even with the option to diable it when typing and because it&#039;s &amp;quot;soft&amp;quot; buttons.&lt;br /&gt;
&amp;lt;br&amp;gt;I disabled the button area to limit somehow the problem but still you&#039;ve to get used to first touch and hold before pressing a button to do a drag and drop and not the opposite.&lt;br /&gt;
 synclient AreaBottomEdge=4026&lt;br /&gt;
To add a middle button:&lt;br /&gt;
 synclient RightButtonAreaLeft=3914&lt;br /&gt;
 synclient RightButtonAreaRight=0&lt;br /&gt;
 synclient RightButtonAreaTop=4026&lt;br /&gt;
 synclient RightButtonAreaBottom=0&lt;br /&gt;
 synclient MiddleButtonAreaLeft=3100&lt;br /&gt;
 synclient MiddleButtonAreaRight=3873&lt;br /&gt;
 synclient MiddleButtonAreaTop=4026&lt;br /&gt;
 synclient MiddleButtonAreaBottom=0&lt;br /&gt;
And because I love it:&lt;br /&gt;
 synclient CircularScrolling=1&lt;br /&gt;
Some doc [https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Buttonless_touchpads_.28aka_ClickPads.29 here] and the official one [http://www.x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html here]&lt;br /&gt;
&lt;br /&gt;
If with some kernels you get troubles using Synaptics options, check dmesg, maybe Touchpad is detected by another driver too:&lt;br /&gt;
 DLL06E4:01 06CB:7A13 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-7/i2c-DLL06E4:01/0018:06CB:7A13.0003/input/input14&lt;br /&gt;
 hid-multitouch 0018:06CB:7A13.0003: input,hidraw2: I2C HID v1.00 Mouse [DLL06E4:01 06CB:7A13] on i2c-DLL06E4:01&lt;br /&gt;
If this is so, add /etc/modprobe.d/synaptics.conf with this line, cf Kernel section below:&lt;br /&gt;
 blacklist i2c-designware-platform&lt;br /&gt;
&lt;br /&gt;
On recent kernels, i2c-designware-platform is directly in the kernel, not as module anymore.&lt;br /&gt;
To manage to blacklist it, see https://unix.stackexchange.com/questions/423797/how-do-i-disable-i2c-designware-support-when-its-not-built-as-a-module#446913&lt;br /&gt;
Edit /etc/default/grub and append the following blacklist invocation to the command line, then update-grub.&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;… initcall_blacklist=dw_i2c_init_driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Touchscreen====&lt;br /&gt;
Touchscreen works well but when an external screen is connected, it spans over both screens so e.g. touching the middle of the laptop screen moves the mouse to some middle point of the virtual screen combining both screens.&lt;br /&gt;
&amp;lt;br&amp;gt;To fix it, see https://wiki.archlinux.org/index.php/Calibrating_Touchscreen&lt;br /&gt;
&amp;lt;br&amp;gt;This example is for an external screen mapped to the right of the laptop screen:&lt;br /&gt;
 # c0 = width of laptop screen / total width&lt;br /&gt;
 c0=$(bc -l &amp;lt;&amp;lt;&amp;lt; &amp;quot;scale=2; $(xrandr|grep -A1 eDP1|sed &#039;1d;s/x.*//&#039;)/$(xrandr|grep &#039;^Screen 0&#039;|sed &#039;s/.*current //;s/ x.*//&#039;)&amp;quot;)&lt;br /&gt;
 xinput set-prop &amp;quot;ELAN Touchscreen&amp;quot; --type=float &amp;quot;Coordinate Transformation Matrix&amp;quot; \&lt;br /&gt;
    c0 0  0 \&lt;br /&gt;
    0  1  0 \&lt;br /&gt;
    0  0  1&lt;br /&gt;
&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
Kernel complains about a missing file.&lt;br /&gt;
&amp;lt;br&amp;gt;Apparently we can get it from Windows drivers but I don&#039;t know where to find them, so I took [https://www.dropbox.com/s/8goc4omhnzxij93/BCM-0a5c-6410.hcd?dl=0 this one] and copied it into /lib/firmware/brcm&lt;br /&gt;
&lt;br /&gt;
Then Bluetooth was recognized but I couldn&#039;t pair my WM615 mouse.&lt;br /&gt;
&amp;lt;br&amp;gt;After restarting the Bt adaptor, I could finally pair:&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
  power off&lt;br /&gt;
  power on&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* https://wiki.debian.org/BluetoothUser&lt;br /&gt;
* https://wiki.archlinux.org/index.php/bluetooth&lt;br /&gt;
There is also a possibility to pair directly from bluetoothctl, see https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see [[#Hardware_changes]]&lt;br /&gt;
&lt;br /&gt;
====HiDPI====&lt;br /&gt;
Cinnamon handles it nicely but some applications don&#039;t such as Gimp and you end up with a microscopic tools ribbon.&lt;br /&gt;
&amp;lt;br&amp;gt;See https://wiki.archlinux.org/index.php/HiDPI for some useful tips&lt;br /&gt;
&lt;br /&gt;
Cinnamon / System Settings / Desktop Scaling has the same effect as `gsettings set org.cinnamon.desktop.interface scaling-factor 2`&lt;br /&gt;
&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (1016x572 millimeters)&lt;br /&gt;
   resolution:    96x96 dots per inch&lt;br /&gt;
I&#039;ve no ruler at hand but if it&#039;s 15.6&#039;&#039; in diagonal and pixels are square, this gives 293.4 dpi for screen dimensions of 332x187mm.&lt;br /&gt;
&amp;lt;br&amp;gt;So closest hit with common DPI is 96*3=288dpi&lt;br /&gt;
 xrandr --dpi 288&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (338x190 millimeters)&lt;br /&gt;
   resolution:    289x289 dots per inch&lt;br /&gt;
Let&#039;s document those fictive dimensions for next boots by creating /etc/X11/xorg.conf.d/90-monitor.conf with&lt;br /&gt;
 Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
     Identifier             &amp;quot;&amp;lt;default monitor&amp;gt;&amp;quot;&lt;br /&gt;
     DisplaySize            338 190    # In millimeters&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT5 and GTK+ 3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;To enable better scaling of QT5 and GTK+ 3, add to .bashrc (not to .xsessionrc otherwise Cinnamon taskbar is messed up!):&lt;br /&gt;
 QT_DEVICE_PIXEL_RATIO=3&lt;br /&gt;
 GDK_SCALE=3&lt;br /&gt;
 GDK_DPI_SCALE=0.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. Skype&lt;br /&gt;
 sudo apt-get install qt4-qtconfig&lt;br /&gt;
 qtconfig-qt4&lt;br /&gt;
=&amp;gt; one can change font size&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gimp 2.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. copy /usr/share/gimp/2.0/themes/Default as ~/.gimp-2.8/themes/HiDPI and change a few options:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
--- gtkrc&lt;br /&gt;
+++ gtkrc&lt;br /&gt;
-  GimpToolPalette::tool-icon-size   = button&lt;br /&gt;
+  GimpToolPalette::tool-icon-size   = dialog&lt;br /&gt;
-  GimpEditor::button-icon-size      = menu&lt;br /&gt;
+  GimpEditor::button-icon-size      = button&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wine&#039;&#039;&#039;&lt;br /&gt;
 winecfg&lt;br /&gt;
Change &amp;quot;dpi&amp;quot; in &amp;quot;Graphics&amp;quot; tab&lt;br /&gt;
&#039;&#039;&#039;Virtualbox&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;View/Scale Factor is helpful...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chromium&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Chrome works fine but &#039;&#039;Chromium&#039;&#039; broke at some point, so I&#039;ve to launch it with:&lt;br /&gt;
&lt;br /&gt;
 GDK_SCALE=2 exec chromium&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Small console font&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;I don&#039;t care but if that&#039;s an issue for you, from [https://github.com/mpalourdio/xps13/blob/master/HiDPI/tty.md here]:&lt;br /&gt;
 sudo dpkg-reconfigure console-setup&lt;br /&gt;
* Choose UTF-8&lt;br /&gt;
* Choose the default Combined - Latin, ... option (&amp;quot;Latin&amp;quot; includes the English alphabet)&lt;br /&gt;
* Select the terminus font&lt;br /&gt;
* Select 16x32&lt;br /&gt;
* OK&lt;br /&gt;
To apply immediately, open a TTY and run setupcon, else just reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Multiple displays&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Combining HiDPI screen with external non-HiDPI? See https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xpra&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;cf https://xpra.org/trac/ticket/2492&lt;br /&gt;
&lt;br /&gt;
====Sensors====&lt;br /&gt;
 apt-get install lm-sensors&lt;br /&gt;
 sensors-detect&lt;br /&gt;
Sensors-detect found coretemp which is now loaded via /etc/modules:&lt;br /&gt;
 coretemp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====External microphone====&lt;br /&gt;
The sole jack is a TRRS, combining output and mic.&lt;br /&gt;
&amp;lt;br&amp;gt;Soundcard is a Realtek ALC3266&lt;br /&gt;
  grep -r Realtek /proc/asound/card*&lt;br /&gt;
  /proc/asound/card0/codec#0:Codec: Realtek ALC3266&lt;br /&gt;
&amp;lt;br&amp;gt;With Debian+Cinnamon, the system detects the mic, we can see it in the sound properties and select it, but still the internal mic is used.&lt;br /&gt;
&amp;lt;br&amp;gt;When using pavucontrol, selecting the &amp;quot;headset microphone&amp;quot; works fine (it still needs some level boosting).&lt;br /&gt;
&lt;br /&gt;
====DA200====&lt;br /&gt;
[http://accessories.euro.dell.com/sna/products/Station_daccueil/productdetail.aspx?c=fr&amp;amp;l=fr&amp;amp;s=dhs&amp;amp;cs=frdhs1&amp;amp;sku=470-ABRY DA200] used to be recognized only if it was plugged at boot.&lt;br /&gt;
&amp;lt;br&amp;gt;With kernel 4.6 the device is properly detected dynamically.&lt;br /&gt;
&amp;lt;br&amp;gt;The adapter is actually using DisplayPort. &lt;br /&gt;
&amp;lt;br&amp;gt;VGA output works.&lt;br /&gt;
&lt;br /&gt;
HDMI output is limited to some modes (max 1920x1080, cf [http://www.dell.com/support/article/us/en/19/SLN303466 Dell support]) and by default xrandr will try an unsupported mode.&lt;br /&gt;
&amp;lt;br&amp;gt;Even &amp;quot;xrandr --output DP-1 --mode 1920x1080&amp;quot; fails by default.&lt;br /&gt;
&lt;br /&gt;
Some supported modes:  800x600, 1024x768, 1280x720, 1920x1080i&lt;br /&gt;
&amp;lt;br&amp;gt;1920x1080i is interlaced and awful to look at.&lt;br /&gt;
&amp;lt;br&amp;gt;Reducing the rate allows a non-interlaced 1920x1080 mode, you can test it with:&lt;br /&gt;
 xrandr --output DP-1 --mode 1920x1080 -r 30&lt;br /&gt;
If this works for you, you can create a new mode, using cvt to find the proper parameters:&lt;br /&gt;
 cvt 1920 1080 30&lt;br /&gt;
 # 1920x1080 29.95 Hz (CVT) hsync: 33.01 kHz; pclk: 79.75 MHz&lt;br /&gt;
 Modeline &amp;quot;1920x1080_30.00&amp;quot;   79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
Creating and adding the new mode:&lt;br /&gt;
 xrandr --newmode &amp;quot;1920x1080_30.00&amp;quot; 79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
 xrandr --addmode DP-1  &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
Now you can choose this new mode:&lt;br /&gt;
  xrandr --output DP-1 --mode &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
&lt;br /&gt;
When plugged the following hardware gets detected:&lt;br /&gt;
&lt;br /&gt;
lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp..     &amp;lt;= Ethernet&lt;br /&gt;
Bus 004 Device 002: ID 05e3:0617 Genesys Logic, Inc..&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 003 Device 003: ID 0835:2a01 Action Star Enterprise Co., Ltd. &amp;lt;= Billboard&lt;br /&gt;
Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;The USB Billboard Device Class definition describes the methods used to communicate the Alternate Modes supported by a device container to a host system. More details on Billboard Devices are available in the USB Billboard Device Class specification at the following link: http://www.usb.org/developers/docs/devclass_docs/.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
lspci:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
06:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:01.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:02.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
0a:00.0 USB controller: Intel Corporation Device 15b5 (prog-if 30 [XHCI])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lsmod:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
r8152                  49152  0&lt;br /&gt;
cdc_ether              16384  0&lt;br /&gt;
usbnet                 40960  1 cdc_ether&lt;br /&gt;
mii                    16384  2 r8152,usbnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Solved issues===&lt;br /&gt;
====i915 and blank screen====&lt;br /&gt;
There were numerous issues with the video card. Now with latest kernels (&amp;gt;=4.8) most issues are gone, still some occasional blank screen or freeze when plugging an external HDMI.&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
WM615 mouse used to act erratically, the cursor stopping now and then. Now with latest kernels and an Intel Wi-Fi+BT card it&#039;s fine.&lt;br /&gt;
====Wi-Fi====&lt;br /&gt;
Wi-Fi tends to disassociate under heavy load, switching to other SSIDs or frequencies (5Ghz&amp;lt;&amp;gt;2.4GHz) and coming back seems to help.&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see #Hardware_changes&lt;br /&gt;
&lt;br /&gt;
===Issues===&lt;br /&gt;
====rfkill button====&lt;br /&gt;
Rfkill button of the keyboard (Fn+PrtScr) doesn&#039;t seem to work, no big deal.&lt;br /&gt;
&lt;br /&gt;
==Kernels==&lt;br /&gt;
initramfs complains about lvmetad and I&#039;m not sure it&#039;s that useful on SSD, so just disabling it:&lt;br /&gt;
&amp;lt;br&amp;gt;Edit /etc/lvm/lvm.conf&lt;br /&gt;
 use_lvmetad=0&lt;br /&gt;
Then stop it&lt;br /&gt;
 systemctl stop lvm2-lvmetad&lt;br /&gt;
===Debian===&lt;br /&gt;
Debian kernel 4.8 works quite well&lt;br /&gt;
===Compilation notes===&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;, to compile &amp;gt;=4.4, one needs at least initramfs-tools v0.122 to get the nvme.ko properly loaded and therefore the SSD properly seen.&lt;br /&gt;
&lt;br /&gt;
To compile a vanilla kernel, cf http://www.cyberciti.biz/faq/debian-ubuntu-building-installing-a-custom-linux-kernel/&lt;br /&gt;
 sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc&lt;br /&gt;
 sudo apt-get install kernel-package&lt;br /&gt;
 wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz&lt;br /&gt;
 tar xf linux-4.4.tar.xz&lt;br /&gt;
 cd linux-4.4&lt;br /&gt;
 cp /boot/config-$(uname -r) .config&lt;br /&gt;
 make menuconfig&lt;br /&gt;
 make-kpkg clean&lt;br /&gt;
 make-kpkg --rootcmd fakeroot --initrd --append_to_version=9-doegox kernel_image kernel_headers -j 7&lt;br /&gt;
&lt;br /&gt;
==Hardware changes==&lt;br /&gt;
Replacing Broadcom Wi-Fi+BT by an [https://wikidevi.com/wiki/Intel Intel one]:&lt;br /&gt;
* Intel 7265 Dual Band Wireless-AC 7265NGW Card 802.11ac 867Mbps WIFI BT4.0 UK&lt;br /&gt;
** http://www.befr.ebay.be/itm/262049756966?_trksid=p2060353.m2749.l2649&amp;amp;ssPageName=STRK%3AMEBIDX%3AIT&lt;br /&gt;
** https://downloadcenter.intel.com/download/17045&lt;br /&gt;
** This requires installing package firmware-iwlwifi&lt;br /&gt;
** Seems to have less Wi-Fi issues, but still the same BT problems pairing the Dell mouse&lt;br /&gt;
&lt;br /&gt;
 iwlwifi 0000:02:00.0: firmware: direct-loading firmware iwlwifi-7265-17.ucode&lt;br /&gt;
 iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 7265, REV=0x184&lt;br /&gt;
&lt;br /&gt;
Alternatives to DA200:&lt;br /&gt;
* HDMI Male To VGA Female Converter&lt;br /&gt;
** http://www.aliexpress.com/item/1pc-HDMI-Male-To-VGA-Female-Converter-Box-Adapter-With-Audio-Cable-For-PC-HDTVHot-New/32448171552.html&lt;br /&gt;
* USB 3.0 10/100/1000Mbps Gigabit Ethernet RJ45&lt;br /&gt;
** http://www.aliexpress.com/item/Hot-selling-New-USB-3-0-10-100-1000Mbps-Gigabit-Ethernet-RJ45-External-Network-Card-LAN/32546613204.html&lt;br /&gt;
* 4-Port Ultra-Slim USB 3.0 Hub&lt;br /&gt;
** https://www.anker.com/products/A7516011&lt;br /&gt;
** http://www.amazon.de/Anker-Datenhub-Ultrabooks-weiteren-kompatiblen/dp/B00Y211AFM/&lt;br /&gt;
&lt;br /&gt;
==Misc hardware==&lt;br /&gt;
Smartcard reader&lt;br /&gt;
* ACS ACR38U PocketMate Smart Card Reader&lt;br /&gt;
** http://www.acs.com.hk/en/products/160/acr38u-pocketmate-smart-card-reader/&lt;br /&gt;
** http://www.befr.ebay.be/itm/EU-SHIPPING-Smart-Card-USB-ACS-ACR38U-National-ID-Tachograph-Reader-Writer-/121899037557&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Yubikey&amp;diff=10548</id>
		<title>Yubikey</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Yubikey&amp;diff=10548"/>
		<updated>2023-04-25T08:19:37Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Thunderbird Exclusive Mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Yubikey Neo Nano=&lt;br /&gt;
==First time plugged==&lt;br /&gt;
 new full-speed USB device number 31 using xhci_hcd&lt;br /&gt;
 New USB device found, idVendor=1050, idProduct=0114&lt;br /&gt;
 New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
 Product: Yubikey NEO OTP+U2F&lt;br /&gt;
 Manufacturer: Yubico&lt;br /&gt;
==OTP test==&lt;br /&gt;
Can be performed without any install as OTP is using the keyboard emulation mode.&lt;br /&gt;
&amp;lt;br&amp;gt;Visit https://demo.yubico.com/&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;As an HID device (keyboard), the YubiKey actually emits &amp;quot;scan codes&amp;quot; rather than actual characters. Different keyboard layouts have a different mapping between scan codes and the characters they represent.&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;Therefore, Yubico has designed a character set which is invariant between keyboard layouts which has 16 characters and we call the Modhex set – Modified Hexadecimal. Therefore, each character has 4 bits of entropy.&#039;&#039;&lt;br /&gt;
 Parameters&lt;br /&gt;
 device=neonano&lt;br /&gt;
 key=ccccccdugjdbtnglkbibhjkeifunghgngibgfjcunlfl&lt;br /&gt;
 identity=ccccccdugjdb&lt;br /&gt;
 serial=3037217&lt;br /&gt;
 &lt;br /&gt;
 Authentication Output&lt;br /&gt;
 h=sznj5f+KKweKLObaoMo44IJMGOM=&lt;br /&gt;
 t=2015-03-12T19:37:09Z0788&lt;br /&gt;
 otp=ccccccdugjdbtnglkbibhjkeifunghgngibgfjcunlfl&lt;br /&gt;
 nonce=a830bdee7aa3735626ea90bcd5b2428c&lt;br /&gt;
 sl=25&lt;br /&gt;
 status=OK&lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
For CCID &amp;amp; U2F, one needs some extra steps.&lt;br /&gt;
&amp;lt;br&amp;gt;Note that contrary to what is said in Yubico docs, mine had already the mode U2F activated.&lt;br /&gt;
&lt;br /&gt;
To use U2F with Chrome, install [https://chrome.google.com/webstore/detail/fido-u2f-universal-2nd-fa/pfboblefjcgdjicmnffhdgionmgcdmne FIDO U2F plugin]&lt;br /&gt;
&lt;br /&gt;
We need the yubikey neo manager, cf [https://www.yubico.com/wp-content/uploads/2014/11/NEO-Manager-Quick-Start-Guide.pdf NEO-Manager-Quick-Start-Guide.pdf]&lt;br /&gt;
Install [https://developers.yubico.com/yubikey-neo-manager/Releases/ Yubikey neo manager], here [https://developers.yubico.com/yubikey-neo-manager/Releases/yubikey-neo-manager-1.1.0.tar.gz yubikey-neo-manager-1.1.0.tar.gz]&lt;br /&gt;
&amp;lt;br&amp;gt;We could use &amp;quot;python setup.py install --user&amp;quot; but it would also install locally pySide which we install properly via apt-get&lt;br /&gt;
 sudo apt-get install ykneomgr python-pyside yubikey-personalization yubikey-personalization-gui u2f-host&lt;br /&gt;
 tar yubikey-neo-manager-1.1.0.tar.gz&lt;br /&gt;
 cd yubikey-neo-manager-1.1.0&lt;br /&gt;
 cp scripts/neoman neoman.py&lt;br /&gt;
 ./neoman.py&lt;br /&gt;
&lt;br /&gt;
 Serial: 3037217&lt;br /&gt;
 FW version: 3.3.0&lt;br /&gt;
 U2F/FIDO: supported&lt;br /&gt;
 Change connection mode [OTP+U2F]&lt;br /&gt;
We can change its name for sth more convivial&lt;br /&gt;
&amp;lt;br&amp;gt;There are three supports that can be activated:&lt;br /&gt;
* &#039;&#039;The OTP mode refers to the YubiKey functions the NEO shares with the standard YubiKey, including two Configuration Slots that can be programmed with any two of the following: Yubico OTP (programmed by Yubico in Slot 1, by default), OATH-HOTP, Challenge-Response and Static Password.&#039;&#039;&lt;br /&gt;
* &#039;&#039;The CCID Mode refers to the smart card elements on the YubiKey NEO and NEO-n, and includes the NEO applets such as OpenPGP, PIV and YubiOATH.&#039;&#039;&lt;br /&gt;
* &#039;&#039;The U2F Mode refers to the Universal 2nd Factor (U2F) functionality of the YubiKey NEO and NEO-n.&#039;&#039;&lt;br /&gt;
Activate all supports:&lt;br /&gt;
* Change connection mode =&amp;gt; +OTP +CCID +U2F&lt;br /&gt;
* unplug/wait/replug&lt;br /&gt;
Now we see available applets&lt;br /&gt;
* YubiKey OTP&lt;br /&gt;
* YubiOATH&lt;br /&gt;
* Yubico U2F&lt;br /&gt;
* OpenPGP&lt;br /&gt;
* Yubico PIV&lt;br /&gt;
&lt;br /&gt;
pcsc_scan results:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Reader 0: Yubico Yubikey NEO OTP+U2F+CCID 00 00&lt;br /&gt;
  Card state: Card inserted, &lt;br /&gt;
  ATR: 3B FC 13 00 00 81 31 FE 15 59 75 62 69 6B 65 79 4E 45 4F 72 33 E1&lt;br /&gt;
&lt;br /&gt;
ATR: 3B FC 13 00 00 81 31 FE 15 59 75 62 69 6B 65 79 4E 45 4F 72 33 E1&lt;br /&gt;
+ TS = 3B --&amp;gt; Direct Convention&lt;br /&gt;
+ T0 = FC, Y(1): 1111, K: 12 (historical bytes)&lt;br /&gt;
  TA(1) = 13 --&amp;gt; Fi=372, Di=4, 93 cycles/ETU&lt;br /&gt;
    43010 bits/s at 4 MHz, fMax for Fi = 5 MHz =&amp;gt; 53763 bits/s&lt;br /&gt;
  TB(1) = 00 --&amp;gt; VPP is not electrically connected&lt;br /&gt;
  TC(1) = 00 --&amp;gt; Extra guard time: 0&lt;br /&gt;
  TD(1) = 81 --&amp;gt; Y(i+1) = 1000, Protocol T = 1 &lt;br /&gt;
-----&lt;br /&gt;
  TD(2) = 31 --&amp;gt; Y(i+1) = 0011, Protocol T = 1 &lt;br /&gt;
-----&lt;br /&gt;
  TA(3) = FE --&amp;gt; IFSC: 254&lt;br /&gt;
  TB(3) = 15 --&amp;gt; Block Waiting Integer: 1 - Character Waiting Integer: 5&lt;br /&gt;
+ Historical bytes: 59 75 62 69 6B 65 79 4E 45 4F 72 33&lt;br /&gt;
  Category indicator byte: 59 (proprietary format)&lt;br /&gt;
+ TCK = E1 (correct checksum)&lt;br /&gt;
&lt;br /&gt;
Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):&lt;br /&gt;
3B FC 13 00 00 81 31 FE 15 59 75 62 69 6B 65 79 4E 45 4F 72 33 E1&lt;br /&gt;
	YubiKey NEO (PKI)&lt;br /&gt;
	http://www.yubico.com/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FIDO U2F test (registration)==&lt;br /&gt;
&amp;lt;br&amp;gt;Go to https://demo.yubico.com/start/u2f/neonano&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Register:&lt;br /&gt;
&amp;lt;br&amp;gt;Create doegox / demodemo&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Login Data&lt;br /&gt;
username: doegox&lt;br /&gt;
password: demodemo&lt;br /&gt;
&lt;br /&gt;
Enroll Data&lt;br /&gt;
origin: https://demo.yubico.com&lt;br /&gt;
version: U2F_V2&lt;br /&gt;
challenge: SMkZgqF8LYgnhZTQaYcVTZc3DzO8RXY8TfLhveiIQz4&lt;br /&gt;
appId: https://demo.yubico.com&lt;br /&gt;
&lt;br /&gt;
Response Data&lt;br /&gt;
clientData: {&amp;quot;typ&amp;quot;:&amp;quot;navigator.id.finishEnrollment&amp;quot;,&amp;quot;challenge&amp;quot;:&amp;quot;SMkZgqF8LYgnhZTQaYcVTZc3DzO8RXY8TfLhveiIQz4&amp;quot;,&amp;quot;origin&amp;quot;:&amp;quot;https://demo.yubico.com&amp;quot;,&amp;quot;cid_pubkey&amp;quot;:&amp;quot;&amp;quot;}&lt;br /&gt;
registrationData: 0504ceb7c2675e1370b64ec95fabd98c1f68f1dddf706ffc20d56367ae3274717a6ea95259ece26ca7d4c38db3b81c2a7a9b628cdaa6bcc2487d1a04f83e7178a5144067fdcb62dfceb6ebba4e3caf480dcc5f179f8f6f6499e97ba39e079faaea892d6351b7fc2da6c1e5c2511e2c8a1c490e87d20c1bd17613013db45197be3189f93082021c30820106a00302010202047258c2ea300b06092a864886f70d01010b302e312c302a0603550403132359756269636f2055324620526f6f742043412053657269616c203435373230303633313020170d3134303830313030303030305a180f32303530303930343030303030305a302b3129302706035504030c2059756269636f205532462045452053657269616c2031343830333332313537383059301306072a8648ce3d020106082a8648ce3d03010703420004a2b039932254319d41fa4854d57ca18deb69cc9b3e4d81ae399f323e81164399ef2a9514673d157cecbfb5f0bcc7890853ee55cf3f1a2066f4d5139b938b310ba3123010300e060a2b0601040182c40a01020400300b06092a864886f70d01010b0382010101bccc1af90b7b957818d555a433716a6016acedcb3132c3410f366164106c23d92ab06c5d1c2cb6929ad42148aa2a3af3ae53893a6aa140cae9326593153d92aa00fd15874b0232944cce90ef1198cedefea087967c6c80e6b50009e41da79c82f256973b0c0eed6a3ddd52b67334c0fcbfe6d88ca753b1927f43342cb6c7b020f92814e21146daad6b48b09041625ff730475d4817e51219c407294068317eb924ff6763a0f34375c7a65383ddb1d4387b028b632a05953ed5f28ead026934fd30f1c050a5293f86c5539bb522196fc51abc6b20a5dfa467c218808a0f108c7ee58a22c86ed078cfd29121a30017d4bb35a627b64a82b7f9512162d90e1512ea3045022100d2648a850920595a0285709ce12f9975d01cc8005d2bddc568855f8aed8926fe02206c15949affb6bc15fb32f3b7f1064202e07ee10008607a6f2e16ad45f611f93b&lt;br /&gt;
&lt;br /&gt;
Attestation Certificate&lt;br /&gt;
Certificate:&lt;br /&gt;
    Data:&lt;br /&gt;
        Version: 3 (0x2)&lt;br /&gt;
        Serial Number: 1918419690 (0x7258c2ea)&lt;br /&gt;
    Signature Algorithm: sha256WithRSAEncryption&lt;br /&gt;
        Issuer: CN=Yubico U2F Root CA Serial 457200631&lt;br /&gt;
        Validity&lt;br /&gt;
            Not Before: Aug  1 00:00:00 2014 GMT&lt;br /&gt;
            Not After : Sep  4 00:00:00 2050 GMT&lt;br /&gt;
        Subject: CN=Yubico U2F EE Serial 14803321578&lt;br /&gt;
        Subject Public Key Info:&lt;br /&gt;
            Public Key Algorithm: id-ecPublicKey&lt;br /&gt;
                Public-Key: (256 bit)&lt;br /&gt;
                pub: &lt;br /&gt;
                    04:a2:b0:39:93:22:54:31:9d:41:fa:48:54:d5:7c:&lt;br /&gt;
                    a1:8d:eb:69:cc:9b:3e:4d:81:ae:39:9f:32:3e:81:&lt;br /&gt;
                    16:43:99:ef:2a:95:14:67:3d:15:7c:ec:bf:b5:f0:&lt;br /&gt;
                    bc:c7:89:08:53:ee:55:cf:3f:1a:20:66:f4:d5:13:&lt;br /&gt;
                    9b:93:8b:31:0b&lt;br /&gt;
                ASN1 OID: prime256v1&lt;br /&gt;
        X509v3 extensions:&lt;br /&gt;
            1.3.6.1.4.1.41482.1.2: &lt;br /&gt;
               &lt;br /&gt;
    Signature Algorithm: sha256WithRSAEncryption&lt;br /&gt;
         bc:cc:1a:f9:0b:7b:95:78:18:d5:55:a4:33:71:6a:60:16:ac:&lt;br /&gt;
         ed:cb:31:32:c3:41:0f:36:61:64:10:6c:23:d9:2a:b0:6c:5d:&lt;br /&gt;
         1c:2c:b6:92:9a:d4:21:48:aa:2a:3a:f3:ae:53:89:3a:6a:a1:&lt;br /&gt;
         40:ca:e9:32:65:93:15:3d:92:aa:00:fd:15:87:4b:02:32:94:&lt;br /&gt;
         4c:ce:90:ef:11:98:ce:de:fe:a0:87:96:7c:6c:80:e6:b5:00:&lt;br /&gt;
         09:e4:1d:a7:9c:82:f2:56:97:3b:0c:0e:ed:6a:3d:dd:52:b6:&lt;br /&gt;
         73:34:c0:fc:bf:e6:d8:8c:a7:53:b1:92:7f:43:34:2c:b6:c7:&lt;br /&gt;
         b0:20:f9:28:14:e2:11:46:da:ad:6b:48:b0:90:41:62:5f:f7:&lt;br /&gt;
         30:47:5d:48:17:e5:12:19:c4:07:29:40:68:31:7e:b9:24:ff:&lt;br /&gt;
         67:63:a0:f3:43:75:c7:a6:53:83:dd:b1:d4:38:7b:02:8b:63:&lt;br /&gt;
         2a:05:95:3e:d5:f2:8e:ad:02:69:34:fd:30:f1:c0:50:a5:29:&lt;br /&gt;
         3f:86:c5:53:9b:b5:22:19:6f:c5:1a:bc:6b:20:a5:df:a4:67:&lt;br /&gt;
         c2:18:80:8a:0f:10:8c:7e:e5:8a:22:c8:6e:d0:78:cf:d2:91:&lt;br /&gt;
         21:a3:00:17:d4:bb:35:a6:27:b6:4a:82:b7:f9:51:21:62:d9:&lt;br /&gt;
         0e:15:12:ea&lt;br /&gt;
-----BEGIN CERTIFICATE-----&lt;br /&gt;
MIICHDCCAQagAwIBAgIEcljC6jALBgkqhkiG9w0BAQswLjEsMCoGA1UEAxMjWXVi&lt;br /&gt;
aWNvIFUyRiBSb290IENBIFNlcmlhbCA0NTcyMDA2MzEwIBcNMTQwODAxMDAwMDAw&lt;br /&gt;
WhgPMjA1MDA5MDQwMDAwMDBaMCsxKTAnBgNVBAMMIFl1YmljbyBVMkYgRUUgU2Vy&lt;br /&gt;
aWFsIDE0ODAzMzIxNTc4MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEorA5kyJU&lt;br /&gt;
MZ1B+khU1XyhjetpzJs+TYGuOZ8yPoEWQ5nvKpUUZz0VfOy/tfC8x4kIU+5Vzz8a&lt;br /&gt;
IGb01RObk4sxC6MSMBAwDgYKKwYBBAGCxAoBAgQAMAsGCSqGSIb3DQEBCwOCAQEA&lt;br /&gt;
vMwa+Qt7lXgY1VWkM3FqYBas7csxMsNBDzZhZBBsI9kqsGxdHCy2kprUIUiqKjrz&lt;br /&gt;
rlOJOmqhQMrpMmWTFT2SqgD9FYdLAjKUTM6Q7xGYzt7+oIeWfGyA5rUACeQdp5yC&lt;br /&gt;
8laXOwwO7Wo93VK2czTA/L/m2IynU7GSf0M0LLbHsCD5KBTiEUbarWtIsJBBYl/3&lt;br /&gt;
MEddSBflEhnEBylAaDF+uST/Z2Og80N1x6ZTg92x1Dh7AotjKgWVPtXyjq0CaTT9&lt;br /&gt;
MPHAUKUpP4bFU5u1IhlvxRq8ayCl36RnwhiAig8QjH7liiLIbtB4z9KRIaMAF9S7&lt;br /&gt;
NaYntkqCt/lRIWLZDhUS6g==&lt;br /&gt;
-----END CERTIFICATE-----&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==FIDO U2F test (login)==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Login Data&lt;br /&gt;
username: doegox&lt;br /&gt;
password: demodemo&lt;br /&gt;
&lt;br /&gt;
Challenge Data&lt;br /&gt;
version: U2F_V2&lt;br /&gt;
challenge: JRrh04hHKIxAuLk7SXSRQPwqK4994NQR0EfWIzY4wgc&lt;br /&gt;
keyHandle: Z_3LYt_Otuu6TjyvSA3MXxefj29kmel7o54Hn6rqiS1jUbf8LabB5cJRHiyKHEkOh9IMG9F2EwE9tFGXvjGJ-Q&lt;br /&gt;
&lt;br /&gt;
Response Data&lt;br /&gt;
clientData: {&amp;quot;typ&amp;quot;:&amp;quot;navigator.id.getAssertion&amp;quot;,&amp;quot;challenge&amp;quot;:&amp;quot;JRrh04hHKIxAuLk7SXSRQPwqK4994NQR0EfWIzY4wgc&amp;quot;,&amp;quot;origin&amp;quot;:&amp;quot;https://demo.yubico.com&amp;quot;,&amp;quot;cid_pubkey&amp;quot;:&amp;quot;&amp;quot;}&lt;br /&gt;
signatureData: AQAAAAEwRAIgLrqKb81ePH9jcIGFDjyEWwc5p4jJV80IpxGY8lw4lfMCIFR36WIIpcXWYBpq6W9VVUud9pE19k09do8KKEpm1kij&lt;br /&gt;
&lt;br /&gt;
Authentication Parameters&lt;br /&gt;
touch: true&lt;br /&gt;
counter: 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
 yubikey-personalization-gui&lt;br /&gt;
or&lt;br /&gt;
 man ykpersonalize&lt;br /&gt;
==Google==&lt;br /&gt;
* Go to https://security.google.com/settings/security/securitykey/add&lt;br /&gt;
* Press Register then touch the key&lt;br /&gt;
==OpenPGP==&lt;br /&gt;
For info, applet source [https://github.com/Yubico/ykneo-openpgp here]&lt;br /&gt;
&amp;lt;br&amp;gt;Make user CCID mode is activated&lt;br /&gt;
&lt;br /&gt;
See [[GnuPG#Yubikey]]&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
* https://www.yubico.com/2012/12/yubikey-neo-openpgp/&lt;br /&gt;
* https://www.2realities.com/blog/2014/11/04/yubikey-slash-openpgp-smartcards-for-newbies/&lt;br /&gt;
* https://wiki.gnome.org/Projects/GnomeKeyring&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
* [https://www.yubico.com/start/ First time use]&lt;br /&gt;
** [https://demo.yubico.com/start/otp/neonano First time use Neo Nano]&lt;br /&gt;
* [https://www.yubico.com/applications/ Yubico applications]&lt;br /&gt;
* [https://demo.yubico.com/php-yubico/Modhex_Calculator.php Modhex calculator]&lt;br /&gt;
* [https://developers.yubico.com/ OpenSource]&lt;br /&gt;
* http://uname.pingveno.net/blog/index.php/post/2013/08/06/Configure-2-factor-Yubikey-authentication-for-Debian-%3A-the-easiest-way&lt;br /&gt;
&lt;br /&gt;
==Other Debian packages==&lt;br /&gt;
 libauth-yubikey-decrypter-perl - yubikey token output decryptor&lt;br /&gt;
 libauth-yubikey-webclient-perl - Perl module to authenticate Yubikey against the Yubico Web API&lt;br /&gt;
&lt;br /&gt;
 python-pyhsm - Python code for talking to a Yubico YubiHSM hardware&lt;br /&gt;
 yhsm-daemon - YubiHSM server daemon&lt;br /&gt;
 yhsm-tools - Common files for YubiHSM applications&lt;br /&gt;
 yhsm-validation-server - Validation server using YubiHSM&lt;br /&gt;
 yhsm-yubikey-ksm - Yubikey Key Storage Module using YubiHSM&lt;br /&gt;
&lt;br /&gt;
 python-yubico - Python code for talking to Yubico YubiKeys&lt;br /&gt;
 python-yubico-tools - Tools for Yubico YubiKeys&lt;br /&gt;
 libykclient3 - Yubikey client library runtime&lt;br /&gt;
 libpam-yubico - two-factor password and YubiKey OTP PAM module&lt;br /&gt;
&lt;br /&gt;
 yubikey-ksm - Key Storage Module for YubiKey One-Time Password (OTP) tokens&lt;br /&gt;
 yubikey-server-c - Yubikey validation server&lt;br /&gt;
 yubikey-val - One-Time Password (OTP) validation server for YubiKey tokens&lt;br /&gt;
 yubiserver - Yubikey OTP and HOTP/OATH Validation Server&lt;br /&gt;
 libapache2-mod-authn-yubikey - Yubikey authentication provider for Apache&lt;br /&gt;
&lt;br /&gt;
 libu2f-server0 - Universal 2nd Factor (U2F) server communication C Library&lt;br /&gt;
 u2f-server - Command line tool to do Universal 2nd Factor (U2F) operations&lt;br /&gt;
=YubiKey 4C Nano=&lt;br /&gt;
Beware from this version on, Yubico replaced all open source components by closed-source ones: https://github.com/Yubico/ykneo-openpgp/issues/2#issuecomment-218446368&lt;br /&gt;
&lt;br /&gt;
See also https://wiki.debian.org/Smartcards/YubiKey4&lt;br /&gt;
==First time plugged==&lt;br /&gt;
 new full-speed USB device number 2 using xhci_hcd&lt;br /&gt;
 New USB device found, idVendor=1050, idProduct=0407&lt;br /&gt;
 New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
 Product: Yubikey 4 OTP+U2F+CCID&lt;br /&gt;
 Manufacturer: Yubico&lt;br /&gt;
 input: Yubico Yubikey 4 OTP+U2F+CCID as /devices/pci0000:00/0000:00:1d.6/0000:06:00.0/0000:07:02.0/0000:3e:00.0/usb3/3-1/3-1:1.0/0003:1050:0407.0004/input/input26&lt;br /&gt;
 hid-generic 0003:1050:0407.0004: input,hidraw2: USB HID v1.10 Keyboard [Yubico Yubikey 4 OTP+U2F+CCID] on usb-0000:3e:00.0-1/input0&lt;br /&gt;
 hid-generic 0003:1050:0407.0005: hiddev2,hidraw3: USB HID v1.10 Device [Yubico Yubikey 4 OTP+U2F+CCID] on usb-0000:3e:00.0-1/input1&lt;br /&gt;
&lt;br /&gt;
==OTP test==&lt;br /&gt;
 Parameters&lt;br /&gt;
 tab=one-factor&lt;br /&gt;
 mode=one-factor&lt;br /&gt;
 key=cccccchkrlrljuhribikcfginlbvhunchknuelfunnlu&lt;br /&gt;
 identity=cccccchkrlrl&lt;br /&gt;
 serial=6933194&lt;br /&gt;
 &lt;br /&gt;
 Authentication Output&lt;br /&gt;
 h=Z1jquAXFhhPvZJL2AvbAnhFqVOw=&lt;br /&gt;
 t=2017-12-07T13:52:56Z0602&lt;br /&gt;
 otp=cccccchkrlrljuhribikcfginlbvhunchknuelfunnlu&lt;br /&gt;
 nonce=9cdcd3a9cb255714b6bfb7250542010f&lt;br /&gt;
 sl=25&lt;br /&gt;
 status=OK&lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
pcsc_scan results:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Reader 2: Yubico Yubikey 4 OTP+U2F+CCID 02 00&lt;br /&gt;
  Card state: Card inserted, &lt;br /&gt;
  ATR: 3B F8 13 00 00 81 31 FE 15 59 75 62 69 6B 65 79 34 D4&lt;br /&gt;
&lt;br /&gt;
ATR: 3B F8 13 00 00 81 31 FE 15 59 75 62 69 6B 65 79 34 D4&lt;br /&gt;
+ TS = 3B --&amp;gt; Direct Convention&lt;br /&gt;
+ T0 = F8, Y(1): 1111, K: 8 (historical bytes)&lt;br /&gt;
  TA(1) = 13 --&amp;gt; Fi=372, Di=4, 93 cycles/ETU&lt;br /&gt;
    43010 bits/s at 4 MHz, fMax for Fi = 5 MHz =&amp;gt; 53763 bits/s&lt;br /&gt;
  TB(1) = 00 --&amp;gt; VPP is not electrically connected&lt;br /&gt;
  TC(1) = 00 --&amp;gt; Extra guard time: 0&lt;br /&gt;
  TD(1) = 81 --&amp;gt; Y(i+1) = 1000, Protocol T = 1 &lt;br /&gt;
-----&lt;br /&gt;
  TD(2) = 31 --&amp;gt; Y(i+1) = 0011, Protocol T = 1 &lt;br /&gt;
-----&lt;br /&gt;
  TA(3) = FE --&amp;gt; IFSC: 254&lt;br /&gt;
  TB(3) = 15 --&amp;gt; Block Waiting Integer: 1 - Character Waiting Integer: 5&lt;br /&gt;
+ Historical bytes: 59 75 62 69 6B 65 79 34&lt;br /&gt;
  Category indicator byte: 59 (proprietary format)&lt;br /&gt;
+ TCK = D4 (correct checksum)&lt;br /&gt;
&lt;br /&gt;
Possibly identified card (using /home/phil/.cache/smartcard_list.txt):&lt;br /&gt;
3B F8 13 00 00 81 31 FE 15 59 75 62 69 6B 65 79 34 D4&lt;br /&gt;
	Yubico Yubikey 4 OTP+CCID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install yubikey-personalization yubikey-personalization-gui yubikey-neo-manager yubico-piv-tool&lt;br /&gt;
&lt;br /&gt;
$ ykinfo -a&lt;br /&gt;
serial: 6933194&lt;br /&gt;
serial_hex: 69caca&lt;br /&gt;
serial_modhex: hkrlrl&lt;br /&gt;
version: 4.3.7&lt;br /&gt;
touch_level: 1029&lt;br /&gt;
programming_sequence: 1&lt;br /&gt;
slot1_status: 1&lt;br /&gt;
slot2_status: 0&lt;br /&gt;
vendor_id: 1050&lt;br /&gt;
product_id: 407&lt;br /&gt;
&lt;br /&gt;
$ ykinfo -c&lt;br /&gt;
capabilities: 0c0101ff02040069caca03013f&lt;br /&gt;
&lt;br /&gt;
$ yubikey-personalization-gui &amp;amp;&lt;br /&gt;
&lt;br /&gt;
$ neoman &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connection mode:&lt;br /&gt;
* OTP+U2F+CCID&lt;br /&gt;
&lt;br /&gt;
Now we see available applets&lt;br /&gt;
* YubiKey OTP&lt;br /&gt;
* YubiOATH&lt;br /&gt;
* Yubico U2F&lt;br /&gt;
* OpenPGP&lt;br /&gt;
* Yubico PIV&lt;br /&gt;
&lt;br /&gt;
==Disabling HID==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
$ ykpersonalize -m5&lt;br /&gt;
Firmware version 4.3.7 Touch level 1029 Program sequence 1&lt;br /&gt;
The USB mode will be set to: 0x5&lt;br /&gt;
Commit? (y/n) [n]: y&lt;br /&gt;
WARNING: Changing mode will require you to use another tool (ykneomgr or u2f-host) to switch back if OTP mode is disabled, really commit? (y/n) [n]: y&lt;br /&gt;
&lt;br /&gt;
# Re-plug&lt;br /&gt;
&lt;br /&gt;
$ ykpersonalize &lt;br /&gt;
Yubikey core error: no yubikey present&lt;br /&gt;
&lt;br /&gt;
$ ykneomgr -m&lt;br /&gt;
05&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==A new key==&lt;br /&gt;
&lt;br /&gt;
This is a weird usage :)&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;`/~&amp;quot; key of my keyboard got broken (along with F1 and F2 but I can live without them).&lt;br /&gt;
&lt;br /&gt;
So I&#039;m using the static password feature to get back that dead deadkey...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
# Re-enable HID (and disable U2F):&lt;br /&gt;
$ ykneomgr -M 2&lt;br /&gt;
&lt;br /&gt;
# Configure with the GUI&lt;br /&gt;
$ yubikey-personalization-gui&lt;br /&gt;
## Settings / &amp;quot;Enter&amp;quot; (to disable automatic carriage-return, it must be unselected)&lt;br /&gt;
## Settings / &amp;quot;Use fast triggering&amp;quot; (as I don&#039;t use slot2, it becomes more responsive and skip the 0.3s delay)&lt;br /&gt;
## Static Password / Scan code / Configuration Slot 1 / Keyboard: US layout / Password: &amp;quot;`&amp;quot; (scancode=35) / Write configuration&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the key works as expected (it&#039;s a deadkey in the US intl mode) and works with modifiers such as &amp;quot;Shift&amp;quot; \o/&lt;br /&gt;
&lt;br /&gt;
==Thunderbird/Gpg Exclusive Mode==&lt;br /&gt;
&lt;br /&gt;
Thunderbird (actually the command-line gpg) requires connecting to the YubiKey in Exclusive Mode but if e.g. the Brave browser was started before, it has already opened the connection in Shared Mode.&lt;br /&gt;
One can add to the script to launch the browser:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
( sleep 3; pcsc_scan -n -c |grep -i -A3 &amp;quot;YubiKey&amp;quot;|grep -i -q &amp;quot;Shared Mode&amp;quot; &amp;amp;&amp;amp; sudo service pcscd restart ) &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Yubikey&amp;diff=10547</id>
		<title>Yubikey</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Yubikey&amp;diff=10547"/>
		<updated>2023-04-25T08:10:56Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Yubikey Neo Nano=&lt;br /&gt;
==First time plugged==&lt;br /&gt;
 new full-speed USB device number 31 using xhci_hcd&lt;br /&gt;
 New USB device found, idVendor=1050, idProduct=0114&lt;br /&gt;
 New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
 Product: Yubikey NEO OTP+U2F&lt;br /&gt;
 Manufacturer: Yubico&lt;br /&gt;
==OTP test==&lt;br /&gt;
Can be performed without any install as OTP is using the keyboard emulation mode.&lt;br /&gt;
&amp;lt;br&amp;gt;Visit https://demo.yubico.com/&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;As an HID device (keyboard), the YubiKey actually emits &amp;quot;scan codes&amp;quot; rather than actual characters. Different keyboard layouts have a different mapping between scan codes and the characters they represent.&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;Therefore, Yubico has designed a character set which is invariant between keyboard layouts which has 16 characters and we call the Modhex set – Modified Hexadecimal. Therefore, each character has 4 bits of entropy.&#039;&#039;&lt;br /&gt;
 Parameters&lt;br /&gt;
 device=neonano&lt;br /&gt;
 key=ccccccdugjdbtnglkbibhjkeifunghgngibgfjcunlfl&lt;br /&gt;
 identity=ccccccdugjdb&lt;br /&gt;
 serial=3037217&lt;br /&gt;
 &lt;br /&gt;
 Authentication Output&lt;br /&gt;
 h=sznj5f+KKweKLObaoMo44IJMGOM=&lt;br /&gt;
 t=2015-03-12T19:37:09Z0788&lt;br /&gt;
 otp=ccccccdugjdbtnglkbibhjkeifunghgngibgfjcunlfl&lt;br /&gt;
 nonce=a830bdee7aa3735626ea90bcd5b2428c&lt;br /&gt;
 sl=25&lt;br /&gt;
 status=OK&lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
For CCID &amp;amp; U2F, one needs some extra steps.&lt;br /&gt;
&amp;lt;br&amp;gt;Note that contrary to what is said in Yubico docs, mine had already the mode U2F activated.&lt;br /&gt;
&lt;br /&gt;
To use U2F with Chrome, install [https://chrome.google.com/webstore/detail/fido-u2f-universal-2nd-fa/pfboblefjcgdjicmnffhdgionmgcdmne FIDO U2F plugin]&lt;br /&gt;
&lt;br /&gt;
We need the yubikey neo manager, cf [https://www.yubico.com/wp-content/uploads/2014/11/NEO-Manager-Quick-Start-Guide.pdf NEO-Manager-Quick-Start-Guide.pdf]&lt;br /&gt;
Install [https://developers.yubico.com/yubikey-neo-manager/Releases/ Yubikey neo manager], here [https://developers.yubico.com/yubikey-neo-manager/Releases/yubikey-neo-manager-1.1.0.tar.gz yubikey-neo-manager-1.1.0.tar.gz]&lt;br /&gt;
&amp;lt;br&amp;gt;We could use &amp;quot;python setup.py install --user&amp;quot; but it would also install locally pySide which we install properly via apt-get&lt;br /&gt;
 sudo apt-get install ykneomgr python-pyside yubikey-personalization yubikey-personalization-gui u2f-host&lt;br /&gt;
 tar yubikey-neo-manager-1.1.0.tar.gz&lt;br /&gt;
 cd yubikey-neo-manager-1.1.0&lt;br /&gt;
 cp scripts/neoman neoman.py&lt;br /&gt;
 ./neoman.py&lt;br /&gt;
&lt;br /&gt;
 Serial: 3037217&lt;br /&gt;
 FW version: 3.3.0&lt;br /&gt;
 U2F/FIDO: supported&lt;br /&gt;
 Change connection mode [OTP+U2F]&lt;br /&gt;
We can change its name for sth more convivial&lt;br /&gt;
&amp;lt;br&amp;gt;There are three supports that can be activated:&lt;br /&gt;
* &#039;&#039;The OTP mode refers to the YubiKey functions the NEO shares with the standard YubiKey, including two Configuration Slots that can be programmed with any two of the following: Yubico OTP (programmed by Yubico in Slot 1, by default), OATH-HOTP, Challenge-Response and Static Password.&#039;&#039;&lt;br /&gt;
* &#039;&#039;The CCID Mode refers to the smart card elements on the YubiKey NEO and NEO-n, and includes the NEO applets such as OpenPGP, PIV and YubiOATH.&#039;&#039;&lt;br /&gt;
* &#039;&#039;The U2F Mode refers to the Universal 2nd Factor (U2F) functionality of the YubiKey NEO and NEO-n.&#039;&#039;&lt;br /&gt;
Activate all supports:&lt;br /&gt;
* Change connection mode =&amp;gt; +OTP +CCID +U2F&lt;br /&gt;
* unplug/wait/replug&lt;br /&gt;
Now we see available applets&lt;br /&gt;
* YubiKey OTP&lt;br /&gt;
* YubiOATH&lt;br /&gt;
* Yubico U2F&lt;br /&gt;
* OpenPGP&lt;br /&gt;
* Yubico PIV&lt;br /&gt;
&lt;br /&gt;
pcsc_scan results:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Reader 0: Yubico Yubikey NEO OTP+U2F+CCID 00 00&lt;br /&gt;
  Card state: Card inserted, &lt;br /&gt;
  ATR: 3B FC 13 00 00 81 31 FE 15 59 75 62 69 6B 65 79 4E 45 4F 72 33 E1&lt;br /&gt;
&lt;br /&gt;
ATR: 3B FC 13 00 00 81 31 FE 15 59 75 62 69 6B 65 79 4E 45 4F 72 33 E1&lt;br /&gt;
+ TS = 3B --&amp;gt; Direct Convention&lt;br /&gt;
+ T0 = FC, Y(1): 1111, K: 12 (historical bytes)&lt;br /&gt;
  TA(1) = 13 --&amp;gt; Fi=372, Di=4, 93 cycles/ETU&lt;br /&gt;
    43010 bits/s at 4 MHz, fMax for Fi = 5 MHz =&amp;gt; 53763 bits/s&lt;br /&gt;
  TB(1) = 00 --&amp;gt; VPP is not electrically connected&lt;br /&gt;
  TC(1) = 00 --&amp;gt; Extra guard time: 0&lt;br /&gt;
  TD(1) = 81 --&amp;gt; Y(i+1) = 1000, Protocol T = 1 &lt;br /&gt;
-----&lt;br /&gt;
  TD(2) = 31 --&amp;gt; Y(i+1) = 0011, Protocol T = 1 &lt;br /&gt;
-----&lt;br /&gt;
  TA(3) = FE --&amp;gt; IFSC: 254&lt;br /&gt;
  TB(3) = 15 --&amp;gt; Block Waiting Integer: 1 - Character Waiting Integer: 5&lt;br /&gt;
+ Historical bytes: 59 75 62 69 6B 65 79 4E 45 4F 72 33&lt;br /&gt;
  Category indicator byte: 59 (proprietary format)&lt;br /&gt;
+ TCK = E1 (correct checksum)&lt;br /&gt;
&lt;br /&gt;
Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):&lt;br /&gt;
3B FC 13 00 00 81 31 FE 15 59 75 62 69 6B 65 79 4E 45 4F 72 33 E1&lt;br /&gt;
	YubiKey NEO (PKI)&lt;br /&gt;
	http://www.yubico.com/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FIDO U2F test (registration)==&lt;br /&gt;
&amp;lt;br&amp;gt;Go to https://demo.yubico.com/start/u2f/neonano&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Register:&lt;br /&gt;
&amp;lt;br&amp;gt;Create doegox / demodemo&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Login Data&lt;br /&gt;
username: doegox&lt;br /&gt;
password: demodemo&lt;br /&gt;
&lt;br /&gt;
Enroll Data&lt;br /&gt;
origin: https://demo.yubico.com&lt;br /&gt;
version: U2F_V2&lt;br /&gt;
challenge: SMkZgqF8LYgnhZTQaYcVTZc3DzO8RXY8TfLhveiIQz4&lt;br /&gt;
appId: https://demo.yubico.com&lt;br /&gt;
&lt;br /&gt;
Response Data&lt;br /&gt;
clientData: {&amp;quot;typ&amp;quot;:&amp;quot;navigator.id.finishEnrollment&amp;quot;,&amp;quot;challenge&amp;quot;:&amp;quot;SMkZgqF8LYgnhZTQaYcVTZc3DzO8RXY8TfLhveiIQz4&amp;quot;,&amp;quot;origin&amp;quot;:&amp;quot;https://demo.yubico.com&amp;quot;,&amp;quot;cid_pubkey&amp;quot;:&amp;quot;&amp;quot;}&lt;br /&gt;
registrationData: 0504ceb7c2675e1370b64ec95fabd98c1f68f1dddf706ffc20d56367ae3274717a6ea95259ece26ca7d4c38db3b81c2a7a9b628cdaa6bcc2487d1a04f83e7178a5144067fdcb62dfceb6ebba4e3caf480dcc5f179f8f6f6499e97ba39e079faaea892d6351b7fc2da6c1e5c2511e2c8a1c490e87d20c1bd17613013db45197be3189f93082021c30820106a00302010202047258c2ea300b06092a864886f70d01010b302e312c302a0603550403132359756269636f2055324620526f6f742043412053657269616c203435373230303633313020170d3134303830313030303030305a180f32303530303930343030303030305a302b3129302706035504030c2059756269636f205532462045452053657269616c2031343830333332313537383059301306072a8648ce3d020106082a8648ce3d03010703420004a2b039932254319d41fa4854d57ca18deb69cc9b3e4d81ae399f323e81164399ef2a9514673d157cecbfb5f0bcc7890853ee55cf3f1a2066f4d5139b938b310ba3123010300e060a2b0601040182c40a01020400300b06092a864886f70d01010b0382010101bccc1af90b7b957818d555a433716a6016acedcb3132c3410f366164106c23d92ab06c5d1c2cb6929ad42148aa2a3af3ae53893a6aa140cae9326593153d92aa00fd15874b0232944cce90ef1198cedefea087967c6c80e6b50009e41da79c82f256973b0c0eed6a3ddd52b67334c0fcbfe6d88ca753b1927f43342cb6c7b020f92814e21146daad6b48b09041625ff730475d4817e51219c407294068317eb924ff6763a0f34375c7a65383ddb1d4387b028b632a05953ed5f28ead026934fd30f1c050a5293f86c5539bb522196fc51abc6b20a5dfa467c218808a0f108c7ee58a22c86ed078cfd29121a30017d4bb35a627b64a82b7f9512162d90e1512ea3045022100d2648a850920595a0285709ce12f9975d01cc8005d2bddc568855f8aed8926fe02206c15949affb6bc15fb32f3b7f1064202e07ee10008607a6f2e16ad45f611f93b&lt;br /&gt;
&lt;br /&gt;
Attestation Certificate&lt;br /&gt;
Certificate:&lt;br /&gt;
    Data:&lt;br /&gt;
        Version: 3 (0x2)&lt;br /&gt;
        Serial Number: 1918419690 (0x7258c2ea)&lt;br /&gt;
    Signature Algorithm: sha256WithRSAEncryption&lt;br /&gt;
        Issuer: CN=Yubico U2F Root CA Serial 457200631&lt;br /&gt;
        Validity&lt;br /&gt;
            Not Before: Aug  1 00:00:00 2014 GMT&lt;br /&gt;
            Not After : Sep  4 00:00:00 2050 GMT&lt;br /&gt;
        Subject: CN=Yubico U2F EE Serial 14803321578&lt;br /&gt;
        Subject Public Key Info:&lt;br /&gt;
            Public Key Algorithm: id-ecPublicKey&lt;br /&gt;
                Public-Key: (256 bit)&lt;br /&gt;
                pub: &lt;br /&gt;
                    04:a2:b0:39:93:22:54:31:9d:41:fa:48:54:d5:7c:&lt;br /&gt;
                    a1:8d:eb:69:cc:9b:3e:4d:81:ae:39:9f:32:3e:81:&lt;br /&gt;
                    16:43:99:ef:2a:95:14:67:3d:15:7c:ec:bf:b5:f0:&lt;br /&gt;
                    bc:c7:89:08:53:ee:55:cf:3f:1a:20:66:f4:d5:13:&lt;br /&gt;
                    9b:93:8b:31:0b&lt;br /&gt;
                ASN1 OID: prime256v1&lt;br /&gt;
        X509v3 extensions:&lt;br /&gt;
            1.3.6.1.4.1.41482.1.2: &lt;br /&gt;
               &lt;br /&gt;
    Signature Algorithm: sha256WithRSAEncryption&lt;br /&gt;
         bc:cc:1a:f9:0b:7b:95:78:18:d5:55:a4:33:71:6a:60:16:ac:&lt;br /&gt;
         ed:cb:31:32:c3:41:0f:36:61:64:10:6c:23:d9:2a:b0:6c:5d:&lt;br /&gt;
         1c:2c:b6:92:9a:d4:21:48:aa:2a:3a:f3:ae:53:89:3a:6a:a1:&lt;br /&gt;
         40:ca:e9:32:65:93:15:3d:92:aa:00:fd:15:87:4b:02:32:94:&lt;br /&gt;
         4c:ce:90:ef:11:98:ce:de:fe:a0:87:96:7c:6c:80:e6:b5:00:&lt;br /&gt;
         09:e4:1d:a7:9c:82:f2:56:97:3b:0c:0e:ed:6a:3d:dd:52:b6:&lt;br /&gt;
         73:34:c0:fc:bf:e6:d8:8c:a7:53:b1:92:7f:43:34:2c:b6:c7:&lt;br /&gt;
         b0:20:f9:28:14:e2:11:46:da:ad:6b:48:b0:90:41:62:5f:f7:&lt;br /&gt;
         30:47:5d:48:17:e5:12:19:c4:07:29:40:68:31:7e:b9:24:ff:&lt;br /&gt;
         67:63:a0:f3:43:75:c7:a6:53:83:dd:b1:d4:38:7b:02:8b:63:&lt;br /&gt;
         2a:05:95:3e:d5:f2:8e:ad:02:69:34:fd:30:f1:c0:50:a5:29:&lt;br /&gt;
         3f:86:c5:53:9b:b5:22:19:6f:c5:1a:bc:6b:20:a5:df:a4:67:&lt;br /&gt;
         c2:18:80:8a:0f:10:8c:7e:e5:8a:22:c8:6e:d0:78:cf:d2:91:&lt;br /&gt;
         21:a3:00:17:d4:bb:35:a6:27:b6:4a:82:b7:f9:51:21:62:d9:&lt;br /&gt;
         0e:15:12:ea&lt;br /&gt;
-----BEGIN CERTIFICATE-----&lt;br /&gt;
MIICHDCCAQagAwIBAgIEcljC6jALBgkqhkiG9w0BAQswLjEsMCoGA1UEAxMjWXVi&lt;br /&gt;
aWNvIFUyRiBSb290IENBIFNlcmlhbCA0NTcyMDA2MzEwIBcNMTQwODAxMDAwMDAw&lt;br /&gt;
WhgPMjA1MDA5MDQwMDAwMDBaMCsxKTAnBgNVBAMMIFl1YmljbyBVMkYgRUUgU2Vy&lt;br /&gt;
aWFsIDE0ODAzMzIxNTc4MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEorA5kyJU&lt;br /&gt;
MZ1B+khU1XyhjetpzJs+TYGuOZ8yPoEWQ5nvKpUUZz0VfOy/tfC8x4kIU+5Vzz8a&lt;br /&gt;
IGb01RObk4sxC6MSMBAwDgYKKwYBBAGCxAoBAgQAMAsGCSqGSIb3DQEBCwOCAQEA&lt;br /&gt;
vMwa+Qt7lXgY1VWkM3FqYBas7csxMsNBDzZhZBBsI9kqsGxdHCy2kprUIUiqKjrz&lt;br /&gt;
rlOJOmqhQMrpMmWTFT2SqgD9FYdLAjKUTM6Q7xGYzt7+oIeWfGyA5rUACeQdp5yC&lt;br /&gt;
8laXOwwO7Wo93VK2czTA/L/m2IynU7GSf0M0LLbHsCD5KBTiEUbarWtIsJBBYl/3&lt;br /&gt;
MEddSBflEhnEBylAaDF+uST/Z2Og80N1x6ZTg92x1Dh7AotjKgWVPtXyjq0CaTT9&lt;br /&gt;
MPHAUKUpP4bFU5u1IhlvxRq8ayCl36RnwhiAig8QjH7liiLIbtB4z9KRIaMAF9S7&lt;br /&gt;
NaYntkqCt/lRIWLZDhUS6g==&lt;br /&gt;
-----END CERTIFICATE-----&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==FIDO U2F test (login)==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Login Data&lt;br /&gt;
username: doegox&lt;br /&gt;
password: demodemo&lt;br /&gt;
&lt;br /&gt;
Challenge Data&lt;br /&gt;
version: U2F_V2&lt;br /&gt;
challenge: JRrh04hHKIxAuLk7SXSRQPwqK4994NQR0EfWIzY4wgc&lt;br /&gt;
keyHandle: Z_3LYt_Otuu6TjyvSA3MXxefj29kmel7o54Hn6rqiS1jUbf8LabB5cJRHiyKHEkOh9IMG9F2EwE9tFGXvjGJ-Q&lt;br /&gt;
&lt;br /&gt;
Response Data&lt;br /&gt;
clientData: {&amp;quot;typ&amp;quot;:&amp;quot;navigator.id.getAssertion&amp;quot;,&amp;quot;challenge&amp;quot;:&amp;quot;JRrh04hHKIxAuLk7SXSRQPwqK4994NQR0EfWIzY4wgc&amp;quot;,&amp;quot;origin&amp;quot;:&amp;quot;https://demo.yubico.com&amp;quot;,&amp;quot;cid_pubkey&amp;quot;:&amp;quot;&amp;quot;}&lt;br /&gt;
signatureData: AQAAAAEwRAIgLrqKb81ePH9jcIGFDjyEWwc5p4jJV80IpxGY8lw4lfMCIFR36WIIpcXWYBpq6W9VVUud9pE19k09do8KKEpm1kij&lt;br /&gt;
&lt;br /&gt;
Authentication Parameters&lt;br /&gt;
touch: true&lt;br /&gt;
counter: 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
 yubikey-personalization-gui&lt;br /&gt;
or&lt;br /&gt;
 man ykpersonalize&lt;br /&gt;
==Google==&lt;br /&gt;
* Go to https://security.google.com/settings/security/securitykey/add&lt;br /&gt;
* Press Register then touch the key&lt;br /&gt;
==OpenPGP==&lt;br /&gt;
For info, applet source [https://github.com/Yubico/ykneo-openpgp here]&lt;br /&gt;
&amp;lt;br&amp;gt;Make user CCID mode is activated&lt;br /&gt;
&lt;br /&gt;
See [[GnuPG#Yubikey]]&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
* https://www.yubico.com/2012/12/yubikey-neo-openpgp/&lt;br /&gt;
* https://www.2realities.com/blog/2014/11/04/yubikey-slash-openpgp-smartcards-for-newbies/&lt;br /&gt;
* https://wiki.gnome.org/Projects/GnomeKeyring&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
* [https://www.yubico.com/start/ First time use]&lt;br /&gt;
** [https://demo.yubico.com/start/otp/neonano First time use Neo Nano]&lt;br /&gt;
* [https://www.yubico.com/applications/ Yubico applications]&lt;br /&gt;
* [https://demo.yubico.com/php-yubico/Modhex_Calculator.php Modhex calculator]&lt;br /&gt;
* [https://developers.yubico.com/ OpenSource]&lt;br /&gt;
* http://uname.pingveno.net/blog/index.php/post/2013/08/06/Configure-2-factor-Yubikey-authentication-for-Debian-%3A-the-easiest-way&lt;br /&gt;
&lt;br /&gt;
==Other Debian packages==&lt;br /&gt;
 libauth-yubikey-decrypter-perl - yubikey token output decryptor&lt;br /&gt;
 libauth-yubikey-webclient-perl - Perl module to authenticate Yubikey against the Yubico Web API&lt;br /&gt;
&lt;br /&gt;
 python-pyhsm - Python code for talking to a Yubico YubiHSM hardware&lt;br /&gt;
 yhsm-daemon - YubiHSM server daemon&lt;br /&gt;
 yhsm-tools - Common files for YubiHSM applications&lt;br /&gt;
 yhsm-validation-server - Validation server using YubiHSM&lt;br /&gt;
 yhsm-yubikey-ksm - Yubikey Key Storage Module using YubiHSM&lt;br /&gt;
&lt;br /&gt;
 python-yubico - Python code for talking to Yubico YubiKeys&lt;br /&gt;
 python-yubico-tools - Tools for Yubico YubiKeys&lt;br /&gt;
 libykclient3 - Yubikey client library runtime&lt;br /&gt;
 libpam-yubico - two-factor password and YubiKey OTP PAM module&lt;br /&gt;
&lt;br /&gt;
 yubikey-ksm - Key Storage Module for YubiKey One-Time Password (OTP) tokens&lt;br /&gt;
 yubikey-server-c - Yubikey validation server&lt;br /&gt;
 yubikey-val - One-Time Password (OTP) validation server for YubiKey tokens&lt;br /&gt;
 yubiserver - Yubikey OTP and HOTP/OATH Validation Server&lt;br /&gt;
 libapache2-mod-authn-yubikey - Yubikey authentication provider for Apache&lt;br /&gt;
&lt;br /&gt;
 libu2f-server0 - Universal 2nd Factor (U2F) server communication C Library&lt;br /&gt;
 u2f-server - Command line tool to do Universal 2nd Factor (U2F) operations&lt;br /&gt;
=YubiKey 4C Nano=&lt;br /&gt;
Beware from this version on, Yubico replaced all open source components by closed-source ones: https://github.com/Yubico/ykneo-openpgp/issues/2#issuecomment-218446368&lt;br /&gt;
&lt;br /&gt;
See also https://wiki.debian.org/Smartcards/YubiKey4&lt;br /&gt;
==First time plugged==&lt;br /&gt;
 new full-speed USB device number 2 using xhci_hcd&lt;br /&gt;
 New USB device found, idVendor=1050, idProduct=0407&lt;br /&gt;
 New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
 Product: Yubikey 4 OTP+U2F+CCID&lt;br /&gt;
 Manufacturer: Yubico&lt;br /&gt;
 input: Yubico Yubikey 4 OTP+U2F+CCID as /devices/pci0000:00/0000:00:1d.6/0000:06:00.0/0000:07:02.0/0000:3e:00.0/usb3/3-1/3-1:1.0/0003:1050:0407.0004/input/input26&lt;br /&gt;
 hid-generic 0003:1050:0407.0004: input,hidraw2: USB HID v1.10 Keyboard [Yubico Yubikey 4 OTP+U2F+CCID] on usb-0000:3e:00.0-1/input0&lt;br /&gt;
 hid-generic 0003:1050:0407.0005: hiddev2,hidraw3: USB HID v1.10 Device [Yubico Yubikey 4 OTP+U2F+CCID] on usb-0000:3e:00.0-1/input1&lt;br /&gt;
&lt;br /&gt;
==OTP test==&lt;br /&gt;
 Parameters&lt;br /&gt;
 tab=one-factor&lt;br /&gt;
 mode=one-factor&lt;br /&gt;
 key=cccccchkrlrljuhribikcfginlbvhunchknuelfunnlu&lt;br /&gt;
 identity=cccccchkrlrl&lt;br /&gt;
 serial=6933194&lt;br /&gt;
 &lt;br /&gt;
 Authentication Output&lt;br /&gt;
 h=Z1jquAXFhhPvZJL2AvbAnhFqVOw=&lt;br /&gt;
 t=2017-12-07T13:52:56Z0602&lt;br /&gt;
 otp=cccccchkrlrljuhribikcfginlbvhunchknuelfunnlu&lt;br /&gt;
 nonce=9cdcd3a9cb255714b6bfb7250542010f&lt;br /&gt;
 sl=25&lt;br /&gt;
 status=OK&lt;br /&gt;
&lt;br /&gt;
==Install==&lt;br /&gt;
pcsc_scan results:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Reader 2: Yubico Yubikey 4 OTP+U2F+CCID 02 00&lt;br /&gt;
  Card state: Card inserted, &lt;br /&gt;
  ATR: 3B F8 13 00 00 81 31 FE 15 59 75 62 69 6B 65 79 34 D4&lt;br /&gt;
&lt;br /&gt;
ATR: 3B F8 13 00 00 81 31 FE 15 59 75 62 69 6B 65 79 34 D4&lt;br /&gt;
+ TS = 3B --&amp;gt; Direct Convention&lt;br /&gt;
+ T0 = F8, Y(1): 1111, K: 8 (historical bytes)&lt;br /&gt;
  TA(1) = 13 --&amp;gt; Fi=372, Di=4, 93 cycles/ETU&lt;br /&gt;
    43010 bits/s at 4 MHz, fMax for Fi = 5 MHz =&amp;gt; 53763 bits/s&lt;br /&gt;
  TB(1) = 00 --&amp;gt; VPP is not electrically connected&lt;br /&gt;
  TC(1) = 00 --&amp;gt; Extra guard time: 0&lt;br /&gt;
  TD(1) = 81 --&amp;gt; Y(i+1) = 1000, Protocol T = 1 &lt;br /&gt;
-----&lt;br /&gt;
  TD(2) = 31 --&amp;gt; Y(i+1) = 0011, Protocol T = 1 &lt;br /&gt;
-----&lt;br /&gt;
  TA(3) = FE --&amp;gt; IFSC: 254&lt;br /&gt;
  TB(3) = 15 --&amp;gt; Block Waiting Integer: 1 - Character Waiting Integer: 5&lt;br /&gt;
+ Historical bytes: 59 75 62 69 6B 65 79 34&lt;br /&gt;
  Category indicator byte: 59 (proprietary format)&lt;br /&gt;
+ TCK = D4 (correct checksum)&lt;br /&gt;
&lt;br /&gt;
Possibly identified card (using /home/phil/.cache/smartcard_list.txt):&lt;br /&gt;
3B F8 13 00 00 81 31 FE 15 59 75 62 69 6B 65 79 34 D4&lt;br /&gt;
	Yubico Yubikey 4 OTP+CCID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get install yubikey-personalization yubikey-personalization-gui yubikey-neo-manager yubico-piv-tool&lt;br /&gt;
&lt;br /&gt;
$ ykinfo -a&lt;br /&gt;
serial: 6933194&lt;br /&gt;
serial_hex: 69caca&lt;br /&gt;
serial_modhex: hkrlrl&lt;br /&gt;
version: 4.3.7&lt;br /&gt;
touch_level: 1029&lt;br /&gt;
programming_sequence: 1&lt;br /&gt;
slot1_status: 1&lt;br /&gt;
slot2_status: 0&lt;br /&gt;
vendor_id: 1050&lt;br /&gt;
product_id: 407&lt;br /&gt;
&lt;br /&gt;
$ ykinfo -c&lt;br /&gt;
capabilities: 0c0101ff02040069caca03013f&lt;br /&gt;
&lt;br /&gt;
$ yubikey-personalization-gui &amp;amp;&lt;br /&gt;
&lt;br /&gt;
$ neoman &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connection mode:&lt;br /&gt;
* OTP+U2F+CCID&lt;br /&gt;
&lt;br /&gt;
Now we see available applets&lt;br /&gt;
* YubiKey OTP&lt;br /&gt;
* YubiOATH&lt;br /&gt;
* Yubico U2F&lt;br /&gt;
* OpenPGP&lt;br /&gt;
* Yubico PIV&lt;br /&gt;
&lt;br /&gt;
==Disabling HID==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
$ ykpersonalize -m5&lt;br /&gt;
Firmware version 4.3.7 Touch level 1029 Program sequence 1&lt;br /&gt;
The USB mode will be set to: 0x5&lt;br /&gt;
Commit? (y/n) [n]: y&lt;br /&gt;
WARNING: Changing mode will require you to use another tool (ykneomgr or u2f-host) to switch back if OTP mode is disabled, really commit? (y/n) [n]: y&lt;br /&gt;
&lt;br /&gt;
# Re-plug&lt;br /&gt;
&lt;br /&gt;
$ ykpersonalize &lt;br /&gt;
Yubikey core error: no yubikey present&lt;br /&gt;
&lt;br /&gt;
$ ykneomgr -m&lt;br /&gt;
05&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==A new key==&lt;br /&gt;
&lt;br /&gt;
This is a weird usage :)&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;`/~&amp;quot; key of my keyboard got broken (along with F1 and F2 but I can live without them).&lt;br /&gt;
&lt;br /&gt;
So I&#039;m using the static password feature to get back that dead deadkey...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
# Re-enable HID (and disable U2F):&lt;br /&gt;
$ ykneomgr -M 2&lt;br /&gt;
&lt;br /&gt;
# Configure with the GUI&lt;br /&gt;
$ yubikey-personalization-gui&lt;br /&gt;
## Settings / &amp;quot;Enter&amp;quot; (to disable automatic carriage-return, it must be unselected)&lt;br /&gt;
## Settings / &amp;quot;Use fast triggering&amp;quot; (as I don&#039;t use slot2, it becomes more responsive and skip the 0.3s delay)&lt;br /&gt;
## Static Password / Scan code / Configuration Slot 1 / Keyboard: US layout / Password: &amp;quot;`&amp;quot; (scancode=35) / Write configuration&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the key works as expected (it&#039;s a deadkey in the US intl mode) and works with modifiers such as &amp;quot;Shift&amp;quot; \o/&lt;br /&gt;
&lt;br /&gt;
==Thunderbird Exclusive Mode==&lt;br /&gt;
&lt;br /&gt;
Thunderbird requires connecting to the YubiKey in Exclusive Mode but if e.g. the Brave browser was started before, it has already opened the connection in Shared Mode.&lt;br /&gt;
One can add to the script to launch the browser:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
( sleep 3; pcsc_scan -n -c |grep -i -A3 &amp;quot;YubiKey&amp;quot;|grep -i -q &amp;quot;Shared Mode&amp;quot; &amp;amp;&amp;amp; sudo service pcscd restart ) &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=GnuPG&amp;diff=10546</id>
		<title>GnuPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=GnuPG&amp;diff=10546"/>
		<updated>2022-12-13T20:00:31Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Extending expiration time */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Those are personal notes when I decided in 2016 to generate a new key as transition from my previous one (from 2002!).&lt;br /&gt;
&amp;lt;br&amp;gt;Daily subkeys are stored on a Yubikey NEO-n and master key is stored offline.&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
The steps I followed and which I describe only very briefly here, more to remind how I combined them, came from those excellent resources:&lt;br /&gt;
* https://help.riseup.net/en/security/message-security/openpgp/best-practices&lt;br /&gt;
* http://ekaia.org/blog/2009/05/10/creating-new-gpgkey/&lt;br /&gt;
* https://www.esev.com/blog/post/2015-01-pgp-ssh-key-on-yubikey-neo/&lt;br /&gt;
&lt;br /&gt;
==gpg.conf==&lt;br /&gt;
First step was to refresh a little bit my gpg.conf.&lt;br /&gt;
&amp;lt;br&amp;gt;See https://github.com/ioerror/duraconf/raw/master/configs/gnupg/gpg.conf for commented gpg.conf and https://help.riseup.net/en/security/message-security/openpgp/best-practices for the reasons behind.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
no-emit-version&lt;br /&gt;
no-comments&lt;br /&gt;
keyid-format 0xlong&lt;br /&gt;
with-fingerprint&lt;br /&gt;
list-options show-uid-validity&lt;br /&gt;
verify-options show-uid-validity&lt;br /&gt;
use-agent&lt;br /&gt;
keyserver hkps://hkps.pool.sks-keyservers.net&lt;br /&gt;
keyserver-options ca-cert-file=/home/phil/.gnupg/keyservers/sks-keyservers.netCA.pem&lt;br /&gt;
keyserver-options no-try-dns-srv&lt;br /&gt;
keyserver-options no-honor-keyserver-url&lt;br /&gt;
keyserver-options include-revoked&lt;br /&gt;
personal-cipher-preferences AES256 AES192 AES CAST5&lt;br /&gt;
personal-digest-preferences SHA512 SHA384 SHA256 SHA224&lt;br /&gt;
cert-digest-algo SHA512&lt;br /&gt;
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Some more of my own:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
no-greeting&lt;br /&gt;
keyserver-options auto-key-retrieve honor-http-proxy&lt;br /&gt;
list-options show-policy-urls show-notations show-keyserver-urls show-uid-validity show-unusable-uids show-unusable-subkeys show-sig-expire&lt;br /&gt;
verify-options show-photos show-policy-urls show-notations show-keyserver-urls show-uid-validity show-unusable-uids&lt;br /&gt;
utf8-strings&lt;br /&gt;
ask-cert-level&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Offline storage==&lt;br /&gt;
Digressing a little bit...&lt;br /&gt;
&lt;br /&gt;
I chose an old SDCard to store the master key offline, but it required a little bit of maintenance because it wasn&#039;t mounting automatically:&lt;br /&gt;
&lt;br /&gt;
Making sude partition table was ok:&lt;br /&gt;
 $ sudo fdisk /dev/mmcblk0&lt;br /&gt;
Checking FS signatures:&lt;br /&gt;
 $ sudo wipefs /dev/mmcblk0p1&lt;br /&gt;
There was still a mix of FAT and ext2 signatures, so deleting the ext2 signature based on the returned offset:&lt;br /&gt;
 $ sudo wipefs -o 0x438 /dev/mmcblk0p1&lt;br /&gt;
Formatting&lt;br /&gt;
 $ sudo mkfs.vfat /dev/mmcblk0p1&lt;br /&gt;
 $ sudo fatlabel /dev/mmcblk0p1 GNUPG&lt;br /&gt;
Reinserting it to get it mounted automatically, then&lt;br /&gt;
 $ cp ~/.gnupg/gpg.conf /media/phil/GNUPG&lt;br /&gt;
 $ sudo mount --bind /media/phil/GNUPG ~/.gnupg &lt;br /&gt;
==Entropy==&lt;br /&gt;
Creating large keys require large entropy.&lt;br /&gt;
&amp;lt;br&amp;gt;I like haveged for that:&lt;br /&gt;
 $ sudo apt-get install haveged&lt;br /&gt;
==Creating main key==&lt;br /&gt;
Idea following https://www.esev.com/blog/post/2015-01-pgp-ssh-key-on-yubikey-neo/ is to keep the main key completely offline so if yubikey is lost, there is still some hope.&lt;br /&gt;
 $ gpg --expert --gen-key&lt;br /&gt;
 Please select what kind of key you want:&lt;br /&gt;
   (8) RSA (set your own capabilities)&lt;br /&gt;
 Your selection? 8&lt;br /&gt;
 Current allowed actions: Sign Certify Encrypt &lt;br /&gt;
 Your selection? s&lt;br /&gt;
 Your selection? e&lt;br /&gt;
 Current allowed actions: Certify &lt;br /&gt;
 Your selection? q&lt;br /&gt;
 What keysize do you want? (2048) 4096&lt;br /&gt;
 Requested keysize is 4096 bits&lt;br /&gt;
 Key is valid for? (0) 2y&lt;br /&gt;
 Is this correct? (y/N) y&lt;br /&gt;
 Real name: Philippe Teuwen&lt;br /&gt;
 Email address: phil@teuwen.org&lt;br /&gt;
 Comment: &lt;br /&gt;
 You selected this USER-ID:&lt;br /&gt;
    &amp;quot;Philippe Teuwen &amp;lt;phil@teuwen.org&amp;gt;&amp;quot;&lt;br /&gt;
 Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o&lt;br /&gt;
 gpg: key 0x9B554C36544C89BC marked as ultimately trusted&lt;br /&gt;
 public and secret key created and signed.&lt;br /&gt;
==Creating revokation certificate==&lt;br /&gt;
 $ gpg --gen-revoke 9B554C36544C89BC &amp;gt; /media/phil/GNUPG/rev-phil_teuwen.org_2016&lt;br /&gt;
 sec  4096R/0x9B554C36544C89BC 2016-02-04 Philippe Teuwen &amp;lt;phil@teuwen.org&amp;gt;&lt;br /&gt;
 Create a revocation certificate for this key? (y/N) y&lt;br /&gt;
 Please select the reason for the revocation:&lt;br /&gt;
   3 = Key is no longer used&lt;br /&gt;
 Your decision? 3&lt;br /&gt;
 Enter an optional description; end it with an empty line:&lt;br /&gt;
 &amp;gt;Using revocation certificate that was generated when key was created.&lt;br /&gt;
 &amp;gt;It is very likely that I have lost access to the private key.&lt;br /&gt;
 &amp;gt; &lt;br /&gt;
 Reason for revocation: Key is no longer used&lt;br /&gt;
 Using revocation certificate that was generated when key was created. It is very likely that I have lost access to the private key.&lt;br /&gt;
 Is this okay? (y/N) y&lt;br /&gt;
Then printing it on paper&lt;br /&gt;
==Creating Encryption subkey==&lt;br /&gt;
Idea following https://www.esev.com/blog/post/2015-01-pgp-ssh-key-on-yubikey-neo/ is to create the encryption key out of yubikey and importing it so it can be imported on several yubikey&#039;s.&lt;br /&gt;
&lt;br /&gt;
 $ gpg --edit-key 9B554C36544C89BC&lt;br /&gt;
 gpg&amp;gt; addkey&lt;br /&gt;
 Please select what kind of key you want:&lt;br /&gt;
   (6) RSA (encrypt only)&lt;br /&gt;
 Your selection? 6&lt;br /&gt;
 What keysize do you want? (2048) 2048&lt;br /&gt;
 Please specify how long the key should be valid.&lt;br /&gt;
 Key is valid for? (0) 2y&lt;br /&gt;
 Is this correct? (y/N) y&lt;br /&gt;
 Really create? (y/N) y&lt;br /&gt;
 pub  4096R/0x9B554C36544C89BC  created: 2016-02-04  expires: 2018-02-03  usage: C   &lt;br /&gt;
                                trust: ultimate      validity: ultimate&lt;br /&gt;
 sub  2048R/0x47B68B62B62C8F88  created: 2016-02-04  expires: 2018-02-03  usage: E   &lt;br /&gt;
 [ultimate] (1). Philippe Teuwen &amp;lt;phil@teuwen.org&amp;gt;&lt;br /&gt;
 gpg&amp;gt; save&lt;br /&gt;
==Backup the secret key==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;keytocard / save&amp;quot; operations that we will do later will also remove the secret key from your keyring, so better to backup it first!&lt;br /&gt;
&lt;br /&gt;
 $ gpg --export-secret-key 9B554C36544C89BC &amp;gt; /media/phil/GNUPG/9B554C36544C89BC-2016-02-04-47B68B62B62C8F88-secret.pgp&lt;br /&gt;
 $ gpg --delete-secret-key 9B554C36544C89BC&lt;br /&gt;
 $ gpg --import &amp;lt; /media/phil/GNUPG/9B554C36544C89BC-2016-02-04-47B68B62B62C8F88-secret.pgp&lt;br /&gt;
&lt;br /&gt;
==Yubikey==    &lt;br /&gt;
 $ sudo apt-get install yubikey-personalization ykneomgr&lt;br /&gt;
 $ wget https://raw.githubusercontent.com/Yubico/yubikey-personalization/master/69-yubikey.rules &lt;br /&gt;
 $ wget https://raw.githubusercontent.com/Yubico/yubikey-personalization/master/70-yubikey.rules &lt;br /&gt;
 $ sudo mv *rules /etc/udev/rules.d/&lt;br /&gt;
 $ sudo chown root.root /etc/udev/rules.d/*yubikey.rules&lt;br /&gt;
Insert yubikey NEO-n&lt;br /&gt;
 $ ykinfo -a&lt;br /&gt;
On a Yubikey where HID has been deactivated, ykinfo will fail, use ykneomgr instead.&lt;br /&gt;
&amp;lt;br&amp;gt;If ykneomgr fails, it may be because you used it for gpg via scdaemon.&lt;br /&gt;
&amp;lt;br&amp;gt;Even with &amp;quot;card-timeout 1&amp;quot; in .gnupg/scdaemon.conf I experienced problems once I read some encrypted emails, I have to restart pcscd to free the Yubikey and be able to use ykneomgr.&lt;br /&gt;
&lt;br /&gt;
To keep possibility to use all modes simultaneously:&lt;br /&gt;
 $ ykpersonalize -m86&lt;br /&gt;
 Firmware version 3.3.0 Touch level 1285 Program sequence 1&lt;br /&gt;
 The USB mode will be set to: 0x86&lt;br /&gt;
 Commit? (y/n) [n]: y&lt;br /&gt;
If ykpersonalize doesn&#039;t work (no HID), see ykneomgr&lt;br /&gt;
&lt;br /&gt;
I wanted to disable HID (as I don&#039;t use it but still touch accidentally the key now and then).&lt;br /&gt;
&amp;lt;br&amp;gt;But switching to mode 5 (U2F+CCID) didn&#039;t disable HID so to get it working I had to switch to mode 1 (CCID) then 5 (U2F+CCID):&lt;br /&gt;
 ykneomgr -M1&lt;br /&gt;
 ykneomgr -M5&lt;br /&gt;
&lt;br /&gt;
==Creating Signature and Authentication subkeys==&lt;br /&gt;
Yes default admin PIN is 12345678 and default user PIN is 123456.&lt;br /&gt;
&amp;lt;br&amp;gt;We&#039;ll change them later.&lt;br /&gt;
 $ gpg --edit-key 9B554C36544C89BC&lt;br /&gt;
 gpg&amp;gt; addcardkey&lt;br /&gt;
 Please select the type of key to generate:&lt;br /&gt;
    (1) Signature key&lt;br /&gt;
 Your selection? 1&lt;br /&gt;
 Enter Admin PIN: 12345678&lt;br /&gt;
 Enter PIN: 123456&lt;br /&gt;
 Please specify how long the key should be valid.&lt;br /&gt;
 Key is valid for? (0) 2y&lt;br /&gt;
 Is this correct? (y/N) y&lt;br /&gt;
 Really create? (y/N) y&lt;br /&gt;
 pub  4096R/0x9B554C36544C89BC  created: 2016-02-04  expires: 2018-02-03  usage: C   &lt;br /&gt;
                                trust: ultimate      validity: ultimate&lt;br /&gt;
 sub  2048R/0x47B68B62B62C8F88  created: 2016-02-04  expires: 2018-02-03  usage: E   &lt;br /&gt;
 sub  2048R/0xAEBAADBEE208E2DD  created: 2016-02-04  expires: 2018-02-03  usage: S   &lt;br /&gt;
 [ultimate] (1). Philippe Teuwen &amp;lt;phil@teuwen.org&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 gpg&amp;gt; addcardkey&lt;br /&gt;
 Please select the type of key to generate:&lt;br /&gt;
    (3) Authentication key&lt;br /&gt;
 Your selection? 3&lt;br /&gt;
 Please specify how long the key should be valid.&lt;br /&gt;
 Key is valid for? (0) 2y&lt;br /&gt;
 Is this correct? (y/N) y&lt;br /&gt;
 Really create? (y/N) y&lt;br /&gt;
 pub  4096R/0x9B554C36544C89BC  created: 2016-02-04  expires: 2018-02-03  usage: C   &lt;br /&gt;
                                trust: ultimate      validity: ultimate&lt;br /&gt;
 sub  2048R/0x47B68B62B62C8F88  created: 2016-02-04  expires: 2018-02-03  usage: E   &lt;br /&gt;
 sub  2048R/0xAEBAADBEE208E2DD  created: 2016-02-04  expires: 2018-02-03  usage: S   &lt;br /&gt;
 sub  2048R/0xE5151B7FDCA95A14  created: 2016-02-04  expires: 2018-02-03  usage: A   &lt;br /&gt;
 [ultimate] (1). Philippe Teuwen &amp;lt;phil@teuwen.org&amp;gt;&lt;br /&gt;
==Ready to import Encryption subkey?==&lt;br /&gt;
At this point we should import the encryption key to the yubikey but I got some error:&lt;br /&gt;
 gpg: error writing key to card: not supported&lt;br /&gt;
Some say to use [https://github.com/Yubico/ykneo-openpgp/tree/master/util keyParser.py] but I found out gpg2 works. Gpg could work directly with the card (except for the keytocard obviously) but Gpg2 needs sdaemon for that: &lt;br /&gt;
 $ sudo apt-get install gnupg2 scdaemon&lt;br /&gt;
Yet another quirk: gnupg gave some warnings about locking from FAT but gnupg2 just refuses using FAT, so I add to the gpg.conf of the SD-Card:&lt;br /&gt;
 # allow linux to write to FAT disks&lt;br /&gt;
 lock-never&lt;br /&gt;
&lt;br /&gt;
While this was working fine earlier, at some point I experiended:&lt;br /&gt;
 $ gpg2 --card-status&lt;br /&gt;
 gpg: OpenPGP card not available: Not supported&lt;br /&gt;
&lt;br /&gt;
The fix was to forbid scdaemon to use the CCID driver but to use PCSC instead. Edit .gnupg/scdaemon.conf:&lt;br /&gt;
 card-timeout 1&lt;br /&gt;
 disable-ccid&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;card-timeout&amp;quot; is supposed to free the card when not in use, still I&#039;ve typically to restart pcscd if scdaemon keeps locking it.&lt;br /&gt;
&lt;br /&gt;
==Encryption key to Yubikey==&lt;br /&gt;
 $ gpg2 --edit-key 9B554C36544C89BC&lt;br /&gt;
 gpg&amp;gt; toggle&lt;br /&gt;
 gpg&amp;gt; key 1&lt;br /&gt;
 sec  4096R/0x9B554C36544C89BC  created: 2016-02-04  expires: 2018-02-03&lt;br /&gt;
 ssb* 2048R/0x47B68B62B62C8F88  created: 2016-02-04  expires: never     &lt;br /&gt;
 ssb  2048R/0xAEBAADBEE208E2DD  created: 2016-02-04  expires: never     &lt;br /&gt;
                      card-no: 0006 03037217&lt;br /&gt;
 ssb  2048R/0xE5151B7FDCA95A14  created: 2016-02-04  expires: never     &lt;br /&gt;
                      card-no: 0006 03037217&lt;br /&gt;
 (1)  Philippe Teuwen &amp;lt;phil@teuwen.org&amp;gt;&lt;br /&gt;
 gpg&amp;gt; keytocard&lt;br /&gt;
 Please select where to store the key:&lt;br /&gt;
    (2) Encryption key&lt;br /&gt;
 Your selection? 2&lt;br /&gt;
 gpg&amp;gt; save&lt;br /&gt;
==Adding UID and photo==&lt;br /&gt;
Choose a 240x288 picture strongly compressed (I chose jpeg quality 20) to obtain a size &amp;lt; 5kb. &lt;br /&gt;
 $ gpg2 --edit-key 9B554C36544C89BC&lt;br /&gt;
 gpg&amp;gt; adduid&lt;br /&gt;
 Real name: Philippe Teuwen&lt;br /&gt;
 Email address: pteuwen@quarkslab.com&lt;br /&gt;
 Comment: &lt;br /&gt;
 You selected this USER-ID:&lt;br /&gt;
     &amp;quot;Philippe Teuwen &amp;lt;pteuwen@quarkslab.com&amp;gt;&amp;quot;&lt;br /&gt;
 Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o&lt;br /&gt;
 &lt;br /&gt;
 gpg&amp;gt; addphoto&lt;br /&gt;
 Enter JPEG filename for photo ID: ~/phil20.jpg&lt;br /&gt;
 pub  4096R/0x9B554C36544C89BC  created: 2016-02-04  expires: 2018-02-03  usage: C   &lt;br /&gt;
                                trust: ultimate      validity: ultimate&lt;br /&gt;
 sub  2048R/0x47B68B62B62C8F88  created: 2016-02-04  expires: 2018-02-03  usage: E   &lt;br /&gt;
 sub  2048R/0xAEBAADBEE208E2DD  created: 2016-02-04  expires: 2018-02-03  usage: S   &lt;br /&gt;
 sub  2048R/0xE5151B7FDCA95A14  created: 2016-02-04  expires: 2018-02-03  usage: A   &lt;br /&gt;
 [ultimate] (1)  Philippe Teuwen &amp;lt;phil@teuwen.org&amp;gt;&lt;br /&gt;
 [ unknown] (2). Philippe Teuwen &amp;lt;pteuwen@quarkslab.com&amp;gt;&lt;br /&gt;
 [ unknown] (3)  [jpeg image of size 4266]&lt;br /&gt;
 &lt;br /&gt;
 gpg&amp;gt; uid 1&lt;br /&gt;
 gpg&amp;gt; primary&lt;br /&gt;
 gpg&amp;gt; save&lt;br /&gt;
==Almost there==&lt;br /&gt;
Exporting key&lt;br /&gt;
 $ gpg --armor --export 9B554C36544C89BC &amp;gt; /media/phil/GNUPG/9B554C36544C89BC.asc&lt;br /&gt;
And pushing it to http://www.yobi.be/files/9B554C36544C89BC.asc&lt;br /&gt;
&lt;br /&gt;
Back to the daily .gnupg&lt;br /&gt;
 $ sudo umount ~/.gnupg&lt;br /&gt;
Changing default PINs&lt;br /&gt;
 $ gpg --card-edit&lt;br /&gt;
 gpg/card&amp;gt; admin&lt;br /&gt;
 Admin commands are allowed&lt;br /&gt;
 gpg/card&amp;gt; passwd&lt;br /&gt;
 gpg: OpenPGP card no. D2760001240102000006030372170000 detected&lt;br /&gt;
 1 - change PIN&lt;br /&gt;
 Your selection? 1&lt;br /&gt;
 Please enter the PIN&lt;br /&gt;
    123456&lt;br /&gt;
 New PIN&lt;br /&gt;
    ...              &lt;br /&gt;
 New PIN&lt;br /&gt;
    ...&lt;br /&gt;
 PIN changed.     &lt;br /&gt;
 &lt;br /&gt;
 3 - change Admin PIN&lt;br /&gt;
 Your selection? 3&lt;br /&gt;
 gpg: 3 Admin PIN attempts remaining before card is permanently locked&lt;br /&gt;
 Please enter the Admin PIN&lt;br /&gt;
    12345678                &lt;br /&gt;
 New Admin PIN&lt;br /&gt;
    ...                    &lt;br /&gt;
 New Admin PIN&lt;br /&gt;
    ...&lt;br /&gt;
 PIN changed.     &lt;br /&gt;
 &lt;br /&gt;
 Q - quit&lt;br /&gt;
 Your selection? q&lt;br /&gt;
 &lt;br /&gt;
 gpg/card&amp;gt; forcesig&lt;br /&gt;
 gpg/card&amp;gt; url&lt;br /&gt;
 URL to retrieve public key: http://www.yobi.be/files/9B554C36544C89BC.asc&lt;br /&gt;
 &lt;br /&gt;
 gpg/card&amp;gt; fetch&lt;br /&gt;
 gpg: requesting key 0xAEBAADBEE208E2DD from http server www.yobi.be&lt;br /&gt;
 &lt;br /&gt;
 gpg/card&amp;gt; quit&lt;br /&gt;
&lt;br /&gt;
 $ gpg --card-status&lt;br /&gt;
 Application ID ...: D2760001240102000006030372170000&lt;br /&gt;
 Version ..........: 2.0&lt;br /&gt;
 Manufacturer .....: unknown&lt;br /&gt;
 Serial number ....: xxxxxxxxx&lt;br /&gt;
 Name of cardholder: [not set]&lt;br /&gt;
 Language prefs ...: [not set]&lt;br /&gt;
 Sex ..............: unspecified&lt;br /&gt;
 URL of public key : http://www.yobi.be/files/9B554C36544C89BC.asc&lt;br /&gt;
 Login data .......: [not set]&lt;br /&gt;
 Signature PIN ....: not forced&lt;br /&gt;
 Key attributes ...: 2048R 2048R 2048R&lt;br /&gt;
 Max. PIN lengths .: 127 127 127&lt;br /&gt;
 PIN retry counter : 3 3 3&lt;br /&gt;
 Signature counter : 2&lt;br /&gt;
 Signature key ....: 67E1 AAA2 46D7 9037 7671  BAD5 AEBA ADBE E208 E2DD&lt;br /&gt;
       created ....: 2016-02-04 10:56:03&lt;br /&gt;
 Encryption key....: 55A5 1FF1 F45A A846 EC12  A5D4 47B6 8B62 B62C 8F88&lt;br /&gt;
       created ....: 2016-02-04 10:26:52&lt;br /&gt;
 Authentication key: 93FE E3BA 0F4D 4461 19E8  1CBE E515 1B7F DCA9 5A14&lt;br /&gt;
       created ....: 2016-02-04 10:57:35&lt;br /&gt;
 General key info..: &lt;br /&gt;
 pub  2048R/0xAEBAADBEE208E2DD 2016-02-04 Philippe Teuwen &amp;lt;phil@teuwen.org&amp;gt;&lt;br /&gt;
 sec#  4096R/0x9B554C36544C89BC  created: 2016-02-04  expires: 2018-02-03&lt;br /&gt;
 ssb&amp;gt;  2048R/0x47B68B62B62C8F88  created: 2016-02-04  expires: 2018-02-03&lt;br /&gt;
                       card-no: 0006 03037217&lt;br /&gt;
 ssb&amp;gt;  2048R/0xAEBAADBEE208E2DD  created: 2016-02-04  expires: 2018-02-03&lt;br /&gt;
                       card-no: 0006 03037217&lt;br /&gt;
 ssb&amp;gt;  2048R/0xE5151B7FDCA95A14  created: 2016-02-04  expires: 2018-02-03&lt;br /&gt;
                       card-no: 0006 03037217&lt;br /&gt;
Changing default key in gpg.conf&lt;br /&gt;
 default-key  0xF14883379E8DD09F03280E1B9B554C36544C89BC&lt;br /&gt;
&lt;br /&gt;
==Last check==&lt;br /&gt;
 $ sudo apt-get install hopenpgp-tools&lt;br /&gt;
 $ hkt export-pubkeys &#039;AEBAADBEE208E2DD&#039; | hokey lint&lt;br /&gt;
All green \o/&lt;br /&gt;
==Using Yubikey on another machine==&lt;br /&gt;
 $ gpg --card-edit&lt;br /&gt;
 gpg/card&amp;gt; fetch&lt;br /&gt;
&lt;br /&gt;
==Signing new key with the old one==&lt;br /&gt;
 $ gpg --default-key 9ad7e3db --sign-key 9B554C36544C89BC&lt;br /&gt;
 Really sign all user IDs? (y/N) y&lt;br /&gt;
    (3) I have done very careful checking.&lt;br /&gt;
 Your selection? (enter `?&#039; for more information): 3&lt;br /&gt;
 Really sign? (y/N) y&lt;br /&gt;
&lt;br /&gt;
 $ gpg --send-key 9B554C36544C89BC&lt;br /&gt;
&lt;br /&gt;
As it&#039;s a pool I sent it 10x, rather than waiting them to all sync...&lt;br /&gt;
&lt;br /&gt;
And also for those still using pgp.mit.edu:&lt;br /&gt;
 $ gpg --keyserver pgp.mit.edu --send-key 9B554C36544C89BC&lt;br /&gt;
==Transition==&lt;br /&gt;
Now let&#039;s ask some helpful souls who signed my old key.&lt;br /&gt;
&lt;br /&gt;
Stealing and adapting key transition text from https://we.riseup.net/assets/176898/key%20transition&lt;br /&gt;
&lt;br /&gt;
Mass mailing to those who&#039;ve signed the old one:&lt;br /&gt;
 $ gpg --list-sigs 9ad7e3db|grep ^sig|sed &#039;s/.*&amp;lt;//;s/&amp;gt;.*//;/^sig/d&#039;|sort|uniq|tr &#039;\n&#039; &#039;,&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Date: 2016-02-04&lt;br /&gt;
&lt;br /&gt;
For a number of reasons[0], I&#039;ve recently set up a new OpenPGP key,&lt;br /&gt;
and will be transitioning away from my old one.&lt;br /&gt;
&lt;br /&gt;
The old key will continue to be valid for some time, but I prefer all&lt;br /&gt;
future correspondence to come to the new one. I would also like this&lt;br /&gt;
new key to be re-integrated into the web of trust. This message is&lt;br /&gt;
signed by both keys to certify the transition.&lt;br /&gt;
&lt;br /&gt;
The old key was:&lt;br /&gt;
&lt;br /&gt;
pub 1024D/0x7A135F579AD7E3DB 2002-05-05 [expires: 2017-08-13]&lt;br /&gt;
sub 2048g/0x78FC60279A4A59B9 2002-05-05 [expires: 2017-08-13]&lt;br /&gt;
sub 4096R/0xF2FD1762608F63B7 2007-08-16 [expires: 2017-08-13]&lt;br /&gt;
fingerprint = 440A 3A9E 56E9 D90E 99D7 63A8 7A13 5F57 9AD7 E3DB&lt;br /&gt;
&lt;br /&gt;
And the new key is:&lt;br /&gt;
pub 4096R/0x9B554C36544C89BC 2016-02-04 [expires: 2018-02-03]&lt;br /&gt;
sub 2048R/0x47B68B62B62C8F88 2016-02-04 [expires: 2018-02-03]&lt;br /&gt;
sub 2048R/0xAEBAADBEE208E2DD 2016-02-04 [expires: 2018-02-03]&lt;br /&gt;
sub 2048R/0xE5151B7FDCA95A14 2016-02-04 [expires: 2018-02-03]&lt;br /&gt;
fingerprint = F148 8337 9E8D D09F 0328 0E1B 9B55 4C36 544C 89BC&lt;br /&gt;
&lt;br /&gt;
To fetch the full key from a public key server, you can simply do:&lt;br /&gt;
&lt;br /&gt;
gpg --keyserver pool.sks-keyservers.net --recv-key F14883379E8DD09F03280E1B9B554C36544C89BC&lt;br /&gt;
&lt;br /&gt;
If you already know my old key, you can now verify that the new key is&lt;br /&gt;
signed by the old one:&lt;br /&gt;
&lt;br /&gt;
gpg --check-sigs F14883379E8DD09F03280E1B9B554C36544C89BC&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t already know my old key, or you just want to be double&lt;br /&gt;
extra paranoid, you can check the fingerprint against the one above:&lt;br /&gt;
&lt;br /&gt;
gpg --fingerprint F14883379E8DD09F03280E1B9B554C36544C89BC&lt;br /&gt;
&lt;br /&gt;
If you are satisfied that you&#039;ve got the right key, and the UIDs match&lt;br /&gt;
what you expect, I&#039;d appreciate it if you would sign my key. You can&lt;br /&gt;
do that by issuing the following command:&lt;br /&gt;
&lt;br /&gt;
**&lt;br /&gt;
NOTE: if you have previously signed my key but did a local-only&lt;br /&gt;
signature (lsign), you will not want to issue the following, instead&lt;br /&gt;
you will want to use --lsign-key, and not send the signatures to the&lt;br /&gt;
keyserver&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
gpg --sign-key F14883379E8DD09F03280E1B9B554C36544C89BC&lt;br /&gt;
&lt;br /&gt;
I&#039;d like to receive your signatures on my key. You can either send me&lt;br /&gt;
an e-mail with the new signatures (if you have a functional MTA on&lt;br /&gt;
your system):&lt;br /&gt;
&lt;br /&gt;
gpg --export F14883379E8DD09F03280E1B9B554C36544C89BC | \&lt;br /&gt;
gpg --encrypt -r F14883379E8DD09F03280E1B9B554C36544C89BC --armor | \&lt;br /&gt;
mail -s &#039;OpenPGP Signatures&#039; phil@teuwen.org&lt;br /&gt;
&lt;br /&gt;
Additionally, I highly recommend that you implement a mechanism to&lt;br /&gt;
keep your key material up-to-date so that you obtain the latest&lt;br /&gt;
revocations, and other updates in a timely manner. You can do regular&lt;br /&gt;
key updates by using parcimonie[1] to refresh your keyring. Parcimonie&lt;br /&gt;
is a daemon that slowly refreshes your keyring from a keyserver over&lt;br /&gt;
Tor. It uses a randomized sleep, and fresh tor circuits for each key.&lt;br /&gt;
The purpose is to make it hard for an attacker to correlate the key&lt;br /&gt;
updates with your keyring.&lt;br /&gt;
&lt;br /&gt;
I also highly recommend checking out the excellent Riseup GPG best&lt;br /&gt;
practices doc, from which I stole most of the text for this transition&lt;br /&gt;
message ;-)&lt;br /&gt;
&lt;br /&gt;
https://we.riseup.net/debian/openpgp-best-practices&lt;br /&gt;
&lt;br /&gt;
Please let me know if you have any questions, or problems, and sorry&lt;br /&gt;
for the inconvenience.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re curious, I&#039;ve briefly documented all the steps using a Yubikey on my wiki [2].&lt;br /&gt;
&lt;br /&gt;
Philippe Teuwen&lt;br /&gt;
&lt;br /&gt;
0. https://www.debian-administration.org/users/dkg/weblog/48&lt;br /&gt;
1. https://gaffer.ptitcanardnoir.org/intrigeri/code/parcimonie/&lt;br /&gt;
2. http://wiki.yobi.be/wiki/GnuPG&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In an email signed with my old key...&lt;br /&gt;
==Signing keys==&lt;br /&gt;
To sign keys it requires the SD-Card.&lt;br /&gt;
&lt;br /&gt;
To enable it:&lt;br /&gt;
 cp -a ~/.gnupg/pubring.gpg /media/phil/GNUPG/&lt;br /&gt;
 cp -a ~/.gnupg/trustdb.gpg /media/phil/GNUPG/&lt;br /&gt;
 sudo mount --bind /media/phil/GNUPG ~/.gnupg&lt;br /&gt;
To disable it:&lt;br /&gt;
 sudo umount ~/.gnupg&lt;br /&gt;
 cp -a /media/phil/GNUPG/pubring.gpg ~/.gnupg/&lt;br /&gt;
 cp -a /media/phil/GNUPG/trustdb.gpg ~/.gnupg/&lt;br /&gt;
&lt;br /&gt;
==Extending expiration time==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service pcscd stop&lt;br /&gt;
cp -a ~/.gnupg/pubring.gpg /media/phil/GNUPG/&lt;br /&gt;
cp -a ~/.gnupg/trustdb.gpg /media/phil/GNUPG/&lt;br /&gt;
sudo mount --bind /media/phil/GNUPG ~/.gnupg&lt;br /&gt;
gpg --edit-key 9B554C36544C89BC&lt;br /&gt;
expire&lt;br /&gt;
  3y&lt;br /&gt;
key 47B68B62B62C8F88&lt;br /&gt;
key C68777A356ACFA91&lt;br /&gt;
key C83BE1071CDE1015&lt;br /&gt;
expire&lt;br /&gt;
  3y&lt;br /&gt;
save&lt;br /&gt;
sudo umount ~/.gnupg&lt;br /&gt;
cp -a /media/phil/GNUPG/pubring.gpg ~/.gnupg/&lt;br /&gt;
cp -a /media/phil/GNUPG/trustdb.gpg ~/.gnupg/&lt;br /&gt;
gpg --armor --export 9B554C36544C89BC &amp;gt; /media/phil/GNUPG/9B554C36544C89BC.asc&lt;br /&gt;
umount /media/phil/GNUPG&lt;br /&gt;
sudo service pcscd start&lt;br /&gt;
gpg --keyserver keys.gnupg.net --send-key 9B554C36544C89BC&lt;br /&gt;
gpg --armor --export 9B554C36544C89BC &amp;gt; /tmp/9B554C36544C89BC.asc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And pushing it to http://www.yobi.be/files/9B554C36544C89BC.asc&lt;br /&gt;
&lt;br /&gt;
==OpenSSH==&lt;br /&gt;
Using the OpenPGP key and the Yubikey for OpenSSH&lt;br /&gt;
 $ sudo apt-get install monkeysphere&lt;br /&gt;
&lt;br /&gt;
We need to specifying the authentication subkey here!&lt;br /&gt;
 $ gpgkey2ssh E5151B7FDCA95A14&lt;br /&gt;
 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeNXjx+2M1F7CuYRMkoHv6iUnXe93JatAjhmh1ciXIrTk/Agc4JEgb9uTxYA3pNe/qXVSrSdAqJu0cUENj30rLvKOliL0MH1TxGDnZ0JSxv0UA/skwapRwiTKgsHHng7gbq1/07eBl0luywLT1E/4sbeZ6cAK9e8JAO9GahiyYnrzt2nXzoVxGYl2AHkHFuCqHEMH/KQuQ8Tba+ZjqpRbjnreuI9tJQ8eWpMjLr2AYuWgAU5GtbWFHJi0WJI/2kYybT7co7Kldoxg8PRvBE/QQPdP811jc06pf4CVgfCGvCWZaslqG5pLy8LneqYciuQuXDCQMlAWniThTPjf5VLhx COMMENT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Paper backup of the secret keys ==&lt;br /&gt;
If you don&#039;t trust SD-Card longevity...&lt;br /&gt;
 apt-get install paperkey&lt;br /&gt;
 gpg --export-secret-key key_id | paperkey&lt;br /&gt;
==OpenPGP cards==&lt;br /&gt;
See https://en.wikipedia.org/wiki/OpenPGP_card for existing cards.&lt;br /&gt;
&lt;br /&gt;
==OpenPGP card 3.x JavaCard Applets==&lt;br /&gt;
* [https://github.com/ANSSI-FR/SmartPGP SmartPGP], an implementation of the OpenPGP card 3.x specification in JavaCard (&amp;gt;=3.0.4) by ANSSI, including elliptic curves and RSA-4096&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sudo apt-get install ant&lt;br /&gt;
git clone git@github.com:martinpaljak/oracle_javacard_sdks.git&lt;br /&gt;
git clone git@github.com:ANSSI-FR/SmartPGP.git&lt;br /&gt;
cd SmartPGP&lt;br /&gt;
echo JAVACARD_HOME=$(pwd)/../oracle_javacard_sdks/jc304_kit &amp;gt; javacard.properties&lt;br /&gt;
ant&lt;br /&gt;
# =&amp;gt; ./build/fr/anssi/smartpgp/javacard/smartpgp.cap&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This requires a JavaCard 3.0.4 compliant card but it might be used with JavaCard 3.0.1 cards without the ECC parts, see [https://github.com/ANSSI-FR/SmartPGP/issues/1 this issue] and the [https://github.com/ANSSI-FR/SmartPGP/tree/javacard-3.0.1 javacard-3.0.1] branch.&lt;br /&gt;
&lt;br /&gt;
==OpenPGP card 2.x JavaCard Applets==&lt;br /&gt;
See also https://subgraph.com/sgos/documentation/smartcards/index.fr.html&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/jderuiter/javacard-openpgpcard Joeri de Ruiter&#039;s implementation]&lt;br /&gt;
* [https://github.com/Yubico/ykneo-openpgp Yubikey NEO implementation]&lt;br /&gt;
** [https://www.yubico.com/support/knowledge-base/categories/articles/reset-applet-yubikey/ Resetting the OpenPGP Applet]&lt;br /&gt;
* [https://github.com/FluffyKaon/OpenPGP-Card FluffyKaon implementation]&lt;br /&gt;
&lt;br /&gt;
Yubikey and FluffyKaon implementations can be easily compiled from https://github.com/martinpaljak/AppletPlayground:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
git clone https://github.com/martinpaljak/AppletPlayground.git&lt;br /&gt;
cd AppletPlayground&lt;br /&gt;
ant&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The author has also a [https://github.com/martinpaljak/GlobalPlatformPro GlobalPlatform tool] to inject the CAP into the card.&lt;br /&gt;
&amp;lt;br&amp;gt;To compile it you need openjdk-7-jdk which at the moment seems hard to get on my Debian (old dependencies problem), so I&#039;ll stick to openjdk-8 and fetch a pre-built version [https://github.com/martinpaljak/GlobalPlatformPro/releases here].&lt;br /&gt;
&amp;lt;br&amp;gt;Usage:&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
java -jar gp.jar --help&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or using JCOP&#039;s jcshell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/card&lt;br /&gt;
auth&lt;br /&gt;
upload OpenPGPApplet.cap&lt;br /&gt;
install D27600012401 D2760001240102000000000000010000&lt;br /&gt;
ctrl^d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Testing the newly created OpenPGP card:&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
gpg --card-status&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Adding an OpenPGP card==&lt;br /&gt;
&lt;br /&gt;
How to add a card (YubiKey or JavaCard) to an existing key, using our backup SDCard.&lt;br /&gt;
&lt;br /&gt;
First check that the card is accessible:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gpg --card-status&lt;br /&gt;
Reader ...........: Yubico Yubikey 4 OTP U2F CCID 00 00&lt;br /&gt;
Application ID ...: D2760001240102010006069331940000&lt;br /&gt;
Version ..........: 2.1&lt;br /&gt;
Manufacturer .....: Yubico&lt;br /&gt;
Serial number ....: 06933194&lt;br /&gt;
Name of cardholder: [not set]&lt;br /&gt;
Language prefs ...: [not set]&lt;br /&gt;
Sex ..............: unspecified&lt;br /&gt;
URL of public key : [not set]&lt;br /&gt;
Login data .......: [not set]&lt;br /&gt;
Signature PIN ....: not forced&lt;br /&gt;
Key attributes ...: rsa2048 rsa2048 rsa2048&lt;br /&gt;
Max. PIN lengths .: 127 127 127&lt;br /&gt;
PIN retry counter : 3 0 3&lt;br /&gt;
Signature counter : 0&lt;br /&gt;
Signature key ....: [none]&lt;br /&gt;
Encryption key....: [none]&lt;br /&gt;
Authentication key: [none]&lt;br /&gt;
General key info..: [none]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may have problems getting it detected, especially if another card was used before. Reboot.&lt;br /&gt;
&lt;br /&gt;
Map the SDCard:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
$ pkill gpg-agent&lt;br /&gt;
# mount --bind /media/phil/GNUPG ~/.gnupg &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Import again the keys (mainly the encryption key) moved to previous cards:&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
$ gpg --import &amp;lt; ~/.gnupg/9B554C36544C89BC-2016-02-04-47B68B62B62C8F88-secret.pgp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create new sub-keys:&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
$ gpg --edit-key 9B554C36544C89BC&lt;br /&gt;
gpg&amp;gt; addcardkey&lt;br /&gt;
Please select the type of key to generate:&lt;br /&gt;
   (1) Signature key&lt;br /&gt;
# remember default PIN is 123456, default admin PIN is 12345678&lt;br /&gt;
What keysize do you want for the Signature key? (2048) 4096&lt;br /&gt;
Key is valid for? (0) 2y&lt;br /&gt;
Is this correct? (y/N) y&lt;br /&gt;
Really create? (y/N) y&lt;br /&gt;
# wait for key to be generated and provide PINs if requested&lt;br /&gt;
gpg&amp;gt; addcardkey&lt;br /&gt;
Please select the type of key to generate:&lt;br /&gt;
   (3) Authentication key&lt;br /&gt;
What keysize do you want for the Authentication key? (2048) 4096&lt;br /&gt;
Key is valid for? (0) 2y&lt;br /&gt;
Is this correct? (y/N) y&lt;br /&gt;
Really create? (y/N) y&lt;br /&gt;
gpg&amp;gt; save&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Btw the notation &amp;quot;sec#&amp;quot; or &amp;quot;ssb#&amp;quot; means the key or subkey is not accessible (it&#039;s on another keyring or card).&lt;br /&gt;
&amp;lt;br&amp;gt;The notation &amp;quot;sec&amp;gt;&amp;quot; or &amp;quot;ssb&amp;gt;&amp;quot; means the card or subcard is stored on a card known to the system.&lt;br /&gt;
&amp;lt;br&amp;gt;The same convention is used with gpg --list-secret-keys&lt;br /&gt;
&lt;br /&gt;
Now we can try to transfer the encryption key but it will probably fail because it&#039;s still associated with the previous card:&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
$ gpg2 --edit-key 9B554C36544C89BC&lt;br /&gt;
ssb  rsa2048/0x47B68B62B62C8F88&lt;br /&gt;
     created: 2016-02-04  expires: 2018-02-03  usage: E   &lt;br /&gt;
     card-no: 0000 00000001                                  &amp;lt;= still previous card&lt;br /&gt;
gpg&amp;gt; toggle&lt;br /&gt;
gpg&amp;gt; key 1&lt;br /&gt;
ssb* rsa2048/0x47B68B62B62C8F88&lt;br /&gt;
     created: 2016-02-04  expires: 2018-02-03  usage: E   &lt;br /&gt;
     card-no: 0000 00000001                                  &amp;lt;= still previous card&lt;br /&gt;
gpg&amp;gt; keytocard&lt;br /&gt;
Please select where to store the key:&lt;br /&gt;
   (2) Encryption key&lt;br /&gt;
Your selection? 2&lt;br /&gt;
gpg: KEYTOCARD failed: Unusable secret key&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The only solution I found was to clean the secret keyring, import again and sync card again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
$ pkill gpg-agent&lt;br /&gt;
$ mv .gnupg/private-keys-v1.d/ .gnupg/private-keys-v1.d.old&lt;br /&gt;
$ gpg --import &amp;lt; ~/.gnupg/9B554C36544C89BC-2016-02-04-47B68B62B62C8F88-secret.pgp&lt;br /&gt;
$ gpg --card-status&lt;br /&gt;
$ gpg2 --edit-key 9B554C36544C89BC&lt;br /&gt;
Secret key is available.&lt;br /&gt;
sec  rsa4096/0x9B554C36544C89BC&lt;br /&gt;
     created: 2016-02-04  expires: 2018-02-03  usage: C   &lt;br /&gt;
     trust: ultimate      validity: ultimate&lt;br /&gt;
ssb  rsa2048/0x47B68B62B62C8F88&lt;br /&gt;
     created: 2016-02-04  expires: 2018-02-03  usage: E   &lt;br /&gt;
sub  rsa2048/0xAEBAADBEE208E2DD&lt;br /&gt;
     created: 2016-02-04  expires: 2018-02-03  usage: S   &lt;br /&gt;
sub  rsa2048/0xE5151B7FDCA95A14&lt;br /&gt;
     created: 2016-02-04  expires: 2018-02-03  usage: A   &lt;br /&gt;
sub  rsa2048/0xF7B61B5663205C74&lt;br /&gt;
     created: 2017-12-02  expires: 2019-12-02  usage: S   &lt;br /&gt;
sub  rsa2048/0xBDBF13DADE186465&lt;br /&gt;
     created: 2017-12-02  expires: 2019-12-02  usage: A   &lt;br /&gt;
ssb  rsa4096/0xC68777A356ACFA91&lt;br /&gt;
     created: 2017-12-07  expires: 2019-12-07  usage: S   &lt;br /&gt;
     card-no: 0006 06933194&lt;br /&gt;
ssb  rsa4096/0xC83BE1071CDE1015&lt;br /&gt;
     created: 2017-12-07  expires: 2019-12-07  usage: A   &lt;br /&gt;
     card-no: 0006 06933194&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
We see the encryption is not bound to a card anymore and the two new subkeys are bound to our card. So we can try again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
$ gpg2 --edit-key 9B554C36544C89BC&lt;br /&gt;
ssb  rsa2048/0x47B68B62B62C8F88&lt;br /&gt;
     created: 2016-02-04  expires: 2018-02-03  usage: E   &lt;br /&gt;
gpg&amp;gt; toggle&lt;br /&gt;
gpg&amp;gt; key 1&lt;br /&gt;
ssb* rsa2048/0x47B68B62B62C8F88&lt;br /&gt;
     created: 2016-02-04  expires: 2018-02-03  usage: E   &lt;br /&gt;
gpg&amp;gt; keytocard&lt;br /&gt;
Please select where to store the key:&lt;br /&gt;
   (2) Encryption key&lt;br /&gt;
Your selection? 2&lt;br /&gt;
gpg&amp;gt; save&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Export the public key and unmount the SDCard:&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
$ gpg --armor --export 9B554C36544C89BC &amp;gt; ~/.gnupg/9B554C36544C89BC_v3.asc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
$ pkill gpg-agent&lt;br /&gt;
$ sudo umount ~/.gnupg&lt;br /&gt;
$ gpg --import &amp;lt; /media/phil/GNUPG/9B554C36544C89BC_v3.asc&lt;br /&gt;
$ gpg --card-status&lt;br /&gt;
$ gpg --edit-key 9B554C36544C89BC&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The encryption key is probably still linked to the previous card.&lt;br /&gt;
&amp;lt;br&amp;gt;Again, I didn&#039;t see a clean way to do it.&lt;br /&gt;
&amp;lt;br&amp;gt;Backup your secret keyring before messing up with it, then, try to find the file corresponding to the encryption key.&lt;br /&gt;
It&#039;s a file smaller than the others, containing a string &amp;quot;shadowed-private-key&amp;quot;. Compare it with the other gnupg secret keyring: /media/phil/GNUPG/private-keys-v1.d/ and replace it with the new copy (or just delete it, it should be synced again from the card).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
cp /media/phil/GNUPG/private-keys-v1.d/AFE2DF0A021D08C752DE0ED0A8D020E8E57F4296.key ~/.gnupg/private-keys-v1.d &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now edit the key again, the encryption subkey should be associated with the new card.&lt;br /&gt;
&lt;br /&gt;
Edit the card for the final adjustments:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gpg --card-edit&lt;br /&gt;
gpg/card&amp;gt; admin&lt;br /&gt;
gpg/card&amp;gt; passwd&lt;br /&gt;
1 - change PIN&lt;br /&gt;
Your selection? 1&lt;br /&gt;
PIN changed.&lt;br /&gt;
3 - change Admin PIN&lt;br /&gt;
Your selection? 3&lt;br /&gt;
PIN changed.&lt;br /&gt;
Your selection? q&lt;br /&gt;
gpg/card&amp;gt; forcesig&lt;br /&gt;
gpg/card&amp;gt; name&lt;br /&gt;
Cardholder&#039;s surname: Teuwen&lt;br /&gt;
Cardholder&#039;s given name: Philippe&lt;br /&gt;
gpg/card&amp;gt; url&lt;br /&gt;
URL to retrieve public key: http://www.yobi.be/files/9B554C36544C89BC.asc&lt;br /&gt;
gpg/card&amp;gt; fetch&lt;br /&gt;
gpg: requesting key from &#039;http://www.yobi.be/files/9B554C36544C89BC.asc&#039;&lt;br /&gt;
gpg/card&amp;gt; quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Push the updated key to various keyservers.&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
gpg --keyserver hkps.pool.sks-keyservers.net --send-key 9B554C36544C89BC&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[GnuPG signing parties]]==&lt;br /&gt;
&lt;br /&gt;
==[[Short GnuPG reference card]]==&lt;br /&gt;
&lt;br /&gt;
==[[GnuPG old notes]]==&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=User:PhilippeTeuwen&amp;diff=10545</id>
		<title>User:PhilippeTeuwen</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=User:PhilippeTeuwen&amp;diff=10545"/>
		<updated>2022-11-07T01:35:50Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Social */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== ID ==&lt;br /&gt;
[[Image:Phil-contact.png|my contacts are in an image to avoid spam, sorry for the inconvenience]]&lt;br /&gt;
* [https://keybase.io/doegox doegox on keybase.io]&lt;br /&gt;
** [https://doegox.keybase.pub/ other assertions]&lt;br /&gt;
&lt;br /&gt;
== Social ==&lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/doegox @doegox on Twitter]&lt;br /&gt;
* [https://infosec.exchange/@doegox @doegox@infosec.exchange on Mastodon((me))]&lt;br /&gt;
* [http://www.linkedin.com/in/philippeteuwen LinkedIn]&lt;br /&gt;
&lt;br /&gt;
== Publications ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/doegox/bibliography Bibliography]&lt;br /&gt;
* [https://scholar.google.be/citations?user=Ra_sBhgAAAAJ&amp;amp;hl=en Google Scholar]&lt;br /&gt;
* [https://www.researchgate.net/profile/Philippe_Teuwen ResearchGate]&lt;br /&gt;
* [https://speakerdeck.com/doegox SpeakerDeck]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [http://wwwp.oakland.edu/enp/ Erdős Number]: 3 thanks to a paper without a single math formula ;)&lt;br /&gt;
&amp;lt;br&amp;gt;(e.g. Philippe Teuwen [http://dx.doi.org/10.1007/978-3-662-53140-2_11 ↔] Joppe W. Bos [http://dx.doi.org/10.1504/IJACT.2012.045590 ↔] Peter L. Montgomery [http://dx.doi.org/10.1016/0097-3165(73)90011-3 ↔] Paul Erdős) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
* [https://github.com/doegox GitHub]&lt;br /&gt;
* [https://www.openhub.net/accounts/doegox OpenHub]&lt;br /&gt;
&lt;br /&gt;
== Photography ==&lt;br /&gt;
&lt;br /&gt;
* [http://flickr.com/photos/doegox/ Flickr]&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [https://pinboard.in/u:doegox/ Pinboard]&lt;br /&gt;
* [http://www.librarything.com/catalog/doegox LibraryThing]&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=User:PhilippeTeuwen&amp;diff=10544</id>
		<title>User:PhilippeTeuwen</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=User:PhilippeTeuwen&amp;diff=10544"/>
		<updated>2022-11-07T01:22:37Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== ID ==&lt;br /&gt;
[[Image:Phil-contact.png|my contacts are in an image to avoid spam, sorry for the inconvenience]]&lt;br /&gt;
* [https://keybase.io/doegox doegox on keybase.io]&lt;br /&gt;
** [https://doegox.keybase.pub/ other assertions]&lt;br /&gt;
&lt;br /&gt;
== Social ==&lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/doegox @doegox on Twitter]&lt;br /&gt;
* [http://www.linkedin.com/in/philippeteuwen LinkedIn]&lt;br /&gt;
* [https://infosec.exchange/@doegox @doegox@infosec.exchange on Mastodon((me))]&lt;br /&gt;
&lt;br /&gt;
== Publications ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/doegox/bibliography Bibliography]&lt;br /&gt;
* [https://scholar.google.be/citations?user=Ra_sBhgAAAAJ&amp;amp;hl=en Google Scholar]&lt;br /&gt;
* [https://www.researchgate.net/profile/Philippe_Teuwen ResearchGate]&lt;br /&gt;
* [https://speakerdeck.com/doegox SpeakerDeck]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [http://wwwp.oakland.edu/enp/ Erdős Number]: 3 thanks to a paper without a single math formula ;)&lt;br /&gt;
&amp;lt;br&amp;gt;(e.g. Philippe Teuwen [http://dx.doi.org/10.1007/978-3-662-53140-2_11 ↔] Joppe W. Bos [http://dx.doi.org/10.1504/IJACT.2012.045590 ↔] Peter L. Montgomery [http://dx.doi.org/10.1016/0097-3165(73)90011-3 ↔] Paul Erdős) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
* [https://github.com/doegox GitHub]&lt;br /&gt;
* [https://www.openhub.net/accounts/doegox OpenHub]&lt;br /&gt;
&lt;br /&gt;
== Photography ==&lt;br /&gt;
&lt;br /&gt;
* [http://flickr.com/photos/doegox/ Flickr]&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [https://pinboard.in/u:doegox/ Pinboard]&lt;br /&gt;
* [http://www.librarything.com/catalog/doegox LibraryThing]&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=User:PhilippeTeuwen&amp;diff=10543</id>
		<title>User:PhilippeTeuwen</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=User:PhilippeTeuwen&amp;diff=10543"/>
		<updated>2022-11-07T01:16:43Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== ID ==&lt;br /&gt;
[[Image:Phil-contact.png|my contacts are in an image to avoid spam, sorry for the inconvenience]]&lt;br /&gt;
* [https://keybase.io/doegox doegox on keybase.io]&lt;br /&gt;
** [https://doegox.keybase.pub/ other assertions]&lt;br /&gt;
&lt;br /&gt;
== Social ==&lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/doegox @doegox on Twitter]&lt;br /&gt;
* [http://www.linkedin.com/in/philippeteuwen LinkedIn]&lt;br /&gt;
* [https://infosec.exchange/@doegox Mastodon]&lt;br /&gt;
&lt;br /&gt;
== Publications ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/doegox/bibliography Bibliography]&lt;br /&gt;
* [https://scholar.google.be/citations?user=Ra_sBhgAAAAJ&amp;amp;hl=en Google Scholar]&lt;br /&gt;
* [https://www.researchgate.net/profile/Philippe_Teuwen ResearchGate]&lt;br /&gt;
* [https://speakerdeck.com/doegox SpeakerDeck]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [http://wwwp.oakland.edu/enp/ Erdős Number]: 3 thanks to a paper without a single math formula ;)&lt;br /&gt;
&amp;lt;br&amp;gt;(e.g. Philippe Teuwen [http://dx.doi.org/10.1007/978-3-662-53140-2_11 ↔] Joppe W. Bos [http://dx.doi.org/10.1504/IJACT.2012.045590 ↔] Peter L. Montgomery [http://dx.doi.org/10.1016/0097-3165(73)90011-3 ↔] Paul Erdős) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
* [https://github.com/doegox GitHub]&lt;br /&gt;
* [https://www.openhub.net/accounts/doegox OpenHub]&lt;br /&gt;
&lt;br /&gt;
== Photography ==&lt;br /&gt;
&lt;br /&gt;
* [http://flickr.com/photos/doegox/ Flickr]&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [https://pinboard.in/u:doegox/ Pinboard]&lt;br /&gt;
* [http://www.librarything.com/catalog/doegox LibraryThing]&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10542</id>
		<title>Laptop Dell XPS 15</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10542"/>
		<updated>2022-01-09T14:31:33Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Optimus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Notes about installing a Debian Stretch on a Dell XPS 15&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
Dell XPS 15 model 9550 (variant with touchscreen &amp;amp; PCIe m.2 ssd)&lt;br /&gt;
&lt;br /&gt;
From the [http://www.dell.com/support/home/fr/fr/frdhs1/product-support/servicetag/DHVNH72/configuration configuration] list:&lt;br /&gt;
* 6th Generation Intel(R) Core (TM) i7-6700HQ Quad Core (6M Cache, up to 3.5 GHz)&lt;br /&gt;
* 16Go (2x8Go) DDR4 2133MHz&lt;br /&gt;
* 15.6&amp;quot; 4K Ultra HD (3840 x 2160) InfinityEdge touch, Sliver&lt;br /&gt;
* 1To PCIe Solid State&lt;br /&gt;
* DW1830 3x3 802.11ac 2.4/5GHz + Bluetooth 4.1&lt;br /&gt;
* Dell 84 WHr 6-Cell Lithium-Ion Battery&lt;br /&gt;
* Internal US/International Qwerty Backlit Keyboard&lt;br /&gt;
From the drivers list:&lt;br /&gt;
* Realtek High Definition Audio ALC3266&lt;br /&gt;
* Realtek RTS5242 PCIe Gen2 CardReader&lt;br /&gt;
* Realtek USB GBE Ethernet Controller&lt;br /&gt;
* ST Microlectronics LNG3DMTR Motion Sensor&lt;br /&gt;
* Intel HD Graphics 530/P530&lt;br /&gt;
* nVIDIA Geforce GTX 960M Graphics&lt;br /&gt;
From dmesg (incomplete):&lt;br /&gt;
* BCM20703A1 Bluetooth 4.1 (firmware brcm/BCM-0a5c-6410.hcd)&lt;br /&gt;
From lspci -nn:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00:00.0 Host bridge [0600]: Intel Corporation Sky Lake Host Bridge/DRAM Registers [8086:1910] (rev 07)&lt;br /&gt;
00:01.0 PCI bridge [0604]: Intel Corporation Sky Lake PCIe Controller (x16) [8086:1901] (rev 07)&lt;br /&gt;
00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:191b] (rev 06)&lt;br /&gt;
00:04.0 Signal processing controller [1180]: Intel Corporation Device [8086:1903] (rev 07)&lt;br /&gt;
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f] (rev 31)&lt;br /&gt;
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131] (rev 31)&lt;br /&gt;
00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #0 [8086:a160] (rev 31)&lt;br /&gt;
00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #1 [8086:a161] (rev 31)&lt;br /&gt;
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-H CSME HECI #1 [8086:a13a] (rev 31)&lt;br /&gt;
00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-H SATA Controller [AHCI mode] [8086:a103] (rev 31)&lt;br /&gt;
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #1 [8086:a110] (rev f1)&lt;br /&gt;
00:1c.1 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #2 [8086:a111] (rev f1)&lt;br /&gt;
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #9 [8086:a118] (rev f1)&lt;br /&gt;
00:1d.4 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #13 [8086:a11c] (rev f1)&lt;br /&gt;
00:1d.6 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #15 [8086:a11e] (rev f1)&lt;br /&gt;
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC Controller [8086:a14e] (rev 31)&lt;br /&gt;
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H PMC [8086:a121] (rev 31)&lt;br /&gt;
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD Audio [8086:a170] (rev 31)&lt;br /&gt;
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus [8086:a123] (rev 31)&lt;br /&gt;
01:00.0 3D controller [0302]: NVIDIA Corporation GM107M [GeForce GTX 960M] [10de:139b] (rev ff)&lt;br /&gt;
02:00.0 Network controller [0280]: Broadcom Corporation BCM43602 802.11ac Wireless LAN SoC [14e4:43ba] (rev 01)&lt;br /&gt;
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device [10ec:525a] (rev 01)&lt;br /&gt;
04:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd Device [144d:a802] (rev 01)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 001 Device 003: ID 04f3:21d5 Elan Microelectronics Corp.            &amp;lt;= touchscreen&lt;br /&gt;
Bus 001 Device 002: ID 0a5c:6410 Broadcom Corp.                         &amp;lt;= bluetooth&lt;br /&gt;
Bus 001 Device 004: ID 0c45:6713 Microdia                               &amp;lt;= webcam&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From lscpu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Architecture:          x86_64&lt;br /&gt;
CPU op-mode(s):        32-bit, 64-bit&lt;br /&gt;
Byte Order:            Little Endian&lt;br /&gt;
CPU(s):                8&lt;br /&gt;
On-line CPU(s) list:   0-7&lt;br /&gt;
Thread(s) per core:    2&lt;br /&gt;
Core(s) per socket:    4&lt;br /&gt;
Socket(s):             1&lt;br /&gt;
NUMA node(s):          1&lt;br /&gt;
Vendor ID:             GenuineIntel&lt;br /&gt;
CPU family:            6&lt;br /&gt;
Model:                 94&lt;br /&gt;
Model name:            Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz&lt;br /&gt;
Stepping:              3&lt;br /&gt;
CPU MHz:               2847.812&lt;br /&gt;
CPU max MHz:           3500.0000&lt;br /&gt;
CPU min MHz:           800.0000&lt;br /&gt;
BogoMIPS:              5183.88&lt;br /&gt;
Virtualization:        VT-x&lt;br /&gt;
L1d cache:             32K&lt;br /&gt;
L1i cache:             32K&lt;br /&gt;
L2 cache:              256K&lt;br /&gt;
L3 cache:              6144K&lt;br /&gt;
NUMA node0 CPU(s):     0-7&lt;br /&gt;
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush &lt;br /&gt;
dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts &lt;br /&gt;
rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 &lt;br /&gt;
ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx &lt;br /&gt;
f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_notify hwp_act_window hwp_epp &lt;br /&gt;
intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid &lt;br /&gt;
rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dell Wireless 1830 = BCM43602 + BCM20703A1 (DW1830 Bluetooth 4.1 LE)&lt;br /&gt;
&lt;br /&gt;
BCM43602	PCI ID: 14e4:43ba&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# smartctl -d scsi -i /dev/nvme0n1&lt;br /&gt;
smartctl 6.4 2015-06-04 r4109 [x86_64-linux-4.3.0-1-amd64] (local build)&lt;br /&gt;
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org&lt;br /&gt;
&lt;br /&gt;
=== START OF INFORMATION SECTION ===&lt;br /&gt;
Vendor:               NVMe&lt;br /&gt;
Product:              PM951 NVMe SAMSU&lt;br /&gt;
Revision:             7D0Q&lt;br /&gt;
Compliance:           SPC-4&lt;br /&gt;
User Capacity:        1,024,209,543,168 bytes [1.02 TB]&lt;br /&gt;
Logical block size:   512 bytes&lt;br /&gt;
Rotation Rate:        Solid State Device&lt;br /&gt;
Logical Unit id:      0x0025384cf1b0fd29&lt;br /&gt;
Serial number:        S2FZNXAGC03824&lt;br /&gt;
Device type:          disk&lt;br /&gt;
Local Time is:        Sun Feb 14 22:02:03 2016 CET&lt;br /&gt;
SMART support is:     Unavailable - device lacks SMART capability.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* http://topics-cdn.dell.com/pdf/xps-15-9550-laptop_Service%20Manual_en-us.pdf&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dell_XPS_15&lt;br /&gt;
* https://bbs.archlinux.org/viewtopic.php?id=204739&lt;br /&gt;
* http://ubuntuforums.org/showthread.php?t=2301071&lt;br /&gt;
* http://forthescience.org/blog/2015/03/20/installing_ubuntu_14_04_on_the_new_dell_xps_13/&lt;br /&gt;
* https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013&lt;br /&gt;
* http://bartongeorge.net/2015/02/23/update-2-dell-xps-13-laptop-developer-edition-sputnik-gen-4/&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
I first tried to keep a dual-boot just in case, but once we disable Raid and put SATA in AHCI mode, Windows can&#039;t boot anymore. (later I read it could be possible to fix it by rebooting several times Windows till safe mode is kicked in, but it was too late for me.)&lt;br /&gt;
&lt;br /&gt;
Just in case again, one can boot Windows and create a USB recovery.&lt;br /&gt;
==Bios==&lt;br /&gt;
* &#039;&#039;&#039;Secure Boot: disable&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SATA: switch from Raid to AHCI&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Advances Boot Options:/ NOT Enable Legacy Option ROMs&#039;&#039;&#039;&lt;br /&gt;
* Boot: not sure it&#039;s needed but I disabled Windows boot manager entry and kept the hdd UEFI entry: UEFI: PM951 NVMe SAMSUNG 1024GB, Partition 1&lt;br /&gt;
** See below (first boot) how to create a new entry&lt;br /&gt;
* POST/Fastboot/Auto&lt;br /&gt;
* auto os recovery threshold off&lt;br /&gt;
* Fn Lock Options&lt;br /&gt;
** NOT Fn Lock&lt;br /&gt;
** Lock Mode Enable/Secondary&lt;br /&gt;
* UEFI Capsule Firmware Updates / Enable&lt;br /&gt;
** This allows using ``fwupdmgr update`` e.g. to update the TPM firmware&lt;br /&gt;
&lt;br /&gt;
To update the BIOS:&lt;br /&gt;
* put it on a USB stick&lt;br /&gt;
* reboot&lt;br /&gt;
* select BIOS flash update on the boot screen (F12).&lt;br /&gt;
No need to put it on a bootable DOS, just give the exe to the BIOS update built-in util.&lt;br /&gt;
&amp;lt;br&amp;gt;You can even drop the update on /boot/efi as it&#039;s also a FAT partition, no need for a USB memory stick.&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
* 1.2.0 aka A6 [https://downloads.dell.com/FOLDER03659467M/1/XPS_9550_1.2.0.exe XPS_9550_1.2.0.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=KTR76 fixes]&lt;br /&gt;
* 1.2.10 aka A10 [https://downloads.dell.com/FOLDER03800340M/1/XPS_9550_1.2.10.exe XPS_9550_1.2.10.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=96T2K fixes]&lt;br /&gt;
* 1.2.14 aka A13 [https://downloads.dell.com/FOLDER03906323M/1/XPS_9550_1.2.14.exe XPS_9550_1.2.14.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=VNMDK fixes]&lt;br /&gt;
* 1.2.16 [https://downloads.dell.com/FOLDER04030973M/1/XPS_9550_1.2.16.exe XPS_9550_1.2.16.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=J8GY6 fixes]&lt;br /&gt;
* 1.2.18 aka A16 [https://downloads.dell.com/FOLDER04078627M/1/XPS_9550_1.2.18.exe XPS_9550_1.2.18.exe] [http://www.dell.com/support/home/us/en/4/Drivers/DriversDetails?driverId=KD0C7 fixes]&lt;br /&gt;
* 1.2.21 [https://downloads.dell.com/FOLDER04190863M/1/XPS_9550_1.2.21.exe XPS_9550_1.2.21.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=6RV34 fixes]&lt;br /&gt;
* 1.2.25 [https://downloads.dell.com/FOLDER04319442M/1/XPS_9550_1.2.25.exe XPS_9550_1.2.25.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=3W30W fixes]&lt;br /&gt;
* 1.2.29 [https://downloads.dell.com/FOLDER04449988M/1/XPS_9550_1.2.29.exe XPS_9550_1.2.29.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=F7M6G fixes]&lt;br /&gt;
* 1.3.0 [https://downloads.dell.com/FOLDER04481870M/1/XPS_9550_1.3.0.exe XPS_9550_1.3.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=NXVMP fixes]&lt;br /&gt;
* 1.4.0 [https://downloads.dell.com/FOLDER04499656M/1/XPS_9550_1.4.0.exe XPS_9550_1.4.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=DR9N6 fixes]&lt;br /&gt;
* 1.5.1 [https://downloads.dell.com/FOLDER04604618M/1/XPS_9550_1.5.1.exe XPS_9550_1.5.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=TWKFC fixes]&lt;br /&gt;
* 1.6.1 [https://downloads.dell.com/FOLDER04717493M/1/XPS_9550_1.6.1.exe XPS_9550_1.6.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=PFJ08 fixes]&lt;br /&gt;
* 1.7.0 [https://downloads.dell.com/FOLDER04839266M/1/XPS_9550_1.7.0.exe XPS_9550_1.7.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=RYY62 fixes]&lt;br /&gt;
* 1.8.0 [https://downloads.dell.com/FOLDER05099834M/1/XPS_9550_1.8.0.exe XPS_9550_1.8.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=4GDY8 fixes]&lt;br /&gt;
* 1.9.0 [https://downloads.dell.com/FOLDER05256907M/1/XPS_9550_1.9.0.exe XPS_9550_1.9.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=xv1gp fixes]&lt;br /&gt;
* 1.10.0 [https://downloads.dell.com/FOLDER05476993M/1/XPS_9550_1.10.0.exe XPS_9550_1.10.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=3N7TY fixes]&lt;br /&gt;
* 1.11.2 [https://downloads.dell.com/FOLDER05770328M/1/XPS_9550_1.11.2.exe XPS_9550_1.11.2.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=gtm85 fixes]&lt;br /&gt;
* 1.12.0 [https://downloads.dell.com/FOLDER05865451M/1/XPS_9550_1.12.0.exe XPS_9550_1.12.0.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=7HTW2 fixes]&lt;br /&gt;
* 1.13.1 [https://dl.dell.com/FOLDER06021536M/1/XPS_9550_1.13.1.exe XPS_9550_1.13.1.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=3hr07 fixes]&lt;br /&gt;
&lt;br /&gt;
Attention: with versions 1.2.10 through 1.2.16 and older Linux kernels, there is a serious bug that let the screen black after suspend/wake up. The workaround is to set the lightness to the maximum but it breaks further lightness tuning.&lt;br /&gt;
&lt;br /&gt;
Linux kernels 4.8 and below tend to work best with A6 BIOS (1.2.0), although there is a workaround that allows it to work with later versions.  This workaround uses the intel_reg utility to reset the &amp;quot;pwm_granuality&amp;quot; setting of the onboard graphics.  Solution discussed here: [http://en.community.dell.com/techcenter/os-applications/f/4613/t/19985320].  This issue is reportedly fixed in Linux 4.9, and also in recent Ubuntu 16.10 kernel updates.  See the patch here [https://patchwork.freedesktop.org/patch/109407/].&lt;br /&gt;
&lt;br /&gt;
Even with the intel_reg workaround above, the screen brightness cannot be set to the lowest level without turning the screen off.  This is fixed in 1.2.18.&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
I kept UEFI so we need a Debian netinstall because liveCD doesn&#039;t have UEFI support yet.&lt;br /&gt;
&amp;lt;br&amp;gt;But Wi-Fi requires a proprietary firmware:&lt;br /&gt;
 https://github.com/OpenELEC/wlan-firmware/blob/master/firmware/brcm/brcmfmac43602-pcie.bin&lt;br /&gt;
so the easiest is to take a Debian netinstall with proprietary firmwares included.&lt;br /&gt;
&amp;lt;br&amp;gt;At time of writing Stretch is testing and last release is alpha5:&lt;br /&gt;
 http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/stretch_di_alpha5/amd64/iso-cd/&lt;br /&gt;
dd the image on a USB stick and boot it.&lt;br /&gt;
&amp;lt;br&amp;gt;It will also complain for a missing brcmfmac43602-pcie.txt but we can safely ignore it. (well I think so, but Wi-Fi has troubles now and then under heavy load, see below)&lt;br /&gt;
&amp;lt;!-- sysml eml ems --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I chose a guided partitionning of the entire disk, with encrypted LVM containing /, /home and swap. But proposed / was a bit too small IMHO (10G) so I deleted and recreated / (50G) and /home.&lt;br /&gt;
&amp;lt;br&amp;gt;Initially I tried to add the &amp;quot;discard&amp;quot; option for the partitions which should help on SSD but the kernel reported that &amp;quot;discard&amp;quot; wasn&#039;t supported by the disk.&lt;br /&gt;
&lt;br /&gt;
If you want to backup partition table and partitions before destroying everything, it&#039;s the right time!&lt;br /&gt;
 parted /dev/nvme0n1&lt;br /&gt;
 print&lt;br /&gt;
 sgdisk --backup=/some/safe/location/nvme0n1.gpt /dev/nvme0n1&lt;br /&gt;
I installed Cinnamon. I don&#039;t know for the others but Cinnamon has a nice auto setting to double features on HiDPI screens.&lt;br /&gt;
&lt;br /&gt;
===Gnome===&lt;br /&gt;
Update: now using Gnome3.&lt;br /&gt;
Needs to replace lightdm by gdm3 to get newer lock screen (gnome-screensaver is deprecated)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg-reconfigure gdm3&lt;br /&gt;
(choose gdm3)&lt;br /&gt;
# delay before blanking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.session idle-delay 300&lt;br /&gt;
# delay after blanking before locking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.screensaver lock-delay 10&lt;br /&gt;
(reboot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sometimes after a crash, gnome extensions (https://extensions.gnome.org/local/) are disabled. To reenable them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dconf write /org/gnome/shell/disable-user-extensions false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Wayland===&lt;br /&gt;
Got quite some troubles with Wayland, so I reverted it back to X11:&lt;br /&gt;
&lt;br /&gt;
Edit /etc/gdm3/daemon.conf and uncomment line:&lt;br /&gt;
    WaylandEnable=false&lt;br /&gt;
&lt;br /&gt;
==First boot==&lt;br /&gt;
Once installed, the Debian didn&#039;t boot up.&lt;br /&gt;
&amp;lt;br&amp;gt;I tried many things but at the end the only thing that worked was to copy Debian EFI to the default one:&lt;br /&gt;
&lt;br /&gt;
Starting the netinstall again, in rescue mode, get a chroot shell, then&lt;br /&gt;
 mount /dev/nvme0n1p1 /boot/efi&lt;br /&gt;
 cd /boot/efi/EFI&lt;br /&gt;
 mkdir boot&lt;br /&gt;
 cp debian/grubx64.efi boot/bootx64.efi&lt;br /&gt;
I also deleted the Windows files in EFI.&lt;br /&gt;
&lt;br /&gt;
Resource:&lt;br /&gt;
* https://wiki.debian.org/GrubEFIReinstall&lt;br /&gt;
* https://wiki.archlinux.org/index.php/GRUB#Create_an_ESP&lt;br /&gt;
* https://help.ubuntu.com/community/UEFI&lt;br /&gt;
* https://wiki.debian.org/UEFI&lt;br /&gt;
* https://isalo.org/wiki.debian-fr/Debian_%26_UEFI    &lt;br /&gt;
&lt;br /&gt;
FTR things that failed included:&lt;br /&gt;
* [http://www.rodsbooks.com/refind/getting.html Refind] couldn&#039;t boot at all. Strange as the netinstall could boot...&lt;br /&gt;
* tweaks with efibootmgr, update-grub etc&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UPDATE&#039;&#039;&#039;: It might be possible to fix the issue from the BIOS itself, see http://www.dell.com/support/article/us/en/04/SLN297060/en&lt;br /&gt;
* Boot Sequence / Add Boot Option&lt;br /&gt;
** Boot Option Name : Debian&lt;br /&gt;
** File System List : PciRoot(0x0)/Pic(0x1D,0x0)/Pci(0x0,0x0)/?/HD(1,GPT,&amp;lt;UUID&amp;gt;)&lt;br /&gt;
** File Name : FS0 - EFI - debian - grubx64.efi&lt;br /&gt;
* Advances Boot Options / NOT Enable Legacy Option ROMs&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
===Working===&lt;br /&gt;
* Screen&lt;br /&gt;
* Touchscreen&lt;br /&gt;
* Touchpad&lt;br /&gt;
* Keyboard backlight and media buttons (volume, luminosity, backlight)&lt;br /&gt;
* Wi-Fi (with the proprietary driver, cf installation above)&lt;br /&gt;
* HDMI&lt;br /&gt;
* SD-Card reader&lt;br /&gt;
* Speakers, mic&lt;br /&gt;
* Webcam&lt;br /&gt;
&lt;br /&gt;
===Working after manual steps===&lt;br /&gt;
====i915====&lt;br /&gt;
Screen was working but dmesg was complaining:&lt;br /&gt;
 i915 0000:00:02.0: firmware: failed to load i915/skl_dmc_ver1.bin&lt;br /&gt;
So I installed that firmware, not sure what it&#039;s changed&lt;br /&gt;
 sudo apt-get install firmware-misc-nonfree&lt;br /&gt;
====Optimus &amp;amp; CUDA====&lt;br /&gt;
Resources:&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Optimus&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Bumblebee&lt;br /&gt;
 apt-get install bumblebee-nvidia nvidia-cuda-toolkit mesa-utils&lt;br /&gt;
 reboot&lt;br /&gt;
Examples:&lt;br /&gt;
 optirun -b none nvidia-settings -c :8&lt;br /&gt;
 optirun -vv glxgears&lt;br /&gt;
 optirun -vv clinfo&lt;br /&gt;
 optirun -b none ./hashcat64.bin -I&lt;br /&gt;
 optirun --no-xorg ./hashcat64.bin -I&lt;br /&gt;
 optirun -b none ./hashcat.bin -m 500 example500.hash example.dict&lt;br /&gt;
GPU load:&lt;br /&gt;
 optirun --no-xorg nvidia-smi&lt;br /&gt;
&lt;br /&gt;
As bridge, primus or virtualgl can be used. Primus is available in the Debian repos while VirtualGL is [https://sourceforge.net/projects/virtualgl/?source=typ_redirect here]. Using primus currently.&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
Nothing wrong with the touchpad but its default config is a bit painful especially because it&#039;s large and my right palm touches it often, even with the option to diable it when typing and because it&#039;s &amp;quot;soft&amp;quot; buttons.&lt;br /&gt;
&amp;lt;br&amp;gt;I disabled the button area to limit somehow the problem but still you&#039;ve to get used to first touch and hold before pressing a button to do a drag and drop and not the opposite.&lt;br /&gt;
 synclient AreaBottomEdge=4026&lt;br /&gt;
To add a middle button:&lt;br /&gt;
 synclient RightButtonAreaLeft=3914&lt;br /&gt;
 synclient RightButtonAreaRight=0&lt;br /&gt;
 synclient RightButtonAreaTop=4026&lt;br /&gt;
 synclient RightButtonAreaBottom=0&lt;br /&gt;
 synclient MiddleButtonAreaLeft=3100&lt;br /&gt;
 synclient MiddleButtonAreaRight=3873&lt;br /&gt;
 synclient MiddleButtonAreaTop=4026&lt;br /&gt;
 synclient MiddleButtonAreaBottom=0&lt;br /&gt;
And because I love it:&lt;br /&gt;
 synclient CircularScrolling=1&lt;br /&gt;
Some doc [https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Buttonless_touchpads_.28aka_ClickPads.29 here] and the official one [http://www.x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html here]&lt;br /&gt;
&lt;br /&gt;
If with some kernels you get troubles using Synaptics options, check dmesg, maybe Touchpad is detected by another driver too:&lt;br /&gt;
 DLL06E4:01 06CB:7A13 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-7/i2c-DLL06E4:01/0018:06CB:7A13.0003/input/input14&lt;br /&gt;
 hid-multitouch 0018:06CB:7A13.0003: input,hidraw2: I2C HID v1.00 Mouse [DLL06E4:01 06CB:7A13] on i2c-DLL06E4:01&lt;br /&gt;
If this is so, add /etc/modprobe.d/synaptics.conf with this line, cf Kernel section below:&lt;br /&gt;
 blacklist i2c-designware-platform&lt;br /&gt;
&lt;br /&gt;
On recent kernels, i2c-designware-platform is directly in the kernel, not as module anymore.&lt;br /&gt;
To manage to blacklist it, see https://unix.stackexchange.com/questions/423797/how-do-i-disable-i2c-designware-support-when-its-not-built-as-a-module#446913&lt;br /&gt;
Edit /etc/default/grub and append the following blacklist invocation to the command line, then update-grub.&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;… initcall_blacklist=dw_i2c_init_driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Touchscreen====&lt;br /&gt;
Touchscreen works well but when an external screen is connected, it spans over both screens so e.g. touching the middle of the laptop screen moves the mouse to some middle point of the virtual screen combining both screens.&lt;br /&gt;
&amp;lt;br&amp;gt;To fix it, see https://wiki.archlinux.org/index.php/Calibrating_Touchscreen&lt;br /&gt;
&amp;lt;br&amp;gt;This example is for an external screen mapped to the right of the laptop screen:&lt;br /&gt;
 # c0 = width of laptop screen / total width&lt;br /&gt;
 c0=$(bc -l &amp;lt;&amp;lt;&amp;lt; &amp;quot;scale=2; $(xrandr|grep -A1 eDP1|sed &#039;1d;s/x.*//&#039;)/$(xrandr|grep &#039;^Screen 0&#039;|sed &#039;s/.*current //;s/ x.*//&#039;)&amp;quot;)&lt;br /&gt;
 xinput set-prop &amp;quot;ELAN Touchscreen&amp;quot; --type=float &amp;quot;Coordinate Transformation Matrix&amp;quot; \&lt;br /&gt;
    c0 0  0 \&lt;br /&gt;
    0  1  0 \&lt;br /&gt;
    0  0  1&lt;br /&gt;
&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
Kernel complains about a missing file.&lt;br /&gt;
&amp;lt;br&amp;gt;Apparently we can get it from Windows drivers but I don&#039;t know where to find them, so I took [https://www.dropbox.com/s/8goc4omhnzxij93/BCM-0a5c-6410.hcd?dl=0 this one] and copied it into /lib/firmware/brcm&lt;br /&gt;
&lt;br /&gt;
Then Bluetooth was recognized but I couldn&#039;t pair my WM615 mouse.&lt;br /&gt;
&amp;lt;br&amp;gt;After restarting the Bt adaptor, I could finally pair:&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
  power off&lt;br /&gt;
  power on&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* https://wiki.debian.org/BluetoothUser&lt;br /&gt;
* https://wiki.archlinux.org/index.php/bluetooth&lt;br /&gt;
There is also a possibility to pair directly from bluetoothctl, see https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see [[#Hardware_changes]]&lt;br /&gt;
&lt;br /&gt;
====HiDPI====&lt;br /&gt;
Cinnamon handles it nicely but some applications don&#039;t such as Gimp and you end up with a microscopic tools ribbon.&lt;br /&gt;
&amp;lt;br&amp;gt;See https://wiki.archlinux.org/index.php/HiDPI for some useful tips&lt;br /&gt;
&lt;br /&gt;
Cinnamon / System Settings / Desktop Scaling has the same effect as `gsettings set org.cinnamon.desktop.interface scaling-factor 2`&lt;br /&gt;
&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (1016x572 millimeters)&lt;br /&gt;
   resolution:    96x96 dots per inch&lt;br /&gt;
I&#039;ve no ruler at hand but if it&#039;s 15.6&#039;&#039; in diagonal and pixels are square, this gives 293.4 dpi for screen dimensions of 332x187mm.&lt;br /&gt;
&amp;lt;br&amp;gt;So closest hit with common DPI is 96*3=288dpi&lt;br /&gt;
 xrandr --dpi 288&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (338x190 millimeters)&lt;br /&gt;
   resolution:    289x289 dots per inch&lt;br /&gt;
Let&#039;s document those fictive dimensions for next boots by creating /etc/X11/xorg.conf.d/90-monitor.conf with&lt;br /&gt;
 Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
     Identifier             &amp;quot;&amp;lt;default monitor&amp;gt;&amp;quot;&lt;br /&gt;
     DisplaySize            338 190    # In millimeters&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT5 and GTK+ 3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;To enable better scaling of QT5 and GTK+ 3, add to .bashrc (not to .xsessionrc otherwise Cinnamon taskbar is messed up!):&lt;br /&gt;
 QT_DEVICE_PIXEL_RATIO=3&lt;br /&gt;
 GDK_SCALE=3&lt;br /&gt;
 GDK_DPI_SCALE=0.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. Skype&lt;br /&gt;
 sudo apt-get install qt4-qtconfig&lt;br /&gt;
 qtconfig-qt4&lt;br /&gt;
=&amp;gt; one can change font size&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gimp 2.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. copy /usr/share/gimp/2.0/themes/Default as ~/.gimp-2.8/themes/HiDPI and change a few options:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
--- gtkrc&lt;br /&gt;
+++ gtkrc&lt;br /&gt;
-  GimpToolPalette::tool-icon-size   = button&lt;br /&gt;
+  GimpToolPalette::tool-icon-size   = dialog&lt;br /&gt;
-  GimpEditor::button-icon-size      = menu&lt;br /&gt;
+  GimpEditor::button-icon-size      = button&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wine&#039;&#039;&#039;&lt;br /&gt;
 winecfg&lt;br /&gt;
Change &amp;quot;dpi&amp;quot; in &amp;quot;Graphics&amp;quot; tab&lt;br /&gt;
&#039;&#039;&#039;Virtualbox&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;View/Scale Factor is helpful...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chromium&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Chrome works fine but &#039;&#039;Chromium&#039;&#039; broke at some point, so I&#039;ve to launch it with:&lt;br /&gt;
&lt;br /&gt;
 GDK_SCALE=2 exec chromium&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Small console font&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;I don&#039;t care but if that&#039;s an issue for you, from [https://github.com/mpalourdio/xps13/blob/master/HiDPI/tty.md here]:&lt;br /&gt;
 sudo dpkg-reconfigure console-setup&lt;br /&gt;
* Choose UTF-8&lt;br /&gt;
* Choose the default Combined - Latin, ... option (&amp;quot;Latin&amp;quot; includes the English alphabet)&lt;br /&gt;
* Select the terminus font&lt;br /&gt;
* Select 16x32&lt;br /&gt;
* OK&lt;br /&gt;
To apply immediately, open a TTY and run setupcon, else just reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Multiple displays&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Combining HiDPI screen with external non-HiDPI? See https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xpra&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;cf https://xpra.org/trac/ticket/2492&lt;br /&gt;
&lt;br /&gt;
====Sensors====&lt;br /&gt;
 apt-get install lm-sensors&lt;br /&gt;
 sensors-detect&lt;br /&gt;
Sensors-detect found coretemp which is now loaded via /etc/modules:&lt;br /&gt;
 coretemp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====External microphone====&lt;br /&gt;
The sole jack is a TRRS, combining output and mic.&lt;br /&gt;
&amp;lt;br&amp;gt;Soundcard is a Realtek ALC3266&lt;br /&gt;
  grep -r Realtek /proc/asound/card*&lt;br /&gt;
  /proc/asound/card0/codec#0:Codec: Realtek ALC3266&lt;br /&gt;
&amp;lt;br&amp;gt;With Debian+Cinnamon, the system detects the mic, we can see it in the sound properties and select it, but still the internal mic is used.&lt;br /&gt;
&amp;lt;br&amp;gt;When using pavucontrol, selecting the &amp;quot;headset microphone&amp;quot; works fine (it still needs some level boosting).&lt;br /&gt;
&lt;br /&gt;
====DA200====&lt;br /&gt;
[http://accessories.euro.dell.com/sna/products/Station_daccueil/productdetail.aspx?c=fr&amp;amp;l=fr&amp;amp;s=dhs&amp;amp;cs=frdhs1&amp;amp;sku=470-ABRY DA200] used to be recognized only if it was plugged at boot.&lt;br /&gt;
&amp;lt;br&amp;gt;With kernel 4.6 the device is properly detected dynamically.&lt;br /&gt;
&amp;lt;br&amp;gt;The adapter is actually using DisplayPort. &lt;br /&gt;
&amp;lt;br&amp;gt;VGA output works.&lt;br /&gt;
&lt;br /&gt;
HDMI output is limited to some modes (max 1920x1080, cf [http://www.dell.com/support/article/us/en/19/SLN303466 Dell support]) and by default xrandr will try an unsupported mode.&lt;br /&gt;
&amp;lt;br&amp;gt;Even &amp;quot;xrandr --output DP-1 --mode 1920x1080&amp;quot; fails by default.&lt;br /&gt;
&lt;br /&gt;
Some supported modes:  800x600, 1024x768, 1280x720, 1920x1080i&lt;br /&gt;
&amp;lt;br&amp;gt;1920x1080i is interlaced and awful to look at.&lt;br /&gt;
&amp;lt;br&amp;gt;Reducing the rate allows a non-interlaced 1920x1080 mode, you can test it with:&lt;br /&gt;
 xrandr --output DP-1 --mode 1920x1080 -r 30&lt;br /&gt;
If this works for you, you can create a new mode, using cvt to find the proper parameters:&lt;br /&gt;
 cvt 1920 1080 30&lt;br /&gt;
 # 1920x1080 29.95 Hz (CVT) hsync: 33.01 kHz; pclk: 79.75 MHz&lt;br /&gt;
 Modeline &amp;quot;1920x1080_30.00&amp;quot;   79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
Creating and adding the new mode:&lt;br /&gt;
 xrandr --newmode &amp;quot;1920x1080_30.00&amp;quot; 79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
 xrandr --addmode DP-1  &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
Now you can choose this new mode:&lt;br /&gt;
  xrandr --output DP-1 --mode &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
&lt;br /&gt;
When plugged the following hardware gets detected:&lt;br /&gt;
&lt;br /&gt;
lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp..     &amp;lt;= Ethernet&lt;br /&gt;
Bus 004 Device 002: ID 05e3:0617 Genesys Logic, Inc..&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 003 Device 003: ID 0835:2a01 Action Star Enterprise Co., Ltd. &amp;lt;= Billboard&lt;br /&gt;
Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;The USB Billboard Device Class definition describes the methods used to communicate the Alternate Modes supported by a device container to a host system. More details on Billboard Devices are available in the USB Billboard Device Class specification at the following link: http://www.usb.org/developers/docs/devclass_docs/.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
lspci:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
06:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:01.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:02.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
0a:00.0 USB controller: Intel Corporation Device 15b5 (prog-if 30 [XHCI])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lsmod:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
r8152                  49152  0&lt;br /&gt;
cdc_ether              16384  0&lt;br /&gt;
usbnet                 40960  1 cdc_ether&lt;br /&gt;
mii                    16384  2 r8152,usbnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Solved issues===&lt;br /&gt;
====i915 and blank screen====&lt;br /&gt;
There were numerous issues with the video card. Now with latest kernels (&amp;gt;=4.8) most issues are gone, still some occasional blank screen or freeze when plugging an external HDMI.&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
WM615 mouse used to act erratically, the cursor stopping now and then. Now with latest kernels and an Intel Wi-Fi+BT card it&#039;s fine.&lt;br /&gt;
====Wi-Fi====&lt;br /&gt;
Wi-Fi tends to disassociate under heavy load, switching to other SSIDs or frequencies (5Ghz&amp;lt;&amp;gt;2.4GHz) and coming back seems to help.&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see #Hardware_changes&lt;br /&gt;
&lt;br /&gt;
===Issues===&lt;br /&gt;
====rfkill button====&lt;br /&gt;
Rfkill button of the keyboard (Fn+PrtScr) doesn&#039;t seem to work, no big deal.&lt;br /&gt;
&lt;br /&gt;
==Kernels==&lt;br /&gt;
initramfs complains about lvmetad and I&#039;m not sure it&#039;s that useful on SSD, so just disabling it:&lt;br /&gt;
&amp;lt;br&amp;gt;Edit /etc/lvm/lvm.conf&lt;br /&gt;
 use_lvmetad=0&lt;br /&gt;
Then stop it&lt;br /&gt;
 systemctl stop lvm2-lvmetad&lt;br /&gt;
===Debian===&lt;br /&gt;
Debian kernel 4.8 works quite well&lt;br /&gt;
===Compilation notes===&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;, to compile &amp;gt;=4.4, one needs at least initramfs-tools v0.122 to get the nvme.ko properly loaded and therefore the SSD properly seen.&lt;br /&gt;
&lt;br /&gt;
To compile a vanilla kernel, cf http://www.cyberciti.biz/faq/debian-ubuntu-building-installing-a-custom-linux-kernel/&lt;br /&gt;
 sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc&lt;br /&gt;
 sudo apt-get install kernel-package&lt;br /&gt;
 wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz&lt;br /&gt;
 tar xf linux-4.4.tar.xz&lt;br /&gt;
 cd linux-4.4&lt;br /&gt;
 cp /boot/config-$(uname -r) .config&lt;br /&gt;
 make menuconfig&lt;br /&gt;
 make-kpkg clean&lt;br /&gt;
 make-kpkg --rootcmd fakeroot --initrd --append_to_version=9-doegox kernel_image kernel_headers -j 7&lt;br /&gt;
&lt;br /&gt;
==Hardware changes==&lt;br /&gt;
Replacing Broadcom Wi-Fi+BT by an [https://wikidevi.com/wiki/Intel Intel one]:&lt;br /&gt;
* Intel 7265 Dual Band Wireless-AC 7265NGW Card 802.11ac 867Mbps WIFI BT4.0 UK&lt;br /&gt;
** http://www.befr.ebay.be/itm/262049756966?_trksid=p2060353.m2749.l2649&amp;amp;ssPageName=STRK%3AMEBIDX%3AIT&lt;br /&gt;
** https://downloadcenter.intel.com/download/17045&lt;br /&gt;
** This requires installing package firmware-iwlwifi&lt;br /&gt;
** Seems to have less Wi-Fi issues, but still the same BT problems pairing the Dell mouse&lt;br /&gt;
&lt;br /&gt;
 iwlwifi 0000:02:00.0: firmware: direct-loading firmware iwlwifi-7265-17.ucode&lt;br /&gt;
 iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 7265, REV=0x184&lt;br /&gt;
&lt;br /&gt;
Alternatives to DA200:&lt;br /&gt;
* HDMI Male To VGA Female Converter&lt;br /&gt;
** http://www.aliexpress.com/item/1pc-HDMI-Male-To-VGA-Female-Converter-Box-Adapter-With-Audio-Cable-For-PC-HDTVHot-New/32448171552.html&lt;br /&gt;
* USB 3.0 10/100/1000Mbps Gigabit Ethernet RJ45&lt;br /&gt;
** http://www.aliexpress.com/item/Hot-selling-New-USB-3-0-10-100-1000Mbps-Gigabit-Ethernet-RJ45-External-Network-Card-LAN/32546613204.html&lt;br /&gt;
* 4-Port Ultra-Slim USB 3.0 Hub&lt;br /&gt;
** https://www.anker.com/products/A7516011&lt;br /&gt;
** http://www.amazon.de/Anker-Datenhub-Ultrabooks-weiteren-kompatiblen/dp/B00Y211AFM/&lt;br /&gt;
&lt;br /&gt;
==Misc hardware==&lt;br /&gt;
Smartcard reader&lt;br /&gt;
* ACS ACR38U PocketMate Smart Card Reader&lt;br /&gt;
** http://www.acs.com.hk/en/products/160/acr38u-pocketmate-smart-card-reader/&lt;br /&gt;
** http://www.befr.ebay.be/itm/EU-SHIPPING-Smart-Card-USB-ACS-ACR38U-National-ID-Tachograph-Reader-Writer-/121899037557&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10541</id>
		<title>Laptop Dell XPS 15</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10541"/>
		<updated>2022-01-09T14:22:59Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Gnome */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Notes about installing a Debian Stretch on a Dell XPS 15&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
Dell XPS 15 model 9550 (variant with touchscreen &amp;amp; PCIe m.2 ssd)&lt;br /&gt;
&lt;br /&gt;
From the [http://www.dell.com/support/home/fr/fr/frdhs1/product-support/servicetag/DHVNH72/configuration configuration] list:&lt;br /&gt;
* 6th Generation Intel(R) Core (TM) i7-6700HQ Quad Core (6M Cache, up to 3.5 GHz)&lt;br /&gt;
* 16Go (2x8Go) DDR4 2133MHz&lt;br /&gt;
* 15.6&amp;quot; 4K Ultra HD (3840 x 2160) InfinityEdge touch, Sliver&lt;br /&gt;
* 1To PCIe Solid State&lt;br /&gt;
* DW1830 3x3 802.11ac 2.4/5GHz + Bluetooth 4.1&lt;br /&gt;
* Dell 84 WHr 6-Cell Lithium-Ion Battery&lt;br /&gt;
* Internal US/International Qwerty Backlit Keyboard&lt;br /&gt;
From the drivers list:&lt;br /&gt;
* Realtek High Definition Audio ALC3266&lt;br /&gt;
* Realtek RTS5242 PCIe Gen2 CardReader&lt;br /&gt;
* Realtek USB GBE Ethernet Controller&lt;br /&gt;
* ST Microlectronics LNG3DMTR Motion Sensor&lt;br /&gt;
* Intel HD Graphics 530/P530&lt;br /&gt;
* nVIDIA Geforce GTX 960M Graphics&lt;br /&gt;
From dmesg (incomplete):&lt;br /&gt;
* BCM20703A1 Bluetooth 4.1 (firmware brcm/BCM-0a5c-6410.hcd)&lt;br /&gt;
From lspci -nn:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00:00.0 Host bridge [0600]: Intel Corporation Sky Lake Host Bridge/DRAM Registers [8086:1910] (rev 07)&lt;br /&gt;
00:01.0 PCI bridge [0604]: Intel Corporation Sky Lake PCIe Controller (x16) [8086:1901] (rev 07)&lt;br /&gt;
00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:191b] (rev 06)&lt;br /&gt;
00:04.0 Signal processing controller [1180]: Intel Corporation Device [8086:1903] (rev 07)&lt;br /&gt;
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f] (rev 31)&lt;br /&gt;
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131] (rev 31)&lt;br /&gt;
00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #0 [8086:a160] (rev 31)&lt;br /&gt;
00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #1 [8086:a161] (rev 31)&lt;br /&gt;
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-H CSME HECI #1 [8086:a13a] (rev 31)&lt;br /&gt;
00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-H SATA Controller [AHCI mode] [8086:a103] (rev 31)&lt;br /&gt;
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #1 [8086:a110] (rev f1)&lt;br /&gt;
00:1c.1 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #2 [8086:a111] (rev f1)&lt;br /&gt;
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #9 [8086:a118] (rev f1)&lt;br /&gt;
00:1d.4 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #13 [8086:a11c] (rev f1)&lt;br /&gt;
00:1d.6 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #15 [8086:a11e] (rev f1)&lt;br /&gt;
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC Controller [8086:a14e] (rev 31)&lt;br /&gt;
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H PMC [8086:a121] (rev 31)&lt;br /&gt;
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD Audio [8086:a170] (rev 31)&lt;br /&gt;
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus [8086:a123] (rev 31)&lt;br /&gt;
01:00.0 3D controller [0302]: NVIDIA Corporation GM107M [GeForce GTX 960M] [10de:139b] (rev ff)&lt;br /&gt;
02:00.0 Network controller [0280]: Broadcom Corporation BCM43602 802.11ac Wireless LAN SoC [14e4:43ba] (rev 01)&lt;br /&gt;
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device [10ec:525a] (rev 01)&lt;br /&gt;
04:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd Device [144d:a802] (rev 01)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 001 Device 003: ID 04f3:21d5 Elan Microelectronics Corp.            &amp;lt;= touchscreen&lt;br /&gt;
Bus 001 Device 002: ID 0a5c:6410 Broadcom Corp.                         &amp;lt;= bluetooth&lt;br /&gt;
Bus 001 Device 004: ID 0c45:6713 Microdia                               &amp;lt;= webcam&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From lscpu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Architecture:          x86_64&lt;br /&gt;
CPU op-mode(s):        32-bit, 64-bit&lt;br /&gt;
Byte Order:            Little Endian&lt;br /&gt;
CPU(s):                8&lt;br /&gt;
On-line CPU(s) list:   0-7&lt;br /&gt;
Thread(s) per core:    2&lt;br /&gt;
Core(s) per socket:    4&lt;br /&gt;
Socket(s):             1&lt;br /&gt;
NUMA node(s):          1&lt;br /&gt;
Vendor ID:             GenuineIntel&lt;br /&gt;
CPU family:            6&lt;br /&gt;
Model:                 94&lt;br /&gt;
Model name:            Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz&lt;br /&gt;
Stepping:              3&lt;br /&gt;
CPU MHz:               2847.812&lt;br /&gt;
CPU max MHz:           3500.0000&lt;br /&gt;
CPU min MHz:           800.0000&lt;br /&gt;
BogoMIPS:              5183.88&lt;br /&gt;
Virtualization:        VT-x&lt;br /&gt;
L1d cache:             32K&lt;br /&gt;
L1i cache:             32K&lt;br /&gt;
L2 cache:              256K&lt;br /&gt;
L3 cache:              6144K&lt;br /&gt;
NUMA node0 CPU(s):     0-7&lt;br /&gt;
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush &lt;br /&gt;
dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts &lt;br /&gt;
rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 &lt;br /&gt;
ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx &lt;br /&gt;
f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_notify hwp_act_window hwp_epp &lt;br /&gt;
intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid &lt;br /&gt;
rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dell Wireless 1830 = BCM43602 + BCM20703A1 (DW1830 Bluetooth 4.1 LE)&lt;br /&gt;
&lt;br /&gt;
BCM43602	PCI ID: 14e4:43ba&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# smartctl -d scsi -i /dev/nvme0n1&lt;br /&gt;
smartctl 6.4 2015-06-04 r4109 [x86_64-linux-4.3.0-1-amd64] (local build)&lt;br /&gt;
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org&lt;br /&gt;
&lt;br /&gt;
=== START OF INFORMATION SECTION ===&lt;br /&gt;
Vendor:               NVMe&lt;br /&gt;
Product:              PM951 NVMe SAMSU&lt;br /&gt;
Revision:             7D0Q&lt;br /&gt;
Compliance:           SPC-4&lt;br /&gt;
User Capacity:        1,024,209,543,168 bytes [1.02 TB]&lt;br /&gt;
Logical block size:   512 bytes&lt;br /&gt;
Rotation Rate:        Solid State Device&lt;br /&gt;
Logical Unit id:      0x0025384cf1b0fd29&lt;br /&gt;
Serial number:        S2FZNXAGC03824&lt;br /&gt;
Device type:          disk&lt;br /&gt;
Local Time is:        Sun Feb 14 22:02:03 2016 CET&lt;br /&gt;
SMART support is:     Unavailable - device lacks SMART capability.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* http://topics-cdn.dell.com/pdf/xps-15-9550-laptop_Service%20Manual_en-us.pdf&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dell_XPS_15&lt;br /&gt;
* https://bbs.archlinux.org/viewtopic.php?id=204739&lt;br /&gt;
* http://ubuntuforums.org/showthread.php?t=2301071&lt;br /&gt;
* http://forthescience.org/blog/2015/03/20/installing_ubuntu_14_04_on_the_new_dell_xps_13/&lt;br /&gt;
* https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013&lt;br /&gt;
* http://bartongeorge.net/2015/02/23/update-2-dell-xps-13-laptop-developer-edition-sputnik-gen-4/&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
I first tried to keep a dual-boot just in case, but once we disable Raid and put SATA in AHCI mode, Windows can&#039;t boot anymore. (later I read it could be possible to fix it by rebooting several times Windows till safe mode is kicked in, but it was too late for me.)&lt;br /&gt;
&lt;br /&gt;
Just in case again, one can boot Windows and create a USB recovery.&lt;br /&gt;
==Bios==&lt;br /&gt;
* &#039;&#039;&#039;Secure Boot: disable&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SATA: switch from Raid to AHCI&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Advances Boot Options:/ NOT Enable Legacy Option ROMs&#039;&#039;&#039;&lt;br /&gt;
* Boot: not sure it&#039;s needed but I disabled Windows boot manager entry and kept the hdd UEFI entry: UEFI: PM951 NVMe SAMSUNG 1024GB, Partition 1&lt;br /&gt;
** See below (first boot) how to create a new entry&lt;br /&gt;
* POST/Fastboot/Auto&lt;br /&gt;
* auto os recovery threshold off&lt;br /&gt;
* Fn Lock Options&lt;br /&gt;
** NOT Fn Lock&lt;br /&gt;
** Lock Mode Enable/Secondary&lt;br /&gt;
* UEFI Capsule Firmware Updates / Enable&lt;br /&gt;
** This allows using ``fwupdmgr update`` e.g. to update the TPM firmware&lt;br /&gt;
&lt;br /&gt;
To update the BIOS:&lt;br /&gt;
* put it on a USB stick&lt;br /&gt;
* reboot&lt;br /&gt;
* select BIOS flash update on the boot screen (F12).&lt;br /&gt;
No need to put it on a bootable DOS, just give the exe to the BIOS update built-in util.&lt;br /&gt;
&amp;lt;br&amp;gt;You can even drop the update on /boot/efi as it&#039;s also a FAT partition, no need for a USB memory stick.&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
* 1.2.0 aka A6 [https://downloads.dell.com/FOLDER03659467M/1/XPS_9550_1.2.0.exe XPS_9550_1.2.0.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=KTR76 fixes]&lt;br /&gt;
* 1.2.10 aka A10 [https://downloads.dell.com/FOLDER03800340M/1/XPS_9550_1.2.10.exe XPS_9550_1.2.10.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=96T2K fixes]&lt;br /&gt;
* 1.2.14 aka A13 [https://downloads.dell.com/FOLDER03906323M/1/XPS_9550_1.2.14.exe XPS_9550_1.2.14.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=VNMDK fixes]&lt;br /&gt;
* 1.2.16 [https://downloads.dell.com/FOLDER04030973M/1/XPS_9550_1.2.16.exe XPS_9550_1.2.16.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=J8GY6 fixes]&lt;br /&gt;
* 1.2.18 aka A16 [https://downloads.dell.com/FOLDER04078627M/1/XPS_9550_1.2.18.exe XPS_9550_1.2.18.exe] [http://www.dell.com/support/home/us/en/4/Drivers/DriversDetails?driverId=KD0C7 fixes]&lt;br /&gt;
* 1.2.21 [https://downloads.dell.com/FOLDER04190863M/1/XPS_9550_1.2.21.exe XPS_9550_1.2.21.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=6RV34 fixes]&lt;br /&gt;
* 1.2.25 [https://downloads.dell.com/FOLDER04319442M/1/XPS_9550_1.2.25.exe XPS_9550_1.2.25.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=3W30W fixes]&lt;br /&gt;
* 1.2.29 [https://downloads.dell.com/FOLDER04449988M/1/XPS_9550_1.2.29.exe XPS_9550_1.2.29.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=F7M6G fixes]&lt;br /&gt;
* 1.3.0 [https://downloads.dell.com/FOLDER04481870M/1/XPS_9550_1.3.0.exe XPS_9550_1.3.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=NXVMP fixes]&lt;br /&gt;
* 1.4.0 [https://downloads.dell.com/FOLDER04499656M/1/XPS_9550_1.4.0.exe XPS_9550_1.4.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=DR9N6 fixes]&lt;br /&gt;
* 1.5.1 [https://downloads.dell.com/FOLDER04604618M/1/XPS_9550_1.5.1.exe XPS_9550_1.5.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=TWKFC fixes]&lt;br /&gt;
* 1.6.1 [https://downloads.dell.com/FOLDER04717493M/1/XPS_9550_1.6.1.exe XPS_9550_1.6.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=PFJ08 fixes]&lt;br /&gt;
* 1.7.0 [https://downloads.dell.com/FOLDER04839266M/1/XPS_9550_1.7.0.exe XPS_9550_1.7.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=RYY62 fixes]&lt;br /&gt;
* 1.8.0 [https://downloads.dell.com/FOLDER05099834M/1/XPS_9550_1.8.0.exe XPS_9550_1.8.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=4GDY8 fixes]&lt;br /&gt;
* 1.9.0 [https://downloads.dell.com/FOLDER05256907M/1/XPS_9550_1.9.0.exe XPS_9550_1.9.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=xv1gp fixes]&lt;br /&gt;
* 1.10.0 [https://downloads.dell.com/FOLDER05476993M/1/XPS_9550_1.10.0.exe XPS_9550_1.10.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=3N7TY fixes]&lt;br /&gt;
* 1.11.2 [https://downloads.dell.com/FOLDER05770328M/1/XPS_9550_1.11.2.exe XPS_9550_1.11.2.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=gtm85 fixes]&lt;br /&gt;
* 1.12.0 [https://downloads.dell.com/FOLDER05865451M/1/XPS_9550_1.12.0.exe XPS_9550_1.12.0.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=7HTW2 fixes]&lt;br /&gt;
* 1.13.1 [https://dl.dell.com/FOLDER06021536M/1/XPS_9550_1.13.1.exe XPS_9550_1.13.1.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=3hr07 fixes]&lt;br /&gt;
&lt;br /&gt;
Attention: with versions 1.2.10 through 1.2.16 and older Linux kernels, there is a serious bug that let the screen black after suspend/wake up. The workaround is to set the lightness to the maximum but it breaks further lightness tuning.&lt;br /&gt;
&lt;br /&gt;
Linux kernels 4.8 and below tend to work best with A6 BIOS (1.2.0), although there is a workaround that allows it to work with later versions.  This workaround uses the intel_reg utility to reset the &amp;quot;pwm_granuality&amp;quot; setting of the onboard graphics.  Solution discussed here: [http://en.community.dell.com/techcenter/os-applications/f/4613/t/19985320].  This issue is reportedly fixed in Linux 4.9, and also in recent Ubuntu 16.10 kernel updates.  See the patch here [https://patchwork.freedesktop.org/patch/109407/].&lt;br /&gt;
&lt;br /&gt;
Even with the intel_reg workaround above, the screen brightness cannot be set to the lowest level without turning the screen off.  This is fixed in 1.2.18.&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
I kept UEFI so we need a Debian netinstall because liveCD doesn&#039;t have UEFI support yet.&lt;br /&gt;
&amp;lt;br&amp;gt;But Wi-Fi requires a proprietary firmware:&lt;br /&gt;
 https://github.com/OpenELEC/wlan-firmware/blob/master/firmware/brcm/brcmfmac43602-pcie.bin&lt;br /&gt;
so the easiest is to take a Debian netinstall with proprietary firmwares included.&lt;br /&gt;
&amp;lt;br&amp;gt;At time of writing Stretch is testing and last release is alpha5:&lt;br /&gt;
 http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/stretch_di_alpha5/amd64/iso-cd/&lt;br /&gt;
dd the image on a USB stick and boot it.&lt;br /&gt;
&amp;lt;br&amp;gt;It will also complain for a missing brcmfmac43602-pcie.txt but we can safely ignore it. (well I think so, but Wi-Fi has troubles now and then under heavy load, see below)&lt;br /&gt;
&amp;lt;!-- sysml eml ems --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I chose a guided partitionning of the entire disk, with encrypted LVM containing /, /home and swap. But proposed / was a bit too small IMHO (10G) so I deleted and recreated / (50G) and /home.&lt;br /&gt;
&amp;lt;br&amp;gt;Initially I tried to add the &amp;quot;discard&amp;quot; option for the partitions which should help on SSD but the kernel reported that &amp;quot;discard&amp;quot; wasn&#039;t supported by the disk.&lt;br /&gt;
&lt;br /&gt;
If you want to backup partition table and partitions before destroying everything, it&#039;s the right time!&lt;br /&gt;
 parted /dev/nvme0n1&lt;br /&gt;
 print&lt;br /&gt;
 sgdisk --backup=/some/safe/location/nvme0n1.gpt /dev/nvme0n1&lt;br /&gt;
I installed Cinnamon. I don&#039;t know for the others but Cinnamon has a nice auto setting to double features on HiDPI screens.&lt;br /&gt;
&lt;br /&gt;
===Gnome===&lt;br /&gt;
Update: now using Gnome3.&lt;br /&gt;
Needs to replace lightdm by gdm3 to get newer lock screen (gnome-screensaver is deprecated)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg-reconfigure gdm3&lt;br /&gt;
(choose gdm3)&lt;br /&gt;
# delay before blanking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.session idle-delay 300&lt;br /&gt;
# delay after blanking before locking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.screensaver lock-delay 10&lt;br /&gt;
(reboot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sometimes after a crash, gnome extensions (https://extensions.gnome.org/local/) are disabled. To reenable them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dconf write /org/gnome/shell/disable-user-extensions false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Wayland===&lt;br /&gt;
Got quite some troubles with Wayland, so I reverted it back to X11:&lt;br /&gt;
&lt;br /&gt;
Edit /etc/gdm3/daemon.conf and uncomment line:&lt;br /&gt;
    WaylandEnable=false&lt;br /&gt;
&lt;br /&gt;
==First boot==&lt;br /&gt;
Once installed, the Debian didn&#039;t boot up.&lt;br /&gt;
&amp;lt;br&amp;gt;I tried many things but at the end the only thing that worked was to copy Debian EFI to the default one:&lt;br /&gt;
&lt;br /&gt;
Starting the netinstall again, in rescue mode, get a chroot shell, then&lt;br /&gt;
 mount /dev/nvme0n1p1 /boot/efi&lt;br /&gt;
 cd /boot/efi/EFI&lt;br /&gt;
 mkdir boot&lt;br /&gt;
 cp debian/grubx64.efi boot/bootx64.efi&lt;br /&gt;
I also deleted the Windows files in EFI.&lt;br /&gt;
&lt;br /&gt;
Resource:&lt;br /&gt;
* https://wiki.debian.org/GrubEFIReinstall&lt;br /&gt;
* https://wiki.archlinux.org/index.php/GRUB#Create_an_ESP&lt;br /&gt;
* https://help.ubuntu.com/community/UEFI&lt;br /&gt;
* https://wiki.debian.org/UEFI&lt;br /&gt;
* https://isalo.org/wiki.debian-fr/Debian_%26_UEFI    &lt;br /&gt;
&lt;br /&gt;
FTR things that failed included:&lt;br /&gt;
* [http://www.rodsbooks.com/refind/getting.html Refind] couldn&#039;t boot at all. Strange as the netinstall could boot...&lt;br /&gt;
* tweaks with efibootmgr, update-grub etc&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UPDATE&#039;&#039;&#039;: It might be possible to fix the issue from the BIOS itself, see http://www.dell.com/support/article/us/en/04/SLN297060/en&lt;br /&gt;
* Boot Sequence / Add Boot Option&lt;br /&gt;
** Boot Option Name : Debian&lt;br /&gt;
** File System List : PciRoot(0x0)/Pic(0x1D,0x0)/Pci(0x0,0x0)/?/HD(1,GPT,&amp;lt;UUID&amp;gt;)&lt;br /&gt;
** File Name : FS0 - EFI - debian - grubx64.efi&lt;br /&gt;
* Advances Boot Options / NOT Enable Legacy Option ROMs&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
===Working===&lt;br /&gt;
* Screen&lt;br /&gt;
* Touchscreen&lt;br /&gt;
* Touchpad&lt;br /&gt;
* Keyboard backlight and media buttons (volume, luminosity, backlight)&lt;br /&gt;
* Wi-Fi (with the proprietary driver, cf installation above)&lt;br /&gt;
* HDMI&lt;br /&gt;
* SD-Card reader&lt;br /&gt;
* Speakers, mic&lt;br /&gt;
* Webcam&lt;br /&gt;
&lt;br /&gt;
===Working after manual steps===&lt;br /&gt;
====i915====&lt;br /&gt;
Screen was working but dmesg was complaining:&lt;br /&gt;
 i915 0000:00:02.0: firmware: failed to load i915/skl_dmc_ver1.bin&lt;br /&gt;
So I installed that firmware, not sure what it&#039;s changed&lt;br /&gt;
 sudo apt-get install firmware-misc-nonfree&lt;br /&gt;
====Optimus====&lt;br /&gt;
Resources:&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Optimus&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Bumblebee&lt;br /&gt;
 apt-get install bumblebee-nvidia nvidia-libopencl1 nvidia-opencl-icd nvidia-opencl-icd:i386 libcuda1-i386 nvidia-smi clinfo&lt;br /&gt;
 reboot&lt;br /&gt;
Example:&lt;br /&gt;
 apt-get install nvidia-settings&lt;br /&gt;
 optirun -b none nvidia-settings -c :8&lt;br /&gt;
This also works for CUDA/OpenCL:&lt;br /&gt;
 optirun -b none ./hashcat64.bin -m 500 example500.hash example.dict&lt;br /&gt;
&lt;br /&gt;
Testing:&lt;br /&gt;
 optirun -vv glxgears&lt;br /&gt;
 optirun -vv clinfo&lt;br /&gt;
 optirun -b none ./hashcat64.bin -I&lt;br /&gt;
 optirun --no-xorg ./hashcat64.bin -I&lt;br /&gt;
&lt;br /&gt;
As bridge, primus or virtualgl can be used. Primus is available in the Debian repos while VirtualGL is [https://sourceforge.net/projects/virtualgl/?source=typ_redirect here]. Using primus currently.&lt;br /&gt;
&lt;br /&gt;
CUDA toolkit:&lt;br /&gt;
 apt-get install nvidia-cuda-toolkit&lt;br /&gt;
It removed nvidia-libopencl1 but hashcat is still running fine...&lt;br /&gt;
&lt;br /&gt;
GPU load:&lt;br /&gt;
 optirun --no-xorg nvidia-smi&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
Nothing wrong with the touchpad but its default config is a bit painful especially because it&#039;s large and my right palm touches it often, even with the option to diable it when typing and because it&#039;s &amp;quot;soft&amp;quot; buttons.&lt;br /&gt;
&amp;lt;br&amp;gt;I disabled the button area to limit somehow the problem but still you&#039;ve to get used to first touch and hold before pressing a button to do a drag and drop and not the opposite.&lt;br /&gt;
 synclient AreaBottomEdge=4026&lt;br /&gt;
To add a middle button:&lt;br /&gt;
 synclient RightButtonAreaLeft=3914&lt;br /&gt;
 synclient RightButtonAreaRight=0&lt;br /&gt;
 synclient RightButtonAreaTop=4026&lt;br /&gt;
 synclient RightButtonAreaBottom=0&lt;br /&gt;
 synclient MiddleButtonAreaLeft=3100&lt;br /&gt;
 synclient MiddleButtonAreaRight=3873&lt;br /&gt;
 synclient MiddleButtonAreaTop=4026&lt;br /&gt;
 synclient MiddleButtonAreaBottom=0&lt;br /&gt;
And because I love it:&lt;br /&gt;
 synclient CircularScrolling=1&lt;br /&gt;
Some doc [https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Buttonless_touchpads_.28aka_ClickPads.29 here] and the official one [http://www.x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html here]&lt;br /&gt;
&lt;br /&gt;
If with some kernels you get troubles using Synaptics options, check dmesg, maybe Touchpad is detected by another driver too:&lt;br /&gt;
 DLL06E4:01 06CB:7A13 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-7/i2c-DLL06E4:01/0018:06CB:7A13.0003/input/input14&lt;br /&gt;
 hid-multitouch 0018:06CB:7A13.0003: input,hidraw2: I2C HID v1.00 Mouse [DLL06E4:01 06CB:7A13] on i2c-DLL06E4:01&lt;br /&gt;
If this is so, add /etc/modprobe.d/synaptics.conf with this line, cf Kernel section below:&lt;br /&gt;
 blacklist i2c-designware-platform&lt;br /&gt;
&lt;br /&gt;
On recent kernels, i2c-designware-platform is directly in the kernel, not as module anymore.&lt;br /&gt;
To manage to blacklist it, see https://unix.stackexchange.com/questions/423797/how-do-i-disable-i2c-designware-support-when-its-not-built-as-a-module#446913&lt;br /&gt;
Edit /etc/default/grub and append the following blacklist invocation to the command line, then update-grub.&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;… initcall_blacklist=dw_i2c_init_driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Touchscreen====&lt;br /&gt;
Touchscreen works well but when an external screen is connected, it spans over both screens so e.g. touching the middle of the laptop screen moves the mouse to some middle point of the virtual screen combining both screens.&lt;br /&gt;
&amp;lt;br&amp;gt;To fix it, see https://wiki.archlinux.org/index.php/Calibrating_Touchscreen&lt;br /&gt;
&amp;lt;br&amp;gt;This example is for an external screen mapped to the right of the laptop screen:&lt;br /&gt;
 # c0 = width of laptop screen / total width&lt;br /&gt;
 c0=$(bc -l &amp;lt;&amp;lt;&amp;lt; &amp;quot;scale=2; $(xrandr|grep -A1 eDP1|sed &#039;1d;s/x.*//&#039;)/$(xrandr|grep &#039;^Screen 0&#039;|sed &#039;s/.*current //;s/ x.*//&#039;)&amp;quot;)&lt;br /&gt;
 xinput set-prop &amp;quot;ELAN Touchscreen&amp;quot; --type=float &amp;quot;Coordinate Transformation Matrix&amp;quot; \&lt;br /&gt;
    c0 0  0 \&lt;br /&gt;
    0  1  0 \&lt;br /&gt;
    0  0  1&lt;br /&gt;
&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
Kernel complains about a missing file.&lt;br /&gt;
&amp;lt;br&amp;gt;Apparently we can get it from Windows drivers but I don&#039;t know where to find them, so I took [https://www.dropbox.com/s/8goc4omhnzxij93/BCM-0a5c-6410.hcd?dl=0 this one] and copied it into /lib/firmware/brcm&lt;br /&gt;
&lt;br /&gt;
Then Bluetooth was recognized but I couldn&#039;t pair my WM615 mouse.&lt;br /&gt;
&amp;lt;br&amp;gt;After restarting the Bt adaptor, I could finally pair:&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
  power off&lt;br /&gt;
  power on&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* https://wiki.debian.org/BluetoothUser&lt;br /&gt;
* https://wiki.archlinux.org/index.php/bluetooth&lt;br /&gt;
There is also a possibility to pair directly from bluetoothctl, see https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see [[#Hardware_changes]]&lt;br /&gt;
&lt;br /&gt;
====HiDPI====&lt;br /&gt;
Cinnamon handles it nicely but some applications don&#039;t such as Gimp and you end up with a microscopic tools ribbon.&lt;br /&gt;
&amp;lt;br&amp;gt;See https://wiki.archlinux.org/index.php/HiDPI for some useful tips&lt;br /&gt;
&lt;br /&gt;
Cinnamon / System Settings / Desktop Scaling has the same effect as `gsettings set org.cinnamon.desktop.interface scaling-factor 2`&lt;br /&gt;
&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (1016x572 millimeters)&lt;br /&gt;
   resolution:    96x96 dots per inch&lt;br /&gt;
I&#039;ve no ruler at hand but if it&#039;s 15.6&#039;&#039; in diagonal and pixels are square, this gives 293.4 dpi for screen dimensions of 332x187mm.&lt;br /&gt;
&amp;lt;br&amp;gt;So closest hit with common DPI is 96*3=288dpi&lt;br /&gt;
 xrandr --dpi 288&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (338x190 millimeters)&lt;br /&gt;
   resolution:    289x289 dots per inch&lt;br /&gt;
Let&#039;s document those fictive dimensions for next boots by creating /etc/X11/xorg.conf.d/90-monitor.conf with&lt;br /&gt;
 Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
     Identifier             &amp;quot;&amp;lt;default monitor&amp;gt;&amp;quot;&lt;br /&gt;
     DisplaySize            338 190    # In millimeters&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT5 and GTK+ 3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;To enable better scaling of QT5 and GTK+ 3, add to .bashrc (not to .xsessionrc otherwise Cinnamon taskbar is messed up!):&lt;br /&gt;
 QT_DEVICE_PIXEL_RATIO=3&lt;br /&gt;
 GDK_SCALE=3&lt;br /&gt;
 GDK_DPI_SCALE=0.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. Skype&lt;br /&gt;
 sudo apt-get install qt4-qtconfig&lt;br /&gt;
 qtconfig-qt4&lt;br /&gt;
=&amp;gt; one can change font size&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gimp 2.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. copy /usr/share/gimp/2.0/themes/Default as ~/.gimp-2.8/themes/HiDPI and change a few options:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
--- gtkrc&lt;br /&gt;
+++ gtkrc&lt;br /&gt;
-  GimpToolPalette::tool-icon-size   = button&lt;br /&gt;
+  GimpToolPalette::tool-icon-size   = dialog&lt;br /&gt;
-  GimpEditor::button-icon-size      = menu&lt;br /&gt;
+  GimpEditor::button-icon-size      = button&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wine&#039;&#039;&#039;&lt;br /&gt;
 winecfg&lt;br /&gt;
Change &amp;quot;dpi&amp;quot; in &amp;quot;Graphics&amp;quot; tab&lt;br /&gt;
&#039;&#039;&#039;Virtualbox&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;View/Scale Factor is helpful...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chromium&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Chrome works fine but &#039;&#039;Chromium&#039;&#039; broke at some point, so I&#039;ve to launch it with:&lt;br /&gt;
&lt;br /&gt;
 GDK_SCALE=2 exec chromium&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Small console font&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;I don&#039;t care but if that&#039;s an issue for you, from [https://github.com/mpalourdio/xps13/blob/master/HiDPI/tty.md here]:&lt;br /&gt;
 sudo dpkg-reconfigure console-setup&lt;br /&gt;
* Choose UTF-8&lt;br /&gt;
* Choose the default Combined - Latin, ... option (&amp;quot;Latin&amp;quot; includes the English alphabet)&lt;br /&gt;
* Select the terminus font&lt;br /&gt;
* Select 16x32&lt;br /&gt;
* OK&lt;br /&gt;
To apply immediately, open a TTY and run setupcon, else just reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Multiple displays&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Combining HiDPI screen with external non-HiDPI? See https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xpra&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;cf https://xpra.org/trac/ticket/2492&lt;br /&gt;
&lt;br /&gt;
====Sensors====&lt;br /&gt;
 apt-get install lm-sensors&lt;br /&gt;
 sensors-detect&lt;br /&gt;
Sensors-detect found coretemp which is now loaded via /etc/modules:&lt;br /&gt;
 coretemp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====External microphone====&lt;br /&gt;
The sole jack is a TRRS, combining output and mic.&lt;br /&gt;
&amp;lt;br&amp;gt;Soundcard is a Realtek ALC3266&lt;br /&gt;
  grep -r Realtek /proc/asound/card*&lt;br /&gt;
  /proc/asound/card0/codec#0:Codec: Realtek ALC3266&lt;br /&gt;
&amp;lt;br&amp;gt;With Debian+Cinnamon, the system detects the mic, we can see it in the sound properties and select it, but still the internal mic is used.&lt;br /&gt;
&amp;lt;br&amp;gt;When using pavucontrol, selecting the &amp;quot;headset microphone&amp;quot; works fine (it still needs some level boosting).&lt;br /&gt;
&lt;br /&gt;
====DA200====&lt;br /&gt;
[http://accessories.euro.dell.com/sna/products/Station_daccueil/productdetail.aspx?c=fr&amp;amp;l=fr&amp;amp;s=dhs&amp;amp;cs=frdhs1&amp;amp;sku=470-ABRY DA200] used to be recognized only if it was plugged at boot.&lt;br /&gt;
&amp;lt;br&amp;gt;With kernel 4.6 the device is properly detected dynamically.&lt;br /&gt;
&amp;lt;br&amp;gt;The adapter is actually using DisplayPort. &lt;br /&gt;
&amp;lt;br&amp;gt;VGA output works.&lt;br /&gt;
&lt;br /&gt;
HDMI output is limited to some modes (max 1920x1080, cf [http://www.dell.com/support/article/us/en/19/SLN303466 Dell support]) and by default xrandr will try an unsupported mode.&lt;br /&gt;
&amp;lt;br&amp;gt;Even &amp;quot;xrandr --output DP-1 --mode 1920x1080&amp;quot; fails by default.&lt;br /&gt;
&lt;br /&gt;
Some supported modes:  800x600, 1024x768, 1280x720, 1920x1080i&lt;br /&gt;
&amp;lt;br&amp;gt;1920x1080i is interlaced and awful to look at.&lt;br /&gt;
&amp;lt;br&amp;gt;Reducing the rate allows a non-interlaced 1920x1080 mode, you can test it with:&lt;br /&gt;
 xrandr --output DP-1 --mode 1920x1080 -r 30&lt;br /&gt;
If this works for you, you can create a new mode, using cvt to find the proper parameters:&lt;br /&gt;
 cvt 1920 1080 30&lt;br /&gt;
 # 1920x1080 29.95 Hz (CVT) hsync: 33.01 kHz; pclk: 79.75 MHz&lt;br /&gt;
 Modeline &amp;quot;1920x1080_30.00&amp;quot;   79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
Creating and adding the new mode:&lt;br /&gt;
 xrandr --newmode &amp;quot;1920x1080_30.00&amp;quot; 79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
 xrandr --addmode DP-1  &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
Now you can choose this new mode:&lt;br /&gt;
  xrandr --output DP-1 --mode &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
&lt;br /&gt;
When plugged the following hardware gets detected:&lt;br /&gt;
&lt;br /&gt;
lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp..     &amp;lt;= Ethernet&lt;br /&gt;
Bus 004 Device 002: ID 05e3:0617 Genesys Logic, Inc..&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 003 Device 003: ID 0835:2a01 Action Star Enterprise Co., Ltd. &amp;lt;= Billboard&lt;br /&gt;
Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;The USB Billboard Device Class definition describes the methods used to communicate the Alternate Modes supported by a device container to a host system. More details on Billboard Devices are available in the USB Billboard Device Class specification at the following link: http://www.usb.org/developers/docs/devclass_docs/.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
lspci:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
06:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:01.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:02.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
0a:00.0 USB controller: Intel Corporation Device 15b5 (prog-if 30 [XHCI])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lsmod:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
r8152                  49152  0&lt;br /&gt;
cdc_ether              16384  0&lt;br /&gt;
usbnet                 40960  1 cdc_ether&lt;br /&gt;
mii                    16384  2 r8152,usbnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Solved issues===&lt;br /&gt;
====i915 and blank screen====&lt;br /&gt;
There were numerous issues with the video card. Now with latest kernels (&amp;gt;=4.8) most issues are gone, still some occasional blank screen or freeze when plugging an external HDMI.&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
WM615 mouse used to act erratically, the cursor stopping now and then. Now with latest kernels and an Intel Wi-Fi+BT card it&#039;s fine.&lt;br /&gt;
====Wi-Fi====&lt;br /&gt;
Wi-Fi tends to disassociate under heavy load, switching to other SSIDs or frequencies (5Ghz&amp;lt;&amp;gt;2.4GHz) and coming back seems to help.&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see #Hardware_changes&lt;br /&gt;
&lt;br /&gt;
===Issues===&lt;br /&gt;
====rfkill button====&lt;br /&gt;
Rfkill button of the keyboard (Fn+PrtScr) doesn&#039;t seem to work, no big deal.&lt;br /&gt;
&lt;br /&gt;
==Kernels==&lt;br /&gt;
initramfs complains about lvmetad and I&#039;m not sure it&#039;s that useful on SSD, so just disabling it:&lt;br /&gt;
&amp;lt;br&amp;gt;Edit /etc/lvm/lvm.conf&lt;br /&gt;
 use_lvmetad=0&lt;br /&gt;
Then stop it&lt;br /&gt;
 systemctl stop lvm2-lvmetad&lt;br /&gt;
===Debian===&lt;br /&gt;
Debian kernel 4.8 works quite well&lt;br /&gt;
===Compilation notes===&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;, to compile &amp;gt;=4.4, one needs at least initramfs-tools v0.122 to get the nvme.ko properly loaded and therefore the SSD properly seen.&lt;br /&gt;
&lt;br /&gt;
To compile a vanilla kernel, cf http://www.cyberciti.biz/faq/debian-ubuntu-building-installing-a-custom-linux-kernel/&lt;br /&gt;
 sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc&lt;br /&gt;
 sudo apt-get install kernel-package&lt;br /&gt;
 wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz&lt;br /&gt;
 tar xf linux-4.4.tar.xz&lt;br /&gt;
 cd linux-4.4&lt;br /&gt;
 cp /boot/config-$(uname -r) .config&lt;br /&gt;
 make menuconfig&lt;br /&gt;
 make-kpkg clean&lt;br /&gt;
 make-kpkg --rootcmd fakeroot --initrd --append_to_version=9-doegox kernel_image kernel_headers -j 7&lt;br /&gt;
&lt;br /&gt;
==Hardware changes==&lt;br /&gt;
Replacing Broadcom Wi-Fi+BT by an [https://wikidevi.com/wiki/Intel Intel one]:&lt;br /&gt;
* Intel 7265 Dual Band Wireless-AC 7265NGW Card 802.11ac 867Mbps WIFI BT4.0 UK&lt;br /&gt;
** http://www.befr.ebay.be/itm/262049756966?_trksid=p2060353.m2749.l2649&amp;amp;ssPageName=STRK%3AMEBIDX%3AIT&lt;br /&gt;
** https://downloadcenter.intel.com/download/17045&lt;br /&gt;
** This requires installing package firmware-iwlwifi&lt;br /&gt;
** Seems to have less Wi-Fi issues, but still the same BT problems pairing the Dell mouse&lt;br /&gt;
&lt;br /&gt;
 iwlwifi 0000:02:00.0: firmware: direct-loading firmware iwlwifi-7265-17.ucode&lt;br /&gt;
 iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 7265, REV=0x184&lt;br /&gt;
&lt;br /&gt;
Alternatives to DA200:&lt;br /&gt;
* HDMI Male To VGA Female Converter&lt;br /&gt;
** http://www.aliexpress.com/item/1pc-HDMI-Male-To-VGA-Female-Converter-Box-Adapter-With-Audio-Cable-For-PC-HDTVHot-New/32448171552.html&lt;br /&gt;
* USB 3.0 10/100/1000Mbps Gigabit Ethernet RJ45&lt;br /&gt;
** http://www.aliexpress.com/item/Hot-selling-New-USB-3-0-10-100-1000Mbps-Gigabit-Ethernet-RJ45-External-Network-Card-LAN/32546613204.html&lt;br /&gt;
* 4-Port Ultra-Slim USB 3.0 Hub&lt;br /&gt;
** https://www.anker.com/products/A7516011&lt;br /&gt;
** http://www.amazon.de/Anker-Datenhub-Ultrabooks-weiteren-kompatiblen/dp/B00Y211AFM/&lt;br /&gt;
&lt;br /&gt;
==Misc hardware==&lt;br /&gt;
Smartcard reader&lt;br /&gt;
* ACS ACR38U PocketMate Smart Card Reader&lt;br /&gt;
** http://www.acs.com.hk/en/products/160/acr38u-pocketmate-smart-card-reader/&lt;br /&gt;
** http://www.befr.ebay.be/itm/EU-SHIPPING-Smart-Card-USB-ACS-ACR38U-National-ID-Tachograph-Reader-Writer-/121899037557&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10540</id>
		<title>Laptop Dell XPS 15</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10540"/>
		<updated>2022-01-09T14:15:48Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: Undo revision 10539 by PhilippeTeuwen (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Notes about installing a Debian Stretch on a Dell XPS 15&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
Dell XPS 15 model 9550 (variant with touchscreen &amp;amp; PCIe m.2 ssd)&lt;br /&gt;
&lt;br /&gt;
From the [http://www.dell.com/support/home/fr/fr/frdhs1/product-support/servicetag/DHVNH72/configuration configuration] list:&lt;br /&gt;
* 6th Generation Intel(R) Core (TM) i7-6700HQ Quad Core (6M Cache, up to 3.5 GHz)&lt;br /&gt;
* 16Go (2x8Go) DDR4 2133MHz&lt;br /&gt;
* 15.6&amp;quot; 4K Ultra HD (3840 x 2160) InfinityEdge touch, Sliver&lt;br /&gt;
* 1To PCIe Solid State&lt;br /&gt;
* DW1830 3x3 802.11ac 2.4/5GHz + Bluetooth 4.1&lt;br /&gt;
* Dell 84 WHr 6-Cell Lithium-Ion Battery&lt;br /&gt;
* Internal US/International Qwerty Backlit Keyboard&lt;br /&gt;
From the drivers list:&lt;br /&gt;
* Realtek High Definition Audio ALC3266&lt;br /&gt;
* Realtek RTS5242 PCIe Gen2 CardReader&lt;br /&gt;
* Realtek USB GBE Ethernet Controller&lt;br /&gt;
* ST Microlectronics LNG3DMTR Motion Sensor&lt;br /&gt;
* Intel HD Graphics 530/P530&lt;br /&gt;
* nVIDIA Geforce GTX 960M Graphics&lt;br /&gt;
From dmesg (incomplete):&lt;br /&gt;
* BCM20703A1 Bluetooth 4.1 (firmware brcm/BCM-0a5c-6410.hcd)&lt;br /&gt;
From lspci -nn:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00:00.0 Host bridge [0600]: Intel Corporation Sky Lake Host Bridge/DRAM Registers [8086:1910] (rev 07)&lt;br /&gt;
00:01.0 PCI bridge [0604]: Intel Corporation Sky Lake PCIe Controller (x16) [8086:1901] (rev 07)&lt;br /&gt;
00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:191b] (rev 06)&lt;br /&gt;
00:04.0 Signal processing controller [1180]: Intel Corporation Device [8086:1903] (rev 07)&lt;br /&gt;
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f] (rev 31)&lt;br /&gt;
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131] (rev 31)&lt;br /&gt;
00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #0 [8086:a160] (rev 31)&lt;br /&gt;
00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #1 [8086:a161] (rev 31)&lt;br /&gt;
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-H CSME HECI #1 [8086:a13a] (rev 31)&lt;br /&gt;
00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-H SATA Controller [AHCI mode] [8086:a103] (rev 31)&lt;br /&gt;
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #1 [8086:a110] (rev f1)&lt;br /&gt;
00:1c.1 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #2 [8086:a111] (rev f1)&lt;br /&gt;
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #9 [8086:a118] (rev f1)&lt;br /&gt;
00:1d.4 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #13 [8086:a11c] (rev f1)&lt;br /&gt;
00:1d.6 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #15 [8086:a11e] (rev f1)&lt;br /&gt;
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC Controller [8086:a14e] (rev 31)&lt;br /&gt;
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H PMC [8086:a121] (rev 31)&lt;br /&gt;
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD Audio [8086:a170] (rev 31)&lt;br /&gt;
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus [8086:a123] (rev 31)&lt;br /&gt;
01:00.0 3D controller [0302]: NVIDIA Corporation GM107M [GeForce GTX 960M] [10de:139b] (rev ff)&lt;br /&gt;
02:00.0 Network controller [0280]: Broadcom Corporation BCM43602 802.11ac Wireless LAN SoC [14e4:43ba] (rev 01)&lt;br /&gt;
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device [10ec:525a] (rev 01)&lt;br /&gt;
04:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd Device [144d:a802] (rev 01)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 001 Device 003: ID 04f3:21d5 Elan Microelectronics Corp.            &amp;lt;= touchscreen&lt;br /&gt;
Bus 001 Device 002: ID 0a5c:6410 Broadcom Corp.                         &amp;lt;= bluetooth&lt;br /&gt;
Bus 001 Device 004: ID 0c45:6713 Microdia                               &amp;lt;= webcam&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From lscpu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Architecture:          x86_64&lt;br /&gt;
CPU op-mode(s):        32-bit, 64-bit&lt;br /&gt;
Byte Order:            Little Endian&lt;br /&gt;
CPU(s):                8&lt;br /&gt;
On-line CPU(s) list:   0-7&lt;br /&gt;
Thread(s) per core:    2&lt;br /&gt;
Core(s) per socket:    4&lt;br /&gt;
Socket(s):             1&lt;br /&gt;
NUMA node(s):          1&lt;br /&gt;
Vendor ID:             GenuineIntel&lt;br /&gt;
CPU family:            6&lt;br /&gt;
Model:                 94&lt;br /&gt;
Model name:            Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz&lt;br /&gt;
Stepping:              3&lt;br /&gt;
CPU MHz:               2847.812&lt;br /&gt;
CPU max MHz:           3500.0000&lt;br /&gt;
CPU min MHz:           800.0000&lt;br /&gt;
BogoMIPS:              5183.88&lt;br /&gt;
Virtualization:        VT-x&lt;br /&gt;
L1d cache:             32K&lt;br /&gt;
L1i cache:             32K&lt;br /&gt;
L2 cache:              256K&lt;br /&gt;
L3 cache:              6144K&lt;br /&gt;
NUMA node0 CPU(s):     0-7&lt;br /&gt;
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush &lt;br /&gt;
dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts &lt;br /&gt;
rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 &lt;br /&gt;
ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx &lt;br /&gt;
f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_notify hwp_act_window hwp_epp &lt;br /&gt;
intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid &lt;br /&gt;
rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dell Wireless 1830 = BCM43602 + BCM20703A1 (DW1830 Bluetooth 4.1 LE)&lt;br /&gt;
&lt;br /&gt;
BCM43602	PCI ID: 14e4:43ba&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# smartctl -d scsi -i /dev/nvme0n1&lt;br /&gt;
smartctl 6.4 2015-06-04 r4109 [x86_64-linux-4.3.0-1-amd64] (local build)&lt;br /&gt;
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org&lt;br /&gt;
&lt;br /&gt;
=== START OF INFORMATION SECTION ===&lt;br /&gt;
Vendor:               NVMe&lt;br /&gt;
Product:              PM951 NVMe SAMSU&lt;br /&gt;
Revision:             7D0Q&lt;br /&gt;
Compliance:           SPC-4&lt;br /&gt;
User Capacity:        1,024,209,543,168 bytes [1.02 TB]&lt;br /&gt;
Logical block size:   512 bytes&lt;br /&gt;
Rotation Rate:        Solid State Device&lt;br /&gt;
Logical Unit id:      0x0025384cf1b0fd29&lt;br /&gt;
Serial number:        S2FZNXAGC03824&lt;br /&gt;
Device type:          disk&lt;br /&gt;
Local Time is:        Sun Feb 14 22:02:03 2016 CET&lt;br /&gt;
SMART support is:     Unavailable - device lacks SMART capability.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* http://topics-cdn.dell.com/pdf/xps-15-9550-laptop_Service%20Manual_en-us.pdf&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dell_XPS_15&lt;br /&gt;
* https://bbs.archlinux.org/viewtopic.php?id=204739&lt;br /&gt;
* http://ubuntuforums.org/showthread.php?t=2301071&lt;br /&gt;
* http://forthescience.org/blog/2015/03/20/installing_ubuntu_14_04_on_the_new_dell_xps_13/&lt;br /&gt;
* https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013&lt;br /&gt;
* http://bartongeorge.net/2015/02/23/update-2-dell-xps-13-laptop-developer-edition-sputnik-gen-4/&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
I first tried to keep a dual-boot just in case, but once we disable Raid and put SATA in AHCI mode, Windows can&#039;t boot anymore. (later I read it could be possible to fix it by rebooting several times Windows till safe mode is kicked in, but it was too late for me.)&lt;br /&gt;
&lt;br /&gt;
Just in case again, one can boot Windows and create a USB recovery.&lt;br /&gt;
==Bios==&lt;br /&gt;
* &#039;&#039;&#039;Secure Boot: disable&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SATA: switch from Raid to AHCI&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Advances Boot Options:/ NOT Enable Legacy Option ROMs&#039;&#039;&#039;&lt;br /&gt;
* Boot: not sure it&#039;s needed but I disabled Windows boot manager entry and kept the hdd UEFI entry: UEFI: PM951 NVMe SAMSUNG 1024GB, Partition 1&lt;br /&gt;
** See below (first boot) how to create a new entry&lt;br /&gt;
* POST/Fastboot/Auto&lt;br /&gt;
* auto os recovery threshold off&lt;br /&gt;
* Fn Lock Options&lt;br /&gt;
** NOT Fn Lock&lt;br /&gt;
** Lock Mode Enable/Secondary&lt;br /&gt;
* UEFI Capsule Firmware Updates / Enable&lt;br /&gt;
** This allows using ``fwupdmgr update`` e.g. to update the TPM firmware&lt;br /&gt;
&lt;br /&gt;
To update the BIOS:&lt;br /&gt;
* put it on a USB stick&lt;br /&gt;
* reboot&lt;br /&gt;
* select BIOS flash update on the boot screen (F12).&lt;br /&gt;
No need to put it on a bootable DOS, just give the exe to the BIOS update built-in util.&lt;br /&gt;
&amp;lt;br&amp;gt;You can even drop the update on /boot/efi as it&#039;s also a FAT partition, no need for a USB memory stick.&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
* 1.2.0 aka A6 [https://downloads.dell.com/FOLDER03659467M/1/XPS_9550_1.2.0.exe XPS_9550_1.2.0.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=KTR76 fixes]&lt;br /&gt;
* 1.2.10 aka A10 [https://downloads.dell.com/FOLDER03800340M/1/XPS_9550_1.2.10.exe XPS_9550_1.2.10.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=96T2K fixes]&lt;br /&gt;
* 1.2.14 aka A13 [https://downloads.dell.com/FOLDER03906323M/1/XPS_9550_1.2.14.exe XPS_9550_1.2.14.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=VNMDK fixes]&lt;br /&gt;
* 1.2.16 [https://downloads.dell.com/FOLDER04030973M/1/XPS_9550_1.2.16.exe XPS_9550_1.2.16.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=J8GY6 fixes]&lt;br /&gt;
* 1.2.18 aka A16 [https://downloads.dell.com/FOLDER04078627M/1/XPS_9550_1.2.18.exe XPS_9550_1.2.18.exe] [http://www.dell.com/support/home/us/en/4/Drivers/DriversDetails?driverId=KD0C7 fixes]&lt;br /&gt;
* 1.2.21 [https://downloads.dell.com/FOLDER04190863M/1/XPS_9550_1.2.21.exe XPS_9550_1.2.21.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=6RV34 fixes]&lt;br /&gt;
* 1.2.25 [https://downloads.dell.com/FOLDER04319442M/1/XPS_9550_1.2.25.exe XPS_9550_1.2.25.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=3W30W fixes]&lt;br /&gt;
* 1.2.29 [https://downloads.dell.com/FOLDER04449988M/1/XPS_9550_1.2.29.exe XPS_9550_1.2.29.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=F7M6G fixes]&lt;br /&gt;
* 1.3.0 [https://downloads.dell.com/FOLDER04481870M/1/XPS_9550_1.3.0.exe XPS_9550_1.3.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=NXVMP fixes]&lt;br /&gt;
* 1.4.0 [https://downloads.dell.com/FOLDER04499656M/1/XPS_9550_1.4.0.exe XPS_9550_1.4.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=DR9N6 fixes]&lt;br /&gt;
* 1.5.1 [https://downloads.dell.com/FOLDER04604618M/1/XPS_9550_1.5.1.exe XPS_9550_1.5.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=TWKFC fixes]&lt;br /&gt;
* 1.6.1 [https://downloads.dell.com/FOLDER04717493M/1/XPS_9550_1.6.1.exe XPS_9550_1.6.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=PFJ08 fixes]&lt;br /&gt;
* 1.7.0 [https://downloads.dell.com/FOLDER04839266M/1/XPS_9550_1.7.0.exe XPS_9550_1.7.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=RYY62 fixes]&lt;br /&gt;
* 1.8.0 [https://downloads.dell.com/FOLDER05099834M/1/XPS_9550_1.8.0.exe XPS_9550_1.8.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=4GDY8 fixes]&lt;br /&gt;
* 1.9.0 [https://downloads.dell.com/FOLDER05256907M/1/XPS_9550_1.9.0.exe XPS_9550_1.9.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=xv1gp fixes]&lt;br /&gt;
* 1.10.0 [https://downloads.dell.com/FOLDER05476993M/1/XPS_9550_1.10.0.exe XPS_9550_1.10.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=3N7TY fixes]&lt;br /&gt;
* 1.11.2 [https://downloads.dell.com/FOLDER05770328M/1/XPS_9550_1.11.2.exe XPS_9550_1.11.2.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=gtm85 fixes]&lt;br /&gt;
* 1.12.0 [https://downloads.dell.com/FOLDER05865451M/1/XPS_9550_1.12.0.exe XPS_9550_1.12.0.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=7HTW2 fixes]&lt;br /&gt;
* 1.13.1 [https://dl.dell.com/FOLDER06021536M/1/XPS_9550_1.13.1.exe XPS_9550_1.13.1.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=3hr07 fixes]&lt;br /&gt;
&lt;br /&gt;
Attention: with versions 1.2.10 through 1.2.16 and older Linux kernels, there is a serious bug that let the screen black after suspend/wake up. The workaround is to set the lightness to the maximum but it breaks further lightness tuning.&lt;br /&gt;
&lt;br /&gt;
Linux kernels 4.8 and below tend to work best with A6 BIOS (1.2.0), although there is a workaround that allows it to work with later versions.  This workaround uses the intel_reg utility to reset the &amp;quot;pwm_granuality&amp;quot; setting of the onboard graphics.  Solution discussed here: [http://en.community.dell.com/techcenter/os-applications/f/4613/t/19985320].  This issue is reportedly fixed in Linux 4.9, and also in recent Ubuntu 16.10 kernel updates.  See the patch here [https://patchwork.freedesktop.org/patch/109407/].&lt;br /&gt;
&lt;br /&gt;
Even with the intel_reg workaround above, the screen brightness cannot be set to the lowest level without turning the screen off.  This is fixed in 1.2.18.&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
I kept UEFI so we need a Debian netinstall because liveCD doesn&#039;t have UEFI support yet.&lt;br /&gt;
&amp;lt;br&amp;gt;But Wi-Fi requires a proprietary firmware:&lt;br /&gt;
 https://github.com/OpenELEC/wlan-firmware/blob/master/firmware/brcm/brcmfmac43602-pcie.bin&lt;br /&gt;
so the easiest is to take a Debian netinstall with proprietary firmwares included.&lt;br /&gt;
&amp;lt;br&amp;gt;At time of writing Stretch is testing and last release is alpha5:&lt;br /&gt;
 http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/stretch_di_alpha5/amd64/iso-cd/&lt;br /&gt;
dd the image on a USB stick and boot it.&lt;br /&gt;
&amp;lt;br&amp;gt;It will also complain for a missing brcmfmac43602-pcie.txt but we can safely ignore it. (well I think so, but Wi-Fi has troubles now and then under heavy load, see below)&lt;br /&gt;
&amp;lt;!-- sysml eml ems --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I chose a guided partitionning of the entire disk, with encrypted LVM containing /, /home and swap. But proposed / was a bit too small IMHO (10G) so I deleted and recreated / (50G) and /home.&lt;br /&gt;
&amp;lt;br&amp;gt;Initially I tried to add the &amp;quot;discard&amp;quot; option for the partitions which should help on SSD but the kernel reported that &amp;quot;discard&amp;quot; wasn&#039;t supported by the disk.&lt;br /&gt;
&lt;br /&gt;
If you want to backup partition table and partitions before destroying everything, it&#039;s the right time!&lt;br /&gt;
 parted /dev/nvme0n1&lt;br /&gt;
 print&lt;br /&gt;
 sgdisk --backup=/some/safe/location/nvme0n1.gpt /dev/nvme0n1&lt;br /&gt;
I installed Cinnamon. I don&#039;t know for the others but Cinnamon has a nice auto setting to double features on HiDPI screens.&lt;br /&gt;
&lt;br /&gt;
===Gnome===&lt;br /&gt;
Update: now using Gnome3.&lt;br /&gt;
Needs to replace lightdm by gdm3 to get newer lock screen (gnome-screensaver is deprecated)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg-reconfigure gdm3&lt;br /&gt;
(choose gdm3)&lt;br /&gt;
# delay before blanking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.session idle-delay 300&lt;br /&gt;
# delay after blanking before locking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.screensaver lock-delay 10&lt;br /&gt;
(reboot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sometimes after a crash, gnome extensions (https://extensions.gnome.org/local/) are disabled. To reenable them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dconf write /org/gnome/shell/disable-user-extensions false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==First boot==&lt;br /&gt;
Once installed, the Debian didn&#039;t boot up.&lt;br /&gt;
&amp;lt;br&amp;gt;I tried many things but at the end the only thing that worked was to copy Debian EFI to the default one:&lt;br /&gt;
&lt;br /&gt;
Starting the netinstall again, in rescue mode, get a chroot shell, then&lt;br /&gt;
 mount /dev/nvme0n1p1 /boot/efi&lt;br /&gt;
 cd /boot/efi/EFI&lt;br /&gt;
 mkdir boot&lt;br /&gt;
 cp debian/grubx64.efi boot/bootx64.efi&lt;br /&gt;
I also deleted the Windows files in EFI.&lt;br /&gt;
&lt;br /&gt;
Resource:&lt;br /&gt;
* https://wiki.debian.org/GrubEFIReinstall&lt;br /&gt;
* https://wiki.archlinux.org/index.php/GRUB#Create_an_ESP&lt;br /&gt;
* https://help.ubuntu.com/community/UEFI&lt;br /&gt;
* https://wiki.debian.org/UEFI&lt;br /&gt;
* https://isalo.org/wiki.debian-fr/Debian_%26_UEFI    &lt;br /&gt;
&lt;br /&gt;
FTR things that failed included:&lt;br /&gt;
* [http://www.rodsbooks.com/refind/getting.html Refind] couldn&#039;t boot at all. Strange as the netinstall could boot...&lt;br /&gt;
* tweaks with efibootmgr, update-grub etc&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UPDATE&#039;&#039;&#039;: It might be possible to fix the issue from the BIOS itself, see http://www.dell.com/support/article/us/en/04/SLN297060/en&lt;br /&gt;
* Boot Sequence / Add Boot Option&lt;br /&gt;
** Boot Option Name : Debian&lt;br /&gt;
** File System List : PciRoot(0x0)/Pic(0x1D,0x0)/Pci(0x0,0x0)/?/HD(1,GPT,&amp;lt;UUID&amp;gt;)&lt;br /&gt;
** File Name : FS0 - EFI - debian - grubx64.efi&lt;br /&gt;
* Advances Boot Options / NOT Enable Legacy Option ROMs&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
===Working===&lt;br /&gt;
* Screen&lt;br /&gt;
* Touchscreen&lt;br /&gt;
* Touchpad&lt;br /&gt;
* Keyboard backlight and media buttons (volume, luminosity, backlight)&lt;br /&gt;
* Wi-Fi (with the proprietary driver, cf installation above)&lt;br /&gt;
* HDMI&lt;br /&gt;
* SD-Card reader&lt;br /&gt;
* Speakers, mic&lt;br /&gt;
* Webcam&lt;br /&gt;
&lt;br /&gt;
===Working after manual steps===&lt;br /&gt;
====i915====&lt;br /&gt;
Screen was working but dmesg was complaining:&lt;br /&gt;
 i915 0000:00:02.0: firmware: failed to load i915/skl_dmc_ver1.bin&lt;br /&gt;
So I installed that firmware, not sure what it&#039;s changed&lt;br /&gt;
 sudo apt-get install firmware-misc-nonfree&lt;br /&gt;
====Optimus====&lt;br /&gt;
Resources:&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Optimus&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Bumblebee&lt;br /&gt;
 apt-get install bumblebee-nvidia nvidia-libopencl1 nvidia-opencl-icd nvidia-opencl-icd:i386 libcuda1-i386 nvidia-smi clinfo&lt;br /&gt;
 reboot&lt;br /&gt;
Example:&lt;br /&gt;
 apt-get install nvidia-settings&lt;br /&gt;
 optirun -b none nvidia-settings -c :8&lt;br /&gt;
This also works for CUDA/OpenCL:&lt;br /&gt;
 optirun -b none ./hashcat64.bin -m 500 example500.hash example.dict&lt;br /&gt;
&lt;br /&gt;
Testing:&lt;br /&gt;
 optirun -vv glxgears&lt;br /&gt;
 optirun -vv clinfo&lt;br /&gt;
 optirun -b none ./hashcat64.bin -I&lt;br /&gt;
 optirun --no-xorg ./hashcat64.bin -I&lt;br /&gt;
&lt;br /&gt;
As bridge, primus or virtualgl can be used. Primus is available in the Debian repos while VirtualGL is [https://sourceforge.net/projects/virtualgl/?source=typ_redirect here]. Using primus currently.&lt;br /&gt;
&lt;br /&gt;
CUDA toolkit:&lt;br /&gt;
 apt-get install nvidia-cuda-toolkit&lt;br /&gt;
It removed nvidia-libopencl1 but hashcat is still running fine...&lt;br /&gt;
&lt;br /&gt;
GPU load:&lt;br /&gt;
 optirun --no-xorg nvidia-smi&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
Nothing wrong with the touchpad but its default config is a bit painful especially because it&#039;s large and my right palm touches it often, even with the option to diable it when typing and because it&#039;s &amp;quot;soft&amp;quot; buttons.&lt;br /&gt;
&amp;lt;br&amp;gt;I disabled the button area to limit somehow the problem but still you&#039;ve to get used to first touch and hold before pressing a button to do a drag and drop and not the opposite.&lt;br /&gt;
 synclient AreaBottomEdge=4026&lt;br /&gt;
To add a middle button:&lt;br /&gt;
 synclient RightButtonAreaLeft=3914&lt;br /&gt;
 synclient RightButtonAreaRight=0&lt;br /&gt;
 synclient RightButtonAreaTop=4026&lt;br /&gt;
 synclient RightButtonAreaBottom=0&lt;br /&gt;
 synclient MiddleButtonAreaLeft=3100&lt;br /&gt;
 synclient MiddleButtonAreaRight=3873&lt;br /&gt;
 synclient MiddleButtonAreaTop=4026&lt;br /&gt;
 synclient MiddleButtonAreaBottom=0&lt;br /&gt;
And because I love it:&lt;br /&gt;
 synclient CircularScrolling=1&lt;br /&gt;
Some doc [https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Buttonless_touchpads_.28aka_ClickPads.29 here] and the official one [http://www.x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html here]&lt;br /&gt;
&lt;br /&gt;
If with some kernels you get troubles using Synaptics options, check dmesg, maybe Touchpad is detected by another driver too:&lt;br /&gt;
 DLL06E4:01 06CB:7A13 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-7/i2c-DLL06E4:01/0018:06CB:7A13.0003/input/input14&lt;br /&gt;
 hid-multitouch 0018:06CB:7A13.0003: input,hidraw2: I2C HID v1.00 Mouse [DLL06E4:01 06CB:7A13] on i2c-DLL06E4:01&lt;br /&gt;
If this is so, add /etc/modprobe.d/synaptics.conf with this line, cf Kernel section below:&lt;br /&gt;
 blacklist i2c-designware-platform&lt;br /&gt;
&lt;br /&gt;
On recent kernels, i2c-designware-platform is directly in the kernel, not as module anymore.&lt;br /&gt;
To manage to blacklist it, see https://unix.stackexchange.com/questions/423797/how-do-i-disable-i2c-designware-support-when-its-not-built-as-a-module#446913&lt;br /&gt;
Edit /etc/default/grub and append the following blacklist invocation to the command line, then update-grub.&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;… initcall_blacklist=dw_i2c_init_driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Touchscreen====&lt;br /&gt;
Touchscreen works well but when an external screen is connected, it spans over both screens so e.g. touching the middle of the laptop screen moves the mouse to some middle point of the virtual screen combining both screens.&lt;br /&gt;
&amp;lt;br&amp;gt;To fix it, see https://wiki.archlinux.org/index.php/Calibrating_Touchscreen&lt;br /&gt;
&amp;lt;br&amp;gt;This example is for an external screen mapped to the right of the laptop screen:&lt;br /&gt;
 # c0 = width of laptop screen / total width&lt;br /&gt;
 c0=$(bc -l &amp;lt;&amp;lt;&amp;lt; &amp;quot;scale=2; $(xrandr|grep -A1 eDP1|sed &#039;1d;s/x.*//&#039;)/$(xrandr|grep &#039;^Screen 0&#039;|sed &#039;s/.*current //;s/ x.*//&#039;)&amp;quot;)&lt;br /&gt;
 xinput set-prop &amp;quot;ELAN Touchscreen&amp;quot; --type=float &amp;quot;Coordinate Transformation Matrix&amp;quot; \&lt;br /&gt;
    c0 0  0 \&lt;br /&gt;
    0  1  0 \&lt;br /&gt;
    0  0  1&lt;br /&gt;
&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
Kernel complains about a missing file.&lt;br /&gt;
&amp;lt;br&amp;gt;Apparently we can get it from Windows drivers but I don&#039;t know where to find them, so I took [https://www.dropbox.com/s/8goc4omhnzxij93/BCM-0a5c-6410.hcd?dl=0 this one] and copied it into /lib/firmware/brcm&lt;br /&gt;
&lt;br /&gt;
Then Bluetooth was recognized but I couldn&#039;t pair my WM615 mouse.&lt;br /&gt;
&amp;lt;br&amp;gt;After restarting the Bt adaptor, I could finally pair:&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
  power off&lt;br /&gt;
  power on&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* https://wiki.debian.org/BluetoothUser&lt;br /&gt;
* https://wiki.archlinux.org/index.php/bluetooth&lt;br /&gt;
There is also a possibility to pair directly from bluetoothctl, see https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see [[#Hardware_changes]]&lt;br /&gt;
&lt;br /&gt;
====HiDPI====&lt;br /&gt;
Cinnamon handles it nicely but some applications don&#039;t such as Gimp and you end up with a microscopic tools ribbon.&lt;br /&gt;
&amp;lt;br&amp;gt;See https://wiki.archlinux.org/index.php/HiDPI for some useful tips&lt;br /&gt;
&lt;br /&gt;
Cinnamon / System Settings / Desktop Scaling has the same effect as `gsettings set org.cinnamon.desktop.interface scaling-factor 2`&lt;br /&gt;
&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (1016x572 millimeters)&lt;br /&gt;
   resolution:    96x96 dots per inch&lt;br /&gt;
I&#039;ve no ruler at hand but if it&#039;s 15.6&#039;&#039; in diagonal and pixels are square, this gives 293.4 dpi for screen dimensions of 332x187mm.&lt;br /&gt;
&amp;lt;br&amp;gt;So closest hit with common DPI is 96*3=288dpi&lt;br /&gt;
 xrandr --dpi 288&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (338x190 millimeters)&lt;br /&gt;
   resolution:    289x289 dots per inch&lt;br /&gt;
Let&#039;s document those fictive dimensions for next boots by creating /etc/X11/xorg.conf.d/90-monitor.conf with&lt;br /&gt;
 Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
     Identifier             &amp;quot;&amp;lt;default monitor&amp;gt;&amp;quot;&lt;br /&gt;
     DisplaySize            338 190    # In millimeters&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT5 and GTK+ 3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;To enable better scaling of QT5 and GTK+ 3, add to .bashrc (not to .xsessionrc otherwise Cinnamon taskbar is messed up!):&lt;br /&gt;
 QT_DEVICE_PIXEL_RATIO=3&lt;br /&gt;
 GDK_SCALE=3&lt;br /&gt;
 GDK_DPI_SCALE=0.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. Skype&lt;br /&gt;
 sudo apt-get install qt4-qtconfig&lt;br /&gt;
 qtconfig-qt4&lt;br /&gt;
=&amp;gt; one can change font size&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gimp 2.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. copy /usr/share/gimp/2.0/themes/Default as ~/.gimp-2.8/themes/HiDPI and change a few options:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
--- gtkrc&lt;br /&gt;
+++ gtkrc&lt;br /&gt;
-  GimpToolPalette::tool-icon-size   = button&lt;br /&gt;
+  GimpToolPalette::tool-icon-size   = dialog&lt;br /&gt;
-  GimpEditor::button-icon-size      = menu&lt;br /&gt;
+  GimpEditor::button-icon-size      = button&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wine&#039;&#039;&#039;&lt;br /&gt;
 winecfg&lt;br /&gt;
Change &amp;quot;dpi&amp;quot; in &amp;quot;Graphics&amp;quot; tab&lt;br /&gt;
&#039;&#039;&#039;Virtualbox&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;View/Scale Factor is helpful...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chromium&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Chrome works fine but &#039;&#039;Chromium&#039;&#039; broke at some point, so I&#039;ve to launch it with:&lt;br /&gt;
&lt;br /&gt;
 GDK_SCALE=2 exec chromium&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Small console font&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;I don&#039;t care but if that&#039;s an issue for you, from [https://github.com/mpalourdio/xps13/blob/master/HiDPI/tty.md here]:&lt;br /&gt;
 sudo dpkg-reconfigure console-setup&lt;br /&gt;
* Choose UTF-8&lt;br /&gt;
* Choose the default Combined - Latin, ... option (&amp;quot;Latin&amp;quot; includes the English alphabet)&lt;br /&gt;
* Select the terminus font&lt;br /&gt;
* Select 16x32&lt;br /&gt;
* OK&lt;br /&gt;
To apply immediately, open a TTY and run setupcon, else just reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Multiple displays&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Combining HiDPI screen with external non-HiDPI? See https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xpra&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;cf https://xpra.org/trac/ticket/2492&lt;br /&gt;
&lt;br /&gt;
====Sensors====&lt;br /&gt;
 apt-get install lm-sensors&lt;br /&gt;
 sensors-detect&lt;br /&gt;
Sensors-detect found coretemp which is now loaded via /etc/modules:&lt;br /&gt;
 coretemp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====External microphone====&lt;br /&gt;
The sole jack is a TRRS, combining output and mic.&lt;br /&gt;
&amp;lt;br&amp;gt;Soundcard is a Realtek ALC3266&lt;br /&gt;
  grep -r Realtek /proc/asound/card*&lt;br /&gt;
  /proc/asound/card0/codec#0:Codec: Realtek ALC3266&lt;br /&gt;
&amp;lt;br&amp;gt;With Debian+Cinnamon, the system detects the mic, we can see it in the sound properties and select it, but still the internal mic is used.&lt;br /&gt;
&amp;lt;br&amp;gt;When using pavucontrol, selecting the &amp;quot;headset microphone&amp;quot; works fine (it still needs some level boosting).&lt;br /&gt;
&lt;br /&gt;
====DA200====&lt;br /&gt;
[http://accessories.euro.dell.com/sna/products/Station_daccueil/productdetail.aspx?c=fr&amp;amp;l=fr&amp;amp;s=dhs&amp;amp;cs=frdhs1&amp;amp;sku=470-ABRY DA200] used to be recognized only if it was plugged at boot.&lt;br /&gt;
&amp;lt;br&amp;gt;With kernel 4.6 the device is properly detected dynamically.&lt;br /&gt;
&amp;lt;br&amp;gt;The adapter is actually using DisplayPort. &lt;br /&gt;
&amp;lt;br&amp;gt;VGA output works.&lt;br /&gt;
&lt;br /&gt;
HDMI output is limited to some modes (max 1920x1080, cf [http://www.dell.com/support/article/us/en/19/SLN303466 Dell support]) and by default xrandr will try an unsupported mode.&lt;br /&gt;
&amp;lt;br&amp;gt;Even &amp;quot;xrandr --output DP-1 --mode 1920x1080&amp;quot; fails by default.&lt;br /&gt;
&lt;br /&gt;
Some supported modes:  800x600, 1024x768, 1280x720, 1920x1080i&lt;br /&gt;
&amp;lt;br&amp;gt;1920x1080i is interlaced and awful to look at.&lt;br /&gt;
&amp;lt;br&amp;gt;Reducing the rate allows a non-interlaced 1920x1080 mode, you can test it with:&lt;br /&gt;
 xrandr --output DP-1 --mode 1920x1080 -r 30&lt;br /&gt;
If this works for you, you can create a new mode, using cvt to find the proper parameters:&lt;br /&gt;
 cvt 1920 1080 30&lt;br /&gt;
 # 1920x1080 29.95 Hz (CVT) hsync: 33.01 kHz; pclk: 79.75 MHz&lt;br /&gt;
 Modeline &amp;quot;1920x1080_30.00&amp;quot;   79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
Creating and adding the new mode:&lt;br /&gt;
 xrandr --newmode &amp;quot;1920x1080_30.00&amp;quot; 79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
 xrandr --addmode DP-1  &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
Now you can choose this new mode:&lt;br /&gt;
  xrandr --output DP-1 --mode &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
&lt;br /&gt;
When plugged the following hardware gets detected:&lt;br /&gt;
&lt;br /&gt;
lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp..     &amp;lt;= Ethernet&lt;br /&gt;
Bus 004 Device 002: ID 05e3:0617 Genesys Logic, Inc..&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 003 Device 003: ID 0835:2a01 Action Star Enterprise Co., Ltd. &amp;lt;= Billboard&lt;br /&gt;
Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;The USB Billboard Device Class definition describes the methods used to communicate the Alternate Modes supported by a device container to a host system. More details on Billboard Devices are available in the USB Billboard Device Class specification at the following link: http://www.usb.org/developers/docs/devclass_docs/.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
lspci:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
06:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:01.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:02.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
0a:00.0 USB controller: Intel Corporation Device 15b5 (prog-if 30 [XHCI])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lsmod:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
r8152                  49152  0&lt;br /&gt;
cdc_ether              16384  0&lt;br /&gt;
usbnet                 40960  1 cdc_ether&lt;br /&gt;
mii                    16384  2 r8152,usbnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Solved issues===&lt;br /&gt;
====i915 and blank screen====&lt;br /&gt;
There were numerous issues with the video card. Now with latest kernels (&amp;gt;=4.8) most issues are gone, still some occasional blank screen or freeze when plugging an external HDMI.&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
WM615 mouse used to act erratically, the cursor stopping now and then. Now with latest kernels and an Intel Wi-Fi+BT card it&#039;s fine.&lt;br /&gt;
====Wi-Fi====&lt;br /&gt;
Wi-Fi tends to disassociate under heavy load, switching to other SSIDs or frequencies (5Ghz&amp;lt;&amp;gt;2.4GHz) and coming back seems to help.&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see #Hardware_changes&lt;br /&gt;
&lt;br /&gt;
===Issues===&lt;br /&gt;
====rfkill button====&lt;br /&gt;
Rfkill button of the keyboard (Fn+PrtScr) doesn&#039;t seem to work, no big deal.&lt;br /&gt;
&lt;br /&gt;
==Kernels==&lt;br /&gt;
initramfs complains about lvmetad and I&#039;m not sure it&#039;s that useful on SSD, so just disabling it:&lt;br /&gt;
&amp;lt;br&amp;gt;Edit /etc/lvm/lvm.conf&lt;br /&gt;
 use_lvmetad=0&lt;br /&gt;
Then stop it&lt;br /&gt;
 systemctl stop lvm2-lvmetad&lt;br /&gt;
===Debian===&lt;br /&gt;
Debian kernel 4.8 works quite well&lt;br /&gt;
===Compilation notes===&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;, to compile &amp;gt;=4.4, one needs at least initramfs-tools v0.122 to get the nvme.ko properly loaded and therefore the SSD properly seen.&lt;br /&gt;
&lt;br /&gt;
To compile a vanilla kernel, cf http://www.cyberciti.biz/faq/debian-ubuntu-building-installing-a-custom-linux-kernel/&lt;br /&gt;
 sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc&lt;br /&gt;
 sudo apt-get install kernel-package&lt;br /&gt;
 wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz&lt;br /&gt;
 tar xf linux-4.4.tar.xz&lt;br /&gt;
 cd linux-4.4&lt;br /&gt;
 cp /boot/config-$(uname -r) .config&lt;br /&gt;
 make menuconfig&lt;br /&gt;
 make-kpkg clean&lt;br /&gt;
 make-kpkg --rootcmd fakeroot --initrd --append_to_version=9-doegox kernel_image kernel_headers -j 7&lt;br /&gt;
&lt;br /&gt;
==Hardware changes==&lt;br /&gt;
Replacing Broadcom Wi-Fi+BT by an [https://wikidevi.com/wiki/Intel Intel one]:&lt;br /&gt;
* Intel 7265 Dual Band Wireless-AC 7265NGW Card 802.11ac 867Mbps WIFI BT4.0 UK&lt;br /&gt;
** http://www.befr.ebay.be/itm/262049756966?_trksid=p2060353.m2749.l2649&amp;amp;ssPageName=STRK%3AMEBIDX%3AIT&lt;br /&gt;
** https://downloadcenter.intel.com/download/17045&lt;br /&gt;
** This requires installing package firmware-iwlwifi&lt;br /&gt;
** Seems to have less Wi-Fi issues, but still the same BT problems pairing the Dell mouse&lt;br /&gt;
&lt;br /&gt;
 iwlwifi 0000:02:00.0: firmware: direct-loading firmware iwlwifi-7265-17.ucode&lt;br /&gt;
 iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 7265, REV=0x184&lt;br /&gt;
&lt;br /&gt;
Alternatives to DA200:&lt;br /&gt;
* HDMI Male To VGA Female Converter&lt;br /&gt;
** http://www.aliexpress.com/item/1pc-HDMI-Male-To-VGA-Female-Converter-Box-Adapter-With-Audio-Cable-For-PC-HDTVHot-New/32448171552.html&lt;br /&gt;
* USB 3.0 10/100/1000Mbps Gigabit Ethernet RJ45&lt;br /&gt;
** http://www.aliexpress.com/item/Hot-selling-New-USB-3-0-10-100-1000Mbps-Gigabit-Ethernet-RJ45-External-Network-Card-LAN/32546613204.html&lt;br /&gt;
* 4-Port Ultra-Slim USB 3.0 Hub&lt;br /&gt;
** https://www.anker.com/products/A7516011&lt;br /&gt;
** http://www.amazon.de/Anker-Datenhub-Ultrabooks-weiteren-kompatiblen/dp/B00Y211AFM/&lt;br /&gt;
&lt;br /&gt;
==Misc hardware==&lt;br /&gt;
Smartcard reader&lt;br /&gt;
* ACS ACR38U PocketMate Smart Card Reader&lt;br /&gt;
** http://www.acs.com.hk/en/products/160/acr38u-pocketmate-smart-card-reader/&lt;br /&gt;
** http://www.befr.ebay.be/itm/EU-SHIPPING-Smart-Card-USB-ACS-ACR38U-National-ID-Tachograph-Reader-Writer-/121899037557&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10539</id>
		<title>Laptop Dell XPS 15</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10539"/>
		<updated>2022-01-09T14:14:04Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: Reverted edits by PhilippeTeuwen (talk) to last revision by Valient&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Notes about installing a Debian Stretch on a Dell XPS 15&lt;br /&gt;
==Hardware==&lt;br /&gt;
Dell XPS 15 model 9550 (variant with touchscreen &amp;amp; PCIe m.2 ssd)&lt;br /&gt;
&lt;br /&gt;
From the [http://www.dell.com/support/home/fr/fr/frdhs1/product-support/servicetag/DHVNH72/configuration configuration] list:&lt;br /&gt;
* 6th Generation Intel(R) Core (TM) i7-6700HQ Quad Core (6M Cache, up to 3.5 GHz)&lt;br /&gt;
* 16Go (2x8Go) DDR4 2133MHz&lt;br /&gt;
* 15.6&amp;quot; 4K Ultra HD (3840 x 2160) InfinityEdge touch, Sliver&lt;br /&gt;
* 1To PCIe Solid State&lt;br /&gt;
* DW1830 3x3 802.11ac 2.4/5GHz + Bluetooth 4.1&lt;br /&gt;
* Dell 84 WHr 6-Cell Lithium-Ion Battery&lt;br /&gt;
* Internal US/International Qwerty Backlit Keyboard&lt;br /&gt;
From the drivers list:&lt;br /&gt;
* Realtek High Definition Audio ALC3266&lt;br /&gt;
* Realtek RTS5242 PCIe Gen2 CardReader&lt;br /&gt;
* Realtek USB GBE Ethernet Controller&lt;br /&gt;
* ST Microlectronics LNG3DMTR Motion Sensor&lt;br /&gt;
* Intel HD Graphics 530/P530&lt;br /&gt;
* nVIDIA Geforce GTX 960M Graphics&lt;br /&gt;
From dmesg (incomplete):&lt;br /&gt;
* BCM20703A1 Bluetooth 4.1 (firmware brcm/BCM-0a5c-6410.hcd)&lt;br /&gt;
From lspci -nn:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00:00.0 Host bridge [0600]: Intel Corporation Sky Lake Host Bridge/DRAM Registers [8086:1910] (rev 07)&lt;br /&gt;
00:01.0 PCI bridge [0604]: Intel Corporation Sky Lake PCIe Controller (x16) [8086:1901] (rev 07)&lt;br /&gt;
00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:191b] (rev 06)&lt;br /&gt;
00:04.0 Signal processing controller [1180]: Intel Corporation Device [8086:1903] (rev 07)&lt;br /&gt;
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f] (rev 31)&lt;br /&gt;
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131] (rev 31)&lt;br /&gt;
00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #0 [8086:a160] (rev 31)&lt;br /&gt;
00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #1 [8086:a161] (rev 31)&lt;br /&gt;
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-H CSME HECI #1 [8086:a13a] (rev 31)&lt;br /&gt;
00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-H SATA Controller [AHCI mode] [8086:a103] (rev 31)&lt;br /&gt;
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #1 [8086:a110] (rev f1)&lt;br /&gt;
00:1c.1 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #2 [8086:a111] (rev f1)&lt;br /&gt;
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #9 [8086:a118] (rev f1)&lt;br /&gt;
00:1d.4 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #13 [8086:a11c] (rev f1)&lt;br /&gt;
00:1d.6 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #15 [8086:a11e] (rev f1)&lt;br /&gt;
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC Controller [8086:a14e] (rev 31)&lt;br /&gt;
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H PMC [8086:a121] (rev 31)&lt;br /&gt;
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD Audio [8086:a170] (rev 31)&lt;br /&gt;
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus [8086:a123] (rev 31)&lt;br /&gt;
01:00.0 3D controller [0302]: NVIDIA Corporation GM107M [GeForce GTX 960M] [10de:139b] (rev ff)&lt;br /&gt;
02:00.0 Network controller [0280]: Broadcom Corporation BCM43602 802.11ac Wireless LAN SoC [14e4:43ba] (rev 01)&lt;br /&gt;
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device [10ec:525a] (rev 01)&lt;br /&gt;
04:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd Device [144d:a802] (rev 01)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 001 Device 003: ID 04f3:21d5 Elan Microelectronics Corp.            &amp;lt;= touchscreen&lt;br /&gt;
Bus 001 Device 002: ID 0a5c:6410 Broadcom Corp.                         &amp;lt;= bluetooth&lt;br /&gt;
Bus 001 Device 004: ID 0c45:6713 Microdia                               &amp;lt;= webcam&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From lscpu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Architecture:          x86_64&lt;br /&gt;
CPU op-mode(s):        32-bit, 64-bit&lt;br /&gt;
Byte Order:            Little Endian&lt;br /&gt;
CPU(s):                8&lt;br /&gt;
On-line CPU(s) list:   0-7&lt;br /&gt;
Thread(s) per core:    2&lt;br /&gt;
Core(s) per socket:    4&lt;br /&gt;
Socket(s):             1&lt;br /&gt;
NUMA node(s):          1&lt;br /&gt;
Vendor ID:             GenuineIntel&lt;br /&gt;
CPU family:            6&lt;br /&gt;
Model:                 94&lt;br /&gt;
Model name:            Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz&lt;br /&gt;
Stepping:              3&lt;br /&gt;
CPU MHz:               2847.812&lt;br /&gt;
CPU max MHz:           3500.0000&lt;br /&gt;
CPU min MHz:           800.0000&lt;br /&gt;
BogoMIPS:              5183.88&lt;br /&gt;
Virtualization:        VT-x&lt;br /&gt;
L1d cache:             32K&lt;br /&gt;
L1i cache:             32K&lt;br /&gt;
L2 cache:              256K&lt;br /&gt;
L3 cache:              6144K&lt;br /&gt;
NUMA node0 CPU(s):     0-7&lt;br /&gt;
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush &lt;br /&gt;
dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts &lt;br /&gt;
rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 &lt;br /&gt;
ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx &lt;br /&gt;
f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_notify hwp_act_window hwp_epp &lt;br /&gt;
intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid &lt;br /&gt;
rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dell Wireless 1830 = BCM43602 + BCM20703A1 (DW1830 Bluetooth 4.1 LE)&lt;br /&gt;
&lt;br /&gt;
BCM43602	PCI ID: 14e4:43ba&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# smartctl -d scsi -i /dev/nvme0n1&lt;br /&gt;
smartctl 6.4 2015-06-04 r4109 [x86_64-linux-4.3.0-1-amd64] (local build)&lt;br /&gt;
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org&lt;br /&gt;
&lt;br /&gt;
=== START OF INFORMATION SECTION ===&lt;br /&gt;
Vendor:               NVMe&lt;br /&gt;
Product:              PM951 NVMe SAMSU&lt;br /&gt;
Revision:             7D0Q&lt;br /&gt;
Compliance:           SPC-4&lt;br /&gt;
User Capacity:        1,024,209,543,168 bytes [1.02 TB]&lt;br /&gt;
Logical block size:   512 bytes&lt;br /&gt;
Rotation Rate:        Solid State Device&lt;br /&gt;
Logical Unit id:      0x0025384cf1b0fd29&lt;br /&gt;
Serial number:        S2FZNXAGC03824&lt;br /&gt;
Device type:          disk&lt;br /&gt;
Local Time is:        Sun Feb 14 22:02:03 2016 CET&lt;br /&gt;
SMART support is:     Unavailable - device lacks SMART capability.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* http://topics-cdn.dell.com/pdf/xps-15-9550-laptop_Service%20Manual_en-us.pdf&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dell_XPS_15&lt;br /&gt;
* https://bbs.archlinux.org/viewtopic.php?id=204739&lt;br /&gt;
* http://ubuntuforums.org/showthread.php?t=2301071&lt;br /&gt;
* http://forthescience.org/blog/2015/03/20/installing_ubuntu_14_04_on_the_new_dell_xps_13/&lt;br /&gt;
* https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013&lt;br /&gt;
* http://bartongeorge.net/2015/02/23/update-2-dell-xps-13-laptop-developer-edition-sputnik-gen-4/&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
I first tried to keep a dual-boot just in case, but once we disable Raid and put SATA in AHCI mode, Windows can&#039;t boot anymore. (later I read it could be possible to fix it by rebooting several times Windows till safe mode is kicked in, but it was too late for me.)&lt;br /&gt;
&lt;br /&gt;
Just in case again, one can boot Windows and create a USB recovery.&lt;br /&gt;
==Bios==&lt;br /&gt;
* Secure Boot: disable&lt;br /&gt;
* SATA: switch from Raid to AHCI&lt;br /&gt;
* Boot: not sure it&#039;s needed but I disabled Windows boot manager entry and kept the hdd UEFI entry: UEFI: PM951 NVMe SAMSUNG 1024GB, Partition 1&lt;br /&gt;
* POST/Fastboot/Thorough&lt;br /&gt;
* auto os recovery threshold off&lt;br /&gt;
&lt;br /&gt;
To update the BIOS:&lt;br /&gt;
* put it on a USB stick&lt;br /&gt;
* reboot&lt;br /&gt;
* select BIOS flash update on the boot screen (F12).&lt;br /&gt;
No need to put it on a bootable DOS, just give the exe to the BIOS update built-in util.&lt;br /&gt;
&amp;lt;br&amp;gt;You can even drop the update on /boot/efi as it&#039;s also a FAT partition, no need for a USB memory stick.&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
* 1.2.0 aka A6 [http://downloads.dell.com/FOLDER03659467M/1/XPS_9550_1.2.0.exe XPS_9550_1.2.0.exe]&lt;br /&gt;
* 1.2.10 aka A10 [http://downloads.dell.com/FOLDER03800340M/1/XPS_9550_1.2.10.exe XPS_9550_1.2.10.exe]&lt;br /&gt;
* 1.2.14 aka A13 [http://downloads.dell.com/FOLDER03906323M/1/XPS_9550_1.2.14.exe XPS_9550_1.2.14.exe]&lt;br /&gt;
* 1.2.16 [http://downloads.dell.com/FOLDER04030973M/1/XPS_9550_1.2.16.exe XPS_9550_1.2.16.exe]&lt;br /&gt;
* &#039;&#039;&#039;1.2.18&#039;&#039;&#039; [http://downloads.dell.com/FOLDER04078627M/1/XPS_9550_1.2.18.exe XPS_9550_1.2.18.exe]&lt;br /&gt;
&lt;br /&gt;
Attention: with versions 1.2.10 through 1.2.16 and older Linux kernels, there is a serious bug that let the screen black after suspend/wake up. The workaround is to set the lightness to the maximum but it breaks further lightness tuning.&lt;br /&gt;
&lt;br /&gt;
Linux kernels 4.8 and below tend to work best with A6 BIOS (1.2.0), although there is a workaround that allows it to work with later versions.  This workaround uses the intel_reg utility to reset the &amp;quot;pwm_granuality&amp;quot; setting of the onboard graphics.  Solution discussed here: [http://en.community.dell.com/techcenter/os-applications/f/4613/t/19985320].  This issue is reportedly fixed in Linux 4.9, and also in recent Ubuntu 16.10 kernel updates.  See the patch here [https://patchwork.freedesktop.org/patch/109407/].&lt;br /&gt;
&lt;br /&gt;
Even with the intel_reg workaround above, the screen brightness cannot be set to the lowest level without turning the screen off.  This is fixed in 1.2.18.&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
I kept UEFI so we need a Debian netinstall because liveCD doesn&#039;t have UEFI support yet.&lt;br /&gt;
&amp;lt;br&amp;gt;But Wi-Fi requires a proprietary firmware:&lt;br /&gt;
 https://github.com/OpenELEC/wlan-firmware/blob/master/firmware/brcm/brcmfmac43602-pcie.bin&lt;br /&gt;
so the easiest is to take a Debian netinstall with proprietary firmwares included.&lt;br /&gt;
&amp;lt;br&amp;gt;At time of writing Stretch is testing and last release is alpha5:&lt;br /&gt;
 http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/stretch_di_alpha5/amd64/iso-cd/&lt;br /&gt;
dd the image on a USB stick and boot it.&lt;br /&gt;
&amp;lt;br&amp;gt;It will also complain for a missing brcmfmac43602-pcie.txt but we can safely ignore it. (well I think so, but Wi-Fi has troubles now and then under heavy load, see below)&lt;br /&gt;
&amp;lt;!-- sysml eml ems --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I chose a guided partitionning of the entire disk, with encrypted LVM containing /, /home and swap. But proposed / was a bit too small IMHO (10G) so I deleted and recreated / (50G) and /home.&lt;br /&gt;
&amp;lt;br&amp;gt;Initially I tried to add the &amp;quot;discard&amp;quot; option for the partitions which should help on SSD but the kernel reported that &amp;quot;discard&amp;quot; wasn&#039;t supported by the disk.&lt;br /&gt;
&lt;br /&gt;
If you want to backup partition table and partitions before destroying everything, it&#039;s the right time!&lt;br /&gt;
 parted /dev/nvme0n1&lt;br /&gt;
 print&lt;br /&gt;
 sgdisk --backup=/some/safe/location/nvme0n1.gpt /dev/nvme0n1&lt;br /&gt;
I installed Cinnamon. I don&#039;t know for the others but Cinnamon has a nice auto setting to double features on HiDPI screens.&lt;br /&gt;
==First boot==&lt;br /&gt;
Once installed, the Debian didn&#039;t boot up.&lt;br /&gt;
&amp;lt;br&amp;gt;I tried many things but at the end the only thing that worked was to copy Debian EFI to the default one:&lt;br /&gt;
&lt;br /&gt;
Starting the netinstall again, in rescue mode, get a chroot shell, then&lt;br /&gt;
 mount /dev/nvme0n1p1 /boot/efi&lt;br /&gt;
 cd /boot/efi/EFI&lt;br /&gt;
 mkdir boot&lt;br /&gt;
 cp debian/grubx64.efi boot/bootx64.efi&lt;br /&gt;
I also deleted the Windows files in EFI.&lt;br /&gt;
&lt;br /&gt;
Resource:&lt;br /&gt;
* https://wiki.debian.org/GrubEFIReinstall&lt;br /&gt;
* https://wiki.archlinux.org/index.php/GRUB#Create_an_ESP&lt;br /&gt;
* https://help.ubuntu.com/community/UEFI&lt;br /&gt;
* https://wiki.debian.org/UEFI&lt;br /&gt;
* https://isalo.org/wiki.debian-fr/Debian_%26_UEFI    &lt;br /&gt;
&lt;br /&gt;
FTR things that failed included:&lt;br /&gt;
* [http://www.rodsbooks.com/refind/getting.html Refind] couldn&#039;t boot at all. Strange as the netinstall could boot...&lt;br /&gt;
* tweaks with efibootmgr, update-grub etc&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UPDATE&#039;&#039;&#039;: It might be possible to fix the issue from the BIOS itself, see http://www.dell.com/support/article/us/en/04/SLN297060/en&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
===Working===&lt;br /&gt;
* Screen&lt;br /&gt;
* Touchscreen&lt;br /&gt;
* Touchpad&lt;br /&gt;
* Keyboard backlight and media buttons (volume, luminosity, backlight)&lt;br /&gt;
* Wi-Fi (with the proprietary driver, cf installation above)&lt;br /&gt;
* HDMI&lt;br /&gt;
* SD-Card reader&lt;br /&gt;
* Speakers, mic&lt;br /&gt;
* Webcam&lt;br /&gt;
&lt;br /&gt;
===Working after manual steps===&lt;br /&gt;
====i915====&lt;br /&gt;
Screen was working but dmesg was complaining:&lt;br /&gt;
 i915 0000:00:02.0: firmware: failed to load i915/skl_dmc_ver1.bin&lt;br /&gt;
So I installed that firmware, not sure what it&#039;s changed&lt;br /&gt;
 sudo apt-get install firmware-misc-nonfree&lt;br /&gt;
====Optimus====&lt;br /&gt;
Resources:&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Optimus&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Bumblebee&lt;br /&gt;
 apt-get install bumblebee-nvidia&lt;br /&gt;
 reboot&lt;br /&gt;
Example:&lt;br /&gt;
 apt-get install nvidia-settings&lt;br /&gt;
 optirun -b none nvidia-settings -c :8&lt;br /&gt;
This also works for CUDA:&lt;br /&gt;
 optirun -b none ./cudaHashcat64.bin -m 500 example500.hash example.dict&lt;br /&gt;
====Touchpad====&lt;br /&gt;
Nothing wrong with the touchpad but its default config is a bit painful especially because it&#039;s large and my right palm touches it often, even with the option to diable it when typing and because it&#039;s &amp;quot;soft&amp;quot; buttons.&lt;br /&gt;
&amp;lt;br&amp;gt;I disabled the button area to limit somehow the problem but still you&#039;ve to get used to first touch and hold before pressing a button to do a drag and drop and not the opposite.&lt;br /&gt;
 synclient AreaBottomEdge=4026&lt;br /&gt;
To add a middle button:&lt;br /&gt;
 synclient RightButtonAreaLeft=3914&lt;br /&gt;
 synclient RightButtonAreaRight=0&lt;br /&gt;
 synclient RightButtonAreaTop=4026&lt;br /&gt;
 synclient RightButtonAreaBottom=0&lt;br /&gt;
 synclient MiddleButtonAreaLeft=3100&lt;br /&gt;
 synclient MiddleButtonAreaRight=3873&lt;br /&gt;
 synclient MiddleButtonAreaTop=4026&lt;br /&gt;
 synclient MiddleButtonAreaBottom=0&lt;br /&gt;
And because I love it:&lt;br /&gt;
 synclient CircularScrolling=1&lt;br /&gt;
Some doc [https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Buttonless_touchpads_.28aka_ClickPads.29 here] and the official one [http://www.x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html here]&lt;br /&gt;
&lt;br /&gt;
If with some kernels you get troubles using Synaptics options, check dmesg, maybe Touchpad is detected by another driver too:&lt;br /&gt;
 DLL06E4:01 06CB:7A13 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-7/i2c-DLL06E4:01/0018:06CB:7A13.0003/input/input14&lt;br /&gt;
 hid-multitouch 0018:06CB:7A13.0003: input,hidraw2: I2C HID v1.00 Mouse [DLL06E4:01 06CB:7A13] on i2c-DLL06E4:01&lt;br /&gt;
If this is so, add /etc/modprobe.d/synaptics.conf with this line, cf Kernel section below:&lt;br /&gt;
 blacklist i2c-designware-platform&lt;br /&gt;
&lt;br /&gt;
====Touchscreen====&lt;br /&gt;
Touchscreen works well but when an external screen is connected, it spans over both screens so e.g. touching the middle of the laptop screen moves the mouse to some middle point of the virtual screen combining both screens.&lt;br /&gt;
&amp;lt;br&amp;gt;To fix it, see https://wiki.archlinux.org/index.php/Calibrating_Touchscreen&lt;br /&gt;
&amp;lt;br&amp;gt;This example is for an external screen mapped to the right of the laptop screen:&lt;br /&gt;
 # c0 = width of laptop screen / total width&lt;br /&gt;
 c0=$(bc -l &amp;lt;&amp;lt;&amp;lt; &amp;quot;scale=2; $(xrandr|grep -A1 eDP1|sed &#039;1d;s/x.*//&#039;)/$(xrandr|grep &#039;^Screen 0&#039;|sed &#039;s/.*current //;s/ x.*//&#039;)&amp;quot;)&lt;br /&gt;
 xinput set-prop &amp;quot;ELAN Touchscreen&amp;quot; --type=float &amp;quot;Coordinate Transformation Matrix&amp;quot; \&lt;br /&gt;
    c0 0  0 \&lt;br /&gt;
    0  1  0 \&lt;br /&gt;
    0  0  1&lt;br /&gt;
&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
Kernel complains about a missing file.&lt;br /&gt;
&amp;lt;br&amp;gt;Apparently we can get it from Windows drivers but I don&#039;t know where to find them, so I took [https://www.dropbox.com/s/8goc4omhnzxij93/BCM-0a5c-6410.hcd?dl=0 this one] and copied it into /lib/firmware/brcm&lt;br /&gt;
&lt;br /&gt;
Then Bluetooth was recognized but I couldn&#039;t pair my WM615 mouse.&lt;br /&gt;
&amp;lt;br&amp;gt;After restarting the Bt adaptor, I could finally pair:&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
  power off&lt;br /&gt;
  power on&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* https://wiki.debian.org/BluetoothUser&lt;br /&gt;
* https://wiki.archlinux.org/index.php/bluetooth&lt;br /&gt;
There is also a possibility to pair directly from bluetoothctl, see https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see [[#Hardware_changes]]&lt;br /&gt;
&lt;br /&gt;
====HiDPI====&lt;br /&gt;
Cinnamon handles it nicely but some applications don&#039;t such as Gimp and you end up with a microscopic tools ribbon.&lt;br /&gt;
&amp;lt;br&amp;gt;See https://wiki.archlinux.org/index.php/HiDPI for some useful tips&lt;br /&gt;
&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (1016x572 millimeters)&lt;br /&gt;
   resolution:    96x96 dots per inch&lt;br /&gt;
I&#039;ve no ruler at hand but if it&#039;s 15.6&#039;&#039; in diagonal and pixels are square, this gives 293.4 dpi for screen dimensions of 332x187mm.&lt;br /&gt;
&amp;lt;br&amp;gt;So closest hit with common DPI is 96*3=288dpi&lt;br /&gt;
 xrandr --dpi 288&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (338x190 millimeters)&lt;br /&gt;
   resolution:    289x289 dots per inch&lt;br /&gt;
Let&#039;s document those fictive dimensions for next boots by creating /etc/X11/xorg.conf.d/90-monitor.conf with&lt;br /&gt;
 Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
     Identifier             &amp;quot;&amp;lt;default monitor&amp;gt;&amp;quot;&lt;br /&gt;
     DisplaySize            338 190    # In millimeters&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT5 and GTK+ 3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;To enable better scaling of QT5 and GTK+ 3, add to .bashrc (not to .xsessionrc otherwise Cinnamon taskbar is messed up!):&lt;br /&gt;
 QT_DEVICE_PIXEL_RATIO=3&lt;br /&gt;
 GDK_SCALE=3&lt;br /&gt;
 GDK_DPI_SCALE=0.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. Skype&lt;br /&gt;
 sudo apt-get install qt4-qtconfig&lt;br /&gt;
 qtconfig-qt4&lt;br /&gt;
=&amp;gt; one can change font size&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gimp 2.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. copy /usr/share/gimp/2.0/themes/Default as ~/.gimp-2.8/themes/HiDPI and change a few options:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
--- gtkrc&lt;br /&gt;
+++ gtkrc&lt;br /&gt;
-  GimpToolPalette::tool-icon-size   = button&lt;br /&gt;
+  GimpToolPalette::tool-icon-size   = dialog&lt;br /&gt;
-  GimpEditor::button-icon-size      = menu&lt;br /&gt;
+  GimpEditor::button-icon-size      = button&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wine&#039;&#039;&#039;&lt;br /&gt;
 winecfg&lt;br /&gt;
Change &amp;quot;dpi&amp;quot; in &amp;quot;Graphics&amp;quot; tab&lt;br /&gt;
&#039;&#039;&#039;Virtualbox&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;View/Scale Factor is helpful...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chromium&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Chrome works fine but &#039;&#039;Chromium&#039;&#039; broke at some point, so I&#039;ve to launch it with:&lt;br /&gt;
&lt;br /&gt;
 GDK_SCALE=2 exec chromium&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Small console font&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;I don&#039;t care but if that&#039;s an issue for you, from [https://github.com/mpalourdio/xps13/blob/master/HiDPI/tty.md here]:&lt;br /&gt;
 sudo dpkg-reconfigure console-setup&lt;br /&gt;
* Choose UTF-8&lt;br /&gt;
* Choose the default Combined - Latin, ... option (&amp;quot;Latin&amp;quot; includes the English alphabet)&lt;br /&gt;
* Select the terminus font&lt;br /&gt;
* Select 16x32&lt;br /&gt;
* OK&lt;br /&gt;
To apply immediately, open a TTY and run setupcon, else just reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Multiple displays&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Combining HiDPI screen with external non-HiDPI? See https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays&lt;br /&gt;
&lt;br /&gt;
====Sensors====&lt;br /&gt;
 apt-get install lm-sensors&lt;br /&gt;
 sensors-detect&lt;br /&gt;
Sensors-detect found coretemp which is now loaded via /etc/modules:&lt;br /&gt;
 coretemp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====External microphone====&lt;br /&gt;
The sole jack is a TRRS, combining output and mic.&lt;br /&gt;
&amp;lt;br&amp;gt;Soundcard is a Realtek ALC3266&lt;br /&gt;
  grep -r Realtek /proc/asound/card*&lt;br /&gt;
  /proc/asound/card0/codec#0:Codec: Realtek ALC3266&lt;br /&gt;
&amp;lt;br&amp;gt;With Debian+Cinnamon, the system detects the mic, we can see it in the sound properties and select it, but still the internal mic is used.&lt;br /&gt;
&amp;lt;br&amp;gt;When using pavucontrol, selecting the &amp;quot;headset microphone&amp;quot; works fine (it still needs some level boosting).&lt;br /&gt;
&lt;br /&gt;
===Solved issues===&lt;br /&gt;
====i915 and blank screen====&lt;br /&gt;
There were numerous issues with the video card. Now with latest kernels (&amp;gt;=4.8) most issues are gone, still some occasional blank screen or freeze when plugging an external HDMI.&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
WM615 mouse used to act erratically, the cursor stopping now and then. Now with latest kernels and an Intel Wi-Fi+BT card it&#039;s fine.&lt;br /&gt;
====Wi-Fi====&lt;br /&gt;
Wi-Fi tends to disassociate under heavy load, switching to other SSIDs or frequencies (5Ghz&amp;lt;&amp;gt;2.4GHz) and coming back seems to help.&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see #Hardware_changes&lt;br /&gt;
===Issues===&lt;br /&gt;
====DA200====&lt;br /&gt;
[http://accessories.euro.dell.com/sna/products/Station_daccueil/productdetail.aspx?c=fr&amp;amp;l=fr&amp;amp;s=dhs&amp;amp;cs=frdhs1&amp;amp;sku=470-ABRY DA200] used to be recognized only if it was plugged at boot.&lt;br /&gt;
&amp;lt;br&amp;gt;With kernel 4.6 the device is properly detected dynamically, still having the issue of black output on HDMI/DP1, see below.&lt;br /&gt;
&amp;lt;br&amp;gt;The adapter is actually using DisplayPort. &lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;HDMI output doesn&#039;t work, it&#039;s recognized by xrandr as &#039;DP1&#039; as for the VGA&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;VGA output works.&lt;br /&gt;
&lt;br /&gt;
When plugged the following hardware gets detected:&lt;br /&gt;
&lt;br /&gt;
lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp..     &amp;lt;= Ethernet&lt;br /&gt;
Bus 004 Device 002: ID 05e3:0617 Genesys Logic, Inc..&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 003 Device 003: ID 0835:2a01 Action Star Enterprise Co., Ltd. &amp;lt;= Billboard&lt;br /&gt;
Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;The USB Billboard Device Class definition describes the methods used to communicate the Alternate Modes supported by a device container to a host system. More details on Billboard Devices are available in the USB Billboard Device Class specification at the following link: http://www.usb.org/developers/docs/devclass_docs/.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
lspci:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
06:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:01.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:02.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
0a:00.0 USB controller: Intel Corporation Device 15b5 (prog-if 30 [XHCI])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lsmod:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
r8152                  49152  0&lt;br /&gt;
cdc_ether              16384  0&lt;br /&gt;
usbnet                 40960  1 cdc_ether&lt;br /&gt;
mii                    16384  2 r8152,usbnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====rfkill button====&lt;br /&gt;
Rfkill button of the keyboard (Fn+PrtScr) doesn&#039;t seem to work, no big deal.&lt;br /&gt;
&lt;br /&gt;
==Kernels==&lt;br /&gt;
initramfs complains about lvmetad and I&#039;m not sure it&#039;s that useful on SSD, so just disabling it:&lt;br /&gt;
&amp;lt;br&amp;gt;Edit /etc/lvm/lvm.conf&lt;br /&gt;
 use_lvmetad=0&lt;br /&gt;
Then stop it&lt;br /&gt;
 systemctl stop lvm2-lvmetad&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;, to compile &amp;gt;=4.4, one needs at least initramfs-tools v0.122 to get the nvme.ko properly loaded and therefore the SSD properly seen.&lt;br /&gt;
&lt;br /&gt;
To compile a vanilla kernel, cf http://www.cyberciti.biz/faq/debian-ubuntu-building-installing-a-custom-linux-kernel/&lt;br /&gt;
 sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc&lt;br /&gt;
 sudo apt-get install kernel-package&lt;br /&gt;
 wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz&lt;br /&gt;
 tar xf linux-4.4.tar.xz&lt;br /&gt;
 cd linux-4.4&lt;br /&gt;
 cp /boot/config-$(uname -r) .config&lt;br /&gt;
 make menuconfig&lt;br /&gt;
 make-kpkg clean&lt;br /&gt;
 make-kpkg --rootcmd fakeroot --initrd --append_to_version=9-doegox kernel_image kernel_headers -j 7&lt;br /&gt;
&lt;br /&gt;
===4.4.0===&lt;br /&gt;
Testing linux-image-4.4.0-1-amd64 from Debian Experimental:&lt;br /&gt;
* it just doesn&#039;t boot, stalls immediately after loading initrd&lt;br /&gt;
&lt;br /&gt;
Testing from vanilla:&lt;br /&gt;
* vanilla 4.4 with config from Debian 4.3.0-1-amd64 and general rule to enable as module whatever was new&lt;br /&gt;
 cp /boot/config-$(uname -r) .config&lt;br /&gt;
 make oldconfig&lt;br /&gt;
* Seems better than 4.3, no more issues with i915&lt;br /&gt;
&lt;br /&gt;
Testing from vanilla with config closer to linux-image-4.4.0-1-amd64 (trying to understand why the Debian one doesn&#039;t boot):&lt;br /&gt;
* vanilla 4.4 with config from Debian 4.4.0-1-amd64 and adjusting the minimum because apparently 4.4.0-1-amd64 is a 4.4.2&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
--- config-4.4.0-1-amd64	2016-02-21 16:36:18.000000000 +0100&lt;br /&gt;
+++ config-4.4.0-9-doegox	2016-02-22 23:07:13.000000000 +0100&lt;br /&gt;
-# Linux/x86 4.4.2 Kernel Configuration&lt;br /&gt;
+# Linux/x86_64 4.4.0-9-doegox Kernel Configuration&lt;br /&gt;
-CONFIG_MEMCG_DISABLED=y&lt;br /&gt;
-CONFIG_X86_X32_DISABLED=y&lt;br /&gt;
+CONFIG_FB_NVIDIA=m&lt;br /&gt;
+CONFIG_FB_NVIDIA_BACKLIGHT=y&lt;br /&gt;
+CONFIG_FB_RIVA=m&lt;br /&gt;
+CONFIG_FB_RIVA_BACKLIGHT=y&lt;br /&gt;
-CONFIG_GRKERNSEC=y&lt;br /&gt;
-CONFIG_GRKERNSEC_PERF_HARDEN=y&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
I inspected both initrd and besides rivafb.ko and nvidiafb.ko (which are probably useless) there is no diff.&lt;br /&gt;
&amp;lt;br&amp;gt;Still, this kernel boots, but the same problem as with 4.5.0 appears:&lt;br /&gt;
* can&#039;t config touchpad with synclient&lt;br /&gt;
See 4.5.0 for the fix.&lt;br /&gt;
===4.5.0===&lt;br /&gt;
Testing linux-image-4.5.0-1-amd64 (4.5.1-1) from Debian Stretch:&lt;br /&gt;
* no more issues with i915, no more black screen when screen awakes :)&lt;br /&gt;
* &#039;&#039;&#039;main screen flickering when an external monitor is attached. Sometimes ends-up in a complete freeze :(&#039;&#039;&#039;&lt;br /&gt;
* can&#039;t config touchpad with synclient&lt;br /&gt;
** solved:&lt;br /&gt;
&lt;br /&gt;
Touchpad problem:&lt;br /&gt;
&amp;lt;br&amp;gt;This is because touchpad got detected twice, cf /var/log/Xorg.0.log&lt;br /&gt;
 [    13.212] (II) config/udev: Adding input device DLL06E4:01 06CB:7A13 Touchpad (/dev/input/event12)&lt;br /&gt;
 [    13.353] (II) config/udev: Adding input device DLL06E4:01 06CB:7A13 Touchpad (/dev/input/mouse2)&lt;br /&gt;
 [    13.357] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/event1)&lt;br /&gt;
 [    13.445] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/mouse0)&lt;br /&gt;
See also in dmesg the spurious driver:&lt;br /&gt;
 [    0.341039] pnp 00:05: Plug and Play ACPI device, IDs DLL06e4 PNP0f13 (active)&lt;br /&gt;
 [    8.231092] input: DLL06E4:01 06CB:7A13 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-7/i2c-DLL06E4:01/0018:06CB:7A13.0003/input/input14&lt;br /&gt;
 [    8.231227] hid-multitouch 0018:06CB:7A13.0003: input,hidraw2: I2C HID v1.00 Mouse [DLL06E4:01 06CB:7A13] on i2c-DLL06E4:01&lt;br /&gt;
DLL06E4:01 06CB:7A13 Touchpad must be prevented&lt;br /&gt;
&amp;lt;br&amp;gt;=&amp;gt; Add /etc/modprobe.d/synaptics.conf:&lt;br /&gt;
 blacklist i2c-designware-platform&lt;br /&gt;
Blacklisting i2c-hid a explained elsewhere didn&#039;t help me.&lt;br /&gt;
&lt;br /&gt;
If you tried earlier 4.5.0 from Experimental and had issues compiling DKMS modules, be sure to install latest linux-kbuild-4.5&lt;br /&gt;
&lt;br /&gt;
===4.6===&lt;br /&gt;
Seems the most stable up to now.&lt;br /&gt;
&lt;br /&gt;
* DA200 is now detected once plugged it.&lt;br /&gt;
* still occasional freeze with external screen being attached or mode being changed&lt;br /&gt;
&lt;br /&gt;
==Hardware changes==&lt;br /&gt;
I&#039;ll try a few changes... to be continued&lt;br /&gt;
&lt;br /&gt;
Replacing Broadcom Wi-Fi+BT by an [https://wikidevi.com/wiki/Intel Intel one]:&lt;br /&gt;
* Intel 7265 Dual Band Wireless-AC 7265NGW Card 802.11ac 867Mbps WIFI BT4.0 UK&lt;br /&gt;
** http://www.befr.ebay.be/itm/262049756966?_trksid=p2060353.m2749.l2649&amp;amp;ssPageName=STRK%3AMEBIDX%3AIT&lt;br /&gt;
** https://downloadcenter.intel.com/download/17045&lt;br /&gt;
** This requires installing package firmware-iwlwifi&lt;br /&gt;
** Seems to have less Wi-Fi issues, but still the same BT problems pairing the Dell mouse&lt;br /&gt;
&lt;br /&gt;
Alternatives to DA200:&lt;br /&gt;
* HDMI Male To VGA Female Converter&lt;br /&gt;
** http://www.aliexpress.com/item/1pc-HDMI-Male-To-VGA-Female-Converter-Box-Adapter-With-Audio-Cable-For-PC-HDTVHot-New/32448171552.html&lt;br /&gt;
* USB 3.0 10/100/1000Mbps Gigabit Ethernet RJ45&lt;br /&gt;
** http://www.aliexpress.com/item/Hot-selling-New-USB-3-0-10-100-1000Mbps-Gigabit-Ethernet-RJ45-External-Network-Card-LAN/32546613204.html&lt;br /&gt;
* 4-Port Ultra-Slim USB 3.0 Hub&lt;br /&gt;
** https://www.anker.com/products/A7516011&lt;br /&gt;
** http://www.amazon.de/Anker-Datenhub-Ultrabooks-weiteren-kompatiblen/dp/B00Y211AFM/&lt;br /&gt;
&lt;br /&gt;
==Misc hardware==&lt;br /&gt;
Smartcard reader&lt;br /&gt;
* ACS ACR38U PocketMate Smart Card Reader&lt;br /&gt;
** http://www.acs.com.hk/en/products/160/acr38u-pocketmate-smart-card-reader/&lt;br /&gt;
** http://www.befr.ebay.be/itm/EU-SHIPPING-Smart-Card-USB-ACS-ACR38U-National-ID-Tachograph-Reader-Writer-/121899037557&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=PoC_or_GTFO&amp;diff=10538</id>
		<title>PoC or GTFO</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=PoC_or_GTFO&amp;diff=10538"/>
		<updated>2021-12-23T10:08:46Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Intro==&lt;br /&gt;
This page assembles various matters related to the [https://www.alchemistowl.org/pocorgtfo/ International Journal of Proof-of-Concept or Get The Fuck Out] (PoC||GTFO or PoC or GTFO)&lt;br /&gt;
&amp;lt;br&amp;gt;I limit voluntarily myself to topics I&#039;ve been directly involved with.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Mirror==&lt;br /&gt;
My PoC mirror:&lt;br /&gt;
* http://[2a02:af00:8:0:506f:43ba:4754:464f]&lt;br /&gt;
Or, if you&#039;re brave:&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
www-browser http://[2a02:af00:8:0:$(echo -n PoC║GTFO | recode utf8..CP437|xxd -p|sed &#039;s/\(....\)/\1:/g;s/:$/]/&#039;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
You can find also lighter booklet versions ready for printing (and only printing!) at http://[2a02:af00:8:0:506f:43ba:4754:464f]/booklets&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Articles==&lt;br /&gt;
* [https://www.alchemistowl.org/pocorgtfo/pocorgtfo05.pdf PoC||GTFO 0x05] 3: ECB as an Electronic Coloring Book&lt;br /&gt;
** See also https://doegox.github.io/ElectronicColoringBook/&lt;br /&gt;
** See also [http://yobi.be/files/ecb.pdf my lightning talk @ hack.lu 2014]&lt;br /&gt;
* [https://www.alchemistowl.org/pocorgtfo/pocorgtfo06.pdf PoC||GTFO 0x06] 7: More Cryptographic Coloring Books (original title was &amp;quot;Coloring Book Continued&amp;quot;)&lt;br /&gt;
** Errata in 7.6 due to Frenglish to English translation ;-) :  OFB and CTR are fine, only CBC &amp;amp; CFB can be compared to ECB&lt;br /&gt;
* [https://www.alchemistowl.org/pocorgtfo/pocorgtfo08.pdf PoC||GTFO 0x08] 12: Weird cryptography; or, How to resist brute-force attacks.&lt;br /&gt;
** See also [[Sci-Fi Crypto]]&lt;br /&gt;
** pocorgtfo08.pdf itself is also a ZIP and a shell script to perform grammatically correct encryption&lt;br /&gt;
* [https://www.alchemistowl.org/pocorgtfo/pocorgtfo09.pdf PoC||GTFO 0x09] 12: What If You Could Listen to This PDF?&lt;br /&gt;
** pocorgtfo09.pdf itself is also a ZIP and a WavPack audio file&lt;br /&gt;
* [https://www.alchemistowl.org/pocorgtfo/pocorgtfo09.pdf PoC||GTFO 0x12] 11: Are Androids Polyglots?&lt;br /&gt;
** pocorgtfo12.pdf itself is also a ZIP and an Android APK able to share itself via NFC&lt;br /&gt;
* [https://www.alchemistowl.org/pocorgtfo/pocorgtfo13.pdf PoC||GTFO 0x13] 10: Post Scriptum: A Schizophrenic Ghost, with E. Sultanik&lt;br /&gt;
** pocorgtfo12.pdf itself is also a ZIP and a PostScript file&lt;br /&gt;
&lt;br /&gt;
==Misc from PoC||GTFO==&lt;br /&gt;
===[https://www.alchemistowl.org/pocorgtfo/pocorgtfo06.pdf PoC||GTFO 0x06]===&lt;br /&gt;
Happy thanksgiving ;)&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed &#039;4025,4048!d&#039; pocorgtfo06.pdf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Spoilers for our Pictures of Cats&lt;br /&gt;
&lt;br /&gt;
- 1.png is a PNG picture. It&#039;s a RGB picture, with a palette.&lt;br /&gt;
  The RGB values have been altered to display another picture via the palette.&lt;br /&gt;
  So just change offset 0x19 from 0x2 (RGB) to 0x3 (paletted)&lt;br /&gt;
  to enjoy the hidden picture.&lt;br /&gt;
  Extra efforts were taken to make the picture not trivial to extract,&lt;br /&gt;
  and remove as many artifacts as possible&lt;br /&gt;
&lt;br /&gt;
  by Philippe Teuwen &amp;amp; Ange Albertini, original idea by Dominique Bongard&lt;br /&gt;
&lt;br /&gt;
- 2.bmp is a BMP/PCM polyglot, which means it&#039;s a Bitmap picture,&lt;br /&gt;
  and a RAW audio polyglot that is directly playable&lt;br /&gt;
  (it&#039;s not really hidden, it&#039;s just happy co-existence).&lt;br /&gt;
  The audio, when viewed in spectrogram view, will show a familiar face.&lt;br /&gt;
&lt;br /&gt;
  To enjoy it fully, just run&lt;br /&gt;
  sox -t raw -r 44100 -c 1 -e signed -b 32 2.bmp -n spectrogram&lt;br /&gt;
  (with optional -m -x 555 -y 512 -z 24 -Z -36, for better rendering)&lt;br /&gt;
&lt;br /&gt;
  For more details, check http://wiki.yobi.be/wiki/BMP_PCM_polyglot,&lt;br /&gt;
  including a nifty RGB spectrogram via baudline.&lt;br /&gt;
&lt;br /&gt;
  by Philippe Teuwen &amp;amp; Ange Albertini&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For PNG in PNG, see [[PNG Merge]]&lt;br /&gt;
&amp;lt;br&amp;gt;For BMP/PCM, see [[BMP PCM polyglot]]&lt;br /&gt;
&lt;br /&gt;
PoC||GTFO 0x06 contains also a scan of a [https://en.wikipedia.org/wiki/Cauzin_Softstrip softstrip]&lt;br /&gt;
* I made a clean version [https://imgur.com/gP44Ftx here]&lt;br /&gt;
* which can be decoded with [http://pastebin.com/hU8mSj1D this code]&lt;br /&gt;
* @johnmaushammer posted the result together with [http://pastebin.com/7GvSM8Q9 his own code]&lt;br /&gt;
&lt;br /&gt;
===[https://www.alchemistowl.org/pocorgtfo/pocorgtfo07.pdf PoC||GTFO 0x07]===&lt;br /&gt;
* [https://twitter.com/doegox/status/578948443814629376 Anybody noticed what the boy is reading on PoC||GTFO 0x07 cover?]&lt;br /&gt;
* [https://twitter.com/doegox/status/590889853811875840 Did you notice BlueRay microdots in  PoC||GTFO 7:3 ? First one depicts @scanlime&#039;s artwork]&lt;br /&gt;
* Two new polyglots sound + spectrograms&lt;br /&gt;
&lt;br /&gt;
===[https://www.alchemistowl.org/pocorgtfo/pocorgtfo08.pdf PoC||GTFO 0x08]===&lt;br /&gt;
* Animated covers&lt;br /&gt;
** @pdfkungfoo made lovely gifs for those of you not having Adobe to enjoy last PoC||GTFO 0x08&amp;lt;br&amp;gt;&lt;br /&gt;
(click them to see the animations)&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Family-pocorgtfo08.gif|400px|link=http://wiki.yobi.be/images/2/26/Family-pocorgtfo08.gif]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Birds-pocorgtfo08.gif|400px|link=http://wiki.yobi.be/images/7/7b/Birds-pocorgtfo08.gif]]&lt;br /&gt;
&amp;lt;br&amp;gt;Also as video: https://vimeo.com/131434211 and https://vimeo.com/131445216&lt;br /&gt;
* PoC||GTFO &#039;08 painting inspired by [https://en.wikipedia.org/wiki/The_Empire_of_Lights Magritte&#039;s Empire of Lights]:&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Pocorgtfo08EmpireLumieres.png|400px]]&lt;br /&gt;
* Polyglot is a shell script to encode English into grammatically correct English &lt;br /&gt;
** [https://twitter.com/doegox/status/615893486542286852 Did you know? PoC||GTFO 8.12 drawing is a Hugues printing telegraph]&lt;br /&gt;
* [https://twitter.com/doegox/status/615603544184516608 PoC||GTFO 0x08 Ossmann artwork is based on Osman videogame]&lt;br /&gt;
&lt;br /&gt;
==Misc in the same PoC spirit==&lt;br /&gt;
Ange had fun with Cameron recent declarations: https://imgur.com/xNUlzaE&lt;br /&gt;
&amp;lt;br&amp;gt;That PNG contains a dummy chunk (&amp;quot;dumb&amp;quot; chunk actually) with 32b PCM so you can actually play the PNG and hear the content of dumb chunk (before hearing the white noise of the picture data itself)&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
wget -O - https://imgur.com/download/xNUlzaE | aplay -r 44100 -c1 -f S32_BE&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Note that we&#039;re supposed to apply a ROT13 but I don&#039;t hear a difference (rot13 on binary only affects slightly a small part of the range)&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
wget -O - https://imgur.com/download/xNUlzaE | tr &#039;[A-Za-z]&#039; &#039;[N-ZA-Mn-za-m]&#039; |aplay -r 44100 -c1 -f S32_BE&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The voice says &amp;quot;I&#039;ve no idea what I&#039;m saying&amp;quot;&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=PoC_or_GTFO&amp;diff=10537</id>
		<title>PoC or GTFO</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=PoC_or_GTFO&amp;diff=10537"/>
		<updated>2021-12-23T10:02:19Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Intro==&lt;br /&gt;
This page assembles various matters related to the [https://www.alchemistowl.org/pocorgtfo/ International Journal of Proof-of-Concept or Get The Fuck Out] (PoC||GTFO or PoC or GTFO)&lt;br /&gt;
&amp;lt;br&amp;gt;I limit voluntarily myself to topics I&#039;ve been directly involved with.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Mirror==&lt;br /&gt;
My PoC mirror:&lt;br /&gt;
* http://[2a02:af00:8:0:506f:43ba:4754:464f]&lt;br /&gt;
Or, if you&#039;re brave:&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
www-browser http://[2a02:af00:8:0:$(echo -n PoC║GTFO | recode utf8..CP437|xxd -p|sed &#039;s/\(....\)/\1:/g;s/:$/]/&#039;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
You can find also lighter booklet versions ready for printing (and only printing!) at http://[2a02:af00:8:0:506f:43ba:4754:464f]/booklets&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Articles==&lt;br /&gt;
* [https://www.alchemistowl.org/pocorgtfo/pocorgtfo05.pdf PoC||GTFO 0x05] 3: ECB as an Electronic Coloring Book&lt;br /&gt;
** See also https://doegox.github.io/ElectronicColoringBook/&lt;br /&gt;
** See also [http://yobi.be/files/ecb.pdf my lightning talk @ hack.lu 2014]&lt;br /&gt;
* [https://www.alchemistowl.org/pocorgtfo/pocorgtfo06.pdf PoC||GTFO 0x06] 7: More Cryptographic Coloring Books (original title was &amp;quot;Coloring Book Continued&amp;quot;)&lt;br /&gt;
** Errata in 7.6 due to Frenglish to English translation ;-) :  OFB and CTR are fine, only CBC &amp;amp; CFB can be compared to ECB&lt;br /&gt;
* [https://www.alchemistowl.org/pocorgtfo/pocorgtfo08.pdf PoC||GTFO 0x08] 12: Weird cryptography; or, How to resist brute-force attacks.&lt;br /&gt;
** See also [[Sci-Fi Crypto]]&lt;br /&gt;
** pocorgtfo08.pdf itseld is a shell script to perform grammatically correct encryption&lt;br /&gt;
&lt;br /&gt;
==Misc from PoC||GTFO==&lt;br /&gt;
===[https://www.alchemistowl.org/pocorgtfo/pocorgtfo06.pdf PoC||GTFO 0x06]===&lt;br /&gt;
Happy thanksgiving ;)&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed &#039;4025,4048!d&#039; pocorgtfo06.pdf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Spoilers for our Pictures of Cats&lt;br /&gt;
&lt;br /&gt;
- 1.png is a PNG picture. It&#039;s a RGB picture, with a palette.&lt;br /&gt;
  The RGB values have been altered to display another picture via the palette.&lt;br /&gt;
  So just change offset 0x19 from 0x2 (RGB) to 0x3 (paletted)&lt;br /&gt;
  to enjoy the hidden picture.&lt;br /&gt;
  Extra efforts were taken to make the picture not trivial to extract,&lt;br /&gt;
  and remove as many artifacts as possible&lt;br /&gt;
&lt;br /&gt;
  by Philippe Teuwen &amp;amp; Ange Albertini, original idea by Dominique Bongard&lt;br /&gt;
&lt;br /&gt;
- 2.bmp is a BMP/PCM polyglot, which means it&#039;s a Bitmap picture,&lt;br /&gt;
  and a RAW audio polyglot that is directly playable&lt;br /&gt;
  (it&#039;s not really hidden, it&#039;s just happy co-existence).&lt;br /&gt;
  The audio, when viewed in spectrogram view, will show a familiar face.&lt;br /&gt;
&lt;br /&gt;
  To enjoy it fully, just run&lt;br /&gt;
  sox -t raw -r 44100 -c 1 -e signed -b 32 2.bmp -n spectrogram&lt;br /&gt;
  (with optional -m -x 555 -y 512 -z 24 -Z -36, for better rendering)&lt;br /&gt;
&lt;br /&gt;
  For more details, check http://wiki.yobi.be/wiki/BMP_PCM_polyglot,&lt;br /&gt;
  including a nifty RGB spectrogram via baudline.&lt;br /&gt;
&lt;br /&gt;
  by Philippe Teuwen &amp;amp; Ange Albertini&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For PNG in PNG, see [[PNG Merge]]&lt;br /&gt;
&amp;lt;br&amp;gt;For BMP/PCM, see [[BMP PCM polyglot]]&lt;br /&gt;
&lt;br /&gt;
PoC||GTFO 0x06 contains also a scan of a [https://en.wikipedia.org/wiki/Cauzin_Softstrip softstrip]&lt;br /&gt;
* I made a clean version [https://imgur.com/gP44Ftx here]&lt;br /&gt;
* which can be decoded with [http://pastebin.com/hU8mSj1D this code]&lt;br /&gt;
* @johnmaushammer posted the result together with [http://pastebin.com/7GvSM8Q9 his own code]&lt;br /&gt;
&lt;br /&gt;
===[https://www.alchemistowl.org/pocorgtfo/pocorgtfo07.pdf PoC||GTFO 0x07]===&lt;br /&gt;
* [https://twitter.com/doegox/status/578948443814629376 Anybody noticed what the boy is reading on PoC||GTFO 0x07 cover?]&lt;br /&gt;
* [https://twitter.com/doegox/status/590889853811875840 Did you notice BlueRay microdots in  PoC||GTFO 7:3 ? First one depicts @scanlime&#039;s artwork]&lt;br /&gt;
* Two new polyglots sound + spectrograms&lt;br /&gt;
&lt;br /&gt;
===[https://www.alchemistowl.org/pocorgtfo/pocorgtfo08.pdf PoC||GTFO 0x08]===&lt;br /&gt;
* Animated covers&lt;br /&gt;
** @pdfkungfoo made lovely gifs for those of you not having Adobe to enjoy last PoC||GTFO 0x08&amp;lt;br&amp;gt;&lt;br /&gt;
(click them to see the animations)&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Family-pocorgtfo08.gif|400px|link=http://wiki.yobi.be/images/2/26/Family-pocorgtfo08.gif]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Birds-pocorgtfo08.gif|400px|link=http://wiki.yobi.be/images/7/7b/Birds-pocorgtfo08.gif]]&lt;br /&gt;
&amp;lt;br&amp;gt;Also as video: https://vimeo.com/131434211 and https://vimeo.com/131445216&lt;br /&gt;
* PoC||GTFO &#039;08 painting inspired by [https://en.wikipedia.org/wiki/The_Empire_of_Lights Magritte&#039;s Empire of Lights]:&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Pocorgtfo08EmpireLumieres.png|400px]]&lt;br /&gt;
* Polyglot is a shell script to encode English into grammatically correct English &lt;br /&gt;
** [https://twitter.com/doegox/status/615893486542286852 Did you know? PoC||GTFO 8.12 drawing is a Hugues printing telegraph]&lt;br /&gt;
* [https://twitter.com/doegox/status/615603544184516608 PoC||GTFO 0x08 Ossmann artwork is based on Osman videogame]&lt;br /&gt;
&lt;br /&gt;
==Misc in the same PoC spirit==&lt;br /&gt;
Ange had fun with Cameron recent declarations: https://imgur.com/xNUlzaE&lt;br /&gt;
&amp;lt;br&amp;gt;That PNG contains a dummy chunk (&amp;quot;dumb&amp;quot; chunk actually) with 32b PCM so you can actually play the PNG and hear the content of dumb chunk (before hearing the white noise of the picture data itself)&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
wget -O - https://imgur.com/download/xNUlzaE | aplay -r 44100 -c1 -f S32_BE&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Note that we&#039;re supposed to apply a ROT13 but I don&#039;t hear a difference (rot13 on binary only affects slightly a small part of the range)&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
wget -O - https://imgur.com/download/xNUlzaE | tr &#039;[A-Za-z]&#039; &#039;[N-ZA-Mn-za-m]&#039; |aplay -r 44100 -c1 -f S32_BE&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The voice says &amp;quot;I&#039;ve no idea what I&#039;m saying&amp;quot;&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=User:PhilippeTeuwen&amp;diff=10536</id>
		<title>User:PhilippeTeuwen</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=User:PhilippeTeuwen&amp;diff=10536"/>
		<updated>2021-12-23T09:59:45Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== ID ==&lt;br /&gt;
[[Image:Phil-contact.png|my contacts are in an image to avoid spam, sorry for the inconvenience]]&lt;br /&gt;
* [https://keybase.io/doegox doegox on keybase.io]&lt;br /&gt;
** [https://doegox.keybase.pub/ other assertions]&lt;br /&gt;
&lt;br /&gt;
== Social ==&lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/doegox @doegox on Twitter]&lt;br /&gt;
* [http://www.linkedin.com/in/philippeteuwen LinkedIn]&lt;br /&gt;
&lt;br /&gt;
== Publications ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/doegox/bibliography Bibliography]&lt;br /&gt;
* [https://scholar.google.be/citations?user=Ra_sBhgAAAAJ&amp;amp;hl=en Google Scholar]&lt;br /&gt;
* [https://www.researchgate.net/profile/Philippe_Teuwen ResearchGate]&lt;br /&gt;
* [https://speakerdeck.com/doegox SpeakerDeck]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [http://wwwp.oakland.edu/enp/ Erdős Number]: 3 thanks to a paper without a single math formula ;)&lt;br /&gt;
&amp;lt;br&amp;gt;(e.g. Philippe Teuwen [http://dx.doi.org/10.1007/978-3-662-53140-2_11 ↔] Joppe W. Bos [http://dx.doi.org/10.1504/IJACT.2012.045590 ↔] Peter L. Montgomery [http://dx.doi.org/10.1016/0097-3165(73)90011-3 ↔] Paul Erdős) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
* [https://github.com/doegox GitHub]&lt;br /&gt;
* [https://www.openhub.net/accounts/doegox OpenHub]&lt;br /&gt;
&lt;br /&gt;
== Photography ==&lt;br /&gt;
&lt;br /&gt;
* [http://flickr.com/photos/doegox/ Flickr]&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* [https://pinboard.in/u:doegox/ Pinboard]&lt;br /&gt;
* [http://www.librarything.com/catalog/doegox LibraryThing]&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=File:Phil-contact.png&amp;diff=10535</id>
		<title>File:Phil-contact.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=File:Phil-contact.png&amp;diff=10535"/>
		<updated>2021-12-22T15:40:59Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: PhilippeTeuwen uploaded a new version of File:Phil-contact.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10534</id>
		<title>Laptop Dell XPS 15</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10534"/>
		<updated>2021-12-21T23:16:29Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Notes about installing a Debian Stretch on a Dell XPS 15&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
Dell XPS 15 model 9550 (variant with touchscreen &amp;amp; PCIe m.2 ssd)&lt;br /&gt;
&lt;br /&gt;
From the [http://www.dell.com/support/home/fr/fr/frdhs1/product-support/servicetag/DHVNH72/configuration configuration] list:&lt;br /&gt;
* 6th Generation Intel(R) Core (TM) i7-6700HQ Quad Core (6M Cache, up to 3.5 GHz)&lt;br /&gt;
* 16Go (2x8Go) DDR4 2133MHz&lt;br /&gt;
* 15.6&amp;quot; 4K Ultra HD (3840 x 2160) InfinityEdge touch, Sliver&lt;br /&gt;
* 1To PCIe Solid State&lt;br /&gt;
* DW1830 3x3 802.11ac 2.4/5GHz + Bluetooth 4.1&lt;br /&gt;
* Dell 84 WHr 6-Cell Lithium-Ion Battery&lt;br /&gt;
* Internal US/International Qwerty Backlit Keyboard&lt;br /&gt;
From the drivers list:&lt;br /&gt;
* Realtek High Definition Audio ALC3266&lt;br /&gt;
* Realtek RTS5242 PCIe Gen2 CardReader&lt;br /&gt;
* Realtek USB GBE Ethernet Controller&lt;br /&gt;
* ST Microlectronics LNG3DMTR Motion Sensor&lt;br /&gt;
* Intel HD Graphics 530/P530&lt;br /&gt;
* nVIDIA Geforce GTX 960M Graphics&lt;br /&gt;
From dmesg (incomplete):&lt;br /&gt;
* BCM20703A1 Bluetooth 4.1 (firmware brcm/BCM-0a5c-6410.hcd)&lt;br /&gt;
From lspci -nn:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00:00.0 Host bridge [0600]: Intel Corporation Sky Lake Host Bridge/DRAM Registers [8086:1910] (rev 07)&lt;br /&gt;
00:01.0 PCI bridge [0604]: Intel Corporation Sky Lake PCIe Controller (x16) [8086:1901] (rev 07)&lt;br /&gt;
00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:191b] (rev 06)&lt;br /&gt;
00:04.0 Signal processing controller [1180]: Intel Corporation Device [8086:1903] (rev 07)&lt;br /&gt;
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f] (rev 31)&lt;br /&gt;
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131] (rev 31)&lt;br /&gt;
00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #0 [8086:a160] (rev 31)&lt;br /&gt;
00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #1 [8086:a161] (rev 31)&lt;br /&gt;
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-H CSME HECI #1 [8086:a13a] (rev 31)&lt;br /&gt;
00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-H SATA Controller [AHCI mode] [8086:a103] (rev 31)&lt;br /&gt;
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #1 [8086:a110] (rev f1)&lt;br /&gt;
00:1c.1 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #2 [8086:a111] (rev f1)&lt;br /&gt;
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #9 [8086:a118] (rev f1)&lt;br /&gt;
00:1d.4 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #13 [8086:a11c] (rev f1)&lt;br /&gt;
00:1d.6 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #15 [8086:a11e] (rev f1)&lt;br /&gt;
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC Controller [8086:a14e] (rev 31)&lt;br /&gt;
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H PMC [8086:a121] (rev 31)&lt;br /&gt;
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD Audio [8086:a170] (rev 31)&lt;br /&gt;
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus [8086:a123] (rev 31)&lt;br /&gt;
01:00.0 3D controller [0302]: NVIDIA Corporation GM107M [GeForce GTX 960M] [10de:139b] (rev ff)&lt;br /&gt;
02:00.0 Network controller [0280]: Broadcom Corporation BCM43602 802.11ac Wireless LAN SoC [14e4:43ba] (rev 01)&lt;br /&gt;
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device [10ec:525a] (rev 01)&lt;br /&gt;
04:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd Device [144d:a802] (rev 01)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 001 Device 003: ID 04f3:21d5 Elan Microelectronics Corp.            &amp;lt;= touchscreen&lt;br /&gt;
Bus 001 Device 002: ID 0a5c:6410 Broadcom Corp.                         &amp;lt;= bluetooth&lt;br /&gt;
Bus 001 Device 004: ID 0c45:6713 Microdia                               &amp;lt;= webcam&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From lscpu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Architecture:          x86_64&lt;br /&gt;
CPU op-mode(s):        32-bit, 64-bit&lt;br /&gt;
Byte Order:            Little Endian&lt;br /&gt;
CPU(s):                8&lt;br /&gt;
On-line CPU(s) list:   0-7&lt;br /&gt;
Thread(s) per core:    2&lt;br /&gt;
Core(s) per socket:    4&lt;br /&gt;
Socket(s):             1&lt;br /&gt;
NUMA node(s):          1&lt;br /&gt;
Vendor ID:             GenuineIntel&lt;br /&gt;
CPU family:            6&lt;br /&gt;
Model:                 94&lt;br /&gt;
Model name:            Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz&lt;br /&gt;
Stepping:              3&lt;br /&gt;
CPU MHz:               2847.812&lt;br /&gt;
CPU max MHz:           3500.0000&lt;br /&gt;
CPU min MHz:           800.0000&lt;br /&gt;
BogoMIPS:              5183.88&lt;br /&gt;
Virtualization:        VT-x&lt;br /&gt;
L1d cache:             32K&lt;br /&gt;
L1i cache:             32K&lt;br /&gt;
L2 cache:              256K&lt;br /&gt;
L3 cache:              6144K&lt;br /&gt;
NUMA node0 CPU(s):     0-7&lt;br /&gt;
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush &lt;br /&gt;
dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts &lt;br /&gt;
rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 &lt;br /&gt;
ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx &lt;br /&gt;
f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_notify hwp_act_window hwp_epp &lt;br /&gt;
intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid &lt;br /&gt;
rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dell Wireless 1830 = BCM43602 + BCM20703A1 (DW1830 Bluetooth 4.1 LE)&lt;br /&gt;
&lt;br /&gt;
BCM43602	PCI ID: 14e4:43ba&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# smartctl -d scsi -i /dev/nvme0n1&lt;br /&gt;
smartctl 6.4 2015-06-04 r4109 [x86_64-linux-4.3.0-1-amd64] (local build)&lt;br /&gt;
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org&lt;br /&gt;
&lt;br /&gt;
=== START OF INFORMATION SECTION ===&lt;br /&gt;
Vendor:               NVMe&lt;br /&gt;
Product:              PM951 NVMe SAMSU&lt;br /&gt;
Revision:             7D0Q&lt;br /&gt;
Compliance:           SPC-4&lt;br /&gt;
User Capacity:        1,024,209,543,168 bytes [1.02 TB]&lt;br /&gt;
Logical block size:   512 bytes&lt;br /&gt;
Rotation Rate:        Solid State Device&lt;br /&gt;
Logical Unit id:      0x0025384cf1b0fd29&lt;br /&gt;
Serial number:        S2FZNXAGC03824&lt;br /&gt;
Device type:          disk&lt;br /&gt;
Local Time is:        Sun Feb 14 22:02:03 2016 CET&lt;br /&gt;
SMART support is:     Unavailable - device lacks SMART capability.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* http://topics-cdn.dell.com/pdf/xps-15-9550-laptop_Service%20Manual_en-us.pdf&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dell_XPS_15&lt;br /&gt;
* https://bbs.archlinux.org/viewtopic.php?id=204739&lt;br /&gt;
* http://ubuntuforums.org/showthread.php?t=2301071&lt;br /&gt;
* http://forthescience.org/blog/2015/03/20/installing_ubuntu_14_04_on_the_new_dell_xps_13/&lt;br /&gt;
* https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013&lt;br /&gt;
* http://bartongeorge.net/2015/02/23/update-2-dell-xps-13-laptop-developer-edition-sputnik-gen-4/&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
I first tried to keep a dual-boot just in case, but once we disable Raid and put SATA in AHCI mode, Windows can&#039;t boot anymore. (later I read it could be possible to fix it by rebooting several times Windows till safe mode is kicked in, but it was too late for me.)&lt;br /&gt;
&lt;br /&gt;
Just in case again, one can boot Windows and create a USB recovery.&lt;br /&gt;
==Bios==&lt;br /&gt;
* &#039;&#039;&#039;Secure Boot: disable&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SATA: switch from Raid to AHCI&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Advances Boot Options:/ NOT Enable Legacy Option ROMs&#039;&#039;&#039;&lt;br /&gt;
* Boot: not sure it&#039;s needed but I disabled Windows boot manager entry and kept the hdd UEFI entry: UEFI: PM951 NVMe SAMSUNG 1024GB, Partition 1&lt;br /&gt;
** See below (first boot) how to create a new entry&lt;br /&gt;
* POST/Fastboot/Auto&lt;br /&gt;
* auto os recovery threshold off&lt;br /&gt;
* Fn Lock Options&lt;br /&gt;
** NOT Fn Lock&lt;br /&gt;
** Lock Mode Enable/Secondary&lt;br /&gt;
* UEFI Capsule Firmware Updates / Enable&lt;br /&gt;
** This allows using ``fwupdmgr update`` e.g. to update the TPM firmware&lt;br /&gt;
&lt;br /&gt;
To update the BIOS:&lt;br /&gt;
* put it on a USB stick&lt;br /&gt;
* reboot&lt;br /&gt;
* select BIOS flash update on the boot screen (F12).&lt;br /&gt;
No need to put it on a bootable DOS, just give the exe to the BIOS update built-in util.&lt;br /&gt;
&amp;lt;br&amp;gt;You can even drop the update on /boot/efi as it&#039;s also a FAT partition, no need for a USB memory stick.&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
* 1.2.0 aka A6 [https://downloads.dell.com/FOLDER03659467M/1/XPS_9550_1.2.0.exe XPS_9550_1.2.0.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=KTR76 fixes]&lt;br /&gt;
* 1.2.10 aka A10 [https://downloads.dell.com/FOLDER03800340M/1/XPS_9550_1.2.10.exe XPS_9550_1.2.10.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=96T2K fixes]&lt;br /&gt;
* 1.2.14 aka A13 [https://downloads.dell.com/FOLDER03906323M/1/XPS_9550_1.2.14.exe XPS_9550_1.2.14.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=VNMDK fixes]&lt;br /&gt;
* 1.2.16 [https://downloads.dell.com/FOLDER04030973M/1/XPS_9550_1.2.16.exe XPS_9550_1.2.16.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=J8GY6 fixes]&lt;br /&gt;
* 1.2.18 aka A16 [https://downloads.dell.com/FOLDER04078627M/1/XPS_9550_1.2.18.exe XPS_9550_1.2.18.exe] [http://www.dell.com/support/home/us/en/4/Drivers/DriversDetails?driverId=KD0C7 fixes]&lt;br /&gt;
* 1.2.21 [https://downloads.dell.com/FOLDER04190863M/1/XPS_9550_1.2.21.exe XPS_9550_1.2.21.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=6RV34 fixes]&lt;br /&gt;
* 1.2.25 [https://downloads.dell.com/FOLDER04319442M/1/XPS_9550_1.2.25.exe XPS_9550_1.2.25.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=3W30W fixes]&lt;br /&gt;
* 1.2.29 [https://downloads.dell.com/FOLDER04449988M/1/XPS_9550_1.2.29.exe XPS_9550_1.2.29.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=F7M6G fixes]&lt;br /&gt;
* 1.3.0 [https://downloads.dell.com/FOLDER04481870M/1/XPS_9550_1.3.0.exe XPS_9550_1.3.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=NXVMP fixes]&lt;br /&gt;
* 1.4.0 [https://downloads.dell.com/FOLDER04499656M/1/XPS_9550_1.4.0.exe XPS_9550_1.4.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=DR9N6 fixes]&lt;br /&gt;
* 1.5.1 [https://downloads.dell.com/FOLDER04604618M/1/XPS_9550_1.5.1.exe XPS_9550_1.5.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=TWKFC fixes]&lt;br /&gt;
* 1.6.1 [https://downloads.dell.com/FOLDER04717493M/1/XPS_9550_1.6.1.exe XPS_9550_1.6.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=PFJ08 fixes]&lt;br /&gt;
* 1.7.0 [https://downloads.dell.com/FOLDER04839266M/1/XPS_9550_1.7.0.exe XPS_9550_1.7.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=RYY62 fixes]&lt;br /&gt;
* 1.8.0 [https://downloads.dell.com/FOLDER05099834M/1/XPS_9550_1.8.0.exe XPS_9550_1.8.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=4GDY8 fixes]&lt;br /&gt;
* 1.9.0 [https://downloads.dell.com/FOLDER05256907M/1/XPS_9550_1.9.0.exe XPS_9550_1.9.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=xv1gp fixes]&lt;br /&gt;
* 1.10.0 [https://downloads.dell.com/FOLDER05476993M/1/XPS_9550_1.10.0.exe XPS_9550_1.10.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=3N7TY fixes]&lt;br /&gt;
* 1.11.2 [https://downloads.dell.com/FOLDER05770328M/1/XPS_9550_1.11.2.exe XPS_9550_1.11.2.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=gtm85 fixes]&lt;br /&gt;
* 1.12.0 [https://downloads.dell.com/FOLDER05865451M/1/XPS_9550_1.12.0.exe XPS_9550_1.12.0.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=7HTW2 fixes]&lt;br /&gt;
* 1.13.1 [https://dl.dell.com/FOLDER06021536M/1/XPS_9550_1.13.1.exe XPS_9550_1.13.1.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=3hr07 fixes]&lt;br /&gt;
&lt;br /&gt;
Attention: with versions 1.2.10 through 1.2.16 and older Linux kernels, there is a serious bug that let the screen black after suspend/wake up. The workaround is to set the lightness to the maximum but it breaks further lightness tuning.&lt;br /&gt;
&lt;br /&gt;
Linux kernels 4.8 and below tend to work best with A6 BIOS (1.2.0), although there is a workaround that allows it to work with later versions.  This workaround uses the intel_reg utility to reset the &amp;quot;pwm_granuality&amp;quot; setting of the onboard graphics.  Solution discussed here: [http://en.community.dell.com/techcenter/os-applications/f/4613/t/19985320].  This issue is reportedly fixed in Linux 4.9, and also in recent Ubuntu 16.10 kernel updates.  See the patch here [https://patchwork.freedesktop.org/patch/109407/].&lt;br /&gt;
&lt;br /&gt;
Even with the intel_reg workaround above, the screen brightness cannot be set to the lowest level without turning the screen off.  This is fixed in 1.2.18.&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
I kept UEFI so we need a Debian netinstall because liveCD doesn&#039;t have UEFI support yet.&lt;br /&gt;
&amp;lt;br&amp;gt;But Wi-Fi requires a proprietary firmware:&lt;br /&gt;
 https://github.com/OpenELEC/wlan-firmware/blob/master/firmware/brcm/brcmfmac43602-pcie.bin&lt;br /&gt;
so the easiest is to take a Debian netinstall with proprietary firmwares included.&lt;br /&gt;
&amp;lt;br&amp;gt;At time of writing Stretch is testing and last release is alpha5:&lt;br /&gt;
 http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/stretch_di_alpha5/amd64/iso-cd/&lt;br /&gt;
dd the image on a USB stick and boot it.&lt;br /&gt;
&amp;lt;br&amp;gt;It will also complain for a missing brcmfmac43602-pcie.txt but we can safely ignore it. (well I think so, but Wi-Fi has troubles now and then under heavy load, see below)&lt;br /&gt;
&amp;lt;!-- sysml eml ems --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I chose a guided partitionning of the entire disk, with encrypted LVM containing /, /home and swap. But proposed / was a bit too small IMHO (10G) so I deleted and recreated / (50G) and /home.&lt;br /&gt;
&amp;lt;br&amp;gt;Initially I tried to add the &amp;quot;discard&amp;quot; option for the partitions which should help on SSD but the kernel reported that &amp;quot;discard&amp;quot; wasn&#039;t supported by the disk.&lt;br /&gt;
&lt;br /&gt;
If you want to backup partition table and partitions before destroying everything, it&#039;s the right time!&lt;br /&gt;
 parted /dev/nvme0n1&lt;br /&gt;
 print&lt;br /&gt;
 sgdisk --backup=/some/safe/location/nvme0n1.gpt /dev/nvme0n1&lt;br /&gt;
I installed Cinnamon. I don&#039;t know for the others but Cinnamon has a nice auto setting to double features on HiDPI screens.&lt;br /&gt;
&lt;br /&gt;
===Gnome===&lt;br /&gt;
Update: now using Gnome3.&lt;br /&gt;
Needs to replace lightdm by gdm3 to get newer lock screen (gnome-screensaver is deprecated)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg-reconfigure gdm3&lt;br /&gt;
(choose gdm3)&lt;br /&gt;
# delay before blanking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.session idle-delay 300&lt;br /&gt;
# delay after blanking before locking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.screensaver lock-delay 10&lt;br /&gt;
(reboot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sometimes after a crash, gnome extensions (https://extensions.gnome.org/local/) are disabled. To reenable them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dconf write /org/gnome/shell/disable-user-extensions false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==First boot==&lt;br /&gt;
Once installed, the Debian didn&#039;t boot up.&lt;br /&gt;
&amp;lt;br&amp;gt;I tried many things but at the end the only thing that worked was to copy Debian EFI to the default one:&lt;br /&gt;
&lt;br /&gt;
Starting the netinstall again, in rescue mode, get a chroot shell, then&lt;br /&gt;
 mount /dev/nvme0n1p1 /boot/efi&lt;br /&gt;
 cd /boot/efi/EFI&lt;br /&gt;
 mkdir boot&lt;br /&gt;
 cp debian/grubx64.efi boot/bootx64.efi&lt;br /&gt;
I also deleted the Windows files in EFI.&lt;br /&gt;
&lt;br /&gt;
Resource:&lt;br /&gt;
* https://wiki.debian.org/GrubEFIReinstall&lt;br /&gt;
* https://wiki.archlinux.org/index.php/GRUB#Create_an_ESP&lt;br /&gt;
* https://help.ubuntu.com/community/UEFI&lt;br /&gt;
* https://wiki.debian.org/UEFI&lt;br /&gt;
* https://isalo.org/wiki.debian-fr/Debian_%26_UEFI    &lt;br /&gt;
&lt;br /&gt;
FTR things that failed included:&lt;br /&gt;
* [http://www.rodsbooks.com/refind/getting.html Refind] couldn&#039;t boot at all. Strange as the netinstall could boot...&lt;br /&gt;
* tweaks with efibootmgr, update-grub etc&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UPDATE&#039;&#039;&#039;: It might be possible to fix the issue from the BIOS itself, see http://www.dell.com/support/article/us/en/04/SLN297060/en&lt;br /&gt;
* Boot Sequence / Add Boot Option&lt;br /&gt;
** Boot Option Name : Debian&lt;br /&gt;
** File System List : PciRoot(0x0)/Pic(0x1D,0x0)/Pci(0x0,0x0)/?/HD(1,GPT,&amp;lt;UUID&amp;gt;)&lt;br /&gt;
** File Name : FS0 - EFI - debian - grubx64.efi&lt;br /&gt;
* Advances Boot Options / NOT Enable Legacy Option ROMs&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
===Working===&lt;br /&gt;
* Screen&lt;br /&gt;
* Touchscreen&lt;br /&gt;
* Touchpad&lt;br /&gt;
* Keyboard backlight and media buttons (volume, luminosity, backlight)&lt;br /&gt;
* Wi-Fi (with the proprietary driver, cf installation above)&lt;br /&gt;
* HDMI&lt;br /&gt;
* SD-Card reader&lt;br /&gt;
* Speakers, mic&lt;br /&gt;
* Webcam&lt;br /&gt;
&lt;br /&gt;
===Working after manual steps===&lt;br /&gt;
====i915====&lt;br /&gt;
Screen was working but dmesg was complaining:&lt;br /&gt;
 i915 0000:00:02.0: firmware: failed to load i915/skl_dmc_ver1.bin&lt;br /&gt;
So I installed that firmware, not sure what it&#039;s changed&lt;br /&gt;
 sudo apt-get install firmware-misc-nonfree&lt;br /&gt;
====Optimus====&lt;br /&gt;
Resources:&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Optimus&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Bumblebee&lt;br /&gt;
 apt-get install bumblebee-nvidia nvidia-libopencl1 nvidia-opencl-icd nvidia-opencl-icd:i386 libcuda1-i386 nvidia-smi clinfo&lt;br /&gt;
 reboot&lt;br /&gt;
Example:&lt;br /&gt;
 apt-get install nvidia-settings&lt;br /&gt;
 optirun -b none nvidia-settings -c :8&lt;br /&gt;
This also works for CUDA/OpenCL:&lt;br /&gt;
 optirun -b none ./hashcat64.bin -m 500 example500.hash example.dict&lt;br /&gt;
&lt;br /&gt;
Testing:&lt;br /&gt;
 optirun -vv glxgears&lt;br /&gt;
 optirun -vv clinfo&lt;br /&gt;
 optirun -b none ./hashcat64.bin -I&lt;br /&gt;
 optirun --no-xorg ./hashcat64.bin -I&lt;br /&gt;
&lt;br /&gt;
As bridge, primus or virtualgl can be used. Primus is available in the Debian repos while VirtualGL is [https://sourceforge.net/projects/virtualgl/?source=typ_redirect here]. Using primus currently.&lt;br /&gt;
&lt;br /&gt;
CUDA toolkit:&lt;br /&gt;
 apt-get install nvidia-cuda-toolkit&lt;br /&gt;
It removed nvidia-libopencl1 but hashcat is still running fine...&lt;br /&gt;
&lt;br /&gt;
GPU load:&lt;br /&gt;
 optirun --no-xorg nvidia-smi&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
Nothing wrong with the touchpad but its default config is a bit painful especially because it&#039;s large and my right palm touches it often, even with the option to diable it when typing and because it&#039;s &amp;quot;soft&amp;quot; buttons.&lt;br /&gt;
&amp;lt;br&amp;gt;I disabled the button area to limit somehow the problem but still you&#039;ve to get used to first touch and hold before pressing a button to do a drag and drop and not the opposite.&lt;br /&gt;
 synclient AreaBottomEdge=4026&lt;br /&gt;
To add a middle button:&lt;br /&gt;
 synclient RightButtonAreaLeft=3914&lt;br /&gt;
 synclient RightButtonAreaRight=0&lt;br /&gt;
 synclient RightButtonAreaTop=4026&lt;br /&gt;
 synclient RightButtonAreaBottom=0&lt;br /&gt;
 synclient MiddleButtonAreaLeft=3100&lt;br /&gt;
 synclient MiddleButtonAreaRight=3873&lt;br /&gt;
 synclient MiddleButtonAreaTop=4026&lt;br /&gt;
 synclient MiddleButtonAreaBottom=0&lt;br /&gt;
And because I love it:&lt;br /&gt;
 synclient CircularScrolling=1&lt;br /&gt;
Some doc [https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Buttonless_touchpads_.28aka_ClickPads.29 here] and the official one [http://www.x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html here]&lt;br /&gt;
&lt;br /&gt;
If with some kernels you get troubles using Synaptics options, check dmesg, maybe Touchpad is detected by another driver too:&lt;br /&gt;
 DLL06E4:01 06CB:7A13 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-7/i2c-DLL06E4:01/0018:06CB:7A13.0003/input/input14&lt;br /&gt;
 hid-multitouch 0018:06CB:7A13.0003: input,hidraw2: I2C HID v1.00 Mouse [DLL06E4:01 06CB:7A13] on i2c-DLL06E4:01&lt;br /&gt;
If this is so, add /etc/modprobe.d/synaptics.conf with this line, cf Kernel section below:&lt;br /&gt;
 blacklist i2c-designware-platform&lt;br /&gt;
&lt;br /&gt;
On recent kernels, i2c-designware-platform is directly in the kernel, not as module anymore.&lt;br /&gt;
To manage to blacklist it, see https://unix.stackexchange.com/questions/423797/how-do-i-disable-i2c-designware-support-when-its-not-built-as-a-module#446913&lt;br /&gt;
Edit /etc/default/grub and append the following blacklist invocation to the command line, then update-grub.&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;… initcall_blacklist=dw_i2c_init_driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Touchscreen====&lt;br /&gt;
Touchscreen works well but when an external screen is connected, it spans over both screens so e.g. touching the middle of the laptop screen moves the mouse to some middle point of the virtual screen combining both screens.&lt;br /&gt;
&amp;lt;br&amp;gt;To fix it, see https://wiki.archlinux.org/index.php/Calibrating_Touchscreen&lt;br /&gt;
&amp;lt;br&amp;gt;This example is for an external screen mapped to the right of the laptop screen:&lt;br /&gt;
 # c0 = width of laptop screen / total width&lt;br /&gt;
 c0=$(bc -l &amp;lt;&amp;lt;&amp;lt; &amp;quot;scale=2; $(xrandr|grep -A1 eDP1|sed &#039;1d;s/x.*//&#039;)/$(xrandr|grep &#039;^Screen 0&#039;|sed &#039;s/.*current //;s/ x.*//&#039;)&amp;quot;)&lt;br /&gt;
 xinput set-prop &amp;quot;ELAN Touchscreen&amp;quot; --type=float &amp;quot;Coordinate Transformation Matrix&amp;quot; \&lt;br /&gt;
    c0 0  0 \&lt;br /&gt;
    0  1  0 \&lt;br /&gt;
    0  0  1&lt;br /&gt;
&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
Kernel complains about a missing file.&lt;br /&gt;
&amp;lt;br&amp;gt;Apparently we can get it from Windows drivers but I don&#039;t know where to find them, so I took [https://www.dropbox.com/s/8goc4omhnzxij93/BCM-0a5c-6410.hcd?dl=0 this one] and copied it into /lib/firmware/brcm&lt;br /&gt;
&lt;br /&gt;
Then Bluetooth was recognized but I couldn&#039;t pair my WM615 mouse.&lt;br /&gt;
&amp;lt;br&amp;gt;After restarting the Bt adaptor, I could finally pair:&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
  power off&lt;br /&gt;
  power on&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* https://wiki.debian.org/BluetoothUser&lt;br /&gt;
* https://wiki.archlinux.org/index.php/bluetooth&lt;br /&gt;
There is also a possibility to pair directly from bluetoothctl, see https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see [[#Hardware_changes]]&lt;br /&gt;
&lt;br /&gt;
====HiDPI====&lt;br /&gt;
Cinnamon handles it nicely but some applications don&#039;t such as Gimp and you end up with a microscopic tools ribbon.&lt;br /&gt;
&amp;lt;br&amp;gt;See https://wiki.archlinux.org/index.php/HiDPI for some useful tips&lt;br /&gt;
&lt;br /&gt;
Cinnamon / System Settings / Desktop Scaling has the same effect as `gsettings set org.cinnamon.desktop.interface scaling-factor 2`&lt;br /&gt;
&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (1016x572 millimeters)&lt;br /&gt;
   resolution:    96x96 dots per inch&lt;br /&gt;
I&#039;ve no ruler at hand but if it&#039;s 15.6&#039;&#039; in diagonal and pixels are square, this gives 293.4 dpi for screen dimensions of 332x187mm.&lt;br /&gt;
&amp;lt;br&amp;gt;So closest hit with common DPI is 96*3=288dpi&lt;br /&gt;
 xrandr --dpi 288&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (338x190 millimeters)&lt;br /&gt;
   resolution:    289x289 dots per inch&lt;br /&gt;
Let&#039;s document those fictive dimensions for next boots by creating /etc/X11/xorg.conf.d/90-monitor.conf with&lt;br /&gt;
 Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
     Identifier             &amp;quot;&amp;lt;default monitor&amp;gt;&amp;quot;&lt;br /&gt;
     DisplaySize            338 190    # In millimeters&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT5 and GTK+ 3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;To enable better scaling of QT5 and GTK+ 3, add to .bashrc (not to .xsessionrc otherwise Cinnamon taskbar is messed up!):&lt;br /&gt;
 QT_DEVICE_PIXEL_RATIO=3&lt;br /&gt;
 GDK_SCALE=3&lt;br /&gt;
 GDK_DPI_SCALE=0.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. Skype&lt;br /&gt;
 sudo apt-get install qt4-qtconfig&lt;br /&gt;
 qtconfig-qt4&lt;br /&gt;
=&amp;gt; one can change font size&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gimp 2.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. copy /usr/share/gimp/2.0/themes/Default as ~/.gimp-2.8/themes/HiDPI and change a few options:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
--- gtkrc&lt;br /&gt;
+++ gtkrc&lt;br /&gt;
-  GimpToolPalette::tool-icon-size   = button&lt;br /&gt;
+  GimpToolPalette::tool-icon-size   = dialog&lt;br /&gt;
-  GimpEditor::button-icon-size      = menu&lt;br /&gt;
+  GimpEditor::button-icon-size      = button&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wine&#039;&#039;&#039;&lt;br /&gt;
 winecfg&lt;br /&gt;
Change &amp;quot;dpi&amp;quot; in &amp;quot;Graphics&amp;quot; tab&lt;br /&gt;
&#039;&#039;&#039;Virtualbox&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;View/Scale Factor is helpful...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chromium&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Chrome works fine but &#039;&#039;Chromium&#039;&#039; broke at some point, so I&#039;ve to launch it with:&lt;br /&gt;
&lt;br /&gt;
 GDK_SCALE=2 exec chromium&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Small console font&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;I don&#039;t care but if that&#039;s an issue for you, from [https://github.com/mpalourdio/xps13/blob/master/HiDPI/tty.md here]:&lt;br /&gt;
 sudo dpkg-reconfigure console-setup&lt;br /&gt;
* Choose UTF-8&lt;br /&gt;
* Choose the default Combined - Latin, ... option (&amp;quot;Latin&amp;quot; includes the English alphabet)&lt;br /&gt;
* Select the terminus font&lt;br /&gt;
* Select 16x32&lt;br /&gt;
* OK&lt;br /&gt;
To apply immediately, open a TTY and run setupcon, else just reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Multiple displays&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Combining HiDPI screen with external non-HiDPI? See https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xpra&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;cf https://xpra.org/trac/ticket/2492&lt;br /&gt;
&lt;br /&gt;
====Sensors====&lt;br /&gt;
 apt-get install lm-sensors&lt;br /&gt;
 sensors-detect&lt;br /&gt;
Sensors-detect found coretemp which is now loaded via /etc/modules:&lt;br /&gt;
 coretemp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====External microphone====&lt;br /&gt;
The sole jack is a TRRS, combining output and mic.&lt;br /&gt;
&amp;lt;br&amp;gt;Soundcard is a Realtek ALC3266&lt;br /&gt;
  grep -r Realtek /proc/asound/card*&lt;br /&gt;
  /proc/asound/card0/codec#0:Codec: Realtek ALC3266&lt;br /&gt;
&amp;lt;br&amp;gt;With Debian+Cinnamon, the system detects the mic, we can see it in the sound properties and select it, but still the internal mic is used.&lt;br /&gt;
&amp;lt;br&amp;gt;When using pavucontrol, selecting the &amp;quot;headset microphone&amp;quot; works fine (it still needs some level boosting).&lt;br /&gt;
&lt;br /&gt;
====DA200====&lt;br /&gt;
[http://accessories.euro.dell.com/sna/products/Station_daccueil/productdetail.aspx?c=fr&amp;amp;l=fr&amp;amp;s=dhs&amp;amp;cs=frdhs1&amp;amp;sku=470-ABRY DA200] used to be recognized only if it was plugged at boot.&lt;br /&gt;
&amp;lt;br&amp;gt;With kernel 4.6 the device is properly detected dynamically.&lt;br /&gt;
&amp;lt;br&amp;gt;The adapter is actually using DisplayPort. &lt;br /&gt;
&amp;lt;br&amp;gt;VGA output works.&lt;br /&gt;
&lt;br /&gt;
HDMI output is limited to some modes (max 1920x1080, cf [http://www.dell.com/support/article/us/en/19/SLN303466 Dell support]) and by default xrandr will try an unsupported mode.&lt;br /&gt;
&amp;lt;br&amp;gt;Even &amp;quot;xrandr --output DP-1 --mode 1920x1080&amp;quot; fails by default.&lt;br /&gt;
&lt;br /&gt;
Some supported modes:  800x600, 1024x768, 1280x720, 1920x1080i&lt;br /&gt;
&amp;lt;br&amp;gt;1920x1080i is interlaced and awful to look at.&lt;br /&gt;
&amp;lt;br&amp;gt;Reducing the rate allows a non-interlaced 1920x1080 mode, you can test it with:&lt;br /&gt;
 xrandr --output DP-1 --mode 1920x1080 -r 30&lt;br /&gt;
If this works for you, you can create a new mode, using cvt to find the proper parameters:&lt;br /&gt;
 cvt 1920 1080 30&lt;br /&gt;
 # 1920x1080 29.95 Hz (CVT) hsync: 33.01 kHz; pclk: 79.75 MHz&lt;br /&gt;
 Modeline &amp;quot;1920x1080_30.00&amp;quot;   79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
Creating and adding the new mode:&lt;br /&gt;
 xrandr --newmode &amp;quot;1920x1080_30.00&amp;quot; 79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
 xrandr --addmode DP-1  &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
Now you can choose this new mode:&lt;br /&gt;
  xrandr --output DP-1 --mode &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
&lt;br /&gt;
When plugged the following hardware gets detected:&lt;br /&gt;
&lt;br /&gt;
lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp..     &amp;lt;= Ethernet&lt;br /&gt;
Bus 004 Device 002: ID 05e3:0617 Genesys Logic, Inc..&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 003 Device 003: ID 0835:2a01 Action Star Enterprise Co., Ltd. &amp;lt;= Billboard&lt;br /&gt;
Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;The USB Billboard Device Class definition describes the methods used to communicate the Alternate Modes supported by a device container to a host system. More details on Billboard Devices are available in the USB Billboard Device Class specification at the following link: http://www.usb.org/developers/docs/devclass_docs/.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
lspci:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
06:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:01.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:02.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
0a:00.0 USB controller: Intel Corporation Device 15b5 (prog-if 30 [XHCI])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lsmod:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
r8152                  49152  0&lt;br /&gt;
cdc_ether              16384  0&lt;br /&gt;
usbnet                 40960  1 cdc_ether&lt;br /&gt;
mii                    16384  2 r8152,usbnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Solved issues===&lt;br /&gt;
====i915 and blank screen====&lt;br /&gt;
There were numerous issues with the video card. Now with latest kernels (&amp;gt;=4.8) most issues are gone, still some occasional blank screen or freeze when plugging an external HDMI.&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
WM615 mouse used to act erratically, the cursor stopping now and then. Now with latest kernels and an Intel Wi-Fi+BT card it&#039;s fine.&lt;br /&gt;
====Wi-Fi====&lt;br /&gt;
Wi-Fi tends to disassociate under heavy load, switching to other SSIDs or frequencies (5Ghz&amp;lt;&amp;gt;2.4GHz) and coming back seems to help.&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see #Hardware_changes&lt;br /&gt;
&lt;br /&gt;
===Issues===&lt;br /&gt;
====rfkill button====&lt;br /&gt;
Rfkill button of the keyboard (Fn+PrtScr) doesn&#039;t seem to work, no big deal.&lt;br /&gt;
&lt;br /&gt;
==Kernels==&lt;br /&gt;
initramfs complains about lvmetad and I&#039;m not sure it&#039;s that useful on SSD, so just disabling it:&lt;br /&gt;
&amp;lt;br&amp;gt;Edit /etc/lvm/lvm.conf&lt;br /&gt;
 use_lvmetad=0&lt;br /&gt;
Then stop it&lt;br /&gt;
 systemctl stop lvm2-lvmetad&lt;br /&gt;
===Debian===&lt;br /&gt;
Debian kernel 4.8 works quite well&lt;br /&gt;
===Compilation notes===&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;, to compile &amp;gt;=4.4, one needs at least initramfs-tools v0.122 to get the nvme.ko properly loaded and therefore the SSD properly seen.&lt;br /&gt;
&lt;br /&gt;
To compile a vanilla kernel, cf http://www.cyberciti.biz/faq/debian-ubuntu-building-installing-a-custom-linux-kernel/&lt;br /&gt;
 sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc&lt;br /&gt;
 sudo apt-get install kernel-package&lt;br /&gt;
 wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz&lt;br /&gt;
 tar xf linux-4.4.tar.xz&lt;br /&gt;
 cd linux-4.4&lt;br /&gt;
 cp /boot/config-$(uname -r) .config&lt;br /&gt;
 make menuconfig&lt;br /&gt;
 make-kpkg clean&lt;br /&gt;
 make-kpkg --rootcmd fakeroot --initrd --append_to_version=9-doegox kernel_image kernel_headers -j 7&lt;br /&gt;
&lt;br /&gt;
==Hardware changes==&lt;br /&gt;
Replacing Broadcom Wi-Fi+BT by an [https://wikidevi.com/wiki/Intel Intel one]:&lt;br /&gt;
* Intel 7265 Dual Band Wireless-AC 7265NGW Card 802.11ac 867Mbps WIFI BT4.0 UK&lt;br /&gt;
** http://www.befr.ebay.be/itm/262049756966?_trksid=p2060353.m2749.l2649&amp;amp;ssPageName=STRK%3AMEBIDX%3AIT&lt;br /&gt;
** https://downloadcenter.intel.com/download/17045&lt;br /&gt;
** This requires installing package firmware-iwlwifi&lt;br /&gt;
** Seems to have less Wi-Fi issues, but still the same BT problems pairing the Dell mouse&lt;br /&gt;
&lt;br /&gt;
 iwlwifi 0000:02:00.0: firmware: direct-loading firmware iwlwifi-7265-17.ucode&lt;br /&gt;
 iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 7265, REV=0x184&lt;br /&gt;
&lt;br /&gt;
Alternatives to DA200:&lt;br /&gt;
* HDMI Male To VGA Female Converter&lt;br /&gt;
** http://www.aliexpress.com/item/1pc-HDMI-Male-To-VGA-Female-Converter-Box-Adapter-With-Audio-Cable-For-PC-HDTVHot-New/32448171552.html&lt;br /&gt;
* USB 3.0 10/100/1000Mbps Gigabit Ethernet RJ45&lt;br /&gt;
** http://www.aliexpress.com/item/Hot-selling-New-USB-3-0-10-100-1000Mbps-Gigabit-Ethernet-RJ45-External-Network-Card-LAN/32546613204.html&lt;br /&gt;
* 4-Port Ultra-Slim USB 3.0 Hub&lt;br /&gt;
** https://www.anker.com/products/A7516011&lt;br /&gt;
** http://www.amazon.de/Anker-Datenhub-Ultrabooks-weiteren-kompatiblen/dp/B00Y211AFM/&lt;br /&gt;
&lt;br /&gt;
==Misc hardware==&lt;br /&gt;
Smartcard reader&lt;br /&gt;
* ACS ACR38U PocketMate Smart Card Reader&lt;br /&gt;
** http://www.acs.com.hk/en/products/160/acr38u-pocketmate-smart-card-reader/&lt;br /&gt;
** http://www.befr.ebay.be/itm/EU-SHIPPING-Smart-Card-USB-ACS-ACR38U-National-ID-Tachograph-Reader-Writer-/121899037557&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10532</id>
		<title>Laptop Dell XPS 15</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10532"/>
		<updated>2021-08-20T21:03:36Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Bios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Notes about installing a Debian Stretch on a Dell XPS 15&lt;br /&gt;
==Hardware==&lt;br /&gt;
Dell XPS 15 model 9550 (variant with touchscreen &amp;amp; PCIe m.2 ssd)&lt;br /&gt;
&lt;br /&gt;
From the [http://www.dell.com/support/home/fr/fr/frdhs1/product-support/servicetag/DHVNH72/configuration configuration] list:&lt;br /&gt;
* 6th Generation Intel(R) Core (TM) i7-6700HQ Quad Core (6M Cache, up to 3.5 GHz)&lt;br /&gt;
* 16Go (2x8Go) DDR4 2133MHz&lt;br /&gt;
* 15.6&amp;quot; 4K Ultra HD (3840 x 2160) InfinityEdge touch, Sliver&lt;br /&gt;
* 1To PCIe Solid State&lt;br /&gt;
* DW1830 3x3 802.11ac 2.4/5GHz + Bluetooth 4.1&lt;br /&gt;
* Dell 84 WHr 6-Cell Lithium-Ion Battery&lt;br /&gt;
* Internal US/International Qwerty Backlit Keyboard&lt;br /&gt;
From the drivers list:&lt;br /&gt;
* Realtek High Definition Audio ALC3266&lt;br /&gt;
* Realtek RTS5242 PCIe Gen2 CardReader&lt;br /&gt;
* Realtek USB GBE Ethernet Controller&lt;br /&gt;
* ST Microlectronics LNG3DMTR Motion Sensor&lt;br /&gt;
* Intel HD Graphics 530/P530&lt;br /&gt;
* nVIDIA Geforce GTX 960M Graphics&lt;br /&gt;
From dmesg (incomplete):&lt;br /&gt;
* BCM20703A1 Bluetooth 4.1 (firmware brcm/BCM-0a5c-6410.hcd)&lt;br /&gt;
From lspci -nn:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00:00.0 Host bridge [0600]: Intel Corporation Sky Lake Host Bridge/DRAM Registers [8086:1910] (rev 07)&lt;br /&gt;
00:01.0 PCI bridge [0604]: Intel Corporation Sky Lake PCIe Controller (x16) [8086:1901] (rev 07)&lt;br /&gt;
00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:191b] (rev 06)&lt;br /&gt;
00:04.0 Signal processing controller [1180]: Intel Corporation Device [8086:1903] (rev 07)&lt;br /&gt;
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f] (rev 31)&lt;br /&gt;
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131] (rev 31)&lt;br /&gt;
00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #0 [8086:a160] (rev 31)&lt;br /&gt;
00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #1 [8086:a161] (rev 31)&lt;br /&gt;
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-H CSME HECI #1 [8086:a13a] (rev 31)&lt;br /&gt;
00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-H SATA Controller [AHCI mode] [8086:a103] (rev 31)&lt;br /&gt;
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #1 [8086:a110] (rev f1)&lt;br /&gt;
00:1c.1 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #2 [8086:a111] (rev f1)&lt;br /&gt;
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #9 [8086:a118] (rev f1)&lt;br /&gt;
00:1d.4 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #13 [8086:a11c] (rev f1)&lt;br /&gt;
00:1d.6 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #15 [8086:a11e] (rev f1)&lt;br /&gt;
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC Controller [8086:a14e] (rev 31)&lt;br /&gt;
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H PMC [8086:a121] (rev 31)&lt;br /&gt;
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD Audio [8086:a170] (rev 31)&lt;br /&gt;
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus [8086:a123] (rev 31)&lt;br /&gt;
01:00.0 3D controller [0302]: NVIDIA Corporation GM107M [GeForce GTX 960M] [10de:139b] (rev ff)&lt;br /&gt;
02:00.0 Network controller [0280]: Broadcom Corporation BCM43602 802.11ac Wireless LAN SoC [14e4:43ba] (rev 01)&lt;br /&gt;
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device [10ec:525a] (rev 01)&lt;br /&gt;
04:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd Device [144d:a802] (rev 01)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 001 Device 003: ID 04f3:21d5 Elan Microelectronics Corp.            &amp;lt;= touchscreen&lt;br /&gt;
Bus 001 Device 002: ID 0a5c:6410 Broadcom Corp.                         &amp;lt;= bluetooth&lt;br /&gt;
Bus 001 Device 004: ID 0c45:6713 Microdia                               &amp;lt;= webcam&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From lscpu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Architecture:          x86_64&lt;br /&gt;
CPU op-mode(s):        32-bit, 64-bit&lt;br /&gt;
Byte Order:            Little Endian&lt;br /&gt;
CPU(s):                8&lt;br /&gt;
On-line CPU(s) list:   0-7&lt;br /&gt;
Thread(s) per core:    2&lt;br /&gt;
Core(s) per socket:    4&lt;br /&gt;
Socket(s):             1&lt;br /&gt;
NUMA node(s):          1&lt;br /&gt;
Vendor ID:             GenuineIntel&lt;br /&gt;
CPU family:            6&lt;br /&gt;
Model:                 94&lt;br /&gt;
Model name:            Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz&lt;br /&gt;
Stepping:              3&lt;br /&gt;
CPU MHz:               2847.812&lt;br /&gt;
CPU max MHz:           3500.0000&lt;br /&gt;
CPU min MHz:           800.0000&lt;br /&gt;
BogoMIPS:              5183.88&lt;br /&gt;
Virtualization:        VT-x&lt;br /&gt;
L1d cache:             32K&lt;br /&gt;
L1i cache:             32K&lt;br /&gt;
L2 cache:              256K&lt;br /&gt;
L3 cache:              6144K&lt;br /&gt;
NUMA node0 CPU(s):     0-7&lt;br /&gt;
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush &lt;br /&gt;
dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts &lt;br /&gt;
rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 &lt;br /&gt;
ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx &lt;br /&gt;
f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_notify hwp_act_window hwp_epp &lt;br /&gt;
intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid &lt;br /&gt;
rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dell Wireless 1830 = BCM43602 + BCM20703A1 (DW1830 Bluetooth 4.1 LE)&lt;br /&gt;
&lt;br /&gt;
BCM43602	PCI ID: 14e4:43ba&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# smartctl -d scsi -i /dev/nvme0n1&lt;br /&gt;
smartctl 6.4 2015-06-04 r4109 [x86_64-linux-4.3.0-1-amd64] (local build)&lt;br /&gt;
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org&lt;br /&gt;
&lt;br /&gt;
=== START OF INFORMATION SECTION ===&lt;br /&gt;
Vendor:               NVMe&lt;br /&gt;
Product:              PM951 NVMe SAMSU&lt;br /&gt;
Revision:             7D0Q&lt;br /&gt;
Compliance:           SPC-4&lt;br /&gt;
User Capacity:        1,024,209,543,168 bytes [1.02 TB]&lt;br /&gt;
Logical block size:   512 bytes&lt;br /&gt;
Rotation Rate:        Solid State Device&lt;br /&gt;
Logical Unit id:      0x0025384cf1b0fd29&lt;br /&gt;
Serial number:        S2FZNXAGC03824&lt;br /&gt;
Device type:          disk&lt;br /&gt;
Local Time is:        Sun Feb 14 22:02:03 2016 CET&lt;br /&gt;
SMART support is:     Unavailable - device lacks SMART capability.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* http://topics-cdn.dell.com/pdf/xps-15-9550-laptop_Service%20Manual_en-us.pdf&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dell_XPS_15&lt;br /&gt;
* https://bbs.archlinux.org/viewtopic.php?id=204739&lt;br /&gt;
* http://ubuntuforums.org/showthread.php?t=2301071&lt;br /&gt;
* http://forthescience.org/blog/2015/03/20/installing_ubuntu_14_04_on_the_new_dell_xps_13/&lt;br /&gt;
* https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013&lt;br /&gt;
* http://bartongeorge.net/2015/02/23/update-2-dell-xps-13-laptop-developer-edition-sputnik-gen-4/&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
I first tried to keep a dual-boot just in case, but once we disable Raid and put SATA in AHCI mode, Windows can&#039;t boot anymore. (later I read it could be possible to fix it by rebooting several times Windows till safe mode is kicked in, but it was too late for me.)&lt;br /&gt;
&lt;br /&gt;
Just in case again, one can boot Windows and create a USB recovery.&lt;br /&gt;
==Bios==&lt;br /&gt;
* &#039;&#039;&#039;Secure Boot: disable&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SATA: switch from Raid to AHCI&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Advances Boot Options:/ NOT Enable Legacy Option ROMs&#039;&#039;&#039;&lt;br /&gt;
* Boot: not sure it&#039;s needed but I disabled Windows boot manager entry and kept the hdd UEFI entry: UEFI: PM951 NVMe SAMSUNG 1024GB, Partition 1&lt;br /&gt;
** See below (first boot) how to create a new entry&lt;br /&gt;
* POST/Fastboot/Auto&lt;br /&gt;
* auto os recovery threshold off&lt;br /&gt;
* Fn Lock Options&lt;br /&gt;
** NOT Fn Lock&lt;br /&gt;
** Lock Mode Enable/Secondary&lt;br /&gt;
* UEFI Capsule Firmware Updates / Enable&lt;br /&gt;
** This allows using ``fwupdmgr update`` e.g. to update the TPM firmware&lt;br /&gt;
&lt;br /&gt;
To update the BIOS:&lt;br /&gt;
* put it on a USB stick&lt;br /&gt;
* reboot&lt;br /&gt;
* select BIOS flash update on the boot screen (F12).&lt;br /&gt;
No need to put it on a bootable DOS, just give the exe to the BIOS update built-in util.&lt;br /&gt;
&amp;lt;br&amp;gt;You can even drop the update on /boot/efi as it&#039;s also a FAT partition, no need for a USB memory stick.&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
* 1.2.0 aka A6 [https://downloads.dell.com/FOLDER03659467M/1/XPS_9550_1.2.0.exe XPS_9550_1.2.0.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=KTR76 fixes]&lt;br /&gt;
* 1.2.10 aka A10 [https://downloads.dell.com/FOLDER03800340M/1/XPS_9550_1.2.10.exe XPS_9550_1.2.10.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=96T2K fixes]&lt;br /&gt;
* 1.2.14 aka A13 [https://downloads.dell.com/FOLDER03906323M/1/XPS_9550_1.2.14.exe XPS_9550_1.2.14.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=VNMDK fixes]&lt;br /&gt;
* 1.2.16 [https://downloads.dell.com/FOLDER04030973M/1/XPS_9550_1.2.16.exe XPS_9550_1.2.16.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=J8GY6 fixes]&lt;br /&gt;
* 1.2.18 aka A16 [https://downloads.dell.com/FOLDER04078627M/1/XPS_9550_1.2.18.exe XPS_9550_1.2.18.exe] [http://www.dell.com/support/home/us/en/4/Drivers/DriversDetails?driverId=KD0C7 fixes]&lt;br /&gt;
* 1.2.21 [https://downloads.dell.com/FOLDER04190863M/1/XPS_9550_1.2.21.exe XPS_9550_1.2.21.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=6RV34 fixes]&lt;br /&gt;
* 1.2.25 [https://downloads.dell.com/FOLDER04319442M/1/XPS_9550_1.2.25.exe XPS_9550_1.2.25.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=3W30W fixes]&lt;br /&gt;
* 1.2.29 [https://downloads.dell.com/FOLDER04449988M/1/XPS_9550_1.2.29.exe XPS_9550_1.2.29.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=F7M6G fixes]&lt;br /&gt;
* 1.3.0 [https://downloads.dell.com/FOLDER04481870M/1/XPS_9550_1.3.0.exe XPS_9550_1.3.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=NXVMP fixes]&lt;br /&gt;
* 1.4.0 [https://downloads.dell.com/FOLDER04499656M/1/XPS_9550_1.4.0.exe XPS_9550_1.4.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=DR9N6 fixes]&lt;br /&gt;
* 1.5.1 [https://downloads.dell.com/FOLDER04604618M/1/XPS_9550_1.5.1.exe XPS_9550_1.5.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=TWKFC fixes]&lt;br /&gt;
* 1.6.1 [https://downloads.dell.com/FOLDER04717493M/1/XPS_9550_1.6.1.exe XPS_9550_1.6.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=PFJ08 fixes]&lt;br /&gt;
* 1.7.0 [https://downloads.dell.com/FOLDER04839266M/1/XPS_9550_1.7.0.exe XPS_9550_1.7.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=RYY62 fixes]&lt;br /&gt;
* 1.8.0 [https://downloads.dell.com/FOLDER05099834M/1/XPS_9550_1.8.0.exe XPS_9550_1.8.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=4GDY8 fixes]&lt;br /&gt;
* 1.9.0 [https://downloads.dell.com/FOLDER05256907M/1/XPS_9550_1.9.0.exe XPS_9550_1.9.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=xv1gp fixes]&lt;br /&gt;
* 1.10.0 [https://downloads.dell.com/FOLDER05476993M/1/XPS_9550_1.10.0.exe XPS_9550_1.10.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=3N7TY fixes]&lt;br /&gt;
* 1.11.2 [https://downloads.dell.com/FOLDER05770328M/1/XPS_9550_1.11.2.exe XPS_9550_1.11.2.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=gtm85 fixes]&lt;br /&gt;
* 1.12.0 [https://downloads.dell.com/FOLDER05865451M/1/XPS_9550_1.12.0.exe XPS_9550_1.12.0.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=7HTW2 fixes]&lt;br /&gt;
* 1.13.1 [https://dl.dell.com/FOLDER06021536M/1/XPS_9550_1.13.1.exe XPS_9550_1.13.1.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=3hr07 fixes]&lt;br /&gt;
&lt;br /&gt;
Attention: with versions 1.2.10 through 1.2.16 and older Linux kernels, there is a serious bug that let the screen black after suspend/wake up. The workaround is to set the lightness to the maximum but it breaks further lightness tuning.&lt;br /&gt;
&lt;br /&gt;
Linux kernels 4.8 and below tend to work best with A6 BIOS (1.2.0), although there is a workaround that allows it to work with later versions.  This workaround uses the intel_reg utility to reset the &amp;quot;pwm_granuality&amp;quot; setting of the onboard graphics.  Solution discussed here: [http://en.community.dell.com/techcenter/os-applications/f/4613/t/19985320].  This issue is reportedly fixed in Linux 4.9, and also in recent Ubuntu 16.10 kernel updates.  See the patch here [https://patchwork.freedesktop.org/patch/109407/].&lt;br /&gt;
&lt;br /&gt;
Even with the intel_reg workaround above, the screen brightness cannot be set to the lowest level without turning the screen off.  This is fixed in 1.2.18.&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
I kept UEFI so we need a Debian netinstall because liveCD doesn&#039;t have UEFI support yet.&lt;br /&gt;
&amp;lt;br&amp;gt;But Wi-Fi requires a proprietary firmware:&lt;br /&gt;
 https://github.com/OpenELEC/wlan-firmware/blob/master/firmware/brcm/brcmfmac43602-pcie.bin&lt;br /&gt;
so the easiest is to take a Debian netinstall with proprietary firmwares included.&lt;br /&gt;
&amp;lt;br&amp;gt;At time of writing Stretch is testing and last release is alpha5:&lt;br /&gt;
 http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/stretch_di_alpha5/amd64/iso-cd/&lt;br /&gt;
dd the image on a USB stick and boot it.&lt;br /&gt;
&amp;lt;br&amp;gt;It will also complain for a missing brcmfmac43602-pcie.txt but we can safely ignore it. (well I think so, but Wi-Fi has troubles now and then under heavy load, see below)&lt;br /&gt;
&amp;lt;!-- sysml eml ems --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I chose a guided partitionning of the entire disk, with encrypted LVM containing /, /home and swap. But proposed / was a bit too small IMHO (10G) so I deleted and recreated / (50G) and /home.&lt;br /&gt;
&amp;lt;br&amp;gt;Initially I tried to add the &amp;quot;discard&amp;quot; option for the partitions which should help on SSD but the kernel reported that &amp;quot;discard&amp;quot; wasn&#039;t supported by the disk.&lt;br /&gt;
&lt;br /&gt;
If you want to backup partition table and partitions before destroying everything, it&#039;s the right time!&lt;br /&gt;
 parted /dev/nvme0n1&lt;br /&gt;
 print&lt;br /&gt;
 sgdisk --backup=/some/safe/location/nvme0n1.gpt /dev/nvme0n1&lt;br /&gt;
I installed Cinnamon. I don&#039;t know for the others but Cinnamon has a nice auto setting to double features on HiDPI screens.&lt;br /&gt;
&lt;br /&gt;
===Gnome===&lt;br /&gt;
Update: now using Gnome3.&lt;br /&gt;
Needs to replace lightdm by gdm3 to get newer lock screen (gnome-screensaver is deprecated)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg-reconfigure gdm3&lt;br /&gt;
(choose gdm3)&lt;br /&gt;
# delay before blanking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.session idle-delay 300&lt;br /&gt;
# delay after blanking before locking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.screensaver lock-delay 10&lt;br /&gt;
(reboot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sometimes after a crash, gnome extensions (https://extensions.gnome.org/local/) are disabled. To reenable them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dconf write /org/gnome/shell/disable-user-extensions false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==First boot==&lt;br /&gt;
Once installed, the Debian didn&#039;t boot up.&lt;br /&gt;
&amp;lt;br&amp;gt;I tried many things but at the end the only thing that worked was to copy Debian EFI to the default one:&lt;br /&gt;
&lt;br /&gt;
Starting the netinstall again, in rescue mode, get a chroot shell, then&lt;br /&gt;
 mount /dev/nvme0n1p1 /boot/efi&lt;br /&gt;
 cd /boot/efi/EFI&lt;br /&gt;
 mkdir boot&lt;br /&gt;
 cp debian/grubx64.efi boot/bootx64.efi&lt;br /&gt;
I also deleted the Windows files in EFI.&lt;br /&gt;
&lt;br /&gt;
Resource:&lt;br /&gt;
* https://wiki.debian.org/GrubEFIReinstall&lt;br /&gt;
* https://wiki.archlinux.org/index.php/GRUB#Create_an_ESP&lt;br /&gt;
* https://help.ubuntu.com/community/UEFI&lt;br /&gt;
* https://wiki.debian.org/UEFI&lt;br /&gt;
* https://isalo.org/wiki.debian-fr/Debian_%26_UEFI    &lt;br /&gt;
&lt;br /&gt;
FTR things that failed included:&lt;br /&gt;
* [http://www.rodsbooks.com/refind/getting.html Refind] couldn&#039;t boot at all. Strange as the netinstall could boot...&lt;br /&gt;
* tweaks with efibootmgr, update-grub etc&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UPDATE&#039;&#039;&#039;: It might be possible to fix the issue from the BIOS itself, see http://www.dell.com/support/article/us/en/04/SLN297060/en&lt;br /&gt;
* Boot Sequence / Add Boot Option&lt;br /&gt;
** Boot Option Name : Debian&lt;br /&gt;
** File System List : PciRoot(0x0)/Pic(0x1D,0x0)/Pci(0x0,0x0)/?/HD(1,GPT,&amp;lt;UUID&amp;gt;)&lt;br /&gt;
** File Name : FS0 - EFI - debian - grubx64.efi&lt;br /&gt;
* Advances Boot Options / NOT Enable Legacy Option ROMs&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
===Working===&lt;br /&gt;
* Screen&lt;br /&gt;
* Touchscreen&lt;br /&gt;
* Touchpad&lt;br /&gt;
* Keyboard backlight and media buttons (volume, luminosity, backlight)&lt;br /&gt;
* Wi-Fi (with the proprietary driver, cf installation above)&lt;br /&gt;
* HDMI&lt;br /&gt;
* SD-Card reader&lt;br /&gt;
* Speakers, mic&lt;br /&gt;
* Webcam&lt;br /&gt;
&lt;br /&gt;
===Working after manual steps===&lt;br /&gt;
====i915====&lt;br /&gt;
Screen was working but dmesg was complaining:&lt;br /&gt;
 i915 0000:00:02.0: firmware: failed to load i915/skl_dmc_ver1.bin&lt;br /&gt;
So I installed that firmware, not sure what it&#039;s changed&lt;br /&gt;
 sudo apt-get install firmware-misc-nonfree&lt;br /&gt;
====Optimus====&lt;br /&gt;
Resources:&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Optimus&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Bumblebee&lt;br /&gt;
 apt-get install bumblebee-nvidia nvidia-libopencl1 nvidia-opencl-icd nvidia-opencl-icd:i386 libcuda1-i386 nvidia-smi clinfo&lt;br /&gt;
 reboot&lt;br /&gt;
Example:&lt;br /&gt;
 apt-get install nvidia-settings&lt;br /&gt;
 optirun -b none nvidia-settings -c :8&lt;br /&gt;
This also works for CUDA/OpenCL:&lt;br /&gt;
 optirun -b none ./hashcat64.bin -m 500 example500.hash example.dict&lt;br /&gt;
&lt;br /&gt;
Testing:&lt;br /&gt;
 optirun -vv glxgears&lt;br /&gt;
 optirun -vv clinfo&lt;br /&gt;
 optirun -b none ./hashcat64.bin -I&lt;br /&gt;
 optirun --no-xorg ./hashcat64.bin -I&lt;br /&gt;
&lt;br /&gt;
As bridge, primus or virtualgl can be used. Primus is available in the Debian repos while VirtualGL is [https://sourceforge.net/projects/virtualgl/?source=typ_redirect here]. Using primus currently.&lt;br /&gt;
&lt;br /&gt;
CUDA toolkit:&lt;br /&gt;
 apt-get install nvidia-cuda-toolkit&lt;br /&gt;
It removed nvidia-libopencl1 but hashcat is still running fine...&lt;br /&gt;
&lt;br /&gt;
GPU load:&lt;br /&gt;
 optirun --no-xorg nvidia-smi&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
Nothing wrong with the touchpad but its default config is a bit painful especially because it&#039;s large and my right palm touches it often, even with the option to diable it when typing and because it&#039;s &amp;quot;soft&amp;quot; buttons.&lt;br /&gt;
&amp;lt;br&amp;gt;I disabled the button area to limit somehow the problem but still you&#039;ve to get used to first touch and hold before pressing a button to do a drag and drop and not the opposite.&lt;br /&gt;
 synclient AreaBottomEdge=4026&lt;br /&gt;
To add a middle button:&lt;br /&gt;
 synclient RightButtonAreaLeft=3914&lt;br /&gt;
 synclient RightButtonAreaRight=0&lt;br /&gt;
 synclient RightButtonAreaTop=4026&lt;br /&gt;
 synclient RightButtonAreaBottom=0&lt;br /&gt;
 synclient MiddleButtonAreaLeft=3100&lt;br /&gt;
 synclient MiddleButtonAreaRight=3873&lt;br /&gt;
 synclient MiddleButtonAreaTop=4026&lt;br /&gt;
 synclient MiddleButtonAreaBottom=0&lt;br /&gt;
And because I love it:&lt;br /&gt;
 synclient CircularScrolling=1&lt;br /&gt;
Some doc [https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Buttonless_touchpads_.28aka_ClickPads.29 here] and the official one [http://www.x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html here]&lt;br /&gt;
&lt;br /&gt;
If with some kernels you get troubles using Synaptics options, check dmesg, maybe Touchpad is detected by another driver too:&lt;br /&gt;
 DLL06E4:01 06CB:7A13 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-7/i2c-DLL06E4:01/0018:06CB:7A13.0003/input/input14&lt;br /&gt;
 hid-multitouch 0018:06CB:7A13.0003: input,hidraw2: I2C HID v1.00 Mouse [DLL06E4:01 06CB:7A13] on i2c-DLL06E4:01&lt;br /&gt;
If this is so, add /etc/modprobe.d/synaptics.conf with this line, cf Kernel section below:&lt;br /&gt;
 blacklist i2c-designware-platform&lt;br /&gt;
&lt;br /&gt;
On recent kernels, i2c-designware-platform is directly in the kernel, not as module anymore.&lt;br /&gt;
To manage to blacklist it, see https://unix.stackexchange.com/questions/423797/how-do-i-disable-i2c-designware-support-when-its-not-built-as-a-module#446913&lt;br /&gt;
Edit /etc/default/grub and append the following blacklist invocation to the command line, then update-grub.&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;… initcall_blacklist=dw_i2c_init_driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Touchscreen====&lt;br /&gt;
Touchscreen works well but when an external screen is connected, it spans over both screens so e.g. touching the middle of the laptop screen moves the mouse to some middle point of the virtual screen combining both screens.&lt;br /&gt;
&amp;lt;br&amp;gt;To fix it, see https://wiki.archlinux.org/index.php/Calibrating_Touchscreen&lt;br /&gt;
&amp;lt;br&amp;gt;This example is for an external screen mapped to the right of the laptop screen:&lt;br /&gt;
 # c0 = width of laptop screen / total width&lt;br /&gt;
 c0=$(bc -l &amp;lt;&amp;lt;&amp;lt; &amp;quot;scale=2; $(xrandr|grep -A1 eDP1|sed &#039;1d;s/x.*//&#039;)/$(xrandr|grep &#039;^Screen 0&#039;|sed &#039;s/.*current //;s/ x.*//&#039;)&amp;quot;)&lt;br /&gt;
 xinput set-prop &amp;quot;ELAN Touchscreen&amp;quot; --type=float &amp;quot;Coordinate Transformation Matrix&amp;quot; \&lt;br /&gt;
    c0 0  0 \&lt;br /&gt;
    0  1  0 \&lt;br /&gt;
    0  0  1&lt;br /&gt;
&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
Kernel complains about a missing file.&lt;br /&gt;
&amp;lt;br&amp;gt;Apparently we can get it from Windows drivers but I don&#039;t know where to find them, so I took [https://www.dropbox.com/s/8goc4omhnzxij93/BCM-0a5c-6410.hcd?dl=0 this one] and copied it into /lib/firmware/brcm&lt;br /&gt;
&lt;br /&gt;
Then Bluetooth was recognized but I couldn&#039;t pair my WM615 mouse.&lt;br /&gt;
&amp;lt;br&amp;gt;After restarting the Bt adaptor, I could finally pair:&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
  power off&lt;br /&gt;
  power on&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* https://wiki.debian.org/BluetoothUser&lt;br /&gt;
* https://wiki.archlinux.org/index.php/bluetooth&lt;br /&gt;
There is also a possibility to pair directly from bluetoothctl, see https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see [[#Hardware_changes]]&lt;br /&gt;
&lt;br /&gt;
====HiDPI====&lt;br /&gt;
Cinnamon handles it nicely but some applications don&#039;t such as Gimp and you end up with a microscopic tools ribbon.&lt;br /&gt;
&amp;lt;br&amp;gt;See https://wiki.archlinux.org/index.php/HiDPI for some useful tips&lt;br /&gt;
&lt;br /&gt;
Cinnamon / System Settings / Desktop Scaling has the same effect as `gsettings set org.cinnamon.desktop.interface scaling-factor 2`&lt;br /&gt;
&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (1016x572 millimeters)&lt;br /&gt;
   resolution:    96x96 dots per inch&lt;br /&gt;
I&#039;ve no ruler at hand but if it&#039;s 15.6&#039;&#039; in diagonal and pixels are square, this gives 293.4 dpi for screen dimensions of 332x187mm.&lt;br /&gt;
&amp;lt;br&amp;gt;So closest hit with common DPI is 96*3=288dpi&lt;br /&gt;
 xrandr --dpi 288&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (338x190 millimeters)&lt;br /&gt;
   resolution:    289x289 dots per inch&lt;br /&gt;
Let&#039;s document those fictive dimensions for next boots by creating /etc/X11/xorg.conf.d/90-monitor.conf with&lt;br /&gt;
 Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
     Identifier             &amp;quot;&amp;lt;default monitor&amp;gt;&amp;quot;&lt;br /&gt;
     DisplaySize            338 190    # In millimeters&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT5 and GTK+ 3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;To enable better scaling of QT5 and GTK+ 3, add to .bashrc (not to .xsessionrc otherwise Cinnamon taskbar is messed up!):&lt;br /&gt;
 QT_DEVICE_PIXEL_RATIO=3&lt;br /&gt;
 GDK_SCALE=3&lt;br /&gt;
 GDK_DPI_SCALE=0.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. Skype&lt;br /&gt;
 sudo apt-get install qt4-qtconfig&lt;br /&gt;
 qtconfig-qt4&lt;br /&gt;
=&amp;gt; one can change font size&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gimp 2.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. copy /usr/share/gimp/2.0/themes/Default as ~/.gimp-2.8/themes/HiDPI and change a few options:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
--- gtkrc&lt;br /&gt;
+++ gtkrc&lt;br /&gt;
-  GimpToolPalette::tool-icon-size   = button&lt;br /&gt;
+  GimpToolPalette::tool-icon-size   = dialog&lt;br /&gt;
-  GimpEditor::button-icon-size      = menu&lt;br /&gt;
+  GimpEditor::button-icon-size      = button&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wine&#039;&#039;&#039;&lt;br /&gt;
 winecfg&lt;br /&gt;
Change &amp;quot;dpi&amp;quot; in &amp;quot;Graphics&amp;quot; tab&lt;br /&gt;
&#039;&#039;&#039;Virtualbox&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;View/Scale Factor is helpful...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chromium&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Chrome works fine but &#039;&#039;Chromium&#039;&#039; broke at some point, so I&#039;ve to launch it with:&lt;br /&gt;
&lt;br /&gt;
 GDK_SCALE=2 exec chromium&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Small console font&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;I don&#039;t care but if that&#039;s an issue for you, from [https://github.com/mpalourdio/xps13/blob/master/HiDPI/tty.md here]:&lt;br /&gt;
 sudo dpkg-reconfigure console-setup&lt;br /&gt;
* Choose UTF-8&lt;br /&gt;
* Choose the default Combined - Latin, ... option (&amp;quot;Latin&amp;quot; includes the English alphabet)&lt;br /&gt;
* Select the terminus font&lt;br /&gt;
* Select 16x32&lt;br /&gt;
* OK&lt;br /&gt;
To apply immediately, open a TTY and run setupcon, else just reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Multiple displays&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Combining HiDPI screen with external non-HiDPI? See https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xpra&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;cf https://xpra.org/trac/ticket/2492&lt;br /&gt;
&lt;br /&gt;
====Sensors====&lt;br /&gt;
 apt-get install lm-sensors&lt;br /&gt;
 sensors-detect&lt;br /&gt;
Sensors-detect found coretemp which is now loaded via /etc/modules:&lt;br /&gt;
 coretemp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====External microphone====&lt;br /&gt;
The sole jack is a TRRS, combining output and mic.&lt;br /&gt;
&amp;lt;br&amp;gt;Soundcard is a Realtek ALC3266&lt;br /&gt;
  grep -r Realtek /proc/asound/card*&lt;br /&gt;
  /proc/asound/card0/codec#0:Codec: Realtek ALC3266&lt;br /&gt;
&amp;lt;br&amp;gt;With Debian+Cinnamon, the system detects the mic, we can see it in the sound properties and select it, but still the internal mic is used.&lt;br /&gt;
&amp;lt;br&amp;gt;When using pavucontrol, selecting the &amp;quot;headset microphone&amp;quot; works fine (it still needs some level boosting).&lt;br /&gt;
&lt;br /&gt;
====DA200====&lt;br /&gt;
[http://accessories.euro.dell.com/sna/products/Station_daccueil/productdetail.aspx?c=fr&amp;amp;l=fr&amp;amp;s=dhs&amp;amp;cs=frdhs1&amp;amp;sku=470-ABRY DA200] used to be recognized only if it was plugged at boot.&lt;br /&gt;
&amp;lt;br&amp;gt;With kernel 4.6 the device is properly detected dynamically.&lt;br /&gt;
&amp;lt;br&amp;gt;The adapter is actually using DisplayPort. &lt;br /&gt;
&amp;lt;br&amp;gt;VGA output works.&lt;br /&gt;
&lt;br /&gt;
HDMI output is limited to some modes (max 1920x1080, cf [http://www.dell.com/support/article/us/en/19/SLN303466 Dell support]) and by default xrandr will try an unsupported mode.&lt;br /&gt;
&amp;lt;br&amp;gt;Even &amp;quot;xrandr --output DP-1 --mode 1920x1080&amp;quot; fails by default.&lt;br /&gt;
&lt;br /&gt;
Some supported modes:  800x600, 1024x768, 1280x720, 1920x1080i&lt;br /&gt;
&amp;lt;br&amp;gt;1920x1080i is interlaced and awful to look at.&lt;br /&gt;
&amp;lt;br&amp;gt;Reducing the rate allows a non-interlaced 1920x1080 mode, you can test it with:&lt;br /&gt;
 xrandr --output DP-1 --mode 1920x1080 -r 30&lt;br /&gt;
If this works for you, you can create a new mode, using cvt to find the proper parameters:&lt;br /&gt;
 cvt 1920 1080 30&lt;br /&gt;
 # 1920x1080 29.95 Hz (CVT) hsync: 33.01 kHz; pclk: 79.75 MHz&lt;br /&gt;
 Modeline &amp;quot;1920x1080_30.00&amp;quot;   79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
Creating and adding the new mode:&lt;br /&gt;
 xrandr --newmode &amp;quot;1920x1080_30.00&amp;quot; 79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
 xrandr --addmode DP-1  &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
Now you can choose this new mode:&lt;br /&gt;
  xrandr --output DP-1 --mode &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
&lt;br /&gt;
When plugged the following hardware gets detected:&lt;br /&gt;
&lt;br /&gt;
lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp..     &amp;lt;= Ethernet&lt;br /&gt;
Bus 004 Device 002: ID 05e3:0617 Genesys Logic, Inc..&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 003 Device 003: ID 0835:2a01 Action Star Enterprise Co., Ltd. &amp;lt;= Billboard&lt;br /&gt;
Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;The USB Billboard Device Class definition describes the methods used to communicate the Alternate Modes supported by a device container to a host system. More details on Billboard Devices are available in the USB Billboard Device Class specification at the following link: http://www.usb.org/developers/docs/devclass_docs/.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
lspci:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
06:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:01.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:02.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
0a:00.0 USB controller: Intel Corporation Device 15b5 (prog-if 30 [XHCI])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lsmod:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
r8152                  49152  0&lt;br /&gt;
cdc_ether              16384  0&lt;br /&gt;
usbnet                 40960  1 cdc_ether&lt;br /&gt;
mii                    16384  2 r8152,usbnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Solved issues===&lt;br /&gt;
====i915 and blank screen====&lt;br /&gt;
There were numerous issues with the video card. Now with latest kernels (&amp;gt;=4.8) most issues are gone, still some occasional blank screen or freeze when plugging an external HDMI.&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
WM615 mouse used to act erratically, the cursor stopping now and then. Now with latest kernels and an Intel Wi-Fi+BT card it&#039;s fine.&lt;br /&gt;
====Wi-Fi====&lt;br /&gt;
Wi-Fi tends to disassociate under heavy load, switching to other SSIDs or frequencies (5Ghz&amp;lt;&amp;gt;2.4GHz) and coming back seems to help.&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see #Hardware_changes&lt;br /&gt;
&lt;br /&gt;
===Issues===&lt;br /&gt;
====rfkill button====&lt;br /&gt;
Rfkill button of the keyboard (Fn+PrtScr) doesn&#039;t seem to work, no big deal.&lt;br /&gt;
&lt;br /&gt;
==Kernels==&lt;br /&gt;
initramfs complains about lvmetad and I&#039;m not sure it&#039;s that useful on SSD, so just disabling it:&lt;br /&gt;
&amp;lt;br&amp;gt;Edit /etc/lvm/lvm.conf&lt;br /&gt;
 use_lvmetad=0&lt;br /&gt;
Then stop it&lt;br /&gt;
 systemctl stop lvm2-lvmetad&lt;br /&gt;
===Debian===&lt;br /&gt;
Debian kernel 4.8 works quite well&lt;br /&gt;
===Compilation notes===&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;, to compile &amp;gt;=4.4, one needs at least initramfs-tools v0.122 to get the nvme.ko properly loaded and therefore the SSD properly seen.&lt;br /&gt;
&lt;br /&gt;
To compile a vanilla kernel, cf http://www.cyberciti.biz/faq/debian-ubuntu-building-installing-a-custom-linux-kernel/&lt;br /&gt;
 sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc&lt;br /&gt;
 sudo apt-get install kernel-package&lt;br /&gt;
 wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz&lt;br /&gt;
 tar xf linux-4.4.tar.xz&lt;br /&gt;
 cd linux-4.4&lt;br /&gt;
 cp /boot/config-$(uname -r) .config&lt;br /&gt;
 make menuconfig&lt;br /&gt;
 make-kpkg clean&lt;br /&gt;
 make-kpkg --rootcmd fakeroot --initrd --append_to_version=9-doegox kernel_image kernel_headers -j 7&lt;br /&gt;
&lt;br /&gt;
==Hardware changes==&lt;br /&gt;
Replacing Broadcom Wi-Fi+BT by an [https://wikidevi.com/wiki/Intel Intel one]:&lt;br /&gt;
* Intel 7265 Dual Band Wireless-AC 7265NGW Card 802.11ac 867Mbps WIFI BT4.0 UK&lt;br /&gt;
** http://www.befr.ebay.be/itm/262049756966?_trksid=p2060353.m2749.l2649&amp;amp;ssPageName=STRK%3AMEBIDX%3AIT&lt;br /&gt;
** https://downloadcenter.intel.com/download/17045&lt;br /&gt;
** This requires installing package firmware-iwlwifi&lt;br /&gt;
** Seems to have less Wi-Fi issues, but still the same BT problems pairing the Dell mouse&lt;br /&gt;
&lt;br /&gt;
 iwlwifi 0000:02:00.0: firmware: direct-loading firmware iwlwifi-7265-17.ucode&lt;br /&gt;
 iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 7265, REV=0x184&lt;br /&gt;
&lt;br /&gt;
Alternatives to DA200:&lt;br /&gt;
* HDMI Male To VGA Female Converter&lt;br /&gt;
** http://www.aliexpress.com/item/1pc-HDMI-Male-To-VGA-Female-Converter-Box-Adapter-With-Audio-Cable-For-PC-HDTVHot-New/32448171552.html&lt;br /&gt;
* USB 3.0 10/100/1000Mbps Gigabit Ethernet RJ45&lt;br /&gt;
** http://www.aliexpress.com/item/Hot-selling-New-USB-3-0-10-100-1000Mbps-Gigabit-Ethernet-RJ45-External-Network-Card-LAN/32546613204.html&lt;br /&gt;
* 4-Port Ultra-Slim USB 3.0 Hub&lt;br /&gt;
** https://www.anker.com/products/A7516011&lt;br /&gt;
** http://www.amazon.de/Anker-Datenhub-Ultrabooks-weiteren-kompatiblen/dp/B00Y211AFM/&lt;br /&gt;
&lt;br /&gt;
==Misc hardware==&lt;br /&gt;
Smartcard reader&lt;br /&gt;
* ACS ACR38U PocketMate Smart Card Reader&lt;br /&gt;
** http://www.acs.com.hk/en/products/160/acr38u-pocketmate-smart-card-reader/&lt;br /&gt;
** http://www.befr.ebay.be/itm/EU-SHIPPING-Smart-Card-USB-ACS-ACR38U-National-ID-Tachograph-Reader-Writer-/121899037557&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10531</id>
		<title>Laptop Dell XPS 15</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10531"/>
		<updated>2021-08-20T20:51:21Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Bios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Notes about installing a Debian Stretch on a Dell XPS 15&lt;br /&gt;
==Hardware==&lt;br /&gt;
Dell XPS 15 model 9550 (variant with touchscreen &amp;amp; PCIe m.2 ssd)&lt;br /&gt;
&lt;br /&gt;
From the [http://www.dell.com/support/home/fr/fr/frdhs1/product-support/servicetag/DHVNH72/configuration configuration] list:&lt;br /&gt;
* 6th Generation Intel(R) Core (TM) i7-6700HQ Quad Core (6M Cache, up to 3.5 GHz)&lt;br /&gt;
* 16Go (2x8Go) DDR4 2133MHz&lt;br /&gt;
* 15.6&amp;quot; 4K Ultra HD (3840 x 2160) InfinityEdge touch, Sliver&lt;br /&gt;
* 1To PCIe Solid State&lt;br /&gt;
* DW1830 3x3 802.11ac 2.4/5GHz + Bluetooth 4.1&lt;br /&gt;
* Dell 84 WHr 6-Cell Lithium-Ion Battery&lt;br /&gt;
* Internal US/International Qwerty Backlit Keyboard&lt;br /&gt;
From the drivers list:&lt;br /&gt;
* Realtek High Definition Audio ALC3266&lt;br /&gt;
* Realtek RTS5242 PCIe Gen2 CardReader&lt;br /&gt;
* Realtek USB GBE Ethernet Controller&lt;br /&gt;
* ST Microlectronics LNG3DMTR Motion Sensor&lt;br /&gt;
* Intel HD Graphics 530/P530&lt;br /&gt;
* nVIDIA Geforce GTX 960M Graphics&lt;br /&gt;
From dmesg (incomplete):&lt;br /&gt;
* BCM20703A1 Bluetooth 4.1 (firmware brcm/BCM-0a5c-6410.hcd)&lt;br /&gt;
From lspci -nn:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00:00.0 Host bridge [0600]: Intel Corporation Sky Lake Host Bridge/DRAM Registers [8086:1910] (rev 07)&lt;br /&gt;
00:01.0 PCI bridge [0604]: Intel Corporation Sky Lake PCIe Controller (x16) [8086:1901] (rev 07)&lt;br /&gt;
00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:191b] (rev 06)&lt;br /&gt;
00:04.0 Signal processing controller [1180]: Intel Corporation Device [8086:1903] (rev 07)&lt;br /&gt;
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f] (rev 31)&lt;br /&gt;
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131] (rev 31)&lt;br /&gt;
00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #0 [8086:a160] (rev 31)&lt;br /&gt;
00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #1 [8086:a161] (rev 31)&lt;br /&gt;
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-H CSME HECI #1 [8086:a13a] (rev 31)&lt;br /&gt;
00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-H SATA Controller [AHCI mode] [8086:a103] (rev 31)&lt;br /&gt;
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #1 [8086:a110] (rev f1)&lt;br /&gt;
00:1c.1 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #2 [8086:a111] (rev f1)&lt;br /&gt;
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #9 [8086:a118] (rev f1)&lt;br /&gt;
00:1d.4 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #13 [8086:a11c] (rev f1)&lt;br /&gt;
00:1d.6 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #15 [8086:a11e] (rev f1)&lt;br /&gt;
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC Controller [8086:a14e] (rev 31)&lt;br /&gt;
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H PMC [8086:a121] (rev 31)&lt;br /&gt;
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD Audio [8086:a170] (rev 31)&lt;br /&gt;
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus [8086:a123] (rev 31)&lt;br /&gt;
01:00.0 3D controller [0302]: NVIDIA Corporation GM107M [GeForce GTX 960M] [10de:139b] (rev ff)&lt;br /&gt;
02:00.0 Network controller [0280]: Broadcom Corporation BCM43602 802.11ac Wireless LAN SoC [14e4:43ba] (rev 01)&lt;br /&gt;
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device [10ec:525a] (rev 01)&lt;br /&gt;
04:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd Device [144d:a802] (rev 01)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 001 Device 003: ID 04f3:21d5 Elan Microelectronics Corp.            &amp;lt;= touchscreen&lt;br /&gt;
Bus 001 Device 002: ID 0a5c:6410 Broadcom Corp.                         &amp;lt;= bluetooth&lt;br /&gt;
Bus 001 Device 004: ID 0c45:6713 Microdia                               &amp;lt;= webcam&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From lscpu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Architecture:          x86_64&lt;br /&gt;
CPU op-mode(s):        32-bit, 64-bit&lt;br /&gt;
Byte Order:            Little Endian&lt;br /&gt;
CPU(s):                8&lt;br /&gt;
On-line CPU(s) list:   0-7&lt;br /&gt;
Thread(s) per core:    2&lt;br /&gt;
Core(s) per socket:    4&lt;br /&gt;
Socket(s):             1&lt;br /&gt;
NUMA node(s):          1&lt;br /&gt;
Vendor ID:             GenuineIntel&lt;br /&gt;
CPU family:            6&lt;br /&gt;
Model:                 94&lt;br /&gt;
Model name:            Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz&lt;br /&gt;
Stepping:              3&lt;br /&gt;
CPU MHz:               2847.812&lt;br /&gt;
CPU max MHz:           3500.0000&lt;br /&gt;
CPU min MHz:           800.0000&lt;br /&gt;
BogoMIPS:              5183.88&lt;br /&gt;
Virtualization:        VT-x&lt;br /&gt;
L1d cache:             32K&lt;br /&gt;
L1i cache:             32K&lt;br /&gt;
L2 cache:              256K&lt;br /&gt;
L3 cache:              6144K&lt;br /&gt;
NUMA node0 CPU(s):     0-7&lt;br /&gt;
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush &lt;br /&gt;
dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts &lt;br /&gt;
rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 &lt;br /&gt;
ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx &lt;br /&gt;
f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_notify hwp_act_window hwp_epp &lt;br /&gt;
intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid &lt;br /&gt;
rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dell Wireless 1830 = BCM43602 + BCM20703A1 (DW1830 Bluetooth 4.1 LE)&lt;br /&gt;
&lt;br /&gt;
BCM43602	PCI ID: 14e4:43ba&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# smartctl -d scsi -i /dev/nvme0n1&lt;br /&gt;
smartctl 6.4 2015-06-04 r4109 [x86_64-linux-4.3.0-1-amd64] (local build)&lt;br /&gt;
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org&lt;br /&gt;
&lt;br /&gt;
=== START OF INFORMATION SECTION ===&lt;br /&gt;
Vendor:               NVMe&lt;br /&gt;
Product:              PM951 NVMe SAMSU&lt;br /&gt;
Revision:             7D0Q&lt;br /&gt;
Compliance:           SPC-4&lt;br /&gt;
User Capacity:        1,024,209,543,168 bytes [1.02 TB]&lt;br /&gt;
Logical block size:   512 bytes&lt;br /&gt;
Rotation Rate:        Solid State Device&lt;br /&gt;
Logical Unit id:      0x0025384cf1b0fd29&lt;br /&gt;
Serial number:        S2FZNXAGC03824&lt;br /&gt;
Device type:          disk&lt;br /&gt;
Local Time is:        Sun Feb 14 22:02:03 2016 CET&lt;br /&gt;
SMART support is:     Unavailable - device lacks SMART capability.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* http://topics-cdn.dell.com/pdf/xps-15-9550-laptop_Service%20Manual_en-us.pdf&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dell_XPS_15&lt;br /&gt;
* https://bbs.archlinux.org/viewtopic.php?id=204739&lt;br /&gt;
* http://ubuntuforums.org/showthread.php?t=2301071&lt;br /&gt;
* http://forthescience.org/blog/2015/03/20/installing_ubuntu_14_04_on_the_new_dell_xps_13/&lt;br /&gt;
* https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013&lt;br /&gt;
* http://bartongeorge.net/2015/02/23/update-2-dell-xps-13-laptop-developer-edition-sputnik-gen-4/&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
I first tried to keep a dual-boot just in case, but once we disable Raid and put SATA in AHCI mode, Windows can&#039;t boot anymore. (later I read it could be possible to fix it by rebooting several times Windows till safe mode is kicked in, but it was too late for me.)&lt;br /&gt;
&lt;br /&gt;
Just in case again, one can boot Windows and create a USB recovery.&lt;br /&gt;
==Bios==&lt;br /&gt;
* &#039;&#039;&#039;Secure Boot: disable&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SATA: switch from Raid to AHCI&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Advances Boot Options:/ NOT Enable Legacy Option ROMs&#039;&#039;&#039;&lt;br /&gt;
* Boot: not sure it&#039;s needed but I disabled Windows boot manager entry and kept the hdd UEFI entry: UEFI: PM951 NVMe SAMSUNG 1024GB, Partition 1&lt;br /&gt;
** See below (first boot) how to create a new entry&lt;br /&gt;
* POST/Fastboot/Auto&lt;br /&gt;
* auto os recovery threshold off&lt;br /&gt;
* Fn Lock Options&lt;br /&gt;
** NOT Fn Lock&lt;br /&gt;
** Lock Mode Enable/Secondary&lt;br /&gt;
&lt;br /&gt;
To update the BIOS:&lt;br /&gt;
* put it on a USB stick&lt;br /&gt;
* reboot&lt;br /&gt;
* select BIOS flash update on the boot screen (F12).&lt;br /&gt;
No need to put it on a bootable DOS, just give the exe to the BIOS update built-in util.&lt;br /&gt;
&amp;lt;br&amp;gt;You can even drop the update on /boot/efi as it&#039;s also a FAT partition, no need for a USB memory stick.&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
* 1.2.0 aka A6 [https://downloads.dell.com/FOLDER03659467M/1/XPS_9550_1.2.0.exe XPS_9550_1.2.0.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=KTR76 fixes]&lt;br /&gt;
* 1.2.10 aka A10 [https://downloads.dell.com/FOLDER03800340M/1/XPS_9550_1.2.10.exe XPS_9550_1.2.10.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=96T2K fixes]&lt;br /&gt;
* 1.2.14 aka A13 [https://downloads.dell.com/FOLDER03906323M/1/XPS_9550_1.2.14.exe XPS_9550_1.2.14.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=VNMDK fixes]&lt;br /&gt;
* 1.2.16 [https://downloads.dell.com/FOLDER04030973M/1/XPS_9550_1.2.16.exe XPS_9550_1.2.16.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=J8GY6 fixes]&lt;br /&gt;
* 1.2.18 aka A16 [https://downloads.dell.com/FOLDER04078627M/1/XPS_9550_1.2.18.exe XPS_9550_1.2.18.exe] [http://www.dell.com/support/home/us/en/4/Drivers/DriversDetails?driverId=KD0C7 fixes]&lt;br /&gt;
* 1.2.21 [https://downloads.dell.com/FOLDER04190863M/1/XPS_9550_1.2.21.exe XPS_9550_1.2.21.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=6RV34 fixes]&lt;br /&gt;
* 1.2.25 [https://downloads.dell.com/FOLDER04319442M/1/XPS_9550_1.2.25.exe XPS_9550_1.2.25.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=3W30W fixes]&lt;br /&gt;
* 1.2.29 [https://downloads.dell.com/FOLDER04449988M/1/XPS_9550_1.2.29.exe XPS_9550_1.2.29.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=F7M6G fixes]&lt;br /&gt;
* 1.3.0 [https://downloads.dell.com/FOLDER04481870M/1/XPS_9550_1.3.0.exe XPS_9550_1.3.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=NXVMP fixes]&lt;br /&gt;
* 1.4.0 [https://downloads.dell.com/FOLDER04499656M/1/XPS_9550_1.4.0.exe XPS_9550_1.4.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=DR9N6 fixes]&lt;br /&gt;
* 1.5.1 [https://downloads.dell.com/FOLDER04604618M/1/XPS_9550_1.5.1.exe XPS_9550_1.5.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=TWKFC fixes]&lt;br /&gt;
* 1.6.1 [https://downloads.dell.com/FOLDER04717493M/1/XPS_9550_1.6.1.exe XPS_9550_1.6.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=PFJ08 fixes]&lt;br /&gt;
* 1.7.0 [https://downloads.dell.com/FOLDER04839266M/1/XPS_9550_1.7.0.exe XPS_9550_1.7.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=RYY62 fixes]&lt;br /&gt;
* 1.8.0 [https://downloads.dell.com/FOLDER05099834M/1/XPS_9550_1.8.0.exe XPS_9550_1.8.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=4GDY8 fixes]&lt;br /&gt;
* 1.9.0 [https://downloads.dell.com/FOLDER05256907M/1/XPS_9550_1.9.0.exe XPS_9550_1.9.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=xv1gp fixes]&lt;br /&gt;
* 1.10.0 [https://downloads.dell.com/FOLDER05476993M/1/XPS_9550_1.10.0.exe XPS_9550_1.10.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=3N7TY fixes]&lt;br /&gt;
* 1.11.2 [https://downloads.dell.com/FOLDER05770328M/1/XPS_9550_1.11.2.exe XPS_9550_1.11.2.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=gtm85 fixes]&lt;br /&gt;
* 1.12.0 [https://downloads.dell.com/FOLDER05865451M/1/XPS_9550_1.12.0.exe XPS_9550_1.12.0.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=7HTW2 fixes]&lt;br /&gt;
* 1.13.1 [https://dl.dell.com/FOLDER06021536M/1/XPS_9550_1.13.1.exe XPS_9550_1.13.1.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=3hr07 fixes]&lt;br /&gt;
&lt;br /&gt;
Attention: with versions 1.2.10 through 1.2.16 and older Linux kernels, there is a serious bug that let the screen black after suspend/wake up. The workaround is to set the lightness to the maximum but it breaks further lightness tuning.&lt;br /&gt;
&lt;br /&gt;
Linux kernels 4.8 and below tend to work best with A6 BIOS (1.2.0), although there is a workaround that allows it to work with later versions.  This workaround uses the intel_reg utility to reset the &amp;quot;pwm_granuality&amp;quot; setting of the onboard graphics.  Solution discussed here: [http://en.community.dell.com/techcenter/os-applications/f/4613/t/19985320].  This issue is reportedly fixed in Linux 4.9, and also in recent Ubuntu 16.10 kernel updates.  See the patch here [https://patchwork.freedesktop.org/patch/109407/].&lt;br /&gt;
&lt;br /&gt;
Even with the intel_reg workaround above, the screen brightness cannot be set to the lowest level without turning the screen off.  This is fixed in 1.2.18.&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
I kept UEFI so we need a Debian netinstall because liveCD doesn&#039;t have UEFI support yet.&lt;br /&gt;
&amp;lt;br&amp;gt;But Wi-Fi requires a proprietary firmware:&lt;br /&gt;
 https://github.com/OpenELEC/wlan-firmware/blob/master/firmware/brcm/brcmfmac43602-pcie.bin&lt;br /&gt;
so the easiest is to take a Debian netinstall with proprietary firmwares included.&lt;br /&gt;
&amp;lt;br&amp;gt;At time of writing Stretch is testing and last release is alpha5:&lt;br /&gt;
 http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/stretch_di_alpha5/amd64/iso-cd/&lt;br /&gt;
dd the image on a USB stick and boot it.&lt;br /&gt;
&amp;lt;br&amp;gt;It will also complain for a missing brcmfmac43602-pcie.txt but we can safely ignore it. (well I think so, but Wi-Fi has troubles now and then under heavy load, see below)&lt;br /&gt;
&amp;lt;!-- sysml eml ems --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I chose a guided partitionning of the entire disk, with encrypted LVM containing /, /home and swap. But proposed / was a bit too small IMHO (10G) so I deleted and recreated / (50G) and /home.&lt;br /&gt;
&amp;lt;br&amp;gt;Initially I tried to add the &amp;quot;discard&amp;quot; option for the partitions which should help on SSD but the kernel reported that &amp;quot;discard&amp;quot; wasn&#039;t supported by the disk.&lt;br /&gt;
&lt;br /&gt;
If you want to backup partition table and partitions before destroying everything, it&#039;s the right time!&lt;br /&gt;
 parted /dev/nvme0n1&lt;br /&gt;
 print&lt;br /&gt;
 sgdisk --backup=/some/safe/location/nvme0n1.gpt /dev/nvme0n1&lt;br /&gt;
I installed Cinnamon. I don&#039;t know for the others but Cinnamon has a nice auto setting to double features on HiDPI screens.&lt;br /&gt;
&lt;br /&gt;
===Gnome===&lt;br /&gt;
Update: now using Gnome3.&lt;br /&gt;
Needs to replace lightdm by gdm3 to get newer lock screen (gnome-screensaver is deprecated)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg-reconfigure gdm3&lt;br /&gt;
(choose gdm3)&lt;br /&gt;
# delay before blanking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.session idle-delay 300&lt;br /&gt;
# delay after blanking before locking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.screensaver lock-delay 10&lt;br /&gt;
(reboot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sometimes after a crash, gnome extensions (https://extensions.gnome.org/local/) are disabled. To reenable them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dconf write /org/gnome/shell/disable-user-extensions false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==First boot==&lt;br /&gt;
Once installed, the Debian didn&#039;t boot up.&lt;br /&gt;
&amp;lt;br&amp;gt;I tried many things but at the end the only thing that worked was to copy Debian EFI to the default one:&lt;br /&gt;
&lt;br /&gt;
Starting the netinstall again, in rescue mode, get a chroot shell, then&lt;br /&gt;
 mount /dev/nvme0n1p1 /boot/efi&lt;br /&gt;
 cd /boot/efi/EFI&lt;br /&gt;
 mkdir boot&lt;br /&gt;
 cp debian/grubx64.efi boot/bootx64.efi&lt;br /&gt;
I also deleted the Windows files in EFI.&lt;br /&gt;
&lt;br /&gt;
Resource:&lt;br /&gt;
* https://wiki.debian.org/GrubEFIReinstall&lt;br /&gt;
* https://wiki.archlinux.org/index.php/GRUB#Create_an_ESP&lt;br /&gt;
* https://help.ubuntu.com/community/UEFI&lt;br /&gt;
* https://wiki.debian.org/UEFI&lt;br /&gt;
* https://isalo.org/wiki.debian-fr/Debian_%26_UEFI    &lt;br /&gt;
&lt;br /&gt;
FTR things that failed included:&lt;br /&gt;
* [http://www.rodsbooks.com/refind/getting.html Refind] couldn&#039;t boot at all. Strange as the netinstall could boot...&lt;br /&gt;
* tweaks with efibootmgr, update-grub etc&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UPDATE&#039;&#039;&#039;: It might be possible to fix the issue from the BIOS itself, see http://www.dell.com/support/article/us/en/04/SLN297060/en&lt;br /&gt;
* Boot Sequence / Add Boot Option&lt;br /&gt;
** Boot Option Name : Debian&lt;br /&gt;
** File System List : PciRoot(0x0)/Pic(0x1D,0x0)/Pci(0x0,0x0)/?/HD(1,GPT,&amp;lt;UUID&amp;gt;)&lt;br /&gt;
** File Name : FS0 - EFI - debian - grubx64.efi&lt;br /&gt;
* Advances Boot Options / NOT Enable Legacy Option ROMs&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
===Working===&lt;br /&gt;
* Screen&lt;br /&gt;
* Touchscreen&lt;br /&gt;
* Touchpad&lt;br /&gt;
* Keyboard backlight and media buttons (volume, luminosity, backlight)&lt;br /&gt;
* Wi-Fi (with the proprietary driver, cf installation above)&lt;br /&gt;
* HDMI&lt;br /&gt;
* SD-Card reader&lt;br /&gt;
* Speakers, mic&lt;br /&gt;
* Webcam&lt;br /&gt;
&lt;br /&gt;
===Working after manual steps===&lt;br /&gt;
====i915====&lt;br /&gt;
Screen was working but dmesg was complaining:&lt;br /&gt;
 i915 0000:00:02.0: firmware: failed to load i915/skl_dmc_ver1.bin&lt;br /&gt;
So I installed that firmware, not sure what it&#039;s changed&lt;br /&gt;
 sudo apt-get install firmware-misc-nonfree&lt;br /&gt;
====Optimus====&lt;br /&gt;
Resources:&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Optimus&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Bumblebee&lt;br /&gt;
 apt-get install bumblebee-nvidia nvidia-libopencl1 nvidia-opencl-icd nvidia-opencl-icd:i386 libcuda1-i386 nvidia-smi clinfo&lt;br /&gt;
 reboot&lt;br /&gt;
Example:&lt;br /&gt;
 apt-get install nvidia-settings&lt;br /&gt;
 optirun -b none nvidia-settings -c :8&lt;br /&gt;
This also works for CUDA/OpenCL:&lt;br /&gt;
 optirun -b none ./hashcat64.bin -m 500 example500.hash example.dict&lt;br /&gt;
&lt;br /&gt;
Testing:&lt;br /&gt;
 optirun -vv glxgears&lt;br /&gt;
 optirun -vv clinfo&lt;br /&gt;
 optirun -b none ./hashcat64.bin -I&lt;br /&gt;
 optirun --no-xorg ./hashcat64.bin -I&lt;br /&gt;
&lt;br /&gt;
As bridge, primus or virtualgl can be used. Primus is available in the Debian repos while VirtualGL is [https://sourceforge.net/projects/virtualgl/?source=typ_redirect here]. Using primus currently.&lt;br /&gt;
&lt;br /&gt;
CUDA toolkit:&lt;br /&gt;
 apt-get install nvidia-cuda-toolkit&lt;br /&gt;
It removed nvidia-libopencl1 but hashcat is still running fine...&lt;br /&gt;
&lt;br /&gt;
GPU load:&lt;br /&gt;
 optirun --no-xorg nvidia-smi&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
Nothing wrong with the touchpad but its default config is a bit painful especially because it&#039;s large and my right palm touches it often, even with the option to diable it when typing and because it&#039;s &amp;quot;soft&amp;quot; buttons.&lt;br /&gt;
&amp;lt;br&amp;gt;I disabled the button area to limit somehow the problem but still you&#039;ve to get used to first touch and hold before pressing a button to do a drag and drop and not the opposite.&lt;br /&gt;
 synclient AreaBottomEdge=4026&lt;br /&gt;
To add a middle button:&lt;br /&gt;
 synclient RightButtonAreaLeft=3914&lt;br /&gt;
 synclient RightButtonAreaRight=0&lt;br /&gt;
 synclient RightButtonAreaTop=4026&lt;br /&gt;
 synclient RightButtonAreaBottom=0&lt;br /&gt;
 synclient MiddleButtonAreaLeft=3100&lt;br /&gt;
 synclient MiddleButtonAreaRight=3873&lt;br /&gt;
 synclient MiddleButtonAreaTop=4026&lt;br /&gt;
 synclient MiddleButtonAreaBottom=0&lt;br /&gt;
And because I love it:&lt;br /&gt;
 synclient CircularScrolling=1&lt;br /&gt;
Some doc [https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Buttonless_touchpads_.28aka_ClickPads.29 here] and the official one [http://www.x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html here]&lt;br /&gt;
&lt;br /&gt;
If with some kernels you get troubles using Synaptics options, check dmesg, maybe Touchpad is detected by another driver too:&lt;br /&gt;
 DLL06E4:01 06CB:7A13 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-7/i2c-DLL06E4:01/0018:06CB:7A13.0003/input/input14&lt;br /&gt;
 hid-multitouch 0018:06CB:7A13.0003: input,hidraw2: I2C HID v1.00 Mouse [DLL06E4:01 06CB:7A13] on i2c-DLL06E4:01&lt;br /&gt;
If this is so, add /etc/modprobe.d/synaptics.conf with this line, cf Kernel section below:&lt;br /&gt;
 blacklist i2c-designware-platform&lt;br /&gt;
&lt;br /&gt;
On recent kernels, i2c-designware-platform is directly in the kernel, not as module anymore.&lt;br /&gt;
To manage to blacklist it, see https://unix.stackexchange.com/questions/423797/how-do-i-disable-i2c-designware-support-when-its-not-built-as-a-module#446913&lt;br /&gt;
Edit /etc/default/grub and append the following blacklist invocation to the command line, then update-grub.&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;… initcall_blacklist=dw_i2c_init_driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Touchscreen====&lt;br /&gt;
Touchscreen works well but when an external screen is connected, it spans over both screens so e.g. touching the middle of the laptop screen moves the mouse to some middle point of the virtual screen combining both screens.&lt;br /&gt;
&amp;lt;br&amp;gt;To fix it, see https://wiki.archlinux.org/index.php/Calibrating_Touchscreen&lt;br /&gt;
&amp;lt;br&amp;gt;This example is for an external screen mapped to the right of the laptop screen:&lt;br /&gt;
 # c0 = width of laptop screen / total width&lt;br /&gt;
 c0=$(bc -l &amp;lt;&amp;lt;&amp;lt; &amp;quot;scale=2; $(xrandr|grep -A1 eDP1|sed &#039;1d;s/x.*//&#039;)/$(xrandr|grep &#039;^Screen 0&#039;|sed &#039;s/.*current //;s/ x.*//&#039;)&amp;quot;)&lt;br /&gt;
 xinput set-prop &amp;quot;ELAN Touchscreen&amp;quot; --type=float &amp;quot;Coordinate Transformation Matrix&amp;quot; \&lt;br /&gt;
    c0 0  0 \&lt;br /&gt;
    0  1  0 \&lt;br /&gt;
    0  0  1&lt;br /&gt;
&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
Kernel complains about a missing file.&lt;br /&gt;
&amp;lt;br&amp;gt;Apparently we can get it from Windows drivers but I don&#039;t know where to find them, so I took [https://www.dropbox.com/s/8goc4omhnzxij93/BCM-0a5c-6410.hcd?dl=0 this one] and copied it into /lib/firmware/brcm&lt;br /&gt;
&lt;br /&gt;
Then Bluetooth was recognized but I couldn&#039;t pair my WM615 mouse.&lt;br /&gt;
&amp;lt;br&amp;gt;After restarting the Bt adaptor, I could finally pair:&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
  power off&lt;br /&gt;
  power on&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* https://wiki.debian.org/BluetoothUser&lt;br /&gt;
* https://wiki.archlinux.org/index.php/bluetooth&lt;br /&gt;
There is also a possibility to pair directly from bluetoothctl, see https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see [[#Hardware_changes]]&lt;br /&gt;
&lt;br /&gt;
====HiDPI====&lt;br /&gt;
Cinnamon handles it nicely but some applications don&#039;t such as Gimp and you end up with a microscopic tools ribbon.&lt;br /&gt;
&amp;lt;br&amp;gt;See https://wiki.archlinux.org/index.php/HiDPI for some useful tips&lt;br /&gt;
&lt;br /&gt;
Cinnamon / System Settings / Desktop Scaling has the same effect as `gsettings set org.cinnamon.desktop.interface scaling-factor 2`&lt;br /&gt;
&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (1016x572 millimeters)&lt;br /&gt;
   resolution:    96x96 dots per inch&lt;br /&gt;
I&#039;ve no ruler at hand but if it&#039;s 15.6&#039;&#039; in diagonal and pixels are square, this gives 293.4 dpi for screen dimensions of 332x187mm.&lt;br /&gt;
&amp;lt;br&amp;gt;So closest hit with common DPI is 96*3=288dpi&lt;br /&gt;
 xrandr --dpi 288&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (338x190 millimeters)&lt;br /&gt;
   resolution:    289x289 dots per inch&lt;br /&gt;
Let&#039;s document those fictive dimensions for next boots by creating /etc/X11/xorg.conf.d/90-monitor.conf with&lt;br /&gt;
 Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
     Identifier             &amp;quot;&amp;lt;default monitor&amp;gt;&amp;quot;&lt;br /&gt;
     DisplaySize            338 190    # In millimeters&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT5 and GTK+ 3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;To enable better scaling of QT5 and GTK+ 3, add to .bashrc (not to .xsessionrc otherwise Cinnamon taskbar is messed up!):&lt;br /&gt;
 QT_DEVICE_PIXEL_RATIO=3&lt;br /&gt;
 GDK_SCALE=3&lt;br /&gt;
 GDK_DPI_SCALE=0.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. Skype&lt;br /&gt;
 sudo apt-get install qt4-qtconfig&lt;br /&gt;
 qtconfig-qt4&lt;br /&gt;
=&amp;gt; one can change font size&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gimp 2.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. copy /usr/share/gimp/2.0/themes/Default as ~/.gimp-2.8/themes/HiDPI and change a few options:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
--- gtkrc&lt;br /&gt;
+++ gtkrc&lt;br /&gt;
-  GimpToolPalette::tool-icon-size   = button&lt;br /&gt;
+  GimpToolPalette::tool-icon-size   = dialog&lt;br /&gt;
-  GimpEditor::button-icon-size      = menu&lt;br /&gt;
+  GimpEditor::button-icon-size      = button&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wine&#039;&#039;&#039;&lt;br /&gt;
 winecfg&lt;br /&gt;
Change &amp;quot;dpi&amp;quot; in &amp;quot;Graphics&amp;quot; tab&lt;br /&gt;
&#039;&#039;&#039;Virtualbox&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;View/Scale Factor is helpful...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chromium&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Chrome works fine but &#039;&#039;Chromium&#039;&#039; broke at some point, so I&#039;ve to launch it with:&lt;br /&gt;
&lt;br /&gt;
 GDK_SCALE=2 exec chromium&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Small console font&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;I don&#039;t care but if that&#039;s an issue for you, from [https://github.com/mpalourdio/xps13/blob/master/HiDPI/tty.md here]:&lt;br /&gt;
 sudo dpkg-reconfigure console-setup&lt;br /&gt;
* Choose UTF-8&lt;br /&gt;
* Choose the default Combined - Latin, ... option (&amp;quot;Latin&amp;quot; includes the English alphabet)&lt;br /&gt;
* Select the terminus font&lt;br /&gt;
* Select 16x32&lt;br /&gt;
* OK&lt;br /&gt;
To apply immediately, open a TTY and run setupcon, else just reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Multiple displays&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Combining HiDPI screen with external non-HiDPI? See https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xpra&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;cf https://xpra.org/trac/ticket/2492&lt;br /&gt;
&lt;br /&gt;
====Sensors====&lt;br /&gt;
 apt-get install lm-sensors&lt;br /&gt;
 sensors-detect&lt;br /&gt;
Sensors-detect found coretemp which is now loaded via /etc/modules:&lt;br /&gt;
 coretemp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====External microphone====&lt;br /&gt;
The sole jack is a TRRS, combining output and mic.&lt;br /&gt;
&amp;lt;br&amp;gt;Soundcard is a Realtek ALC3266&lt;br /&gt;
  grep -r Realtek /proc/asound/card*&lt;br /&gt;
  /proc/asound/card0/codec#0:Codec: Realtek ALC3266&lt;br /&gt;
&amp;lt;br&amp;gt;With Debian+Cinnamon, the system detects the mic, we can see it in the sound properties and select it, but still the internal mic is used.&lt;br /&gt;
&amp;lt;br&amp;gt;When using pavucontrol, selecting the &amp;quot;headset microphone&amp;quot; works fine (it still needs some level boosting).&lt;br /&gt;
&lt;br /&gt;
====DA200====&lt;br /&gt;
[http://accessories.euro.dell.com/sna/products/Station_daccueil/productdetail.aspx?c=fr&amp;amp;l=fr&amp;amp;s=dhs&amp;amp;cs=frdhs1&amp;amp;sku=470-ABRY DA200] used to be recognized only if it was plugged at boot.&lt;br /&gt;
&amp;lt;br&amp;gt;With kernel 4.6 the device is properly detected dynamically.&lt;br /&gt;
&amp;lt;br&amp;gt;The adapter is actually using DisplayPort. &lt;br /&gt;
&amp;lt;br&amp;gt;VGA output works.&lt;br /&gt;
&lt;br /&gt;
HDMI output is limited to some modes (max 1920x1080, cf [http://www.dell.com/support/article/us/en/19/SLN303466 Dell support]) and by default xrandr will try an unsupported mode.&lt;br /&gt;
&amp;lt;br&amp;gt;Even &amp;quot;xrandr --output DP-1 --mode 1920x1080&amp;quot; fails by default.&lt;br /&gt;
&lt;br /&gt;
Some supported modes:  800x600, 1024x768, 1280x720, 1920x1080i&lt;br /&gt;
&amp;lt;br&amp;gt;1920x1080i is interlaced and awful to look at.&lt;br /&gt;
&amp;lt;br&amp;gt;Reducing the rate allows a non-interlaced 1920x1080 mode, you can test it with:&lt;br /&gt;
 xrandr --output DP-1 --mode 1920x1080 -r 30&lt;br /&gt;
If this works for you, you can create a new mode, using cvt to find the proper parameters:&lt;br /&gt;
 cvt 1920 1080 30&lt;br /&gt;
 # 1920x1080 29.95 Hz (CVT) hsync: 33.01 kHz; pclk: 79.75 MHz&lt;br /&gt;
 Modeline &amp;quot;1920x1080_30.00&amp;quot;   79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
Creating and adding the new mode:&lt;br /&gt;
 xrandr --newmode &amp;quot;1920x1080_30.00&amp;quot; 79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
 xrandr --addmode DP-1  &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
Now you can choose this new mode:&lt;br /&gt;
  xrandr --output DP-1 --mode &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
&lt;br /&gt;
When plugged the following hardware gets detected:&lt;br /&gt;
&lt;br /&gt;
lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp..     &amp;lt;= Ethernet&lt;br /&gt;
Bus 004 Device 002: ID 05e3:0617 Genesys Logic, Inc..&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 003 Device 003: ID 0835:2a01 Action Star Enterprise Co., Ltd. &amp;lt;= Billboard&lt;br /&gt;
Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;The USB Billboard Device Class definition describes the methods used to communicate the Alternate Modes supported by a device container to a host system. More details on Billboard Devices are available in the USB Billboard Device Class specification at the following link: http://www.usb.org/developers/docs/devclass_docs/.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
lspci:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
06:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:01.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:02.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
0a:00.0 USB controller: Intel Corporation Device 15b5 (prog-if 30 [XHCI])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lsmod:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
r8152                  49152  0&lt;br /&gt;
cdc_ether              16384  0&lt;br /&gt;
usbnet                 40960  1 cdc_ether&lt;br /&gt;
mii                    16384  2 r8152,usbnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Solved issues===&lt;br /&gt;
====i915 and blank screen====&lt;br /&gt;
There were numerous issues with the video card. Now with latest kernels (&amp;gt;=4.8) most issues are gone, still some occasional blank screen or freeze when plugging an external HDMI.&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
WM615 mouse used to act erratically, the cursor stopping now and then. Now with latest kernels and an Intel Wi-Fi+BT card it&#039;s fine.&lt;br /&gt;
====Wi-Fi====&lt;br /&gt;
Wi-Fi tends to disassociate under heavy load, switching to other SSIDs or frequencies (5Ghz&amp;lt;&amp;gt;2.4GHz) and coming back seems to help.&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see #Hardware_changes&lt;br /&gt;
&lt;br /&gt;
===Issues===&lt;br /&gt;
====rfkill button====&lt;br /&gt;
Rfkill button of the keyboard (Fn+PrtScr) doesn&#039;t seem to work, no big deal.&lt;br /&gt;
&lt;br /&gt;
==Kernels==&lt;br /&gt;
initramfs complains about lvmetad and I&#039;m not sure it&#039;s that useful on SSD, so just disabling it:&lt;br /&gt;
&amp;lt;br&amp;gt;Edit /etc/lvm/lvm.conf&lt;br /&gt;
 use_lvmetad=0&lt;br /&gt;
Then stop it&lt;br /&gt;
 systemctl stop lvm2-lvmetad&lt;br /&gt;
===Debian===&lt;br /&gt;
Debian kernel 4.8 works quite well&lt;br /&gt;
===Compilation notes===&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;, to compile &amp;gt;=4.4, one needs at least initramfs-tools v0.122 to get the nvme.ko properly loaded and therefore the SSD properly seen.&lt;br /&gt;
&lt;br /&gt;
To compile a vanilla kernel, cf http://www.cyberciti.biz/faq/debian-ubuntu-building-installing-a-custom-linux-kernel/&lt;br /&gt;
 sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc&lt;br /&gt;
 sudo apt-get install kernel-package&lt;br /&gt;
 wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz&lt;br /&gt;
 tar xf linux-4.4.tar.xz&lt;br /&gt;
 cd linux-4.4&lt;br /&gt;
 cp /boot/config-$(uname -r) .config&lt;br /&gt;
 make menuconfig&lt;br /&gt;
 make-kpkg clean&lt;br /&gt;
 make-kpkg --rootcmd fakeroot --initrd --append_to_version=9-doegox kernel_image kernel_headers -j 7&lt;br /&gt;
&lt;br /&gt;
==Hardware changes==&lt;br /&gt;
Replacing Broadcom Wi-Fi+BT by an [https://wikidevi.com/wiki/Intel Intel one]:&lt;br /&gt;
* Intel 7265 Dual Band Wireless-AC 7265NGW Card 802.11ac 867Mbps WIFI BT4.0 UK&lt;br /&gt;
** http://www.befr.ebay.be/itm/262049756966?_trksid=p2060353.m2749.l2649&amp;amp;ssPageName=STRK%3AMEBIDX%3AIT&lt;br /&gt;
** https://downloadcenter.intel.com/download/17045&lt;br /&gt;
** This requires installing package firmware-iwlwifi&lt;br /&gt;
** Seems to have less Wi-Fi issues, but still the same BT problems pairing the Dell mouse&lt;br /&gt;
&lt;br /&gt;
 iwlwifi 0000:02:00.0: firmware: direct-loading firmware iwlwifi-7265-17.ucode&lt;br /&gt;
 iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 7265, REV=0x184&lt;br /&gt;
&lt;br /&gt;
Alternatives to DA200:&lt;br /&gt;
* HDMI Male To VGA Female Converter&lt;br /&gt;
** http://www.aliexpress.com/item/1pc-HDMI-Male-To-VGA-Female-Converter-Box-Adapter-With-Audio-Cable-For-PC-HDTVHot-New/32448171552.html&lt;br /&gt;
* USB 3.0 10/100/1000Mbps Gigabit Ethernet RJ45&lt;br /&gt;
** http://www.aliexpress.com/item/Hot-selling-New-USB-3-0-10-100-1000Mbps-Gigabit-Ethernet-RJ45-External-Network-Card-LAN/32546613204.html&lt;br /&gt;
* 4-Port Ultra-Slim USB 3.0 Hub&lt;br /&gt;
** https://www.anker.com/products/A7516011&lt;br /&gt;
** http://www.amazon.de/Anker-Datenhub-Ultrabooks-weiteren-kompatiblen/dp/B00Y211AFM/&lt;br /&gt;
&lt;br /&gt;
==Misc hardware==&lt;br /&gt;
Smartcard reader&lt;br /&gt;
* ACS ACR38U PocketMate Smart Card Reader&lt;br /&gt;
** http://www.acs.com.hk/en/products/160/acr38u-pocketmate-smart-card-reader/&lt;br /&gt;
** http://www.befr.ebay.be/itm/EU-SHIPPING-Smart-Card-USB-ACS-ACR38U-National-ID-Tachograph-Reader-Writer-/121899037557&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10530</id>
		<title>Laptop Dell XPS 15</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10530"/>
		<updated>2021-08-20T20:46:56Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* First boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Notes about installing a Debian Stretch on a Dell XPS 15&lt;br /&gt;
==Hardware==&lt;br /&gt;
Dell XPS 15 model 9550 (variant with touchscreen &amp;amp; PCIe m.2 ssd)&lt;br /&gt;
&lt;br /&gt;
From the [http://www.dell.com/support/home/fr/fr/frdhs1/product-support/servicetag/DHVNH72/configuration configuration] list:&lt;br /&gt;
* 6th Generation Intel(R) Core (TM) i7-6700HQ Quad Core (6M Cache, up to 3.5 GHz)&lt;br /&gt;
* 16Go (2x8Go) DDR4 2133MHz&lt;br /&gt;
* 15.6&amp;quot; 4K Ultra HD (3840 x 2160) InfinityEdge touch, Sliver&lt;br /&gt;
* 1To PCIe Solid State&lt;br /&gt;
* DW1830 3x3 802.11ac 2.4/5GHz + Bluetooth 4.1&lt;br /&gt;
* Dell 84 WHr 6-Cell Lithium-Ion Battery&lt;br /&gt;
* Internal US/International Qwerty Backlit Keyboard&lt;br /&gt;
From the drivers list:&lt;br /&gt;
* Realtek High Definition Audio ALC3266&lt;br /&gt;
* Realtek RTS5242 PCIe Gen2 CardReader&lt;br /&gt;
* Realtek USB GBE Ethernet Controller&lt;br /&gt;
* ST Microlectronics LNG3DMTR Motion Sensor&lt;br /&gt;
* Intel HD Graphics 530/P530&lt;br /&gt;
* nVIDIA Geforce GTX 960M Graphics&lt;br /&gt;
From dmesg (incomplete):&lt;br /&gt;
* BCM20703A1 Bluetooth 4.1 (firmware brcm/BCM-0a5c-6410.hcd)&lt;br /&gt;
From lspci -nn:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00:00.0 Host bridge [0600]: Intel Corporation Sky Lake Host Bridge/DRAM Registers [8086:1910] (rev 07)&lt;br /&gt;
00:01.0 PCI bridge [0604]: Intel Corporation Sky Lake PCIe Controller (x16) [8086:1901] (rev 07)&lt;br /&gt;
00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:191b] (rev 06)&lt;br /&gt;
00:04.0 Signal processing controller [1180]: Intel Corporation Device [8086:1903] (rev 07)&lt;br /&gt;
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f] (rev 31)&lt;br /&gt;
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131] (rev 31)&lt;br /&gt;
00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #0 [8086:a160] (rev 31)&lt;br /&gt;
00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #1 [8086:a161] (rev 31)&lt;br /&gt;
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-H CSME HECI #1 [8086:a13a] (rev 31)&lt;br /&gt;
00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-H SATA Controller [AHCI mode] [8086:a103] (rev 31)&lt;br /&gt;
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #1 [8086:a110] (rev f1)&lt;br /&gt;
00:1c.1 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #2 [8086:a111] (rev f1)&lt;br /&gt;
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #9 [8086:a118] (rev f1)&lt;br /&gt;
00:1d.4 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #13 [8086:a11c] (rev f1)&lt;br /&gt;
00:1d.6 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #15 [8086:a11e] (rev f1)&lt;br /&gt;
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC Controller [8086:a14e] (rev 31)&lt;br /&gt;
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H PMC [8086:a121] (rev 31)&lt;br /&gt;
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD Audio [8086:a170] (rev 31)&lt;br /&gt;
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus [8086:a123] (rev 31)&lt;br /&gt;
01:00.0 3D controller [0302]: NVIDIA Corporation GM107M [GeForce GTX 960M] [10de:139b] (rev ff)&lt;br /&gt;
02:00.0 Network controller [0280]: Broadcom Corporation BCM43602 802.11ac Wireless LAN SoC [14e4:43ba] (rev 01)&lt;br /&gt;
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device [10ec:525a] (rev 01)&lt;br /&gt;
04:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd Device [144d:a802] (rev 01)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 001 Device 003: ID 04f3:21d5 Elan Microelectronics Corp.            &amp;lt;= touchscreen&lt;br /&gt;
Bus 001 Device 002: ID 0a5c:6410 Broadcom Corp.                         &amp;lt;= bluetooth&lt;br /&gt;
Bus 001 Device 004: ID 0c45:6713 Microdia                               &amp;lt;= webcam&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From lscpu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Architecture:          x86_64&lt;br /&gt;
CPU op-mode(s):        32-bit, 64-bit&lt;br /&gt;
Byte Order:            Little Endian&lt;br /&gt;
CPU(s):                8&lt;br /&gt;
On-line CPU(s) list:   0-7&lt;br /&gt;
Thread(s) per core:    2&lt;br /&gt;
Core(s) per socket:    4&lt;br /&gt;
Socket(s):             1&lt;br /&gt;
NUMA node(s):          1&lt;br /&gt;
Vendor ID:             GenuineIntel&lt;br /&gt;
CPU family:            6&lt;br /&gt;
Model:                 94&lt;br /&gt;
Model name:            Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz&lt;br /&gt;
Stepping:              3&lt;br /&gt;
CPU MHz:               2847.812&lt;br /&gt;
CPU max MHz:           3500.0000&lt;br /&gt;
CPU min MHz:           800.0000&lt;br /&gt;
BogoMIPS:              5183.88&lt;br /&gt;
Virtualization:        VT-x&lt;br /&gt;
L1d cache:             32K&lt;br /&gt;
L1i cache:             32K&lt;br /&gt;
L2 cache:              256K&lt;br /&gt;
L3 cache:              6144K&lt;br /&gt;
NUMA node0 CPU(s):     0-7&lt;br /&gt;
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush &lt;br /&gt;
dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts &lt;br /&gt;
rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 &lt;br /&gt;
ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx &lt;br /&gt;
f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_notify hwp_act_window hwp_epp &lt;br /&gt;
intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid &lt;br /&gt;
rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dell Wireless 1830 = BCM43602 + BCM20703A1 (DW1830 Bluetooth 4.1 LE)&lt;br /&gt;
&lt;br /&gt;
BCM43602	PCI ID: 14e4:43ba&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# smartctl -d scsi -i /dev/nvme0n1&lt;br /&gt;
smartctl 6.4 2015-06-04 r4109 [x86_64-linux-4.3.0-1-amd64] (local build)&lt;br /&gt;
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org&lt;br /&gt;
&lt;br /&gt;
=== START OF INFORMATION SECTION ===&lt;br /&gt;
Vendor:               NVMe&lt;br /&gt;
Product:              PM951 NVMe SAMSU&lt;br /&gt;
Revision:             7D0Q&lt;br /&gt;
Compliance:           SPC-4&lt;br /&gt;
User Capacity:        1,024,209,543,168 bytes [1.02 TB]&lt;br /&gt;
Logical block size:   512 bytes&lt;br /&gt;
Rotation Rate:        Solid State Device&lt;br /&gt;
Logical Unit id:      0x0025384cf1b0fd29&lt;br /&gt;
Serial number:        S2FZNXAGC03824&lt;br /&gt;
Device type:          disk&lt;br /&gt;
Local Time is:        Sun Feb 14 22:02:03 2016 CET&lt;br /&gt;
SMART support is:     Unavailable - device lacks SMART capability.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* http://topics-cdn.dell.com/pdf/xps-15-9550-laptop_Service%20Manual_en-us.pdf&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dell_XPS_15&lt;br /&gt;
* https://bbs.archlinux.org/viewtopic.php?id=204739&lt;br /&gt;
* http://ubuntuforums.org/showthread.php?t=2301071&lt;br /&gt;
* http://forthescience.org/blog/2015/03/20/installing_ubuntu_14_04_on_the_new_dell_xps_13/&lt;br /&gt;
* https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013&lt;br /&gt;
* http://bartongeorge.net/2015/02/23/update-2-dell-xps-13-laptop-developer-edition-sputnik-gen-4/&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
I first tried to keep a dual-boot just in case, but once we disable Raid and put SATA in AHCI mode, Windows can&#039;t boot anymore. (later I read it could be possible to fix it by rebooting several times Windows till safe mode is kicked in, but it was too late for me.)&lt;br /&gt;
&lt;br /&gt;
Just in case again, one can boot Windows and create a USB recovery.&lt;br /&gt;
==Bios==&lt;br /&gt;
* Secure Boot: disable&lt;br /&gt;
* SATA: switch from Raid to AHCI&lt;br /&gt;
* Boot: not sure it&#039;s needed but I disabled Windows boot manager entry and kept the hdd UEFI entry: UEFI: PM951 NVMe SAMSUNG 1024GB, Partition 1&lt;br /&gt;
* POST/Fastboot/Thorough&lt;br /&gt;
* auto os recovery threshold off&lt;br /&gt;
&lt;br /&gt;
To update the BIOS:&lt;br /&gt;
* put it on a USB stick&lt;br /&gt;
* reboot&lt;br /&gt;
* select BIOS flash update on the boot screen (F12).&lt;br /&gt;
No need to put it on a bootable DOS, just give the exe to the BIOS update built-in util.&lt;br /&gt;
&amp;lt;br&amp;gt;You can even drop the update on /boot/efi as it&#039;s also a FAT partition, no need for a USB memory stick.&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
* 1.2.0 aka A6 [https://downloads.dell.com/FOLDER03659467M/1/XPS_9550_1.2.0.exe XPS_9550_1.2.0.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=KTR76 fixes]&lt;br /&gt;
* 1.2.10 aka A10 [https://downloads.dell.com/FOLDER03800340M/1/XPS_9550_1.2.10.exe XPS_9550_1.2.10.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=96T2K fixes]&lt;br /&gt;
* 1.2.14 aka A13 [https://downloads.dell.com/FOLDER03906323M/1/XPS_9550_1.2.14.exe XPS_9550_1.2.14.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=VNMDK fixes]&lt;br /&gt;
* 1.2.16 [https://downloads.dell.com/FOLDER04030973M/1/XPS_9550_1.2.16.exe XPS_9550_1.2.16.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=J8GY6 fixes]&lt;br /&gt;
* 1.2.18 aka A16 [https://downloads.dell.com/FOLDER04078627M/1/XPS_9550_1.2.18.exe XPS_9550_1.2.18.exe] [http://www.dell.com/support/home/us/en/4/Drivers/DriversDetails?driverId=KD0C7 fixes]&lt;br /&gt;
* 1.2.21 [https://downloads.dell.com/FOLDER04190863M/1/XPS_9550_1.2.21.exe XPS_9550_1.2.21.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=6RV34 fixes]&lt;br /&gt;
* 1.2.25 [https://downloads.dell.com/FOLDER04319442M/1/XPS_9550_1.2.25.exe XPS_9550_1.2.25.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=3W30W fixes]&lt;br /&gt;
* 1.2.29 [https://downloads.dell.com/FOLDER04449988M/1/XPS_9550_1.2.29.exe XPS_9550_1.2.29.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=F7M6G fixes]&lt;br /&gt;
* 1.3.0 [https://downloads.dell.com/FOLDER04481870M/1/XPS_9550_1.3.0.exe XPS_9550_1.3.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=NXVMP fixes]&lt;br /&gt;
* 1.4.0 [https://downloads.dell.com/FOLDER04499656M/1/XPS_9550_1.4.0.exe XPS_9550_1.4.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=DR9N6 fixes]&lt;br /&gt;
* 1.5.1 [https://downloads.dell.com/FOLDER04604618M/1/XPS_9550_1.5.1.exe XPS_9550_1.5.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=TWKFC fixes]&lt;br /&gt;
* 1.6.1 [https://downloads.dell.com/FOLDER04717493M/1/XPS_9550_1.6.1.exe XPS_9550_1.6.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=PFJ08 fixes]&lt;br /&gt;
* 1.7.0 [https://downloads.dell.com/FOLDER04839266M/1/XPS_9550_1.7.0.exe XPS_9550_1.7.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=RYY62 fixes]&lt;br /&gt;
* 1.8.0 [https://downloads.dell.com/FOLDER05099834M/1/XPS_9550_1.8.0.exe XPS_9550_1.8.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=4GDY8 fixes]&lt;br /&gt;
* 1.9.0 [https://downloads.dell.com/FOLDER05256907M/1/XPS_9550_1.9.0.exe XPS_9550_1.9.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=xv1gp fixes]&lt;br /&gt;
* 1.10.0 [https://downloads.dell.com/FOLDER05476993M/1/XPS_9550_1.10.0.exe XPS_9550_1.10.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=3N7TY fixes]&lt;br /&gt;
* 1.11.2 [https://downloads.dell.com/FOLDER05770328M/1/XPS_9550_1.11.2.exe XPS_9550_1.11.2.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=gtm85 fixes]&lt;br /&gt;
* 1.12.0 [https://downloads.dell.com/FOLDER05865451M/1/XPS_9550_1.12.0.exe XPS_9550_1.12.0.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=7HTW2 fixes]&lt;br /&gt;
* 1.13.1 [https://dl.dell.com/FOLDER06021536M/1/XPS_9550_1.13.1.exe XPS_9550_1.13.1.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=3hr07 fixes]&lt;br /&gt;
&lt;br /&gt;
Attention: with versions 1.2.10 through 1.2.16 and older Linux kernels, there is a serious bug that let the screen black after suspend/wake up. The workaround is to set the lightness to the maximum but it breaks further lightness tuning.&lt;br /&gt;
&lt;br /&gt;
Linux kernels 4.8 and below tend to work best with A6 BIOS (1.2.0), although there is a workaround that allows it to work with later versions.  This workaround uses the intel_reg utility to reset the &amp;quot;pwm_granuality&amp;quot; setting of the onboard graphics.  Solution discussed here: [http://en.community.dell.com/techcenter/os-applications/f/4613/t/19985320].  This issue is reportedly fixed in Linux 4.9, and also in recent Ubuntu 16.10 kernel updates.  See the patch here [https://patchwork.freedesktop.org/patch/109407/].&lt;br /&gt;
&lt;br /&gt;
Even with the intel_reg workaround above, the screen brightness cannot be set to the lowest level without turning the screen off.  This is fixed in 1.2.18.&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
I kept UEFI so we need a Debian netinstall because liveCD doesn&#039;t have UEFI support yet.&lt;br /&gt;
&amp;lt;br&amp;gt;But Wi-Fi requires a proprietary firmware:&lt;br /&gt;
 https://github.com/OpenELEC/wlan-firmware/blob/master/firmware/brcm/brcmfmac43602-pcie.bin&lt;br /&gt;
so the easiest is to take a Debian netinstall with proprietary firmwares included.&lt;br /&gt;
&amp;lt;br&amp;gt;At time of writing Stretch is testing and last release is alpha5:&lt;br /&gt;
 http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/stretch_di_alpha5/amd64/iso-cd/&lt;br /&gt;
dd the image on a USB stick and boot it.&lt;br /&gt;
&amp;lt;br&amp;gt;It will also complain for a missing brcmfmac43602-pcie.txt but we can safely ignore it. (well I think so, but Wi-Fi has troubles now and then under heavy load, see below)&lt;br /&gt;
&amp;lt;!-- sysml eml ems --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I chose a guided partitionning of the entire disk, with encrypted LVM containing /, /home and swap. But proposed / was a bit too small IMHO (10G) so I deleted and recreated / (50G) and /home.&lt;br /&gt;
&amp;lt;br&amp;gt;Initially I tried to add the &amp;quot;discard&amp;quot; option for the partitions which should help on SSD but the kernel reported that &amp;quot;discard&amp;quot; wasn&#039;t supported by the disk.&lt;br /&gt;
&lt;br /&gt;
If you want to backup partition table and partitions before destroying everything, it&#039;s the right time!&lt;br /&gt;
 parted /dev/nvme0n1&lt;br /&gt;
 print&lt;br /&gt;
 sgdisk --backup=/some/safe/location/nvme0n1.gpt /dev/nvme0n1&lt;br /&gt;
I installed Cinnamon. I don&#039;t know for the others but Cinnamon has a nice auto setting to double features on HiDPI screens.&lt;br /&gt;
&lt;br /&gt;
===Gnome===&lt;br /&gt;
Update: now using Gnome3.&lt;br /&gt;
Needs to replace lightdm by gdm3 to get newer lock screen (gnome-screensaver is deprecated)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg-reconfigure gdm3&lt;br /&gt;
(choose gdm3)&lt;br /&gt;
# delay before blanking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.session idle-delay 300&lt;br /&gt;
# delay after blanking before locking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.screensaver lock-delay 10&lt;br /&gt;
(reboot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sometimes after a crash, gnome extensions (https://extensions.gnome.org/local/) are disabled. To reenable them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dconf write /org/gnome/shell/disable-user-extensions false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==First boot==&lt;br /&gt;
Once installed, the Debian didn&#039;t boot up.&lt;br /&gt;
&amp;lt;br&amp;gt;I tried many things but at the end the only thing that worked was to copy Debian EFI to the default one:&lt;br /&gt;
&lt;br /&gt;
Starting the netinstall again, in rescue mode, get a chroot shell, then&lt;br /&gt;
 mount /dev/nvme0n1p1 /boot/efi&lt;br /&gt;
 cd /boot/efi/EFI&lt;br /&gt;
 mkdir boot&lt;br /&gt;
 cp debian/grubx64.efi boot/bootx64.efi&lt;br /&gt;
I also deleted the Windows files in EFI.&lt;br /&gt;
&lt;br /&gt;
Resource:&lt;br /&gt;
* https://wiki.debian.org/GrubEFIReinstall&lt;br /&gt;
* https://wiki.archlinux.org/index.php/GRUB#Create_an_ESP&lt;br /&gt;
* https://help.ubuntu.com/community/UEFI&lt;br /&gt;
* https://wiki.debian.org/UEFI&lt;br /&gt;
* https://isalo.org/wiki.debian-fr/Debian_%26_UEFI    &lt;br /&gt;
&lt;br /&gt;
FTR things that failed included:&lt;br /&gt;
* [http://www.rodsbooks.com/refind/getting.html Refind] couldn&#039;t boot at all. Strange as the netinstall could boot...&lt;br /&gt;
* tweaks with efibootmgr, update-grub etc&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UPDATE&#039;&#039;&#039;: It might be possible to fix the issue from the BIOS itself, see http://www.dell.com/support/article/us/en/04/SLN297060/en&lt;br /&gt;
* Boot Sequence / Add Boot Option&lt;br /&gt;
** Boot Option Name : Debian&lt;br /&gt;
** File System List : PciRoot(0x0)/Pic(0x1D,0x0)/Pci(0x0,0x0)/?/HD(1,GPT,&amp;lt;UUID&amp;gt;)&lt;br /&gt;
** File Name : FS0 - EFI - debian - grubx64.efi&lt;br /&gt;
* Advances Boot Options / NOT Enable Legacy Option ROMs&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
===Working===&lt;br /&gt;
* Screen&lt;br /&gt;
* Touchscreen&lt;br /&gt;
* Touchpad&lt;br /&gt;
* Keyboard backlight and media buttons (volume, luminosity, backlight)&lt;br /&gt;
* Wi-Fi (with the proprietary driver, cf installation above)&lt;br /&gt;
* HDMI&lt;br /&gt;
* SD-Card reader&lt;br /&gt;
* Speakers, mic&lt;br /&gt;
* Webcam&lt;br /&gt;
&lt;br /&gt;
===Working after manual steps===&lt;br /&gt;
====i915====&lt;br /&gt;
Screen was working but dmesg was complaining:&lt;br /&gt;
 i915 0000:00:02.0: firmware: failed to load i915/skl_dmc_ver1.bin&lt;br /&gt;
So I installed that firmware, not sure what it&#039;s changed&lt;br /&gt;
 sudo apt-get install firmware-misc-nonfree&lt;br /&gt;
====Optimus====&lt;br /&gt;
Resources:&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Optimus&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Bumblebee&lt;br /&gt;
 apt-get install bumblebee-nvidia nvidia-libopencl1 nvidia-opencl-icd nvidia-opencl-icd:i386 libcuda1-i386 nvidia-smi clinfo&lt;br /&gt;
 reboot&lt;br /&gt;
Example:&lt;br /&gt;
 apt-get install nvidia-settings&lt;br /&gt;
 optirun -b none nvidia-settings -c :8&lt;br /&gt;
This also works for CUDA/OpenCL:&lt;br /&gt;
 optirun -b none ./hashcat64.bin -m 500 example500.hash example.dict&lt;br /&gt;
&lt;br /&gt;
Testing:&lt;br /&gt;
 optirun -vv glxgears&lt;br /&gt;
 optirun -vv clinfo&lt;br /&gt;
 optirun -b none ./hashcat64.bin -I&lt;br /&gt;
 optirun --no-xorg ./hashcat64.bin -I&lt;br /&gt;
&lt;br /&gt;
As bridge, primus or virtualgl can be used. Primus is available in the Debian repos while VirtualGL is [https://sourceforge.net/projects/virtualgl/?source=typ_redirect here]. Using primus currently.&lt;br /&gt;
&lt;br /&gt;
CUDA toolkit:&lt;br /&gt;
 apt-get install nvidia-cuda-toolkit&lt;br /&gt;
It removed nvidia-libopencl1 but hashcat is still running fine...&lt;br /&gt;
&lt;br /&gt;
GPU load:&lt;br /&gt;
 optirun --no-xorg nvidia-smi&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
Nothing wrong with the touchpad but its default config is a bit painful especially because it&#039;s large and my right palm touches it often, even with the option to diable it when typing and because it&#039;s &amp;quot;soft&amp;quot; buttons.&lt;br /&gt;
&amp;lt;br&amp;gt;I disabled the button area to limit somehow the problem but still you&#039;ve to get used to first touch and hold before pressing a button to do a drag and drop and not the opposite.&lt;br /&gt;
 synclient AreaBottomEdge=4026&lt;br /&gt;
To add a middle button:&lt;br /&gt;
 synclient RightButtonAreaLeft=3914&lt;br /&gt;
 synclient RightButtonAreaRight=0&lt;br /&gt;
 synclient RightButtonAreaTop=4026&lt;br /&gt;
 synclient RightButtonAreaBottom=0&lt;br /&gt;
 synclient MiddleButtonAreaLeft=3100&lt;br /&gt;
 synclient MiddleButtonAreaRight=3873&lt;br /&gt;
 synclient MiddleButtonAreaTop=4026&lt;br /&gt;
 synclient MiddleButtonAreaBottom=0&lt;br /&gt;
And because I love it:&lt;br /&gt;
 synclient CircularScrolling=1&lt;br /&gt;
Some doc [https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Buttonless_touchpads_.28aka_ClickPads.29 here] and the official one [http://www.x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html here]&lt;br /&gt;
&lt;br /&gt;
If with some kernels you get troubles using Synaptics options, check dmesg, maybe Touchpad is detected by another driver too:&lt;br /&gt;
 DLL06E4:01 06CB:7A13 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-7/i2c-DLL06E4:01/0018:06CB:7A13.0003/input/input14&lt;br /&gt;
 hid-multitouch 0018:06CB:7A13.0003: input,hidraw2: I2C HID v1.00 Mouse [DLL06E4:01 06CB:7A13] on i2c-DLL06E4:01&lt;br /&gt;
If this is so, add /etc/modprobe.d/synaptics.conf with this line, cf Kernel section below:&lt;br /&gt;
 blacklist i2c-designware-platform&lt;br /&gt;
&lt;br /&gt;
On recent kernels, i2c-designware-platform is directly in the kernel, not as module anymore.&lt;br /&gt;
To manage to blacklist it, see https://unix.stackexchange.com/questions/423797/how-do-i-disable-i2c-designware-support-when-its-not-built-as-a-module#446913&lt;br /&gt;
Edit /etc/default/grub and append the following blacklist invocation to the command line, then update-grub.&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;… initcall_blacklist=dw_i2c_init_driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Touchscreen====&lt;br /&gt;
Touchscreen works well but when an external screen is connected, it spans over both screens so e.g. touching the middle of the laptop screen moves the mouse to some middle point of the virtual screen combining both screens.&lt;br /&gt;
&amp;lt;br&amp;gt;To fix it, see https://wiki.archlinux.org/index.php/Calibrating_Touchscreen&lt;br /&gt;
&amp;lt;br&amp;gt;This example is for an external screen mapped to the right of the laptop screen:&lt;br /&gt;
 # c0 = width of laptop screen / total width&lt;br /&gt;
 c0=$(bc -l &amp;lt;&amp;lt;&amp;lt; &amp;quot;scale=2; $(xrandr|grep -A1 eDP1|sed &#039;1d;s/x.*//&#039;)/$(xrandr|grep &#039;^Screen 0&#039;|sed &#039;s/.*current //;s/ x.*//&#039;)&amp;quot;)&lt;br /&gt;
 xinput set-prop &amp;quot;ELAN Touchscreen&amp;quot; --type=float &amp;quot;Coordinate Transformation Matrix&amp;quot; \&lt;br /&gt;
    c0 0  0 \&lt;br /&gt;
    0  1  0 \&lt;br /&gt;
    0  0  1&lt;br /&gt;
&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
Kernel complains about a missing file.&lt;br /&gt;
&amp;lt;br&amp;gt;Apparently we can get it from Windows drivers but I don&#039;t know where to find them, so I took [https://www.dropbox.com/s/8goc4omhnzxij93/BCM-0a5c-6410.hcd?dl=0 this one] and copied it into /lib/firmware/brcm&lt;br /&gt;
&lt;br /&gt;
Then Bluetooth was recognized but I couldn&#039;t pair my WM615 mouse.&lt;br /&gt;
&amp;lt;br&amp;gt;After restarting the Bt adaptor, I could finally pair:&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
  power off&lt;br /&gt;
  power on&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* https://wiki.debian.org/BluetoothUser&lt;br /&gt;
* https://wiki.archlinux.org/index.php/bluetooth&lt;br /&gt;
There is also a possibility to pair directly from bluetoothctl, see https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see [[#Hardware_changes]]&lt;br /&gt;
&lt;br /&gt;
====HiDPI====&lt;br /&gt;
Cinnamon handles it nicely but some applications don&#039;t such as Gimp and you end up with a microscopic tools ribbon.&lt;br /&gt;
&amp;lt;br&amp;gt;See https://wiki.archlinux.org/index.php/HiDPI for some useful tips&lt;br /&gt;
&lt;br /&gt;
Cinnamon / System Settings / Desktop Scaling has the same effect as `gsettings set org.cinnamon.desktop.interface scaling-factor 2`&lt;br /&gt;
&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (1016x572 millimeters)&lt;br /&gt;
   resolution:    96x96 dots per inch&lt;br /&gt;
I&#039;ve no ruler at hand but if it&#039;s 15.6&#039;&#039; in diagonal and pixels are square, this gives 293.4 dpi for screen dimensions of 332x187mm.&lt;br /&gt;
&amp;lt;br&amp;gt;So closest hit with common DPI is 96*3=288dpi&lt;br /&gt;
 xrandr --dpi 288&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (338x190 millimeters)&lt;br /&gt;
   resolution:    289x289 dots per inch&lt;br /&gt;
Let&#039;s document those fictive dimensions for next boots by creating /etc/X11/xorg.conf.d/90-monitor.conf with&lt;br /&gt;
 Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
     Identifier             &amp;quot;&amp;lt;default monitor&amp;gt;&amp;quot;&lt;br /&gt;
     DisplaySize            338 190    # In millimeters&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT5 and GTK+ 3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;To enable better scaling of QT5 and GTK+ 3, add to .bashrc (not to .xsessionrc otherwise Cinnamon taskbar is messed up!):&lt;br /&gt;
 QT_DEVICE_PIXEL_RATIO=3&lt;br /&gt;
 GDK_SCALE=3&lt;br /&gt;
 GDK_DPI_SCALE=0.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. Skype&lt;br /&gt;
 sudo apt-get install qt4-qtconfig&lt;br /&gt;
 qtconfig-qt4&lt;br /&gt;
=&amp;gt; one can change font size&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gimp 2.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. copy /usr/share/gimp/2.0/themes/Default as ~/.gimp-2.8/themes/HiDPI and change a few options:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
--- gtkrc&lt;br /&gt;
+++ gtkrc&lt;br /&gt;
-  GimpToolPalette::tool-icon-size   = button&lt;br /&gt;
+  GimpToolPalette::tool-icon-size   = dialog&lt;br /&gt;
-  GimpEditor::button-icon-size      = menu&lt;br /&gt;
+  GimpEditor::button-icon-size      = button&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wine&#039;&#039;&#039;&lt;br /&gt;
 winecfg&lt;br /&gt;
Change &amp;quot;dpi&amp;quot; in &amp;quot;Graphics&amp;quot; tab&lt;br /&gt;
&#039;&#039;&#039;Virtualbox&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;View/Scale Factor is helpful...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chromium&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Chrome works fine but &#039;&#039;Chromium&#039;&#039; broke at some point, so I&#039;ve to launch it with:&lt;br /&gt;
&lt;br /&gt;
 GDK_SCALE=2 exec chromium&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Small console font&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;I don&#039;t care but if that&#039;s an issue for you, from [https://github.com/mpalourdio/xps13/blob/master/HiDPI/tty.md here]:&lt;br /&gt;
 sudo dpkg-reconfigure console-setup&lt;br /&gt;
* Choose UTF-8&lt;br /&gt;
* Choose the default Combined - Latin, ... option (&amp;quot;Latin&amp;quot; includes the English alphabet)&lt;br /&gt;
* Select the terminus font&lt;br /&gt;
* Select 16x32&lt;br /&gt;
* OK&lt;br /&gt;
To apply immediately, open a TTY and run setupcon, else just reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Multiple displays&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Combining HiDPI screen with external non-HiDPI? See https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xpra&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;cf https://xpra.org/trac/ticket/2492&lt;br /&gt;
&lt;br /&gt;
====Sensors====&lt;br /&gt;
 apt-get install lm-sensors&lt;br /&gt;
 sensors-detect&lt;br /&gt;
Sensors-detect found coretemp which is now loaded via /etc/modules:&lt;br /&gt;
 coretemp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====External microphone====&lt;br /&gt;
The sole jack is a TRRS, combining output and mic.&lt;br /&gt;
&amp;lt;br&amp;gt;Soundcard is a Realtek ALC3266&lt;br /&gt;
  grep -r Realtek /proc/asound/card*&lt;br /&gt;
  /proc/asound/card0/codec#0:Codec: Realtek ALC3266&lt;br /&gt;
&amp;lt;br&amp;gt;With Debian+Cinnamon, the system detects the mic, we can see it in the sound properties and select it, but still the internal mic is used.&lt;br /&gt;
&amp;lt;br&amp;gt;When using pavucontrol, selecting the &amp;quot;headset microphone&amp;quot; works fine (it still needs some level boosting).&lt;br /&gt;
&lt;br /&gt;
====DA200====&lt;br /&gt;
[http://accessories.euro.dell.com/sna/products/Station_daccueil/productdetail.aspx?c=fr&amp;amp;l=fr&amp;amp;s=dhs&amp;amp;cs=frdhs1&amp;amp;sku=470-ABRY DA200] used to be recognized only if it was plugged at boot.&lt;br /&gt;
&amp;lt;br&amp;gt;With kernel 4.6 the device is properly detected dynamically.&lt;br /&gt;
&amp;lt;br&amp;gt;The adapter is actually using DisplayPort. &lt;br /&gt;
&amp;lt;br&amp;gt;VGA output works.&lt;br /&gt;
&lt;br /&gt;
HDMI output is limited to some modes (max 1920x1080, cf [http://www.dell.com/support/article/us/en/19/SLN303466 Dell support]) and by default xrandr will try an unsupported mode.&lt;br /&gt;
&amp;lt;br&amp;gt;Even &amp;quot;xrandr --output DP-1 --mode 1920x1080&amp;quot; fails by default.&lt;br /&gt;
&lt;br /&gt;
Some supported modes:  800x600, 1024x768, 1280x720, 1920x1080i&lt;br /&gt;
&amp;lt;br&amp;gt;1920x1080i is interlaced and awful to look at.&lt;br /&gt;
&amp;lt;br&amp;gt;Reducing the rate allows a non-interlaced 1920x1080 mode, you can test it with:&lt;br /&gt;
 xrandr --output DP-1 --mode 1920x1080 -r 30&lt;br /&gt;
If this works for you, you can create a new mode, using cvt to find the proper parameters:&lt;br /&gt;
 cvt 1920 1080 30&lt;br /&gt;
 # 1920x1080 29.95 Hz (CVT) hsync: 33.01 kHz; pclk: 79.75 MHz&lt;br /&gt;
 Modeline &amp;quot;1920x1080_30.00&amp;quot;   79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
Creating and adding the new mode:&lt;br /&gt;
 xrandr --newmode &amp;quot;1920x1080_30.00&amp;quot; 79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
 xrandr --addmode DP-1  &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
Now you can choose this new mode:&lt;br /&gt;
  xrandr --output DP-1 --mode &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
&lt;br /&gt;
When plugged the following hardware gets detected:&lt;br /&gt;
&lt;br /&gt;
lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp..     &amp;lt;= Ethernet&lt;br /&gt;
Bus 004 Device 002: ID 05e3:0617 Genesys Logic, Inc..&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 003 Device 003: ID 0835:2a01 Action Star Enterprise Co., Ltd. &amp;lt;= Billboard&lt;br /&gt;
Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;The USB Billboard Device Class definition describes the methods used to communicate the Alternate Modes supported by a device container to a host system. More details on Billboard Devices are available in the USB Billboard Device Class specification at the following link: http://www.usb.org/developers/docs/devclass_docs/.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
lspci:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
06:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:01.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:02.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
0a:00.0 USB controller: Intel Corporation Device 15b5 (prog-if 30 [XHCI])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lsmod:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
r8152                  49152  0&lt;br /&gt;
cdc_ether              16384  0&lt;br /&gt;
usbnet                 40960  1 cdc_ether&lt;br /&gt;
mii                    16384  2 r8152,usbnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Solved issues===&lt;br /&gt;
====i915 and blank screen====&lt;br /&gt;
There were numerous issues with the video card. Now with latest kernels (&amp;gt;=4.8) most issues are gone, still some occasional blank screen or freeze when plugging an external HDMI.&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
WM615 mouse used to act erratically, the cursor stopping now and then. Now with latest kernels and an Intel Wi-Fi+BT card it&#039;s fine.&lt;br /&gt;
====Wi-Fi====&lt;br /&gt;
Wi-Fi tends to disassociate under heavy load, switching to other SSIDs or frequencies (5Ghz&amp;lt;&amp;gt;2.4GHz) and coming back seems to help.&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see #Hardware_changes&lt;br /&gt;
&lt;br /&gt;
===Issues===&lt;br /&gt;
====rfkill button====&lt;br /&gt;
Rfkill button of the keyboard (Fn+PrtScr) doesn&#039;t seem to work, no big deal.&lt;br /&gt;
&lt;br /&gt;
==Kernels==&lt;br /&gt;
initramfs complains about lvmetad and I&#039;m not sure it&#039;s that useful on SSD, so just disabling it:&lt;br /&gt;
&amp;lt;br&amp;gt;Edit /etc/lvm/lvm.conf&lt;br /&gt;
 use_lvmetad=0&lt;br /&gt;
Then stop it&lt;br /&gt;
 systemctl stop lvm2-lvmetad&lt;br /&gt;
===Debian===&lt;br /&gt;
Debian kernel 4.8 works quite well&lt;br /&gt;
===Compilation notes===&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;, to compile &amp;gt;=4.4, one needs at least initramfs-tools v0.122 to get the nvme.ko properly loaded and therefore the SSD properly seen.&lt;br /&gt;
&lt;br /&gt;
To compile a vanilla kernel, cf http://www.cyberciti.biz/faq/debian-ubuntu-building-installing-a-custom-linux-kernel/&lt;br /&gt;
 sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc&lt;br /&gt;
 sudo apt-get install kernel-package&lt;br /&gt;
 wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz&lt;br /&gt;
 tar xf linux-4.4.tar.xz&lt;br /&gt;
 cd linux-4.4&lt;br /&gt;
 cp /boot/config-$(uname -r) .config&lt;br /&gt;
 make menuconfig&lt;br /&gt;
 make-kpkg clean&lt;br /&gt;
 make-kpkg --rootcmd fakeroot --initrd --append_to_version=9-doegox kernel_image kernel_headers -j 7&lt;br /&gt;
&lt;br /&gt;
==Hardware changes==&lt;br /&gt;
Replacing Broadcom Wi-Fi+BT by an [https://wikidevi.com/wiki/Intel Intel one]:&lt;br /&gt;
* Intel 7265 Dual Band Wireless-AC 7265NGW Card 802.11ac 867Mbps WIFI BT4.0 UK&lt;br /&gt;
** http://www.befr.ebay.be/itm/262049756966?_trksid=p2060353.m2749.l2649&amp;amp;ssPageName=STRK%3AMEBIDX%3AIT&lt;br /&gt;
** https://downloadcenter.intel.com/download/17045&lt;br /&gt;
** This requires installing package firmware-iwlwifi&lt;br /&gt;
** Seems to have less Wi-Fi issues, but still the same BT problems pairing the Dell mouse&lt;br /&gt;
&lt;br /&gt;
 iwlwifi 0000:02:00.0: firmware: direct-loading firmware iwlwifi-7265-17.ucode&lt;br /&gt;
 iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 7265, REV=0x184&lt;br /&gt;
&lt;br /&gt;
Alternatives to DA200:&lt;br /&gt;
* HDMI Male To VGA Female Converter&lt;br /&gt;
** http://www.aliexpress.com/item/1pc-HDMI-Male-To-VGA-Female-Converter-Box-Adapter-With-Audio-Cable-For-PC-HDTVHot-New/32448171552.html&lt;br /&gt;
* USB 3.0 10/100/1000Mbps Gigabit Ethernet RJ45&lt;br /&gt;
** http://www.aliexpress.com/item/Hot-selling-New-USB-3-0-10-100-1000Mbps-Gigabit-Ethernet-RJ45-External-Network-Card-LAN/32546613204.html&lt;br /&gt;
* 4-Port Ultra-Slim USB 3.0 Hub&lt;br /&gt;
** https://www.anker.com/products/A7516011&lt;br /&gt;
** http://www.amazon.de/Anker-Datenhub-Ultrabooks-weiteren-kompatiblen/dp/B00Y211AFM/&lt;br /&gt;
&lt;br /&gt;
==Misc hardware==&lt;br /&gt;
Smartcard reader&lt;br /&gt;
* ACS ACR38U PocketMate Smart Card Reader&lt;br /&gt;
** http://www.acs.com.hk/en/products/160/acr38u-pocketmate-smart-card-reader/&lt;br /&gt;
** http://www.befr.ebay.be/itm/EU-SHIPPING-Smart-Card-USB-ACS-ACR38U-National-ID-Tachograph-Reader-Writer-/121899037557&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10529</id>
		<title>Laptop Dell XPS 15</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10529"/>
		<updated>2021-08-20T20:46:26Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* First boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Notes about installing a Debian Stretch on a Dell XPS 15&lt;br /&gt;
==Hardware==&lt;br /&gt;
Dell XPS 15 model 9550 (variant with touchscreen &amp;amp; PCIe m.2 ssd)&lt;br /&gt;
&lt;br /&gt;
From the [http://www.dell.com/support/home/fr/fr/frdhs1/product-support/servicetag/DHVNH72/configuration configuration] list:&lt;br /&gt;
* 6th Generation Intel(R) Core (TM) i7-6700HQ Quad Core (6M Cache, up to 3.5 GHz)&lt;br /&gt;
* 16Go (2x8Go) DDR4 2133MHz&lt;br /&gt;
* 15.6&amp;quot; 4K Ultra HD (3840 x 2160) InfinityEdge touch, Sliver&lt;br /&gt;
* 1To PCIe Solid State&lt;br /&gt;
* DW1830 3x3 802.11ac 2.4/5GHz + Bluetooth 4.1&lt;br /&gt;
* Dell 84 WHr 6-Cell Lithium-Ion Battery&lt;br /&gt;
* Internal US/International Qwerty Backlit Keyboard&lt;br /&gt;
From the drivers list:&lt;br /&gt;
* Realtek High Definition Audio ALC3266&lt;br /&gt;
* Realtek RTS5242 PCIe Gen2 CardReader&lt;br /&gt;
* Realtek USB GBE Ethernet Controller&lt;br /&gt;
* ST Microlectronics LNG3DMTR Motion Sensor&lt;br /&gt;
* Intel HD Graphics 530/P530&lt;br /&gt;
* nVIDIA Geforce GTX 960M Graphics&lt;br /&gt;
From dmesg (incomplete):&lt;br /&gt;
* BCM20703A1 Bluetooth 4.1 (firmware brcm/BCM-0a5c-6410.hcd)&lt;br /&gt;
From lspci -nn:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00:00.0 Host bridge [0600]: Intel Corporation Sky Lake Host Bridge/DRAM Registers [8086:1910] (rev 07)&lt;br /&gt;
00:01.0 PCI bridge [0604]: Intel Corporation Sky Lake PCIe Controller (x16) [8086:1901] (rev 07)&lt;br /&gt;
00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:191b] (rev 06)&lt;br /&gt;
00:04.0 Signal processing controller [1180]: Intel Corporation Device [8086:1903] (rev 07)&lt;br /&gt;
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f] (rev 31)&lt;br /&gt;
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131] (rev 31)&lt;br /&gt;
00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #0 [8086:a160] (rev 31)&lt;br /&gt;
00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #1 [8086:a161] (rev 31)&lt;br /&gt;
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-H CSME HECI #1 [8086:a13a] (rev 31)&lt;br /&gt;
00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-H SATA Controller [AHCI mode] [8086:a103] (rev 31)&lt;br /&gt;
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #1 [8086:a110] (rev f1)&lt;br /&gt;
00:1c.1 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #2 [8086:a111] (rev f1)&lt;br /&gt;
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #9 [8086:a118] (rev f1)&lt;br /&gt;
00:1d.4 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #13 [8086:a11c] (rev f1)&lt;br /&gt;
00:1d.6 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #15 [8086:a11e] (rev f1)&lt;br /&gt;
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC Controller [8086:a14e] (rev 31)&lt;br /&gt;
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H PMC [8086:a121] (rev 31)&lt;br /&gt;
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD Audio [8086:a170] (rev 31)&lt;br /&gt;
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus [8086:a123] (rev 31)&lt;br /&gt;
01:00.0 3D controller [0302]: NVIDIA Corporation GM107M [GeForce GTX 960M] [10de:139b] (rev ff)&lt;br /&gt;
02:00.0 Network controller [0280]: Broadcom Corporation BCM43602 802.11ac Wireless LAN SoC [14e4:43ba] (rev 01)&lt;br /&gt;
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device [10ec:525a] (rev 01)&lt;br /&gt;
04:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd Device [144d:a802] (rev 01)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 001 Device 003: ID 04f3:21d5 Elan Microelectronics Corp.            &amp;lt;= touchscreen&lt;br /&gt;
Bus 001 Device 002: ID 0a5c:6410 Broadcom Corp.                         &amp;lt;= bluetooth&lt;br /&gt;
Bus 001 Device 004: ID 0c45:6713 Microdia                               &amp;lt;= webcam&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From lscpu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Architecture:          x86_64&lt;br /&gt;
CPU op-mode(s):        32-bit, 64-bit&lt;br /&gt;
Byte Order:            Little Endian&lt;br /&gt;
CPU(s):                8&lt;br /&gt;
On-line CPU(s) list:   0-7&lt;br /&gt;
Thread(s) per core:    2&lt;br /&gt;
Core(s) per socket:    4&lt;br /&gt;
Socket(s):             1&lt;br /&gt;
NUMA node(s):          1&lt;br /&gt;
Vendor ID:             GenuineIntel&lt;br /&gt;
CPU family:            6&lt;br /&gt;
Model:                 94&lt;br /&gt;
Model name:            Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz&lt;br /&gt;
Stepping:              3&lt;br /&gt;
CPU MHz:               2847.812&lt;br /&gt;
CPU max MHz:           3500.0000&lt;br /&gt;
CPU min MHz:           800.0000&lt;br /&gt;
BogoMIPS:              5183.88&lt;br /&gt;
Virtualization:        VT-x&lt;br /&gt;
L1d cache:             32K&lt;br /&gt;
L1i cache:             32K&lt;br /&gt;
L2 cache:              256K&lt;br /&gt;
L3 cache:              6144K&lt;br /&gt;
NUMA node0 CPU(s):     0-7&lt;br /&gt;
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush &lt;br /&gt;
dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts &lt;br /&gt;
rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 &lt;br /&gt;
ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx &lt;br /&gt;
f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_notify hwp_act_window hwp_epp &lt;br /&gt;
intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid &lt;br /&gt;
rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dell Wireless 1830 = BCM43602 + BCM20703A1 (DW1830 Bluetooth 4.1 LE)&lt;br /&gt;
&lt;br /&gt;
BCM43602	PCI ID: 14e4:43ba&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# smartctl -d scsi -i /dev/nvme0n1&lt;br /&gt;
smartctl 6.4 2015-06-04 r4109 [x86_64-linux-4.3.0-1-amd64] (local build)&lt;br /&gt;
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org&lt;br /&gt;
&lt;br /&gt;
=== START OF INFORMATION SECTION ===&lt;br /&gt;
Vendor:               NVMe&lt;br /&gt;
Product:              PM951 NVMe SAMSU&lt;br /&gt;
Revision:             7D0Q&lt;br /&gt;
Compliance:           SPC-4&lt;br /&gt;
User Capacity:        1,024,209,543,168 bytes [1.02 TB]&lt;br /&gt;
Logical block size:   512 bytes&lt;br /&gt;
Rotation Rate:        Solid State Device&lt;br /&gt;
Logical Unit id:      0x0025384cf1b0fd29&lt;br /&gt;
Serial number:        S2FZNXAGC03824&lt;br /&gt;
Device type:          disk&lt;br /&gt;
Local Time is:        Sun Feb 14 22:02:03 2016 CET&lt;br /&gt;
SMART support is:     Unavailable - device lacks SMART capability.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* http://topics-cdn.dell.com/pdf/xps-15-9550-laptop_Service%20Manual_en-us.pdf&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dell_XPS_15&lt;br /&gt;
* https://bbs.archlinux.org/viewtopic.php?id=204739&lt;br /&gt;
* http://ubuntuforums.org/showthread.php?t=2301071&lt;br /&gt;
* http://forthescience.org/blog/2015/03/20/installing_ubuntu_14_04_on_the_new_dell_xps_13/&lt;br /&gt;
* https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013&lt;br /&gt;
* http://bartongeorge.net/2015/02/23/update-2-dell-xps-13-laptop-developer-edition-sputnik-gen-4/&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
I first tried to keep a dual-boot just in case, but once we disable Raid and put SATA in AHCI mode, Windows can&#039;t boot anymore. (later I read it could be possible to fix it by rebooting several times Windows till safe mode is kicked in, but it was too late for me.)&lt;br /&gt;
&lt;br /&gt;
Just in case again, one can boot Windows and create a USB recovery.&lt;br /&gt;
==Bios==&lt;br /&gt;
* Secure Boot: disable&lt;br /&gt;
* SATA: switch from Raid to AHCI&lt;br /&gt;
* Boot: not sure it&#039;s needed but I disabled Windows boot manager entry and kept the hdd UEFI entry: UEFI: PM951 NVMe SAMSUNG 1024GB, Partition 1&lt;br /&gt;
* POST/Fastboot/Thorough&lt;br /&gt;
* auto os recovery threshold off&lt;br /&gt;
&lt;br /&gt;
To update the BIOS:&lt;br /&gt;
* put it on a USB stick&lt;br /&gt;
* reboot&lt;br /&gt;
* select BIOS flash update on the boot screen (F12).&lt;br /&gt;
No need to put it on a bootable DOS, just give the exe to the BIOS update built-in util.&lt;br /&gt;
&amp;lt;br&amp;gt;You can even drop the update on /boot/efi as it&#039;s also a FAT partition, no need for a USB memory stick.&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
* 1.2.0 aka A6 [https://downloads.dell.com/FOLDER03659467M/1/XPS_9550_1.2.0.exe XPS_9550_1.2.0.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=KTR76 fixes]&lt;br /&gt;
* 1.2.10 aka A10 [https://downloads.dell.com/FOLDER03800340M/1/XPS_9550_1.2.10.exe XPS_9550_1.2.10.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=96T2K fixes]&lt;br /&gt;
* 1.2.14 aka A13 [https://downloads.dell.com/FOLDER03906323M/1/XPS_9550_1.2.14.exe XPS_9550_1.2.14.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=VNMDK fixes]&lt;br /&gt;
* 1.2.16 [https://downloads.dell.com/FOLDER04030973M/1/XPS_9550_1.2.16.exe XPS_9550_1.2.16.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=J8GY6 fixes]&lt;br /&gt;
* 1.2.18 aka A16 [https://downloads.dell.com/FOLDER04078627M/1/XPS_9550_1.2.18.exe XPS_9550_1.2.18.exe] [http://www.dell.com/support/home/us/en/4/Drivers/DriversDetails?driverId=KD0C7 fixes]&lt;br /&gt;
* 1.2.21 [https://downloads.dell.com/FOLDER04190863M/1/XPS_9550_1.2.21.exe XPS_9550_1.2.21.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=6RV34 fixes]&lt;br /&gt;
* 1.2.25 [https://downloads.dell.com/FOLDER04319442M/1/XPS_9550_1.2.25.exe XPS_9550_1.2.25.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=3W30W fixes]&lt;br /&gt;
* 1.2.29 [https://downloads.dell.com/FOLDER04449988M/1/XPS_9550_1.2.29.exe XPS_9550_1.2.29.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=F7M6G fixes]&lt;br /&gt;
* 1.3.0 [https://downloads.dell.com/FOLDER04481870M/1/XPS_9550_1.3.0.exe XPS_9550_1.3.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=NXVMP fixes]&lt;br /&gt;
* 1.4.0 [https://downloads.dell.com/FOLDER04499656M/1/XPS_9550_1.4.0.exe XPS_9550_1.4.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=DR9N6 fixes]&lt;br /&gt;
* 1.5.1 [https://downloads.dell.com/FOLDER04604618M/1/XPS_9550_1.5.1.exe XPS_9550_1.5.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=TWKFC fixes]&lt;br /&gt;
* 1.6.1 [https://downloads.dell.com/FOLDER04717493M/1/XPS_9550_1.6.1.exe XPS_9550_1.6.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=PFJ08 fixes]&lt;br /&gt;
* 1.7.0 [https://downloads.dell.com/FOLDER04839266M/1/XPS_9550_1.7.0.exe XPS_9550_1.7.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=RYY62 fixes]&lt;br /&gt;
* 1.8.0 [https://downloads.dell.com/FOLDER05099834M/1/XPS_9550_1.8.0.exe XPS_9550_1.8.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=4GDY8 fixes]&lt;br /&gt;
* 1.9.0 [https://downloads.dell.com/FOLDER05256907M/1/XPS_9550_1.9.0.exe XPS_9550_1.9.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=xv1gp fixes]&lt;br /&gt;
* 1.10.0 [https://downloads.dell.com/FOLDER05476993M/1/XPS_9550_1.10.0.exe XPS_9550_1.10.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=3N7TY fixes]&lt;br /&gt;
* 1.11.2 [https://downloads.dell.com/FOLDER05770328M/1/XPS_9550_1.11.2.exe XPS_9550_1.11.2.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=gtm85 fixes]&lt;br /&gt;
* 1.12.0 [https://downloads.dell.com/FOLDER05865451M/1/XPS_9550_1.12.0.exe XPS_9550_1.12.0.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=7HTW2 fixes]&lt;br /&gt;
* 1.13.1 [https://dl.dell.com/FOLDER06021536M/1/XPS_9550_1.13.1.exe XPS_9550_1.13.1.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=3hr07 fixes]&lt;br /&gt;
&lt;br /&gt;
Attention: with versions 1.2.10 through 1.2.16 and older Linux kernels, there is a serious bug that let the screen black after suspend/wake up. The workaround is to set the lightness to the maximum but it breaks further lightness tuning.&lt;br /&gt;
&lt;br /&gt;
Linux kernels 4.8 and below tend to work best with A6 BIOS (1.2.0), although there is a workaround that allows it to work with later versions.  This workaround uses the intel_reg utility to reset the &amp;quot;pwm_granuality&amp;quot; setting of the onboard graphics.  Solution discussed here: [http://en.community.dell.com/techcenter/os-applications/f/4613/t/19985320].  This issue is reportedly fixed in Linux 4.9, and also in recent Ubuntu 16.10 kernel updates.  See the patch here [https://patchwork.freedesktop.org/patch/109407/].&lt;br /&gt;
&lt;br /&gt;
Even with the intel_reg workaround above, the screen brightness cannot be set to the lowest level without turning the screen off.  This is fixed in 1.2.18.&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
I kept UEFI so we need a Debian netinstall because liveCD doesn&#039;t have UEFI support yet.&lt;br /&gt;
&amp;lt;br&amp;gt;But Wi-Fi requires a proprietary firmware:&lt;br /&gt;
 https://github.com/OpenELEC/wlan-firmware/blob/master/firmware/brcm/brcmfmac43602-pcie.bin&lt;br /&gt;
so the easiest is to take a Debian netinstall with proprietary firmwares included.&lt;br /&gt;
&amp;lt;br&amp;gt;At time of writing Stretch is testing and last release is alpha5:&lt;br /&gt;
 http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/stretch_di_alpha5/amd64/iso-cd/&lt;br /&gt;
dd the image on a USB stick and boot it.&lt;br /&gt;
&amp;lt;br&amp;gt;It will also complain for a missing brcmfmac43602-pcie.txt but we can safely ignore it. (well I think so, but Wi-Fi has troubles now and then under heavy load, see below)&lt;br /&gt;
&amp;lt;!-- sysml eml ems --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I chose a guided partitionning of the entire disk, with encrypted LVM containing /, /home and swap. But proposed / was a bit too small IMHO (10G) so I deleted and recreated / (50G) and /home.&lt;br /&gt;
&amp;lt;br&amp;gt;Initially I tried to add the &amp;quot;discard&amp;quot; option for the partitions which should help on SSD but the kernel reported that &amp;quot;discard&amp;quot; wasn&#039;t supported by the disk.&lt;br /&gt;
&lt;br /&gt;
If you want to backup partition table and partitions before destroying everything, it&#039;s the right time!&lt;br /&gt;
 parted /dev/nvme0n1&lt;br /&gt;
 print&lt;br /&gt;
 sgdisk --backup=/some/safe/location/nvme0n1.gpt /dev/nvme0n1&lt;br /&gt;
I installed Cinnamon. I don&#039;t know for the others but Cinnamon has a nice auto setting to double features on HiDPI screens.&lt;br /&gt;
&lt;br /&gt;
===Gnome===&lt;br /&gt;
Update: now using Gnome3.&lt;br /&gt;
Needs to replace lightdm by gdm3 to get newer lock screen (gnome-screensaver is deprecated)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg-reconfigure gdm3&lt;br /&gt;
(choose gdm3)&lt;br /&gt;
# delay before blanking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.session idle-delay 300&lt;br /&gt;
# delay after blanking before locking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.screensaver lock-delay 10&lt;br /&gt;
(reboot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sometimes after a crash, gnome extensions (https://extensions.gnome.org/local/) are disabled. To reenable them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dconf write /org/gnome/shell/disable-user-extensions false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==First boot==&lt;br /&gt;
Once installed, the Debian didn&#039;t boot up.&lt;br /&gt;
&amp;lt;br&amp;gt;I tried many things but at the end the only thing that worked was to copy Debian EFI to the default one:&lt;br /&gt;
&lt;br /&gt;
Starting the netinstall again, in rescue mode, get a chroot shell, then&lt;br /&gt;
 mount /dev/nvme0n1p1 /boot/efi&lt;br /&gt;
 cd /boot/efi/EFI&lt;br /&gt;
 mkdir boot&lt;br /&gt;
 cp debian/grubx64.efi boot/bootx64.efi&lt;br /&gt;
I also deleted the Windows files in EFI.&lt;br /&gt;
&lt;br /&gt;
Resource:&lt;br /&gt;
* https://wiki.debian.org/GrubEFIReinstall&lt;br /&gt;
* https://wiki.archlinux.org/index.php/GRUB#Create_an_ESP&lt;br /&gt;
* https://help.ubuntu.com/community/UEFI&lt;br /&gt;
* https://wiki.debian.org/UEFI&lt;br /&gt;
* https://isalo.org/wiki.debian-fr/Debian_%26_UEFI    &lt;br /&gt;
&lt;br /&gt;
FTR things that failed included:&lt;br /&gt;
* [http://www.rodsbooks.com/refind/getting.html Refind] couldn&#039;t boot at all. Strange as the netinstall could boot...&lt;br /&gt;
* tweaks with efibootmgr, update-grub etc&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UPDATE&#039;&#039;&#039;: It might be possible to fix the issue from the BIOS itself, see http://www.dell.com/support/article/us/en/04/SLN297060/en&lt;br /&gt;
* Boot Sequence / Add Boot Option&lt;br /&gt;
  * Boot Option Name : Debian&lt;br /&gt;
  * File System List : PciRoot(0x0)/Pic(0x1D,0x0)/Pci(0x0,0x0)/?/HD(1,GPT,&amp;lt;UUID&amp;gt;)&lt;br /&gt;
  * File Name : FS0 - EFI - debian - grubx64.efi&lt;br /&gt;
* Advances Boot Options / NOT Enable Legacy Option ROMs&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
===Working===&lt;br /&gt;
* Screen&lt;br /&gt;
* Touchscreen&lt;br /&gt;
* Touchpad&lt;br /&gt;
* Keyboard backlight and media buttons (volume, luminosity, backlight)&lt;br /&gt;
* Wi-Fi (with the proprietary driver, cf installation above)&lt;br /&gt;
* HDMI&lt;br /&gt;
* SD-Card reader&lt;br /&gt;
* Speakers, mic&lt;br /&gt;
* Webcam&lt;br /&gt;
&lt;br /&gt;
===Working after manual steps===&lt;br /&gt;
====i915====&lt;br /&gt;
Screen was working but dmesg was complaining:&lt;br /&gt;
 i915 0000:00:02.0: firmware: failed to load i915/skl_dmc_ver1.bin&lt;br /&gt;
So I installed that firmware, not sure what it&#039;s changed&lt;br /&gt;
 sudo apt-get install firmware-misc-nonfree&lt;br /&gt;
====Optimus====&lt;br /&gt;
Resources:&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Optimus&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Bumblebee&lt;br /&gt;
 apt-get install bumblebee-nvidia nvidia-libopencl1 nvidia-opencl-icd nvidia-opencl-icd:i386 libcuda1-i386 nvidia-smi clinfo&lt;br /&gt;
 reboot&lt;br /&gt;
Example:&lt;br /&gt;
 apt-get install nvidia-settings&lt;br /&gt;
 optirun -b none nvidia-settings -c :8&lt;br /&gt;
This also works for CUDA/OpenCL:&lt;br /&gt;
 optirun -b none ./hashcat64.bin -m 500 example500.hash example.dict&lt;br /&gt;
&lt;br /&gt;
Testing:&lt;br /&gt;
 optirun -vv glxgears&lt;br /&gt;
 optirun -vv clinfo&lt;br /&gt;
 optirun -b none ./hashcat64.bin -I&lt;br /&gt;
 optirun --no-xorg ./hashcat64.bin -I&lt;br /&gt;
&lt;br /&gt;
As bridge, primus or virtualgl can be used. Primus is available in the Debian repos while VirtualGL is [https://sourceforge.net/projects/virtualgl/?source=typ_redirect here]. Using primus currently.&lt;br /&gt;
&lt;br /&gt;
CUDA toolkit:&lt;br /&gt;
 apt-get install nvidia-cuda-toolkit&lt;br /&gt;
It removed nvidia-libopencl1 but hashcat is still running fine...&lt;br /&gt;
&lt;br /&gt;
GPU load:&lt;br /&gt;
 optirun --no-xorg nvidia-smi&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
Nothing wrong with the touchpad but its default config is a bit painful especially because it&#039;s large and my right palm touches it often, even with the option to diable it when typing and because it&#039;s &amp;quot;soft&amp;quot; buttons.&lt;br /&gt;
&amp;lt;br&amp;gt;I disabled the button area to limit somehow the problem but still you&#039;ve to get used to first touch and hold before pressing a button to do a drag and drop and not the opposite.&lt;br /&gt;
 synclient AreaBottomEdge=4026&lt;br /&gt;
To add a middle button:&lt;br /&gt;
 synclient RightButtonAreaLeft=3914&lt;br /&gt;
 synclient RightButtonAreaRight=0&lt;br /&gt;
 synclient RightButtonAreaTop=4026&lt;br /&gt;
 synclient RightButtonAreaBottom=0&lt;br /&gt;
 synclient MiddleButtonAreaLeft=3100&lt;br /&gt;
 synclient MiddleButtonAreaRight=3873&lt;br /&gt;
 synclient MiddleButtonAreaTop=4026&lt;br /&gt;
 synclient MiddleButtonAreaBottom=0&lt;br /&gt;
And because I love it:&lt;br /&gt;
 synclient CircularScrolling=1&lt;br /&gt;
Some doc [https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Buttonless_touchpads_.28aka_ClickPads.29 here] and the official one [http://www.x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html here]&lt;br /&gt;
&lt;br /&gt;
If with some kernels you get troubles using Synaptics options, check dmesg, maybe Touchpad is detected by another driver too:&lt;br /&gt;
 DLL06E4:01 06CB:7A13 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-7/i2c-DLL06E4:01/0018:06CB:7A13.0003/input/input14&lt;br /&gt;
 hid-multitouch 0018:06CB:7A13.0003: input,hidraw2: I2C HID v1.00 Mouse [DLL06E4:01 06CB:7A13] on i2c-DLL06E4:01&lt;br /&gt;
If this is so, add /etc/modprobe.d/synaptics.conf with this line, cf Kernel section below:&lt;br /&gt;
 blacklist i2c-designware-platform&lt;br /&gt;
&lt;br /&gt;
On recent kernels, i2c-designware-platform is directly in the kernel, not as module anymore.&lt;br /&gt;
To manage to blacklist it, see https://unix.stackexchange.com/questions/423797/how-do-i-disable-i2c-designware-support-when-its-not-built-as-a-module#446913&lt;br /&gt;
Edit /etc/default/grub and append the following blacklist invocation to the command line, then update-grub.&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;… initcall_blacklist=dw_i2c_init_driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Touchscreen====&lt;br /&gt;
Touchscreen works well but when an external screen is connected, it spans over both screens so e.g. touching the middle of the laptop screen moves the mouse to some middle point of the virtual screen combining both screens.&lt;br /&gt;
&amp;lt;br&amp;gt;To fix it, see https://wiki.archlinux.org/index.php/Calibrating_Touchscreen&lt;br /&gt;
&amp;lt;br&amp;gt;This example is for an external screen mapped to the right of the laptop screen:&lt;br /&gt;
 # c0 = width of laptop screen / total width&lt;br /&gt;
 c0=$(bc -l &amp;lt;&amp;lt;&amp;lt; &amp;quot;scale=2; $(xrandr|grep -A1 eDP1|sed &#039;1d;s/x.*//&#039;)/$(xrandr|grep &#039;^Screen 0&#039;|sed &#039;s/.*current //;s/ x.*//&#039;)&amp;quot;)&lt;br /&gt;
 xinput set-prop &amp;quot;ELAN Touchscreen&amp;quot; --type=float &amp;quot;Coordinate Transformation Matrix&amp;quot; \&lt;br /&gt;
    c0 0  0 \&lt;br /&gt;
    0  1  0 \&lt;br /&gt;
    0  0  1&lt;br /&gt;
&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
Kernel complains about a missing file.&lt;br /&gt;
&amp;lt;br&amp;gt;Apparently we can get it from Windows drivers but I don&#039;t know where to find them, so I took [https://www.dropbox.com/s/8goc4omhnzxij93/BCM-0a5c-6410.hcd?dl=0 this one] and copied it into /lib/firmware/brcm&lt;br /&gt;
&lt;br /&gt;
Then Bluetooth was recognized but I couldn&#039;t pair my WM615 mouse.&lt;br /&gt;
&amp;lt;br&amp;gt;After restarting the Bt adaptor, I could finally pair:&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
  power off&lt;br /&gt;
  power on&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* https://wiki.debian.org/BluetoothUser&lt;br /&gt;
* https://wiki.archlinux.org/index.php/bluetooth&lt;br /&gt;
There is also a possibility to pair directly from bluetoothctl, see https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see [[#Hardware_changes]]&lt;br /&gt;
&lt;br /&gt;
====HiDPI====&lt;br /&gt;
Cinnamon handles it nicely but some applications don&#039;t such as Gimp and you end up with a microscopic tools ribbon.&lt;br /&gt;
&amp;lt;br&amp;gt;See https://wiki.archlinux.org/index.php/HiDPI for some useful tips&lt;br /&gt;
&lt;br /&gt;
Cinnamon / System Settings / Desktop Scaling has the same effect as `gsettings set org.cinnamon.desktop.interface scaling-factor 2`&lt;br /&gt;
&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (1016x572 millimeters)&lt;br /&gt;
   resolution:    96x96 dots per inch&lt;br /&gt;
I&#039;ve no ruler at hand but if it&#039;s 15.6&#039;&#039; in diagonal and pixels are square, this gives 293.4 dpi for screen dimensions of 332x187mm.&lt;br /&gt;
&amp;lt;br&amp;gt;So closest hit with common DPI is 96*3=288dpi&lt;br /&gt;
 xrandr --dpi 288&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (338x190 millimeters)&lt;br /&gt;
   resolution:    289x289 dots per inch&lt;br /&gt;
Let&#039;s document those fictive dimensions for next boots by creating /etc/X11/xorg.conf.d/90-monitor.conf with&lt;br /&gt;
 Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
     Identifier             &amp;quot;&amp;lt;default monitor&amp;gt;&amp;quot;&lt;br /&gt;
     DisplaySize            338 190    # In millimeters&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT5 and GTK+ 3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;To enable better scaling of QT5 and GTK+ 3, add to .bashrc (not to .xsessionrc otherwise Cinnamon taskbar is messed up!):&lt;br /&gt;
 QT_DEVICE_PIXEL_RATIO=3&lt;br /&gt;
 GDK_SCALE=3&lt;br /&gt;
 GDK_DPI_SCALE=0.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. Skype&lt;br /&gt;
 sudo apt-get install qt4-qtconfig&lt;br /&gt;
 qtconfig-qt4&lt;br /&gt;
=&amp;gt; one can change font size&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gimp 2.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. copy /usr/share/gimp/2.0/themes/Default as ~/.gimp-2.8/themes/HiDPI and change a few options:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
--- gtkrc&lt;br /&gt;
+++ gtkrc&lt;br /&gt;
-  GimpToolPalette::tool-icon-size   = button&lt;br /&gt;
+  GimpToolPalette::tool-icon-size   = dialog&lt;br /&gt;
-  GimpEditor::button-icon-size      = menu&lt;br /&gt;
+  GimpEditor::button-icon-size      = button&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wine&#039;&#039;&#039;&lt;br /&gt;
 winecfg&lt;br /&gt;
Change &amp;quot;dpi&amp;quot; in &amp;quot;Graphics&amp;quot; tab&lt;br /&gt;
&#039;&#039;&#039;Virtualbox&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;View/Scale Factor is helpful...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chromium&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Chrome works fine but &#039;&#039;Chromium&#039;&#039; broke at some point, so I&#039;ve to launch it with:&lt;br /&gt;
&lt;br /&gt;
 GDK_SCALE=2 exec chromium&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Small console font&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;I don&#039;t care but if that&#039;s an issue for you, from [https://github.com/mpalourdio/xps13/blob/master/HiDPI/tty.md here]:&lt;br /&gt;
 sudo dpkg-reconfigure console-setup&lt;br /&gt;
* Choose UTF-8&lt;br /&gt;
* Choose the default Combined - Latin, ... option (&amp;quot;Latin&amp;quot; includes the English alphabet)&lt;br /&gt;
* Select the terminus font&lt;br /&gt;
* Select 16x32&lt;br /&gt;
* OK&lt;br /&gt;
To apply immediately, open a TTY and run setupcon, else just reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Multiple displays&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Combining HiDPI screen with external non-HiDPI? See https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xpra&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;cf https://xpra.org/trac/ticket/2492&lt;br /&gt;
&lt;br /&gt;
====Sensors====&lt;br /&gt;
 apt-get install lm-sensors&lt;br /&gt;
 sensors-detect&lt;br /&gt;
Sensors-detect found coretemp which is now loaded via /etc/modules:&lt;br /&gt;
 coretemp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====External microphone====&lt;br /&gt;
The sole jack is a TRRS, combining output and mic.&lt;br /&gt;
&amp;lt;br&amp;gt;Soundcard is a Realtek ALC3266&lt;br /&gt;
  grep -r Realtek /proc/asound/card*&lt;br /&gt;
  /proc/asound/card0/codec#0:Codec: Realtek ALC3266&lt;br /&gt;
&amp;lt;br&amp;gt;With Debian+Cinnamon, the system detects the mic, we can see it in the sound properties and select it, but still the internal mic is used.&lt;br /&gt;
&amp;lt;br&amp;gt;When using pavucontrol, selecting the &amp;quot;headset microphone&amp;quot; works fine (it still needs some level boosting).&lt;br /&gt;
&lt;br /&gt;
====DA200====&lt;br /&gt;
[http://accessories.euro.dell.com/sna/products/Station_daccueil/productdetail.aspx?c=fr&amp;amp;l=fr&amp;amp;s=dhs&amp;amp;cs=frdhs1&amp;amp;sku=470-ABRY DA200] used to be recognized only if it was plugged at boot.&lt;br /&gt;
&amp;lt;br&amp;gt;With kernel 4.6 the device is properly detected dynamically.&lt;br /&gt;
&amp;lt;br&amp;gt;The adapter is actually using DisplayPort. &lt;br /&gt;
&amp;lt;br&amp;gt;VGA output works.&lt;br /&gt;
&lt;br /&gt;
HDMI output is limited to some modes (max 1920x1080, cf [http://www.dell.com/support/article/us/en/19/SLN303466 Dell support]) and by default xrandr will try an unsupported mode.&lt;br /&gt;
&amp;lt;br&amp;gt;Even &amp;quot;xrandr --output DP-1 --mode 1920x1080&amp;quot; fails by default.&lt;br /&gt;
&lt;br /&gt;
Some supported modes:  800x600, 1024x768, 1280x720, 1920x1080i&lt;br /&gt;
&amp;lt;br&amp;gt;1920x1080i is interlaced and awful to look at.&lt;br /&gt;
&amp;lt;br&amp;gt;Reducing the rate allows a non-interlaced 1920x1080 mode, you can test it with:&lt;br /&gt;
 xrandr --output DP-1 --mode 1920x1080 -r 30&lt;br /&gt;
If this works for you, you can create a new mode, using cvt to find the proper parameters:&lt;br /&gt;
 cvt 1920 1080 30&lt;br /&gt;
 # 1920x1080 29.95 Hz (CVT) hsync: 33.01 kHz; pclk: 79.75 MHz&lt;br /&gt;
 Modeline &amp;quot;1920x1080_30.00&amp;quot;   79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
Creating and adding the new mode:&lt;br /&gt;
 xrandr --newmode &amp;quot;1920x1080_30.00&amp;quot; 79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
 xrandr --addmode DP-1  &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
Now you can choose this new mode:&lt;br /&gt;
  xrandr --output DP-1 --mode &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
&lt;br /&gt;
When plugged the following hardware gets detected:&lt;br /&gt;
&lt;br /&gt;
lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp..     &amp;lt;= Ethernet&lt;br /&gt;
Bus 004 Device 002: ID 05e3:0617 Genesys Logic, Inc..&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 003 Device 003: ID 0835:2a01 Action Star Enterprise Co., Ltd. &amp;lt;= Billboard&lt;br /&gt;
Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;The USB Billboard Device Class definition describes the methods used to communicate the Alternate Modes supported by a device container to a host system. More details on Billboard Devices are available in the USB Billboard Device Class specification at the following link: http://www.usb.org/developers/docs/devclass_docs/.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
lspci:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
06:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:01.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:02.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
0a:00.0 USB controller: Intel Corporation Device 15b5 (prog-if 30 [XHCI])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lsmod:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
r8152                  49152  0&lt;br /&gt;
cdc_ether              16384  0&lt;br /&gt;
usbnet                 40960  1 cdc_ether&lt;br /&gt;
mii                    16384  2 r8152,usbnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Solved issues===&lt;br /&gt;
====i915 and blank screen====&lt;br /&gt;
There were numerous issues with the video card. Now with latest kernels (&amp;gt;=4.8) most issues are gone, still some occasional blank screen or freeze when plugging an external HDMI.&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
WM615 mouse used to act erratically, the cursor stopping now and then. Now with latest kernels and an Intel Wi-Fi+BT card it&#039;s fine.&lt;br /&gt;
====Wi-Fi====&lt;br /&gt;
Wi-Fi tends to disassociate under heavy load, switching to other SSIDs or frequencies (5Ghz&amp;lt;&amp;gt;2.4GHz) and coming back seems to help.&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see #Hardware_changes&lt;br /&gt;
&lt;br /&gt;
===Issues===&lt;br /&gt;
====rfkill button====&lt;br /&gt;
Rfkill button of the keyboard (Fn+PrtScr) doesn&#039;t seem to work, no big deal.&lt;br /&gt;
&lt;br /&gt;
==Kernels==&lt;br /&gt;
initramfs complains about lvmetad and I&#039;m not sure it&#039;s that useful on SSD, so just disabling it:&lt;br /&gt;
&amp;lt;br&amp;gt;Edit /etc/lvm/lvm.conf&lt;br /&gt;
 use_lvmetad=0&lt;br /&gt;
Then stop it&lt;br /&gt;
 systemctl stop lvm2-lvmetad&lt;br /&gt;
===Debian===&lt;br /&gt;
Debian kernel 4.8 works quite well&lt;br /&gt;
===Compilation notes===&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;, to compile &amp;gt;=4.4, one needs at least initramfs-tools v0.122 to get the nvme.ko properly loaded and therefore the SSD properly seen.&lt;br /&gt;
&lt;br /&gt;
To compile a vanilla kernel, cf http://www.cyberciti.biz/faq/debian-ubuntu-building-installing-a-custom-linux-kernel/&lt;br /&gt;
 sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc&lt;br /&gt;
 sudo apt-get install kernel-package&lt;br /&gt;
 wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz&lt;br /&gt;
 tar xf linux-4.4.tar.xz&lt;br /&gt;
 cd linux-4.4&lt;br /&gt;
 cp /boot/config-$(uname -r) .config&lt;br /&gt;
 make menuconfig&lt;br /&gt;
 make-kpkg clean&lt;br /&gt;
 make-kpkg --rootcmd fakeroot --initrd --append_to_version=9-doegox kernel_image kernel_headers -j 7&lt;br /&gt;
&lt;br /&gt;
==Hardware changes==&lt;br /&gt;
Replacing Broadcom Wi-Fi+BT by an [https://wikidevi.com/wiki/Intel Intel one]:&lt;br /&gt;
* Intel 7265 Dual Band Wireless-AC 7265NGW Card 802.11ac 867Mbps WIFI BT4.0 UK&lt;br /&gt;
** http://www.befr.ebay.be/itm/262049756966?_trksid=p2060353.m2749.l2649&amp;amp;ssPageName=STRK%3AMEBIDX%3AIT&lt;br /&gt;
** https://downloadcenter.intel.com/download/17045&lt;br /&gt;
** This requires installing package firmware-iwlwifi&lt;br /&gt;
** Seems to have less Wi-Fi issues, but still the same BT problems pairing the Dell mouse&lt;br /&gt;
&lt;br /&gt;
 iwlwifi 0000:02:00.0: firmware: direct-loading firmware iwlwifi-7265-17.ucode&lt;br /&gt;
 iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 7265, REV=0x184&lt;br /&gt;
&lt;br /&gt;
Alternatives to DA200:&lt;br /&gt;
* HDMI Male To VGA Female Converter&lt;br /&gt;
** http://www.aliexpress.com/item/1pc-HDMI-Male-To-VGA-Female-Converter-Box-Adapter-With-Audio-Cable-For-PC-HDTVHot-New/32448171552.html&lt;br /&gt;
* USB 3.0 10/100/1000Mbps Gigabit Ethernet RJ45&lt;br /&gt;
** http://www.aliexpress.com/item/Hot-selling-New-USB-3-0-10-100-1000Mbps-Gigabit-Ethernet-RJ45-External-Network-Card-LAN/32546613204.html&lt;br /&gt;
* 4-Port Ultra-Slim USB 3.0 Hub&lt;br /&gt;
** https://www.anker.com/products/A7516011&lt;br /&gt;
** http://www.amazon.de/Anker-Datenhub-Ultrabooks-weiteren-kompatiblen/dp/B00Y211AFM/&lt;br /&gt;
&lt;br /&gt;
==Misc hardware==&lt;br /&gt;
Smartcard reader&lt;br /&gt;
* ACS ACR38U PocketMate Smart Card Reader&lt;br /&gt;
** http://www.acs.com.hk/en/products/160/acr38u-pocketmate-smart-card-reader/&lt;br /&gt;
** http://www.befr.ebay.be/itm/EU-SHIPPING-Smart-Card-USB-ACS-ACR38U-National-ID-Tachograph-Reader-Writer-/121899037557&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10528</id>
		<title>Laptop Dell XPS 15</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Laptop_Dell_XPS_15&amp;diff=10528"/>
		<updated>2021-08-20T20:38:11Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Debian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Notes about installing a Debian Stretch on a Dell XPS 15&lt;br /&gt;
==Hardware==&lt;br /&gt;
Dell XPS 15 model 9550 (variant with touchscreen &amp;amp; PCIe m.2 ssd)&lt;br /&gt;
&lt;br /&gt;
From the [http://www.dell.com/support/home/fr/fr/frdhs1/product-support/servicetag/DHVNH72/configuration configuration] list:&lt;br /&gt;
* 6th Generation Intel(R) Core (TM) i7-6700HQ Quad Core (6M Cache, up to 3.5 GHz)&lt;br /&gt;
* 16Go (2x8Go) DDR4 2133MHz&lt;br /&gt;
* 15.6&amp;quot; 4K Ultra HD (3840 x 2160) InfinityEdge touch, Sliver&lt;br /&gt;
* 1To PCIe Solid State&lt;br /&gt;
* DW1830 3x3 802.11ac 2.4/5GHz + Bluetooth 4.1&lt;br /&gt;
* Dell 84 WHr 6-Cell Lithium-Ion Battery&lt;br /&gt;
* Internal US/International Qwerty Backlit Keyboard&lt;br /&gt;
From the drivers list:&lt;br /&gt;
* Realtek High Definition Audio ALC3266&lt;br /&gt;
* Realtek RTS5242 PCIe Gen2 CardReader&lt;br /&gt;
* Realtek USB GBE Ethernet Controller&lt;br /&gt;
* ST Microlectronics LNG3DMTR Motion Sensor&lt;br /&gt;
* Intel HD Graphics 530/P530&lt;br /&gt;
* nVIDIA Geforce GTX 960M Graphics&lt;br /&gt;
From dmesg (incomplete):&lt;br /&gt;
* BCM20703A1 Bluetooth 4.1 (firmware brcm/BCM-0a5c-6410.hcd)&lt;br /&gt;
From lspci -nn:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00:00.0 Host bridge [0600]: Intel Corporation Sky Lake Host Bridge/DRAM Registers [8086:1910] (rev 07)&lt;br /&gt;
00:01.0 PCI bridge [0604]: Intel Corporation Sky Lake PCIe Controller (x16) [8086:1901] (rev 07)&lt;br /&gt;
00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:191b] (rev 06)&lt;br /&gt;
00:04.0 Signal processing controller [1180]: Intel Corporation Device [8086:1903] (rev 07)&lt;br /&gt;
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f] (rev 31)&lt;br /&gt;
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131] (rev 31)&lt;br /&gt;
00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #0 [8086:a160] (rev 31)&lt;br /&gt;
00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-H LPSS I2C Controller #1 [8086:a161] (rev 31)&lt;br /&gt;
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-H CSME HECI #1 [8086:a13a] (rev 31)&lt;br /&gt;
00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-H SATA Controller [AHCI mode] [8086:a103] (rev 31)&lt;br /&gt;
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #1 [8086:a110] (rev f1)&lt;br /&gt;
00:1c.1 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #2 [8086:a111] (rev f1)&lt;br /&gt;
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #9 [8086:a118] (rev f1)&lt;br /&gt;
00:1d.4 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #13 [8086:a11c] (rev f1)&lt;br /&gt;
00:1d.6 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #15 [8086:a11e] (rev f1)&lt;br /&gt;
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC Controller [8086:a14e] (rev 31)&lt;br /&gt;
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H PMC [8086:a121] (rev 31)&lt;br /&gt;
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD Audio [8086:a170] (rev 31)&lt;br /&gt;
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus [8086:a123] (rev 31)&lt;br /&gt;
01:00.0 3D controller [0302]: NVIDIA Corporation GM107M [GeForce GTX 960M] [10de:139b] (rev ff)&lt;br /&gt;
02:00.0 Network controller [0280]: Broadcom Corporation BCM43602 802.11ac Wireless LAN SoC [14e4:43ba] (rev 01)&lt;br /&gt;
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device [10ec:525a] (rev 01)&lt;br /&gt;
04:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd Device [144d:a802] (rev 01)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
From lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 001 Device 003: ID 04f3:21d5 Elan Microelectronics Corp.            &amp;lt;= touchscreen&lt;br /&gt;
Bus 001 Device 002: ID 0a5c:6410 Broadcom Corp.                         &amp;lt;= bluetooth&lt;br /&gt;
Bus 001 Device 004: ID 0c45:6713 Microdia                               &amp;lt;= webcam&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From lscpu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Architecture:          x86_64&lt;br /&gt;
CPU op-mode(s):        32-bit, 64-bit&lt;br /&gt;
Byte Order:            Little Endian&lt;br /&gt;
CPU(s):                8&lt;br /&gt;
On-line CPU(s) list:   0-7&lt;br /&gt;
Thread(s) per core:    2&lt;br /&gt;
Core(s) per socket:    4&lt;br /&gt;
Socket(s):             1&lt;br /&gt;
NUMA node(s):          1&lt;br /&gt;
Vendor ID:             GenuineIntel&lt;br /&gt;
CPU family:            6&lt;br /&gt;
Model:                 94&lt;br /&gt;
Model name:            Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz&lt;br /&gt;
Stepping:              3&lt;br /&gt;
CPU MHz:               2847.812&lt;br /&gt;
CPU max MHz:           3500.0000&lt;br /&gt;
CPU min MHz:           800.0000&lt;br /&gt;
BogoMIPS:              5183.88&lt;br /&gt;
Virtualization:        VT-x&lt;br /&gt;
L1d cache:             32K&lt;br /&gt;
L1i cache:             32K&lt;br /&gt;
L2 cache:              256K&lt;br /&gt;
L3 cache:              6144K&lt;br /&gt;
NUMA node0 CPU(s):     0-7&lt;br /&gt;
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush &lt;br /&gt;
dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts &lt;br /&gt;
rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 &lt;br /&gt;
ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx &lt;br /&gt;
f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_notify hwp_act_window hwp_epp &lt;br /&gt;
intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid &lt;br /&gt;
rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dell Wireless 1830 = BCM43602 + BCM20703A1 (DW1830 Bluetooth 4.1 LE)&lt;br /&gt;
&lt;br /&gt;
BCM43602	PCI ID: 14e4:43ba&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# smartctl -d scsi -i /dev/nvme0n1&lt;br /&gt;
smartctl 6.4 2015-06-04 r4109 [x86_64-linux-4.3.0-1-amd64] (local build)&lt;br /&gt;
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org&lt;br /&gt;
&lt;br /&gt;
=== START OF INFORMATION SECTION ===&lt;br /&gt;
Vendor:               NVMe&lt;br /&gt;
Product:              PM951 NVMe SAMSU&lt;br /&gt;
Revision:             7D0Q&lt;br /&gt;
Compliance:           SPC-4&lt;br /&gt;
User Capacity:        1,024,209,543,168 bytes [1.02 TB]&lt;br /&gt;
Logical block size:   512 bytes&lt;br /&gt;
Rotation Rate:        Solid State Device&lt;br /&gt;
Logical Unit id:      0x0025384cf1b0fd29&lt;br /&gt;
Serial number:        S2FZNXAGC03824&lt;br /&gt;
Device type:          disk&lt;br /&gt;
Local Time is:        Sun Feb 14 22:02:03 2016 CET&lt;br /&gt;
SMART support is:     Unavailable - device lacks SMART capability.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* http://topics-cdn.dell.com/pdf/xps-15-9550-laptop_Service%20Manual_en-us.pdf&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dell_XPS_15&lt;br /&gt;
* https://bbs.archlinux.org/viewtopic.php?id=204739&lt;br /&gt;
* http://ubuntuforums.org/showthread.php?t=2301071&lt;br /&gt;
* http://forthescience.org/blog/2015/03/20/installing_ubuntu_14_04_on_the_new_dell_xps_13/&lt;br /&gt;
* https://wiki.debian.org/InstallingDebianOn/Dell/Dell%20XPS%2013&lt;br /&gt;
* http://bartongeorge.net/2015/02/23/update-2-dell-xps-13-laptop-developer-edition-sputnik-gen-4/&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
I first tried to keep a dual-boot just in case, but once we disable Raid and put SATA in AHCI mode, Windows can&#039;t boot anymore. (later I read it could be possible to fix it by rebooting several times Windows till safe mode is kicked in, but it was too late for me.)&lt;br /&gt;
&lt;br /&gt;
Just in case again, one can boot Windows and create a USB recovery.&lt;br /&gt;
==Bios==&lt;br /&gt;
* Secure Boot: disable&lt;br /&gt;
* SATA: switch from Raid to AHCI&lt;br /&gt;
* Boot: not sure it&#039;s needed but I disabled Windows boot manager entry and kept the hdd UEFI entry: UEFI: PM951 NVMe SAMSUNG 1024GB, Partition 1&lt;br /&gt;
* POST/Fastboot/Thorough&lt;br /&gt;
* auto os recovery threshold off&lt;br /&gt;
&lt;br /&gt;
To update the BIOS:&lt;br /&gt;
* put it on a USB stick&lt;br /&gt;
* reboot&lt;br /&gt;
* select BIOS flash update on the boot screen (F12).&lt;br /&gt;
No need to put it on a bootable DOS, just give the exe to the BIOS update built-in util.&lt;br /&gt;
&amp;lt;br&amp;gt;You can even drop the update on /boot/efi as it&#039;s also a FAT partition, no need for a USB memory stick.&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
* 1.2.0 aka A6 [https://downloads.dell.com/FOLDER03659467M/1/XPS_9550_1.2.0.exe XPS_9550_1.2.0.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=KTR76 fixes]&lt;br /&gt;
* 1.2.10 aka A10 [https://downloads.dell.com/FOLDER03800340M/1/XPS_9550_1.2.10.exe XPS_9550_1.2.10.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=96T2K fixes]&lt;br /&gt;
* 1.2.14 aka A13 [https://downloads.dell.com/FOLDER03906323M/1/XPS_9550_1.2.14.exe XPS_9550_1.2.14.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=VNMDK fixes]&lt;br /&gt;
* 1.2.16 [https://downloads.dell.com/FOLDER04030973M/1/XPS_9550_1.2.16.exe XPS_9550_1.2.16.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=J8GY6 fixes]&lt;br /&gt;
* 1.2.18 aka A16 [https://downloads.dell.com/FOLDER04078627M/1/XPS_9550_1.2.18.exe XPS_9550_1.2.18.exe] [http://www.dell.com/support/home/us/en/4/Drivers/DriversDetails?driverId=KD0C7 fixes]&lt;br /&gt;
* 1.2.21 [https://downloads.dell.com/FOLDER04190863M/1/XPS_9550_1.2.21.exe XPS_9550_1.2.21.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=6RV34 fixes]&lt;br /&gt;
* 1.2.25 [https://downloads.dell.com/FOLDER04319442M/1/XPS_9550_1.2.25.exe XPS_9550_1.2.25.exe] [http://www.dell.com/support/home/us/en/04/Drivers/DriversDetails?driverId=3W30W fixes]&lt;br /&gt;
* 1.2.29 [https://downloads.dell.com/FOLDER04449988M/1/XPS_9550_1.2.29.exe XPS_9550_1.2.29.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=F7M6G fixes]&lt;br /&gt;
* 1.3.0 [https://downloads.dell.com/FOLDER04481870M/1/XPS_9550_1.3.0.exe XPS_9550_1.3.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=NXVMP fixes]&lt;br /&gt;
* 1.4.0 [https://downloads.dell.com/FOLDER04499656M/1/XPS_9550_1.4.0.exe XPS_9550_1.4.0.exe] [http://www.dell.com/support/Home/us/en/19/Drivers/DriversDetails?driverId=DR9N6 fixes]&lt;br /&gt;
* 1.5.1 [https://downloads.dell.com/FOLDER04604618M/1/XPS_9550_1.5.1.exe XPS_9550_1.5.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=TWKFC fixes]&lt;br /&gt;
* 1.6.1 [https://downloads.dell.com/FOLDER04717493M/1/XPS_9550_1.6.1.exe XPS_9550_1.6.1.exe] [http://www.dell.com/support/Home/en/us/bebsdt1/Drivers/DriversDetails?driverId=PFJ08 fixes]&lt;br /&gt;
* 1.7.0 [https://downloads.dell.com/FOLDER04839266M/1/XPS_9550_1.7.0.exe XPS_9550_1.7.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=RYY62 fixes]&lt;br /&gt;
* 1.8.0 [https://downloads.dell.com/FOLDER05099834M/1/XPS_9550_1.8.0.exe XPS_9550_1.8.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=4GDY8 fixes]&lt;br /&gt;
* 1.9.0 [https://downloads.dell.com/FOLDER05256907M/1/XPS_9550_1.9.0.exe XPS_9550_1.9.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=xv1gp fixes]&lt;br /&gt;
* 1.10.0 [https://downloads.dell.com/FOLDER05476993M/1/XPS_9550_1.10.0.exe XPS_9550_1.10.0.exe] [http://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverId=3N7TY fixes]&lt;br /&gt;
* 1.11.2 [https://downloads.dell.com/FOLDER05770328M/1/XPS_9550_1.11.2.exe XPS_9550_1.11.2.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=gtm85 fixes]&lt;br /&gt;
* 1.12.0 [https://downloads.dell.com/FOLDER05865451M/1/XPS_9550_1.12.0.exe XPS_9550_1.12.0.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=7HTW2 fixes]&lt;br /&gt;
* 1.13.1 [https://dl.dell.com/FOLDER06021536M/1/XPS_9550_1.13.1.exe XPS_9550_1.13.1.exe] [https://www.dell.com/support/home/us/en/04/drivers/driversdetails?driverid=3hr07 fixes]&lt;br /&gt;
&lt;br /&gt;
Attention: with versions 1.2.10 through 1.2.16 and older Linux kernels, there is a serious bug that let the screen black after suspend/wake up. The workaround is to set the lightness to the maximum but it breaks further lightness tuning.&lt;br /&gt;
&lt;br /&gt;
Linux kernels 4.8 and below tend to work best with A6 BIOS (1.2.0), although there is a workaround that allows it to work with later versions.  This workaround uses the intel_reg utility to reset the &amp;quot;pwm_granuality&amp;quot; setting of the onboard graphics.  Solution discussed here: [http://en.community.dell.com/techcenter/os-applications/f/4613/t/19985320].  This issue is reportedly fixed in Linux 4.9, and also in recent Ubuntu 16.10 kernel updates.  See the patch here [https://patchwork.freedesktop.org/patch/109407/].&lt;br /&gt;
&lt;br /&gt;
Even with the intel_reg workaround above, the screen brightness cannot be set to the lowest level without turning the screen off.  This is fixed in 1.2.18.&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
I kept UEFI so we need a Debian netinstall because liveCD doesn&#039;t have UEFI support yet.&lt;br /&gt;
&amp;lt;br&amp;gt;But Wi-Fi requires a proprietary firmware:&lt;br /&gt;
 https://github.com/OpenELEC/wlan-firmware/blob/master/firmware/brcm/brcmfmac43602-pcie.bin&lt;br /&gt;
so the easiest is to take a Debian netinstall with proprietary firmwares included.&lt;br /&gt;
&amp;lt;br&amp;gt;At time of writing Stretch is testing and last release is alpha5:&lt;br /&gt;
 http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/stretch_di_alpha5/amd64/iso-cd/&lt;br /&gt;
dd the image on a USB stick and boot it.&lt;br /&gt;
&amp;lt;br&amp;gt;It will also complain for a missing brcmfmac43602-pcie.txt but we can safely ignore it. (well I think so, but Wi-Fi has troubles now and then under heavy load, see below)&lt;br /&gt;
&amp;lt;!-- sysml eml ems --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I chose a guided partitionning of the entire disk, with encrypted LVM containing /, /home and swap. But proposed / was a bit too small IMHO (10G) so I deleted and recreated / (50G) and /home.&lt;br /&gt;
&amp;lt;br&amp;gt;Initially I tried to add the &amp;quot;discard&amp;quot; option for the partitions which should help on SSD but the kernel reported that &amp;quot;discard&amp;quot; wasn&#039;t supported by the disk.&lt;br /&gt;
&lt;br /&gt;
If you want to backup partition table and partitions before destroying everything, it&#039;s the right time!&lt;br /&gt;
 parted /dev/nvme0n1&lt;br /&gt;
 print&lt;br /&gt;
 sgdisk --backup=/some/safe/location/nvme0n1.gpt /dev/nvme0n1&lt;br /&gt;
I installed Cinnamon. I don&#039;t know for the others but Cinnamon has a nice auto setting to double features on HiDPI screens.&lt;br /&gt;
&lt;br /&gt;
===Gnome===&lt;br /&gt;
Update: now using Gnome3.&lt;br /&gt;
Needs to replace lightdm by gdm3 to get newer lock screen (gnome-screensaver is deprecated)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg-reconfigure gdm3&lt;br /&gt;
(choose gdm3)&lt;br /&gt;
# delay before blanking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.session idle-delay 300&lt;br /&gt;
# delay after blanking before locking, in seconds:&lt;br /&gt;
gsettings set org.gnome.desktop.screensaver lock-delay 10&lt;br /&gt;
(reboot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sometimes after a crash, gnome extensions (https://extensions.gnome.org/local/) are disabled. To reenable them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dconf write /org/gnome/shell/disable-user-extensions false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==First boot==&lt;br /&gt;
Once installed, the Debian didn&#039;t boot up.&lt;br /&gt;
&amp;lt;br&amp;gt;I tried many things but at the end the only thing that worked was to copy Debian EFI to the default one:&lt;br /&gt;
&lt;br /&gt;
Starting the netinstall again, in rescue mode, get a chroot shell, then&lt;br /&gt;
 mount /dev/nvme0n1p1 /boot/efi&lt;br /&gt;
 cd /boot/efi/EFI&lt;br /&gt;
 mkdir boot&lt;br /&gt;
 cp debian/grubx64.efi boot/bootx64.efi&lt;br /&gt;
I also deleted the Windows files in EFI.&lt;br /&gt;
&lt;br /&gt;
Resource:&lt;br /&gt;
* https://wiki.debian.org/GrubEFIReinstall&lt;br /&gt;
* https://wiki.archlinux.org/index.php/GRUB#Create_an_ESP&lt;br /&gt;
* https://help.ubuntu.com/community/UEFI&lt;br /&gt;
* https://wiki.debian.org/UEFI&lt;br /&gt;
* https://isalo.org/wiki.debian-fr/Debian_%26_UEFI    &lt;br /&gt;
&lt;br /&gt;
FTR things that failed included:&lt;br /&gt;
* [http://www.rodsbooks.com/refind/getting.html Refind] couldn&#039;t boot at all. Strange as the netinstall could boot...&lt;br /&gt;
* tweaks with efibootmgr, update-grub etc&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UPDATE&#039;&#039;&#039;: It might be possible to fix the issue from the BIOS itself, see http://www.dell.com/support/article/us/en/04/SLN297060/en&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
===Working===&lt;br /&gt;
* Screen&lt;br /&gt;
* Touchscreen&lt;br /&gt;
* Touchpad&lt;br /&gt;
* Keyboard backlight and media buttons (volume, luminosity, backlight)&lt;br /&gt;
* Wi-Fi (with the proprietary driver, cf installation above)&lt;br /&gt;
* HDMI&lt;br /&gt;
* SD-Card reader&lt;br /&gt;
* Speakers, mic&lt;br /&gt;
* Webcam&lt;br /&gt;
&lt;br /&gt;
===Working after manual steps===&lt;br /&gt;
====i915====&lt;br /&gt;
Screen was working but dmesg was complaining:&lt;br /&gt;
 i915 0000:00:02.0: firmware: failed to load i915/skl_dmc_ver1.bin&lt;br /&gt;
So I installed that firmware, not sure what it&#039;s changed&lt;br /&gt;
 sudo apt-get install firmware-misc-nonfree&lt;br /&gt;
====Optimus====&lt;br /&gt;
Resources:&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Optimus&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Bumblebee&lt;br /&gt;
 apt-get install bumblebee-nvidia nvidia-libopencl1 nvidia-opencl-icd nvidia-opencl-icd:i386 libcuda1-i386 nvidia-smi clinfo&lt;br /&gt;
 reboot&lt;br /&gt;
Example:&lt;br /&gt;
 apt-get install nvidia-settings&lt;br /&gt;
 optirun -b none nvidia-settings -c :8&lt;br /&gt;
This also works for CUDA/OpenCL:&lt;br /&gt;
 optirun -b none ./hashcat64.bin -m 500 example500.hash example.dict&lt;br /&gt;
&lt;br /&gt;
Testing:&lt;br /&gt;
 optirun -vv glxgears&lt;br /&gt;
 optirun -vv clinfo&lt;br /&gt;
 optirun -b none ./hashcat64.bin -I&lt;br /&gt;
 optirun --no-xorg ./hashcat64.bin -I&lt;br /&gt;
&lt;br /&gt;
As bridge, primus or virtualgl can be used. Primus is available in the Debian repos while VirtualGL is [https://sourceforge.net/projects/virtualgl/?source=typ_redirect here]. Using primus currently.&lt;br /&gt;
&lt;br /&gt;
CUDA toolkit:&lt;br /&gt;
 apt-get install nvidia-cuda-toolkit&lt;br /&gt;
It removed nvidia-libopencl1 but hashcat is still running fine...&lt;br /&gt;
&lt;br /&gt;
GPU load:&lt;br /&gt;
 optirun --no-xorg nvidia-smi&lt;br /&gt;
&lt;br /&gt;
====Touchpad====&lt;br /&gt;
Nothing wrong with the touchpad but its default config is a bit painful especially because it&#039;s large and my right palm touches it often, even with the option to diable it when typing and because it&#039;s &amp;quot;soft&amp;quot; buttons.&lt;br /&gt;
&amp;lt;br&amp;gt;I disabled the button area to limit somehow the problem but still you&#039;ve to get used to first touch and hold before pressing a button to do a drag and drop and not the opposite.&lt;br /&gt;
 synclient AreaBottomEdge=4026&lt;br /&gt;
To add a middle button:&lt;br /&gt;
 synclient RightButtonAreaLeft=3914&lt;br /&gt;
 synclient RightButtonAreaRight=0&lt;br /&gt;
 synclient RightButtonAreaTop=4026&lt;br /&gt;
 synclient RightButtonAreaBottom=0&lt;br /&gt;
 synclient MiddleButtonAreaLeft=3100&lt;br /&gt;
 synclient MiddleButtonAreaRight=3873&lt;br /&gt;
 synclient MiddleButtonAreaTop=4026&lt;br /&gt;
 synclient MiddleButtonAreaBottom=0&lt;br /&gt;
And because I love it:&lt;br /&gt;
 synclient CircularScrolling=1&lt;br /&gt;
Some doc [https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Buttonless_touchpads_.28aka_ClickPads.29 here] and the official one [http://www.x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html here]&lt;br /&gt;
&lt;br /&gt;
If with some kernels you get troubles using Synaptics options, check dmesg, maybe Touchpad is detected by another driver too:&lt;br /&gt;
 DLL06E4:01 06CB:7A13 Touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-7/i2c-DLL06E4:01/0018:06CB:7A13.0003/input/input14&lt;br /&gt;
 hid-multitouch 0018:06CB:7A13.0003: input,hidraw2: I2C HID v1.00 Mouse [DLL06E4:01 06CB:7A13] on i2c-DLL06E4:01&lt;br /&gt;
If this is so, add /etc/modprobe.d/synaptics.conf with this line, cf Kernel section below:&lt;br /&gt;
 blacklist i2c-designware-platform&lt;br /&gt;
&lt;br /&gt;
On recent kernels, i2c-designware-platform is directly in the kernel, not as module anymore.&lt;br /&gt;
To manage to blacklist it, see https://unix.stackexchange.com/questions/423797/how-do-i-disable-i2c-designware-support-when-its-not-built-as-a-module#446913&lt;br /&gt;
Edit /etc/default/grub and append the following blacklist invocation to the command line, then update-grub.&lt;br /&gt;
 GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;… initcall_blacklist=dw_i2c_init_driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Touchscreen====&lt;br /&gt;
Touchscreen works well but when an external screen is connected, it spans over both screens so e.g. touching the middle of the laptop screen moves the mouse to some middle point of the virtual screen combining both screens.&lt;br /&gt;
&amp;lt;br&amp;gt;To fix it, see https://wiki.archlinux.org/index.php/Calibrating_Touchscreen&lt;br /&gt;
&amp;lt;br&amp;gt;This example is for an external screen mapped to the right of the laptop screen:&lt;br /&gt;
 # c0 = width of laptop screen / total width&lt;br /&gt;
 c0=$(bc -l &amp;lt;&amp;lt;&amp;lt; &amp;quot;scale=2; $(xrandr|grep -A1 eDP1|sed &#039;1d;s/x.*//&#039;)/$(xrandr|grep &#039;^Screen 0&#039;|sed &#039;s/.*current //;s/ x.*//&#039;)&amp;quot;)&lt;br /&gt;
 xinput set-prop &amp;quot;ELAN Touchscreen&amp;quot; --type=float &amp;quot;Coordinate Transformation Matrix&amp;quot; \&lt;br /&gt;
    c0 0  0 \&lt;br /&gt;
    0  1  0 \&lt;br /&gt;
    0  0  1&lt;br /&gt;
&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
Kernel complains about a missing file.&lt;br /&gt;
&amp;lt;br&amp;gt;Apparently we can get it from Windows drivers but I don&#039;t know where to find them, so I took [https://www.dropbox.com/s/8goc4omhnzxij93/BCM-0a5c-6410.hcd?dl=0 this one] and copied it into /lib/firmware/brcm&lt;br /&gt;
&lt;br /&gt;
Then Bluetooth was recognized but I couldn&#039;t pair my WM615 mouse.&lt;br /&gt;
&amp;lt;br&amp;gt;After restarting the Bt adaptor, I could finally pair:&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
  power off&lt;br /&gt;
  power on&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* https://wiki.debian.org/BluetoothUser&lt;br /&gt;
* https://wiki.archlinux.org/index.php/bluetooth&lt;br /&gt;
There is also a possibility to pair directly from bluetoothctl, see https://wiki.archlinux.org/index.php/bluetooth#Bluetoothctl&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see [[#Hardware_changes]]&lt;br /&gt;
&lt;br /&gt;
====HiDPI====&lt;br /&gt;
Cinnamon handles it nicely but some applications don&#039;t such as Gimp and you end up with a microscopic tools ribbon.&lt;br /&gt;
&amp;lt;br&amp;gt;See https://wiki.archlinux.org/index.php/HiDPI for some useful tips&lt;br /&gt;
&lt;br /&gt;
Cinnamon / System Settings / Desktop Scaling has the same effect as `gsettings set org.cinnamon.desktop.interface scaling-factor 2`&lt;br /&gt;
&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (1016x572 millimeters)&lt;br /&gt;
   resolution:    96x96 dots per inch&lt;br /&gt;
I&#039;ve no ruler at hand but if it&#039;s 15.6&#039;&#039; in diagonal and pixels are square, this gives 293.4 dpi for screen dimensions of 332x187mm.&lt;br /&gt;
&amp;lt;br&amp;gt;So closest hit with common DPI is 96*3=288dpi&lt;br /&gt;
 xrandr --dpi 288&lt;br /&gt;
 xdpyinfo | grep -B2 resolution&lt;br /&gt;
 screen #0:&lt;br /&gt;
   dimensions:    3840x2160 pixels (338x190 millimeters)&lt;br /&gt;
   resolution:    289x289 dots per inch&lt;br /&gt;
Let&#039;s document those fictive dimensions for next boots by creating /etc/X11/xorg.conf.d/90-monitor.conf with&lt;br /&gt;
 Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
     Identifier             &amp;quot;&amp;lt;default monitor&amp;gt;&amp;quot;&lt;br /&gt;
     DisplaySize            338 190    # In millimeters&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT5 and GTK+ 3&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;To enable better scaling of QT5 and GTK+ 3, add to .bashrc (not to .xsessionrc otherwise Cinnamon taskbar is messed up!):&lt;br /&gt;
 QT_DEVICE_PIXEL_RATIO=3&lt;br /&gt;
 GDK_SCALE=3&lt;br /&gt;
 GDK_DPI_SCALE=0.4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QT4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. Skype&lt;br /&gt;
 sudo apt-get install qt4-qtconfig&lt;br /&gt;
 qtconfig-qt4&lt;br /&gt;
=&amp;gt; one can change font size&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gimp 2.8&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;E.g. copy /usr/share/gimp/2.0/themes/Default as ~/.gimp-2.8/themes/HiDPI and change a few options:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
--- gtkrc&lt;br /&gt;
+++ gtkrc&lt;br /&gt;
-  GimpToolPalette::tool-icon-size   = button&lt;br /&gt;
+  GimpToolPalette::tool-icon-size   = dialog&lt;br /&gt;
-  GimpEditor::button-icon-size      = menu&lt;br /&gt;
+  GimpEditor::button-icon-size      = button&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wine&#039;&#039;&#039;&lt;br /&gt;
 winecfg&lt;br /&gt;
Change &amp;quot;dpi&amp;quot; in &amp;quot;Graphics&amp;quot; tab&lt;br /&gt;
&#039;&#039;&#039;Virtualbox&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;View/Scale Factor is helpful...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chromium&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Chrome works fine but &#039;&#039;Chromium&#039;&#039; broke at some point, so I&#039;ve to launch it with:&lt;br /&gt;
&lt;br /&gt;
 GDK_SCALE=2 exec chromium&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Small console font&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;br&amp;gt;I don&#039;t care but if that&#039;s an issue for you, from [https://github.com/mpalourdio/xps13/blob/master/HiDPI/tty.md here]:&lt;br /&gt;
 sudo dpkg-reconfigure console-setup&lt;br /&gt;
* Choose UTF-8&lt;br /&gt;
* Choose the default Combined - Latin, ... option (&amp;quot;Latin&amp;quot; includes the English alphabet)&lt;br /&gt;
* Select the terminus font&lt;br /&gt;
* Select 16x32&lt;br /&gt;
* OK&lt;br /&gt;
To apply immediately, open a TTY and run setupcon, else just reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Multiple displays&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;Combining HiDPI screen with external non-HiDPI? See https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;xpra&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;cf https://xpra.org/trac/ticket/2492&lt;br /&gt;
&lt;br /&gt;
====Sensors====&lt;br /&gt;
 apt-get install lm-sensors&lt;br /&gt;
 sensors-detect&lt;br /&gt;
Sensors-detect found coretemp which is now loaded via /etc/modules:&lt;br /&gt;
 coretemp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====External microphone====&lt;br /&gt;
The sole jack is a TRRS, combining output and mic.&lt;br /&gt;
&amp;lt;br&amp;gt;Soundcard is a Realtek ALC3266&lt;br /&gt;
  grep -r Realtek /proc/asound/card*&lt;br /&gt;
  /proc/asound/card0/codec#0:Codec: Realtek ALC3266&lt;br /&gt;
&amp;lt;br&amp;gt;With Debian+Cinnamon, the system detects the mic, we can see it in the sound properties and select it, but still the internal mic is used.&lt;br /&gt;
&amp;lt;br&amp;gt;When using pavucontrol, selecting the &amp;quot;headset microphone&amp;quot; works fine (it still needs some level boosting).&lt;br /&gt;
&lt;br /&gt;
====DA200====&lt;br /&gt;
[http://accessories.euro.dell.com/sna/products/Station_daccueil/productdetail.aspx?c=fr&amp;amp;l=fr&amp;amp;s=dhs&amp;amp;cs=frdhs1&amp;amp;sku=470-ABRY DA200] used to be recognized only if it was plugged at boot.&lt;br /&gt;
&amp;lt;br&amp;gt;With kernel 4.6 the device is properly detected dynamically.&lt;br /&gt;
&amp;lt;br&amp;gt;The adapter is actually using DisplayPort. &lt;br /&gt;
&amp;lt;br&amp;gt;VGA output works.&lt;br /&gt;
&lt;br /&gt;
HDMI output is limited to some modes (max 1920x1080, cf [http://www.dell.com/support/article/us/en/19/SLN303466 Dell support]) and by default xrandr will try an unsupported mode.&lt;br /&gt;
&amp;lt;br&amp;gt;Even &amp;quot;xrandr --output DP-1 --mode 1920x1080&amp;quot; fails by default.&lt;br /&gt;
&lt;br /&gt;
Some supported modes:  800x600, 1024x768, 1280x720, 1920x1080i&lt;br /&gt;
&amp;lt;br&amp;gt;1920x1080i is interlaced and awful to look at.&lt;br /&gt;
&amp;lt;br&amp;gt;Reducing the rate allows a non-interlaced 1920x1080 mode, you can test it with:&lt;br /&gt;
 xrandr --output DP-1 --mode 1920x1080 -r 30&lt;br /&gt;
If this works for you, you can create a new mode, using cvt to find the proper parameters:&lt;br /&gt;
 cvt 1920 1080 30&lt;br /&gt;
 # 1920x1080 29.95 Hz (CVT) hsync: 33.01 kHz; pclk: 79.75 MHz&lt;br /&gt;
 Modeline &amp;quot;1920x1080_30.00&amp;quot;   79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
Creating and adding the new mode:&lt;br /&gt;
 xrandr --newmode &amp;quot;1920x1080_30.00&amp;quot; 79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync&lt;br /&gt;
 xrandr --addmode DP-1  &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
Now you can choose this new mode:&lt;br /&gt;
  xrandr --output DP-1 --mode &amp;quot;1920x1080_30.00&amp;quot;&lt;br /&gt;
&lt;br /&gt;
When plugged the following hardware gets detected:&lt;br /&gt;
&lt;br /&gt;
lsusb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp..     &amp;lt;= Ethernet&lt;br /&gt;
Bus 004 Device 002: ID 05e3:0617 Genesys Logic, Inc..&lt;br /&gt;
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&lt;br /&gt;
Bus 003 Device 003: ID 0835:2a01 Action Star Enterprise Co., Ltd. &amp;lt;= Billboard&lt;br /&gt;
Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub&lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;The USB Billboard Device Class definition describes the methods used to communicate the Alternate Modes supported by a device container to a host system. More details on Billboard Devices are available in the USB Billboard Device Class specification at the following link: http://www.usb.org/developers/docs/devclass_docs/.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
lspci:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
06:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:00.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:01.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
07:02.0 PCI bridge: Intel Corporation Device 1576 (prog-if 00 [Normal decode])&lt;br /&gt;
0a:00.0 USB controller: Intel Corporation Device 15b5 (prog-if 30 [XHCI])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lsmod:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
r8152                  49152  0&lt;br /&gt;
cdc_ether              16384  0&lt;br /&gt;
usbnet                 40960  1 cdc_ether&lt;br /&gt;
mii                    16384  2 r8152,usbnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Solved issues===&lt;br /&gt;
====i915 and blank screen====&lt;br /&gt;
There were numerous issues with the video card. Now with latest kernels (&amp;gt;=4.8) most issues are gone, still some occasional blank screen or freeze when plugging an external HDMI.&lt;br /&gt;
====Bluetooth====&lt;br /&gt;
WM615 mouse used to act erratically, the cursor stopping now and then. Now with latest kernels and an Intel Wi-Fi+BT card it&#039;s fine.&lt;br /&gt;
====Wi-Fi====&lt;br /&gt;
Wi-Fi tends to disassociate under heavy load, switching to other SSIDs or frequencies (5Ghz&amp;lt;&amp;gt;2.4GHz) and coming back seems to help.&lt;br /&gt;
&lt;br /&gt;
I finally changed the Wi-Fi+BT card for an Intel one, see #Hardware_changes&lt;br /&gt;
&lt;br /&gt;
===Issues===&lt;br /&gt;
====rfkill button====&lt;br /&gt;
Rfkill button of the keyboard (Fn+PrtScr) doesn&#039;t seem to work, no big deal.&lt;br /&gt;
&lt;br /&gt;
==Kernels==&lt;br /&gt;
initramfs complains about lvmetad and I&#039;m not sure it&#039;s that useful on SSD, so just disabling it:&lt;br /&gt;
&amp;lt;br&amp;gt;Edit /etc/lvm/lvm.conf&lt;br /&gt;
 use_lvmetad=0&lt;br /&gt;
Then stop it&lt;br /&gt;
 systemctl stop lvm2-lvmetad&lt;br /&gt;
===Debian===&lt;br /&gt;
Debian kernel 4.8 works quite well&lt;br /&gt;
===Compilation notes===&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;, to compile &amp;gt;=4.4, one needs at least initramfs-tools v0.122 to get the nvme.ko properly loaded and therefore the SSD properly seen.&lt;br /&gt;
&lt;br /&gt;
To compile a vanilla kernel, cf http://www.cyberciti.biz/faq/debian-ubuntu-building-installing-a-custom-linux-kernel/&lt;br /&gt;
 sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc&lt;br /&gt;
 sudo apt-get install kernel-package&lt;br /&gt;
 wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz&lt;br /&gt;
 tar xf linux-4.4.tar.xz&lt;br /&gt;
 cd linux-4.4&lt;br /&gt;
 cp /boot/config-$(uname -r) .config&lt;br /&gt;
 make menuconfig&lt;br /&gt;
 make-kpkg clean&lt;br /&gt;
 make-kpkg --rootcmd fakeroot --initrd --append_to_version=9-doegox kernel_image kernel_headers -j 7&lt;br /&gt;
&lt;br /&gt;
==Hardware changes==&lt;br /&gt;
Replacing Broadcom Wi-Fi+BT by an [https://wikidevi.com/wiki/Intel Intel one]:&lt;br /&gt;
* Intel 7265 Dual Band Wireless-AC 7265NGW Card 802.11ac 867Mbps WIFI BT4.0 UK&lt;br /&gt;
** http://www.befr.ebay.be/itm/262049756966?_trksid=p2060353.m2749.l2649&amp;amp;ssPageName=STRK%3AMEBIDX%3AIT&lt;br /&gt;
** https://downloadcenter.intel.com/download/17045&lt;br /&gt;
** This requires installing package firmware-iwlwifi&lt;br /&gt;
** Seems to have less Wi-Fi issues, but still the same BT problems pairing the Dell mouse&lt;br /&gt;
&lt;br /&gt;
 iwlwifi 0000:02:00.0: firmware: direct-loading firmware iwlwifi-7265-17.ucode&lt;br /&gt;
 iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 7265, REV=0x184&lt;br /&gt;
&lt;br /&gt;
Alternatives to DA200:&lt;br /&gt;
* HDMI Male To VGA Female Converter&lt;br /&gt;
** http://www.aliexpress.com/item/1pc-HDMI-Male-To-VGA-Female-Converter-Box-Adapter-With-Audio-Cable-For-PC-HDTVHot-New/32448171552.html&lt;br /&gt;
* USB 3.0 10/100/1000Mbps Gigabit Ethernet RJ45&lt;br /&gt;
** http://www.aliexpress.com/item/Hot-selling-New-USB-3-0-10-100-1000Mbps-Gigabit-Ethernet-RJ45-External-Network-Card-LAN/32546613204.html&lt;br /&gt;
* 4-Port Ultra-Slim USB 3.0 Hub&lt;br /&gt;
** https://www.anker.com/products/A7516011&lt;br /&gt;
** http://www.amazon.de/Anker-Datenhub-Ultrabooks-weiteren-kompatiblen/dp/B00Y211AFM/&lt;br /&gt;
&lt;br /&gt;
==Misc hardware==&lt;br /&gt;
Smartcard reader&lt;br /&gt;
* ACS ACR38U PocketMate Smart Card Reader&lt;br /&gt;
** http://www.acs.com.hk/en/products/160/acr38u-pocketmate-smart-card-reader/&lt;br /&gt;
** http://www.befr.ebay.be/itm/EU-SHIPPING-Smart-Card-USB-ACS-ACR38U-National-ID-Tachograph-Reader-Writer-/121899037557&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Patents&amp;diff=10527</id>
		<title>Patents</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Patents&amp;diff=10527"/>
		<updated>2021-05-28T08:47:33Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Granted patents==&lt;br /&gt;
Note: les traductions officielles en français, parfois loufoques, ne proviennent pas des auteurs...&lt;br /&gt;
===SECURE PAIRING FOR WIRED OR WIRELESS COMMUNICATIONS DEVICES===&lt;br /&gt;
* aka &#039;&#039;&#039;APPARIEMENT SECURISE POUR DISPOSITIFS DE COMMUNICATION FILAIRES OU SANS FIL&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  Vauclair;  Marc  (Leuven,  BE,  US) , Serret Avila;  Javier  (Brussels,  BE,  US) , Etienne; Lionel Georges  (Leuven,  BE,  US) , Teuwen;  Philippe  (Leuven,  BE,  US)&lt;br /&gt;
* Priority date:   Sep 8, 2004&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006027725&amp;amp;F=0 WO2006027725] (A1)&lt;br /&gt;
** &#039;&#039;&#039;US8813188 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US8813188 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP1792442 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP1792442B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN101015173 (B)&#039;&#039;&#039;&lt;br /&gt;
** DE602005019589 (D1)&lt;br /&gt;
** KR20070050057  (A)&lt;br /&gt;
** JP2008512891  (A)&lt;br /&gt;
** AT459158  (T)&lt;br /&gt;
** &#039;&#039;&#039;TWI467978 (B)&#039;&#039;&#039; ??&lt;br /&gt;
&lt;br /&gt;
===METHOD AND DEVICE FOR INCREASED RFID TRANSMISSION SECURITY===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCEDE ET DISPOSITIF AMELIORANT LA SECURITE DE TRANSMISSION DES IDRF&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  	Teuwen;  Philippe  (Ixelles,  BE,  US) , Thueringer;  Peter  (Graz,  AT,  US)&lt;br /&gt;
* Priority date	Jun 7, 2005&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006131861&amp;amp;F=0 WO2006131861] (A1)&lt;br /&gt;
** &#039;&#039;&#039;US 8813188 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US8813188B2 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;[http://v3.espacenet.com/publicationDetails/biblio?adjacent=true&amp;amp;KC=B1&amp;amp;date=20080305&amp;amp;NR=1894145A1&amp;amp;DB=EPODOC&amp;amp;locale=en_EP&amp;amp;CC=EP&amp;amp;FT=D EP1894145] (B1) ([https://patents.google.com/patent/EP1894145B1 Google Patents])&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;CN101194274  (B)&#039;&#039;&#039; [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200680020153&amp;amp;D1=appno 200680020153]&lt;br /&gt;
** DE602006006055 (D1)&lt;br /&gt;
** &#039;&#039;&#039;JP4739342 (B2)&#039;&#039;&#039;&lt;br /&gt;
** AT427536  (T)&lt;br /&gt;
** &#039;&#039;&#039;KR101270039 (B1)&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;TWI467978 (B)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===WATERMARKING OF A PROCESSING MODULE===&lt;br /&gt;
* aka &#039;&#039;&#039;FILIGRANAGE D&#039;UN MODULE DE TRAITEMENT&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  Teuwen;  Philippe  (Ixelles,  BE,  US)&lt;br /&gt;
* Priority date	Sep 30, 2005&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=US&amp;amp;NR=8209543B2&amp;amp;KC=B2&amp;amp;FT=D&amp;amp;ND=1&amp;amp;date=20120626&amp;amp;DB=&amp;amp;locale=en_EP WO2007036863] (A3)&lt;br /&gt;
** &#039;&#039;&#039;US 8209543 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US8209543 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=1934877A2&amp;amp;KC=A2&amp;amp;FT=D EP1934877] (A2)([https://patents.google.com/patent/EP1934877A2 Google Patents])&lt;br /&gt;
** CN101273365  (A) [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200680035901&amp;amp;D1=appno 200680035901]&lt;br /&gt;
** JP2009510880  (A)&lt;br /&gt;
&lt;br /&gt;
===METHOD OF OBFUSCATING A CODE===&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE) ; Nikov; Ventzislav; (Haasrode, BE)&lt;br /&gt;
* Priority date	Aug 26, 2009&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9465926 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9465926 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;[http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2290547B1&amp;amp;KC=B1&amp;amp;FT=D EP2290547 (B1)]&#039;&#039;&#039; ([https://patents.google.com/patent/EP2290547B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;US 9965401 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9965401B2 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CHALLENGE RESPONSE BASED ENROLLMENT OF PHYSICAL UNCLONABLE FUNCTIONS===&lt;br /&gt;
* aka &#039;&#039;&#039;ENROLLMENT OF PHYSICALLY UNCLONABLE FUNCTIONS&#039;&#039;&#039;&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE) ; Nikov; Ventzislav; (Haasrode, BE)&lt;br /&gt;
* Priority date	Nov 19, 2010&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US8694778 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US8694778 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2456121 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2456121B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN102571748 (B)&#039;&#039;&#039; ([[https://patents.google.com/patent/CN102571748B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ELECTRONIC COMPONENT WITH CONFIGURABLE FUNCTIONALITY===&lt;br /&gt;
* aka &#039;&#039;&#039;ELECTRONIC COMPONENT&#039;&#039;&#039;&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE)&lt;br /&gt;
* Priority date	Nov 30, 2010&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US8990519 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US8990519 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2458522A1&amp;amp;KC=A1&amp;amp;FT=D EP2458522] (A1) ([https://patents.google.com/patent/EP2458522A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN102609558 (B)&#039;&#039;&#039; ([https://patents.google.com/patent/CN102609558B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIGITAL WALLET DEVICE FOR VIRTUAL WALLET===&lt;br /&gt;
* Inventors:    Teuwen Philippe;  Colnot Cedric;&lt;br /&gt;
* Priority date Dec 19, 2012 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10147086B2 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10147086B2 Google Patents])&lt;br /&gt;
** EP2747015 (A3) ([https://www.google.be/patents/EP2747015A3 Google Patents])&lt;br /&gt;
** CN103886455 (A) ([https://www.google.be/patents/CN103886455A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIGITAL WALLET BRIDGE===&lt;br /&gt;
* Inventors:    Colnot Cedric;  Teuwen Philippe&lt;br /&gt;
* Priority date Apr 2,2013 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10102522B2 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10102522B2 Google Patents])&lt;br /&gt;
** EP2787473 (A1) ([https://www.google.be/patents/EP2787473A1?cl=en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===BINDING MOBILE DEVICE SECURE SOFTWARE COMPONENTS TO THE SIM===&lt;br /&gt;
* Inventors: Peter Rombouts, Philippe Teuwen, Frank Michaud&lt;br /&gt;
* Priority date: Dec 19, 2013 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9264899 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9264899 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;US 9584514 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9584514B2 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104731612 (B)&#039;&#039;&#039; ([https://patents.google.com/patent/CN104731612A Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2887610 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2887610B1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===METHOD OF GENERATING A STRUCTURE AND CORRESPONDING STRUCTURE===&lt;br /&gt;
* Inventors: Colnot Vincent Cedric; Rombouts Peter; Teuwen Philippe; Michaud Frank&lt;br /&gt;
* Priority Date: Nov 21, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9563754 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9563754 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2876593 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2876593B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104657636 (B)&#039;&#039;&#039; ([https://patents.google.com/patent/CN104657636B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RESTRICTING SOFTWARE TO AUTHORIZED WIRELESS ENVIRONMENTS===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Frank Michaud&lt;br /&gt;
* Priority Date: Dec 13, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US9693224 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9693224 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2884786 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2884786B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104715192 (B)&#039;&#039;&#039; ([https://patents.google.com/patent/CN104715192B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===SECURE SOFTWARE COMPONENTS ANTI-REVERSE-ENGINEERING BY TABLE INTERLEAVING===&lt;br /&gt;
* Inventors: Philippe Teuwen, Ventzislav Nikov, Peter Rombouts&lt;br /&gt;
* Priority Date: Dec 26, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9576116 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9576116 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2892175 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2892175B1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FLEXIBLE URL SIGNATURE SCHEME FOR TAGS===&lt;br /&gt;
* aka &#039;&#039;&#039;Flexible data authentication for an nfc data exchange format ndef message&#039;&#039;&#039;&lt;br /&gt;
* aka &#039;&#039;&#039;Flexible data authentication &#039;&#039;&#039;&lt;br /&gt;
* Inventors: Philippe Teuwen&lt;br /&gt;
* Priority Date: Dec 31, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9419803 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9419803 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2890172 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2890172B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104796257 (B)&#039;&#039;&#039; ([https://patents.google.com/patent/CN104796257B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ONE-TIME PROGRAMMING IN REPROGRAMMABLE MEMORY===&lt;br /&gt;
* Inventors: Marc Vauclair, Philippe Teuwen&lt;br /&gt;
* Priority Date: March 14, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9823860 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9823860B2 Google Patents])&lt;br /&gt;
** EP2919236 (A1) ([https://patents.google.com/patent/EP2919236A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104916321 (B)&#039;&#039;&#039; ([https://patents.google.com/patent/CN104916321B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CONSTELLATION BASED DEVICE BINDING===&lt;br /&gt;
* Inventors: Peter Rombouts, Frank Michaud, Philippe Teuwen&lt;br /&gt;
* Priority Date: March 27, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9953144 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9953144B2 Google Patents])&lt;br /&gt;
** EP2924566 (A3) ([https://patents.google.com/patent/EP2924566A3 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104951714 (B)&#039;&#039;&#039; ([https://patents.google.com/patent/CN104951714B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CONTROL FLOW FLATTENING FOR CODE OBFUSCATION WHERE THE NEXT BLOCK CALCULATION NEEDS RUN-TIME INFORMATION===&lt;br /&gt;
* Inventors: Jan Hoogerbrugge, Philippe Teuwen, Wil Michiels&lt;br /&gt;
* Priority Date: April 23, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;EP2937803 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2937803B1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RETURN-ORIENTED PROGRAMMING AS AN OBFUSCATION TECHNIQUE===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Jan Brands, Jan Hoogerbrugge&lt;br /&gt;
* Priority Date: May 6, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9411597 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9411597 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2942727 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2942727B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN105095697 (B)&#039;&#039;&#039; ([https://patents.google.com/patent/CN105095697A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FLEXIBLE INSTRUCTION SETS FOR OBFUSCATED VIRTUAL MACHINES===&lt;br /&gt;
* Inventors: Teuwen Philippe&lt;br /&gt;
* Priority Date: Feb 26, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9501301 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9501301 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP3062256A1 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP3062256B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN105930694 (B)&#039;&#039;&#039; ([https://patents.google.com/patent/CN105930694B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ENCODING VALUES BY PSEUDO-RANDOM MASK===&lt;br /&gt;
* Inventors: Michiels Wil, Hoogerbrugge Jan, Teuwen Philippe&lt;br /&gt;
* Priority Date: July 30, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10097342 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10097342B2 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===WIDE ENCODING OF INTERMEDIATE VALUES WITHIN A WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Michiels Wil, Bos Joppe, Teuwen Philippe&lt;br /&gt;
* Priority Date: December 16, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10171234&#039;&#039;&#039; (B2) ([https://patents.google.com/patent/US10171234B2 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP3182637 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP3182637B1 Google Patents])&lt;br /&gt;
** CN106888081 (A) ([https://patents.google.com/patent/CN106888081A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===BALANCED ENCODING OF INTERMEDIATE VALUES WITHIN A WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Michiels Wil, Teuwen Philippe&lt;br /&gt;
* Priority Date: July 30, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US10700849B2&#039;&#039;&#039; (B2) ([https://patents.google.com/patent/US10700849B2 Google Patents])&lt;br /&gt;
** EP3125462 (A1) ([https://patents.google.com/patent/EP3125462A1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RANDOM DATA FROM GNSS SIGNALS AND SECURE RANDOM VALUE PROVISIONING FOR SECURE SOFTWARE COMPONENT IMPLEMENTATIONS===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Frank Michaud&lt;br /&gt;
* Filing Date: 12/13/2013(?)&lt;br /&gt;
* Application no: 14/104772&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20150172050 (A1) ([https://www.google.com.ar/patents/US20150172050 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2884689&#039;&#039;&#039; (B1) ([https://patents.google.com/patent/EP2884689B1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
==Patent applications (published)==&lt;br /&gt;
&lt;br /&gt;
===METHOD AND DEVICES FOR WIRELESS NETWORK ACCESS MANAGEMENT===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCEDE ET DISPOSITIFS DE GESTION DE L&#039;ACCES A UN RESEAU SANS FILM&#039;&#039;&#039;&lt;br /&gt;
* Inventeur:	ERDMANN BOZENA (DE); NIKOV VENTZISLAV (BE); TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-06-03&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006129287&amp;amp;F=0 WO2006129287] (A1)&lt;br /&gt;
&lt;br /&gt;
===PROTECTED WIRELESS NETWORK ACCESS===&lt;br /&gt;
* aka &#039;&#039;&#039;ACCES RESEAU SANS FIL PROTEGE&#039;&#039;&#039;&lt;br /&gt;
* Inventeur:	TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-06-06&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006131852&amp;amp;F=0 WO2006131852] (A1)&lt;br /&gt;
&lt;br /&gt;
===FURTIVE TIMED EXECUTION CONTROL===&lt;br /&gt;
* Inventeur:	TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-09-19&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=WO&amp;amp;NR=2007034382A3&amp;amp;KC=A3&amp;amp;FT=D&amp;amp;ND=1&amp;amp;date=20090604&amp;amp;DB=&amp;amp;locale=en_EP WO2007034382] (A3)  &lt;br /&gt;
&lt;br /&gt;
===METHOD AND APPARATUS FOR AUTHENTICATING STATIC DATA CARRIERS===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCÉDÉ ET APPAREIL D&#039;AUTHENTIFICATION DE SUPPORTS DE DONNÉES STATIQUES&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s): Serret Avila;  Javier  (Brussels,  BE,  US) , Ton;  Wim  (Edinburgh,  IE,  US) , Teuwen;  Philippe  (Leuven,  BE,  US) , Tuyls;  Pim Theo  (Eindhoven,  NL,  US) , De Soete;  Marijke G.C.S.  (Oostkamp,  BE,  US) &lt;br /&gt;
* Priority date	Mar 21, 2006&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=WO&amp;amp;NR=2007107928A3&amp;amp;KC=A3&amp;amp;FT=D&amp;amp;ND=2&amp;amp;date=20071221&amp;amp;DB=EPODOC&amp;amp;locale=en_EP WO2007107928] (A3)&lt;br /&gt;
** US20100161994 (A1) ([https://patents.google.com/patent/US20100161994 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=1999751A2&amp;amp;KC=A2&amp;amp;FT=D EP1999751]  (A2)([https://patents.google.com/patent/EP1999751A2 Google Patents])&lt;br /&gt;
** CN101405805 [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200780010141&amp;amp;D1=appno 200780010141]&lt;br /&gt;
** RU2008141690  (A)&lt;br /&gt;
** JP2009530945  (A)&lt;br /&gt;
&lt;br /&gt;
===IMPROVED AUTHENTICATION SYSTEM===&lt;br /&gt;
* Inventor(s):	 TEUWEN PHILIPPE [NL]; NIKOV VENTZISLAV [NL] +&lt;br /&gt;
* Priority date	Dec 3, 2009&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2336985A1&amp;amp;KC=A1&amp;amp;FT=D EP2336985]  (A1)([https://patents.google.com/patent/EP2336985A1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIVERSIFYING CONTROL FLOW OF WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Wil Michiels, Jan Hoogerbrugge, Teuwen Philippe&lt;br /&gt;
* Filing Date: May 29, 2015&lt;br /&gt;
* Application No: 14/725801&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20160253189 (A1) ([https://patents.google.com/patent/US20160350520 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FUZZY OPAQUE PREDICATES===&lt;br /&gt;
* Inventor: Teuwen Philippe&lt;br /&gt;
* Filing Date: June 26, 2015&lt;br /&gt;
* Application No: 14/751606&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20160379131 (A1) ([https://patents.google.com/patent/US20160379131 Google Patents])&lt;br /&gt;
&lt;br /&gt;
==Patent applications (not yet published)==&lt;br /&gt;
&lt;br /&gt;
==Search engines==&lt;br /&gt;
* Full query&lt;br /&gt;
** [http://accounts.ktmine.com/company/ipreport?q=TEUWEN%20PHILIPPE ktmine]&lt;br /&gt;
** [http://www.freepatentsonline.com/result.html?p=1&amp;amp;edit_alert=&amp;amp;srch=xprtsrch&amp;amp;query_txt=IN%2F%22teuwen+philippe%22&amp;amp;uspat=on&amp;amp;usapp=on&amp;amp;eupat=on&amp;amp;pct=on&amp;amp;date_range=all&amp;amp;stemming=off&amp;amp;sort=chron&amp;amp;search=Search freepatentsonline], [http://www.freepatentsonline.com/result.html?p=1&amp;amp;edit_alert=&amp;amp;srch=xprtsrch&amp;amp;query_txt=IN%2F%22teuwen+philippe%22+APD%2F01%2F01%2F2014-%3ENOW&amp;amp;uspat=on&amp;amp;usapp=on&amp;amp;eupat=on&amp;amp;pct=on&amp;amp;date_range=all&amp;amp;stemming=off&amp;amp;sort=chron&amp;amp;search=Search limited 2014-now]&lt;br /&gt;
* Portals&lt;br /&gt;
** [http://www.wipo.int/pctdb/en/ International Patent Applications]&lt;br /&gt;
** [http://www.wipo.int/ipdl/en/resources/links.html Patent Databases in Different Countries]&lt;br /&gt;
** [http://www.espacenet.com/ esp@cenet, Europe&#039;s network of patent databases] // [http://ep.espacenet.com/advancedSearch?locale=en_ep advanced search]&lt;br /&gt;
** [http://www.uspto.gov/patft/index.html Unites States Patent and Trademark Office]&lt;br /&gt;
** [http://www.google.com/patents Google patents]&lt;br /&gt;
** [http://english.sipo.gov.cn/ China SIPO]&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Patents&amp;diff=10526</id>
		<title>Patents</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Patents&amp;diff=10526"/>
		<updated>2021-05-28T08:45:12Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* WIDE ENCODING OF INTERMEDIATE VALUES WITHIN A WHITE-BOX IMPLEMENTATION */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Granted patents==&lt;br /&gt;
Note: les traductions officielles en français, parfois loufoques, ne proviennent pas des auteurs...&lt;br /&gt;
===SECURE PAIRING FOR WIRED OR WIRELESS COMMUNICATIONS DEVICES===&lt;br /&gt;
* aka &#039;&#039;&#039;APPARIEMENT SECURISE POUR DISPOSITIFS DE COMMUNICATION FILAIRES OU SANS FIL&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  Vauclair;  Marc  (Leuven,  BE,  US) , Serret Avila;  Javier  (Brussels,  BE,  US) , Etienne; Lionel Georges  (Leuven,  BE,  US) , Teuwen;  Philippe  (Leuven,  BE,  US)&lt;br /&gt;
* Priority date:   Sep 8, 2004&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006027725&amp;amp;F=0 WO2006027725] (A1)&lt;br /&gt;
** &#039;&#039;&#039;US8813188 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US8813188 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP1792442 (B1)&#039;&#039;&#039; ([http://www.google.com/patents/EP1792442B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN101015173 (B)&#039;&#039;&#039;&lt;br /&gt;
** DE602005019589 (D1)&lt;br /&gt;
** KR20070050057  (A)&lt;br /&gt;
** JP2008512891  (A)&lt;br /&gt;
** AT459158  (T)&lt;br /&gt;
** &#039;&#039;&#039;TWI467978 (B)&#039;&#039;&#039; ??&lt;br /&gt;
&lt;br /&gt;
===METHOD AND DEVICE FOR INCREASED RFID TRANSMISSION SECURITY===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCEDE ET DISPOSITIF AMELIORANT LA SECURITE DE TRANSMISSION DES IDRF&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  	Teuwen;  Philippe  (Ixelles,  BE,  US) , Thueringer;  Peter  (Graz,  AT,  US)&lt;br /&gt;
* Priority date	Jun 7, 2005&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006131861&amp;amp;F=0 WO2006131861] (A1)&lt;br /&gt;
** &#039;&#039;&#039;US 8813188 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8813188B2 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;[http://v3.espacenet.com/publicationDetails/biblio?adjacent=true&amp;amp;KC=B1&amp;amp;date=20080305&amp;amp;NR=1894145A1&amp;amp;DB=EPODOC&amp;amp;locale=en_EP&amp;amp;CC=EP&amp;amp;FT=D EP1894145] (B1) ([http://www.google.com/patents/EP1894145B1 Google Patents])&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;CN101194274  (B)&#039;&#039;&#039; [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200680020153&amp;amp;D1=appno 200680020153]&lt;br /&gt;
** DE602006006055 (D1)&lt;br /&gt;
** &#039;&#039;&#039;JP4739342 (B2)&#039;&#039;&#039;&lt;br /&gt;
** AT427536  (T)&lt;br /&gt;
** &#039;&#039;&#039;KR101270039 (B1)&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;TWI467978 (B)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===WATERMARKING OF A PROCESSING MODULE===&lt;br /&gt;
* aka &#039;&#039;&#039;FILIGRANAGE D&#039;UN MODULE DE TRAITEMENT&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  Teuwen;  Philippe  (Ixelles,  BE,  US)&lt;br /&gt;
* Priority date	Sep 30, 2005&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=US&amp;amp;NR=8209543B2&amp;amp;KC=B2&amp;amp;FT=D&amp;amp;ND=1&amp;amp;date=20120626&amp;amp;DB=&amp;amp;locale=en_EP WO2007036863] (A3)&lt;br /&gt;
** &#039;&#039;&#039;US 8209543 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8209543 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=1934877A2&amp;amp;KC=A2&amp;amp;FT=D EP1934877] (A2)([http://www.google.com/patents/EP1934877A2 Google Patents])&lt;br /&gt;
** CN101273365  (A) [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200680035901&amp;amp;D1=appno 200680035901]&lt;br /&gt;
** JP2009510880  (A)&lt;br /&gt;
&lt;br /&gt;
===METHOD OF OBFUSCATING A CODE===&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE) ; Nikov; Ventzislav; (Haasrode, BE)&lt;br /&gt;
* Priority date	Aug 26, 2009&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9465926 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9465926 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;[http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2290547B1&amp;amp;KC=B1&amp;amp;FT=D EP2290547 (B1)]&#039;&#039;&#039; ([http://www.google.com/patents/EP2290547B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;US 9965401 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9965401B2/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CHALLENGE RESPONSE BASED ENROLLMENT OF PHYSICAL UNCLONABLE FUNCTIONS===&lt;br /&gt;
* aka &#039;&#039;&#039;ENROLLMENT OF PHYSICALLY UNCLONABLE FUNCTIONS&#039;&#039;&#039;&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE) ; Nikov; Ventzislav; (Haasrode, BE)&lt;br /&gt;
* Priority date	Nov 19, 2010&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US8694778 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8694778 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2456121 (B1)&#039;&#039;&#039; ([http://www.google.com/patents/EP2456121B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN102571748 (B)&#039;&#039;&#039; ([[https://www.google.com/patents/CN102571748B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ELECTRONIC COMPONENT WITH CONFIGURABLE FUNCTIONALITY===&lt;br /&gt;
* aka &#039;&#039;&#039;ELECTRONIC COMPONENT&#039;&#039;&#039;&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE)&lt;br /&gt;
* Priority date	Nov 30, 2010&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US8990519 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8990519 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2458522A1&amp;amp;KC=A1&amp;amp;FT=D EP2458522] (A1) ([http://www.google.com/patents/EP2458522A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN102609558 (B)&#039;&#039;&#039; ([http://www.google.com/patents/CN102609558B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIGITAL WALLET DEVICE FOR VIRTUAL WALLET===&lt;br /&gt;
* Inventors:    Teuwen Philippe;  Colnot Cedric;&lt;br /&gt;
* Priority date Dec 19, 2012 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10147086B2 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10147086B2/en Google Patents])&lt;br /&gt;
** EP2747015 (A3) ([https://www.google.be/patents/EP2747015A3 Google Patents])&lt;br /&gt;
** CN103886455 (A) ([https://www.google.be/patents/CN103886455A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIGITAL WALLET BRIDGE===&lt;br /&gt;
* Inventors:    Colnot Cedric;  Teuwen Philippe&lt;br /&gt;
* Priority date Apr 2,2013 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10102522B2 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10102522B2/en Google Patents])&lt;br /&gt;
** EP2787473 (A1) ([https://www.google.be/patents/EP2787473A1?cl=en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===BINDING MOBILE DEVICE SECURE SOFTWARE COMPONENTS TO THE SIM===&lt;br /&gt;
* Inventors: Peter Rombouts, Philippe Teuwen, Frank Michaud&lt;br /&gt;
* Priority date: Dec 19, 2013 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9264899 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9264899 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;US 9584514 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9584514B2/en Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104731612 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104731612A Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2887610 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2887610B1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===METHOD OF GENERATING A STRUCTURE AND CORRESPONDING STRUCTURE===&lt;br /&gt;
* Inventors: Colnot Vincent Cedric; Rombouts Peter; Teuwen Philippe; Michaud Frank&lt;br /&gt;
* Priority Date: Nov 21, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9563754 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9563754 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2876593 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2876593B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104657636 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104657636B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RESTRICTING SOFTWARE TO AUTHORIZED WIRELESS ENVIRONMENTS===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Frank Michaud&lt;br /&gt;
* Priority Date: Dec 13, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US9693224 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9693224 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2884786 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2884786B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104715192 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104715192B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===SECURE SOFTWARE COMPONENTS ANTI-REVERSE-ENGINEERING BY TABLE INTERLEAVING===&lt;br /&gt;
* Inventors: Philippe Teuwen, Ventzislav Nikov, Peter Rombouts&lt;br /&gt;
* Priority Date: Dec 26, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9576116 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9576116 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2892175 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2892175B1/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FLEXIBLE URL SIGNATURE SCHEME FOR TAGS===&lt;br /&gt;
* aka &#039;&#039;&#039;Flexible data authentication for an nfc data exchange format ndef message&#039;&#039;&#039;&lt;br /&gt;
* aka &#039;&#039;&#039;Flexible data authentication &#039;&#039;&#039;&lt;br /&gt;
* Inventors: Philippe Teuwen&lt;br /&gt;
* Priority Date: Dec 31, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9419803 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9419803 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2890172 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2890172B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104796257 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104796257B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ONE-TIME PROGRAMMING IN REPROGRAMMABLE MEMORY===&lt;br /&gt;
* Inventors: Marc Vauclair, Philippe Teuwen&lt;br /&gt;
* Priority Date: March 14, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9823860 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9823860B2 Google Patents])&lt;br /&gt;
** EP2919236 (A1) ([https://www.google.com/patents/EP2919236A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104916321 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104916321B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CONSTELLATION BASED DEVICE BINDING===&lt;br /&gt;
* Inventors: Peter Rombouts, Frank Michaud, Philippe Teuwen&lt;br /&gt;
* Priority Date: March 27, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9953144 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9953144B2 Google Patents])&lt;br /&gt;
** EP2924566 (A3) ([https://www.google.com/patents/EP2924566A3 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104951714 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104951714B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CONTROL FLOW FLATTENING FOR CODE OBFUSCATION WHERE THE NEXT BLOCK CALCULATION NEEDS RUN-TIME INFORMATION===&lt;br /&gt;
* Inventors: Jan Hoogerbrugge, Philippe Teuwen, Wil Michiels&lt;br /&gt;
* Priority Date: April 23, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;EP2937803 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2937803B1/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RETURN-ORIENTED PROGRAMMING AS AN OBFUSCATION TECHNIQUE===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Jan Brands, Jan Hoogerbrugge&lt;br /&gt;
* Priority Date: May 6, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9411597 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9411597 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2942727 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2942727B1/en Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN105095697 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN105095697A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FLEXIBLE INSTRUCTION SETS FOR OBFUSCATED VIRTUAL MACHINES===&lt;br /&gt;
* Inventors: Teuwen Philippe&lt;br /&gt;
* Priority Date: Feb 26, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9501301 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9501301 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP3062256A1 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP3062256B1/en Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN105930694 (B)&#039;&#039;&#039; ([https://patents.google.com/patent/CN105930694B/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ENCODING VALUES BY PSEUDO-RANDOM MASK===&lt;br /&gt;
* Inventors: Michiels Wil, Hoogerbrugge Jan, Teuwen Philippe&lt;br /&gt;
* Priority Date: July 30, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10097342 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10097342B2/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===WIDE ENCODING OF INTERMEDIATE VALUES WITHIN A WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Michiels Wil, Bos Joppe, Teuwen Philippe&lt;br /&gt;
* Priority Date: December 16, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10171234&#039;&#039;&#039; (B2) ([https://patents.google.com/patent/US10171234B2 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP3182637 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP3182637B1 Google Patents])&lt;br /&gt;
** CN106888081 (A) ([https://patents.google.com/patent/CN106888081A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===BALANCED ENCODING OF INTERMEDIATE VALUES WITHIN A WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Michiels Wil, Teuwen Philippe&lt;br /&gt;
* Priority Date: July 30, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US10700849B2&#039;&#039;&#039; (B2) ([https://www.google.com/patents/US10700849B2 Google Patents])&lt;br /&gt;
** EP3125462 (A1) ([https://www.google.com/patents/EP3125462A1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RANDOM DATA FROM GNSS SIGNALS AND SECURE RANDOM VALUE PROVISIONING FOR SECURE SOFTWARE COMPONENT IMPLEMENTATIONS===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Frank Michaud&lt;br /&gt;
* Filing Date: 12/13/2013(?)&lt;br /&gt;
* Application no: 14/104772&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20150172050 (A1) ([https://www.google.com.ar/patents/US20150172050 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2884689&#039;&#039;&#039; (B1) ([https://patents.google.com/patent/EP2884689B1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
==Patent applications (published)==&lt;br /&gt;
&lt;br /&gt;
===METHOD AND DEVICES FOR WIRELESS NETWORK ACCESS MANAGEMENT===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCEDE ET DISPOSITIFS DE GESTION DE L&#039;ACCES A UN RESEAU SANS FILM&#039;&#039;&#039;&lt;br /&gt;
* Inventeur:	ERDMANN BOZENA (DE); NIKOV VENTZISLAV (BE); TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-06-03&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006129287&amp;amp;F=0 WO2006129287] (A1)&lt;br /&gt;
&lt;br /&gt;
===PROTECTED WIRELESS NETWORK ACCESS===&lt;br /&gt;
* aka &#039;&#039;&#039;ACCES RESEAU SANS FIL PROTEGE&#039;&#039;&#039;&lt;br /&gt;
* Inventeur:	TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-06-06&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006131852&amp;amp;F=0 WO2006131852] (A1)&lt;br /&gt;
&lt;br /&gt;
===FURTIVE TIMED EXECUTION CONTROL===&lt;br /&gt;
* Inventeur:	TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-09-19&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=WO&amp;amp;NR=2007034382A3&amp;amp;KC=A3&amp;amp;FT=D&amp;amp;ND=1&amp;amp;date=20090604&amp;amp;DB=&amp;amp;locale=en_EP WO2007034382] (A3)  &lt;br /&gt;
&lt;br /&gt;
===METHOD AND APPARATUS FOR AUTHENTICATING STATIC DATA CARRIERS===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCÉDÉ ET APPAREIL D&#039;AUTHENTIFICATION DE SUPPORTS DE DONNÉES STATIQUES&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s): Serret Avila;  Javier  (Brussels,  BE,  US) , Ton;  Wim  (Edinburgh,  IE,  US) , Teuwen;  Philippe  (Leuven,  BE,  US) , Tuyls;  Pim Theo  (Eindhoven,  NL,  US) , De Soete;  Marijke G.C.S.  (Oostkamp,  BE,  US) &lt;br /&gt;
* Priority date	Mar 21, 2006&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=WO&amp;amp;NR=2007107928A3&amp;amp;KC=A3&amp;amp;FT=D&amp;amp;ND=2&amp;amp;date=20071221&amp;amp;DB=EPODOC&amp;amp;locale=en_EP WO2007107928] (A3)&lt;br /&gt;
** US20100161994 (A1) ([http://www.google.com/patents/US20100161994 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=1999751A2&amp;amp;KC=A2&amp;amp;FT=D EP1999751]  (A2)([http://www.google.com/patents/EP1999751A2 Google Patents])&lt;br /&gt;
** CN101405805 [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200780010141&amp;amp;D1=appno 200780010141]&lt;br /&gt;
** RU2008141690  (A)&lt;br /&gt;
** JP2009530945  (A)&lt;br /&gt;
&lt;br /&gt;
===IMPROVED AUTHENTICATION SYSTEM===&lt;br /&gt;
* Inventor(s):	 TEUWEN PHILIPPE [NL]; NIKOV VENTZISLAV [NL] +&lt;br /&gt;
* Priority date	Dec 3, 2009&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2336985A1&amp;amp;KC=A1&amp;amp;FT=D EP2336985]  (A1)([http://www.google.com/patents/EP2336985A1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIVERSIFYING CONTROL FLOW OF WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Wil Michiels, Jan Hoogerbrugge, Teuwen Philippe&lt;br /&gt;
* Filing Date: May 29, 2015&lt;br /&gt;
* Application No: 14/725801&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20160253189 (A1) ([https://www.google.com/patents/US20160350520 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FUZZY OPAQUE PREDICATES===&lt;br /&gt;
* Inventor: Teuwen Philippe&lt;br /&gt;
* Filing Date: June 26, 2015&lt;br /&gt;
* Application No: 14/751606&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20160379131 (A1) ([https://www.google.com/patents/US20160379131 Google Patents])&lt;br /&gt;
&lt;br /&gt;
==Patent applications (not yet published)==&lt;br /&gt;
&lt;br /&gt;
==Search engines==&lt;br /&gt;
* Full query&lt;br /&gt;
** [http://accounts.ktmine.com/company/ipreport?q=TEUWEN%20PHILIPPE ktmine]&lt;br /&gt;
** [http://www.freepatentsonline.com/result.html?p=1&amp;amp;edit_alert=&amp;amp;srch=xprtsrch&amp;amp;query_txt=IN%2F%22teuwen+philippe%22&amp;amp;uspat=on&amp;amp;usapp=on&amp;amp;eupat=on&amp;amp;pct=on&amp;amp;date_range=all&amp;amp;stemming=off&amp;amp;sort=chron&amp;amp;search=Search freepatentsonline], [http://www.freepatentsonline.com/result.html?p=1&amp;amp;edit_alert=&amp;amp;srch=xprtsrch&amp;amp;query_txt=IN%2F%22teuwen+philippe%22+APD%2F01%2F01%2F2014-%3ENOW&amp;amp;uspat=on&amp;amp;usapp=on&amp;amp;eupat=on&amp;amp;pct=on&amp;amp;date_range=all&amp;amp;stemming=off&amp;amp;sort=chron&amp;amp;search=Search limited 2014-now]&lt;br /&gt;
* Portals&lt;br /&gt;
** [http://www.wipo.int/pctdb/en/ International Patent Applications]&lt;br /&gt;
** [http://www.wipo.int/ipdl/en/resources/links.html Patent Databases in Different Countries]&lt;br /&gt;
** [http://www.espacenet.com/ esp@cenet, Europe&#039;s network of patent databases] // [http://ep.espacenet.com/advancedSearch?locale=en_ep advanced search]&lt;br /&gt;
** [http://www.uspto.gov/patft/index.html Unites States Patent and Trademark Office]&lt;br /&gt;
** [http://www.google.com/patents Google patents]&lt;br /&gt;
** [http://english.sipo.gov.cn/ China SIPO]&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Patents&amp;diff=10525</id>
		<title>Patents</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Patents&amp;diff=10525"/>
		<updated>2021-05-28T08:43:39Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* FLEXIBLE INSTRUCTION SETS FOR OBFUSCATED VIRTUAL MACHINES */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Granted patents==&lt;br /&gt;
Note: les traductions officielles en français, parfois loufoques, ne proviennent pas des auteurs...&lt;br /&gt;
===SECURE PAIRING FOR WIRED OR WIRELESS COMMUNICATIONS DEVICES===&lt;br /&gt;
* aka &#039;&#039;&#039;APPARIEMENT SECURISE POUR DISPOSITIFS DE COMMUNICATION FILAIRES OU SANS FIL&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  Vauclair;  Marc  (Leuven,  BE,  US) , Serret Avila;  Javier  (Brussels,  BE,  US) , Etienne; Lionel Georges  (Leuven,  BE,  US) , Teuwen;  Philippe  (Leuven,  BE,  US)&lt;br /&gt;
* Priority date:   Sep 8, 2004&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006027725&amp;amp;F=0 WO2006027725] (A1)&lt;br /&gt;
** &#039;&#039;&#039;US8813188 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US8813188 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP1792442 (B1)&#039;&#039;&#039; ([http://www.google.com/patents/EP1792442B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN101015173 (B)&#039;&#039;&#039;&lt;br /&gt;
** DE602005019589 (D1)&lt;br /&gt;
** KR20070050057  (A)&lt;br /&gt;
** JP2008512891  (A)&lt;br /&gt;
** AT459158  (T)&lt;br /&gt;
** &#039;&#039;&#039;TWI467978 (B)&#039;&#039;&#039; ??&lt;br /&gt;
&lt;br /&gt;
===METHOD AND DEVICE FOR INCREASED RFID TRANSMISSION SECURITY===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCEDE ET DISPOSITIF AMELIORANT LA SECURITE DE TRANSMISSION DES IDRF&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  	Teuwen;  Philippe  (Ixelles,  BE,  US) , Thueringer;  Peter  (Graz,  AT,  US)&lt;br /&gt;
* Priority date	Jun 7, 2005&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006131861&amp;amp;F=0 WO2006131861] (A1)&lt;br /&gt;
** &#039;&#039;&#039;US 8813188 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8813188B2 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;[http://v3.espacenet.com/publicationDetails/biblio?adjacent=true&amp;amp;KC=B1&amp;amp;date=20080305&amp;amp;NR=1894145A1&amp;amp;DB=EPODOC&amp;amp;locale=en_EP&amp;amp;CC=EP&amp;amp;FT=D EP1894145] (B1) ([http://www.google.com/patents/EP1894145B1 Google Patents])&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;CN101194274  (B)&#039;&#039;&#039; [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200680020153&amp;amp;D1=appno 200680020153]&lt;br /&gt;
** DE602006006055 (D1)&lt;br /&gt;
** &#039;&#039;&#039;JP4739342 (B2)&#039;&#039;&#039;&lt;br /&gt;
** AT427536  (T)&lt;br /&gt;
** &#039;&#039;&#039;KR101270039 (B1)&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;TWI467978 (B)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===WATERMARKING OF A PROCESSING MODULE===&lt;br /&gt;
* aka &#039;&#039;&#039;FILIGRANAGE D&#039;UN MODULE DE TRAITEMENT&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  Teuwen;  Philippe  (Ixelles,  BE,  US)&lt;br /&gt;
* Priority date	Sep 30, 2005&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=US&amp;amp;NR=8209543B2&amp;amp;KC=B2&amp;amp;FT=D&amp;amp;ND=1&amp;amp;date=20120626&amp;amp;DB=&amp;amp;locale=en_EP WO2007036863] (A3)&lt;br /&gt;
** &#039;&#039;&#039;US 8209543 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8209543 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=1934877A2&amp;amp;KC=A2&amp;amp;FT=D EP1934877] (A2)([http://www.google.com/patents/EP1934877A2 Google Patents])&lt;br /&gt;
** CN101273365  (A) [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200680035901&amp;amp;D1=appno 200680035901]&lt;br /&gt;
** JP2009510880  (A)&lt;br /&gt;
&lt;br /&gt;
===METHOD OF OBFUSCATING A CODE===&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE) ; Nikov; Ventzislav; (Haasrode, BE)&lt;br /&gt;
* Priority date	Aug 26, 2009&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9465926 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9465926 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;[http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2290547B1&amp;amp;KC=B1&amp;amp;FT=D EP2290547 (B1)]&#039;&#039;&#039; ([http://www.google.com/patents/EP2290547B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;US 9965401 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9965401B2/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CHALLENGE RESPONSE BASED ENROLLMENT OF PHYSICAL UNCLONABLE FUNCTIONS===&lt;br /&gt;
* aka &#039;&#039;&#039;ENROLLMENT OF PHYSICALLY UNCLONABLE FUNCTIONS&#039;&#039;&#039;&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE) ; Nikov; Ventzislav; (Haasrode, BE)&lt;br /&gt;
* Priority date	Nov 19, 2010&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US8694778 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8694778 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2456121 (B1)&#039;&#039;&#039; ([http://www.google.com/patents/EP2456121B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN102571748 (B)&#039;&#039;&#039; ([[https://www.google.com/patents/CN102571748B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ELECTRONIC COMPONENT WITH CONFIGURABLE FUNCTIONALITY===&lt;br /&gt;
* aka &#039;&#039;&#039;ELECTRONIC COMPONENT&#039;&#039;&#039;&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE)&lt;br /&gt;
* Priority date	Nov 30, 2010&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US8990519 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8990519 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2458522A1&amp;amp;KC=A1&amp;amp;FT=D EP2458522] (A1) ([http://www.google.com/patents/EP2458522A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN102609558 (B)&#039;&#039;&#039; ([http://www.google.com/patents/CN102609558B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIGITAL WALLET DEVICE FOR VIRTUAL WALLET===&lt;br /&gt;
* Inventors:    Teuwen Philippe;  Colnot Cedric;&lt;br /&gt;
* Priority date Dec 19, 2012 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10147086B2 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10147086B2/en Google Patents])&lt;br /&gt;
** EP2747015 (A3) ([https://www.google.be/patents/EP2747015A3 Google Patents])&lt;br /&gt;
** CN103886455 (A) ([https://www.google.be/patents/CN103886455A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIGITAL WALLET BRIDGE===&lt;br /&gt;
* Inventors:    Colnot Cedric;  Teuwen Philippe&lt;br /&gt;
* Priority date Apr 2,2013 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10102522B2 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10102522B2/en Google Patents])&lt;br /&gt;
** EP2787473 (A1) ([https://www.google.be/patents/EP2787473A1?cl=en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===BINDING MOBILE DEVICE SECURE SOFTWARE COMPONENTS TO THE SIM===&lt;br /&gt;
* Inventors: Peter Rombouts, Philippe Teuwen, Frank Michaud&lt;br /&gt;
* Priority date: Dec 19, 2013 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9264899 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9264899 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;US 9584514 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9584514B2/en Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104731612 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104731612A Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2887610 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2887610B1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===METHOD OF GENERATING A STRUCTURE AND CORRESPONDING STRUCTURE===&lt;br /&gt;
* Inventors: Colnot Vincent Cedric; Rombouts Peter; Teuwen Philippe; Michaud Frank&lt;br /&gt;
* Priority Date: Nov 21, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9563754 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9563754 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2876593 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2876593B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104657636 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104657636B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RESTRICTING SOFTWARE TO AUTHORIZED WIRELESS ENVIRONMENTS===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Frank Michaud&lt;br /&gt;
* Priority Date: Dec 13, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US9693224 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9693224 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2884786 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2884786B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104715192 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104715192B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===SECURE SOFTWARE COMPONENTS ANTI-REVERSE-ENGINEERING BY TABLE INTERLEAVING===&lt;br /&gt;
* Inventors: Philippe Teuwen, Ventzislav Nikov, Peter Rombouts&lt;br /&gt;
* Priority Date: Dec 26, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9576116 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9576116 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2892175 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2892175B1/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FLEXIBLE URL SIGNATURE SCHEME FOR TAGS===&lt;br /&gt;
* aka &#039;&#039;&#039;Flexible data authentication for an nfc data exchange format ndef message&#039;&#039;&#039;&lt;br /&gt;
* aka &#039;&#039;&#039;Flexible data authentication &#039;&#039;&#039;&lt;br /&gt;
* Inventors: Philippe Teuwen&lt;br /&gt;
* Priority Date: Dec 31, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9419803 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9419803 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2890172 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2890172B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104796257 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104796257B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ONE-TIME PROGRAMMING IN REPROGRAMMABLE MEMORY===&lt;br /&gt;
* Inventors: Marc Vauclair, Philippe Teuwen&lt;br /&gt;
* Priority Date: March 14, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9823860 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9823860B2 Google Patents])&lt;br /&gt;
** EP2919236 (A1) ([https://www.google.com/patents/EP2919236A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104916321 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104916321B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CONSTELLATION BASED DEVICE BINDING===&lt;br /&gt;
* Inventors: Peter Rombouts, Frank Michaud, Philippe Teuwen&lt;br /&gt;
* Priority Date: March 27, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9953144 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9953144B2 Google Patents])&lt;br /&gt;
** EP2924566 (A3) ([https://www.google.com/patents/EP2924566A3 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104951714 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104951714B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CONTROL FLOW FLATTENING FOR CODE OBFUSCATION WHERE THE NEXT BLOCK CALCULATION NEEDS RUN-TIME INFORMATION===&lt;br /&gt;
* Inventors: Jan Hoogerbrugge, Philippe Teuwen, Wil Michiels&lt;br /&gt;
* Priority Date: April 23, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;EP2937803 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2937803B1/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RETURN-ORIENTED PROGRAMMING AS AN OBFUSCATION TECHNIQUE===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Jan Brands, Jan Hoogerbrugge&lt;br /&gt;
* Priority Date: May 6, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9411597 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9411597 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2942727 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2942727B1/en Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN105095697 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN105095697A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FLEXIBLE INSTRUCTION SETS FOR OBFUSCATED VIRTUAL MACHINES===&lt;br /&gt;
* Inventors: Teuwen Philippe&lt;br /&gt;
* Priority Date: Feb 26, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9501301 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9501301 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP3062256A1 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP3062256B1/en Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN105930694 (B)&#039;&#039;&#039; ([https://patents.google.com/patent/CN105930694B/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ENCODING VALUES BY PSEUDO-RANDOM MASK===&lt;br /&gt;
* Inventors: Michiels Wil, Hoogerbrugge Jan, Teuwen Philippe&lt;br /&gt;
* Priority Date: July 30, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10097342 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10097342B2/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===WIDE ENCODING OF INTERMEDIATE VALUES WITHIN A WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Michiels Wil, Bos Joppe, Teuwen Philippe&lt;br /&gt;
* Priority Date: December 16, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10171234&#039;&#039;&#039; (B2) ([https://patents.google.com/patent/US10171234B2 Google Patents])&lt;br /&gt;
** EP3182637 (A1) ([https://www.google.com/patents/EP3182637A1 Google Patents])&lt;br /&gt;
** CN106888081 (A) ([https://www.google.com/patents/CN106888081A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===BALANCED ENCODING OF INTERMEDIATE VALUES WITHIN A WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Michiels Wil, Teuwen Philippe&lt;br /&gt;
* Priority Date: July 30, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US10700849B2&#039;&#039;&#039; (B2) ([https://www.google.com/patents/US10700849B2 Google Patents])&lt;br /&gt;
** EP3125462 (A1) ([https://www.google.com/patents/EP3125462A1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RANDOM DATA FROM GNSS SIGNALS AND SECURE RANDOM VALUE PROVISIONING FOR SECURE SOFTWARE COMPONENT IMPLEMENTATIONS===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Frank Michaud&lt;br /&gt;
* Filing Date: 12/13/2013(?)&lt;br /&gt;
* Application no: 14/104772&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20150172050 (A1) ([https://www.google.com.ar/patents/US20150172050 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2884689&#039;&#039;&#039; (B1) ([https://patents.google.com/patent/EP2884689B1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
==Patent applications (published)==&lt;br /&gt;
&lt;br /&gt;
===METHOD AND DEVICES FOR WIRELESS NETWORK ACCESS MANAGEMENT===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCEDE ET DISPOSITIFS DE GESTION DE L&#039;ACCES A UN RESEAU SANS FILM&#039;&#039;&#039;&lt;br /&gt;
* Inventeur:	ERDMANN BOZENA (DE); NIKOV VENTZISLAV (BE); TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-06-03&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006129287&amp;amp;F=0 WO2006129287] (A1)&lt;br /&gt;
&lt;br /&gt;
===PROTECTED WIRELESS NETWORK ACCESS===&lt;br /&gt;
* aka &#039;&#039;&#039;ACCES RESEAU SANS FIL PROTEGE&#039;&#039;&#039;&lt;br /&gt;
* Inventeur:	TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-06-06&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006131852&amp;amp;F=0 WO2006131852] (A1)&lt;br /&gt;
&lt;br /&gt;
===FURTIVE TIMED EXECUTION CONTROL===&lt;br /&gt;
* Inventeur:	TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-09-19&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=WO&amp;amp;NR=2007034382A3&amp;amp;KC=A3&amp;amp;FT=D&amp;amp;ND=1&amp;amp;date=20090604&amp;amp;DB=&amp;amp;locale=en_EP WO2007034382] (A3)  &lt;br /&gt;
&lt;br /&gt;
===METHOD AND APPARATUS FOR AUTHENTICATING STATIC DATA CARRIERS===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCÉDÉ ET APPAREIL D&#039;AUTHENTIFICATION DE SUPPORTS DE DONNÉES STATIQUES&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s): Serret Avila;  Javier  (Brussels,  BE,  US) , Ton;  Wim  (Edinburgh,  IE,  US) , Teuwen;  Philippe  (Leuven,  BE,  US) , Tuyls;  Pim Theo  (Eindhoven,  NL,  US) , De Soete;  Marijke G.C.S.  (Oostkamp,  BE,  US) &lt;br /&gt;
* Priority date	Mar 21, 2006&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=WO&amp;amp;NR=2007107928A3&amp;amp;KC=A3&amp;amp;FT=D&amp;amp;ND=2&amp;amp;date=20071221&amp;amp;DB=EPODOC&amp;amp;locale=en_EP WO2007107928] (A3)&lt;br /&gt;
** US20100161994 (A1) ([http://www.google.com/patents/US20100161994 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=1999751A2&amp;amp;KC=A2&amp;amp;FT=D EP1999751]  (A2)([http://www.google.com/patents/EP1999751A2 Google Patents])&lt;br /&gt;
** CN101405805 [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200780010141&amp;amp;D1=appno 200780010141]&lt;br /&gt;
** RU2008141690  (A)&lt;br /&gt;
** JP2009530945  (A)&lt;br /&gt;
&lt;br /&gt;
===IMPROVED AUTHENTICATION SYSTEM===&lt;br /&gt;
* Inventor(s):	 TEUWEN PHILIPPE [NL]; NIKOV VENTZISLAV [NL] +&lt;br /&gt;
* Priority date	Dec 3, 2009&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2336985A1&amp;amp;KC=A1&amp;amp;FT=D EP2336985]  (A1)([http://www.google.com/patents/EP2336985A1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIVERSIFYING CONTROL FLOW OF WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Wil Michiels, Jan Hoogerbrugge, Teuwen Philippe&lt;br /&gt;
* Filing Date: May 29, 2015&lt;br /&gt;
* Application No: 14/725801&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20160253189 (A1) ([https://www.google.com/patents/US20160350520 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FUZZY OPAQUE PREDICATES===&lt;br /&gt;
* Inventor: Teuwen Philippe&lt;br /&gt;
* Filing Date: June 26, 2015&lt;br /&gt;
* Application No: 14/751606&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20160379131 (A1) ([https://www.google.com/patents/US20160379131 Google Patents])&lt;br /&gt;
&lt;br /&gt;
==Patent applications (not yet published)==&lt;br /&gt;
&lt;br /&gt;
==Search engines==&lt;br /&gt;
* Full query&lt;br /&gt;
** [http://accounts.ktmine.com/company/ipreport?q=TEUWEN%20PHILIPPE ktmine]&lt;br /&gt;
** [http://www.freepatentsonline.com/result.html?p=1&amp;amp;edit_alert=&amp;amp;srch=xprtsrch&amp;amp;query_txt=IN%2F%22teuwen+philippe%22&amp;amp;uspat=on&amp;amp;usapp=on&amp;amp;eupat=on&amp;amp;pct=on&amp;amp;date_range=all&amp;amp;stemming=off&amp;amp;sort=chron&amp;amp;search=Search freepatentsonline], [http://www.freepatentsonline.com/result.html?p=1&amp;amp;edit_alert=&amp;amp;srch=xprtsrch&amp;amp;query_txt=IN%2F%22teuwen+philippe%22+APD%2F01%2F01%2F2014-%3ENOW&amp;amp;uspat=on&amp;amp;usapp=on&amp;amp;eupat=on&amp;amp;pct=on&amp;amp;date_range=all&amp;amp;stemming=off&amp;amp;sort=chron&amp;amp;search=Search limited 2014-now]&lt;br /&gt;
* Portals&lt;br /&gt;
** [http://www.wipo.int/pctdb/en/ International Patent Applications]&lt;br /&gt;
** [http://www.wipo.int/ipdl/en/resources/links.html Patent Databases in Different Countries]&lt;br /&gt;
** [http://www.espacenet.com/ esp@cenet, Europe&#039;s network of patent databases] // [http://ep.espacenet.com/advancedSearch?locale=en_ep advanced search]&lt;br /&gt;
** [http://www.uspto.gov/patft/index.html Unites States Patent and Trademark Office]&lt;br /&gt;
** [http://www.google.com/patents Google patents]&lt;br /&gt;
** [http://english.sipo.gov.cn/ China SIPO]&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Patents&amp;diff=10524</id>
		<title>Patents</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Patents&amp;diff=10524"/>
		<updated>2021-05-28T08:42:52Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* RETURN-ORIENTED PROGRAMMING AS AN OBFUSCATION TECHNIQUE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Granted patents==&lt;br /&gt;
Note: les traductions officielles en français, parfois loufoques, ne proviennent pas des auteurs...&lt;br /&gt;
===SECURE PAIRING FOR WIRED OR WIRELESS COMMUNICATIONS DEVICES===&lt;br /&gt;
* aka &#039;&#039;&#039;APPARIEMENT SECURISE POUR DISPOSITIFS DE COMMUNICATION FILAIRES OU SANS FIL&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  Vauclair;  Marc  (Leuven,  BE,  US) , Serret Avila;  Javier  (Brussels,  BE,  US) , Etienne; Lionel Georges  (Leuven,  BE,  US) , Teuwen;  Philippe  (Leuven,  BE,  US)&lt;br /&gt;
* Priority date:   Sep 8, 2004&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006027725&amp;amp;F=0 WO2006027725] (A1)&lt;br /&gt;
** &#039;&#039;&#039;US8813188 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US8813188 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP1792442 (B1)&#039;&#039;&#039; ([http://www.google.com/patents/EP1792442B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN101015173 (B)&#039;&#039;&#039;&lt;br /&gt;
** DE602005019589 (D1)&lt;br /&gt;
** KR20070050057  (A)&lt;br /&gt;
** JP2008512891  (A)&lt;br /&gt;
** AT459158  (T)&lt;br /&gt;
** &#039;&#039;&#039;TWI467978 (B)&#039;&#039;&#039; ??&lt;br /&gt;
&lt;br /&gt;
===METHOD AND DEVICE FOR INCREASED RFID TRANSMISSION SECURITY===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCEDE ET DISPOSITIF AMELIORANT LA SECURITE DE TRANSMISSION DES IDRF&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  	Teuwen;  Philippe  (Ixelles,  BE,  US) , Thueringer;  Peter  (Graz,  AT,  US)&lt;br /&gt;
* Priority date	Jun 7, 2005&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006131861&amp;amp;F=0 WO2006131861] (A1)&lt;br /&gt;
** &#039;&#039;&#039;US 8813188 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8813188B2 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;[http://v3.espacenet.com/publicationDetails/biblio?adjacent=true&amp;amp;KC=B1&amp;amp;date=20080305&amp;amp;NR=1894145A1&amp;amp;DB=EPODOC&amp;amp;locale=en_EP&amp;amp;CC=EP&amp;amp;FT=D EP1894145] (B1) ([http://www.google.com/patents/EP1894145B1 Google Patents])&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;CN101194274  (B)&#039;&#039;&#039; [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200680020153&amp;amp;D1=appno 200680020153]&lt;br /&gt;
** DE602006006055 (D1)&lt;br /&gt;
** &#039;&#039;&#039;JP4739342 (B2)&#039;&#039;&#039;&lt;br /&gt;
** AT427536  (T)&lt;br /&gt;
** &#039;&#039;&#039;KR101270039 (B1)&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;TWI467978 (B)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===WATERMARKING OF A PROCESSING MODULE===&lt;br /&gt;
* aka &#039;&#039;&#039;FILIGRANAGE D&#039;UN MODULE DE TRAITEMENT&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  Teuwen;  Philippe  (Ixelles,  BE,  US)&lt;br /&gt;
* Priority date	Sep 30, 2005&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=US&amp;amp;NR=8209543B2&amp;amp;KC=B2&amp;amp;FT=D&amp;amp;ND=1&amp;amp;date=20120626&amp;amp;DB=&amp;amp;locale=en_EP WO2007036863] (A3)&lt;br /&gt;
** &#039;&#039;&#039;US 8209543 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8209543 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=1934877A2&amp;amp;KC=A2&amp;amp;FT=D EP1934877] (A2)([http://www.google.com/patents/EP1934877A2 Google Patents])&lt;br /&gt;
** CN101273365  (A) [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200680035901&amp;amp;D1=appno 200680035901]&lt;br /&gt;
** JP2009510880  (A)&lt;br /&gt;
&lt;br /&gt;
===METHOD OF OBFUSCATING A CODE===&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE) ; Nikov; Ventzislav; (Haasrode, BE)&lt;br /&gt;
* Priority date	Aug 26, 2009&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9465926 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9465926 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;[http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2290547B1&amp;amp;KC=B1&amp;amp;FT=D EP2290547 (B1)]&#039;&#039;&#039; ([http://www.google.com/patents/EP2290547B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;US 9965401 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9965401B2/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CHALLENGE RESPONSE BASED ENROLLMENT OF PHYSICAL UNCLONABLE FUNCTIONS===&lt;br /&gt;
* aka &#039;&#039;&#039;ENROLLMENT OF PHYSICALLY UNCLONABLE FUNCTIONS&#039;&#039;&#039;&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE) ; Nikov; Ventzislav; (Haasrode, BE)&lt;br /&gt;
* Priority date	Nov 19, 2010&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US8694778 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8694778 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2456121 (B1)&#039;&#039;&#039; ([http://www.google.com/patents/EP2456121B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN102571748 (B)&#039;&#039;&#039; ([[https://www.google.com/patents/CN102571748B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ELECTRONIC COMPONENT WITH CONFIGURABLE FUNCTIONALITY===&lt;br /&gt;
* aka &#039;&#039;&#039;ELECTRONIC COMPONENT&#039;&#039;&#039;&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE)&lt;br /&gt;
* Priority date	Nov 30, 2010&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US8990519 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8990519 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2458522A1&amp;amp;KC=A1&amp;amp;FT=D EP2458522] (A1) ([http://www.google.com/patents/EP2458522A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN102609558 (B)&#039;&#039;&#039; ([http://www.google.com/patents/CN102609558B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIGITAL WALLET DEVICE FOR VIRTUAL WALLET===&lt;br /&gt;
* Inventors:    Teuwen Philippe;  Colnot Cedric;&lt;br /&gt;
* Priority date Dec 19, 2012 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10147086B2 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10147086B2/en Google Patents])&lt;br /&gt;
** EP2747015 (A3) ([https://www.google.be/patents/EP2747015A3 Google Patents])&lt;br /&gt;
** CN103886455 (A) ([https://www.google.be/patents/CN103886455A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIGITAL WALLET BRIDGE===&lt;br /&gt;
* Inventors:    Colnot Cedric;  Teuwen Philippe&lt;br /&gt;
* Priority date Apr 2,2013 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10102522B2 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10102522B2/en Google Patents])&lt;br /&gt;
** EP2787473 (A1) ([https://www.google.be/patents/EP2787473A1?cl=en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===BINDING MOBILE DEVICE SECURE SOFTWARE COMPONENTS TO THE SIM===&lt;br /&gt;
* Inventors: Peter Rombouts, Philippe Teuwen, Frank Michaud&lt;br /&gt;
* Priority date: Dec 19, 2013 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9264899 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9264899 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;US 9584514 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9584514B2/en Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104731612 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104731612A Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2887610 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2887610B1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===METHOD OF GENERATING A STRUCTURE AND CORRESPONDING STRUCTURE===&lt;br /&gt;
* Inventors: Colnot Vincent Cedric; Rombouts Peter; Teuwen Philippe; Michaud Frank&lt;br /&gt;
* Priority Date: Nov 21, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9563754 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9563754 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2876593 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2876593B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104657636 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104657636B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RESTRICTING SOFTWARE TO AUTHORIZED WIRELESS ENVIRONMENTS===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Frank Michaud&lt;br /&gt;
* Priority Date: Dec 13, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US9693224 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9693224 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2884786 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2884786B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104715192 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104715192B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===SECURE SOFTWARE COMPONENTS ANTI-REVERSE-ENGINEERING BY TABLE INTERLEAVING===&lt;br /&gt;
* Inventors: Philippe Teuwen, Ventzislav Nikov, Peter Rombouts&lt;br /&gt;
* Priority Date: Dec 26, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9576116 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9576116 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2892175 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2892175B1/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FLEXIBLE URL SIGNATURE SCHEME FOR TAGS===&lt;br /&gt;
* aka &#039;&#039;&#039;Flexible data authentication for an nfc data exchange format ndef message&#039;&#039;&#039;&lt;br /&gt;
* aka &#039;&#039;&#039;Flexible data authentication &#039;&#039;&#039;&lt;br /&gt;
* Inventors: Philippe Teuwen&lt;br /&gt;
* Priority Date: Dec 31, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9419803 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9419803 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2890172 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2890172B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104796257 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104796257B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ONE-TIME PROGRAMMING IN REPROGRAMMABLE MEMORY===&lt;br /&gt;
* Inventors: Marc Vauclair, Philippe Teuwen&lt;br /&gt;
* Priority Date: March 14, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9823860 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9823860B2 Google Patents])&lt;br /&gt;
** EP2919236 (A1) ([https://www.google.com/patents/EP2919236A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104916321 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104916321B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CONSTELLATION BASED DEVICE BINDING===&lt;br /&gt;
* Inventors: Peter Rombouts, Frank Michaud, Philippe Teuwen&lt;br /&gt;
* Priority Date: March 27, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9953144 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9953144B2 Google Patents])&lt;br /&gt;
** EP2924566 (A3) ([https://www.google.com/patents/EP2924566A3 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104951714 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104951714B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CONTROL FLOW FLATTENING FOR CODE OBFUSCATION WHERE THE NEXT BLOCK CALCULATION NEEDS RUN-TIME INFORMATION===&lt;br /&gt;
* Inventors: Jan Hoogerbrugge, Philippe Teuwen, Wil Michiels&lt;br /&gt;
* Priority Date: April 23, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;EP2937803 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2937803B1/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RETURN-ORIENTED PROGRAMMING AS AN OBFUSCATION TECHNIQUE===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Jan Brands, Jan Hoogerbrugge&lt;br /&gt;
* Priority Date: May 6, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9411597 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9411597 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2942727 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2942727B1/en Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN105095697 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN105095697A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FLEXIBLE INSTRUCTION SETS FOR OBFUSCATED VIRTUAL MACHINES===&lt;br /&gt;
* Inventors: Teuwen Philippe&lt;br /&gt;
* Priority Date: Feb 26, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9501301 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9501301 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP3062256A1 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP3062256B1/en Google Patents])&lt;br /&gt;
** CN105930694 (A) ([https://www.google.com/patents/CN105930694 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ENCODING VALUES BY PSEUDO-RANDOM MASK===&lt;br /&gt;
* Inventors: Michiels Wil, Hoogerbrugge Jan, Teuwen Philippe&lt;br /&gt;
* Priority Date: July 30, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10097342 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10097342B2/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===WIDE ENCODING OF INTERMEDIATE VALUES WITHIN A WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Michiels Wil, Bos Joppe, Teuwen Philippe&lt;br /&gt;
* Priority Date: December 16, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10171234&#039;&#039;&#039; (B2) ([https://patents.google.com/patent/US10171234B2 Google Patents])&lt;br /&gt;
** EP3182637 (A1) ([https://www.google.com/patents/EP3182637A1 Google Patents])&lt;br /&gt;
** CN106888081 (A) ([https://www.google.com/patents/CN106888081A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===BALANCED ENCODING OF INTERMEDIATE VALUES WITHIN A WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Michiels Wil, Teuwen Philippe&lt;br /&gt;
* Priority Date: July 30, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US10700849B2&#039;&#039;&#039; (B2) ([https://www.google.com/patents/US10700849B2 Google Patents])&lt;br /&gt;
** EP3125462 (A1) ([https://www.google.com/patents/EP3125462A1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RANDOM DATA FROM GNSS SIGNALS AND SECURE RANDOM VALUE PROVISIONING FOR SECURE SOFTWARE COMPONENT IMPLEMENTATIONS===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Frank Michaud&lt;br /&gt;
* Filing Date: 12/13/2013(?)&lt;br /&gt;
* Application no: 14/104772&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20150172050 (A1) ([https://www.google.com.ar/patents/US20150172050 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2884689&#039;&#039;&#039; (B1) ([https://patents.google.com/patent/EP2884689B1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
==Patent applications (published)==&lt;br /&gt;
&lt;br /&gt;
===METHOD AND DEVICES FOR WIRELESS NETWORK ACCESS MANAGEMENT===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCEDE ET DISPOSITIFS DE GESTION DE L&#039;ACCES A UN RESEAU SANS FILM&#039;&#039;&#039;&lt;br /&gt;
* Inventeur:	ERDMANN BOZENA (DE); NIKOV VENTZISLAV (BE); TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-06-03&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006129287&amp;amp;F=0 WO2006129287] (A1)&lt;br /&gt;
&lt;br /&gt;
===PROTECTED WIRELESS NETWORK ACCESS===&lt;br /&gt;
* aka &#039;&#039;&#039;ACCES RESEAU SANS FIL PROTEGE&#039;&#039;&#039;&lt;br /&gt;
* Inventeur:	TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-06-06&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006131852&amp;amp;F=0 WO2006131852] (A1)&lt;br /&gt;
&lt;br /&gt;
===FURTIVE TIMED EXECUTION CONTROL===&lt;br /&gt;
* Inventeur:	TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-09-19&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=WO&amp;amp;NR=2007034382A3&amp;amp;KC=A3&amp;amp;FT=D&amp;amp;ND=1&amp;amp;date=20090604&amp;amp;DB=&amp;amp;locale=en_EP WO2007034382] (A3)  &lt;br /&gt;
&lt;br /&gt;
===METHOD AND APPARATUS FOR AUTHENTICATING STATIC DATA CARRIERS===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCÉDÉ ET APPAREIL D&#039;AUTHENTIFICATION DE SUPPORTS DE DONNÉES STATIQUES&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s): Serret Avila;  Javier  (Brussels,  BE,  US) , Ton;  Wim  (Edinburgh,  IE,  US) , Teuwen;  Philippe  (Leuven,  BE,  US) , Tuyls;  Pim Theo  (Eindhoven,  NL,  US) , De Soete;  Marijke G.C.S.  (Oostkamp,  BE,  US) &lt;br /&gt;
* Priority date	Mar 21, 2006&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=WO&amp;amp;NR=2007107928A3&amp;amp;KC=A3&amp;amp;FT=D&amp;amp;ND=2&amp;amp;date=20071221&amp;amp;DB=EPODOC&amp;amp;locale=en_EP WO2007107928] (A3)&lt;br /&gt;
** US20100161994 (A1) ([http://www.google.com/patents/US20100161994 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=1999751A2&amp;amp;KC=A2&amp;amp;FT=D EP1999751]  (A2)([http://www.google.com/patents/EP1999751A2 Google Patents])&lt;br /&gt;
** CN101405805 [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200780010141&amp;amp;D1=appno 200780010141]&lt;br /&gt;
** RU2008141690  (A)&lt;br /&gt;
** JP2009530945  (A)&lt;br /&gt;
&lt;br /&gt;
===IMPROVED AUTHENTICATION SYSTEM===&lt;br /&gt;
* Inventor(s):	 TEUWEN PHILIPPE [NL]; NIKOV VENTZISLAV [NL] +&lt;br /&gt;
* Priority date	Dec 3, 2009&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2336985A1&amp;amp;KC=A1&amp;amp;FT=D EP2336985]  (A1)([http://www.google.com/patents/EP2336985A1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIVERSIFYING CONTROL FLOW OF WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Wil Michiels, Jan Hoogerbrugge, Teuwen Philippe&lt;br /&gt;
* Filing Date: May 29, 2015&lt;br /&gt;
* Application No: 14/725801&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20160253189 (A1) ([https://www.google.com/patents/US20160350520 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FUZZY OPAQUE PREDICATES===&lt;br /&gt;
* Inventor: Teuwen Philippe&lt;br /&gt;
* Filing Date: June 26, 2015&lt;br /&gt;
* Application No: 14/751606&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20160379131 (A1) ([https://www.google.com/patents/US20160379131 Google Patents])&lt;br /&gt;
&lt;br /&gt;
==Patent applications (not yet published)==&lt;br /&gt;
&lt;br /&gt;
==Search engines==&lt;br /&gt;
* Full query&lt;br /&gt;
** [http://accounts.ktmine.com/company/ipreport?q=TEUWEN%20PHILIPPE ktmine]&lt;br /&gt;
** [http://www.freepatentsonline.com/result.html?p=1&amp;amp;edit_alert=&amp;amp;srch=xprtsrch&amp;amp;query_txt=IN%2F%22teuwen+philippe%22&amp;amp;uspat=on&amp;amp;usapp=on&amp;amp;eupat=on&amp;amp;pct=on&amp;amp;date_range=all&amp;amp;stemming=off&amp;amp;sort=chron&amp;amp;search=Search freepatentsonline], [http://www.freepatentsonline.com/result.html?p=1&amp;amp;edit_alert=&amp;amp;srch=xprtsrch&amp;amp;query_txt=IN%2F%22teuwen+philippe%22+APD%2F01%2F01%2F2014-%3ENOW&amp;amp;uspat=on&amp;amp;usapp=on&amp;amp;eupat=on&amp;amp;pct=on&amp;amp;date_range=all&amp;amp;stemming=off&amp;amp;sort=chron&amp;amp;search=Search limited 2014-now]&lt;br /&gt;
* Portals&lt;br /&gt;
** [http://www.wipo.int/pctdb/en/ International Patent Applications]&lt;br /&gt;
** [http://www.wipo.int/ipdl/en/resources/links.html Patent Databases in Different Countries]&lt;br /&gt;
** [http://www.espacenet.com/ esp@cenet, Europe&#039;s network of patent databases] // [http://ep.espacenet.com/advancedSearch?locale=en_ep advanced search]&lt;br /&gt;
** [http://www.uspto.gov/patft/index.html Unites States Patent and Trademark Office]&lt;br /&gt;
** [http://www.google.com/patents Google patents]&lt;br /&gt;
** [http://english.sipo.gov.cn/ China SIPO]&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Patents&amp;diff=10523</id>
		<title>Patents</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Patents&amp;diff=10523"/>
		<updated>2021-05-28T08:41:50Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* SECURE SOFTWARE COMPONENTS ANTI-REVERSE-ENGINEERING BY TABLE INTERLEAVING */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Granted patents==&lt;br /&gt;
Note: les traductions officielles en français, parfois loufoques, ne proviennent pas des auteurs...&lt;br /&gt;
===SECURE PAIRING FOR WIRED OR WIRELESS COMMUNICATIONS DEVICES===&lt;br /&gt;
* aka &#039;&#039;&#039;APPARIEMENT SECURISE POUR DISPOSITIFS DE COMMUNICATION FILAIRES OU SANS FIL&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  Vauclair;  Marc  (Leuven,  BE,  US) , Serret Avila;  Javier  (Brussels,  BE,  US) , Etienne; Lionel Georges  (Leuven,  BE,  US) , Teuwen;  Philippe  (Leuven,  BE,  US)&lt;br /&gt;
* Priority date:   Sep 8, 2004&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006027725&amp;amp;F=0 WO2006027725] (A1)&lt;br /&gt;
** &#039;&#039;&#039;US8813188 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US8813188 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP1792442 (B1)&#039;&#039;&#039; ([http://www.google.com/patents/EP1792442B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN101015173 (B)&#039;&#039;&#039;&lt;br /&gt;
** DE602005019589 (D1)&lt;br /&gt;
** KR20070050057  (A)&lt;br /&gt;
** JP2008512891  (A)&lt;br /&gt;
** AT459158  (T)&lt;br /&gt;
** &#039;&#039;&#039;TWI467978 (B)&#039;&#039;&#039; ??&lt;br /&gt;
&lt;br /&gt;
===METHOD AND DEVICE FOR INCREASED RFID TRANSMISSION SECURITY===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCEDE ET DISPOSITIF AMELIORANT LA SECURITE DE TRANSMISSION DES IDRF&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  	Teuwen;  Philippe  (Ixelles,  BE,  US) , Thueringer;  Peter  (Graz,  AT,  US)&lt;br /&gt;
* Priority date	Jun 7, 2005&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006131861&amp;amp;F=0 WO2006131861] (A1)&lt;br /&gt;
** &#039;&#039;&#039;US 8813188 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8813188B2 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;[http://v3.espacenet.com/publicationDetails/biblio?adjacent=true&amp;amp;KC=B1&amp;amp;date=20080305&amp;amp;NR=1894145A1&amp;amp;DB=EPODOC&amp;amp;locale=en_EP&amp;amp;CC=EP&amp;amp;FT=D EP1894145] (B1) ([http://www.google.com/patents/EP1894145B1 Google Patents])&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;CN101194274  (B)&#039;&#039;&#039; [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200680020153&amp;amp;D1=appno 200680020153]&lt;br /&gt;
** DE602006006055 (D1)&lt;br /&gt;
** &#039;&#039;&#039;JP4739342 (B2)&#039;&#039;&#039;&lt;br /&gt;
** AT427536  (T)&lt;br /&gt;
** &#039;&#039;&#039;KR101270039 (B1)&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;TWI467978 (B)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===WATERMARKING OF A PROCESSING MODULE===&lt;br /&gt;
* aka &#039;&#039;&#039;FILIGRANAGE D&#039;UN MODULE DE TRAITEMENT&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  Teuwen;  Philippe  (Ixelles,  BE,  US)&lt;br /&gt;
* Priority date	Sep 30, 2005&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=US&amp;amp;NR=8209543B2&amp;amp;KC=B2&amp;amp;FT=D&amp;amp;ND=1&amp;amp;date=20120626&amp;amp;DB=&amp;amp;locale=en_EP WO2007036863] (A3)&lt;br /&gt;
** &#039;&#039;&#039;US 8209543 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8209543 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=1934877A2&amp;amp;KC=A2&amp;amp;FT=D EP1934877] (A2)([http://www.google.com/patents/EP1934877A2 Google Patents])&lt;br /&gt;
** CN101273365  (A) [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200680035901&amp;amp;D1=appno 200680035901]&lt;br /&gt;
** JP2009510880  (A)&lt;br /&gt;
&lt;br /&gt;
===METHOD OF OBFUSCATING A CODE===&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE) ; Nikov; Ventzislav; (Haasrode, BE)&lt;br /&gt;
* Priority date	Aug 26, 2009&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9465926 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9465926 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;[http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2290547B1&amp;amp;KC=B1&amp;amp;FT=D EP2290547 (B1)]&#039;&#039;&#039; ([http://www.google.com/patents/EP2290547B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;US 9965401 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9965401B2/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CHALLENGE RESPONSE BASED ENROLLMENT OF PHYSICAL UNCLONABLE FUNCTIONS===&lt;br /&gt;
* aka &#039;&#039;&#039;ENROLLMENT OF PHYSICALLY UNCLONABLE FUNCTIONS&#039;&#039;&#039;&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE) ; Nikov; Ventzislav; (Haasrode, BE)&lt;br /&gt;
* Priority date	Nov 19, 2010&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US8694778 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8694778 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2456121 (B1)&#039;&#039;&#039; ([http://www.google.com/patents/EP2456121B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN102571748 (B)&#039;&#039;&#039; ([[https://www.google.com/patents/CN102571748B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ELECTRONIC COMPONENT WITH CONFIGURABLE FUNCTIONALITY===&lt;br /&gt;
* aka &#039;&#039;&#039;ELECTRONIC COMPONENT&#039;&#039;&#039;&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE)&lt;br /&gt;
* Priority date	Nov 30, 2010&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US8990519 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8990519 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2458522A1&amp;amp;KC=A1&amp;amp;FT=D EP2458522] (A1) ([http://www.google.com/patents/EP2458522A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN102609558 (B)&#039;&#039;&#039; ([http://www.google.com/patents/CN102609558B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIGITAL WALLET DEVICE FOR VIRTUAL WALLET===&lt;br /&gt;
* Inventors:    Teuwen Philippe;  Colnot Cedric;&lt;br /&gt;
* Priority date Dec 19, 2012 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10147086B2 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10147086B2/en Google Patents])&lt;br /&gt;
** EP2747015 (A3) ([https://www.google.be/patents/EP2747015A3 Google Patents])&lt;br /&gt;
** CN103886455 (A) ([https://www.google.be/patents/CN103886455A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIGITAL WALLET BRIDGE===&lt;br /&gt;
* Inventors:    Colnot Cedric;  Teuwen Philippe&lt;br /&gt;
* Priority date Apr 2,2013 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10102522B2 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10102522B2/en Google Patents])&lt;br /&gt;
** EP2787473 (A1) ([https://www.google.be/patents/EP2787473A1?cl=en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===BINDING MOBILE DEVICE SECURE SOFTWARE COMPONENTS TO THE SIM===&lt;br /&gt;
* Inventors: Peter Rombouts, Philippe Teuwen, Frank Michaud&lt;br /&gt;
* Priority date: Dec 19, 2013 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9264899 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9264899 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;US 9584514 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9584514B2/en Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104731612 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104731612A Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2887610 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2887610B1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===METHOD OF GENERATING A STRUCTURE AND CORRESPONDING STRUCTURE===&lt;br /&gt;
* Inventors: Colnot Vincent Cedric; Rombouts Peter; Teuwen Philippe; Michaud Frank&lt;br /&gt;
* Priority Date: Nov 21, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9563754 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9563754 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2876593 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2876593B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104657636 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104657636B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RESTRICTING SOFTWARE TO AUTHORIZED WIRELESS ENVIRONMENTS===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Frank Michaud&lt;br /&gt;
* Priority Date: Dec 13, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US9693224 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9693224 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2884786 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2884786B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104715192 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104715192B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===SECURE SOFTWARE COMPONENTS ANTI-REVERSE-ENGINEERING BY TABLE INTERLEAVING===&lt;br /&gt;
* Inventors: Philippe Teuwen, Ventzislav Nikov, Peter Rombouts&lt;br /&gt;
* Priority Date: Dec 26, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9576116 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9576116 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2892175 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2892175B1/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FLEXIBLE URL SIGNATURE SCHEME FOR TAGS===&lt;br /&gt;
* aka &#039;&#039;&#039;Flexible data authentication for an nfc data exchange format ndef message&#039;&#039;&#039;&lt;br /&gt;
* aka &#039;&#039;&#039;Flexible data authentication &#039;&#039;&#039;&lt;br /&gt;
* Inventors: Philippe Teuwen&lt;br /&gt;
* Priority Date: Dec 31, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9419803 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9419803 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2890172 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2890172B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104796257 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104796257B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ONE-TIME PROGRAMMING IN REPROGRAMMABLE MEMORY===&lt;br /&gt;
* Inventors: Marc Vauclair, Philippe Teuwen&lt;br /&gt;
* Priority Date: March 14, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9823860 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9823860B2 Google Patents])&lt;br /&gt;
** EP2919236 (A1) ([https://www.google.com/patents/EP2919236A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104916321 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104916321B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CONSTELLATION BASED DEVICE BINDING===&lt;br /&gt;
* Inventors: Peter Rombouts, Frank Michaud, Philippe Teuwen&lt;br /&gt;
* Priority Date: March 27, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9953144 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9953144B2 Google Patents])&lt;br /&gt;
** EP2924566 (A3) ([https://www.google.com/patents/EP2924566A3 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104951714 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104951714B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CONTROL FLOW FLATTENING FOR CODE OBFUSCATION WHERE THE NEXT BLOCK CALCULATION NEEDS RUN-TIME INFORMATION===&lt;br /&gt;
* Inventors: Jan Hoogerbrugge, Philippe Teuwen, Wil Michiels&lt;br /&gt;
* Priority Date: April 23, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;EP2937803 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2937803B1/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RETURN-ORIENTED PROGRAMMING AS AN OBFUSCATION TECHNIQUE===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Jan Brands, Jan Hoogerbrugge&lt;br /&gt;
* Priority Date: May 6, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9411597 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9411597 Google Patents])&lt;br /&gt;
** EP2942727 (A1) ([https://www.google.com/patents/EP2942727A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN105095697 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN105095697A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FLEXIBLE INSTRUCTION SETS FOR OBFUSCATED VIRTUAL MACHINES===&lt;br /&gt;
* Inventors: Teuwen Philippe&lt;br /&gt;
* Priority Date: Feb 26, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9501301 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9501301 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP3062256A1 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP3062256B1/en Google Patents])&lt;br /&gt;
** CN105930694 (A) ([https://www.google.com/patents/CN105930694 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ENCODING VALUES BY PSEUDO-RANDOM MASK===&lt;br /&gt;
* Inventors: Michiels Wil, Hoogerbrugge Jan, Teuwen Philippe&lt;br /&gt;
* Priority Date: July 30, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10097342 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10097342B2/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===WIDE ENCODING OF INTERMEDIATE VALUES WITHIN A WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Michiels Wil, Bos Joppe, Teuwen Philippe&lt;br /&gt;
* Priority Date: December 16, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10171234&#039;&#039;&#039; (B2) ([https://patents.google.com/patent/US10171234B2 Google Patents])&lt;br /&gt;
** EP3182637 (A1) ([https://www.google.com/patents/EP3182637A1 Google Patents])&lt;br /&gt;
** CN106888081 (A) ([https://www.google.com/patents/CN106888081A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===BALANCED ENCODING OF INTERMEDIATE VALUES WITHIN A WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Michiels Wil, Teuwen Philippe&lt;br /&gt;
* Priority Date: July 30, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US10700849B2&#039;&#039;&#039; (B2) ([https://www.google.com/patents/US10700849B2 Google Patents])&lt;br /&gt;
** EP3125462 (A1) ([https://www.google.com/patents/EP3125462A1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RANDOM DATA FROM GNSS SIGNALS AND SECURE RANDOM VALUE PROVISIONING FOR SECURE SOFTWARE COMPONENT IMPLEMENTATIONS===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Frank Michaud&lt;br /&gt;
* Filing Date: 12/13/2013(?)&lt;br /&gt;
* Application no: 14/104772&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20150172050 (A1) ([https://www.google.com.ar/patents/US20150172050 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2884689&#039;&#039;&#039; (B1) ([https://patents.google.com/patent/EP2884689B1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
==Patent applications (published)==&lt;br /&gt;
&lt;br /&gt;
===METHOD AND DEVICES FOR WIRELESS NETWORK ACCESS MANAGEMENT===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCEDE ET DISPOSITIFS DE GESTION DE L&#039;ACCES A UN RESEAU SANS FILM&#039;&#039;&#039;&lt;br /&gt;
* Inventeur:	ERDMANN BOZENA (DE); NIKOV VENTZISLAV (BE); TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-06-03&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006129287&amp;amp;F=0 WO2006129287] (A1)&lt;br /&gt;
&lt;br /&gt;
===PROTECTED WIRELESS NETWORK ACCESS===&lt;br /&gt;
* aka &#039;&#039;&#039;ACCES RESEAU SANS FIL PROTEGE&#039;&#039;&#039;&lt;br /&gt;
* Inventeur:	TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-06-06&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006131852&amp;amp;F=0 WO2006131852] (A1)&lt;br /&gt;
&lt;br /&gt;
===FURTIVE TIMED EXECUTION CONTROL===&lt;br /&gt;
* Inventeur:	TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-09-19&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=WO&amp;amp;NR=2007034382A3&amp;amp;KC=A3&amp;amp;FT=D&amp;amp;ND=1&amp;amp;date=20090604&amp;amp;DB=&amp;amp;locale=en_EP WO2007034382] (A3)  &lt;br /&gt;
&lt;br /&gt;
===METHOD AND APPARATUS FOR AUTHENTICATING STATIC DATA CARRIERS===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCÉDÉ ET APPAREIL D&#039;AUTHENTIFICATION DE SUPPORTS DE DONNÉES STATIQUES&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s): Serret Avila;  Javier  (Brussels,  BE,  US) , Ton;  Wim  (Edinburgh,  IE,  US) , Teuwen;  Philippe  (Leuven,  BE,  US) , Tuyls;  Pim Theo  (Eindhoven,  NL,  US) , De Soete;  Marijke G.C.S.  (Oostkamp,  BE,  US) &lt;br /&gt;
* Priority date	Mar 21, 2006&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=WO&amp;amp;NR=2007107928A3&amp;amp;KC=A3&amp;amp;FT=D&amp;amp;ND=2&amp;amp;date=20071221&amp;amp;DB=EPODOC&amp;amp;locale=en_EP WO2007107928] (A3)&lt;br /&gt;
** US20100161994 (A1) ([http://www.google.com/patents/US20100161994 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=1999751A2&amp;amp;KC=A2&amp;amp;FT=D EP1999751]  (A2)([http://www.google.com/patents/EP1999751A2 Google Patents])&lt;br /&gt;
** CN101405805 [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200780010141&amp;amp;D1=appno 200780010141]&lt;br /&gt;
** RU2008141690  (A)&lt;br /&gt;
** JP2009530945  (A)&lt;br /&gt;
&lt;br /&gt;
===IMPROVED AUTHENTICATION SYSTEM===&lt;br /&gt;
* Inventor(s):	 TEUWEN PHILIPPE [NL]; NIKOV VENTZISLAV [NL] +&lt;br /&gt;
* Priority date	Dec 3, 2009&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2336985A1&amp;amp;KC=A1&amp;amp;FT=D EP2336985]  (A1)([http://www.google.com/patents/EP2336985A1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIVERSIFYING CONTROL FLOW OF WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Wil Michiels, Jan Hoogerbrugge, Teuwen Philippe&lt;br /&gt;
* Filing Date: May 29, 2015&lt;br /&gt;
* Application No: 14/725801&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20160253189 (A1) ([https://www.google.com/patents/US20160350520 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FUZZY OPAQUE PREDICATES===&lt;br /&gt;
* Inventor: Teuwen Philippe&lt;br /&gt;
* Filing Date: June 26, 2015&lt;br /&gt;
* Application No: 14/751606&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20160379131 (A1) ([https://www.google.com/patents/US20160379131 Google Patents])&lt;br /&gt;
&lt;br /&gt;
==Patent applications (not yet published)==&lt;br /&gt;
&lt;br /&gt;
==Search engines==&lt;br /&gt;
* Full query&lt;br /&gt;
** [http://accounts.ktmine.com/company/ipreport?q=TEUWEN%20PHILIPPE ktmine]&lt;br /&gt;
** [http://www.freepatentsonline.com/result.html?p=1&amp;amp;edit_alert=&amp;amp;srch=xprtsrch&amp;amp;query_txt=IN%2F%22teuwen+philippe%22&amp;amp;uspat=on&amp;amp;usapp=on&amp;amp;eupat=on&amp;amp;pct=on&amp;amp;date_range=all&amp;amp;stemming=off&amp;amp;sort=chron&amp;amp;search=Search freepatentsonline], [http://www.freepatentsonline.com/result.html?p=1&amp;amp;edit_alert=&amp;amp;srch=xprtsrch&amp;amp;query_txt=IN%2F%22teuwen+philippe%22+APD%2F01%2F01%2F2014-%3ENOW&amp;amp;uspat=on&amp;amp;usapp=on&amp;amp;eupat=on&amp;amp;pct=on&amp;amp;date_range=all&amp;amp;stemming=off&amp;amp;sort=chron&amp;amp;search=Search limited 2014-now]&lt;br /&gt;
* Portals&lt;br /&gt;
** [http://www.wipo.int/pctdb/en/ International Patent Applications]&lt;br /&gt;
** [http://www.wipo.int/ipdl/en/resources/links.html Patent Databases in Different Countries]&lt;br /&gt;
** [http://www.espacenet.com/ esp@cenet, Europe&#039;s network of patent databases] // [http://ep.espacenet.com/advancedSearch?locale=en_ep advanced search]&lt;br /&gt;
** [http://www.uspto.gov/patft/index.html Unites States Patent and Trademark Office]&lt;br /&gt;
** [http://www.google.com/patents Google patents]&lt;br /&gt;
** [http://english.sipo.gov.cn/ China SIPO]&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Patents&amp;diff=10522</id>
		<title>Patents</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Patents&amp;diff=10522"/>
		<updated>2021-05-28T08:37:58Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Granted patents==&lt;br /&gt;
Note: les traductions officielles en français, parfois loufoques, ne proviennent pas des auteurs...&lt;br /&gt;
===SECURE PAIRING FOR WIRED OR WIRELESS COMMUNICATIONS DEVICES===&lt;br /&gt;
* aka &#039;&#039;&#039;APPARIEMENT SECURISE POUR DISPOSITIFS DE COMMUNICATION FILAIRES OU SANS FIL&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  Vauclair;  Marc  (Leuven,  BE,  US) , Serret Avila;  Javier  (Brussels,  BE,  US) , Etienne; Lionel Georges  (Leuven,  BE,  US) , Teuwen;  Philippe  (Leuven,  BE,  US)&lt;br /&gt;
* Priority date:   Sep 8, 2004&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006027725&amp;amp;F=0 WO2006027725] (A1)&lt;br /&gt;
** &#039;&#039;&#039;US8813188 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US8813188 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP1792442 (B1)&#039;&#039;&#039; ([http://www.google.com/patents/EP1792442B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN101015173 (B)&#039;&#039;&#039;&lt;br /&gt;
** DE602005019589 (D1)&lt;br /&gt;
** KR20070050057  (A)&lt;br /&gt;
** JP2008512891  (A)&lt;br /&gt;
** AT459158  (T)&lt;br /&gt;
** &#039;&#039;&#039;TWI467978 (B)&#039;&#039;&#039; ??&lt;br /&gt;
&lt;br /&gt;
===METHOD AND DEVICE FOR INCREASED RFID TRANSMISSION SECURITY===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCEDE ET DISPOSITIF AMELIORANT LA SECURITE DE TRANSMISSION DES IDRF&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  	Teuwen;  Philippe  (Ixelles,  BE,  US) , Thueringer;  Peter  (Graz,  AT,  US)&lt;br /&gt;
* Priority date	Jun 7, 2005&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006131861&amp;amp;F=0 WO2006131861] (A1)&lt;br /&gt;
** &#039;&#039;&#039;US 8813188 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8813188B2 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;[http://v3.espacenet.com/publicationDetails/biblio?adjacent=true&amp;amp;KC=B1&amp;amp;date=20080305&amp;amp;NR=1894145A1&amp;amp;DB=EPODOC&amp;amp;locale=en_EP&amp;amp;CC=EP&amp;amp;FT=D EP1894145] (B1) ([http://www.google.com/patents/EP1894145B1 Google Patents])&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;CN101194274  (B)&#039;&#039;&#039; [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200680020153&amp;amp;D1=appno 200680020153]&lt;br /&gt;
** DE602006006055 (D1)&lt;br /&gt;
** &#039;&#039;&#039;JP4739342 (B2)&#039;&#039;&#039;&lt;br /&gt;
** AT427536  (T)&lt;br /&gt;
** &#039;&#039;&#039;KR101270039 (B1)&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;TWI467978 (B)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===WATERMARKING OF A PROCESSING MODULE===&lt;br /&gt;
* aka &#039;&#039;&#039;FILIGRANAGE D&#039;UN MODULE DE TRAITEMENT&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  Teuwen;  Philippe  (Ixelles,  BE,  US)&lt;br /&gt;
* Priority date	Sep 30, 2005&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=US&amp;amp;NR=8209543B2&amp;amp;KC=B2&amp;amp;FT=D&amp;amp;ND=1&amp;amp;date=20120626&amp;amp;DB=&amp;amp;locale=en_EP WO2007036863] (A3)&lt;br /&gt;
** &#039;&#039;&#039;US 8209543 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8209543 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=1934877A2&amp;amp;KC=A2&amp;amp;FT=D EP1934877] (A2)([http://www.google.com/patents/EP1934877A2 Google Patents])&lt;br /&gt;
** CN101273365  (A) [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200680035901&amp;amp;D1=appno 200680035901]&lt;br /&gt;
** JP2009510880  (A)&lt;br /&gt;
&lt;br /&gt;
===METHOD OF OBFUSCATING A CODE===&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE) ; Nikov; Ventzislav; (Haasrode, BE)&lt;br /&gt;
* Priority date	Aug 26, 2009&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9465926 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9465926 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;[http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2290547B1&amp;amp;KC=B1&amp;amp;FT=D EP2290547 (B1)]&#039;&#039;&#039; ([http://www.google.com/patents/EP2290547B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;US 9965401 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9965401B2/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CHALLENGE RESPONSE BASED ENROLLMENT OF PHYSICAL UNCLONABLE FUNCTIONS===&lt;br /&gt;
* aka &#039;&#039;&#039;ENROLLMENT OF PHYSICALLY UNCLONABLE FUNCTIONS&#039;&#039;&#039;&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE) ; Nikov; Ventzislav; (Haasrode, BE)&lt;br /&gt;
* Priority date	Nov 19, 2010&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US8694778 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8694778 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2456121 (B1)&#039;&#039;&#039; ([http://www.google.com/patents/EP2456121B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN102571748 (B)&#039;&#039;&#039; ([[https://www.google.com/patents/CN102571748B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ELECTRONIC COMPONENT WITH CONFIGURABLE FUNCTIONALITY===&lt;br /&gt;
* aka &#039;&#039;&#039;ELECTRONIC COMPONENT&#039;&#039;&#039;&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE)&lt;br /&gt;
* Priority date	Nov 30, 2010&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US8990519 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8990519 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2458522A1&amp;amp;KC=A1&amp;amp;FT=D EP2458522] (A1) ([http://www.google.com/patents/EP2458522A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN102609558 (B)&#039;&#039;&#039; ([http://www.google.com/patents/CN102609558B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIGITAL WALLET DEVICE FOR VIRTUAL WALLET===&lt;br /&gt;
* Inventors:    Teuwen Philippe;  Colnot Cedric;&lt;br /&gt;
* Priority date Dec 19, 2012 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10147086B2 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10147086B2/en Google Patents])&lt;br /&gt;
** EP2747015 (A3) ([https://www.google.be/patents/EP2747015A3 Google Patents])&lt;br /&gt;
** CN103886455 (A) ([https://www.google.be/patents/CN103886455A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIGITAL WALLET BRIDGE===&lt;br /&gt;
* Inventors:    Colnot Cedric;  Teuwen Philippe&lt;br /&gt;
* Priority date Apr 2,2013 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10102522B2 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10102522B2/en Google Patents])&lt;br /&gt;
** EP2787473 (A1) ([https://www.google.be/patents/EP2787473A1?cl=en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===BINDING MOBILE DEVICE SECURE SOFTWARE COMPONENTS TO THE SIM===&lt;br /&gt;
* Inventors: Peter Rombouts, Philippe Teuwen, Frank Michaud&lt;br /&gt;
* Priority date: Dec 19, 2013 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9264899 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9264899 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;US 9584514 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9584514B2/en Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104731612 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104731612A Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2887610 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2887610B1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===METHOD OF GENERATING A STRUCTURE AND CORRESPONDING STRUCTURE===&lt;br /&gt;
* Inventors: Colnot Vincent Cedric; Rombouts Peter; Teuwen Philippe; Michaud Frank&lt;br /&gt;
* Priority Date: Nov 21, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9563754 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9563754 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2876593 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2876593B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104657636 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104657636B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RESTRICTING SOFTWARE TO AUTHORIZED WIRELESS ENVIRONMENTS===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Frank Michaud&lt;br /&gt;
* Priority Date: Dec 13, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US9693224 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9693224 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2884786 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2884786B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104715192 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104715192B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===SECURE SOFTWARE COMPONENTS ANTI-REVERSE-ENGINEERING BY TABLE INTERLEAVING===&lt;br /&gt;
* Inventors: Philippe Teuwen, Ventzislav Nikov, Peter Rombouts&lt;br /&gt;
* Priority Date: Dec 26, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9576116 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9576116 Google Patents])&lt;br /&gt;
** EP2892175 (A1) ([https://www.google.com/patents/EP2892175A1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FLEXIBLE URL SIGNATURE SCHEME FOR TAGS===&lt;br /&gt;
* aka &#039;&#039;&#039;Flexible data authentication for an nfc data exchange format ndef message&#039;&#039;&#039;&lt;br /&gt;
* aka &#039;&#039;&#039;Flexible data authentication &#039;&#039;&#039;&lt;br /&gt;
* Inventors: Philippe Teuwen&lt;br /&gt;
* Priority Date: Dec 31, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9419803 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9419803 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2890172 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2890172B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104796257 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104796257B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ONE-TIME PROGRAMMING IN REPROGRAMMABLE MEMORY===&lt;br /&gt;
* Inventors: Marc Vauclair, Philippe Teuwen&lt;br /&gt;
* Priority Date: March 14, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9823860 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9823860B2 Google Patents])&lt;br /&gt;
** EP2919236 (A1) ([https://www.google.com/patents/EP2919236A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104916321 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104916321B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CONSTELLATION BASED DEVICE BINDING===&lt;br /&gt;
* Inventors: Peter Rombouts, Frank Michaud, Philippe Teuwen&lt;br /&gt;
* Priority Date: March 27, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9953144 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9953144B2 Google Patents])&lt;br /&gt;
** EP2924566 (A3) ([https://www.google.com/patents/EP2924566A3 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104951714 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104951714B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CONTROL FLOW FLATTENING FOR CODE OBFUSCATION WHERE THE NEXT BLOCK CALCULATION NEEDS RUN-TIME INFORMATION===&lt;br /&gt;
* Inventors: Jan Hoogerbrugge, Philippe Teuwen, Wil Michiels&lt;br /&gt;
* Priority Date: April 23, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;EP2937803 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2937803B1/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RETURN-ORIENTED PROGRAMMING AS AN OBFUSCATION TECHNIQUE===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Jan Brands, Jan Hoogerbrugge&lt;br /&gt;
* Priority Date: May 6, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9411597 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9411597 Google Patents])&lt;br /&gt;
** EP2942727 (A1) ([https://www.google.com/patents/EP2942727A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN105095697 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN105095697A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FLEXIBLE INSTRUCTION SETS FOR OBFUSCATED VIRTUAL MACHINES===&lt;br /&gt;
* Inventors: Teuwen Philippe&lt;br /&gt;
* Priority Date: Feb 26, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9501301 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9501301 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP3062256A1 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP3062256B1/en Google Patents])&lt;br /&gt;
** CN105930694 (A) ([https://www.google.com/patents/CN105930694 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ENCODING VALUES BY PSEUDO-RANDOM MASK===&lt;br /&gt;
* Inventors: Michiels Wil, Hoogerbrugge Jan, Teuwen Philippe&lt;br /&gt;
* Priority Date: July 30, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10097342 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10097342B2/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===WIDE ENCODING OF INTERMEDIATE VALUES WITHIN A WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Michiels Wil, Bos Joppe, Teuwen Philippe&lt;br /&gt;
* Priority Date: December 16, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10171234&#039;&#039;&#039; (B2) ([https://patents.google.com/patent/US10171234B2 Google Patents])&lt;br /&gt;
** EP3182637 (A1) ([https://www.google.com/patents/EP3182637A1 Google Patents])&lt;br /&gt;
** CN106888081 (A) ([https://www.google.com/patents/CN106888081A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===BALANCED ENCODING OF INTERMEDIATE VALUES WITHIN A WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Michiels Wil, Teuwen Philippe&lt;br /&gt;
* Priority Date: July 30, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US10700849B2&#039;&#039;&#039; (B2) ([https://www.google.com/patents/US10700849B2 Google Patents])&lt;br /&gt;
** EP3125462 (A1) ([https://www.google.com/patents/EP3125462A1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RANDOM DATA FROM GNSS SIGNALS AND SECURE RANDOM VALUE PROVISIONING FOR SECURE SOFTWARE COMPONENT IMPLEMENTATIONS===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Frank Michaud&lt;br /&gt;
* Filing Date: 12/13/2013(?)&lt;br /&gt;
* Application no: 14/104772&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20150172050 (A1) ([https://www.google.com.ar/patents/US20150172050 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2884689&#039;&#039;&#039; (B1) ([https://patents.google.com/patent/EP2884689B1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
==Patent applications (published)==&lt;br /&gt;
&lt;br /&gt;
===METHOD AND DEVICES FOR WIRELESS NETWORK ACCESS MANAGEMENT===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCEDE ET DISPOSITIFS DE GESTION DE L&#039;ACCES A UN RESEAU SANS FILM&#039;&#039;&#039;&lt;br /&gt;
* Inventeur:	ERDMANN BOZENA (DE); NIKOV VENTZISLAV (BE); TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-06-03&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006129287&amp;amp;F=0 WO2006129287] (A1)&lt;br /&gt;
&lt;br /&gt;
===PROTECTED WIRELESS NETWORK ACCESS===&lt;br /&gt;
* aka &#039;&#039;&#039;ACCES RESEAU SANS FIL PROTEGE&#039;&#039;&#039;&lt;br /&gt;
* Inventeur:	TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-06-06&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006131852&amp;amp;F=0 WO2006131852] (A1)&lt;br /&gt;
&lt;br /&gt;
===FURTIVE TIMED EXECUTION CONTROL===&lt;br /&gt;
* Inventeur:	TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-09-19&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=WO&amp;amp;NR=2007034382A3&amp;amp;KC=A3&amp;amp;FT=D&amp;amp;ND=1&amp;amp;date=20090604&amp;amp;DB=&amp;amp;locale=en_EP WO2007034382] (A3)  &lt;br /&gt;
&lt;br /&gt;
===METHOD AND APPARATUS FOR AUTHENTICATING STATIC DATA CARRIERS===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCÉDÉ ET APPAREIL D&#039;AUTHENTIFICATION DE SUPPORTS DE DONNÉES STATIQUES&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s): Serret Avila;  Javier  (Brussels,  BE,  US) , Ton;  Wim  (Edinburgh,  IE,  US) , Teuwen;  Philippe  (Leuven,  BE,  US) , Tuyls;  Pim Theo  (Eindhoven,  NL,  US) , De Soete;  Marijke G.C.S.  (Oostkamp,  BE,  US) &lt;br /&gt;
* Priority date	Mar 21, 2006&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=WO&amp;amp;NR=2007107928A3&amp;amp;KC=A3&amp;amp;FT=D&amp;amp;ND=2&amp;amp;date=20071221&amp;amp;DB=EPODOC&amp;amp;locale=en_EP WO2007107928] (A3)&lt;br /&gt;
** US20100161994 (A1) ([http://www.google.com/patents/US20100161994 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=1999751A2&amp;amp;KC=A2&amp;amp;FT=D EP1999751]  (A2)([http://www.google.com/patents/EP1999751A2 Google Patents])&lt;br /&gt;
** CN101405805 [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200780010141&amp;amp;D1=appno 200780010141]&lt;br /&gt;
** RU2008141690  (A)&lt;br /&gt;
** JP2009530945  (A)&lt;br /&gt;
&lt;br /&gt;
===IMPROVED AUTHENTICATION SYSTEM===&lt;br /&gt;
* Inventor(s):	 TEUWEN PHILIPPE [NL]; NIKOV VENTZISLAV [NL] +&lt;br /&gt;
* Priority date	Dec 3, 2009&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2336985A1&amp;amp;KC=A1&amp;amp;FT=D EP2336985]  (A1)([http://www.google.com/patents/EP2336985A1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIVERSIFYING CONTROL FLOW OF WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Wil Michiels, Jan Hoogerbrugge, Teuwen Philippe&lt;br /&gt;
* Filing Date: May 29, 2015&lt;br /&gt;
* Application No: 14/725801&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20160253189 (A1) ([https://www.google.com/patents/US20160350520 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FUZZY OPAQUE PREDICATES===&lt;br /&gt;
* Inventor: Teuwen Philippe&lt;br /&gt;
* Filing Date: June 26, 2015&lt;br /&gt;
* Application No: 14/751606&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20160379131 (A1) ([https://www.google.com/patents/US20160379131 Google Patents])&lt;br /&gt;
&lt;br /&gt;
==Patent applications (not yet published)==&lt;br /&gt;
&lt;br /&gt;
==Search engines==&lt;br /&gt;
* Full query&lt;br /&gt;
** [http://accounts.ktmine.com/company/ipreport?q=TEUWEN%20PHILIPPE ktmine]&lt;br /&gt;
** [http://www.freepatentsonline.com/result.html?p=1&amp;amp;edit_alert=&amp;amp;srch=xprtsrch&amp;amp;query_txt=IN%2F%22teuwen+philippe%22&amp;amp;uspat=on&amp;amp;usapp=on&amp;amp;eupat=on&amp;amp;pct=on&amp;amp;date_range=all&amp;amp;stemming=off&amp;amp;sort=chron&amp;amp;search=Search freepatentsonline], [http://www.freepatentsonline.com/result.html?p=1&amp;amp;edit_alert=&amp;amp;srch=xprtsrch&amp;amp;query_txt=IN%2F%22teuwen+philippe%22+APD%2F01%2F01%2F2014-%3ENOW&amp;amp;uspat=on&amp;amp;usapp=on&amp;amp;eupat=on&amp;amp;pct=on&amp;amp;date_range=all&amp;amp;stemming=off&amp;amp;sort=chron&amp;amp;search=Search limited 2014-now]&lt;br /&gt;
* Portals&lt;br /&gt;
** [http://www.wipo.int/pctdb/en/ International Patent Applications]&lt;br /&gt;
** [http://www.wipo.int/ipdl/en/resources/links.html Patent Databases in Different Countries]&lt;br /&gt;
** [http://www.espacenet.com/ esp@cenet, Europe&#039;s network of patent databases] // [http://ep.espacenet.com/advancedSearch?locale=en_ep advanced search]&lt;br /&gt;
** [http://www.uspto.gov/patft/index.html Unites States Patent and Trademark Office]&lt;br /&gt;
** [http://www.google.com/patents Google patents]&lt;br /&gt;
** [http://english.sipo.gov.cn/ China SIPO]&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Patents&amp;diff=10521</id>
		<title>Patents</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Patents&amp;diff=10521"/>
		<updated>2021-03-20T11:24:12Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Granted patents==&lt;br /&gt;
Note: les traductions officielles en français, parfois loufoques, ne proviennent pas des auteurs...&lt;br /&gt;
===SECURE PAIRING FOR WIRED OR WIRELESS COMMUNICATIONS DEVICES===&lt;br /&gt;
* aka &#039;&#039;&#039;APPARIEMENT SECURISE POUR DISPOSITIFS DE COMMUNICATION FILAIRES OU SANS FIL&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  Vauclair;  Marc  (Leuven,  BE,  US) , Serret Avila;  Javier  (Brussels,  BE,  US) , Etienne; Lionel Georges  (Leuven,  BE,  US) , Teuwen;  Philippe  (Leuven,  BE,  US)&lt;br /&gt;
* Priority date:   Sep 8, 2004&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006027725&amp;amp;F=0 WO2006027725] (A1)&lt;br /&gt;
** &#039;&#039;&#039;US8813188 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US8813188 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP1792442 (B1)&#039;&#039;&#039; ([http://www.google.com/patents/EP1792442B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN101015173 (B)&#039;&#039;&#039;&lt;br /&gt;
** DE602005019589 (D1)&lt;br /&gt;
** KR20070050057  (A)&lt;br /&gt;
** JP2008512891  (A)&lt;br /&gt;
** AT459158  (T)&lt;br /&gt;
** &#039;&#039;&#039;TWI467978 (B)&#039;&#039;&#039; ??&lt;br /&gt;
&lt;br /&gt;
===METHOD AND DEVICE FOR INCREASED RFID TRANSMISSION SECURITY===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCEDE ET DISPOSITIF AMELIORANT LA SECURITE DE TRANSMISSION DES IDRF&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  	Teuwen;  Philippe  (Ixelles,  BE,  US) , Thueringer;  Peter  (Graz,  AT,  US)&lt;br /&gt;
* Priority date	Jun 7, 2005&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006131861&amp;amp;F=0 WO2006131861] (A1)&lt;br /&gt;
** &#039;&#039;&#039;US 8813188 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8813188B2 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;[http://v3.espacenet.com/publicationDetails/biblio?adjacent=true&amp;amp;KC=B1&amp;amp;date=20080305&amp;amp;NR=1894145A1&amp;amp;DB=EPODOC&amp;amp;locale=en_EP&amp;amp;CC=EP&amp;amp;FT=D EP1894145] (B1) ([http://www.google.com/patents/EP1894145B1 Google Patents])&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;CN101194274  (B)&#039;&#039;&#039; [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200680020153&amp;amp;D1=appno 200680020153]&lt;br /&gt;
** DE602006006055 (D1)&lt;br /&gt;
** &#039;&#039;&#039;JP4739342 (B2)&#039;&#039;&#039;&lt;br /&gt;
** AT427536  (T)&lt;br /&gt;
** &#039;&#039;&#039;KR101270039 (B1)&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;TWI467978 (B)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===WATERMARKING OF A PROCESSING MODULE===&lt;br /&gt;
* aka &#039;&#039;&#039;FILIGRANAGE D&#039;UN MODULE DE TRAITEMENT&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s):  Teuwen;  Philippe  (Ixelles,  BE,  US)&lt;br /&gt;
* Priority date	Sep 30, 2005&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=US&amp;amp;NR=8209543B2&amp;amp;KC=B2&amp;amp;FT=D&amp;amp;ND=1&amp;amp;date=20120626&amp;amp;DB=&amp;amp;locale=en_EP WO2007036863] (A3)&lt;br /&gt;
** &#039;&#039;&#039;US 8209543 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8209543 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=1934877A2&amp;amp;KC=A2&amp;amp;FT=D EP1934877] (A2)([http://www.google.com/patents/EP1934877A2 Google Patents])&lt;br /&gt;
** CN101273365  (A) [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200680035901&amp;amp;D1=appno 200680035901]&lt;br /&gt;
** JP2009510880  (A)&lt;br /&gt;
&lt;br /&gt;
===METHOD OF OBFUSCATING A CODE===&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE) ; Nikov; Ventzislav; (Haasrode, BE)&lt;br /&gt;
* Priority date	Aug 26, 2009&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9465926 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9465926 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;[http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2290547B1&amp;amp;KC=B1&amp;amp;FT=D EP2290547 (B1)]&#039;&#039;&#039; ([http://www.google.com/patents/EP2290547B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;US 9965401 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9965401B2/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CHALLENGE RESPONSE BASED ENROLLMENT OF PHYSICAL UNCLONABLE FUNCTIONS===&lt;br /&gt;
* aka &#039;&#039;&#039;ENROLLMENT OF PHYSICALLY UNCLONABLE FUNCTIONS&#039;&#039;&#039;&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE) ; Nikov; Ventzislav; (Haasrode, BE)&lt;br /&gt;
* Priority date	Nov 19, 2010&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US8694778 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8694778 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2456121 (B1)&#039;&#039;&#039; ([http://www.google.com/patents/EP2456121B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN102571748 (B)&#039;&#039;&#039; ([[https://www.google.com/patents/CN102571748B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ELECTRONIC COMPONENT WITH CONFIGURABLE FUNCTIONALITY===&lt;br /&gt;
* aka &#039;&#039;&#039;ELECTRONIC COMPONENT&#039;&#039;&#039;&lt;br /&gt;
* Inventors:	Teuwen; Philippe; (Ixelles, BE)&lt;br /&gt;
* Priority date	Nov 30, 2010&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US8990519 (B2)&#039;&#039;&#039; ([http://www.google.com/patents/US8990519 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2458522A1&amp;amp;KC=A1&amp;amp;FT=D EP2458522] (A1) ([http://www.google.com/patents/EP2458522A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN102609558 (B)&#039;&#039;&#039; ([http://www.google.com/patents/CN102609558B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIGITAL WALLET DEVICE FOR VIRTUAL WALLET===&lt;br /&gt;
* Inventors:    Teuwen Philippe;  Colnot Cedric;&lt;br /&gt;
* Priority date Dec 19, 2012 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10147086B2 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10147086B2/en Google Patents])&lt;br /&gt;
** EP2747015 (A3) ([https://www.google.be/patents/EP2747015A3 Google Patents])&lt;br /&gt;
** CN103886455 (A) ([https://www.google.be/patents/CN103886455A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIGITAL WALLET BRIDGE===&lt;br /&gt;
* Inventors:    Colnot Cedric;  Teuwen Philippe&lt;br /&gt;
* Priority date Apr 2,2013 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10102522B2 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10102522B2/en Google Patents])&lt;br /&gt;
** EP2787473 (A1) ([https://www.google.be/patents/EP2787473A1?cl=en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===BINDING MOBILE DEVICE SECURE SOFTWARE COMPONENTS TO THE SIM===&lt;br /&gt;
* Inventors: Peter Rombouts, Philippe Teuwen, Frank Michaud&lt;br /&gt;
* Priority date: Dec 19, 2013 &lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9264899 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9264899 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;US 9584514 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US9584514B2/en Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104731612 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104731612A Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2887610 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2887610B1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===METHOD OF GENERATING A STRUCTURE AND CORRESPONDING STRUCTURE===&lt;br /&gt;
* Inventors: Colnot Vincent Cedric; Rombouts Peter; Teuwen Philippe; Michaud Frank&lt;br /&gt;
* Priority Date: Nov 21, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9563754 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9563754 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2876593 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2876593B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104657636 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104657636B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RESTRICTING SOFTWARE TO AUTHORIZED WIRELESS ENVIRONMENTS===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Frank Michaud&lt;br /&gt;
* Priority Date: Dec 13, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US9693224 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9693224 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2884786 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2884786B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104715192 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104715192B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===SECURE SOFTWARE COMPONENTS ANTI-REVERSE-ENGINEERING BY TABLE INTERLEAVING===&lt;br /&gt;
* Inventors: Philippe Teuwen, Ventzislav Nikov, Peter Rombouts&lt;br /&gt;
* Priority Date: Dec 26, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9576116 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9576116 Google Patents])&lt;br /&gt;
** EP2892175 (A1) ([https://www.google.com/patents/EP2892175A1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FLEXIBLE URL SIGNATURE SCHEME FOR TAGS===&lt;br /&gt;
* aka &#039;&#039;&#039;Flexible data authentication for an nfc data exchange format ndef message&#039;&#039;&#039;&lt;br /&gt;
* aka &#039;&#039;&#039;Flexible data authentication &#039;&#039;&#039;&lt;br /&gt;
* Inventors: Philippe Teuwen&lt;br /&gt;
* Priority Date: Dec 31, 2013&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9419803 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9419803 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP2890172 (B1)&#039;&#039;&#039; ([https://www.google.com/patents/EP2890172B1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104796257 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104796257B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ONE-TIME PROGRAMMING IN REPROGRAMMABLE MEMORY===&lt;br /&gt;
* Inventors: Marc Vauclair, Philippe Teuwen&lt;br /&gt;
* Priority Date: March 14, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9823860 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9823860B2 Google Patents])&lt;br /&gt;
** EP2919236 (A1) ([https://www.google.com/patents/EP2919236A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104916321 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104916321B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CONSTELLATION BASED DEVICE BINDING===&lt;br /&gt;
* Inventors: Peter Rombouts, Frank Michaud, Philippe Teuwen&lt;br /&gt;
* Priority Date: March 27, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9953144 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9953144B2 Google Patents])&lt;br /&gt;
** EP2924566 (A3) ([https://www.google.com/patents/EP2924566A3 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN104951714 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN104951714B Google Patents])&lt;br /&gt;
&lt;br /&gt;
===CONTROL FLOW FLATTENING FOR CODE OBFUSCATION WHERE THE NEXT BLOCK CALCULATION NEEDS RUN-TIME INFORMATION===&lt;br /&gt;
* Inventors: Jan Hoogerbrugge, Philippe Teuwen, Wil Michiels&lt;br /&gt;
* Priority Date: April 23, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;EP2937803 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP2937803B1/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RETURN-ORIENTED PROGRAMMING AS AN OBFUSCATION TECHNIQUE===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Jan Brands, Jan Hoogerbrugge&lt;br /&gt;
* Priority Date: May 6, 2014&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9411597 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9411597 Google Patents])&lt;br /&gt;
** EP2942727 (A1) ([https://www.google.com/patents/EP2942727A1 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;CN105095697 (B)&#039;&#039;&#039; ([https://www.google.com/patents/CN105095697A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FLEXIBLE INSTRUCTION SETS FOR OBFUSCATED VIRTUAL MACHINES===&lt;br /&gt;
* Inventors: Teuwen Philippe&lt;br /&gt;
* Priority Date: Feb 26, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 9501301 (B2)&#039;&#039;&#039; ([https://www.google.com/patents/US9501301 Google Patents])&lt;br /&gt;
** &#039;&#039;&#039;EP3062256A1 (B1)&#039;&#039;&#039; ([https://patents.google.com/patent/EP3062256B1/en Google Patents])&lt;br /&gt;
** CN105930694 (A) ([https://www.google.com/patents/CN105930694 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===ENCODING VALUES BY PSEUDO-RANDOM MASK===&lt;br /&gt;
* Inventors: Michiels Wil, Hoogerbrugge Jan, Teuwen Philippe&lt;br /&gt;
* Priority Date: July 30, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10097342 (B2)&#039;&#039;&#039; ([https://patents.google.com/patent/US10097342B2/en Google Patents])&lt;br /&gt;
&lt;br /&gt;
===WIDE ENCODING OF INTERMEDIATE VALUES WITHIN A WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Michiels Wil, Bos Joppe, Teuwen Philippe&lt;br /&gt;
* Priority Date: December 16, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US 10171234&#039;&#039;&#039; (B2) ([https://patents.google.com/patent/US10171234B2 Google Patents])&lt;br /&gt;
** EP3182637 (A1) ([https://www.google.com/patents/EP3182637A1 Google Patents])&lt;br /&gt;
** CN106888081 (A) ([https://www.google.com/patents/CN106888081A Google Patents])&lt;br /&gt;
&lt;br /&gt;
===BALANCED ENCODING OF INTERMEDIATE VALUES WITHIN A WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Michiels Wil, Teuwen Philippe&lt;br /&gt;
* Priority Date: July 30, 2015&lt;br /&gt;
* Publications:&lt;br /&gt;
** &#039;&#039;&#039;US10700849B2&#039;&#039;&#039; (B2) ([https://www.google.com/patents/US10700849B2 Google Patents])&lt;br /&gt;
** EP3125462 (A1) ([https://www.google.com/patents/EP3125462A1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
==Patent applications (published)==&lt;br /&gt;
&lt;br /&gt;
===METHOD AND DEVICES FOR WIRELESS NETWORK ACCESS MANAGEMENT===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCEDE ET DISPOSITIFS DE GESTION DE L&#039;ACCES A UN RESEAU SANS FILM&#039;&#039;&#039;&lt;br /&gt;
* Inventeur:	ERDMANN BOZENA (DE); NIKOV VENTZISLAV (BE); TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-06-03&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006129287&amp;amp;F=0 WO2006129287] (A1)&lt;br /&gt;
&lt;br /&gt;
===PROTECTED WIRELESS NETWORK ACCESS===&lt;br /&gt;
* aka &#039;&#039;&#039;ACCES RESEAU SANS FIL PROTEGE&#039;&#039;&#039;&lt;br /&gt;
* Inventeur:	TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-06-06&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://v3.espacenet.com/textdoc?DB=EPODOC&amp;amp;IDX=WO2006131852&amp;amp;F=0 WO2006131852] (A1)&lt;br /&gt;
&lt;br /&gt;
===FURTIVE TIMED EXECUTION CONTROL===&lt;br /&gt;
* Inventeur:	TEUWEN PHILIPPE (BE)&lt;br /&gt;
* Priority date: 2005-09-19&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=WO&amp;amp;NR=2007034382A3&amp;amp;KC=A3&amp;amp;FT=D&amp;amp;ND=1&amp;amp;date=20090604&amp;amp;DB=&amp;amp;locale=en_EP WO2007034382] (A3)  &lt;br /&gt;
&lt;br /&gt;
===METHOD AND APPARATUS FOR AUTHENTICATING STATIC DATA CARRIERS===&lt;br /&gt;
* aka &#039;&#039;&#039;PROCÉDÉ ET APPAREIL D&#039;AUTHENTIFICATION DE SUPPORTS DE DONNÉES STATIQUES&#039;&#039;&#039;&lt;br /&gt;
* Inventor(s): Serret Avila;  Javier  (Brussels,  BE,  US) , Ton;  Wim  (Edinburgh,  IE,  US) , Teuwen;  Philippe  (Leuven,  BE,  US) , Tuyls;  Pim Theo  (Eindhoven,  NL,  US) , De Soete;  Marijke G.C.S.  (Oostkamp,  BE,  US) &lt;br /&gt;
* Priority date	Mar 21, 2006&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=WO&amp;amp;NR=2007107928A3&amp;amp;KC=A3&amp;amp;FT=D&amp;amp;ND=2&amp;amp;date=20071221&amp;amp;DB=EPODOC&amp;amp;locale=en_EP WO2007107928] (A3)&lt;br /&gt;
** US20100161994 (A1) ([http://www.google.com/patents/US20100161994 Google Patents])&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=1999751A2&amp;amp;KC=A2&amp;amp;FT=D EP1999751]  (A2)([http://www.google.com/patents/EP1999751A2 Google Patents])&lt;br /&gt;
** CN101405805 [http://59.151.93.237/sipo_EN/search/quickSearch.do?method=search&amp;amp;T1=200780010141&amp;amp;D1=appno 200780010141]&lt;br /&gt;
** RU2008141690  (A)&lt;br /&gt;
** JP2009530945  (A)&lt;br /&gt;
&lt;br /&gt;
===IMPROVED AUTHENTICATION SYSTEM===&lt;br /&gt;
* Inventor(s):	 TEUWEN PHILIPPE [NL]; NIKOV VENTZISLAV [NL] +&lt;br /&gt;
* Priority date	Dec 3, 2009&lt;br /&gt;
* Publications:&lt;br /&gt;
** [http://worldwide.espacenet.com/publicationDetails/biblio?CC=EP&amp;amp;NR=2336985A1&amp;amp;KC=A1&amp;amp;FT=D EP2336985]  (A1)([http://www.google.com/patents/EP2336985A1 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===RANDOM DATA FROM GNSS SIGNALS AND SECURE RANDOM VALUE PROVISIONING FOR SECURE SOFTWARE COMPONENT IMPLEMENTATIONS===&lt;br /&gt;
* Inventors: Philippe Teuwen, Peter Rombouts, Frank Michaud&lt;br /&gt;
* Filing Date: 12/13/2013(?)&lt;br /&gt;
* Application no: 14/104772&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20150172050 (A1) ([https://www.google.com.ar/patents/US20150172050 Google Patents])&lt;br /&gt;
** EP2884689 (A3) ([https://www.google.com/patents/EP2884689A3 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===DIVERSIFYING CONTROL FLOW OF WHITE-BOX IMPLEMENTATION===&lt;br /&gt;
* Inventors: Wil Michiels, Jan Hoogerbrugge, Teuwen Philippe&lt;br /&gt;
* Filing Date: May 29, 2015&lt;br /&gt;
* Application No: 14/725801&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20160253189 (A1) ([https://www.google.com/patents/US20160350520 Google Patents])&lt;br /&gt;
&lt;br /&gt;
===FUZZY OPAQUE PREDICATES===&lt;br /&gt;
* Inventor: Teuwen Philippe&lt;br /&gt;
* Filing Date: June 26, 2015&lt;br /&gt;
* Application No: 14/751606&lt;br /&gt;
* Publications:&lt;br /&gt;
** US20160379131 (A1) ([https://www.google.com/patents/US20160379131 Google Patents])&lt;br /&gt;
&lt;br /&gt;
==Patent applications (not yet published)==&lt;br /&gt;
&lt;br /&gt;
==Search engines==&lt;br /&gt;
* Full query&lt;br /&gt;
** [http://accounts.ktmine.com/company/ipreport?q=TEUWEN%20PHILIPPE ktmine]&lt;br /&gt;
** [http://www.freepatentsonline.com/result.html?p=1&amp;amp;edit_alert=&amp;amp;srch=xprtsrch&amp;amp;query_txt=IN%2F%22teuwen+philippe%22&amp;amp;uspat=on&amp;amp;usapp=on&amp;amp;eupat=on&amp;amp;pct=on&amp;amp;date_range=all&amp;amp;stemming=off&amp;amp;sort=chron&amp;amp;search=Search freepatentsonline], [http://www.freepatentsonline.com/result.html?p=1&amp;amp;edit_alert=&amp;amp;srch=xprtsrch&amp;amp;query_txt=IN%2F%22teuwen+philippe%22+APD%2F01%2F01%2F2014-%3ENOW&amp;amp;uspat=on&amp;amp;usapp=on&amp;amp;eupat=on&amp;amp;pct=on&amp;amp;date_range=all&amp;amp;stemming=off&amp;amp;sort=chron&amp;amp;search=Search limited 2014-now]&lt;br /&gt;
* Portals&lt;br /&gt;
** [http://www.wipo.int/pctdb/en/ International Patent Applications]&lt;br /&gt;
** [http://www.wipo.int/ipdl/en/resources/links.html Patent Databases in Different Countries]&lt;br /&gt;
** [http://www.espacenet.com/ esp@cenet, Europe&#039;s network of patent databases] // [http://ep.espacenet.com/advancedSearch?locale=en_ep advanced search]&lt;br /&gt;
** [http://www.uspto.gov/patft/index.html Unites States Patent and Trademark Office]&lt;br /&gt;
** [http://www.google.com/patents Google patents]&lt;br /&gt;
** [http://english.sipo.gov.cn/ China SIPO]&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Proxmark&amp;diff=10520</id>
		<title>Proxmark</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Proxmark&amp;diff=10520"/>
		<updated>2020-10-16T15:42:35Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: /* Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Upgrading ELECHOUSE Proxmark3 Easy V3 to 512k==&lt;br /&gt;
===(de)soldering===&lt;br /&gt;
The popular [https://www.aliexpress.com/popular/proxmark3-kit.html Proxmark3 Easy] has an at91sam7s256 with only 256k and e.g. it&#039;s already about 83% full with the current iceman firmware.&lt;br /&gt;
&amp;lt;br&amp;gt;So I decided to attempt an upgrade.&lt;br /&gt;
&lt;br /&gt;
at91sam7s512 is about [http://fr.farnell.com/atmel/at91sam7s512b-au/micro-32-bits-arm7-512k-flash/dp/1972051 15€ on Farnell].&lt;br /&gt;
&lt;br /&gt;
The steps I followed to desolder and solder the new chip are basically the same as seen on [http://www.youtube.com/watch?v=_dS6JukK7IA&amp;amp;t=1m39s this youtube video]:&lt;br /&gt;
&lt;br /&gt;
* heating the chip with my [http://www.aoyue.com/en/pro/?id=16 desoldering station]&lt;br /&gt;
* removing the chip with a small [https://www.aliexpress.com/wholesale?SearchText=vacuum+suction+pen+chip suction pen]&lt;br /&gt;
* putting flux on the pads&lt;br /&gt;
* cleaning the pads with desoldering wick&lt;br /&gt;
* putting the new chip and soldering some pins to lock it in place (look for aligning the small dot on the correct corner)&lt;br /&gt;
* putting flux on the pins&lt;br /&gt;
* putting solder on the pins, don&#039;t be afraid of bridges...&lt;br /&gt;
* removing extra solder with desoldering wick&lt;br /&gt;
* checking carefully for residual solder bridges&lt;br /&gt;
&lt;br /&gt;
And voila.&lt;br /&gt;
&lt;br /&gt;
Note that it&#039;s maybe easier to solder the new chip not by using flux+solder+iron but [https://www.aliexpress.com/wholesale?SearchText=mechanic+solder+flux solder flux paste] and heating with air gun, as shown [https://www.youtube.com/watch?v=2Z7nCAxS2Rg&amp;amp;t=9m30s in this video]...&lt;br /&gt;
&lt;br /&gt;
===JTAG programming on Proxmark3 Easy V3===&lt;br /&gt;
Then wire your JTAG programmer to the board. Mine is a Segger J-Link.&lt;br /&gt;
&amp;lt;br&amp;gt;To make it easier, solder a [https://www.aliexpress.com/wholesale?SearchText=breakable+single+row+male+curved+header+2.54 breakable single-row male curved header].&lt;br /&gt;
&amp;lt;br&amp;gt;Choose a curved one so you can leave it in place later and still stack the PM3 daughterboard.&lt;br /&gt;
&lt;br /&gt;
Then using [https://www.aliexpress.com/wholesale?SearchText=wire+dupont+male+female Dupont wires male-female], wire it to the JTAG programmer.&lt;br /&gt;
&lt;br /&gt;
For the J-Link, the [https://www.segger.com/interface-description.html pinout] is:&lt;br /&gt;
   ---------  ---------&lt;br /&gt;
  |1917151311 9 7 5 3 1|&lt;br /&gt;
  |201816141210 8 6 4 2|&lt;br /&gt;
   --------------------&lt;br /&gt;
 &lt;br /&gt;
 PM3  JLink&lt;br /&gt;
 ---  -----&lt;br /&gt;
 TMS   7&lt;br /&gt;
 TDI   5&lt;br /&gt;
 TDO  13&lt;br /&gt;
 TCK   9&lt;br /&gt;
 GND   6&lt;br /&gt;
 3.3   2&lt;br /&gt;
&lt;br /&gt;
If you prefer you can leave 3.3 not connected and power the PM3 over USB while reprogramming it. But *don&#039;t* provide both 3.3 + USB!&lt;br /&gt;
&lt;br /&gt;
To use the J-Link on Debian:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install openocd&lt;br /&gt;
There is some doc installed locally: file:///usr/share/doc/openocd/openocd.html/index.html&lt;br /&gt;
&lt;br /&gt;
Create /etc/udev/rules.d/60-jlink.rules with&lt;br /&gt;
 ATTRS{idVendor}==&amp;quot;1366&amp;quot;, ATTRS{idProduct}==&amp;quot;0101&amp;quot;, MODE=&amp;quot;664&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I created a config file by reusing most of [https://github.com/Proxmark/proxmark3/blob/master/tools/at91sam7s512-buspirate.cfg tools/at91sam7s512-buspirate.cfg] from Adam Laurie, but specific to J-Link instead of buspirate:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet_port 4444&lt;br /&gt;
gdb_port 3333&lt;br /&gt;
interface jlink&lt;br /&gt;
transport select jtag&lt;br /&gt;
adapter_khz 1000&lt;br /&gt;
reset_config srst_only srst_pulls_trst&lt;br /&gt;
jtag newtap sam7x cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 0x3f0f0f0f&lt;br /&gt;
target create sam7x.cpu arm7tdmi -endian little -chain-position sam7x.cpu&lt;br /&gt;
sam7x.cpu configure -event reset-init {&lt;br /&gt;
	soft_reset_halt&lt;br /&gt;
	mww 0xfffffd00 0xa5000004	# RSTC_CR: Reset peripherals&lt;br /&gt;
	mww 0xfffffd44 0x00008000	# WDT_MR: disable watchdog&lt;br /&gt;
	mww 0xfffffd08 0xa5000001	# RSTC_MR enable user reset&lt;br /&gt;
	mww 0xfffffc20 0x00005001	# CKGR_MOR : enable the main oscillator&lt;br /&gt;
	sleep 10&lt;br /&gt;
	mww 0xfffffc2c 0x000b1c02	# CKGR_PLLR: 16MHz * 12/2 = 96MHz&lt;br /&gt;
	sleep 10&lt;br /&gt;
	mww 0xfffffc30 0x00000007	# PMC_MCKR : MCK = PLL / 2 = 48 MHz&lt;br /&gt;
	sleep 10&lt;br /&gt;
	mww 0xffffff60 0x00480100	# MC_FMR: flash mode (FWS=1,FMCN=72)&lt;br /&gt;
	sleep 100&lt;br /&gt;
}&lt;br /&gt;
gdb_memory_map enable&lt;br /&gt;
sam7x.cpu configure -work-area-virt 0 -work-area-phys 0x00200000 -work-area-size 0x10000 -work-area-backup 0&lt;br /&gt;
flash bank sam7x.flash.0 at91sam7 0 0 0 0 sam7x.cpu 0 0 0 0 0 0 0 18432&lt;br /&gt;
flash bank sam7x.flash.1 at91sam7 0 0 0 0 sam7x.cpu 1 0 0 0 0 0 0 18432&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launching OpenOCD:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ openocd -f at91sam7s512-jlink.cfg&lt;br /&gt;
Open On-Chip Debugger 0.9.0 (2017-03-07-13:28)&lt;br /&gt;
Licensed under GNU GPL v2&lt;br /&gt;
For bug reports, read&lt;br /&gt;
	http://openocd.org/doc/doxygen/bugs.html&lt;br /&gt;
adapter speed: 1000 kHz&lt;br /&gt;
srst_only srst_pulls_trst srst_gates_jtag srst_open_drain connect_deassert_srst&lt;br /&gt;
Info : J-Link ARM V8 compiled Dec  1 2009 11:42:48&lt;br /&gt;
Info : J-Link caps 0xb9ff7bbf&lt;br /&gt;
Info : J-Link hw version 80000&lt;br /&gt;
Info : J-Link hw type J-Link&lt;br /&gt;
Info : J-Link max mem block 9576&lt;br /&gt;
Info : J-Link configuration&lt;br /&gt;
Info : USB-Address: 0x0&lt;br /&gt;
Info : Kickstart power on JTAG-pin 19: 0xffffffff&lt;br /&gt;
Info : Vref = 3.332 TCK = 1 TDI = 0 TDO = 0 TMS = 0 SRST = 1 TRST = 1&lt;br /&gt;
Info : J-Link JTAG Interface ready&lt;br /&gt;
Info : clock speed 1000 kHz&lt;br /&gt;
Info : JTAG tap: sam7x.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3)&lt;br /&gt;
Info : Embedded ICE version 1&lt;br /&gt;
Info : sam7x.cpu: hardware has 2 breakpoint/watchpoint units&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launching a telnet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ telnet localhost 4444&lt;br /&gt;
Connected to localhost.&lt;br /&gt;
Escape character is &#039;^]&#039;.&lt;br /&gt;
Open On-Chip Debugger&lt;br /&gt;
&amp;gt; halt&lt;br /&gt;
target state: halted&lt;br /&gt;
target halted in ARM state due to debug-request, current mode: Supervisor&lt;br /&gt;
cpsr: 0xf00000d3 pc: 0x001c9c60&lt;br /&gt;
&amp;gt; flash erase_sector 0 0 15&lt;br /&gt;
erased sectors 0 through 15 on flash bank 0 in 0.033260s&lt;br /&gt;
&amp;gt; flash erase_sector 1 0 15&lt;br /&gt;
erased sectors 0 through 15 on flash bank 1 in 0.033311s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Apparently some chips have a bank 1, some don&#039;t...&lt;br /&gt;
&lt;br /&gt;
===Backuping firmware===&lt;br /&gt;
The chip was new but in case you need to backup the chip content first, this is possible from the telnet session with size = 0x40000 for a 256kb chip and 0x80000 for a 512kb chip. E.g. for 256kb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; dump_image backup.bin 0x100000 0x40000&lt;br /&gt;
dumped 262144 bytes in 9.232331s (27.729 KiB/s)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Flashing full image, take 1===&lt;br /&gt;
Probably the easiest way, from the telnet session:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; flash write_image ./recovery/proxmark3_recovery.bin 0x100000&lt;br /&gt;
wrote 217204 bytes from file ./recovery/proxmark3_recovery.bin in 18.417032s (11.517 KiB/s)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This works also for restoring a &amp;lt;code&amp;gt;backup.bin&amp;lt;/code&amp;gt; image dumped earlier.&lt;br /&gt;
===Flashing full image, take 2===&lt;br /&gt;
Using the elf images, from the telnet session:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; flash write_image ./bootrom/obj/bootrom.elf&lt;br /&gt;
&amp;gt; flash write_image ./armsrc/obj/fullimage.elf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note the absence of base address in the command.&lt;br /&gt;
===Flashing full image, take 3===&lt;br /&gt;
Using the s19 images, from the telnet session:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; flash write_image ./bootrom/obj/bootrom.s19 0x100000&lt;br /&gt;
&amp;gt; flash write_image ./armsrc/obj/fullimage.s19 0x100000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This failed when I tried because the data section seemed to be at a wrong address in &amp;lt;code&amp;gt;fullimage.s19&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Indeed &amp;lt;code&amp;gt;fullimmage.s19&amp;lt;/code&amp;gt; loads code and data with offset 0x100000 (&amp;lt;code&amp;gt;flash write_image ./armsrc/obj/fullimage.s19 0x100000&amp;lt;/code&amp;gt;):&lt;br /&gt;
* code from 0x100000+0x200 to 0x100000+0x33580&lt;br /&gt;
* data from 0x100000+0x133580 to 0x100000+0x135200&lt;br /&gt;
But data should be at 0x133580 so 0x100000+0x35200&lt;br /&gt;
&amp;lt;br&amp;gt;Here is a patch that solved the issue:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
diff --git a/common/Makefile.common b/common/Makefile.common&lt;br /&gt;
index 95820e66..e697ae14 100644&lt;br /&gt;
--- a/common/Makefile.common&lt;br /&gt;
+++ b/common/Makefile.common&lt;br /&gt;
@@ -99,7 +99,7 @@ $(VERSIONOBJ): $(OBJDIR)/%.o: %.c $(INCLUDES)&lt;br /&gt;
 # See ldscript.common. -- Henryk Plötz &amp;lt;henryk@ploetzli.ch&amp;gt; 2009-08-27&lt;br /&gt;
 OBJCOPY_TRANSLATIONS = --no-change-warnings \&lt;br /&gt;
        --change-addresses -0x100000 --change-start 0 \&lt;br /&gt;
-       --change-section-address .bss+0 --change-section-address .data+0 \&lt;br /&gt;
+       --change-section-address .bss+0 --change-section-address .data-0x100000 \&lt;br /&gt;
        --change-section-address .commonarea+0&lt;br /&gt;
 $(OBJDIR)/%.s19: $(OBJDIR)/%.elf&lt;br /&gt;
        $(OBJCOPY) -Osrec --srec-forceS3 --strip-debug $(OBJCOPY_TRANSLATIONS) $^ $@&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update: patch applied in https://github.com/iceman1001/proxmark3/commit/d59026518e02c37ab0673a670b9ea14e17ae399c&lt;br /&gt;
&lt;br /&gt;
===Flashing full image, take 4===&lt;br /&gt;
In case flashing the full image from JTAG seems to fail, you can flash only the bootloader:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; flash write_image /tmp/bootrom.s19 0x100000  &lt;br /&gt;
wrote 3624 bytes from file /tmp/bootrom.s19 in 0.392169s (9.024 KiB/s)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then follow the usual recovery procedure:&lt;br /&gt;
* Press button and keep it pressed during the whole procedure&lt;br /&gt;
* Plug PM3 to USB&lt;br /&gt;
* ./flasher /dev/ttyACM0 fullimage.elf&lt;br /&gt;
* Release button and re-plug the PM3&lt;br /&gt;
&lt;br /&gt;
===Done===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ./proxmark3 /dev/ttyACM0&lt;br /&gt;
Proxmark3 RFID instrument&lt;br /&gt;
bootrom: iceman/iceman/v2.1.0-1547-gb0df293d 2017-05-03 20:44:34&lt;br /&gt;
os: iceman/iceman/v2.1.0-1547-gb0df293d 2017-05-03 20:44:39&lt;br /&gt;
LF FPGA image built for 2s30vq100 on 2015/03/06 at 07:38:04&lt;br /&gt;
HF FPGA image built for 2s30vq100 on 2015/11/ 2 at  9: 8: 8&lt;br /&gt;
&lt;br /&gt;
uC: AT91SAM7S512 Rev B&lt;br /&gt;
Embedded Processor: ARM7TDMI&lt;br /&gt;
Nonvolatile Program Memory Size: 512K bytes. Used: 217204 bytes (41%).&lt;br /&gt;
Free: 307084 bytes (59%).&lt;br /&gt;
Second Nonvolatile Program Memory Size: None&lt;br /&gt;
Internal SRAM Size: 64K bytes&lt;br /&gt;
Architecture Identifier: AT91SAM7Sxx Series&lt;br /&gt;
Nonvolatile Program Memory Type: Embedded Flash Memory&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==JTAG connectors==&lt;br /&gt;
===Proxmark3 with headers===&lt;br /&gt;
[[File:Pm3.jpg|400px]]&lt;br /&gt;
===Proxmark3 without headers===&lt;br /&gt;
[[File:Pm3naked1.jpg|400px]] [[File:Pm3naked2.jpg|400px]]&lt;br /&gt;
&amp;lt;br&amp;gt;Apply some pressure to ensure a proper connection during the whole flashing operation&lt;br /&gt;
&lt;br /&gt;
===Proxmark3 Easy with headers===&lt;br /&gt;
[[File:Pm3easy.jpg|400px]] [[File:Pm3easy2.jpg|400px]] [[File:Pm3easy3.jpg|400px]]&lt;br /&gt;
&amp;lt;br&amp;gt;See above for the proper pinout.&lt;br /&gt;
&amp;lt;br&amp;gt;If you want to solder a header, beware that there is very little space between both PCBs. It&#039;s possible to solder curved pins but without their plastic support, see pics.&lt;br /&gt;
&amp;lt;br&amp;gt;I used a breakout but you can directly connect to the JLink if you prefer. You can fint the board by searching for &amp;quot;jlink adapter card&amp;quot; on aliexpress. You&#039;ll need to add a jumper to connect jlink pin2 and 3.3v.&lt;br /&gt;
===Proxmark3 Easy without headers===&lt;br /&gt;
See [[Proxmark#JTAG_programming_on_Proxmark3_Easy_V3|above]] for pinouts&lt;br /&gt;
&lt;br /&gt;
[[File:Pm3easy4.jpg|400px]]&lt;br /&gt;
&amp;lt;br&amp;gt;Using Dupont individual wires&lt;br /&gt;
&lt;br /&gt;
[[File:Pm3easy6.jpg|400px]] [[File:Pm3easy5.jpg|400px]]&lt;br /&gt;
&amp;lt;br&amp;gt;Using the same cable as shown above&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* https://github.com/RfidResearchGroup/proxmark3/blob/master/doc/jtag_notes.md&lt;br /&gt;
* https://github.com/Proxmark/proxmark3/wiki/Debricking-Proxmark3 using a Bus Pirate&lt;br /&gt;
* &amp;quot;Lock Error Bit Detected, Operation Abort&amp;quot; ?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
flash protect 0 0 15 off&lt;br /&gt;
flash protect 1 0 15 off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Proxmark&amp;diff=10519</id>
		<title>Proxmark</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Proxmark&amp;diff=10519"/>
		<updated>2020-10-16T15:41:49Z</updated>

		<summary type="html">&lt;p&gt;PhilippeTeuwen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Upgrading ELECHOUSE Proxmark3 Easy V3 to 512k==&lt;br /&gt;
===(de)soldering===&lt;br /&gt;
The popular [https://www.aliexpress.com/popular/proxmark3-kit.html Proxmark3 Easy] has an at91sam7s256 with only 256k and e.g. it&#039;s already about 83% full with the current iceman firmware.&lt;br /&gt;
&amp;lt;br&amp;gt;So I decided to attempt an upgrade.&lt;br /&gt;
&lt;br /&gt;
at91sam7s512 is about [http://fr.farnell.com/atmel/at91sam7s512b-au/micro-32-bits-arm7-512k-flash/dp/1972051 15€ on Farnell].&lt;br /&gt;
&lt;br /&gt;
The steps I followed to desolder and solder the new chip are basically the same as seen on [http://www.youtube.com/watch?v=_dS6JukK7IA&amp;amp;t=1m39s this youtube video]:&lt;br /&gt;
&lt;br /&gt;
* heating the chip with my [http://www.aoyue.com/en/pro/?id=16 desoldering station]&lt;br /&gt;
* removing the chip with a small [https://www.aliexpress.com/wholesale?SearchText=vacuum+suction+pen+chip suction pen]&lt;br /&gt;
* putting flux on the pads&lt;br /&gt;
* cleaning the pads with desoldering wick&lt;br /&gt;
* putting the new chip and soldering some pins to lock it in place (look for aligning the small dot on the correct corner)&lt;br /&gt;
* putting flux on the pins&lt;br /&gt;
* putting solder on the pins, don&#039;t be afraid of bridges...&lt;br /&gt;
* removing extra solder with desoldering wick&lt;br /&gt;
* checking carefully for residual solder bridges&lt;br /&gt;
&lt;br /&gt;
And voila.&lt;br /&gt;
&lt;br /&gt;
Note that it&#039;s maybe easier to solder the new chip not by using flux+solder+iron but [https://www.aliexpress.com/wholesale?SearchText=mechanic+solder+flux solder flux paste] and heating with air gun, as shown [https://www.youtube.com/watch?v=2Z7nCAxS2Rg&amp;amp;t=9m30s in this video]...&lt;br /&gt;
&lt;br /&gt;
===JTAG programming on Proxmark3 Easy V3===&lt;br /&gt;
Then wire your JTAG programmer to the board. Mine is a Segger J-Link.&lt;br /&gt;
&amp;lt;br&amp;gt;To make it easier, solder a [https://www.aliexpress.com/wholesale?SearchText=breakable+single+row+male+curved+header+2.54 breakable single-row male curved header].&lt;br /&gt;
&amp;lt;br&amp;gt;Choose a curved one so you can leave it in place later and still stack the PM3 daughterboard.&lt;br /&gt;
&lt;br /&gt;
Then using [https://www.aliexpress.com/wholesale?SearchText=wire+dupont+male+female Dupont wires male-female], wire it to the JTAG programmer.&lt;br /&gt;
&lt;br /&gt;
For the J-Link, the [https://www.segger.com/interface-description.html pinout] is:&lt;br /&gt;
   ---------  ---------&lt;br /&gt;
  |1917151311 9 7 5 3 1|&lt;br /&gt;
  |201816141210 8 6 4 2|&lt;br /&gt;
   --------------------&lt;br /&gt;
 &lt;br /&gt;
 PM3  JLink&lt;br /&gt;
 ---  -----&lt;br /&gt;
 TMS   7&lt;br /&gt;
 TDI   5&lt;br /&gt;
 TDO  13&lt;br /&gt;
 TCK   9&lt;br /&gt;
 GND   6&lt;br /&gt;
 3.3   2&lt;br /&gt;
&lt;br /&gt;
If you prefer you can leave 3.3 not connected and power the PM3 over USB while reprogramming it. But *don&#039;t* provide both 3.3 + USB!&lt;br /&gt;
&lt;br /&gt;
To use the J-Link on Debian:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install openocd&lt;br /&gt;
There is some doc installed locally: file:///usr/share/doc/openocd/openocd.html/index.html&lt;br /&gt;
&lt;br /&gt;
Create /etc/udev/rules.d/60-jlink.rules with&lt;br /&gt;
 ATTRS{idVendor}==&amp;quot;1366&amp;quot;, ATTRS{idProduct}==&amp;quot;0101&amp;quot;, MODE=&amp;quot;664&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I created a config file by reusing most of [https://github.com/Proxmark/proxmark3/blob/master/tools/at91sam7s512-buspirate.cfg tools/at91sam7s512-buspirate.cfg] from Adam Laurie, but specific to J-Link instead of buspirate:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet_port 4444&lt;br /&gt;
gdb_port 3333&lt;br /&gt;
interface jlink&lt;br /&gt;
transport select jtag&lt;br /&gt;
adapter_khz 1000&lt;br /&gt;
reset_config srst_only srst_pulls_trst&lt;br /&gt;
jtag newtap sam7x cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 0x3f0f0f0f&lt;br /&gt;
target create sam7x.cpu arm7tdmi -endian little -chain-position sam7x.cpu&lt;br /&gt;
sam7x.cpu configure -event reset-init {&lt;br /&gt;
	soft_reset_halt&lt;br /&gt;
	mww 0xfffffd00 0xa5000004	# RSTC_CR: Reset peripherals&lt;br /&gt;
	mww 0xfffffd44 0x00008000	# WDT_MR: disable watchdog&lt;br /&gt;
	mww 0xfffffd08 0xa5000001	# RSTC_MR enable user reset&lt;br /&gt;
	mww 0xfffffc20 0x00005001	# CKGR_MOR : enable the main oscillator&lt;br /&gt;
	sleep 10&lt;br /&gt;
	mww 0xfffffc2c 0x000b1c02	# CKGR_PLLR: 16MHz * 12/2 = 96MHz&lt;br /&gt;
	sleep 10&lt;br /&gt;
	mww 0xfffffc30 0x00000007	# PMC_MCKR : MCK = PLL / 2 = 48 MHz&lt;br /&gt;
	sleep 10&lt;br /&gt;
	mww 0xffffff60 0x00480100	# MC_FMR: flash mode (FWS=1,FMCN=72)&lt;br /&gt;
	sleep 100&lt;br /&gt;
}&lt;br /&gt;
gdb_memory_map enable&lt;br /&gt;
sam7x.cpu configure -work-area-virt 0 -work-area-phys 0x00200000 -work-area-size 0x10000 -work-area-backup 0&lt;br /&gt;
flash bank sam7x.flash.0 at91sam7 0 0 0 0 sam7x.cpu 0 0 0 0 0 0 0 18432&lt;br /&gt;
flash bank sam7x.flash.1 at91sam7 0 0 0 0 sam7x.cpu 1 0 0 0 0 0 0 18432&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launching OpenOCD:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ openocd -f at91sam7s512-jlink.cfg&lt;br /&gt;
Open On-Chip Debugger 0.9.0 (2017-03-07-13:28)&lt;br /&gt;
Licensed under GNU GPL v2&lt;br /&gt;
For bug reports, read&lt;br /&gt;
	http://openocd.org/doc/doxygen/bugs.html&lt;br /&gt;
adapter speed: 1000 kHz&lt;br /&gt;
srst_only srst_pulls_trst srst_gates_jtag srst_open_drain connect_deassert_srst&lt;br /&gt;
Info : J-Link ARM V8 compiled Dec  1 2009 11:42:48&lt;br /&gt;
Info : J-Link caps 0xb9ff7bbf&lt;br /&gt;
Info : J-Link hw version 80000&lt;br /&gt;
Info : J-Link hw type J-Link&lt;br /&gt;
Info : J-Link max mem block 9576&lt;br /&gt;
Info : J-Link configuration&lt;br /&gt;
Info : USB-Address: 0x0&lt;br /&gt;
Info : Kickstart power on JTAG-pin 19: 0xffffffff&lt;br /&gt;
Info : Vref = 3.332 TCK = 1 TDI = 0 TDO = 0 TMS = 0 SRST = 1 TRST = 1&lt;br /&gt;
Info : J-Link JTAG Interface ready&lt;br /&gt;
Info : clock speed 1000 kHz&lt;br /&gt;
Info : JTAG tap: sam7x.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3)&lt;br /&gt;
Info : Embedded ICE version 1&lt;br /&gt;
Info : sam7x.cpu: hardware has 2 breakpoint/watchpoint units&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launching a telnet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ telnet localhost 4444&lt;br /&gt;
Connected to localhost.&lt;br /&gt;
Escape character is &#039;^]&#039;.&lt;br /&gt;
Open On-Chip Debugger&lt;br /&gt;
&amp;gt; halt&lt;br /&gt;
target state: halted&lt;br /&gt;
target halted in ARM state due to debug-request, current mode: Supervisor&lt;br /&gt;
cpsr: 0xf00000d3 pc: 0x001c9c60&lt;br /&gt;
&amp;gt; flash erase_sector 0 0 15&lt;br /&gt;
erased sectors 0 through 15 on flash bank 0 in 0.033260s&lt;br /&gt;
&amp;gt; flash erase_sector 1 0 15&lt;br /&gt;
erased sectors 0 through 15 on flash bank 1 in 0.033311s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Apparently some chips have a bank 1, some don&#039;t...&lt;br /&gt;
&lt;br /&gt;
===Backuping firmware===&lt;br /&gt;
The chip was new but in case you need to backup the chip content first, this is possible from the telnet session with size = 0x40000 for a 256kb chip and 0x80000 for a 512kb chip. E.g. for 256kb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; dump_image backup.bin 0x100000 0x40000&lt;br /&gt;
dumped 262144 bytes in 9.232331s (27.729 KiB/s)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Flashing full image, take 1===&lt;br /&gt;
Probably the easiest way, from the telnet session:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; flash write_image ./recovery/proxmark3_recovery.bin 0x100000&lt;br /&gt;
wrote 217204 bytes from file ./recovery/proxmark3_recovery.bin in 18.417032s (11.517 KiB/s)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This works also for restoring a &amp;lt;code&amp;gt;backup.bin&amp;lt;/code&amp;gt; image dumped earlier.&lt;br /&gt;
===Flashing full image, take 2===&lt;br /&gt;
Using the elf images, from the telnet session:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; flash write_image ./bootrom/obj/bootrom.elf&lt;br /&gt;
&amp;gt; flash write_image ./armsrc/obj/fullimage.elf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note the absence of base address in the command.&lt;br /&gt;
===Flashing full image, take 3===&lt;br /&gt;
Using the s19 images, from the telnet session:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; flash write_image ./bootrom/obj/bootrom.s19 0x100000&lt;br /&gt;
&amp;gt; flash write_image ./armsrc/obj/fullimage.s19 0x100000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This failed when I tried because the data section seemed to be at a wrong address in &amp;lt;code&amp;gt;fullimage.s19&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Indeed &amp;lt;code&amp;gt;fullimmage.s19&amp;lt;/code&amp;gt; loads code and data with offset 0x100000 (&amp;lt;code&amp;gt;flash write_image ./armsrc/obj/fullimage.s19 0x100000&amp;lt;/code&amp;gt;):&lt;br /&gt;
* code from 0x100000+0x200 to 0x100000+0x33580&lt;br /&gt;
* data from 0x100000+0x133580 to 0x100000+0x135200&lt;br /&gt;
But data should be at 0x133580 so 0x100000+0x35200&lt;br /&gt;
&amp;lt;br&amp;gt;Here is a patch that solved the issue:&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
diff --git a/common/Makefile.common b/common/Makefile.common&lt;br /&gt;
index 95820e66..e697ae14 100644&lt;br /&gt;
--- a/common/Makefile.common&lt;br /&gt;
+++ b/common/Makefile.common&lt;br /&gt;
@@ -99,7 +99,7 @@ $(VERSIONOBJ): $(OBJDIR)/%.o: %.c $(INCLUDES)&lt;br /&gt;
 # See ldscript.common. -- Henryk Plötz &amp;lt;henryk@ploetzli.ch&amp;gt; 2009-08-27&lt;br /&gt;
 OBJCOPY_TRANSLATIONS = --no-change-warnings \&lt;br /&gt;
        --change-addresses -0x100000 --change-start 0 \&lt;br /&gt;
-       --change-section-address .bss+0 --change-section-address .data+0 \&lt;br /&gt;
+       --change-section-address .bss+0 --change-section-address .data-0x100000 \&lt;br /&gt;
        --change-section-address .commonarea+0&lt;br /&gt;
 $(OBJDIR)/%.s19: $(OBJDIR)/%.elf&lt;br /&gt;
        $(OBJCOPY) -Osrec --srec-forceS3 --strip-debug $(OBJCOPY_TRANSLATIONS) $^ $@&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update: patch applied in https://github.com/iceman1001/proxmark3/commit/d59026518e02c37ab0673a670b9ea14e17ae399c&lt;br /&gt;
&lt;br /&gt;
===Flashing full image, take 4===&lt;br /&gt;
In case flashing the full image from JTAG seems to fail, you can flash only the bootloader:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; flash write_image /tmp/bootrom.s19 0x100000  &lt;br /&gt;
wrote 3624 bytes from file /tmp/bootrom.s19 in 0.392169s (9.024 KiB/s)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then follow the usual recovery procedure:&lt;br /&gt;
* Press button and keep it pressed during the whole procedure&lt;br /&gt;
* Plug PM3 to USB&lt;br /&gt;
* ./flasher /dev/ttyACM0 fullimage.elf&lt;br /&gt;
* Release button and re-plug the PM3&lt;br /&gt;
&lt;br /&gt;
===Done===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ./proxmark3 /dev/ttyACM0&lt;br /&gt;
Proxmark3 RFID instrument&lt;br /&gt;
bootrom: iceman/iceman/v2.1.0-1547-gb0df293d 2017-05-03 20:44:34&lt;br /&gt;
os: iceman/iceman/v2.1.0-1547-gb0df293d 2017-05-03 20:44:39&lt;br /&gt;
LF FPGA image built for 2s30vq100 on 2015/03/06 at 07:38:04&lt;br /&gt;
HF FPGA image built for 2s30vq100 on 2015/11/ 2 at  9: 8: 8&lt;br /&gt;
&lt;br /&gt;
uC: AT91SAM7S512 Rev B&lt;br /&gt;
Embedded Processor: ARM7TDMI&lt;br /&gt;
Nonvolatile Program Memory Size: 512K bytes. Used: 217204 bytes (41%).&lt;br /&gt;
Free: 307084 bytes (59%).&lt;br /&gt;
Second Nonvolatile Program Memory Size: None&lt;br /&gt;
Internal SRAM Size: 64K bytes&lt;br /&gt;
Architecture Identifier: AT91SAM7Sxx Series&lt;br /&gt;
Nonvolatile Program Memory Type: Embedded Flash Memory&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==JTAG connectors==&lt;br /&gt;
===Proxmark3 with headers===&lt;br /&gt;
[[File:Pm3.jpg|400px]]&lt;br /&gt;
===Proxmark3 without headers===&lt;br /&gt;
[[File:Pm3naked1.jpg|400px]] [[File:Pm3naked2.jpg|400px]]&lt;br /&gt;
&amp;lt;br&amp;gt;Apply some pressure to ensure a proper connection during the whole flashing operation&lt;br /&gt;
&lt;br /&gt;
===Proxmark3 Easy with headers===&lt;br /&gt;
[[File:Pm3easy.jpg|400px]] [[File:Pm3easy2.jpg|400px]] [[File:Pm3easy3.jpg|400px]]&lt;br /&gt;
&amp;lt;br&amp;gt;See above for the proper pinout.&lt;br /&gt;
&amp;lt;br&amp;gt;If you want to solder a header, beware that there is very little space between both PCBs. It&#039;s possible to solder curved pins but without their plastic support, see pics.&lt;br /&gt;
&amp;lt;br&amp;gt;I used a breakout but you can directly connect to the JLink if you prefer. You can fint the board by searching for &amp;quot;jlink adapter card&amp;quot; on aliexpress. You&#039;ll need to add a jumper to connect jlink pin2 and 3.3v.&lt;br /&gt;
===Proxmark3 Easy without headers===&lt;br /&gt;
See [[Proxmark#JTAG_programming_on_Proxmark3_Easy_V3|above]] for pinouts&lt;br /&gt;
&lt;br /&gt;
[[File:Pm3easy4.jpg|400px]]&lt;br /&gt;
&amp;lt;br&amp;gt;Using Dupont individual wires&lt;br /&gt;
&lt;br /&gt;
[[File:Pm3easy6.jpg|400px]] [[File:Pm3easy5.jpg|400px]]&lt;br /&gt;
&amp;lt;br&amp;gt;Using the same cable as shown above&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* https://github.com/Proxmark/proxmark3/wiki/Debricking-Proxmark3 using a Bus Pirate&lt;br /&gt;
* &amp;quot;Lock Error Bit Detected, Operation Abort&amp;quot; ?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
flash protect 0 0 15 off&lt;br /&gt;
flash protect 1 0 15 off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
</feed>