====== HP ProBook 645 G1 ====== ===== Hardware Overview ===== * Release date: September 2013 * CPU: AMD A8-5550M Richland APU (2100 MHz; up to 3100 MHz in turbo mode), 4 cores, 32 nm, socket FS1 (FS1r2) * Graphics: Radeon HD 8550G (mobile version of Aruba, Northern Islands) * Screen: 14.0" HD8 1366×768 AG WLED SVA eDP FLT anti-glare (matte) display panel * Memory size: DDR3L SDRAM, 1600 MHz, two slots supporting dual-channel memory in 2/4/8 GB SODIMMs, up to 16 GB total * Southbridge: AMD A76M (Bolton) Fusion Controller Hub (FCH) * Ethernet: %%RealTek%% 8168/8111 B/C/CP/D/DP/E/F/G PCIe 1Gb, works with ''%%re(4)%%'' ✔ * Wi-Fi: Broadcom BCM43228HMB 802.11a/b/g/n 2×2 (<14e4:4359>, not recognized by GENERIC kernel) * Bluetooth 4.0 (BCM20702A0, ''%%ubt0%%'' device <0a5c:21f1>), seems to work ✔ * Storage: fixed 9.5 mm SATA HDD and an optical drive %%<%%hp DVD A DU8A5SH NH62> * Media (SD) card reader: Realtek RTS5227 PCIe <10ec:5227> (not supported yet) :!: * EMV Smartcard reader: Alcor Micro Corp. AU9560 <058f:9540> (does not seem to work) ✘ * Fingerprint sensor: Validity Sensors, Inc. VFS495 Fingerprint Reader <138a:003f> (untested) :?: * Camera: HP HD Webcam (%%SunplusIT%%) <05c8:0369> (works fine) ✔ ===== Notes ===== Professional-oriented, relatively inexpensive (prices start at $780) AMD APU based laptop with some nice features: VESA-standard DP port (no proprietary HDMI), legacy VGA port, four USB 3.0 ports, no discrete video card, socketed APU and RAM, 1G/s Ethernet, [[/WiFi|WiFi]]/Bluetooth, SD card reader, easy access to internals for maintainability, upgrade, or repair. Has some extra features like EMV smartcard reader, fingerprint sensor, and TPM support. ==== Boot-up and bare console behavior ==== Boots 12.0-CURRENT-[[http://svnweb.freebsd.org/base?view=revision&revision=304729|r304729]] in UEFI mode, not without some issues though (described in [[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=202309|PR 202309]]). After repeated failed attempts to get native 1366×768 resolution to work, I had to fall back to 1024×768 by putting the following line into ''%%/boot/loader.rc.local%%'' file: gop set 2 While in ''%%efifb(4)%%'' mode, laptop suspends, but resumes with black screen (keyboard and beeper work). Loading ''%%acpi_video(4)%%'' emits the following kernel messages: acpi_video0: on vgapci0 acpi_video0: unknown notify event 0xd0 but does not fix blank-screen-on-resume issue. Doing ''%%sysctl hw.acpi.reset_video=1%%'' apparently makes things even worse: laptop either hangs on resume (no keyboard or beeper reaction) or simply reboots. Loading ''%%radeonkms(4)%%'' emits a bunch of info messages and two errors: error: [drm:pidXXX:r600_ring_test] *ERROR* radeon: ring 0 test failed (scratch(0x8504)=0xCAFEDEAD) drmn0: error: disabling GPU acceleration ... error: [drm:pidXXX:r600_acpi_init] *ERROR* Cannot find a backlight controller Quite surprisingly, after loading KMS driver (VT: replacing driver "efifb" with new "fb"), laptop suspends and resumes seemingly OK (and does it pretty fast). Loading ''%%moused(8)%%'' enables the console mouse, but pointer is not visible (yet copy-paste works) with any video driver if you forget to do ''%%vidcontrol -m on%%''. :) However, resume sequence emits some more warnings: acpi0: cleared fixed power button status ACPI Error: No handler or method for GPE 16, disabling event (20160527/evgpe-834) drmn0: error: No VRAM object for PCIE GART. error: [drm:pidXXX:cayman_resume] *ERROR* cayman startup failed on resume Also, for some reason currently it seems not possible to run %%OpenCL%% programs while in X11 (reported as [[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214204|PR 214204]]). ==== Keyboard ==== Generally speaking, keyboard layout leaves favorable impression: Home, End, %%PgUp%%, %%PgDn%%, Ins, Del, and even Scroll Lock are accessible right away without any helper key. To get more use out of **Fn** key modifier, you'd have to run ''%%xev(1)%%'' to gather those keycodes and possibly remap a few of them via ''%%xmodmap(1)%%''. Note that there are some duplicates reported which makes things a bit inconsistent. E.g., Fn-Esc (unmarked) yields keycode 252 which is the same as Fn-F8 (marked as "microphone mute"). Fn-F3 (marked as "crescent") shares keycode 146 with Fn-F9 ("lower brightness"). Fn-Pause (marked as "break") yields keycode 37 which is shared with left Ctrl (keysym Control_L). Fn-F6/F7 report keycodes 174/176 respectively, and are correctly mapped to XF86AudioLowerVolume/XF86AudioRaiseVolume keysyms by default; ditto for Fn-Insert (keysym Print). Fn-Delete (marked as "sys rq") yields keycode 92 (unmapped). That said, minimal ''%%~/.Xmodmap%%'' might contain the following entries: keycode 146 = XF86Sleep ! keycode 146 = XF86MonBrightnessDown keycode 151 = XF86MonBrightnessUp keycode 238 = XF86Display keycode 252 = XF86AudioMicMute [[http://www.thinkwiki.org/wiki/How_to_get_special_keys_to_work|ThinkWiki]] (just as example; there are other good resources) contains some nice recipes how to tame certain bogosities of Fn-affected keys on a laptop. ==== Media (SD) card reader ==== In %%OpenBSD%% 5.3 and %%NetBSD%% 7.0, it should be supported out of the box with the ''%%rtsx(4)%%'' driver, which had not been ported to %%FreeBSD%% yet (see [[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204521|PR 204521]]). Inserting (or removing, if it was inserted prior to booting) an SD card triggers nasty interrupt storm on **irq17** and repeated kernel messages: interrupt storm detected on "irq17:"; throttling interrupt source According to ''%%vmstat -i%%'', irq17 is assigned to ''%%ehci(4)%%''. Needless to say, SD card is unusable; messages are unstoppable (I've subsequently tried to cherry-pick revisions r308187, r311660, r311693, and r311727 which looked related to card insert/remove logic, made no difference). :( ==== EMV Smartcard reader ==== Should be apparently supported and work with ''%%security/opensc%%'' via standard PC/SC backend (''%%devel/pcsc-lite%%''), but driver initialization fails for some reason: 00000956 ccid_usb.c:612:OpenUSBByName() Found Vendor/Product: 058F/9540 (Alcor Micro AU9560) 00000023 ccid_usb.c:614:OpenUSBByName() Using USB bus/device: 2/3 04977796 ccid_usb.c:1190:ControlUSB() control failed (2/3): -4 LIBUSB_ERROR_NO_DEVICE 00000026 ccid_usb.c:1121:get_data_rates() IFD does not support GET_DATA_RATES request: -4 10041468 ccid_usb.c:783:WriteUSB() write failed (2/3): -7 LIBUSB_ERROR_TIMEOUT 04891068 ccid_usb.c:783:WriteUSB() write failed (2/3): -7 LIBUSB_ERROR_TIMEOUT 04938927 ccid_usb.c:783:WriteUSB() write failed (2/3): -7 LIBUSB_ERROR_TIMEOUT 00000027 ifdhandler.c:188:CreateChannelByNameOrChannel() failed 00006069 ccid_usb.c:189:close_libusb_if_needed() libusb_exit 00000077 readerfactory.c:1107:RFInitializeReader() Open Port 0x200000 Failed (usb:058f/9540:libusb-1.0:2:3:0) 00000010 readerfactory.c:372:RFAddReader() Alcor Micro AU9560 init failed. 00000008 readerfactory.c:605:RFRemoveReader() UnrefReader() count was: 1 00000007 readerfactory.c:1127:RFUnInitializeReader() Attempting shutdown of Alcor Micro AU9560 00 00. 00000007 readerfactory.c:988:RFUnloadReader() Unloading reader driver. ==== Fingerprint sensor ==== Stock ''%%security/libfprint%%'' and its consumers do not support sensors VFS471, VFS491, and **VFS495** (our case). It is possible to get it to work [[https://balintbanyasz.wordpress.com/2015/03/27/get-validity-vfs-495-fingerprint-reader-working-in-ubuntu-14-04/|under GNU/Linux]], by using a wrapper that talks to Validity Sensors' proprietary components (service and library), but upstream is [[https://bugs.freedesktop.org/show_bug.cgi?id=97346|not interested]] in this approach and wants fully open source driver to be developed by someone™. Theoretically it should be possible to get it working under %%FreeBSD%%, but I haven't tried it. ==== Integrated webcam ==== Works fine with ''%%multimedia/webcamd%%'', simply by following [[http://www.rockafunk.org/InstallWebcamd.html|this tutorial]]. Tested with ''%%multimedia/pwcview%%'' only because I have no need or interest in this piece of [[http://www.howtogeek.com/210921/how-to-disable-your-webcam-and-why-you-should/|potentially dangerous]] hardware. ==== Sound ==== In short, it does not work, actually it does, that is, playback. Speakers are properly muted on earphones insertion. However, to get recording working, I had to issue ''%%sysctl hw.snd.default_unit=1%%'' command, which in turn breaks playback. Very similar problem observed on HP %%EliteBook%% Folio was discussed [[https://forums.freebsd.org/threads/51480|here]], including a working solution, but I didn't try to apply it myself yet. Beeper also works fine (and correctly routed to the earphones when they're plugged in). ==== CPU frequency scaling ==== Prior to [[http://svnweb.freebsd.org/base?view=revision&revision=308005|r308005]], this APU was not supported by ''%%cpufreq(4)%%''; if you see the following lines in the log (dmesg), update your kernel sources and rebuild the ''%%cpufreq(4)%%'' module (since it is included in GENERIC by default, unless your removed it or use custom config file, you'd probably have to rebuild entire kernel): hwpstate0: going to fetch info from acpi_perf hwpstate0: msr and acpi _PSS count mismatch. hwpstate0: get_info_from_msr: AMD family 21 CPU's are not implemented yet. sorry. ==== Temperatures ==== APU is supported by ''%%amdtemp(4)%%''. ACPI reports five thermal zones; ''%%hw.acpi.thermal.tz0.temperature%%'' corresponds to APU (typically one degree lower than ''%%dev.amdtemp.0.core0.sensor0%%''), while ''%%hw.acpi.thermal.tz4.temperature%%'' stays constant around 34°C. Under sustained load, APU temperatures tend to go above 72°C; limiting maximum frequency to 1900 MHz (''%%powerd -M 1900%%'') allows to cap maximum temperatures around 55°C. APU undervolting is recommended to reduce power consumption (and thus heat dissipation) and increase battery life. It is possible to adjust (reprogram) P-states on this APU with **%%AmdMsrTweaker%%** program (available as ''%%sysutils/amdmsrtweaker%%'' port). ==== Battery life ==== There are several battery versions available for this model, per HP data sheet: from 3-cell 33 W⋅h up to 9-cell 100 W⋅h Li-ion; mine came with 6-cell 55 W⋅h one. According to specifications, new battery should provide up to 9 hours of battery life. My numbers were nowhere near: pre-installed Windows 7 reported ≈3:30 of remaining time in idle state, similar to Ubuntu 15.10. Untuned %%FreeBSD%% reported ≈2:20 when idle; under heavy load (''%%make -j4 buildworld%%'') estimated remaining time per ''%%acpiconf -i0%%'' was ≈1:20. Running ''%%powerd(8)%%'' did not have noticeable impact on autonomous life time, possibly because only four P-states are defined per ACPI, spanning 1900-3100 MHz, and/or because AMD family 15h is not being fully supported by ''%%cpufreq(4)%%'' driver yet. ---- {{tag>Laptop Mobile}}