Why linux is able to handle every pieces of harware of my old PC and Haiku is still stucked to VESA

Hello,
I would like to install Haiku OS on my (relatively) old laptop (ASUS X5DI - Dual Pentium T4400 - NVIDIA GT320M). I burned a USB key with an iso image to test Haiku (50156 nightly build gcc2_hybrid). Seems impossible to get the right screen resolution in this live test environment. I do not understand why Linux is able to handle everything and not Haiku. To start I just demand a screen resolution of 1366 x 768 ?
Is everyone today using Haiku in virtualbox instead of a real hardware ?

[quote=PulkoMandy]This MIT/GPL license mix is still unclear to many people. Here is what happens:
In the case of drivers, using a GPL driver with an MIT kernel is not a problem. However, we would have to include a big compatibility layer in Haiku to use Linux drivers. If we want our kernel itself to stay free of GPL constraints, we would have to write this wrapper without reusing Linux’s GPL code.
[/quote]

Really? Clause 2 (b) of the GPL v2 states “You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.”

There are probably different ways to interpret that, but taken at face value to me it seems to suggest that if you build your kernel with a GPL driver in it, you have to distribute the whole kernel under GPL. Did I misinterpret it or is there some way around it? Maybe it’s ok if you make GPL drivers into loadable modules (but even then it’s a somewhat gray area)?

Yes, you have to distribute the whole kernel under GPL in that case. However, this does not mean you distribute each component of the kernel under GPL. If someone gets your GPL kernel, remove all the source files that are licensed under the GPL and keep only the MIT licensed one, what they get is enough to build another kernel, which is MIT licensed.

In practise, this means we have to distribute the sources under the conditions of the GPL (at the same place where we distribute binaries, and keep them available for a very long time). This is not a big restriction for people downloading from the website (they can use git to get the sources), but is a bit more annoying when it comes to CDs sold and shipped by Haiku, inc. In order to comply with this, our alpha CDs contain the full sourcecode of everything GPLed shipped in there.

So, we don't need to stay completely away from GPLed code, but we try to make it possible to remove/replace it easily and still get a complete running system. This means if someone wants to make a non-free derivative of Haiku, they can start with that work (replacing the GPLed parts). We will accept patches that improve our --enable-gpl-addons configure switch in case we missed something there.

I run Haiku on real hardware. The problem is, the haiku is not yet stable enough and can damage the data on disks.

Linux has more programmers and users. Unfortunately, the haiku license policy prohibits the use of the good things from the Linux world. I think it is disastrous for Haiku, to be limited to the BSD/MIT licensed software.

I am running Haiku native on a Compaq NC6400 laptop. I boot directly from a 32GB USB. (Kingston). It works well. Some recent builds have taken two or three tries but screen resolution has never been an issue. My Dell Vostro 200 has never worked but then it will not boot 32 bit windows10 either. It runs 64 bit windows 10 and 64 bit Ubuntu without a hitch. Go figure?

I dont agree, i think you can Haiku use on real hardware without biggest problems, yes lack some functionality but with good constelation you can use it,

for example Radeon HD driver have very good progress in Haiku, thanks to Kalisti for his work, yes its lack 3D support but KMS i mean mode settings = good set resolution is working,

i can say for me that i test more radeon cards and i never have biggest problem Radeon 5450, Radeon 6450, Radeon 8490, AMD Kabini 5150 and more…

now at another site on intel side, there is intel hd driver but you must have luck, now i have slow Celeron G1840 haswell and intel hd works well

when you buy pc you buy it for hardware or software, its normaly that you dont buy nvidia card when you wants using haiku on pc.

only black side of haiku are wifi drivers, i mean usb wifi. i have TP Link 781ND and its not works and is PCI EXpress not usb but maybe in future.

i think Haiku devs can be write priorities where they wants to go, like we prefer have support for Intel and Radeon and prefer it.

