Live data from Hacker News

Remembering Larry Finger, who made Linux wireless work

arstechnica.com

81–90 of 92 posts

Re: Remembering Larry Finger, who made Linux wireless work

#81
post #48
post #29

Earlier quoted context omitted.

> Even just keeping the driver compilable with each kernel release often took some non-trivial refactoring, I realise that the kernel contributors themselves are mostly volunteers and as such can just do what they want, and writers of non-upstreamed drivers will need to get used to chasing trunk, but to me this sort of thing seems like a waste of human talent. once something works, it should never not work again. it…

The Linux kernel has an incredibly strong userspace API stability guarantee. I think in practice this guarantee is unmatched in modern computing, and it's what allows things like containers to deliver such incredible long term value. Software is defined by its interfaces, and unlike userspace APIs, this guarantee does not apply to internal kernel APIs. The ability to update the latter is what enables the former. Inab…

> Linux kernel has an incredibly strong userspace API stability guarantee

These guarantees are not that strong, unfortunately. For example, API between kernel-mode and user-mode halves of the GPU driver is unstable. To have 3D accelerated graphics on RK3288 you gonna need either libmali-midgard-t76x-r14p0-r0p0-gbm.so or libmali-midgard-t76x-r14p0-r1p0-gbm.so userspace library, depending on a minor hardware revision of that RK3288.

Re: Remembering Larry Finger, who made Linux wireless work

#83
post #47

Earlier quoted context omitted.

Just accept the fact that software does age with time. If it didn't change a literal bit, the real world in runs for and the software ecosystem it runs on did. Any software older than 10 years should be rewritten from absolute scratch, not be kept on life support at ever increasing expense.

I would encourage you to read this if you haven’t: https://www.joelonsoftware.com/2000/04/06/things-you-should-... There are exceptions to every rule, re-writing old software because it’s old needs a rare exception indeed.

I know those: Rewrites are bad, it's harder to read the code than write, a rewrite failing Netscape and many others, whatever. I aim to share a view I know is radical and controversial, that unequivocally all software needs a rewrite a decade, provided there is finances to do it.

Re: Remembering Larry Finger, who made Linux wireless work

#84
post #5

Arstechnica has a solid write up. He did a lot of work making linux wifi and driver ecosystem significantly better. https://arstechnica.com/gadgets/2024/06/larry-finger-linux-w... I remember cursing ndis wrappers and Broadcom wifi ecosystem a long time ago, Larry helped fixed that, and mentored many others along the way. quote from the arstechnica article "In a 2023 Quora response to someone asking if someone without…

Kudos to Ars Technica for this piece.

Re: Remembering Larry Finger, who made Linux wireless work

#85
post #78

> Broadcom provided no code for its gear > so Finger helped reverse-engineer the necessary specs by manually dumping and reading hardware registers I really wanted to leave this quote here for all to see. The badassery of this act should not be underestimated. I've done a little bit of work along those lines. Reverse engineering my laptop's features, writing my own free software to drive them from inside Linux, email…

You might enjoy this series of articles about writing a Wi-Fi driver using reverse engineering techniques: https://zeus.ugent.be/blog/23-24/open-source-esp32-wifi-mac/

Yes I really enjoyed reading that article, thank you so much.

I'm really looking forward to seeing a brave soul show up to try and reverse engineer those 50 thousand hardware initialization memory accesses. That sort of thing is just incredibly difficult. I'd really enjoy reading about that too.

In my case I intercepted USB communications with wireshark and tried to make sense of the packets. I'd use the proprietary manufacturer app, capture what got sent over USB and correlate the packets to hardware behavior. Mapped out all the functions that way. There were hundreds of them but mercifully most of those were the same command but with different parameters. The result was this totally magical software which sends buffers containing seemingly random numbers to the hardware and somehow that makes things happen.

  /* Clevo Control Center
   * Effects
   * Wireshark Leftover Capture Data
   *
   *  0 Wave     cc00040000007f
   *  1 Breathe  cc0a000000007f
   *  2 Scan     cc000a0000007f
   *  3 Blink    cc0b000000007f
   *  4 Random   cc000900000000
   *  5 Ripple   cc070000000000
   *  6 Snake    cc000b00000053
   *
   * There seems to be no pattern to it. Does the value of the last byte matter?
   * My keyboard apparently doesn't support the ripple effect,
   * even though it is present in the Clevo Control Center interface.
   */
