Posted Nov 9, 2010 19:47 UTC (Tue) by jebba (✭ supporter ✭, #4439)
[Link]
> how can you tell the difference between a binary blob that is a large data table and a blob that is code that will be run on an embedded cpu?
Personally, I can't; I defer to lxoliva on that. He has a script that he runs against the kernel that has an accept whitelist for code that looks like a non-free blob, but is ok. See:
An example would be something like this: drivers/input/keyboard/atkbd.c which has a blobby looking table, but is ok.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 2:26 UTC (Wed) by lxoliva (subscriber, #40702)
[Link]
In the general case, that's not possible. The procedure I use starts with a sniff test, looking for regularity in the sequences of numbers or trying to make sense of them from their given names, numbers and the way they're used. If I can't determine it's just data, or find strong indication that it's code, I try to get ahold of the driver maintainer or the hardware designer. Ultimately, I have to go by whatever info I get and a sense of trust for whoever provides it and, in the worst case, make a conservative assumption that it may be software (instructions to configure a general-purpose computer to behave in a certain way) or a mix of software and pure data, and go with that.
FSFLA: Linux kernel is "open core"
Posted Nov 10, 2010 2:33 UTC (Wed) by lxoliva (subscriber, #40702)
[Link]
In the general case, that's not possible. The procedure I use starts with a sniff test, looking for regularity in the sequences of numbers or trying to make sense of them from their given names, numbers and the way they're used. If I can't determine it's just data, or find strong indication that it's code, I try to get ahold of the driver maintainer or the hardware designer. Ultimately, I have to go by whatever info I get and a sense of trust for whoever provides it and, in the worst case, make a conservative assumption that it may be software (instructions to configure a general-purpose computer to behave in a certain way) or a mix of software and pure data, and go with that.