On 13 March 2015 at 16:28, Jason H <jh...@gmx.com> wrote: > >> On 13 March 2015 at 04:39, <jh...@gmx.com> wrote: >> > I went through the archives, and the wiki but I still wasn't sure... >> > I have a shiny new Lenovo z70, kernel 4.0-rc1/3. Dmesg reports failures >> > for loading firmware in /lib/firmware/ath10k/QCA6174/hw2.1/... >> > So I found the firmware Git repo, but it seems to be missing hw2.1. I >> > even symlinked 2.1 to 3.0, no dice. >> >> You can't use hw3 firmware for hw2 hardware. >> >> The problem is there's no publicly available ath10k firmware for hw2 >> hardware.. >> >> >> > I don't dual boot and this is a laptop so I'm looking to get my WiFi >> > working. Any pointers are appreciated. Thanks. >> >> You could try building hw2 firmware ath10k binary yourself. You need >> to fetch athwlan.bin from Windows driver, extract otp image from hw3 >> firmware ath10k binary and then re-assemble both into hw3 firmware for >> ath10k. The ath10k binary blob is a tag-length-value format and can be >> understood by looking at ath10k_core_fetch_firmware_api_n(). >> >> Nobody seems to have tried this yet though. > > > I installed WINE and attempted to install the driver from lenono on my > non-lenovo with working wifi. The install failed (expected) but not before it > extracted the actual driver installer images (expected). Parsing through an > .inf file, and navigating my way through the sections, I end up at a section > specifying eeprom_ar6320_2p1_NFA354xp.bin and qca61x420.bin as the firmware > files. I have these files.
Awesome. eeprom_ar6320_2p1_NFA354xp.bin looks like a board.bin. qca61x420.bin looks like main program binary. > However I am now diverging from your instructions considerably. Also I don't > know why I would want to reassemble into 3.0 when my system is looking for > 2.1? Typo/mind derp :-) I obviously meant 2.1. > I don't know what an 'otp image' is? I think I understand the part about the > ath10k format though. OTP is a calibration related program which is run on device before running main program. It's embedded inside ath10k FW API blob. > Could you update your instructions to suit the new information at hand? https://gist.github.com/kazikcz/c970cbf3a863ebbc4495 https://gist.github.com/kazikcz/64313b9e2470660faae1 Here are two simple and crude tools I have to deal with ath10k FW API blobs. Use with care. You can use the disassemble.py to extract the otp.bin from hw3 ath10k FW API blob: python disassemble.py < /lib/firmware/ath10k/QCA6174/hw3.0/firmware-4.bin Then you can use the assemble.py to generate hw2.1 ath10k FW ABI blob: mkdir -p /lib/firmware/ath10k/QCA6174/hw2.1/ python assemble.py killer1252-testfw 0 path/to/qca61x420.bin path/to/otp.bin 4 > /lib/firmware/ath10k/QCA6174/hw2.1/firmware-4.bin cp path/to/eeprom_ar6320_2p1_NFA354xp.bin /lib/firmware/ath10k/QCA6174/hw2.1/board.bin (mind the email line wrapping) Michał _______________________________________________ ath10k mailing list firstname.lastname@example.org http://lists.infradead.org/mailman/listinfo/ath10k