ThinkPad T470 (20JN) - HW Feedback

I’ve been following Haiku for a while now, and I think it’s getting towards a stage where it is actually usable - a lot of that is less thanks to Haiku itself - especially since Falkon now supports blink engine (?). So I installed it onto a ThinkPad 470 (20JN) - much faster install process than Windows…

Version / Hrev: R1/Beta4 (Revision hrev56578+96)
Platform: x86_64
Processor: Intel Core i5-6200U 2.40 Ghz
Memory: 8GB (of unknown origin)
Kernel: March 2, 2024 at 7:27:21 AM
Graphics: Intel HD 520
HDD: NVMe (Dogfish 256GB - used for a Raspberry Pi with USB, but turns out I can just plug it into the WAN slot of the ThinkPad)
Sound: Working, also headphones work using 3.5mm jack

Hardware type: Laptop
Manufacturer: Lenovo
Model Series: T470 20JN (there is a split between the 20HE and JN series…)

Wifi: Intel Dual Band Wireless-AC 8260

Working
Wifi: Works out of the box. Sometimes asks for the key (even though is stored), but just clicking on the button makes it connect. Weird, but usable.
Display / Graphics: Works OOTB.
Battery: Working fine, shows charge and if loading or not

Semi-working
TrackPad / TrackPoint: Worked OOTB at first, but after update does not. TrackPad “works” in that you can move the cursor, but it’s more of a teleport of the cusor, not a smooth movement. Use old USB mouth instead, works fine.
TrackPoint refused to work at all.

Keyboard: Mostly works. Sometimes Trackpad / TrackPoint / Keyboard do not get recognized upon boot. Rebooting helped.

HaikuDepot: Works, but requires active internet connection. Otherwise segfaults. Recommend checking if it’s connected to the internet before trying to download repository data?

Not working:
Bluetooth: Gets recognized as a device, but trying to use it results in a “Unknown: Server Failed” in the Bluetooth application.
Posting from Falkon: Tried to post this post from Falkon webbrowser, but fell back to WebPositive, as the create topic button did nothing.

Listdev:

device Bridge (Host bridge) [6|0|0]
  vendor 8086: Intel Corporation
  device 1904: Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers

device Display controller (VGA compatible controller, VGA controller) [3|0|0]
  vendor 8086: Intel Corporation
  device 1916: Skylake GT2 [HD Graphics 520]

device Serial bus controller (USB controller, XHCI) [c|3|30]
  vendor 8086: Intel Corporation
  device 9d2f: Sunrise Point-LP USB 3.0 xHCI Controller

device Signal processing controller [11|80|0]
  vendor 8086: Intel Corporation
  device 9d31: Sunrise Point-LP Thermal subsystem

device Communication controller [7|80|0]
  vendor 8086: Intel Corporation
  device 9d3a: Sunrise Point-LP CSME HECI #1

device Mass storage controller (SATA controller, AHCI 1.0) [1|6|1]
  vendor 8086: Intel Corporation
  device 9d03: Sunrise Point-LP SATA Controller [AHCI mode]

device Bridge (PCI bridge, Normal decode) [6|4|0]
  vendor 8086: Intel Corporation
  device 9d10: Sunrise Point-LP PCI Express Root Port #1

device Bridge (PCI bridge, Normal decode) [6|4|0]
  vendor 8086: Intel Corporation
  device 9d16: Sunrise Point-LP PCI Express Root Port #7

device Network controller [2|80|0]
  vendor 8086: Intel Corporation
  device 24f3: Wireless 8260

device Bridge (PCI bridge, Normal decode) [6|4|0]
  vendor 8086: Intel Corporation
  device 9d18: Sunrise Point-LP PCI Express Root Port #9

device Bridge (PCI bridge, Normal decode) [6|4|0]
  vendor 8086: Intel Corporation
  device 9d1a: Sunrise Point-LP PCI Express Root Port #11