for me haiku is better and better i like package system, and all features what come to haiku, only few cosmetic thinks what i need is better deskbar ui like aplication icons in deskbar unde a leaf menu icon, bookmars to tracker and maybe somethink like have K Desktop in linux for app for download wallpapers :smiley:

What I mean is that I cannot understand why any linux distro is able to drive my hardware and not Haiku. I would understand that either linux and Haiku couldn’t. But if linux is capable, using only opensource drivers, why isn’t it the case for Haiku ? Why is the opensource tech of linux - I focus the discussion on drivers - not portable?
What I want is 3 partitions, one Windows, one Linux and one runnning Haiku. I’m ready to help developping (I’ve done this porting the gnuplot tool on BeOS and Haiku (in VM) several time), but my level isn’t high enough for driver development.

So no tricks to get just 1366x768 resolution on real hardware OR if it can’t be anything else on virtualbox ?

[quote=mtit]What I mean is that I cannot understand why any linux distro is able to drive my hardware and not Haiku. I would understand that either linux and Haiku couldn’t. But if linux is capable, using only opensource drivers, why isn’t it the case for Haiku ? Why is the opensource tech of linux - I focus the discussion on drivers - not portable?
What I want is 3 partitions, one Windows, one Linux and one runnning Haiku. I’m ready to help developping (I’ve done this porting the gnuplot tool on BeOS and Haiku (in VM) several time), but my level isn’t high enough for driver development.

So no tricks to get just 1366x768 resolution on real hardware OR if it can’t be anything else on virtualbox ?[/quote]

The problem is that the drivers are not portable. The API is different. When it comes to graphics, it’s significantly different. So you need someone with the time to write an equivalent driver on Haiku, it doesn’t just come for free. And Linux has far more developers than haiku.

Is it possible to automate, simplify porting drivers from Linux?

Well, maybe. Haiku network drivers are mostly FreeBSD drivers that are available through a compatibility layer. I presume there is not a huge amount of difference between the FreeBSD and haiku network driver API. But for graphics the difference is larger, and there are several parts to the driver. So it varies from one subsystem to another.

But anyway there’s also a licensing issue with Linux drivers. Linux drivers tend to be GPL (certainly the mainline ones), while haiku has an MIT/BSD like license. So IIRC you can’t include them in haiku directly (well, maybe with some tricks like a shim or something, but not easily). It would be better to use drivers from e.g. freebsd where there aren’t such problems.

Well, maybe. Haiku network drivers are mostly FreeBSD drivers that are available through a compatibility layer. I presume there is not a huge amount of difference between the FreeBSD and haiku network driver API. But for graphics the difference is larger, and there are several parts to the driver. So it varies from one subsystem to another.

But anyway there’s also a licensing issue with Linux drivers. Linux drivers tend to be GPL (certainly the mainline ones), while haiku has an MIT/BSD like license. So IIRC you can’t include them in haiku directly (well, maybe with some tricks like a shim or something, but not easily). It would be better to use drivers from e.g. freebsd where there aren’t such problems.[/quote]

Strange… Why is it so feared GPL? It can never be integrated into haiku?
It is unreasonable.

[quote=damoklas]

Strange… Why is it so feared GPL? It can never be integrated into haiku?
It is unreasonable.[/quote]

It isn’t feared. The problem is that the haiku license allows people to take the source code and do whatever they want with it, even put it in a closed source piece of software and not distribute the source code, or take the entire operating system and sell it, without giving anyone the source code. However, software licensed under the GPL does not allow this: code released under the GPL cannot be added to any code whose license allows distribution without releasing the source. So in this case, it cannot be added to haiku.

There can be some ways around it, the easiest is for someone else to distribute any GPL drivers (i.e. not the haiku project itself). Then there is no offense until someone actually installs the driver and the responsibility is theirs. Or certainly the haiku project itself can’t get in trouble. But really the best thing to do is not to use Linux code. It’s ok to look at the Linux drivers to discover how a device operates, but then the driver should be written without reference to the original code.

