Haiku
August 23, 2026, 2:07pm
1
Hello everyone! As Google Summer of Code 2026 comes to a close, it’s time to summarize the work I’ve done over the summer on expanding the functionality of the Haiku Devices application.
This is a companion discussion topic for the original entry at https://www.haiku-os.org/blog/aquamatic123/2026-08-21_gsoc_2026_expanding_the_functionality_of_the_haiku_devices_application_-_final_report/
32 Likes
Big thanks on your contributions! Hope you can stay around for some time to do some follow ups on the still open issues, work well done!
5 Likes
Thank you! I will for sure! However, I am starting school tomorrow so development will obviously be slower.
5 Likes
Looks like very good and long awaited improvements!
Just the ability to disabled a packaged driver with a click is a big plus, being able to see the USB descriptors graphically also.
Congrats and thanks you for your contribution.
2 Likes
Ahoy @Aquamatic
Thank you for your improvements -
1))
Actually I saw the possibility of driver disabling, however it just showed warnings about “Disabling critical system drivers is not allowed.”
It should rather be
“Disabling critical system driver is not allowed.”
or
“Disabling critical system drivers are not allowed.”
However it is just minor syntax error.
I selected RAM disk Control Device to try out - this option.
What should I select to get button to be active ??
I thought it is safe to disable : am I wrong ?..
Or should I use a different type of view ?
I used ‘Connection’ view.
Do you know dmidecode utility ?
If you install that utility then you can get many details about the machine’s motherboard details, that not provided by the listusb or listdev commands - with its help you would have lesser unknown in categories, like ‘Computer’ itself.
a smaller part of dmidecode output
Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: Dell Inc.
Version: A13
Release Date: 01/29/2015
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 12 MB
Characteristics:
PCI is supported
PNP is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
EDD is supported
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 kB floppy services are supported (int 13h)
3.5"/2.88 MB floppy services are supported (int 13h)
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
ACPI is supported
USB legacy is supported
Smart battery is supported
BIOS boot specification is supported
Function key-initiated network boot is supported
Targeted content distribution is supported
UEFI is supported
BIOS Revision: 4.6
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: Dell Inc.
Product Name: Precision M6800
Version: 01
Serial Number: CENSORED :D
UUID: CENSORED :D
Wake-up Type: Power Switch
SKU Number: Precision M6800
Family: Not Specified
Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: Dell Inc.
Product Name: 0XWC1M
Version:
Serial Number: CENSORED :D
Asset Tag: Not Specified
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: Not Specified
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
Handle 0x0003, DMI type 3, 22 bytes
Chassis Information
Manufacturer: Dell Inc.
Type: Laptop
Lock: Not Present
Version: Not Specified
Serial Number: CENSORED :D
Asset Tag: Not Specified
Boot-up State: Safe
Power Supply State: Safe
Thermal State: Safe
Security Status: None
OEM Information: 0x00000000
Height: Unspecified
Number Of Power Cords: 1
Contained Elements: 0
SKU Number: To be filled by O.E.M.
Handle 0x0043, DMI type 4, 42 bytes
Processor Information
Socket Designation: SOCKET 0
Type: Central Processor
Family: Core i7
Manufacturer: Intel
ID: C3 06 03 00 FF FB EB BF
Signature: Type 0, Family 6, Model 60, Stepping 3
Flags:
FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
SEP (Fast system call)
MTRR (Memory type range registers)
PGE (Page global enable)
MCA (Machine check architecture)
CMOV (Conditional move instruction supported)
PAT (Page attribute table)
PSE-36 (36-bit page size extension)
CLFSH (CLFLUSH instruction supported)
DS (Debug store)
ACPI (ACPI supported)
MMX (MMX technology supported)
FXSR (FXSAVE and FXSTOR instructions supported)
SSE (Streaming SIMD extensions)
SSE2 (Streaming SIMD extensions 2)
SS (Self-snoop)
HTT (Multi-threading)
TM (Thermal monitor supported)
PBE (Pending break enabled)
Version: Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz
Voltage: 1.2 V
External Clock: 100 MHz
Max Speed: 2700 MHz
Current Speed: 2700 MHz
Status: Populated, Enabled
Upgrade: Socket rPGA988B
L1 Cache Handle: 0x0044
L2 Cache Handle: 0x0045
L3 Cache Handle: 0x0046
Serial Number: Not Specified
Asset Tag: Fill By OEM
Part Number: Fill By OEM
Core Count: 4
Core Enabled: 4
Thread Count: 8
Characteristics:
64-bit capable
Thanks you in advance for your answer in case driver disablement option.
1 Like
The disabling sentence is correct. Disabling of something is not allowed …This something can be plural or singular.
1 Like
however it just showed warnings about “Disabling critical system drivers is not allowed.”
I opened ticket 20265 for the issue of that button seemingly always being disabled.
1 Like
Thanks for your work on this!
1 Like
tqh
August 24, 2026, 3:58pm
10
Nice work!
I also really like what you wrote about "Adapting to an Open Source Community" thanks for sharing that.
I hope you had a lot of fun!
1 Like
Thanks for the review!
I do have some problems with the driver disabling feature. I made it way too strict to be able to disable a driver. I plan to update that list soon.
I did not know about dmidecode! I will have to look more into it if time permits and perhaps I could use some of its features.
I looked at the ticket and for the case of hda, at least on my end, when adding it as a device in a vm, its operates as a legacy device and unfortunately cannot really be blocked from the GUI without a big refactor.
as mentioned to KitsunePrefecture, I’ll be going over the list to make it more flexible.
I also just worked on getting driver used data a bit better. im doing a check on the children’s nodes and see if they have a driver. That reduces the amount of /busses/pci you would see and actually get the right driver used for the hardware. Hopefully my implementation is correct and gets accepted.
Thank you for the review as well!
2 Likes
Hope you had a nice GSoC experience, and thanks for your work @Aquamatic !
2 Likes
One area of improvement (for another GSOC maybe), would be the ability to recognize the function driver used (eg network driver).
For instance, I have the below realtek dongle (a quite old one).
The USB driver is the first driver used because it’s a USB dongle for this wifi adapter and I can see it in the driver used below:
However it’s using in the end a network driver as I can see below in the network;
And the corresponding driver if I’m not wrong:
It would make the distinction between a recognized USB dongle (which is linked to a network driver) versus an unrecognized one — right now both just show the USB bus driver and look the same in Devices.
1 Like