On Thu, 21 Apr 2022 11:02:10 -0500 Larry Finger wrote:
I added am update to that bug describing that the firmware in your driver is most likely embedded in the source code, and that you were actually using proprietary code.
Thank you for doing that. I will reply here to your Bugzilla comment to avoid using Bugzilla for discussions.
In the driver that comes from Realtek, either directly or indirectly, the firmware is stored in the code as a big table., thus your test was likely using such a driver, and you were in fact using a binary blob that is published under a GPL v2 license, but it is not available as source code for the imbedded CPU in the NIC.
I understand what you mean. However, this contradicts the essence of software being free. On one hand we have the FOSS license which grants the 4 freedoms. OTOH you say it is not even open source. So we have the freedom to study, modify, and redistribute code. This means we also have the freedom to reverse engineer it as it is a form of studying and modification, and we are allowed to redistribute the modified (unobfuscated) version.
To get that firmware file, I merely copied that huge table into a separate program that wrote the contents into a binary file. The WHENCE file in the linux-firmware repo is as follows: Driver: rtl8188eu - Realtek 802.11n WLAN driver for RTL8188EU
Info: Taken from Realtek version
RTL8188EUS_linux_v4.1.4_6773.20130222 File: rtlwifi/rtl8188eufw.bin
From your explanation I understand that you are using version 4.1.4 from 2013. Is that correct and (regardless of the outcome of this discussion) is it possible to upgrade to the newer one which I found? Disclaimer: I don't know who manages the Github repo I used but during my research I could not find any source code directly from Realtek. All sources seem to refer to the one I used.
Licence: Redistributable. See LICENCE.rtlwifi_firmware.txt
The most pertinent part of the LICENCE file noted above is * No reverse engineering, decompilation, or disassembly of this software is permitted.
I performed recursive grep for each of those keywords and there is no such text in the source code I used.
Yes, the driver files are FOSS, but information about the firmware is never really open source, nor would disassembly be legal.
As it seems, not for the source code I found. I understand that theoretically it is possible someone (including the Github repo's owner) to have removed/modified the license headers but since we have no proof of that (or of the opposite) it is legally correct to exercise the 4 freedoms which a license of a program found on Github grants. FWIW I also see your name in the comments. I suppose you are far more involved in that and an expert in that matter. Regarding the table you mention, I see a long series of hex codes in: rtl8188eus/hal/rtl8188e/hal8188e_s_fw.c rtl8188eus/hal/rtl8188e/hal8188e_t_fw.c rtl8188eus/rtw_security.c I don't know what role those tables play and it seems you are right that it is a form of blob. Without license restrictions though, anyone should be free to reverse engineer it (as long as one knows how). I would very much like to know what you think. Personally I would hate to know there might be a "FOSS" backdoor or malware in the wireless adapter I use.