device Mass storage controller (Non-Volatile memory controller, NVM Ex [1|8|2]
  vendor 8086: Intel Corporation
  device f1a5: SSD 600P Series

device Bridge (ISA bridge) [6|1|0]
  vendor 8086: Intel Corporation
  device 9d48: Sunrise Point-LP LPC Controller

device Memory controller [5|80|0]
  vendor 8086: Intel Corporation
  device 9d21: Sunrise Point-LP PMC

device Multimedia controller (Audio device) [4|3|0]
  vendor 8086: Intel Corporation
  device 9d70: Sunrise Point-LP HD Audio

device Serial bus controller (SMBus) [c|5|0]
  vendor 8086: Intel Corporation
  device 9d23: Sunrise Point-LP SMBus

device Network controller (Ethernet controller) [2|0|0]
  vendor 8086: Intel Corporation
  device 1570: Ethernet Connection I219-V

   device Unclassified device (Non-VGA unclassified device) [0|0|0]
     vendor 0000: Unknown
     device 0000: Unknown

Experience aside from a few hickups has been mostly positive. I can browser the Web and use the HaikuDepot applications. Trackpoint worked during install, but not after Update was a bit disappointing - suspect there’s something going on in the boot process maybe? Can go on Youtube and watch videos. Can go into the interwebs in general. Only think that does not seem to be working is loading the web page of my router (Archer C6 v2 or v3 I think). But that’s more of an issue of the browsers (tried both with WebPositive and Falkon).

Feel free to ask questions related to this hardware combination. I think Haiku is slowly becoming a usable operating system and a great alternative to Windows/MacOS/BSD/Linux. Especially for home and desktop (laptop) use. Considering the kind of stuff MacOS and Windows are doing nowadays (require MS account for usage of Win11 for example) it’s good there’s alternatives in active development.

Can try one or the other thing if so required.

1 Like

Ahoy @BeThink ,

Haiku Blutooth service one and only what capable of pairing actually -but that’s all.
So this way do not hope more of it.

Yepp, all Haiku related services, pages works best in Webpositive - reliably.
I recommend to not upgrade too soon or often - even on Beta.
Haiku or apps as well -
You can get unwanted surprise and then your satisfactory quickly melt away.
Also suggest to read more forum posts and docs on the Haiku site - even you following Haiku for a while :wink:
as then you would know better HW support situation, so BT stack status as well - I suspect this “following” means some youtube videos, he ?

There is a forum post here
about
Hardware list - Complete Systems
this as all about such posts you gave here

Also @lorglas and @lelldorin

maintain a HW database on their site

https://www.besly.de

You can add their repo

https://software.besly.de/

using Terminal

For 32 Bit Haiku , type in - copy.paste -

pkgman add-repo https://software.besly.de/repo

For 64 Bit Haiku type in - copy.paste -

pkgman add-repo https://software.besly.de/repo64

You can install their Besly reporterTool from them

Now I can’t find Besly SAT - to add the exact install command, but yab is prerequisit to install it.
They could help you. If it still present.

1 Like

Ah thanks. No, following means just looking at the project and trying it out from time to time, but not investing that much time in it (it was not at a state where I would’ve considered it seriously when I first heard of it) - got it to work on another Laptop (Tuxedo Aura Gen1), although I had to manually boot from file when using that (InsydeH2O bios is a pretty nice bios that allows to do stuff like that - especially when you get into the advanced mode).
I’ve seen the forum posts about the T470 but I found all of them lacking concerning information…Furthermore, there seems to be a difference between the 20HE (more common) and the 20JN model series, the latter for example doesn’t even seem to have a fingerprint reader installed.

Bluetooth stack is kind of sad, but I can get by with 3.5mm jack.

Didn’t know about Besly.de though! Gonna check it out.

Interesting side note: After reinstalling windows on another partition (MacOS makes it too easy to “erase”(format) a drive…) and updating it completely now in Haiku the TrackPad and TrackPoint work OOTB again - might have been a driver update or something?

Edit: It’s called the “systemanalysistool” in the HaikuDepot/repos you’ve mentioned. " System Analysis Tool" on their website. Works on x64.

1 Like

I see. You are welcome !

Last year was informed about Tuxedo laptops … one of hour pop-rock-techno-electronic singer/producer showed one it’s in his vlog post - doing an unpacking video about freshly arriving stuff…
proudly sharing their custom printed button - that can be ordered frrom Tuxedo custom laptops. It was his logo - a special drawing letter ‘a’ -
If I remember well it replaced the Win logo.

https://akos.hu/assets/images/common/ai_white.svg

I had not think about him if he would use a Linux laptop, as I remembered he used once a 17" Macbook in his vlog in the 2000s that was still available - at least I thought kinda as it was a huge as he hold in his lap and showed as watched his concert material debuted as a new DVD in his traveling bus among concerts.

He did this actual unboxing video as their childs suggested him as unboxing it’s trendy actually ;-))
He is I think cca. 54-56 yo, as I am 51, so it was this way he was required to update him about youtube trends as I think he started vlogs for an advice not as due to an inner urge.
Once I followed his music closer. Now I just watch his vlogs generally - if once released some.

So Tuxedo is known for me this way, but never had any and had not informed about this brand before.

IIRC some Thinkpads need a mix Legacy/EFI setup with Legacy first. Maybe Windows made a change to the machine config and set this automatically?

So Tuxedo is known for me this way, but never had any and had not informed about this brand before.

