Recherche avancée

Médias (1)

Mot : - Tags -/publishing

Autres articles (100)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

Sur d’autres sites (12501)

  • Static Compilation of FFmpeg with x264 support

    17 février 2014, par b1izzard

    Based on the Tutorial, I tried to build the latest FFmpeg binary with x264 support for Command line execution using Android-ndk-r9c.

    I had built the x264 using the below script :

    #!/bin/bash        


    PREBUILT=/home/blizzard/bin/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt
                   PLATFORM=/home/blizzard/bin/android-ndk-r9c/platforms/android-9/arch-arm
                   PREFIX=/home/blizzard/bin/android-ndk-r9c/sources/ffmpeg


               ./configure --prefix=$PREFIX \
               --enable-static \
               --enable-pic \
               --disable-asm \
               --disable-cli \            
               --host=arm-linux \
               --cross-prefix=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi- \
               --sysroot=$PLATFORM

               make
               sudo make install
               sudo ldconfig

    For building FFmpeg I had used the below script :

    #!/bin/bash                    
                 PLATFORM=/home/blizzard/bin/android-ndk-r9c/platforms/android-9/arch-arm
                 PREBUILT=/home/blizzard/bin/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64
                 PREFIX=/home/blizzard/bin/android-ndk-r9c/sources/ffmpeg

                   function build_one
                   {
                   ./configure --target-os=linux --prefix=$PREFIX \
                   --arch=arm \
                   --cpu=cortex-a8 \
                   --enable-cross-compile \
                   --enable-runtime-cpudetect \
                   --disable-asm \
                   --enable-static \
                   --disable-shared \
                   --arch=arm \
                   --cc=$PREBUILT/bin/arm-linux-androideabi-gcc \
                   --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
                   --disable-stripping \
                   --nm=$PREBUILT/bin/arm-linux-androideabi-nm \
                   --sysroot=$PLATFORM \
                   --enable-nonfree \
                   --enable-version3 \
                   --disable-everything \
                   --enable-gpl \
                   --disable-doc \
                   --enable-avresample \
                   --enable-demuxer=rtsp \
                   --enable-muxer=rtsp \
                   --disable-ffplay \
                   --disable-ffserver \
                   --enable-ffmpeg \
                   --disable-ffprobe \
                   --enable-libx264 \
                   --enable-encoder=libx264 \
                   --enable-decoder=h264 \
                   --enable-protocol=rtp \
                   --enable-hwaccels \
                   --enable-zlib \
                   --disable-devices \
                   --disable-avdevice \
                   --extra-cflags="-I/home/blizzard/bin/android-ndk-r9c/sources/ffmpeg/include -fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -marm -march=armv7-a" \
                   --extra-ldflags="-L/home/blizzard/bin/android-ndk-r9c/sources/ffmpeg/lib"
                   make -j4 install

                   $PREBUILT/bin/arm-linux-androideabi-ar d libavcodec/libavcodec.a inverse.o
                   $PREBUILT/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -L$PREFIX/lib  -soname libffmpeg.so -shared -nostdlib  -z noexecstack -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavfilter/libavfilter.a libavresample/libavresample.a libavformat/libavformat.a libavutil/libavutil.a libswscale/libswscale.a -lc -lm -lz -ldl -llog -lx264  --dynamic-linker=/system/bin/linker $PREBUILT/lib/gcc/arm-linux-androideabi/4.6/libgcc.a
                   }

                   build_one

    The output of the script is

    install prefix            /home/blizzard/bin/android-ndk-r9c/sources/ffmpeg
    source path               .
    C compiler                /home/blizzard/bin/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc
    C library                 bionic
    host C compiler           gcc
    host C library            glibc
    ARCH                      c (cortex-a8)
    big-endian                no
    runtime cpu detection     yes
    debug symbols             yes
    strip symbols             no
    optimize for size         no
    optimizations             yes
    static                    yes
    shared                    no
    postprocessing support    yes
    new filter support        yes
    network support           yes
    threading support         pthreads
    safe bitstream reader     yes
    SDL support               no
    opencl enabled            no
    libzvbi enabled           no
    texi2html enabled         yes
    perl enabled              yes
    pod2man enabled           yes
    makeinfo enabled          no

    External libraries:
    libx264         zlib

    Enabled decoders:
    h264

    Enabled encoders:
    libx264

    Enabled hwaccels:

    Enabled parsers:

    Enabled demuxers:
    asf         mpegts          rtsp
    mov         rm

    Enabled muxers:
    rtp         rtsp

    Enabled protocols:
    http            tcp         udp
    rtp

    Enabled filters:
    aformat         format          setpts
    anull           null            trim
    atrim

    Enabled bsfs:

    Enabled indevs:

    Enabled outdevs:

    License: nonfree and unredistributable
    Creating config.mak, config.h, and doc/config.texi...
    config.h is unchanged
    libavutil/avconfig.h is unchanged

    WARNING: /home/blizzard/bin/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-pkg-config not found, library detection may fail.
    INSTALL install-progs-yes
    INSTALL ffmpeg
    INSTALL presets/libvpx-1080p50_60.ffpreset
    INSTALL presets/libvpx-1080p.ffpreset
    INSTALL presets/libvpx-360p.ffpreset
    INSTALL presets/libvpx-720p50_60.ffpreset
    INSTALL presets/libvpx-720p.ffpreset
    INSTALL presets/libx264-ipod320.ffpreset
    INSTALL presets/libx264-ipod640.ffpreset
    INSTALL doc/ffprobe.xsd
    INSTALL doc/examples/decoding_encoding.c
    INSTALL doc/examples/demuxing_decoding.c
    INSTALL doc/examples/filtering_audio.c
    INSTALL doc/examples/filtering_video.c
    INSTALL doc/examples/metadata.c
    INSTALL doc/examples/muxing.c
    INSTALL doc/examples/remuxing.c
    INSTALL doc/examples/resampling_audio.c
    INSTALL doc/examples/scaling_video.c
    INSTALL doc/examples/transcode_aac.c
    INSTALL doc/examples/Makefile
    INSTALL doc/examples/README
    INSTALL libavfilter/libavfilter.a
    INSTALL libavformat/libavformat.a
    INSTALL presets/libvpx-1080p50_60.ffpreset
    INSTALL presets/libvpx-1080p.ffpreset
    INSTALL presets/libvpx-360p.ffpreset
    INSTALL presets/libvpx-720p50_60.ffpreset
    INSTALL presets/libvpx-720p.ffpreset
    INSTALL presets/libx264-ipod320.ffpreset
    INSTALL presets/libx264-ipod640.ffpreset
    INSTALL doc/ffprobe.xsd
    INSTALL doc/examples/decoding_encoding.c
    INSTALL doc/examples/demuxing_decoding.c
    INSTALL doc/examples/filtering_audio.c
    INSTALL doc/examples/filtering_video.c
    INSTALL doc/examples/metadata.c
    INSTALL doc/examples/muxing.c
    INSTALL doc/examples/remuxing.c
    INSTALL doc/examples/resampling_audio.c
    INSTALL doc/examples/scaling_video.c
    INSTALL doc/examples/transcode_aac.c
    INSTALL doc/examples/Makefile
    INSTALL doc/examples/README
    INSTALL libavresample/libavresample.a
    INSTALL libavcodec/libavcodec.a
    INSTALL libpostproc/libpostproc.a
    INSTALL libswresample/libswresample.a
    INSTALL libavutil/libavutil.a
    a
    INSTALL libavfilter/asrc_abuffer.h
    INSTALL libavfilter/avcodec.h
    INSTALL libavfilter/avfilter.h
    INSTALL libavfilter/avfiltergraph.h
    INSTALL libavfilter/buffersink.h
    INSTALL libavfilter/buffersrc.h
    INSTALL libavfilter/version.h
    INSTALL libavformat/avformat.h
    INSTALL libavformat/avio.h
    INSTALL libavformat/version.h
    INSTALL libavfilter/libavfilter.pc
    INSTALL libavformat/libavformat.pc
    INSTALL libavresample/avresample.h
    INSTALL libavresample/version.h
    INSTALL libavresample/libavresample.pc
    INSTALL libavcodec/avcodec.h
    INSTALL libavcodec/avfft.h
    INSTALL libavcodec/dxva2.h
    INSTALL libavcodec/old_codec_ids.h
    INSTALL libavcodec/vaapi.h
    INSTALL libavcodec/vda.h
    INSTALL libavcodec/vdpau.h
    INSTALL libavcodec/version.h
    INSTALL libavcodec/xvmc.h
    INSTALL libavcodec/libavcodec.pc
    INSTALL libpostproc/postprocess.h
    INSTALL libpostproc/version.h
    INSTALL libpostproc/libpostproc.pc
    INSTALL libswresample/swresample.h
    INSTALL libswresample/version.h
    INSTALL libswscale/swscale.h
    INSTALL libswscale/version.h
    INSTALL libavutil/adler32.h
    INSTALL libavutil/aes.h
    INSTALL libavutil/attributes.h
    INSTALL libavutil/audio_fifo.h
    INSTALL libavutil/audioconvert.h
    INSTALL libavutil/avassert.h
    INSTALL libavutil/avstring.h
    INSTALL libavutil/avutil.h
    INSTALL libavutil/base64.h
    INSTALL libavutil/blowfish.h
    INSTALL libavutil/bprint.h
    INSTALL libavutil/bswap.h
    INSTALL libavutil/buffer.h
    INSTALL libavutil/channel_layout.h
    INSTALL libavutil/common.h
    INSTALL libavutil/cpu.h
    INSTALL libavutil/crc.h
    INSTALL libavutil/error.h
    INSTALL libavutil/eval.h
    INSTALL libavutil/fifo.h
    INSTALL libavutil/file.h
    INSTALL libavutil/frame.h
    INSTALL libavutil/hmac.h
    INSTALL libavutil/imgutils.h
    INSTALL libavutil/intfloat.h
    INSTALL libavutil/intfloat_readwrite.h
    INSTALL libavutil/intreadwrite.h
    INSTALL libavutil/lfg.h
    INSTALL libavutil/log.h
    INSTALL libavutil/macros.h
    INSTALL libavutil/mathematics.h
    INSTALL libavutil/md5.h
    INSTALL libavutil/mem.h
    INSTALL libavutil/murmur3.h
    INSTALL libavutil/dict.h
    INSTALL libavutil/old_pix_fmts.h
    INSTALL libavutil/opt.h
    INSTALL libavutil/parseutils.h
    INSTALL libavutil/pixdesc.h
    INSTALL libavutil/pixfmt.h
    INSTALL libavutil/random_seed.h
    INSTALL libavutil/rational.h
    INSTALL libavutil/ripemd.h
    INSTALL libavutil/samplefmt.h
    INSTALL libavutil/sha.h
    INSTALL libavutil/sha512.h
    INSTALL libavutil/stereo3d.h
    INSTALL libavutil/time.h
    INSTALL libavutil/timecode.h
    INSTALL libavutil/timestamp.h
    INSTALL libavutil/version.h
    INSTALL libavutil/xtea.h
    INSTALL libavutil/avconfig.h
    INSTALL libavutil/ffversion.h
    INSTALL libswresample/libswresample.pc
    INSTALL libswscale/libswscale.pc
    INSTALL libavutil/libavutil.pc

    When I tried to execute the following command using the resulting FFmpeg binary in Android Application

    ffmpeg -y -loop 1 -r 30 -i  myImage.jpg -b:v "4096k" -vf "scale=640:480" -t 3 result.mp4

    LogCat displays the following message

    02-17 15:42:45.683: D/(14511): *******Starting FFMPEG
    02-17 15:42:45.683: D/(14511): ***ffmpeg version N-60108-gda25a65 Copyright (c) 2000-2014 the FFmpeg developers***
    02-17 15:42:45.693: D/(14511): ***  built on Feb 17 2014 15:35:20 with gcc 4.6 (GCC) 20120106 (prerelease)***
    02-17 15:42:45.693: D/(14511): ***  configuration: --target-os=linux --prefix=/home/blizzard/bin/android-ndk-r9c/sources/ffmpeg --arch=arm --cpu=cortex-a8 --enable-cross-compile --enable-runtime-cpudetect --disable-asm --enable-static --disable-shared --arch=arm --cc=/home/blizzard/bin/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --cross-prefix=/home/blizzard/bin/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi- --disable-stripping --nm=/home/blizzard/bin/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-nm --sysroot=/home/blizzard/bin/android-ndk-r9c/platforms/android-9/arch-arm --enable-nonfree --enable-version3 --disable-everything --enable-gpl --disable-doc --enable-avresample --enable-demuxer=rtsp --enable-muxer=rtsp --disable-ffplay --disable-ffserver --enable-ffmpeg --disable-ffprobe --enable-libx264 --enable-encoder=libx264 --enable-decoder=h264 --enable-protocol=rtp --enable-hwaccels --enable-zlib --disable-devices --disable-avdevice --extra-cflags='-I/home/blizzard/bin/android-ndk-r9c/sources/ffmpeg/include -fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=armv7-a' --extra-ldflags=-L/home/blizzard/bin/android-ndk-r9c/sources/ffmpeg/lib***
    02-17 15:42:45.693: D/(14511): ***  libavutil      52. 63.100 / 52. 63.100***
    02-17 15:42:45.693: D/(14511): ***  libavcodec     55. 49.100 / 55. 49.100***
    02-17 15:42:45.693: D/(14511): ***  libavformat    55. 25.101 / 55. 25.101***
    02-17 15:42:45.693: D/(14511): ***  libavfilter     4.  1.100 /  4.  1.100***
    02-17 15:42:45.693: D/(14511): ***  libavresample   1.  1.  0 /  1.  1.  0***
    02-17 15:42:45.693: D/(14511): ***  libswscale      2.  5.101 /  2.  5.101***
    02-17 15:42:45.693: D/(14511): ***  libswresample   0. 17.104 /  0. 17.104***
    02-17 15:42:45.693: D/(14511): ***  libpostproc    52.  3.100 / 52.  3.100***
    02-17 15:42:45.693: D/(14511): ***Unrecognized option 'loop'.***
    02-17 15:42:45.693: D/(14511): ***Error splitting the argument list: Option not found***
    02-17 15:42:45.693: D/(14511): ****ending FFMPEG****

    Can anybody help me in building the latest version of FFmpeg or Can you share the latest FFMpeg binary for Android ?

  • VP8 Codec Optimization Update

    15 juin 2010, par noreply@blogger.com (John Luther) — inside webm

    Since WebM launched in May, the team has been working hard to make the VP8 video codec faster. Our community members have contributed improvements, but there’s more work to be done in some interesting areas related to performance (more on those below).


    Encoder


    The VP8 encoder is ripe for speed optimizations. Scott LaVarnway’s efforts in writing an x86 assembly version of the quantizer will help in this goal significantly as the quantizer is called many times while the encoder makes decisions about how much detail from the image will be transmitted.

    For those of you eager to get involved, one piece of low-hanging fruit is writing a SIMD version of the ARNR temporal filtering code. Also, much of the assembly code only makes use of the SSE2 instruction set, and there surely are newer extensions that could be made use of. There are also redundant code removal and other general cleanup to be done ; (Yaowu Xu has submitted some changes for these).

    At a higher level, someone can explore some alternative motion search strategies in the encoder. Eventually the motion search can be decoupled entirely to allow motion fields to be calculated elsewhere (for example, on a graphics processor).

    Decoder


    Decoder optimizations can bring higher resolutions and smoother playback to less powerful hardware.

    Jeff Muizelaar has submitted some changes which combine the IDCT and summation with the predicted block into a single function, helping us avoid storing the intermediate result, thus reducing memory transfers and avoiding cache pollution. This changes the assembly code in a fundamental way, so we will need to sync the other platforms up or switch them to a generic C implementation and accept the performance regression. Johann Koenig is working on implementing this change for ARM processors, and we’ll merge these changes into the mainline soon.

    In addition, Tim Terriberry is attacking a different method of bounds checking on the "bool decoder." The bool decoder is performance-critical, as it is called several times for each bit in the input stream. The current code handles this check with a simple clamp in the innermost loops and a less-frequent copy into a circular buffer. This can be expensive at higher data rates. Tim’s patch removes the circular buffer, but uses a more complex clamp in the innermost loops. These inner loops have historically been troublesome on embedded platforms.

    To contribute in these efforts, I’ve started working on rewriting higher-level parts of the decoder. I believe there is an opportunity to improve performance by paying better attention to data locality and cache layout, and reducing memory bus traffic in general. Another area I plan to explore is improving utilization in the multi-threaded decoder by separating the bitstream decoding from the rest of the image reconstruction, using work units larger than a single macroblock, and not tying functionality to a specific thread. To get involved in these areas, subscribe to the codec-devel mailing list and provide feedback on the code as it’s written.

    Embedded Processors


    We want to optimize multiple platforms, not just desktops. Fritz Koenig has already started looking at the performance of VP8 on the Intel Atom platform. This platform need some attention as we wrote our current x86 assembly code with an out-of-order processor in mind. Since Atom is an in-order processor (much like the original Pentium), the instruction scheduling of all of the x86 assembly code needs to be reexamined. One option we’re looking at is scheduling the code for the Atom processor and seeing if that impacts the performance on other x86 platforms such as the Via C3 and AMD Geode. This is shaping up to be a lot of work, but doing it would provide us with an opportunity to tighten up our assembly code.

    These issues, along with wanting to make better use of the larger register file on x86_64, may reignite every assembly programmer’s (least ?) favorite debate : whether or not to use intrinsics. Yunqing Wang has been experimenting with this a bit, but initial results aren’t promising. If you have experience in dealing with a lot of assembly code across several similar-but-kinda-different platforms, these maintainability issues might be familiar to you. I hope you’ll share your thoughts and experiences on the codec-devel mailing list.

    Optimizing codecs is an iterative (some would say never-ending) process, so stay tuned for more posts on the progress we’re making, and by all means, start hacking yourself.

    It’s exciting to see that we’re starting to get substantial code contributions from developers outside of Google, and I look forward to more as WebM grows into a strong community effort.

    John Koleszar is a software engineer at Google.

  • Hacking the Popcorn Hour C-200

    3 mai 2010, par Mans — Hardware, MIPS

    Update : A new firmware version has been released since the publication of this article. I do not know if the procedure described below will work with the new version.

    The Popcorn Hour C-200 is a Linux-based media player with impressive specifications. At its heart is a Sigma Designs SMP8643 system on chip with a 667MHz MIPS 74Kf as main CPU, several co-processors, and 512MB of DRAM attached. Gigabit Ethernet, SATA, and USB provide connectivity with the world around it. With a modest $299 on the price tag, the temptation to repurpose the unit as a low-power server or cheap development board is hard to resist. This article shows how such a conversion can be achieved.

    Kernel

    The PCH runs a patched Linux 2.6.22.19 kernel. A source tarball is available from the manufacturer. This contains the sources with Sigma support patches, Con Kolivas’ patch set (scheduler tweaks), and assorted unrelated changes. Properly split patches are unfortunately not available. I have created a reduced patch against vanilla 2.6.22.19 with only Sigma-specific changes, available here.

    The installed kernel has a number of features disabled, notably PTY support and oprofile. We will use kexec to load a more friendly one.

    As might be expected, the PCH kernel does not have kexec support enabled. It does however, by virtue of using closed-source components, support module loading. This lets us turn kexec into a module and load it. A patch for this is available here. To build the module, apply the patch to the PCH sources and build using this configuration. This will produce two modules, kexec.ko and mips_kexec.ko. No other products of this build will be needed.

    The replacement kernel can be built from the PCH sources or, if one prefers, from vanilla 2.6.22.19 with the Sigma-only patch. For the latter case, this config provides a minimal starting point suitable for NFS-root.

    When configuring the kernel, make sure CONFIG_TANGOX_IGNORE_CMDLINE is enabled. Otherwise the command line will be overridden by a useless one stored in flash. A good command line can be set with CONFIG_CMDLINE (under “Kernel hacking” in menuconfig) or passed from kexec.

    Taking control

    In order to load our kexec module, we must first gain root privileges on the PCH, and here a few features of the system are working to our advantage :

    1. The PCH allows mounting any NFS export to access media files stored there.
    2. There is an HTTP server running. As root.
    3. This HTTP server can be readily instructed to fetch files from an NFS mount.
    4. Files with a name ending in .cgi are executed. As root.

    All we need do to profit from this is place the kexec modules, the kexec userspace tools, and a simple script on an NFS export. Once this is done, and the mount point configured on the PCH, a simple HTTP request will send the old kernel screaming to /dev/null, our shiny new kernel taking its place.

    The rootfs

    A kernel is mostly useless without a root filesystem containing tools and applications. A number of tools for cross-compiling a full system exist, each with its strengths and weaknesses. The only thing to look out for is the version of kernel headers used (usually a linux-headers package). As we will be running an old kernel, chances are the default version is too recent. Other than this, everything should be by the book.

    Assembling the parts

    Having gathered all the pieces, it is now time to assemble the hack. The following steps are suitable for an NFS-root system. Adaptation to a disk-based system is left as an exercise.

    1. Build a rootfs for MIPS 74Kf little endian. Make sure kernel headers used are no more recent than 2.6.22.x. Include a recent version of the kexec userspace tools.
    2. Fetch and unpack the PCH kernel sources.
    3. Apply the modular kexec patch.
    4. Using this config, build the modules and install them as usual to the rootfs. The version string must be 2.6.22.19-19-4.
    5. From either the same kernel sources or plain 2.6.22.19 with Sigma patches, build a vmlinux and (optionally) modules using this config. Modify the compiled-in command line to point to the correct rootfs. Set the version string to something other than in the previous step.
    6. Copy vmlinux to any directory in the rootfs.
    7. Copy kexec.sh and kexec.cgi to the same directory as vmlinux.
    8. Export the rootfs over NFS with full read/write permissions for the PCH.
    9. Power on the PCH, and update to latest firmware.
    10. Configure an NFS mount of the rootfs.
    11. Navigate to the rootfs in the PCH UI. A directory listing of bin, dev, etc. should be displayed.
    12. On the host system, run the kexec.sh script with the target hostname or IP address as argument.
    13. If all goes well, the new kernel will boot and mount the rootfs.

    Serial console

    A serial console is indispensable for solving boot problems. The PCH board has two UART connectors. We will use the one labeled UART0. The pinout is as follows (not standard PC pinout).

            +-----------+
           2| * * * * * |10
           1| * * * * * |9
            -----------+
              J7 UART0
        /---------------------/ board edge
    
    Pin Function
    1 +5V
    5 Rx
    6 Tx
    10 GND

    The signals are 3.3V so a converter, e.g. MAX202, is required for connecting this to a PC serial port. The default port settings are 115200 bps 8n1.