Message ID | 20190716010828.27415-1-matthew.ruffell@canonical.com |
---|---|
Headers | show |
Series | hibmc-drm Causes Unreadable Display for Huawei amd64 Servers | expand |
On Tue, Jul 16, 2019 at 01:08:26PM +1200, Matthew Ruffell wrote: > BugLink: https://bugs.launchpad.net/bugs/1762940 Acked-by: Paolo Pisati <paolo.pisati@canonical.com>
On 16.07.19 03:08, Matthew Ruffell wrote: > BugLink: https://bugs.launchpad.net/bugs/1762940 > > [Impact] > > amd64 based Huawei servers have problems where the display output of their iBMC > chips is broken, resulting in a "blurry" screen when viewed from their in house > remote kvm-like console. > > Example: > > https://launchpadlibrarian.net/365907668/creen_picture_for_blur.png > > The issue is caused by the hibmc_drm kernel module being loaded. The PCI ID for > the iBMC chips on amd64 hardware is the same as arm64 hardware, but the > hibmc_drm driver was developed only for use on arm64 hardware, most notably for > the Huawei D05 development board. > > The impact to Huawei is that their customers cannot use Ubuntu server install > media as the screen goes "blurry" when the d-i install media or subuqity > installer loads the hibmc_drm kernel module after language selection. > > The only workaround for their customers is to press the "E" key during the very > first installer menu and adding "modprobe.blacklist=hibmc_drm" to the kernel > command line in the grub menu. This is not good for customer experience with > their servers. > > Other problems exist for the hibmc_drm driver on amd64, such as working on > bios, but not uefi, and not being wayland compatible, making the screen blurry > whenever a desktop session is started and gdm loaded. > > Huawei have asked us to remove hibmc_drm from all architectures except arm64, > and this aligns with advice from Hisilicon. > > [Fix] > > I modified the config/annotations file to remove all architectures except arm64, > and created a patch for Kconfig to set a firm requirement on ARM64 for hibmc_drm. > > I will send the Kconfig patch upstream in the coming days for a more permanent > fix. > > [Testcase] > > Apply the patches and run: > > ubuntu-bionic/CONFIGS$ fakeroot debian/rules genconfigs > ubuntu-bionic/CONFIGS$ grep -Rin "hibmc" . > ./arm64-config.flavour.generic:5739:CONFIG_DRM_HISI_HIBMC=m > > You should see that only arm64 has the config option enabled. > > A test kernel has been built, and is available here: > https://launchpad.net/~mruffell/+archive/ubuntu/sf232667-test > > Huawei requested a test d-i install iso to test server install with, which can > be found here and uses the kernel from the ppa above: > https://people.canonical.com/~mruffell/sf232667_ubuntu_server_d-i_20190711b1.iso > > Both the test kernel and the custom d-i install iso have been tested on amd64 > Huawei server hardware successfully and video output is functional. > > [Regression Potential] > > Regressions will be limited to hardware containing the iBMC chips from Hisilicon, > which I believe are exclusive to Huawei servers. > > I have taken care to ensure that hibmc_drm is enabled for ARM64 so it should not > impact kernels built for the Huawei D05 arm64 development board, and d-i will > still load the hibmc_drm driver during startup for arm64. > > > > *** BLURB HERE *** > > Matthew Ruffell (2): > UBUNTU: [Config] Set CONFIG_DRM_HISI_HIBMC to arm64 only > UBUNTU: SAUCE: Make CONFIG_DRM_HISI_HIBMC depend on ARM64 > > debian.master/config/annotations | 2 +- > drivers/gpu/drm/hisilicon/hibmc/Kconfig | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > Same notes about abi files as for disco. Acked-by: Stefan Bader <stefan.bader@canonical.com>
On 7/15/19 6:08 PM, Matthew Ruffell wrote: > BugLink: https://bugs.launchpad.net/bugs/1762940 > > [Impact] > > amd64 based Huawei servers have problems where the display output of their iBMC > chips is broken, resulting in a "blurry" screen when viewed from their in house > remote kvm-like console. > > Example: > > https://launchpadlibrarian.net/365907668/creen_picture_for_blur.png > > The issue is caused by the hibmc_drm kernel module being loaded. The PCI ID for > the iBMC chips on amd64 hardware is the same as arm64 hardware, but the > hibmc_drm driver was developed only for use on arm64 hardware, most notably for > the Huawei D05 development board. > > The impact to Huawei is that their customers cannot use Ubuntu server install > media as the screen goes "blurry" when the d-i install media or subuqity > installer loads the hibmc_drm kernel module after language selection. > > The only workaround for their customers is to press the "E" key during the very > first installer menu and adding "modprobe.blacklist=hibmc_drm" to the kernel > command line in the grub menu. This is not good for customer experience with > their servers. > > Other problems exist for the hibmc_drm driver on amd64, such as working on > bios, but not uefi, and not being wayland compatible, making the screen blurry > whenever a desktop session is started and gdm loaded. > > Huawei have asked us to remove hibmc_drm from all architectures except arm64, > and this aligns with advice from Hisilicon. > > [Fix] > > I modified the config/annotations file to remove all architectures except arm64, > and created a patch for Kconfig to set a firm requirement on ARM64 for hibmc_drm. > > I will send the Kconfig patch upstream in the coming days for a more permanent > fix. > > [Testcase] > > Apply the patches and run: > > ubuntu-bionic/CONFIGS$ fakeroot debian/rules genconfigs > ubuntu-bionic/CONFIGS$ grep -Rin "hibmc" . > ./arm64-config.flavour.generic:5739:CONFIG_DRM_HISI_HIBMC=m > > You should see that only arm64 has the config option enabled. > > A test kernel has been built, and is available here: > https://launchpad.net/~mruffell/+archive/ubuntu/sf232667-test > > Huawei requested a test d-i install iso to test server install with, which can > be found here and uses the kernel from the ppa above: > https://people.canonical.com/~mruffell/sf232667_ubuntu_server_d-i_20190711b1.iso > > Both the test kernel and the custom d-i install iso have been tested on amd64 > Huawei server hardware successfully and video output is functional. > > [Regression Potential] > > Regressions will be limited to hardware containing the iBMC chips from Hisilicon, > which I believe are exclusive to Huawei servers. > > I have taken care to ensure that hibmc_drm is enabled for ARM64 so it should not > impact kernels built for the Huawei D05 arm64 development board, and d-i will > still load the hibmc_drm driver during startup for arm64. > > > > *** BLURB HERE *** > > Matthew Ruffell (2): > UBUNTU: [Config] Set CONFIG_DRM_HISI_HIBMC to arm64 only > UBUNTU: SAUCE: Make CONFIG_DRM_HISI_HIBMC depend on ARM64 > > debian.master/config/annotations | 2 +- > drivers/gpu/drm/hisilicon/hibmc/Kconfig | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > Acked-by: Connor Kuehl <connor.kuehl@canonical.com>
On 7/16/19 3:08 AM, Matthew Ruffell wrote: > BugLink: https://bugs.launchpad.net/bugs/1762940 > > [Impact] > > amd64 based Huawei servers have problems where the display output of their iBMC > chips is broken, resulting in a "blurry" screen when viewed from their in house > remote kvm-like console. > > Example: > > https://launchpadlibrarian.net/365907668/creen_picture_for_blur.png > > The issue is caused by the hibmc_drm kernel module being loaded. The PCI ID for > the iBMC chips on amd64 hardware is the same as arm64 hardware, but the > hibmc_drm driver was developed only for use on arm64 hardware, most notably for > the Huawei D05 development board. > > The impact to Huawei is that their customers cannot use Ubuntu server install > media as the screen goes "blurry" when the d-i install media or subuqity > installer loads the hibmc_drm kernel module after language selection. > > The only workaround for their customers is to press the "E" key during the very > first installer menu and adding "modprobe.blacklist=hibmc_drm" to the kernel > command line in the grub menu. This is not good for customer experience with > their servers. > > Other problems exist for the hibmc_drm driver on amd64, such as working on > bios, but not uefi, and not being wayland compatible, making the screen blurry > whenever a desktop session is started and gdm loaded. > > Huawei have asked us to remove hibmc_drm from all architectures except arm64, > and this aligns with advice from Hisilicon. > > [Fix] > > I modified the config/annotations file to remove all architectures except arm64, > and created a patch for Kconfig to set a firm requirement on ARM64 for hibmc_drm. > > I will send the Kconfig patch upstream in the coming days for a more permanent > fix. > > [Testcase] > > Apply the patches and run: > > ubuntu-bionic/CONFIGS$ fakeroot debian/rules genconfigs > ubuntu-bionic/CONFIGS$ grep -Rin "hibmc" . > ./arm64-config.flavour.generic:5739:CONFIG_DRM_HISI_HIBMC=m > > You should see that only arm64 has the config option enabled. > > A test kernel has been built, and is available here: > https://launchpad.net/~mruffell/+archive/ubuntu/sf232667-test > > Huawei requested a test d-i install iso to test server install with, which can > be found here and uses the kernel from the ppa above: > https://people.canonical.com/~mruffell/sf232667_ubuntu_server_d-i_20190711b1.iso > > Both the test kernel and the custom d-i install iso have been tested on amd64 > Huawei server hardware successfully and video output is functional. > > [Regression Potential] > > Regressions will be limited to hardware containing the iBMC chips from Hisilicon, > which I believe are exclusive to Huawei servers. > > I have taken care to ensure that hibmc_drm is enabled for ARM64 so it should not > impact kernels built for the Huawei D05 arm64 development board, and d-i will > still load the hibmc_drm driver during startup for arm64. > > > > *** BLURB HERE *** > > Matthew Ruffell (2): > UBUNTU: [Config] Set CONFIG_DRM_HISI_HIBMC to arm64 only > UBUNTU: SAUCE: Make CONFIG_DRM_HISI_HIBMC depend on ARM64 > > debian.master/config/annotations | 2 +- > drivers/gpu/drm/hisilicon/hibmc/Kconfig | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > Applied to bionic/master-next branch, adding a note to the annotation files with the LP bug number and removing the module from the previous ABI modules list for non-arm64 architectures. Thanks, Kleber