Tuxedo is interesting, they sell rebranded/modified Clevo shells. Which sometimes works well, but sometimes is not the best (Putting a Ryzen 7 into a housing that repeats the MacBook design flaw of “blow the hot air onto the screen” is not the best idea. Thermal throttling awaits). They also allow for keymap customization - you can send them a file and they put it onto there, so e.g. a Tux instead of Windows symbol, or something completly different.
The really interesting thing is the BIOS of those machines, at least the one I have. As said, is InsydeH2O - I have never even heard of that before. It has two modes, “dumbed down for consumer” and “total control”. I don’t know how, but mine is in the “total control” config (interestingly, there are options I have to enable / disable if I want to run QubesOS on it, but if I do so, Linux won’t work anymore. Same other way around).

IIRC some Thinkpads need a mix Legacy/EFI setup with Legacy first. Maybe Windows made a change to the machine config and set this automatically?

Could be. I have a suspicion it might have something to do with “is something plugged into the USB port” - I just started it and it worked OOTB again, realizing right now that I had a cable connected charging my headphones… Yesterday I had the issue again, until I rebooted with a mouse plugged in. It’s too early to tell (and right now I only really have time to do testing during the weekends). Too many factors at play right now to narrow down the issue.

I seriously doubt the trackpad/trackpoint/keyboard are USB. They’re most likely PS/2 (or maybe I2C), and our PS/2 bus definitely has some initialization problems. Sometimes it even fails to initialize properly on some boots in a VM, on both VMware and QEMU! Quite annoying, but it happens infrequently enough that I haven’t tried to really debug it and fix the problem (I haven’t done much to the PS/2 bus before.)

Correct, they are PS/2. At least up to the T490s for sure, can’t tell much about the latest Carbon.

Does it cause this, too?

It really shouldn’t; I have no idea, off the top of my head, what could cause that. And I don’t see any obviously relevant PS/2 messages in that syslog.

I seriously doubt the trackpad/trackpoint/keyboard are USB

Yeah, I doubt that too, but there have been weirder bugs in software in the wild. Was a guess from the first observations, but I’ve tried it again now with some USB device attached to it. Might just try with a mouse attached to it, just to make sure - I don’t expect any effect from this, but it’s good to be thorough. Also tried setting it up for legacy boot - it did change things but not as much as hoped (TouchPad seemed to work better, but without buttons). Sometimes TrackPad/TrackPoint don’t show up at all in device manager.

Interestingly enough sometimes the keyboard also doesn’t work - not even sure I can turn on it’s backlight when that happens. Probably a similar issue to the outlined T490 issues?

So I had the luck that the previous boot attempt - where keyboard failed - was recoreded in “previous_syslog”. Checking for PS2 and Keyboard I get:

No working keyboard

ps2_hid: init_hardware
ps2_hid: init_driver
ps2: active multiplexing v0.1 enabled
ps2: accessing multiplexed mouse port 0 timed out, ignoring it!
ps2_hid: publish_devices
ps2_hid: uninit_driver
loaded driver /boot/system/add-ons/kernel/drivers/dev/input/ps2_hid
loaded driver /boot/system/add-ons/kernel/drivers/dev/bus/usb_raw
ps2_dev: reset failed: Operation timed out
ps2: devfs_publish_device input/mouse/ps2/1, status = 0xffffffff
ps2_dev: reset failed: Operation timed out
ps2: devfs_publish_device input/mouse/ps2/2, status = 0xffffffff
ps2_dev: reset failed: Operation timed out
ps2: devfs_publish_device input/mouse/ps2/3, status = 0xffffffff
ps2: devfs_publish_device input/keyboard/at/0, status = 0x00000000
ps2: keyboard reset failed, status 0x80000009, data 0x00
ps2: keyboard probing failed
KeyboardDevice: error when opening /dev/input/keyboard/at/0: No error
ps2: devfs_unpublish_device input/keyboard/at/0, status = 0x00000000

On the otherhand, current syslog (Keyboard working / TrackPad Semi working / Track Point not working / Clicks not working, neither on TrackPad nor buttons above):

KERN: ps2_hid: init_driver
KERN: ps2_hid: publish_devices
KERN: ps2_hid: uninit_driver
KERN: loaded driver /boot/system/add-ons/kernel/drivers/dev/input/ps2_hid
KERN: ps2: devfs_publish_device input/touchpad/ps2/synaptics_0, status = 0x00000000
KERN: ps2: devfs_publish_device input/keyboard/at/0, status = 0x00000000
KERN: ps2: keyboard found
USER 'KS': Notify of added/removed/started/stopped device
Last message repeated 1 time
KERN: ps2_dev: reset failed: I/O error
KERN: ps2: devfs_publish_device input/mouse/ps2/synaptics_passthrough, status = 0xffffffff
KERN: usb hub 2: port 3: new device connected