Mapping out 50 thousand memory accesses though? Whoever achieves that has my respect and my attention.

Re: Remembering Larry Finger, who made Linux wireless work

#87
post #47

Earlier quoted context omitted.

I would encourage you to read this if you haven’t: https://www.joelonsoftware.com/2000/04/06/things-you-should-... There are exceptions to every rule, re-writing old software because it’s old needs a rare exception indeed.

I know those: Rewrites are bad, it's harder to read the code than write, a rewrite failing Netscape and many others, whatever. I aim to share a view I know is radical and controversial, that unequivocally all software needs a rewrite a decade, provided there is finances to do it.

I disagree. I think rewrites are sometimes the right thing, but rarely.

The Linux kernel is a good example. Should we rewrite it? No of course not. So was your point about code that hasn’t been maintained in a decade? Sure, maybe then. But I can’t square “code that hasn’t been touched in a decade” with “still in active use today”

Re: Remembering Larry Finger, who made Linux wireless work

#88
post #87

Earlier quoted context omitted.

I know those: Rewrites are bad, it's harder to read the code than write, a rewrite failing Netscape and many others, whatever. I aim to share a view I know is radical and controversial, that unequivocally all software needs a rewrite a decade, provided there is finances to do it.

I disagree. I think rewrites are sometimes the right thing, but rarely. The Linux kernel is a good example. Should we rewrite it? No of course not. So was your point about code that hasn’t been maintained in a decade? Sure, maybe then. But I can’t square “code that hasn’t been touched in a decade” with “still in active use today”

The Linux kernel is the perfect example for my case. We should absolutely create a new OS to replace Linux. Just an example, and not only my opinion, rather a widespread one: There is no need for multiple mechanisms of interprocess communication, they only add to the complexity.

Conway’s Law[1]:

> Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.

In his famous lecture [2], Casey Muratori makes the case that Conway’s Law applies over time too, meaning there is not a single organization, but multiple versions of the organization over time, and all of them end up adding more design (decisions) to the product. The best example, which he gives, is the 5 different UIs to change the sound level in Windows.

Rewrites to old (10 years old as I said) software reset the age of the software to zero and very often drastically simplify both the design and the codebase. I’m not telling you to rewrite your 3 yo product.

1: https://en.wikipedia.org/wiki/Conway%27s_law

2: https://youtu.be/5IUj1EZwpJY?t=1696

Re: Remembering Larry Finger, who made Linux wireless work

#89
post #78

Earlier quoted context omitted.

You might enjoy this series of articles about writing a Wi-Fi driver using reverse engineering techniques: https://zeus.ugent.be/blog/23-24/open-source-esp32-wifi-mac/

Yes I really enjoyed reading that article, thank you so much. I'm really looking forward to seeing a brave soul show up to try and reverse engineer those 50 thousand hardware initialization memory accesses. That sort of thing is just incredibly difficult. I'd really enjoy reading about that too. In my case I intercepted USB communications with wireshark and tried to make sense of the packets. I'd use the proprietary…

I've only just started learning about this field myself, but your approach looks good.

That article has some follow-ups which should be linked below it or can be googled. IIRC the author uses some clever shortcuts to speed up the work.

Re: Remembering Larry Finger, who made Linux wireless work

#90

Rest in peace. I'm still rocking Linux on my MacBook Pro from 2012 which has a bcm nic in it. Thank you.

If that is the same as the macbook air's of that year, than good luck to ya. The chipsets of that year are a horrible mess. Even in macos is it was finicky with a 1+ year bug that wifi would not come up automatically if your macbook went to sleep with bluetooth on.
Post reply on HN