{"id":3013,"date":"2017-09-21T09:45:53","date_gmt":"2017-09-21T08:45:53","guid":{"rendered":"http:\/\/olivier.hoarau.org\/?p=3013"},"modified":"2023-10-22T07:30:06","modified_gmt":"2023-10-22T06:30:06","slug":"piloter-un-onduleur-sous-linux-le-retour","status":"publish","type":"post","link":"https:\/\/olivier.hoarau.org\/?p=3013","title":{"rendered":"Piloter un onduleur sous linux le retour"},"content":{"rendered":"\n<p>J&rsquo;avais r\u00e9dig\u00e9 il y a quelque temps un <a href=\"http:\/\/olivier.hoarau.org\/?p=2949\">post<\/a> qui expliquait comment piloter un onduleur sous linux. En fait que je dis piloter, il s&rsquo;agit de le monitorer et surtout que l&rsquo;onduleur d\u00e9clenche l&rsquo;arr\u00eat propre du poste linux qu&rsquo;il alimente au bout d&rsquo;un temps d\u00e9fini. J&rsquo;utilisais jusqu&rsquo;\u00e0 pr\u00e9sent un onduleur speex pp210, et bien qu&rsquo;ayant chang\u00e9 les batteries il ne remplissait plus son office, il tombait imm\u00e9diatement en cas de coupure entra\u00eenant avec lui <a href=\"http:\/\/olivier.hoarau.org\/?p=2195\">mon serveur<\/a> qu&rsquo;il \u00e9tait cens\u00e9 prot\u00e9g\u00e9 !<\/p>\n\n\n\n<p>Du coup j&rsquo;ai d\u00fb investir dans un nouvel onduleur, j&rsquo;ai choisi un mod\u00e8le d&rsquo;une marque r\u00e9put\u00e9e traditionnellement compatible linux. Il s&rsquo;agit d&rsquo;un APC Back-UPS XS 950U \u00e0 moins de 100\u20acTTC livraison comprise.<\/p>\n\n\n\n<center><iframe loading=\"lazy\" style=\"width: 120px; height: 240px;\" src=\"\/\/ws-eu.amazon-adsystem.com\/widgets\/q?ServiceVersion=20070822&amp;OneJS=1&amp;Operation=GetAdHtml&amp;MarketPlace=FR&amp;source=ss&amp;ref=as_ss_li_til&amp;ad_type=product_link&amp;tracking_id=blog0d24-21&amp;marketplace=amazon&amp;region=FR&amp;placement=B00T91RIWO&amp;asins=B00T91RIWO&amp;linkId=ddaa211e2f8e4f0eb1f046f0dcf3cc2c&amp;show_border=true&amp;link_opens_in_new_window=true\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" width=\"300\" height=\"150\" frameborder=\"0\"><\/iframe><\/center>\n\n\n\n<p>quand on le branche en USB voil\u00e0 ce que nous dit <strong>journalctl<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">sept. 16 11:00:01 mana.kervao.fr kernel: usb 2-1.1: new low-speed USB device number 3 using ehci-pci<br\/>sept. 16 11:00:01 mana.kervao.fr kernel: usb 2-1.1: New USB device found, idVendor=051d, idProduct=0002<br\/>sept. 16 11:00:01 mana.kervao.fr kernel: usb 2-1.1: New USB device strings: Mfr=3, Product=1, SerialNumber=2<br\/>sept. 16 11:00:01 mana.kervao.fr kernel: usb 2-1.1: Product: Back-UPS XS 950U   FW:925.T2 .I USB FW:T2 <br\/>sept. 16 11:00:01 mana.kervao.fr kernel: usb 2-1.1: Manufacturer: American Power Conversion<br\/>sept. 16 11:00:01 mana.kervao.fr kernel: usb 2-1.1: SerialNumber: 3B1713X09434  <br\/>sept. 16 11:00:01 mana.kervao.fr mtp-probe[2635]: checking bus 2, device 3: &quot;\/sys\/devices\/pci0000:00\/0000:00:1d.0\/usb2\/2-1\/2-1.1&quot;<br\/>sept. 16 11:00:01 mana.kervao.fr mtp-probe[2635]: bus: 2, device: 3 was not an MTP device<br\/>sept. 16 11:00:01 mana.kervao.fr kernel: hidraw: raw HID events driver (C) Jiri Kosina<br\/>sept. 16 11:00:01 mana.kervao.fr kernel: usbcore: registered new interface driver usbhid<br\/>sept. 16 11:00:01 mana.kervao.fr kernel: usbhid: USB HID core driver<br\/>sept. 16 11:00:01 mana.kervao.fr kernel: hid-generic 0003:051D:0002.0001: hiddev0,hidraw0: USB HID v1.10 Device [American Power Conversion Back-UPS XS 950U   FW:925.T2 .I USB FW:T2 ] on usb-0000:00:1d.0-1.1\/input0<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>Il est correctement reconnue sur ma Mageia 5.1 et un <strong>lsusb<\/strong> va nous donner:<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">Bus 002 Device 003: ID 051d:0002 American Power Conversion Uninterruptible Power Supply<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<!--more-->\n\n\n\n<p>Si on essaye de le configurer avec Network UPS Tools (NUT) le fichier de configuration adapt\u00e9<strong> \/usr\/local\/etc\/ups.conf<\/strong> aura cette t\u00eate l\u00e0 :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">[onduleur]<br\/> driver = usbhid-ups <br\/> port = auto <br\/> vendorid = 051d<br\/> productid = 0002<br\/> desc = &quot;APC XS 950U&quot;<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>sauf qu&rsquo;il n&rsquo;est pas totalement bien reconnu quand on le monitore:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"http:\/\/olivier.hoarau.org\/?attachment_id=3014\" rel=\"attachment wp-att-3014\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"301\" src=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/nut-apc.jpg?resize=474%2C301\" alt=\"\" class=\"wp-image-3014\" srcset=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/nut-apc.jpg?w=922&amp;ssl=1 922w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/nut-apc.jpg?resize=300%2C191&amp;ssl=1 300w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/nut-apc.jpg?resize=768%2C488&amp;ssl=1 768w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>On voit qu&rsquo;au niveau d&rsquo;<strong>Output<\/strong> il y a un <strong>Not supported<\/strong>. On laisse donc tomber <strong>NUT<\/strong> et on va faire appel \u00e0 <strong>apcupsd<\/strong> qui comme son nom l&rsquo;indique est pr\u00e9vu pour les onduleurs APC. Le site officiel est par <a href=\"http:\/\/www.apcupsd.org\/\">l\u00e0<\/a>, on d\u00e9sarchive l&rsquo;archive en tapant:<\/p>\n\n\n\n<p><strong>tar xvfz apcupsd-3.14.14.tar.gz<\/strong><\/p>\n\n\n\n<p>dans le r\u00e9pertoire <strong>apcupsd-3.14.14<\/strong> on tapera<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">.\/configure --enable-usb --with-upstype=usb --with-upscable=usb --with-cgi-bin=\/usr\/local\/apache2\/cgi-bin\/ --enable-cgi --with-log-dir=\/var\/log<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>\u00e0 noter qu&rsquo;il faut disposer d&rsquo;un <a href=\"http:\/\/www.funix.org\/fr\/linux\/index.php?ref=apache2\">serveur apache local<\/a>, j&rsquo;ai indiqu\u00e9 le chemin des scripts <strong>CGI<\/strong>. Voil\u00e0 le r\u00e9sultat de la commande :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">Configuration on Sat Sep 16 19:42:52 CEST 2017:<br\/><br\/>  Host:                       x86_64-unknown-linux-gnu -- mandrake for<br\/>  Apcupsd version:            3.14.14 (31 May 2016)<br\/>  Source code location:       .<br\/>  Install binaries:           \/sbin<br\/>  Install config files:       \/etc\/apcupsd<br\/>  Install man files:          ${prefix}\/share\/man<br\/>  Nologin file in:            \/etc<br\/>  PID directory:              \/var\/run<br\/>  LOG dir (events, status)    \/var\/log<br\/>  LOCK dir (for serial port)  \/var\/lock<br\/>  Power Fail dir              \/etc\/apcupsd<br\/>  Compiler:                   g   4.9.2<br\/>  Preprocessor flags:          -I\/usr\/local\/include<br\/>  Compiler flags:             -g -O2 -fno-exceptions -fno-rtti -Wall -Wno-unused-result <br\/>  Linker:                     gcc<br\/>  Linker flags:                -L\/usr\/local\/lib64 -L\/usr\/local\/lib<br\/>  Host and version:           mandrake for<br\/>  Shutdown Program:           \/usr\/bin\/shutdown<br\/>  Port\/Device:                \/dev\/ttyS0<br\/>  Network Info Port (CGI):    3551<br\/>  UPSTYPE                     usb<br\/>  UPSCABLE                    usb<br\/><br\/>  drivers (no-* are disabled): apcsmart dumb net linux-usb snmp pcnet modbus no-modbus-usb no-test<br\/><br\/>  enable-nis:                 yes<br\/>  with-nisip:                 0.0.0.0<br\/>  enable-cgi:                 yes<br\/>  with-cgi-bin:               \/usr\/local\/apache2\/cgi-bin\/<br\/>  with-libwrap:               <br\/>  enable-pthreads:            yes<br\/>  enable-dist-install:        yes<br\/>  enable-gapcmon:             no<br\/>  enable-apcagent:            no<br\/>  <br\/>Configuration complete: Run &#039;make&#039; to build apcuspd.<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>on tape ensuite <strong>make<\/strong> puis<strong> make install<\/strong> en tant que root. On \u00e9dite maintenant le fichier<strong> \/etc\/apcupsd\/apcupsd.conf<\/strong> qui doit contenir :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">#nom de l&#039;onduleur<br\/>UPSNAME onduleur<br\/>UPSCABLE usb<br\/>UPSTYPE usb<br\/>DEVICE<br\/><br\/># si une coupure de courant survient, l&#039;arr\u00eat est d\u00e9clench\u00e9 quand le pourcentage restant est inf\u00e9rieur est \u00e9gal \u00e0 la valeur d\u00e9finie par BATTERYLEVEL<br\/>BATTERYLEVEL 5<br\/><br\/># si une coupure de courant survient, l&#039;arr\u00eat est d\u00e9clench\u00e9 quand le temps restant est inf\u00e9rieur est \u00e9gal \u00e0 la valeur d\u00e9finie par MINUTES<br\/>MINUTES 3<br\/><br\/># pour pouvoir monitorer via un navigateur<br\/>NETSERVER on<br\/># port du serveur<br\/>NISPORT 3551<br\/>UPSCLASS standalone<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>Attention de pr\u00e9voir d&rsquo;ouvrir le port 3551 avec <a href=\"http:\/\/www.funix.org\/fr\/linux\/index.php?ref=intrusions#Installer_un_firewall_avec_shorewall\">shorewall<\/a>. Avec <a href=\"http:\/\/www.funix.org\/fr\/linux\/index.php?ref=startup\">systemd<\/a> on cr\u00e9era le fichier <strong>\/usr\/lib\/systemd\/system\/apcupsd.service<\/strong> qui contiendra :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">[Unit]<br\/>Description=APC UPS Power Control Daemon for Linux<br\/><br\/>[Service]<br\/>ExecStartPre=-\/usr\/bin\/rm -f \/etc\/apcupsd\/powerfail<br\/>ExecStart=\/usr\/sbin\/apcupsd -b -f \/etc\/apcupsd\/apcupsd.conf<br\/><br\/>[Install]<br\/>WantedBy=multi-user.target<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>on active le service en tapant :<\/p>\n\n\n\n<p><strong>systemctl enable apcupsd <\/strong><\/p>\n\n\n\n<p>et on le lance avec :<\/p>\n\n\n\n<p><strong>systemctl start apcupsd<\/strong><\/p>\n\n\n\n<p>voil\u00e0 le r\u00e9sultat avec <strong>journalctl<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">sept. 16 20:07:51 mana.kervao.fr apcupsd[18842]: apcupsd 3.14.14 (31 May 2016) mandrake startup succeeded<br\/>sept. 16 20:07:51 mana.kervao.fr apcupsd[18842]: NIS server startup succeeded<br\/>sept. 16 20:07:51 mana.kervao.fr kernel: hid-generic 0003:051D:0002.0002: hiddev0,hidraw0: USB HID v1.10 Device [American Power Conversion Back-UPS XS 950U   FW:925.T2 .I USB FW:T2 ] on usb-0000:00:1d.0-1.1\/input0<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>la commande <strong>apcaccess status<\/strong> me donne<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">APC      : 001,036,0878<br\/>DATE     : 2017-09-16 20:39:58  0200  <br\/>HOSTNAME : mana.kervao.fr<br\/>VERSION  : 3.14.14 (31 May 2016) mandrake<br\/>UPSNAME  : onduleur<br\/>CABLE    : USB Cable<br\/>DRIVER   : USB UPS Driver<br\/>UPSMODE  : Stand Alone<br\/>STARTTIME: 2017-09-16 20:38:59  0200  <br\/>MODEL    : Back-UPS XS 950U   <br\/>STATUS   : ONLINE <br\/>LINEV    : 234.0 Volts<br\/>LOADPCT  : 16.0 Percent<br\/>BCHARGE  : 100.0 Percent<br\/>TIMELEFT : 37.1 Minutes<br\/>MBATTCHG : 5 Percent<br\/>MINTIMEL : 3 Minutes<br\/>MAXTIME  : 0 Seconds<br\/>SENSE    : Medium<br\/>LOTRANS  : 155.0 Volts<br\/>HITRANS  : 280.0 Volts<br\/>ALARMDEL : 30 Seconds<br\/>BATTV    : 13.4 Volts<br\/>LASTXFER : No transfers since turnon<br\/>NUMXFERS : 0<br\/>TONBATT  : 0 Seconds<br\/>CUMONBATT: 0 Seconds<br\/>XOFFBATT : N\/A<br\/>SELFTEST : NO<br\/>STATFLAG : 0x05000008<br\/>SERIALNO : 3B1713X09434  <br\/>BATTDATE : 2017-03-30<br\/>NOMINV   : 230 Volts<br\/>NOMBATTV : 12.0 Volts<br\/>NOMPOWER : 480 Watts<br\/>FIRMWARE : 925.T2 .I USB FW:T2<br\/>END APC  : 2017-09-16 20:40:01  0200<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>et voil\u00e0 ce que \u00e7a donne quand on acc\u00e8de via le navigateur<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"http:\/\/olivier.hoarau.org\/?attachment_id=3015\" rel=\"attachment wp-att-3015\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"136\" src=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd.jpg?resize=474%2C136\" alt=\"\" class=\"wp-image-3015\" srcset=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd.jpg?w=1010&amp;ssl=1 1010w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd.jpg?resize=300%2C86&amp;ssl=1 300w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd.jpg?resize=768%2C221&amp;ssl=1 768w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd.jpg?w=948&amp;ssl=1 948w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>quand on clique sur <strong>Local Host<\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"http:\/\/olivier.hoarau.org\/?attachment_id=3017\" rel=\"attachment wp-att-3017\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"389\" src=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd2.jpg?resize=474%2C389\" alt=\"\" class=\"wp-image-3017\" srcset=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd2.jpg?w=887&amp;ssl=1 887w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd2.jpg?resize=300%2C246&amp;ssl=1 300w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd2.jpg?resize=768%2C630&amp;ssl=1 768w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>en provoquant une coupure de courant (en d\u00e9branchant simplement l&rsquo;onduleur)<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"http:\/\/olivier.hoarau.org\/?attachment_id=3018\" rel=\"attachment wp-att-3018\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"132\" src=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd-powerfailure2.jpg?resize=474%2C132\" alt=\"\" class=\"wp-image-3018\" srcset=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd-powerfailure2.jpg?w=1035&amp;ssl=1 1035w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd-powerfailure2.jpg?resize=300%2C83&amp;ssl=1 300w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd-powerfailure2.jpg?resize=768%2C214&amp;ssl=1 768w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd-powerfailure2.jpg?resize=1024%2C285&amp;ssl=1 1024w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd-powerfailure2.jpg?w=948&amp;ssl=1 948w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"http:\/\/olivier.hoarau.org\/?attachment_id=3019\" rel=\"attachment wp-att-3019\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"388\" src=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd-powerfailure.jpg?resize=474%2C388\" alt=\"\" class=\"wp-image-3019\" srcset=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd-powerfailure.jpg?w=887&amp;ssl=1 887w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd-powerfailure.jpg?resize=300%2C246&amp;ssl=1 300w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/apcupsd-powerfailure.jpg?resize=768%2C629&amp;ssl=1 768w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>\u00e0 noter que les commandes de <strong>shutdown<\/strong> sont configurables dans le fichier <strong>\/etc\/apcupsd\/apccontrol<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>J&rsquo;avais r\u00e9dig\u00e9 il y a quelque temps un post qui expliquait comment piloter un onduleur sous linux. En fait que je dis piloter, il s&rsquo;agit de le monitorer et surtout que l&rsquo;onduleur d\u00e9clenche l&rsquo;arr\u00eat propre du poste linux qu&rsquo;il alimente au bout d&rsquo;un temps d\u00e9fini. J&rsquo;utilisais jusqu&rsquo;\u00e0 pr\u00e9sent un onduleur speex pp210, et bien qu&rsquo;ayant &hellip; <a href=\"https:\/\/olivier.hoarau.org\/?p=3013\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Piloter un onduleur sous linux le retour<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_share_on_mastodon":"0"},"categories":[5],"tags":[],"class_list":["post-3013","post","type-post","status-publish","format-standard","hentry","category-logiciels-libres"],"share_on_mastodon":{"url":"","error":""},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/peOjJ-MB","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/3013","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3013"}],"version-history":[{"count":4,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/3013\/revisions"}],"predecessor-version":[{"id":6377,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/3013\/revisions\/6377"}],"wp:attachment":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3013"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3013"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}