This is a documentation of my tries to get a properly working Linux desktop environment on a brand new laptop: HP Notebook 15-ba006nm (P/N: 1BV18EA). This hardware contains:
- APU: AMD A10 9600P. It has integrated GPU: Radeon R5, 3rd generation GCN
- Secondary GPU on board: AMD Radeon R7 M440 with 4 GB DDR3 dedicated VRAM
- 12 GB DDR4-1866 SDRAM
- Wireless network card with RTL8723BE chip
This is what Linux Ubuntu 16.04.3 sees – output of lspci -Q|grep ‘VGA\|Wireless\|Display’ command:
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Carrizo (rev ca) 02:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8723BE PCIe Wireless Network Adapter 05:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Topaz XT [Radeon R7 M260/M265 / M340/M360 / M440/M445] (rev ff)
With this hardware I wanted to achieve following goals:
- Linux to boot successfully, including desktop environment
- Wifi network card to work properly – this hardware causes some problems, see the ant_sel fix
- Cooling to work as quiet as possible – in case of this laptop is seems that one should use the GPU from the APU (Radeon R5) while keeping discrete GPU (Radeon R7) turned off
- Hibernation (suspend to disk) to work
Note 1: “No” in the “Wifi” column means that the Wifi adapter was working but the driver selected wrong antenna (as explained here) thus the Wifi signal reception was really poor, almost unusable.
Note 2: With 3.xx kernels one has to use radeon or fglrx graphic card driver and with 4.xx kernels one has to use amdgpu driver on this laptop. I don’t know the reason for this.
|Linux version||Does it boot?||Wifi||Graphics||Hibernation||How loud?|
|1. Linux Mint 17.3 “Rosa” – Cinnamon (64-bit)
|Yes||No||radeon – yes, no GPU selection
fglrx – only discrete GPU
|Yes||radeon – too loud
fglrx – very loud
|2. Linux Mint 18.1 “Serena” – Cinnamon (64-bit)
|Yes||Yes (ant_sel fix)||Yes||No||a bit too loud|
|3. Linux Mint 18.2 “Sonya” – Cinnamon (64-bit)
|No||not verified||not verified||not verified||not verified|
|4. OpenMadriva Lx 3.02
|No||not verified||not verified||not verified||not verified|
|5. openSUSE Leap 42.3
|Yes||not verified||Yes – but which GPU?||No||too loud|
|6. Fedora 26 MATE-Compiz Desktop, 64-bit
|Yes, with kernel param||not verified||Yes – but which GPU?||No||too loud|
|7. Ubuntu 16.04.3 LTS (Desktop, 64-bit)
|Yes, with kernel param||Yes (ant_sel fix)||Yes||No||almost ok|
|8. Ubuntu 18.04 LTS (Desktop, 64-bit)
|Yes||Yes (ant_sel fix)||Yes||No||not compared, most likely the same as above|
Linux Mint 17.3 “Rosa” – Cinnamon (64-bit) is LTS version. The default kernel is 3.13 and can be easily updated to 3.19. Definitely this kernel doesn’t have updated module for a Wifi adapter so it doesn’t support ant_sel fix. By default radeon driver is used for graphic card but it was hard to guess which GPU was used. Cooling was a little bit too load so I wanted to check if the AMD-provided driver will give me better results. After switching (easy, by “Drivers” window in “Settings”) to fglrx this could be established by using Catalyst Control Center window. Unfortunately this driver selected discrete GPU on board and it was causing definitely more loud cooling. Catalist Control Center allows to switch between GPUs but after selecting integrated GPU and restarting (needed after this change) the X-server could not start (I was too tired to investigate why). This is the only Linux distribution being able to hibernate the system and resume. The second advantage: no problems with booting. However lack of Wifi was not acceptable.
– investigate if a custom kernel module for wireless adapter for 3.xx kernel can be built and installed so ant_sel fix can be used
– investigate how to control which GPU is ued by radeon driver and if one can make sure on-board GPU is turned off
With Linux Mint 18.1 “Serena” – Cinnamon (64-bit) most things were ok. The biggest disadvantage was that hibernation was not working at all. If I recall correctly hibernation was hanging the computer with a default kernel and after upgrade of kernel to newest version of 4.4.0 line it was hanging when resuming from hibernation. Moreover I was not sure if discrete GPU (on board) was completely turned off as vgaswitcheroo presented something like “dyn-off” for its status. Cooling system seemed a little too loud for me so it pushed me to try other Linux distributions…
– investigate more how to fix the hibernation issue (I gave up…)
– study more details of vgaswitcheroo and if the laptop has muxed or muxless hybrid graphics (something for people with too much free time – not me)
Ad.3 and 4
Not booting! WTF?!? I was too disappointed to dig in. I haven’t seen official Linux distribution not booting for a really long time so gave them up quickly.
– try adding amd_iommu=off to kernel boot parameters to see if it boots
openSUSE Leap 42.3 has 2 installation variants. The first one has a size of 4.7 GB so is large and it didn’t fit on my USB stick. The second one is a network installer. It has a size around 100 MB but then… it downloads something like 3.5 GB during the installation. And all those downloaded things are not necessarily needed – annoying! Then I was hit by KDE Plasma and Yast package manager. KDE Plasma is a monster! What happened to the KDE I was using in 2001?!? And with Yast I was unable to switch to other desktop environment (maybe I got used to Synaptic too much?). If I recall correctly I checked only if hibernation works out of the box and gave up this distribution when it failed to hibernate.
Fedora 26 MATE-Compiz Desktop, 64-bit didn’t boot at the first approach. After some googling I’ve found some information about a kernel parameters to add. Unfortunately I don’t remember which one worked. Most likely this was something with acpi or something like nomodeset. Strange! After Fedora finally booted the graphics looked really poor. And hibernation was not working so I gave it up.
Ubuntu 16.04.3 LTS (Desktop, 64-bit) didn’t boot at the first time as well. This time according to error messages from booting (AMD-Vi: Completion-Wait loop timed out) I’ve found that one needs to add amd_iommu=off to kernel boot parameters. Then Ubuntu started. Of course ant_sel fix was needed to get Wifi working correctly. The graphic card driver (kernel module) used is amdgpu (as given by lspci -k command). Ubuntu shows graphics subsystem details as: Gallium 0.4 on AMD CARRIZO (DRM 3.9.0 / 4.10.0-28-generic, LLVM 4.0.0). This suggests GPU integrated with APU is used. The cooling is not so loud (comparing to other distros I’ve tested) but still it’s not silent. The worst thing is of course hibernation not working. A little bonus with Ubuntu is that the hibernation functionality is hidden from the user so you can’t hang your system by selecting “Hibernate” from a menu. Hibernation is still available for more advanced users by a command line. The additional disadvantage is Unity desktop environment (I know some people do like it) but it should be easy to replace by something else like MATE.
– check if AMDGPU-PRO Driver for Linux can be used with this Ubuntu version & this kernel. The hope is this driver will be more powerful to control this hybrid graphic system (however it may be not – as it was with fglrx and its Catalyst Control Center).
– dig more how to make hibernation working…
It looks the best option is 7 (Ubuntu 16.04.3), however option no 2 was close and now I probably would know how to fix booting problem with Linux Mint 18.2 (probably I’m Ubuntu/Mint biased…). It’s a total nonsense that hibernation is not working with 4.x kernels like it worked with 3.x kernels! But Wifi is a must-have.
The output of command sudo cat /sys/kernel/debug/vgaswitcheroo/switch under tested distros 2 and 7 (kernels 4.4 and 4.10) was:
0:IGD:+:Pwr:0000:00:01.0 1:DIS: :DynOff:0000:05:00.0
This shows that GPU integrated with APU is used what causes more silent cooling.
The HP laptop cooling is too loud most likely because of the laptop poor design, not because of Linux. However my adventure shows one can have different results with different Linux kernel/graphic drivers and it looks there is a little mess with these radeon/fglrx/amdgpu things. I’m not an expert on this so any help and advices on this appreciated!
Similar laptop and similar problem: HP Laptop AMD APU – Fail to Boot – Live linux cd
UPDATE: Battery time
According to the laptop’s specification given by HP this laptop (HP Notebook 15-ba006nm) should be able to work up to 8 hours on battery (Estimated Windows 10 battery life based on Windows 10 / MobileMark® 2014 benchmarking). Well, according to my experience (2 months) on Linux Ubuntu 16.04 with kernel 4.10, the laptop works up to only 2,5 hours on battery. How disappointing! I guess this is mainly caused by HP not providing Linux device drivers for hardware present in the laptop.
UPDATE 2: (16.06.2018)
The Ubuntu 18.04 LTS (kernel 4.15) started without any extra kernel parameters! This is the first version of kernel after 4.4 that is able to boot normally on this laptop – 1st good news! 🙂 And this is very good news as I noticed that now the Linux is using IOMMU and that IOMMU is important.
The “ant_sel fix” was needed to get Wifi working correctly. Let’s say 2nd good news.
The bad news is that hibernation doesn’t work. 😦
The output of command sudo cat /sys/kernel/debug/vgaswitcheroo/switch is the same as for kernels 4.4 and 4.10. The graphic card driver (kernel module) used is amdgpu (as given by lspci -k command). So my guess is no relevant change here compared to Ubuntu 16.04.3 LTS.
In case of loudness of laptop’s cooling subsystem – I cannot compare to earlier distros I’ve tested as it was months ago and at the time of installing Ubuntu 18.04 LTS it was June and it was quite hot June here (Warsaw, Poland). My impression is that the cooling loudness level is similar to that one experienced with Ubuntu 16.04.3 LTS.
Right now I’m recommending Ubuntu 18.04 LTS with this laptop. And here is a nice list of “Things to do After Installing Ubuntu 18.04” containing the step 11 which is “Prolong your battery and prevent overheating” (installing and starting TLP).