I’ve duplicated those files to my desktop, so if anybody is interested I can give them (don’t want to upload to a third-party site). I also noticed that for a split second when booting, when I touch the TrackPoint, the cursor moves a very small amount before freezing (TrackPoint).

From those logs, they mention some kind of reset/timeout concerning PS2, may be a point to start looking?

The difference seems to start with this:

So in one case it detected an “active multiplexing” PS/2 controller, while in the other case it didn’t.

Are you doing multiboot with other OS? Could the difference be a cold reboot versus a warm reboot from another OS which let the PS2 bus and devices in a different state?

The PS2 “bus” was initially a very simple thing, two separate serial ports, one for keyboard and one for mouse. But over the years, a variety of schemes were added, in particular to share the mouse port between an internal touchpad and an external PS2 mouse on laptops. Now the external mouse port is gone on all laptops, of course, and this should not be needed anymore (except on some Thinkpads, where the touchpad and trackpoint are used in this way, as two independant pointing devices).

Haiku has support for a variety of these schemes, but here it may simply be detecting one that isn’t there, sending commands that the PS2 controller (or one of the devices attached to it) does not understand, and leaving things in an unstable state.

Maybe some of these PS2 multiplexing schemes should be disabled by default, and enabled using a configuration file, if we can’t detect them reliably without confusing everything :frowning:

Are you doing multiboot with other OS? Could the difference be a cold reboot versus a warm reboot from another OS which let the PS2 bus and devices in a different state?

Why indeed I am. I’ve got OpenCore running on it with MacOS (Ventura) and Windows booting from that on my primary NVMe. I’ve got Haiku on my second NVMe. Need to go into BIOS Boot menu and select it, but otherwise, that works fine.

Tried a warm reboot from Windows and MacOS for prosperity and it didn’t seem to affect the results as much. Sadly, I don’t have a boot log from where everything works at the moment, but I know it is possible.

except on some Thinkpads, where the touchpad and trackpoint are used in this way, as two independant pointing devices

This could be the case here from what I’ve seen. At least Haiku sees the TrackPoint, TrackPad and the Buttons above it as three different PS/2 devices.

Good news everyone! After rebooting Haiku with the “reboot” option in Haiku, TrackPoint, TrackPad and buttons work. Of course immediatley copied those logs to desktop.

PS2 Keyboard / TrackPoint / TrackPad working

KERN: ps2_hid: init_hardware
KERN: ps2_hid: init_driver
KERN: ps2_hid: publish_devices
KERN: ps2_hid: uninit_driver
KERN: loaded driver /boot/system/add-ons/kernel/drivers/dev/input/ps2_hid
USER 'KS': Notify of added/removed/started/stopped device
KERN: ps2: devfs_publish_device input/touchpad/ps2/synaptics_0, status = 0x00000000
KERN: ps2: devfs_publish_device input/keyboard/at/0, status = 0x00000000
KERN: ps2: devfs_publish_device input/mouse/ps2/ibm_trackpoint_0, status = 0x00000000
KERN: ps2: keyboard found
USER 'KS': Notify of added/removed/started/stopped device

Comparing to the previous logs, “KERN: ps2: devfs_publish_device input/mouse/ps2/ibm_trackpoint_0, status = 0x00000000” doesn’t appear in them, so it’s never recognized as such?

Interestingly it only worked after the restart option in Haiku, not the shutdown option. Don’t know if that might have anything to do with it?

Also, in working config, no multiplex is mentioned in system logs.

Edit: After some more testing with restart options, seems random as to when it occurs.

So I just noticed something interesting. I saw in BIOS there is a setting to disable TrackPoint and TrackPad, so I did such.
Disabled TrackPad: TrackPoint didn’t work, but TrackPad did.
Disabled TrackPoint: Neither worked
Disabled Both: Neither worked, but syslog actually mentioned that there was an attempt to activate PS2 Synaptic?

Not sure what to think of this. I guess the relevant files regarding this would be somewhere around here?

As noted was multiplexing - I don’t know when or why it triggers? I did notice this going through those PS2 source files (I have not much experience with C/C++ nor with OS or driver development…)

	// Disable the keyboard port to avoid any interference with the keyboard
	ps2_command(PS2_CTRL_KEYBOARD_DISABLE, NULL, 0, NULL, 0);

This would be in line with what I am experience, that sometimes the keyboard doesn’t work at all, alongside all the other stuff not working (and multiplexing being noted in the syslog).

It would kind of help to have a graphical overview of the process in regards to that, but from the Docs I’ve seen so far, I’m not certain such a graph exists :frowning: