Slax author's Blog (RSS)
24
October2012
Kernel firmware
Thanks to several comments on this blog I finally discovered the reason why Slackware ships a distinct package kernel-firmware instead of using the firmware from vanila kernel. Basically it is because the vanila kernel has only very small set of drivers, about 2MB of data, while Slackware uses this git tree as a source, which provides about 40MB of additional firmwares from different sources. Compressed Slax bundle with all the firmware drivers is 20MB, that's huge.
I'm now facing a decision. Should I include this in Slax? It will surely make a lot of users more happy since their devices will start working out of the box. Is Slax intended for such uses? Yes it is, it should run on as much hardware as possible. But still it's so huge...
If there could be at least some description what firmware is for what device, that could help us delete firmwares which are very rarely needed, for example if some fw is only used on some special router boxes, then most likely no Slax user will need those at all... and so on. But I didn't find any such description of the files anywhere.
For now, the decision is not made.

User comments



One of the main problems of slax was that it did not function right of the box. Many users would ask to provide some solution for their wifi cards and graphic cards. In addition, having a wifi program that would connect the os out of the box was also an issue. As there is an effort for linux to be very close to the hardware of today, it would be a bad idea not to provide compatibility. I favor ralcover position.

I'm not sure how Slax 7 will eventually be packaged but I would guess there will be a standard build with base, X, kde, and firefox modules, and probably a stripped version that includes just base+X and then you add whatever you want from official modules (desktop, browser, dev. module, etc.). I would guess that this firmware could be an official module but not necessarily part of the standard distribution. Maybe if you could determine of that 20 MB, what is likely to be needed (how?), you could include say 5 MB in the standard build and the other 15 MB in a separate module.

I guess I found it
http://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=blob;f=WHENCE;h=6bc7417ccad750b9bedad036359e9a16bb26a605;hb=HEAD

+1 @parrothead "Integration" does not work - and will do so increasingly less. Here is why;
"phoronix.com/scan.php?page=news_item&px=MTIwNDI"
Main-line (kernel) devs. dont like the desktop and care even less about it.
Include _as_little_as_possible_ and let the rest be handled by separate modules. Isnt that what modules are for?!

I guess most people will use Slax from a flash drive, not the CD. In this case, the firmwares should be put in a different module. Anyway, if the own kernel does not provide them, why should the base do?

