-
-
Notifications
You must be signed in to change notification settings - Fork 914
Compile on Arch based distro (exclude Asahi)
Debian based is more recommended since the dependency chain is clearer and more independently. So if you are just planning pickup a Linux to play with this project, use Debian based, instead of Arch based. But if you already decided to use Arch, please prevent breaking dependencies chain with pacman -Syu
This tutour not works on Asahi, please make sure you are on x86_64 platform
sudo pacman -S yay git tar wget dfu-util cmake make python3 bzip2 lz4 curl hackrf python-distutils-extra python-setuptools python-pip python-yaml libopencm3
Check the output and make sure are the packages listed above were installed correctly.
This will automatically add the path of arm toolchain to the PATH of your default shell (for example: bash, zsh, fish, and nushell). Thus, you would have a problem (cross) compiling with gcc for other platform (for example. x86 or ESP), if your other project just calls the as in your PATH. You can either remove the PATH then call correct as when compiling this project, or call the correct as when you're compiling other project for other platform, it depends on you, or off to use Debian based tutorial.
- Go to the page of
gcc-arm-none-eabipackage in AUR. - Click
View Changesto check the commit history of this AUR package. - Click version 9-2020-q2 to check the specific version of
gcc-arm-none-eabi, then clickDownloadto download the package formakepkg. - Assuming you download the package to
~. - Create a directory to satisfying and checking the package.
mkdir AUR mv aur-11b618acbed084c37cdf1568a1bc2b05152af7e1.tar.gz ./AURcd AURtar -xvf aur-11b618acbed084c37cdf1568a1bc2b05152af7e1.tar.gzcd aur-11b618acbed084c37cdf1568a1bc2b05152af7e1makepkg
(ARM already fixed this but in case of it happend again we'll leave it here.)
Note that since the SSL certificate of the file thismakepkgpointed to already expired, thecurlwouldn't download it correctly, thus, you have to add-kargument to yourmakepkg.conf:
sudo vim /etc/makepkg.conf
Edit the line
'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
to
'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -k -o %o %u'
(You may change it back after installing, if you needed)
Thenmakepkg, waiting it finished.
- Install the package with
pacman:
sudo pacman -U gcc-arm-none-eabi-bin-9_2020_q2_update-1-x86_64.pkg.tar.zst
cd ~
git clone https://github.com/eried/portapack-mayhem.git
cd portapack-mayhem
git submodule update --init --recursive
sudo chown -R my_user:my_usergroup ~/portapack-mayhem
cd ~/portapack-mayhem
mkdir build
cd build
cmake ..
make firmware
If you want, use -j argument to increase the compile speed, for example make -j firmware to auto decide the number of threads to compile, or manually set the thread numbers, for example make -j4 firmware
-
You cannot directly install
gcc-arm-none-eabifrom AUR using yay or others tool, otherwise the version would be not match. -
(ARM already fixed this but in case of it happend again we'll leave it here.)
After installinggcc-arm-none-eabiyou may change themakepkg.confback:
sudo vim /etc/makepkg.conf
Edit the line
'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -k -o %o %u'
to
'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
How to collaborate
Contributing Guidelines
Trusted contributors
How to ask questions correctly
- PortaPack Versions (which one to buy)
- Features
- HackRF Versions
-
Description of the hardware
- Enclosure/cases
- Repairs
- Mods
- Usage cautions
- First steps
- Firmware update procedure
- 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
- 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
- What if I don't like some of the apps
- 📥 Receivers
- 2-Tone-RX
- ACARS
- ADS-B
- AFSK
- AIS Boats
- Analog TV
- APRS RX
- Audio
- BLE RX
- Detector
- EPIRB RX
- ERT Meter
- Flex RX
- Radio
- Fox-Hunt
- FPV-Detect
- gfxEQ
- Level
- Meteor
- Morse RX
- NOAA
- NRF
- POCSAG
- ProtoView
- Radiosonde
- RTTY RX
- Scanner
- Search
- Signal Hunter
- SSTV RX
- SubCar
- SubGhzD
- Tetra RX
- Time Sink
- TPMS RX
- Weather
- WeFax
- VOR RX
- 📤 Transmitters
- 2-Tone-TX
- ADS-B(S) TX
- Adult Toys
- APRS TX
- BHT Xy/EP
- BLE TX
- BLESpam
- Burger Pager
- CVS Spam
- EPIRB TX
- Flex TX
- FlipperTX
- GPS Sim
- Hopper
- Jammer
- KeeLoq TX
- Key fob TX
- LGE Tool
- MDC-1200 TX
- Morse TX
- OOK
- OOK Brute
- OOK Editor
- P25 TX
- POCSAG TX
- RDS
- RTTY TX
- SAME TX
- Security+ TX
- Signal gen
- Soundboard
- Spectrum Painter
- SSTV
- TEDI/LCR
- TouchTunes
- TPMS TX
- VOR TX
- 🔄 Transceivers
- 🟡 Recon
- 🔴 Capture
▶️ Replay- 🖲️ Remote
- 🔍 Looking Glass
- 🛠️ Utilities
- 🎮 Games
- ⚙️ Settings
- 💻 HackRF Mode
-
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), or other weird distros
- 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