f79f6f54 | 05-Jul-2022 |
George Liu <liuxiwei@inspur.com> |
Add clang-format
Refer:https://github.com/openbmc/docs/blob/ac5d544553934f8083c61c5986a1420261bc8a4c/style/cpp/.clang-format
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I931503febf4e
Add clang-format
Refer:https://github.com/openbmc/docs/blob/ac5d544553934f8083c61c5986a1420261bc8a4c/style/cpp/.clang-format
Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I931503febf4e17af5c328a6496e499992bc4e381
show more ...
|
3fa0bfba | 23-Dec-2021 |
Tejas Patil <tejaspp@ami.com> |
Add Mouse Wheel Scroll Events
This commit add support for mouse wheel scroll events in KVM. It supports for mouse scroll up/down buttons, by which user can use mouse wheel functionality.
Testing: T
Add Mouse Wheel Scroll Events
This commit add support for mouse wheel scroll events in KVM. It supports for mouse scroll up/down buttons, by which user can use mouse wheel functionality.
Testing: Tested mouse wheel functionality. Verified mouse wheel scroll up/down functions.
Signed-off-by: Tejas Patil <tejaspp@ami.com> Change-Id: I7f53f0f203a81b55f2377982571e8f415ed99df2
show more ...
|
a4f63b38 | 14-Feb-2022 |
Jammy Huang <jammy_huang@aspeedtech.com> |
Add control for video subsampling
Add '-s' to assign jpeg subsampling. 0: 444, 1: 420
Using 420 will make video lack of detail compared to 444, but cut amount of video data by half. This could be
Add control for video subsampling
Add '-s' to assign jpeg subsampling. 0: 444, 1: 420
Using 420 will make video lack of detail compared to 444, but cut amount of video data by half. This could be useful for some cases.
Change-Id: I48836a7117f7e3b9986e3f5c6a92974c9268525e Signed-off-by: Jammy Huang <jammy_huang@aspeedtech.com>
show more ...
|
3b201f69 | 11-Jan-2022 |
Neal Liu <neal_liu@aspeedtech.com> |
Fix HID gadget device remote wakeup issue
Enable Bit(6): Self-powered & Bit(5): Remote Wakeup to allow host users to decide whether HID gadget device can wakeup host or not. Host Controller would se
Fix HID gadget device remote wakeup issue
Enable Bit(6): Self-powered & Bit(5): Remote Wakeup to allow host users to decide whether HID gadget device can wakeup host or not. Host Controller would set REMOTE_WAKEUP feature before suspend, and the devices acked accordingly.
Tested: Host can be waked up by HID device when KVM client is connected.
Signed-off-by: Neal Liu <neal_liu@aspeedtech.com> Change-Id: Iddbc456a970226ebd1f419cc6ee4ac7dc8ab989f
show more ...
|
ee09e303 | 03-Nov-2021 |
Jammy Huang <jammy_huang@aspeedtech.com> |
Fix kvm show disconnected if host successively changes resolution
Video::resize() will throw execption if any ioctl failed and it leads to rfb server stopped. This is the root cause because VIDIOC_Q
Fix kvm show disconnected if host successively changes resolution
Video::resize() will throw execption if any ioctl failed and it leads to rfb server stopped. This is the root cause because VIDIOC_QUERY_DV_TIMINGS always could return error for no signal.
If VIDIOC_QUERY_DV_TIMINGS failed, we can go restart() to avoid this problem.
Tested: manually tested with the host which changes resolution quickly and successively.
Signed-off-by: Jammy Huang <jammy_huang@aspeedtech.com> Change-Id: Ie613f177122b7058e19511a451e4dad9cb1dffbf
show more ...
|
f90f68d1 | 23-Oct-2021 |
Manojkiran Eda <manojkiran.eda@gmail.com> |
Add OWNERS file
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I3d64e05cd793818e61fc14b6bb847e3f08c3b2ab |
2d2f3dab | 18-Jun-2021 |
Paul Fertser <fercerpav@gmail.com> |
Implement optional per-frame CRC calculation to save bandwidth
Current implementation is very CPU-efficient as it's not processing JPEG-encoded data received from V4L2 at all.
This patch implements
Implement optional per-frame CRC calculation to save bandwidth
Current implementation is very CPU-efficient as it's not processing JPEG-encoded data received from V4L2 at all.
This patch implements an optional mode where for each frame that's about to be sent a CRC32 is calculated and if this client has already received it before, the transmission is skipped. This of course adds some noticeable CPU load (proportional to the frame rate requested and the encoded JPEG size); on AST2500 it's taking about 10 % CPU when showing a relatively complex GUI login screen with 15 FPS.
Reducing required bandwidth to 0 for static images helps a lot when using IP KVM via poor connections, e.g. provided by cellular network operators or some hotels, so can be beneficial for certain common usecases.
The next optimisation to try is to dynamically alter the frame rate, automatically ramping it up as soon as the changes start happening and lowering after a period of inactivity; it's not yet clear if V4L2 allows this.
Signed-off-by: Paul Fertser <fercerpav@gmail.com> Change-Id: I74b887cf83b5c8676f5792412805de08e1a54f32
show more ...
|
7a420e4c | 23-Jun-2021 |
Bruce Mitchell <bruce.mitchell@linux.vnet.ibm.com> |
Replace IRC with Discord
Discord has more users. IRC traffic has ground to a halt.
Signed-off-by: Bruce Mitchell <bruce.mitchell@linux.vnet.ibm.com> Change-Id: If4bbcb81ef077c2c627fead886941bc05f57
Replace IRC with Discord
Discord has more users. IRC traffic has ground to a halt.
Signed-off-by: Bruce Mitchell <bruce.mitchell@linux.vnet.ibm.com> Change-Id: If4bbcb81ef077c2c627fead886941bc05f571643
show more ...
|
40fd5429 | 17-Jun-2021 |
Zev Weiss <zweiss@equinix.com> |
Fix error reporting in Input::writeKeyboard()
write(2) only sets errno on failure; a successful call leaves it unchanged. We had been being using errno to determine whether or not the write succeed
Fix error reporting in Input::writeKeyboard()
write(2) only sets errno on failure; a successful call leaves it unchanged. We had been being using errno to determine whether or not the write succeeded, but weren't zeroing it before the call and hence could end up spuriously reporting failure from writeKeyboard() even when the write actually succeeded.
That false report can in turn cause sendWakeupPacket() to not send the key release after its XK_Shift_L key press, leading to the host thinking the shift key is being held down, which among other minor bits of confusion can cause a boot hang (Ubuntu's GRUB, for example, is patched to interpret a held shift key as a signal from the user to interrupt its default boot sequence and switch to an interactive menu).
We now instead just return success immediately after a complete write and false otherwise (if we exhaust our retry attempts or hit a non-EAGAIN failure).
Tested: verified with strace that obmc-ikvm sends both the press and the release of the shift key in sendWakeupPacket(); Ubuntu host booted cleanly instead of stopping at the GRUB menu.
Signed-off-by: Zev Weiss <zweiss@equinix.com> Change-Id: Ic1229b3979690040879c7e4471ebc987878289e6
show more ...
|
673ac2eb | 30-Jul-2020 |
Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com> |
Refine HID report writing logic
Blocking write on the keyboard HID device causes screen freezing during turning off the host power. To fix this issue, this commit refines the logic using non-blockin
Refine HID report writing logic
Blocking write on the keyboard HID device causes screen freezing during turning off the host power. To fix this issue, this commit refines the logic using non-blocking write. As a side effect, non-blocking write introduces event dropping when kernel HID driver returns -EAGAIN when the driver is in busy state so this commit also adds retry logic to cover the case.
Tested: Didn't see the screen freezing issue.
Change-Id: Ibd95f567c49f448cd053948c14c006de17c52420 Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
show more ...
|
c11257d8 | 23-Jul-2020 |
Jae Hyun Yoo <jae.hyun.yoo@intel.com> |
Connect HID gadget device dynamically
Connecting HID gadget device statically from the beginning of this service causes an issue on WHLK test. To prevent the issue, this commit changes the HID gadge
Connect HID gadget device dynamically
Connecting HID gadget device statically from the beginning of this service causes an issue on WHLK test. To prevent the issue, this commit changes the HID gadget device handling as dynamic so that the HID gadget device can be connected when this service has at least one KVM client.
Tested: /dev/hidg0 and /dev/hidg1 created only when at least one KVM client is connected.
Change-Id: I5f6596b9e4e297fb6b507000499fc041460659f7 Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@intel.com>
show more ...
|
7a89cd23 | 21-Aug-2019 |
Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com> |
Fix keyboard and mouse input events dropping issue
Restarting of HID input devices causes input events dropping issue which is critical for BMC KVM uses. For an example, user can't enter to BIOS by
Fix keyboard and mouse input events dropping issue
Restarting of HID input devices causes input events dropping issue which is critical for BMC KVM uses. For an example, user can't enter to BIOS by doing keep pressing 'F2' or 'Del' key because of this issue.
To fix the issue, this commit removes the input device restarting logic and refines error log journaling logic using errno checking.
Tested: 1. Open BMCweb -> Server control -> KVM. 2. Make a host reset and keep pressing 'F2' key. 3. Was able to enter to BIOS using the key press.
Change-Id: Iec1bfad1d9e5825858844cab658bbfa3e6bc24f6 Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
show more ...
|
861337e8 | 14-Nov-2019 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
systemd: Don't start without configfs
We cannot run without configfs. Don't attempt to start if we find ourselves in that situation.
Change-Id: I67515d2eaaf982f6750aae6e90a939873338a77c Signed-off
systemd: Don't start without configfs
We cannot run without configfs. Don't attempt to start if we find ourselves in that situation.
Change-Id: I67515d2eaaf982f6750aae6e90a939873338a77c Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
ed98d07d | 14-Nov-2019 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
build: drop autotools support
It made sense to support both build systems while OpenBMC transitioned but that has been complete for some time - No need to support multiple build systems any longer.
build: drop autotools support
It made sense to support both build systems while OpenBMC transitioned but that has been complete for some time - No need to support multiple build systems any longer.
Change-Id: Ib698163f53a4f493f20491c54851247c5700f13e Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
7cf1f1d4 | 30-Sep-2019 |
Eddie James <eajames@linux.ibm.com> |
Prevent excessive journal logging by wakeup signal
When the application is waiting for timings, it restarts the video to try and get a signal. Part of this process sends a wake-up signal on the virt
Prevent excessive journal logging by wakeup signal
When the application is waiting for timings, it restarts the video to try and get a signal. Part of this process sends a wake-up signal on the virtual keyboard and pointer in case host VGA has slept. But if the host is shut down, this causes repeated errors in the journal as the HID gadgets return errors.
Fix this by consolidating the keyboard/pointer write functions and therefore closing the HID gadget file handles when the host is shut down, preventing further wake-up attempts until host returns.
Change-Id: Id5fe484c976eccefa6a72393d4d6b2b301d28a1a Signed-off-by: Eddie James <eajames@linux.ibm.com>
show more ...
|
f8e05e5c | 27-Sep-2019 |
Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com> |
Remove frame rate limit
Since we have flow control logic, better remove the frame rate limit to improve frame update speed as faster as it can provide. So this commit removes the limit parameter so
Remove frame rate limit
Since we have flow control logic, better remove the frame rate limit to improve frame update speed as faster as it can provide. So this commit removes the limit parameter so that it can use the default 30fps setting.
Tested: It didn't make bmcweb crash which is caused by frame data flooding. Frame update speed little bit faster than before.
Change-Id: I30ec8f2c4124e27c20261b87042fb094160d27f8 Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
show more ...
|
85d04552 | 09-May-2019 |
Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com> |
Add flow control to prevent buffer over run
This service uses direct frame update with bypassing image compression and invalidating logic in libvncserver to achieve better performance by using of H/
Add flow control to prevent buffer over run
This service uses direct frame update with bypassing image compression and invalidating logic in libvncserver to achieve better performance by using of H/W compressed JPEG frames as those come from the video engine driver.
This behavior helps quick frame update using very small amount of CPU resources but it causes a side effect which crashes bmcweb by OOM killer due to a buffer over run issue. Usually, this issue happens often in a slow speed connection because this service keeps sending all frames without any handshaking with clients so a session buffer in the bmcweb gets bigger and bigger since the low speed connection can't send all stream data on time.
To fix this issue, this commit adds flow control logic to make frame updating handshakes with client so that it'll send frames only when it recieved client frame update messages. All other frames when the client doesn't request will be dropped out to prevent the buffer over run issue.
Tested: bmcweb didn't keep increasing its KVM session buffer. KVM worked well with showing good refresh speed.
resolves https://github.com/openbmc/bmcweb/issues/80
Change-Id: I6b09a711137d15a38fce59adada9bf3d00afde86 Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
show more ...
|
513d95ef | 20-Aug-2019 |
Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com> |
Add keypad input support
This commit makes keypad inputs available.
Change-Id: I95a9268cd930c85846947b6bd49c97087121ca8a Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com> |
95a3b35b | 09-Aug-2019 |
Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com> |
Add a maintainer
Add Jae as a maintainer.
Change-Id: I520b8da04d64ccd186ec22a68e0e38929c7bed68 Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com> |
23135dd9 | 09-Aug-2019 |
Eddie James <eajames@linux.ibm.com> |
eliminate excessive journal errors
When the USB gadget is shut down, the application needs to avoid writes to it in order to avoid lots of errors in the kernel log. Close the file handle and re-open
eliminate excessive journal errors
When the USB gadget is shut down, the application needs to avoid writes to it in order to avoid lots of errors in the kernel log. Close the file handle and re-open it when timings are detected again. Also, prevent logging the failed timings query more than once.
Change-Id: Ic126828fe26ef44ebb0a5cb65cc47b23bb84f7f3 Signed-off-by: Eddie James <eajames@linux.ibm.com>
show more ...
|
133bfa2d | 19-Apr-2019 |
Eddie James <eajames@us.ibm.com> |
Reduce framerate to prevent lag
Reduce the framerate to 16 from the default 30. In testing with high latency or low bandwidth situations, 30 fps is unusable.
Signed-off-by: Eddie James <eajames@lin
Reduce framerate to prevent lag
Reduce the framerate to 16 from the default 30. In testing with high latency or low bandwidth situations, 30 fps is unusable.
Signed-off-by: Eddie James <eajames@linux.ibm.com> Change-Id: Idf6ce9da4556a53500507dcf9d02a4425cba9a1b
show more ...
|
4749f934 | 18-Apr-2019 |
Eddie James <eajames@linux.ibm.com> |
Switch pointer gadget to non-blocking
Writes to the pointer gadget can hang if the host has no cursor. Using non-blocking mode prevents this hanging. Also prevent repeated error logging due to point
Switch pointer gadget to non-blocking
Writes to the pointer gadget can hang if the host has no cursor. Using non-blocking mode prevents this hanging. Also prevent repeated error logging due to pointer write failures in this case.
Change-Id: I9c423a4a0af4b37a69ae20650b86a6266e5b4b41 Signed-off-by: Eddie James <eajames@linux.ibm.com>
show more ...
|
63c3ea18 | 17-Apr-2019 |
John Wang <wangzqbj@inspur.com> |
meson: install create_usbhid.sh
Change-Id: If9d19f24c568f4befa6c8b3acc1148149e59daef Signed-off-by: John Wang <wangzqbj@inspur.com> |
8ec3e236 | 15-Apr-2019 |
Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com> |
Fix host video wake up failure issue
Mouse and Keyboard wake up event were being sent only when an error happens while opening the video dev entry so KVM service can't wake up the host video. To fix
Fix host video wake up failure issue
Mouse and Keyboard wake up event were being sent only when an error happens while opening the video dev entry so KVM service can't wake up the host video. To fix this issue, this commit makes video::start send the wake up packet always at the beginning of video streaming.
Change-Id: I1004b7a3cc552d210080a12157e66233b33293bf Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
show more ...
|
fb6a8e1e | 29-Mar-2019 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
systemd: Add unit file
Add a unit file for starting obmc-ikvm with systemd.
Change-Id: I85bc8c5d9682b48aedeb3670a61179267798d4f7 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> |