<div>Hi Eddie,Joseph,</div><div>  Thanks for your reply.</div><div> The new obmc-ikvm.c with "wait_next" code snippet  did work when the screen resolution changed during  the BIOS and OS   startup process. </div><div>But two new issues are raised:</div><div>1, The user can't choose the which OS to run if there are several operating systems on grub menu,eg, one is Fedora19,one is Centos7,and the other is Ubuntu16.04, because the webui ikvm screen can't get the OS booting information in screen resolution changing process.</div><div>2, The obmc-ikvm will dead-locked and has no response if the user would click the button "Refresh" on web page https://xxx.xxx.xxx.xxx/#/kvm, when the host screen resolution changing.</div><div> In this case, I must restart the obmc-ikvm.service ,sometimes must restart phosphor-gevent.service  because the rest_debus python process will occupy the CPU more than 95%.</div><div>The good one, </div><div>1)When I clicked the "Refresh" button on web page after the OS finish the startup.  top result on BMC side:</div><div><div>  PID  PPID USER     STAT   VSZ %VSZ %CPU COMMAND</div><div> 1118     1 root     S    33784  14%  16% python /usr/sbin/phosphor-gevent rest_</div><div> 1132     1 root     S    20316   9%   3% /usr/bin/obmc-ikvm -v /dev/video0 -i /</div><div>  499     1 root     S    13288   6%   1% /lib/systemd/systemd-journald</div><div>  815     1 messageb S     4424   2%   1% /usr/bin/dbus-daemon --system --addres</div><div>  797     1 root     S    14924   6%   1% python /usr/sbin/phosphor-mapper --pat</div><div> 1141  1137 root     R     3180   1%   0% top</div><div><br></div><div>2)When I clicked the "Refresh" button on web page after I saw the host grub menu to get the host screen. top result on BMC side:</div><div><div>  PID  PPID USER     STAT   VSZ %VSZ %CPU COMMAND</div><div> 1118     1 root     R    33792  14%  98% python /usr/sbin/phosphor-gevent rest_</div><div> 1141  1137 root     R     3180   1%   1% top</div><div>  819     1 root     S     1892   1%   0% obmc-console-server --config /etc/obmc</div><div> 1123     2 root     IW       0   0%   0% [kworker/u2:3]</div><div>    1     0 root     S    25304  11%   0% {systemd} /sbin/init</div><div>  810     1 root     S     1756   1%   0% /usr/sbin/rngd -f</div><div> 1090     2 root     IW       0   0%   0% [kworker/u2:0]</div><div>  897     1 root     S    33768  14%   0% power_control.exe 3000 10</div></div><div><br></div></div><div>Best,</div><div>xiuzhi  <br>On 09/05/2018 02:43 AM, KWLIU@nuvoton.com wrote:<br>><br>> Hi Xiuzhi:<br>><br>> From your system log, I think the problem is on the Aspeed video <br>> driver(apsedd-video.c).<br>><br>> But I don¡¯t have any Aspeed platforms at hand and can¡¯t really help <br>> you to debug this issue,<br>><br>> maybe you can increase timeout value of mode detection or wait for <br>> Eddie¡¯s comments.<br>><br><br>That is correct, it seems to take quite some time for the host <br>resolution change to actually take effect. In my latest upstream version <br>I have 1 retry on the mode detection as well as a longer timeout, so you <br>could pull that in from the linux-kernel list, or wait for integration <br>into openbmc/linux.<br><br>You have to restart the obmc-ikvm application in this case.<br><br>Thanks,<br>Eddie<br><br>> If you want to auto start/restart obmc-ikvm, you must add a service <br>> file for systemd service.<br>><br>> You can refer to below links.<br>><br>> 1.https://github.com/openbmc/openbmc/blob/master/meta-phosphor/common/recipes-phosphor/interfaces/phosphor-gevent/phosphor-gevent.service <br>><br>><br>> 2.https://github.com/openbmc/openbmc/blob/master/meta-phosphor/common/recipes-phosphor/interfaces/phosphor-gevent.bb<br>><br>> 3.https://github.com/Nuvoton-Israel/meta-openbmc-nuvoton-addon/blob/openbmc-master/recipes-graphics/obmc-ikvm/obmc-ikvm/obmc-ikvm.service<br>><br>> 4.https://github.com/Nuvoton-Israel/meta-openbmc-nuvoton-addon/blob/openbmc-master/recipes-graphics/obmc-ikvm/obmc-ikvm.bb<br>><br>> Thanks,<br>><br>> Joseph<br>><br>> *From:*xiuzhi [mailto:1450335857@qq.com]<br>> *Sent:* Wednesday, September 05, 2018 1:48 PM<br>> *To:* IS20 Avi Fishman; CS20 KWLiu; Eddie James; Tanous, Ed; openbmc<br>> *Subject:* Re:RE: Re:RE: KVM Support?<br>><br>> Hi  Eddie,Joseph,<br>><br>>     The webui can't get ikvm video when the host resolution changed .<br>><br>> I must kill the process :python /usr/sbin/phosphor-gevent rest_dbus.py<br>><br>> and restart obmc-ikvm -v /dev/video0 -i /dev/hidg0<br>><br>> Then the kvm on webui can get the host video image .<br>><br>> The system log is:<br>><br>>   [ 9052.912683] aspeed-video 1e700000.video: resolution changed; <br>> resetting<br>><br>> [ 9054.406876] aspeed-video 1e700000.video: timed out on 1st mode detect<br>><br>> [ 9054.413380] aspeed-video 1e700000.video: resolution changed; <br>> couldn't get new resolution<br>><br>> Do you have any idea to auto restart the obmc-ikvm and ?rest_dbus.py<br>><br>> xiuzhi<br>><br>> ------------------ Original ------------------<br>><br>> *From: * "Avi.Fishman";<Avi.Fishman@nuvoton.com <br>> <mailto:Avi.Fishman@nuvoton.com>>;<br>><br>> *Date: * Aug 29, 2018<br>><br>> *To: * "KWLIU"<KWLIU@nuvoton.com <mailto:KWLIU@nuvoton.com>>; <br>> "xiuzhi"<1450335857@qq.com <mailto:1450335857@qq.com>>; <br>> "eajames"<eajames@linux.vnet.ibm.com <br>> <mailto:eajames@linux.vnet.ibm.com>>; "ed.tanous"<ed.tanous@intel.com <br>> <mailto:ed.tanous@intel.com>>; "openbmc"<openbmc@lists.ozlabs.org <br>> <mailto:openbmc@lists.ozlabs.org>>;<br>><br>> *Subject: * RE: Re:RE: KVM Support?<br>><br>> Hi Xiuzhi,<br>><br>> Can you take the patches and merge them to your environment?<br>><br>> Josef,<br>><br>> Maybe you need to give the commit or tag you are that above it you use <br>> your patches?<br>><br>> Thanks,<br>><br>> Avi<br>><br>> *From:*openbmc <br>> <openbmc-bounces+avifishman70=gmail.com@lists.ozlabs.org <br>> <mailto:openbmc-bounces+avifishman70=gmail.com@lists.ozlabs.org>> *On <br>> Behalf Of *CS20 KWLiu<br>> *Sent:* Wednesday, August 29, 2018 5:44 AM<br>> *To:* 1450335857@qq.com <mailto:1450335857@qq.com>; <br>> eajames@linux.vnet.ibm.com <mailto:eajames@linux.vnet.ibm.com>; <br>> ed.tanous@intel.com <mailto:ed.tanous@intel.com>; <br>> openbmc@lists.ozlabs.org <mailto:openbmc@lists.ozlabs.org><br>> *Subject:* RE: Re:RE: KVM Support?<br>><br>> Hi Xiuzhi:<br>><br>> I think we are using different bases of the openbmc, this patch is <br>> really working on my side<br>><br>> Sorry for I cannot find the exact error in your message.<br>><br>> Thanks,<br>><br>> Joseph<br>><br>> *From:*xiuzhi [mailto:1450335857@qq.com]<br>> *Sent:* Tuesday, August 28, 2018 6:57 PM<br>> *To:* Eddie James; Tanous, Ed; CS20 KWLiu; openbmc<br>> *Subject:* Re:RE: KVM Support?<br>><br>> Hi Joseph, Ed,<br>>   There was an error when I  updated the patches <br>> https://github.com/Nuvoton-Israel/meta-openbmc-nuvoton-addon/commit/140771b7e898dd5ca8f0364290cce669609088ac <br>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_Nuvoton-2DIsrael_meta-2Dopenbmc-2Dnuvoton-2Daddon_commit_140771b7e898dd5ca8f0364290cce669609088ac&d=DwMGAw&c=ue8mO8zgC4VZ4q_aNVKt8G9MC01UFDmisvMR1k-EoDM&r=7g2D1XDc1ET3CnY1ySnaWQXPxPxfpLww1MiDbLW4v8Q&m=Zir4Lw7xIZbwLjRk7ILcjDyeLfFVQzWjscAv2ZyvXXY&s=8SWpZ_B0Z9GOpECKSppJKXXbMTo-hNO0HuXocMRt5n0&e=><br>><br>> Would you like to give me some suggestions to debug it?  When I logged <br>> in https://<bmc_ip>/#/kvm <br>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__-253cbmc-5Fip-253e_-23_kvm&d=DwMFAg&c=ue8mO8zgC4VZ4q_aNVKt8G9MC01UFDmisvMR1k-EoDM&r=kNeU5gwNy2cOhaTMIUoFhUPAXV51uTneHprahPM6I78&m=xFjehOYoJW0EsYnLWkBOLeUtOCSyAFs6UdQuMvfM7y4&s=2J0BHCud5wpV8zxnLKS_sDp79AfVxVQvJ5Vk3r8dhTc&e=>, <br>> The errors read: " WebSocket on-close event  <br>> app.89eaa0b6e5e9417cb602.js:38:675915 Failed when connecting: <br>> Connection closed (code: 1005)  app.89eaa0b6e5e9417cb602.js:38:685584 <br>>         RFB.prototype._fail <br>> https://192.168.120.132/app.89eaa0b6e5e9417cb602.js:38:685584 <br>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__192.168.120.132_app.89eaa0b6e5e9417cb602.js-3A38-3A685584&d=DwMFAg&c=ue8mO8zgC4VZ4q_aNVKt8G9MC01UFDmisvMR1k-EoDM&r=kNeU5gwNy2cOhaTMIUoFhUPAXV51uTneHprahPM6I78&m=xFjehOYoJW0EsYnLWkBOLeUtOCSyAFs6UdQuMvfM7y4&s=EgJDf5jL_gme8t1tF_wjg1-08xZxvqptSjoW3a8zohU&e=> <br>>         RFB/< <br>> https://192.168.120.132/app.89eaa0b6e5e9417cb602.js:38:676138 <br>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__192.168.120.132_app.89eaa0b6e5e9417cb602.js-3A38-3A676138&d=DwMFAg&c=ue8mO8zgC4VZ4q_aNVKt8G9MC01UFDmisvMR1k-EoDM&r=kNeU5gwNy2cOhaTMIUoFhUPAXV51uTneHprahPM6I78&m=xFjehOYoJW0EsYnLWkBOLeUtOCSyAFs6UdQuMvfM7y4&s=dIWffzOhDWjQl-iTTJj_38z606ai7gLJSynBqbAZXW8&e=> <br>>         Websock.prototype.open/this._websocket.onclose< <br>> https://192.168.120.132/app.89eaa0b6e5e9417cb602.js:38:778159 <br>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__192.168.120.132_app.89eaa0b6e5e9417cb602.js-3A38-3A778159&d=DwMFAg&c=ue8mO8zgC4VZ4q_aNVKt8G9MC01UFDmisvMR1k-EoDM&r=kNeU5gwNy2cOhaTMIUoFhUPAXV51uTneHprahPM6I78&m=xFjehOYoJW0EsYnLWkBOLeUtOCSyAFs6UdQuMvfM7y4&s=oJ5yHA_oCl5ihumZXKGL7rDbby1iZ0j2J4hWMLB-hEY&e=> <br>> New state 'disconnecting', was 'connecting'.  <br>> app.89eaa0b6e5e9417cb602.js:38:684301 >> RFB.disconnect  <br>> app.89eaa0b6e5e9417cb602.js:38:680495 >> Keyboard.allKeysUp  <br>> app.89eaa0b6e5e9417cb602.js:38:739659 << Keyboard.allKeysUp  <br>> app.89eaa0b6e5e9417cb602.js:38:739828 " The line 38 of <br>> app.89eaa0b6e5e9417cb602.js is : void 0!==module&&void <br>> 0!==exports&&module.exports===exports&&(module.exports="ui.router"),function(window,angular,undefined){"use <br>> strict";var <br>> $$UMFP,isDefined=angular.isDefined,isFunction=angular.isFunction,isString=angular.isString,isObject=angular.isObject,isArray=angular.isArray,forEach=angular.forEach,extend=angular.extend,copy=angular.copy,toJson=angular.toJson;function <br>> inherit(parent,extra){return <br>> extend(new(extend(function(){},{prototype:parent})),extra)}function <br>> merge(dst){return <br>> forEach(arguments,function(obj){obj!==dst&&forEach(obj,function(value,key){dst.hasOwnProperty(key)||(dst[key]=value)})}),dst}function <br>> objectKeys(object){if(Object.keys)return Object.keys(object);var <br>> result=[];return <br>> forEach(object,function(val,key){result.push(key)}),result}function <br>> indexOf(array,value){if(Array.prototype.indexOf)return <br>> array.indexOf(value,Number(arguments[2])||0);var <br>> len=array.length>>>0,from=Number(arguments[2])||0;for((from=from<0?Math.ceil(from):Math.floor(from))<0&&(from+=len);from<len;from++)if(from <br>> in array&&array[from]===value)return from;return-1}function <br>> inheritParams(currentParams,newParams,$current,$to) ... ... Best, <br>> Xiuzhi >Hi Eddie & Ed:<br>> >Do you have any plan to support non-jpeg video stream in obmc-iKVM?<br>> >It is possible some platforms don't have hardware JPEG engine, instead have the RGB video stream.<br>> >If possible to support RGB video stream, I think it would be better if you can add the video frame differentiation in obmc-iKVM because we don't need to send the full screen >to VNC client on every request, it can reduce the buffer size at least. (libvncserver already has the video frame differentiation)<br>> >Also, I have implemented a KVM application for our platform(nuvoton evb-npcm750) which has hardware video frame differentiation and hardware hextile engine.<br>> https://github.com/Nuvoton-Israel/obmc-ikvm <br>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_Nuvoton-2DIsrael_obmc-2Dikvm&d=DwMGAw&c=ue8mO8zgC4VZ4q_aNVKt8G9MC01UFDmisvMR1k-EoDM&r=7g2D1XDc1ET3CnY1ySnaWQXPxPxfpLww1MiDbLW4v8Q&m=Zir4Lw7xIZbwLjRk7ILcjDyeLfFVQzWjscAv2ZyvXXY&s=92D29zgWEhIBYgHR9Q7lkZzREnMSwnqyhl1nEMyqXFM&e=><br>> https://github.com/Nuvoton-Israel/linux/commit/7e90f572323e56e9425b85aafe86dfa5a35c4e7d <br>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_Nuvoton-2DIsrael_linux_commit_7e90f572323e56e9425b85aafe86dfa5a35c4e7d&d=DwMGAw&c=ue8mO8zgC4VZ4q_aNVKt8G9MC01UFDmisvMR1k-EoDM&r=7g2D1XDc1ET3CnY1ySnaWQXPxPxfpLww1MiDbLW4v8Q&m=Zir4Lw7xIZbwLjRk7ILcjDyeLfFVQzWjscAv2ZyvXXY&s=1JBlTPOERz49VFrLgiw014ZnBqab0r8xdRIe6Fee1JA&e=><br>> >I also enabled ED's KVM webui and added kvmws proxy in python web server.<br>> https://github.com/Nuvoton-Israel/meta-openbmc-nuvoton-addon/commit/140771b7e898dd5ca8f0364290cce669609088ac <br>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_Nuvoton-2DIsrael_meta-2Dopenbmc-2Dnuvoton-2Daddon_commit_140771b7e898dd5ca8f0364290cce669609088ac&d=DwMGAw&c=ue8mO8zgC4VZ4q_aNVKt8G9MC01UFDmisvMR1k-EoDM&r=7g2D1XDc1ET3CnY1ySnaWQXPxPxfpLww1MiDbLW4v8Q&m=Zir4Lw7xIZbwLjRk7ILcjDyeLfFVQzWjscAv2ZyvXXY&s=8SWpZ_B0Z9GOpECKSppJKXXbMTo-hNO0HuXocMRt5n0&e=><br>> >If you can spare a few minutes to review my implementation is my pleasure.<br>> >Currently, my video driver is not v4l2, so I am going to redesign it to fit v4l2 and your obmc-iKVM, then I will try to add the RGB format support in your obmc-ikvm.<br>> >Regarding the larger binary size, I think we need to review all configurations of libvncserver and check which functions should be disabled.<br>> >Thanks,<br>> >Joseph Liu.<br>><br>><br>><br>> ===========================================================================================<br>> The privileged confidential information contained in this email is <br>> intended for use only by the addressees as indicated by the original <br>> sender of this email. If you are not the addressee indicated in this <br>> email or are not responsible for delivery of the email to such a <br>> person, please kindly reply to the sender indicating this fact and <br>> delete all copies of it from your computer and network server <br>> immediately. Your cooperation is highly appreciated. It is advised <br>> that any unauthorized use of confidential information of Nuvoton is <br>> strictly prohibited; and any information in this email irrelevant to <br>> the official business of Nuvoton shall be deemed as neither given nor <br>> endorsed by Nuvoton.<br>><br>><br>><br>> ===========================================================================================<br>> The privileged confidential information contained in this email is <br>> intended for use only by the addressees as indicated by the original <br>> sender of this email. If you are not the addressee indicated in this <br>> email or are not responsible for delivery of the email to such a <br>> person, please kindly reply to the sender indicating this fact and <br>> delete all copies of it from your computer and network server <br>> immediately. Your cooperation is highly appreciated. It is advised <br>> that any unauthorized use of confidential information of Nuvoton is <br>> strictly prohibited; and any information in this email irrelevant to <br>> the official business of Nuvoton shall be deemed as neither given nor <br>> endorsed by Nuvoton.<br>><br>><br>><br>> ===========================================================================================<br>> The privileged confidential information contained in this email is <br>> intended for use only by the addressees as indicated by the original <br>> sender of this email. If you are not the addressee indicated in this <br>> email or are not responsible for delivery of the email to such a <br>> person, please kindly reply to the sender indicating this fact and <br>> delete all copies of it from your computer and network server <br>> immediately. Your cooperation is highly appreciated. It is advised <br>> that any unauthorized use of confidential information of Nuvoton is <br>> strictly prohibited; and any information in this email irrelevant to <br>> the official business of Nuvoton shall be deemed as neither given nor <br>> endorsed by Nuvoton.<br></div>