Hacker News new | ask | show | jobs
by erikarn 4046 days ago
jump in and ask questions. :)
3 comments

I believe this was more about "how to make it scale for the masses", and not so much about "how to make it work for one more person with less technical knowledge".
ok. how do I add support for other similar Atheros MIPS SoCs? I have a few, and a bit of FreeBSD user/admin experience; but the kernel config files in the wifi git repo might as well have be conjured up using magic, to me.

more directly: how'd you do what you did? :)

Aha! Jump into #freebsd on IRC (on efnet, don't ask) and poke me (adri) and/or ask for help.

If it's the same SoC in a different box, then it isn't too hard:

* Attach serial console, boot to uboot. If you're using a d-link then you likely can't without some hardware hacking (and even then they sometimes disable serial RX in u-boot. Grr.) If you're using tp-link then you mash 'tpl' at the console whilst uboot is counting down from 1 second -> 0 seconds to drop into the prompt. * Chances are an existing kernel will boot - you can test using tftpboot and go. So, build an existing image, grab kernel.BLAH from ../tftpboot/, put it somewhere tftp'able, and:

uboot> setenv ipaddr ip-for-AP uboot> setenv serverip ip-of-server uboot> tftpboot 0x80050000 kernel.BLAH uboot> go 0x80050100

Some uboots don't have 'go', only 'bootm'. In that case you can grab the kernel.BLAH.lzma.uboot file - it's a compressed u-boot application. You have to ensure you load it /above/ where FreeBSD boots from, as uboot will decompress it for you into the right spot (here it's loaded into 0x80050000.) I typically put it 16MB above (and thus assume you have at least 32MB RAM):

uboot> tftpboot 0x81050000 kernel.BLAH.lzma.uboot uboot> bootm 0x81050000

It should decompress the kernel and start running. If it's the same SoC, then it should boot.

There are a few things you'll need for the board, which typically you lift from the openwrt board config files :) :

* The ethernet setup (what mode each port is in, PLL setups, etc) * the ethernet switch setup (which switch, internal/external, whether ports are hooked up pass-through or to the switch itself, the port config, LED config, etc.) * The atheros onboard wifi and where in flash the calibration data is. * The MAC addresses - where in flash are they. * if there's PCI/PCIe devices, where that is and where in flash the calibration data is * What the GPIO setup looks like. * If there's any custom required GPIO hacks - like say, "wifi RX LNA on gpio X", "enable the serial UART GPIOs explicitly", etc.

That part will take a little more to describe. Maybe I should also write a blog post/wiki article about it. But if you get it to the point of tftpboot'ing on a new piece of hardware then I'll absolutely help you with the rest on IRC and we can write it up.

If it's a different SoC - that's a different article. I have support up to the QCA955x - I think I have two or three more newer SoCs and ethernet switches to write support for, and some more wifi support to port from their reference driver. If you really want to do /this/ part then I'll write that up separately. :)

Can't help myself, why is there an official efnet and freenode channel? What's the deal there?
FreeBSD's older than freenode. Inertia is.. inertia. A lot of FreeBSD developers only hang out on efnet, so that's where a lot of stuff happens.
ah, good, was worried there was a split of the community or something.
love how you had some downvotes here because people don't realize you're the blog post author

Thanks for working on this. My friend has been looking at doing some consulting and wanted to be able to distribute low cost FreeBSD-based routers. Now the framework is here...

> love how you had some downvotes here because people don't realize you're the blog post author

Not sure I get this criticism.

To my understanding, downvoting is a judgement of a specific comment. It is neither about the person who wrote it, nor about whatever else that person wrote.

In particular, I don't see how these donvotes diminished the author's work on that article in any way. The 50 upvotes (currently) on that article tell an entirely different story.

Why would anyone downvote "jump in and ask questions :-)"? What is there to disagree about there?

Nothing.

It was downvoted because it looked like a stranger telling someone what to do.