[quote=Munchausen]
But anyway there’s also a licensing issue with Linux drivers. Linux drivers tend to be GPL (certainly the mainline ones), while haiku has an MIT/BSD like license. So IIRC you can’t include them in haiku directly (well, maybe with some tricks like a shim or something, but not easily). It would be better to use drivers from e.g. freebsd where there aren’t such problems.[/quote]

Haiku’s source code actually includes numerous GPL’d elements imported from elsewhere. As a result although it’s common to say that “Haiku” uses the MIT license it is not legally permissible to distribute Haiku as a whole without obeying the GPL terms.

And although ordinary users like yourselves voted very strongly that mode-setting graphics drivers were essential for the three main chipset vendors (Intel, AMD, Nvidia) the developers felt otherwise and so it’s not on the required list for Haiku R1. It’s not hard to argue that after so many years of delays adding yet more requirements is the reverse of what’s needed to get something out the door before 2020.

[quote=NoHaikuForMe]
Haiku’s source code actually includes numerous GPL’d elements imported from elsewhere. As a result although it’s common to say that “Haiku” uses the MIT license it is not legally permissible to distribute Haiku as a whole without obeying the GPL terms.[/quote]

Didn’t realise that.

[quote=NoHaikuForMe]
And although ordinary users like yourselves voted very strongly that mode-setting graphics drivers were essential for the three main chipset vendors (Intel, AMD, Nvidia) the developers felt otherwise and so it’s not on the required list for Haiku R1. It’s not hard to argue that after so many years of delays adding yet more requirements is the reverse of what’s needed to get something out the door before 2020.[/quote]

They do have them for Intel/AMD, but without multi-monitor support (and there are issues with the intel driver).

linux was used a lot in vfx work and renderfarms and still benefits from having had all that industry backing it and demanding support.

This MIT/GPL license mix is still unclear to many people. Here is what happens:

For the code we are writing in Haiku, we use the MIT license. We are trying hard to not depend on GPL libraries, however, in some cases we do use GPL code (including very important parts such as the bash interpreter, the NTFS filesystem, etc).

We make it possible to disable these GPL licensed parts (with configure script switches) so it is possible to build a version of Haiku which does not have the GPL constraints.

The consequences of using GPL code aren't this bad, it is still possible to extract only the MIT licensed code and use just that under the MIT license, but you would have a hard time building a complete OS with just the MIT parts (you will at least need to replace the C library (LGPL) and bash (GPL)).

In the case of drivers, using a GPL driver with an MIT kernel is not a problem. However, we would have to include a big compatibility layer in Haiku to use Linux drivers. If we want our kernel itself to stay free of GPL constraints, we would have to write this wrapper without reusing Linux's GPL code.

Another, maybe more important problem we are facing is that Linux does not have a stable interface with its drivers, particularly in the graphics card space. It is a great playground for graphic card driver developers to experiment a lot of things (KMS, DRI/DRM and Gallium, various memory allocators such as GEM, etc). This means the wrapper would have to be kept up to date with all these features, which is in itself a lot of work, and continued work over the years.

So, is it possible? Maybe, but none of the current Haiku developers are interested. In my case, it was much less effort to just stick with Intel devices and make some patches to our Intel driver to get my hardware working, because Intel publishes the full specs for their hardware. In kallisti5's case, he found that AMD engineers would be helpful and supportive of his Haiku efforts, and that the AtomBIOS system used in these cards makes it easier to support a broad range of cards, because as soon as you get the AtomBIOS virtual machine running, the card can essentially configure itself.

In the case of nVidia, as far as I know we don't have chipset specs nor an open support line at nVidia. So we would need to reverse engineer how the devices work from the Linux drivers. Probably a lot more work required there, but, patches welcome!

Then Mesa Gallium have a MIT license?

Yes:

The kernel and the kernel driver is different programs, in other words it is not the same program, it means that they can be equipped with different licenses.
I personally would like to see more good software for Haiku, and license here is secondary thing.

That’s not true at all.