Table of Contents
This guide is a temporal entry.
-
Navigate into github.com (Create account if not have already) get your own fork of portapack-mayhem/mayhem-firmware
-
Download and install Github Desktop https://desktop.github.com
-
Next, start github desktop, get into your account and clone forked portapack-mayhem/mayhem-firmware into local folder (i.e. /Users/enrique/Documents/GitHub/portapack-mayhem)
-
Download and install Docker Desktop for Mac https://hub.docker.com/editions/community/docker-ce-desktop-mac/
-
Start docker dashboard (from docker icon on top right in MAC desktop)
-
Log into docker hub (or first Create an account on hub.docker.com)
-
Open a shell window and on your command line and get into the folder where the cloned github is... (i.e.
cd /Users/enrique/Documents/GitHub/portapack-mayhem
) -
execute:
docker pull eried/portapack
-
Create a build folder
mkdir build
And now for the nice steps:
TO BUILD
(still on command line): docker build -t portapackccache -f dockerfile-nogit .
If you have an M2 processor or newer: docker build --platform linux/amd64 -t portapackccache -f dockerfile-nogit .
Without the --platform linux/amd64
running the container will fail with errors such as:
qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory
See here for more info.
(took in my machine about 2 minutes, i7 2.6mhz quad, with tons of verbose about the building process. Finally: )
Step 13/13 : CMD cd .. && cd build && cmake .. && make firmware
---> Running in d68ff9843634
Removing intermediate container d68ff9843634
---> f6387073737a
Successfully built f6387073737a
Successfully tagged portapackccache:latest
TO COMPILE
Also check: https://github.com/sharebrained/portapack-hackrf/issues/160#issuecomment-640237943
docker run -it -v ${PWD}:/havoc portapackccache
In my case it took about 25 minutes. At the end, after even more tons of verbosities and warnings you should get something like this:
Scanning dependencies of target hackrf_usb_dfu.elf
[100%] Linking C executable hackrf_usb_dfu.elf
[100%] Built target hackrf_usb_dfu.elf
Scanning dependencies of target hackrf_usb_dfu.bin
[100%] Built target hackrf_usb_dfu.bin
Scanning dependencies of target hackrf_usb.dfu
dfu-suffix (dfu-util) 0.8
Copyright 2011-2012 Stefan Schmidt, 2013-2014 Tormod Volden
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org
Suffix successfully added to file
[100%] Built target hackrf_usb.dfu
Scanning dependencies of target firmware
[100%] Generating portapack-h1_h2-mayhem.bin
[100%] Built target firmware
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
How to collaborate
How to ask questions correctly
User manual
- First steps
- Usage cautions
- Intended use and Legality
- Features
- PortaPack Versions (which one to buy)
- HackRF Versions
- Firmware update procedure
- Description of the hardware
- User interface
- Powering the PortaPack
- Troubleshooting
- Won't boot
- Config Menu
- Firmware upgrade
- Diagnose firmware update in Windows
- Receive Quality Issues
- No TX/RX
- TX Carrier Only
- H2+ speaker modifications
- Dead Coin Cell Battery
- Factory Defaults
- SD card not recognized by PC with the SD-card over USB selected
- DFU overlay
- Full reset
- SolveBoard
- How to Format SDCard
- Applications
Developer Manual
- Compilation of the firmware
- Compile on WSL with ninja
- How to compile on Windows faster with WSL 2
- Using Docker and Kitematic
- Docker command-line reference
- Using Buddyworks and other CI platforms
- Notes for Buddy.Works (and other CI platforms)
- Using ARM on Debian host
- All in one script for ARM on Debian host
- Compile on Arch based distro (exclude Asahi)
- Dev build versions
- Notes About ccache
- Create a custom map
- Code formatting
- PR process
- Description of the Structure
- Software Dev Guides
- Tools
- Research
- UI Screenshots
- Maintaining
- Creating a prod/stable release (Maintainers only)
- Maintaining rules
- Development States Notes
Hardware Hacks
Note
The wiki is incomplete. Please add content and collaborate.
Important
- This is a public wiki. Everything is visible to everyone. Don't use it for personal notes.
- Avoid linking to external tutorials/articles; they may become outdated or contain false information.