I think if you add any more firmware items,
1. wifi support related would be near the top priority.
2. good video support
3. good usb, sata drive support
On a related point, I've read only a few short headlines on this UEFI issue, but that would prevent Linux (Slax) from being booted on newer computers. (Windows 8). Would you need to make provision for that now ??? To ensure Slax can boot on newer machines? (Yes I know you want older machines to run, Bravo, but soon, new machines are old too.)
Heck, I've used Slax many times to help rescue files from people's new computer that's crashed windows. I'd like to continue helping people. ( I don't do it for a living ). I'd like to use the new Slax if I could...
(I still use 6.1.2 lots)
Bye for now


... not meaning to hog the thread but this is important;
If you trim the base for absolute functionality then "the concept of Slax" could be something to build on, to be integrated on different hw and platforms (much like Apple/Android)
On the other hand if you set out to incorporate every imaginable fw/driver into it from the get go (the MS-way) then Slax will end up being "just a bag of drivers", which does nothing and is impossible to fix or to extend/develop. Much like Windows Win7, 8, 9, 10,...
... and this is why the mainline includes such a limited set of fw/drivers. Those guys know better.

you could give it as optional module at the build time people can get it, if they need it.

Maybe a big percentage of the drivers are for printers? In which case you could package these into a separate optional module, and include everything else in the standard build.

about uefi: people who use slax know how to configure a bios to allow non authorized boot

The printer issue should be addressed, but has lower priority compared to the display and wifi issues.
The resort to generic printer solutions works well with CUPS with recent printers. Printer issues could be settled by providing a separate additional universal module (based on gutenprint, or alternatively hplip, for examples) or thru howtos for specific printers.

I agree with @francois.e. I think we need good network connectivity (as most of us use the computer to browse the internet), good video & audio and usb support. All the other things could be in a separate module. For example I use my printer twice in a month, I wouldn't mind to download an extra module and load it when I need the printer.

The way my system works is there is a module for kernel,core,xorg and lxde. in the modules I have google chrome , in optional I have my printer module with cups,gutenprint,foomatic and the Brother Laser Driver, My arduino development folder,and whatever I think I will need I just mount them at will and unmount them when finished.
I also have a module using curlftps to mount my ftp to the file system for persistance (my own cloud storage).

There is another git tree with firmware on kernel.org, it's called linux/kernel/git/firmware/linux-firmware.git and looks exactly the same as the slackware source. Both do not contain any information about devices to work with, except of WHENCE (in the root folder).
I think it's worth trying to fit the firmware too. Something can be always cut from other packages; unneeded firmware can be deleted with the help of WHENCE file, too.
Beta-testing stage should reveal what modules are really needed.

I was some disappointed when I tried to run slax 6 on my new vaio. It did not detect wifi card, sound card, even harddisks. Was almost useless. (Altought it did well on VMWare Player 5)
In my case, I would like to have available for testing both options (the compact and the full version of slax). I would download both and try them. Then I could notify you the results with my hardware. Maybe some other friends could do the same and that way we could have more information on what is needed.

@gxvaxcbmxcavb:
At this time, Tomas needs to provide four files because of the ISO and the tar, the 32 bits and 64 bits architecture. If your idea was implemented, he would need to provide eight files!

recommend you do 2 versions, simply:
1 - light version with a few MB
2 - fat version with utilities and all the firmware kernel (kernel with full hardware support)
So everyone can choose which serves to his case, as with Linux Mint with DM. Simple!


"2 - fat version with utilities and all the firmware kernel (kernel with full hardware support)"
Seriously??...
Just adding in, as a trial, "all" (or most) of the so-called "utilities & and fw/drivers." - Such as nvidia, ati, broadcom, optimus fixes, power management & acpi handlers and such and testing it on different laptops - Dell, Asus, Sony, HP, etc.
When its all "working" Slax7 checks in at a whopping _431_MB_ compressed... WITHOUT KDE!!! (Yeah, lets have Slax7 come on a DVD right out of the gate.)
You were saying??...

and BTW, hibernation alone needs an extra 23MB (compressed) unless, of course, you dont care if you you have your data storage and screen back after reopening your laptop lid.

Ohh, and all of the above without "printer drivers".
But hey, lets add printer drivers as well as Im sure Slax will boot just fine off of a blue-ray disk :-)

not being a movie buff at all but this whole issue reminds one of the movie "Days of Thunder"
... where the rookie driver keeps hitting a bunch of cars during the first half of the race;
When he goes in for a pit-stop, his veteran crew-chief walks up to him and says: "Now when you go back out there, the first thing I want you to do is to go and hit the pace-car."
To which the rookie driver: "Why?"
Crew-chief: "Because you already hit everything else out there and I want you to have a perfect run."
So yeah, why not... lets throw in some printer drivers, too.

I will use iwlwi and few other WIFI firmwares since it seems people are mostly needing those. I'll skip other firmwares and everybody can always make a module with all the firmwares... This way I'll add probably something like 9MB of fw drivers to Slax, it's still a lot but far better than 22 :)
Primary goal is to make Slax functional for as many people as possible while keeping it small ...


Thanks Tomas. :D
@pizarr0: there was no need for verbal inflation. Tomas as Solomon will settle the difference between the expressed needs. ;)

without it no intel wireless firmware.
thats got to limit the slax userbase a whole lot

HDT[HardwareDetectTool] before install helps choose drivers. Priorities like 0.core (vm(s)?)
1.bus+storage - pci+pcie+usb+sata+ide/filesystems 2.networking - wired or wireless, mini-browser(Dillo?) 3.video - vesa/dvi/hdmi/mini_X
4.wm/de
5.suites+apps make sense to me.
Some firmwares aren't Freed; should they be add-ons?
TV tuner firmware should be an add-on.
Perhaps less-common hardware's firmware should be available by re-compiling kernel/core?

@pizzar0
Obviously, for a fat version did not mean to do an exaggerated version
I meant:
lightweight: only what you need (as it always has been)
fat: be a whisker version complete with all the things most used
Then again, you provide two versions, each player chooses the right one for your case. I see no problems honestly in this choice.



Yes you should, also give user a chance of choosing their Desktop, Browser and anything other than the basic. That could be done at the start you want kde,lxde,xfce firefox or midori then choose those modules and run. also a Network manages is imperative to run out of the box.