How to install Linux on 3DS

Read First!

The below wiki article is based on user submitted content.
Please verify all hyperlinks and terminal commands below!

See a mistake? Want to contribute? Edit this article on Github

An unofficial PKGBUILD of Citra is available for Arch Linux on the AUR.

Dependencies:

You’ll need to download and install the following to build Citra:

  • SDL2

    • Deb: apt install libsdl2-dev
    • Arch: pacman -S sdl2
    • Fedora: dnf install SDL2-devel
    • OpenSUSE: zypper in libSDL2-devel
  • OpenSSL

    • Deb: apt install libssl-dev
    • Arch: pacman -S openssl-1.0
    • Fedora: dnf install openssl-devel
    • OpenSUSE: zypper in openssl-devel
  • Qt 5.9+

    • Only 5.9+ versions are tested. Lower version might or might not work. See the section Install new Qt version below if your distro does not provide a sufficient version of Qt
    • Deb: apt install qtbase5-dev libqt5opengl5-dev qtmultimedia5-dev
    • You may also need apt install libqt5multimedia5-plugins to get the camera working
    • Arch: pacman -S qt5
    • Fedora: dnf install qt5-qtmultimedia-devel
    • OpenSUSE: zypper in libQt5Multimedia5 libqt5-qtmultimedia-devel libQt5Concurrent-devel
  • Optional dependencies needed for HLE AAC Decoding on Linux

    • FDK-AAC
    • Deb: apt install libfdk-aac-dev
    • Arch: pacman -S libfdk-aac
    • Fedora: dnf install fdk-aac-devel
    • OpenSUSE: zypper in fdk-aac-devel
    • FFMPEG 4.0+
    • Deb: sudo apt install ffmpeg libswscale-dev libavformat-dev libavcodec-dev libavdevice-dev
    • Fedora: dnf install ffmpeg-devel
    • OpenSUSE Leap 15: zypper in ffmpeg-3 ffmpeg-3-libavcodec-devel
    • OpenSUSE Tumbleweed: zypper in ffmpeg-4 ffmpeg-4-libavcodec-devel
  • Compiler: GCC or Clang. You only need one of these two:

    • GCC 7.0+.
    • Deb: apt install build-essential
    • Arch: pacman -S base-devel
    • Fedora: dnf install gcc-c++
    • OpenSUSE: zypper in gcc-c++
    • Clang 5.0+
    • Deb: apt install clang clang-format libc++-dev (in some distros, clang-5.0).
    • Arch: pacman -S clang, libc++ is in the AUR. Use pacaur or yaourt to install it.
    • Fedora: dnf install clang libcxx-devel
    • OpenSUSE: zypper in clang
  • CMake 3.8+

    • Deb: apt install cmake
    • Arch: pacman -S cmake
    • Fedora: dnf install cmake
    • OpenSUSE: zypper in cmake extra-cmake-modules
  • Note on Boost library: you don’t need to install Boost library on your system, because citra provides a bundled trimmed Boost library. However, if you already have Boost library installed on your system, please make sure its version is at least 1.66 (which contains a bug fix for GCC 7), otherwise compilation would fail.

Cloning Citra in Git:

git clone --recursive //github.com/citra-emu/citra cd citra

The --recursive option automatically clones the required Git submodules too.

Building Citra in Debug Mode (Slow):

Using gcc:

mkdir build cd build cmake ../ cmake --build . -- -j"$(nproc)" sudo make install (optional)
  • To enable HLE AAC Decoding, use cmake .. -DENABLE_FFMPEG_AUDIO_DECODER=ON instead.

Optionally, you can use “cmake -i ..” to adjust various options (e.g. disable the Qt GUI).

Using clang:

Note: It is important you use libc++, otherwise your build will likely fail:

mkdir build cd build cmake .. -DCMAKE_CXX_COMPILER=clang++-5.0 \ -DCMAKE_C_COMPILER=clang-5.0 \ -DCMAKE_CXX_FLAGS="-O2 -g -stdlib=libc++" cmake --build . -- -j"$(nproc)" sudo make install (optional)

Building Citra in Release Mode (Optimized):

mkdir build cd build cmake .. -DCMAKE_BUILD_TYPE=Release cmake --build . -- -j"$(nproc)" sudo make install (optional)
  • To enable HLE AAC Decoding, use cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_FFMPEG_AUDIO_DECODER=ON instead.

Building with debug symbols:

mkdir build cd build cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo cmake --build . -- -j"$(nproc)" sudo make install (optional)

Running without installing:

After building, the binaries citra, citra-qt and citra-room (depending on your build options) will end up in build/bin/.

# SDL cd build/bin/ ./citra # Qt cd build/bin/ ./citra-qt # Dedicated room cd build/bin/ ./citra-room

Debugging:

cd data gdb ../build/bin/citra-qt (gdb) run (gdb) bt

Install new Qt version

If you had an error while building citra-qt part (this part was added from an AutoMoc subprocess error when running a qt5/bin/moc command, but this may fix some other errors)

  • Go to //download.qt.io/official_releases/qt/ and get the latest linux version link (this guide used 5.11.1 at the time) and run the following commands:

    wget link_to_latest_linux_official_release chmod +x qt-opensource-linux-x64-x.x.x.run ./qt-opensource-linux-x64-x.x.x.run

  • Install selecting only Desktop gcc option besides the Tools one that you can’t remove

  • Add those exports to your .bashrc file (change QTDIR variable if installing another version)

    export QTDIR=“$HOME/Qt5.11.1⁄5.11.1/gcc_64” export PATH=“$QTDIR/bin:$PATH” export LD_LIBRARY_PATH=“$QTDIR/lib:$LD_LIBRARY_PATH”

  • Reload your .bashrc file and try building again from the start.

How to build Linux on 3DS?

xerpi/3DS_Linux_build_instructions.md.
Step 1: Compiling or Downloading the toolchain. ... .
Step 2: Build buildroot (to generate a rootfs) ... .
Step 3: Build Linux. ... .
Step 4: Build arm9linuxfw (optional, but needed for SD card support) ... .
Step 5: Build FIRM Linux Loader. ... .
Step 6: Run Linux!.

Can 3ds run Android?

It can't run any form of android. No wonder the games as so weak.

Chủ đề