ROCK 5B Debug Party Invitation

Ah yes. You are correct. Than it’s 4 Gbits/s

That’s for m.2 to x16.
https://aliexpress.ru/item/4000928573255.html

Based on rk3588 schematics I believe that one lane of pcie 2.1 was taken by RTL8225BG.
And Allen is talking about making 1 Gb/s port, but having 2 lanes on e-key pcie (not like i agree with it, since for mass-market it’s more important to have 2.5G and placement for wifi, rather than going for ~10Gbit on single port)

schematic of rk3588

2 Likes

Of course it is.

Radxa could’ve gone with GbE by using one of the two GMACs RK3588 provides. But fortunately they didn’t (see @willy’s insights above – RealTek really improved a lot over the last decades, even the 8111 PCIe NICs are fine starting with revision G).

I hate to quote Stuart but ‘it is as it is’ and they chose better network connectivity over another disposable Gen2 PCIe lane.

4 Likes

@Dante4 I have also seen a few adapters like those but since there are no visible chips on them (and they are very cheap) I would assume that they are just x16 slots where only the first four lanes are connected to something. Hence if I put an extension card there that expects/requires 16 actual lanes, it will not work as expected :confused:
Maybe I just try the port multiplier solution and hope for the best :slight_smile: if the worst case is that the last written data might be corrupt, I don’t care…
Thanks for your help guys!

1 Like

No, that doesn’t work like this. As you may see in my post - I used PCIe switch, and that worked perfectly fine. Any (and by any I mean ANY) pcie device ALWAYS detect pcie version and amount of pcie lines available to it. So if you input x16 device in x4 lanes - device will go down to x4 lanes

2 Likes

@willy I found another funny PVTM example (part of sbc-bench results collection): http://ix.io/47IO

  cpu cpu0: pvtm=1436
  cpu cpu0: pvtm-volt-sel=2
  cpu cpu4: pvtm=1649
  cpu cpu4: pvtm-volt-sel=3
  cpu cpu6: pvtm=1662
  cpu cpu6: pvtm-volt-sel=3

For whatever reasons highest cpufreq OPP is 2352 (maybe configured manually by tweaking DT) but this results in some MCU declining high clockspeeds totally and limiting the upper end to below 400 MHz :slight_smile:

Cpufreq OPP: 2352    Measured:  394    (394.973/394.794/394.738)    (-83.2%)
Cpufreq OPP: 2208    Measured: 2099 (2099.382/2099.360/2099.164)     (-4.9%)
Cpufreq OPP: 2016    Measured: 1975 (1975.674/1975.674/1975.239)     (-2.0%)
Cpufreq OPP: 1800    Measured: 1803 (1803.289/1803.269/1803.208)
Cpufreq OPP: 1608    Measured: 1601 (1601.416/1601.377/1601.277)
Cpufreq OPP: 1416    Measured: 1436 (1436.630/1436.454/1436.326)     (+1.4%)
Cpufreq OPP: 1200    Measured: 1183 (1184.341/1184.246/1183.392)     (-1.4%)
Cpufreq OPP: 1008    Measured:  967    (967.415/967.324/967.166)     (-4.1%)
Cpufreq OPP:  816    Measured:  778    (778.755/778.746/778.719)     (-4.7%)
Cpufreq OPP:  600    Measured:  592    (592.871/592.725/592.632)     (-1.3%)
Cpufreq OPP:  408    Measured:  394    (394.987/394.955/394.844)     (-3.4%)

PVTM at work :wink:

That’s extremely strange. I’m more eager to thinking that there was a measurement error, e.g. opp being reported at some point and for whatever reason the idle calculation went wrong and the frequency instantly dropped to the lowest value during the measurement, or something like this. Or maybe this was run with the CPU overheating, causing it to instantly drop to the lowest bin during the test. But I do not see this being the result of a mistake in that non-fully-transparent chain, because the sel values only select an OPP entry and if your OPP is correct it should set the appropriate frequency. Or maybe the opp entry was slightly modified and the cpufreq code, not finding it, went to the lowest, but that sounds fishy.

I would believe we’re seeing cpufreq driver and one of those Cortex-M cores responsible for CPU doing different/counterproductive things?

Testing HDMI In. Preliminary tests.

Attached a 1920x1080 HDMI output to HDMI in:

[21875.917051] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked!
[21875.917324] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy lane locked!
[21875.917403] dwhdmi-rockchip fde80000.hdmi: don't use dsc mode
[21876.122474] dwhdmi-rockchip fde80000.hdmi: dw hdmi qp use tmds mode
[21876.133357] dwhdmi-rockchip fde80000.hdmi: use tmds mode
[21891.752972] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_audio_interrupts_setup: 1
[21891.768465] fdee0000.hdmirx-controller: hdmirx_wait_lock_and_get_timing signal lock ok, i:2!
[21891.799180] fdee0000.hdmirx-controller: Vertical Sync threshold reached interrupt 0x2
[21891.864144] fdee0000.hdmirx-controller: hdmirx_format_change: New format: 1920x1080p59.99 (2200x1125)
[21892.306028] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_delayed_work_audio: enable audio
[22265.859719] fdee0000.hdmirx-controller: stream start stopping
[22265.868370] fdee0000.hdmirx-controller: stream stopping finished
[22313.061071] fdee0000.hdmirx-controller: stream start stopping
[22313.069655] fdee0000.hdmirx-controller: stream stopping finished
[22330.790558] fdee0000.hdmirx-controller: stream start stopping
[22330.794873] fdee0000.hdmirx-controller: stream stopping finished
[22723.155749] fdee0000.hdmirx-controller: rcv frames
[22724.339221] fdee0000.hdmirx-controller: stream start stopping
[22724.347802] fdee0000.hdmirx-controller: stream stopping finished


v4l2-ctl -d /dev/video20 -V -D
    Driver Info:
    	Driver name      : rk_hdmirx
    	Card type        : rk_hdmirx
    	Bus info         : fdee0000.hdmirx-controller
    	Driver version   : 5.10.66
    	Capabilities     : 0x84201000
    		Video Capture Multiplanar
    		Streaming
    		Extended Pix Format
    		Device Capabilities
    	Device Caps      : 0x04201000
    		Video Capture Multiplanar
    		Streaming
    		Extended Pix Format
    Format Video Capture Multiplanar:
    	Width/Height      : 1920/1080
    	Pixel Format      : 'BGR3' (24-bit BGR 8-8-8)
    	Field             : None
    	Number of planes  : 1
    	Flags             : premultiplied-alpha, 0x000000fe
    	Colorspace        : BT.2020
    	Transfer Function : Unknown (0x000000b8)
    	YCbCr/HSV Encoding: Unknown (0x000000ff)
    	Quantization      : Default
    	Plane 0           :
    	   Bytes per Line : 5760
    	   Size Image     : 6220800



capture -d /dev/video20 -f BGR3 -s 1920x1080 -k 100 -v
Available pixel formats for /dev/video20:
  BGR3 (33524742), 24-bit BGR 8-8-8, flags = 0
  NV24 (3432564e), Y/CbCr 4:4:4, flags = 0
  NV16 (3631564e), Y/CbCr 4:2:2, flags = 0
  NV12 (3231564e), Y/CbCr 4:2:0, flags = 0

Control id: 10488164 - Power Present
Setting pixel_format: BGR3 (1920x1080)
Image size: 4147200 (1920x1080)
frame count: 1 - frames to skip: 100 - max. time: 0
fps:  56.80 - frame: 101    - size: 6220800  - elapsed: 1777892.

almost there:

conversion done with:
convert -size 1920x1080 -depth 8 test.bgr test.png

Also:

v4l2-ctl -d /dev/video20 -vwidth=1920,height=1080,pixelformat=BGR3 --stream-mmap --stream-skip=3
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 60.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 60.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 60.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 60.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 60.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 60.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 60.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 60.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 60.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 60.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<^C

The next step is to encode the stream to mp4.

What about a loop back? Grabbing frames from Rock 5B hdmi out to hdmi in? Yes, it works.

Hardware Encoding (H264) takes ~2% CPU usage (1.3% ~1.7%). Finally, a platform where you can make videos with HDMI input. Worked well with FHD at least. 4K not tested. Maybe I’ll find a 4K TV and try it out.

I am using the default mpp parameters, you can set “gop reference mode”, “bps” and “frame rate”, but that is for the video encoder experts, if you want me to try with some parameters, let me know.

Here is the encoded output (1920x1080, 60 Hz, 30 fps, 600 frames)

out_600frames_1920x1080.h264.zip (735.8 KB)

Rendering the BGR frames with SDL. Not really optimized, the best option would be to use NV12, i haven’t found a way yet, any suggestion?

2 Likes

@hipboi,@jack,
Please, consider providing an option for buying a camera FPC with a length of 20 cm, 25 cm, or maybe 30 cm for robotic projects. Can you share if the final product will have a different flex cable? I can see you are preparing for new camera sensors.

2 Likes

Presumably one could also use a cheaper board based around the ASM2812, like this:

3 Likes

Progress is being made on replacing the GPU firmware…

root@rock-5b:/sys/kernel/debug# echo 'Hello, World!' >mali0/fw_traces
root@rock-5b:/sys/kernel/debug# cat mali0/fw_traces
Hello, World!

So I can now send and receive messages from my firmware image through tracebuffers.

Unfortunately I’m having problems with getting exception returns to work, so I have to use polling rather than waiting for an interrupt.

Does anyone with experience with microcontrollers have any idea why an exception body that is nop; bx lr with 0-3 NOPs works fine, or 16-19, but not 4-15 NOP instructions?

i.e. the return instruction faults if it is not in the first eight bytes of a cacheline.

I’m defining the function like this:

__attribute__ ((naked, optimize("align-functions=64")))
static void
irq_handler_doorbell(void) {
    asm volatile(
        "nop \n"
        "nop \n"

        "bx lr \n");
}

The fault shows up in dmesg like this:

[ 4582.644400] mali fb000000.gpu: Unexpected Page fault in firmware address space at VA 0x0000000000FFFFE0
               raw fault status: 0x7CD002C2
               exception type 0xC2: UNKNOWN
               access type 0x2: READ
               source id 0x7CD0
2 Likes

After enabling the MPU and doing a bunch of other stuff, exception returns seem to have magically fixed themselves.

The MPU is working fine as well:

HardFault:
  HFSR: vecttbl=0 forced=1 debugevt=0
  CFSR: daccviol
  MMFAR: 00004000
  MSP / handler
  pc : 01000166  lr : 01000195
  sp : 0203fef0  ip : 0409a067  fp : 00000000
  r7 : 0203fef0  r6 : 00000000  r5 : 04001710  r4 : 04001794
  r3 : 00004000  r2 : 00000000  r1 : 0280001c  r0 : 0203ff18
1 Like

I would like to report an issue. I think it’s been thoroughly discussed here, but since I haven’t stressed the board enough, I’ve never had this issue, until now.

My board has the exact same configuration (and batch number) as that of @CNXSoft.
I have been doing the builds natively (deb packages), using the eight cores. The builds are usually small, and i don’t cross-compile the apps i am testing. In fact, i have some linkage errors that a rockchip staff member could not reproduce, but maybe this is not related to the issue.

To make it short, since my kernel was somehow old, i cross-compiled the kernel with the latest patches and booted with the new kernel. Later, i decided to build the kernel natively. during the build, the board started to slow down, and the build crashed. (core dump). There was no overheating. I had to reboot the board. Unfortunately, eMMC got corrupt and the fs could not even be restored (no partition anymore).

I am using the radxa power supply.

I think these patches may have something to do with the issue (not really sure):

Can someone share what can be monitored in /sys so i can try to add it to htop and see the values in real-time? I will remove the patches and redo everything and see what i get.

Maybe the 64GB DRAM timings need to be addressed?

UPDATE:
Here is what is left from the 64GB eMMC that came with the board:

[  147.852130] usb-storage 8-2.1:1.0: USB Mass Storage device detected
[  147.852245] scsi host7: usb-storage 8-2.1:1.0
[  148.882101] scsi 7:0:0:0: Direct-Access     Generic  Mass-Storage     1.11 PQ: 0 ANSI: 2
[  148.882370] sd 7:0:0:0: Attached scsi generic sg5 type 0
[  149.624090] sd 7:0:0:0: [sde] 11376640 512-byte logical blocks: (5.82 GB/5.42 GiB)
[  149.629086] sd 7:0:0:0: [sde] Write Protect is off
[  149.629088] sd 7:0:0:0: [sde] Mode Sense: 03 00 00 00
[  149.634086] sd 7:0:0:0: [sde] No Caching mode page found
[  149.634090] sd 7:0:0:0: [sde] Assuming drive cache: write through
[  149.722086] sd 7:0:0:0: [sde] Attached SCSI removable disk

Damaged or worn down?

Luckily i have a spare 64GB eMMC saved here for Rock 3A. i will redo everything and cross my fingers.

Display HDMI-IN content, some better results with GBM:

gst-launch-1.0 v4l2src device=/dev/video20 ! queue ! video/x-raw,format=BGR,width=1920,height=1080 ! glimagesink

Testing Sound (headphone Jack) output. DTS needs some adjustments.
Sound with wheezing (distorted sound with max volume) while playing MP3, AC3 Dolby Digital 5.1, and wav.

List of PLAYBACK Hardware Devices

card 0: rockchiphdmi0 [rockchip-hdmi0], device 0: rockchip-hdmi0 i2s-hifi-0 [rockchip-hdmi0 i2s-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: rockchiphdmi1 [rockchip-hdmi1], device 0: rockchip-hdmi1 i2s-hifi-0 [rockchip-hdmi1 i2s-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: rockchipes8316 [rockchip-es8316], device 0: fe470000.i2s-ES8316 HiFi es8316.7-0011-0 [fe470000.i2s-ES8316 HiFi es8316.7-0011-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

List of CAPTURE Hardware Devices

card 2: rockchipes8316 [rockchip-es8316], device 0: fe470000.i2s-ES8316 HiFi es8316.7-0011-0 [fe470000.i2s-ES8316 HiFi es8316.7-0011-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: rockchiphdmiin [rockchip,hdmiin], device 0: fddf8000.i2s-dummy_codec hdmiin-dc-0 [fddf8000.i2s-dummy_codec hdmiin-dc-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

MP3
wget https://file-examples.com/storage/fe7f2d366f62febc79635e7/2017/11/file_example_MP3_5MG.mp3

mpg123 file_example_MP3_5MG.mp3 
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
	version 1.25.13; written and copyright by Michael Hipp and others
	free software (LGPL) without any warranty but with best wishes


Terminal control enabled, press 'h' for listing of keys and functions.

Playing MPEG stream 1 of 1: file_example_MP3_5MG.mp3 ...

MPEG 1.0 L III cbr320 44100 stereo

Title:   Impact Moderato                 Artist: Kevin MacLeod                  
Album:   YouTube Audio Library
Genre:   Cinematic

[2:12] Decoding of file_example_MP3_5MG.mp3 finished.

AC3 (Dolby)
wget https://www.paolofiorani.it/TEST%20Audio/Ac3%20Dolby%20Digital%205.1Ch%20Sound%20Test.avi

ffplay -loop 2 -i Ac3\ Dolby\ Digital\ 5.1Ch\ Sound\ Test.avi 
ffplay version git-2022-05-25-73d7bc2 Copyright (c) 2003-2021 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
  configuration: --prefix=/usr --disable-libopenh264 --disable-vaapi --disable-vdpau --disable-decoder=h264_v4l2m2m --disable-decoder=vp8_v4l2m2m --disable-decoder=mpeg2_v4l2m2m --disable-decoder=mpeg4_v4l2m2m --disable-libxvid --disable-libx264 --disable-libx265 --enable-librga --enable-rkmpp --enable-nonfree --enable-gpl --enable-version3 --enable-libmp3lame --enable-libpulse --enable-libv4l2 --enable-libdrm --enable-libxml2 --enable-librtmp --enable-libfreetype --enable-openssl --enable-opengl --enable-libopus --enable-libvorbis --enable-shared --enable-decoder='aac,ac3,flac' --extra-cflags=-I/usr/src/linux-headers-5.10.66-rk3588/include
  libavutil      57.  7.100 / 57.  7.100
  libavcodec     59. 12.100 / 59. 12.100
  libavformat    59.  8.100 / 59.  8.100
  libavdevice    59.  0.101 / 59.  0.101
  libavfilter     8. 16.100 /  8. 16.100
  libswscale      6.  1.100 /  6.  1.100
  libswresample   4.  0.100 /  4.  0.100
  libpostproc    56.  0.100 / 56.  0.100
arm_release_ver of this libmali is 'g6p0-01eac0', rk_so_ver is '5'.
arm_release_ver of this libmali is 'g6p0-01eac0', rk_so_ver is '5'.
Input #0, avi, from 'Ac3 Dolby Digital 5.1Ch Sound Test.avi':=0/0   
  Metadata:
    software        : Nandub v1.0rc2
  Duration: 00:00:48.62, start: 0.000000, bitrate: 2473 kb/s
  Stream #0:0: Video: msmpeg4v3 (DIV3 / 0x33564944), yuv420p, 576x432, 2013 kb/s, 29.97 fps, 29.97 tbr, 29.97 tbn
  Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, 5.1(side), fltp, 448 kb/s
  48.19 A-V:  0.021 fd=   0 aq=    3KB vq=   96KB sq=    0B f=0/0  

aplay
ChannelPlacement.zip (1.7 MB)
aplay -D sysdefault:CARD=2 ChannelPlacement.wav

– SOUND devices

 0 [rockchiphdmi0  ]: rockchip-hdmi0 - rockchip-hdmi0
                      rockchip-hdmi0
 1 [rockchiphdmi1  ]: rockchip-hdmi1 - rockchip-hdmi1
                      rockchip-hdmi1
 2 [rockchipes8316 ]: rockchip-es8316 - rockchip-es8316
                      rockchip-es8316
 3 [rockchiphdmiin ]: rockchip_hdmiin - rockchip,hdmiin
                      rockchip,hdmiin

Does anyone have a good alsa configuration to share?

First alsa config:

Card hw:2 'rockchipes8316'/'rockchip-es8316'
  Mixer name	: ''
  Components	: ''
  Controls      : 36
  Simple ctrls  : 36
Simple mixer control 'I2STDM Digital Loopback Mode',0
  Capabilities: enum
  Items: 'Disabled' 'Mode1' 'Mode2' 'Mode2 Swap'
  Item0: 'Disabled'
Simple mixer control 'Playback Polarity',0
  Capabilities: enum
  Items: 'Normal' 'R Invert' 'L Invert' 'L + R Invert'
  Item0: 'Normal'
Simple mixer control 'Capture Polarity',0
  Capabilities: enum
  Items: 'Normal' 'Invert'
  Item0: 'Normal'
Simple mixer control 'ADC',0
  Capabilities: cvolume cvolume-joined
  Capture channels: Mono
  Limits: Capture 0 - 192
  Mono: Capture 192 [100%] [0.00dB]
Simple mixer control 'ADC Double FS Mode',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'ADC Soft Ramp',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'ALC Capture Attack Time',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 10
  Mono: 5 [50%]
Simple mixer control 'ALC Capture Decay Time',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 10
  Mono: 0 [0%]
Simple mixer control 'ALC Capture Function',0
  Capabilities: enum
  Items: 'Off' 'On'
  Item0: 'On'
Simple mixer control 'ALC Capture Hold Time',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 10
  Mono: 0 [0%]
Simple mixer control 'ALC Capture Max PGA',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 28
  Mono: 13 [46%]
Simple mixer control 'ALC Capture Min PGA',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 28
  Mono: 8 [29%]
Simple mixer control 'ALC Capture NG',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'ALC Capture NG Threshold',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 31
  Mono: 1 [3%]
Simple mixer control 'ALC Capture NG Type',0
  Capabilities: enum
  Items: 'Constant PGA Gain' 'Mute ADC Output'
  Item0: 'Mute ADC Output'
Simple mixer control 'ALC Capture Target',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 10
  Mono: 10 [100%]
Simple mixer control 'DAC',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 192
  Mono:
  Front Left: Playback 152 [79%] [-20.00dB]
  Front Right: Playback 152 [79%] [-20.00dB]
Simple mixer control 'DAC Double Fs Mode',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'DAC Notch Filter',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'DAC SRC Mux',0
  Capabilities: enum
  Items: 'LDATA TO LDAC, RDATA TO RDAC' 'LDATA TO LDAC, LDATA TO RDAC' 'RDATA TO LDAC, RDATA TO RDAC' 'RDATA TO LDAC, LDATA TO RDAC'
  Item0: 'LDATA TO LDAC, RDATA TO RDAC'
Simple mixer control 'DAC Soft Ramp Rate',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 4
  Mono: 0 [0%]
Simple mixer control 'DAC Stereo Enhancement',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 7
  Mono: 0 [0%]
Simple mixer control 'DAC Volume Control-LeR',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 1
  Mono: 0 [0%]
Simple mixer control 'Differential Mux',0
  Capabilities: enum
  Items: 'lin1-rin1' 'lin2-rin2' 'lin1-rin1 with 20db Boost' 'lin2-rin2 with 20db Boost'
  Item0: 'lin1-rin1'
Simple mixer control 'Digital Mic Mux',0
  Capabilities: enum
  Items: 'dmic disable' 'dmic data at high level' 'dmic data at low level'
  Item0: 'dmic disable'
Simple mixer control 'Enable DAC Soft Ramp',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'HP',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 4
  Mono:
  Front Left: Playback 4 [100%]
  Front Right: Playback 4 [100%]
Simple mixer control 'HPMixer Gain',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 7
  Front Left: 0 [0%]
  Front Right: 0 [0%]
Simple mixer control 'Input PGA',0
  Capabilities: volume volume-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 8
  Mono: 10 [125%]
Simple mixer control 'LLIN',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Left DAC',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Left Hp mux',0
  Capabilities: enum
  Items: 'lin1-rin1' 'lin2-rin2' 'lin-rin with Boost' 'lin-rin with Boost and PGA'
  Item0: 'lin1-rin1'
Simple mixer control 'MIC Boost',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'RLIN',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Right DAC',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Right Hp mux',0
  Capabilities: enum
  Items: 'lin1-rin1' 'lin2-rin2' 'lin-rin with Boost' 'lin-rin with Boost and PGA'
  Item0: 'lin1-rin1'

I am using PulseAudio, changed alsamixer, now sounds is much better for MP3.

Here is my alsa:

asound.state.zip (1.6 KB)

pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 33
Server Protocol Version: 33
Is Local: yes
Client Index: 7
Tile Size: 65472
User Name: rock
Host Name: rock5b
Server Name: pulseaudio
Server Version: 13.99.1
Default Sample Specification: s16le 2ch 44100Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.platform-es8316-sound.stereo-fallback
Default Source: alsa_input.platform-es8316-sound.stereo-fallback
Cookie: 90c3:465f
1 Like

Can you use PipeWire instead of PulseAudio?

I really only have experience with Gentoo on x86_64, and had all sorts of audio issues with PA, but switching to PW fixed everything.

1 Like

Is PipeWire available on Ubuntu for arm64?

Yes, i will try it.

https://packages.ubuntu.com/focal/arm64/pipewire/filelist

Not sure i followed the recipe correctly (they all use ppa), looks like i missed something:

sudo apt-get update
sudo apt install pipewire (pipewire-audio-client-libraries not available)
Get:1 http://ports.ubuntu.com/ubuntu-ports focal/universe arm64 libpipewire-0.2-1 arm64 0.2.7-1 [81.4 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports focal/universe arm64 pipewire arm64 0.2.7-1 [205 kB]
Fetched 286 kB in 2s (132 kB/s)
Selecting previously unselected package libpipewire-0.2-1:arm64.
(Reading database ... 128942 files and directories currently installed.)
Preparing to unpack .../libpipewire-0.2-1_0.2.7-1_arm64.deb ...
Unpacking libpipewire-0.2-1:arm64 (0.2.7-1) ...
Selecting previously unselected package pipewire.
Preparing to unpack .../pipewire_0.2.7-1_arm64.deb ...
Unpacking pipewire (0.2.7-1) ...
Setting up libpipewire-0.2-1:arm64 (0.2.7-1) ...
Setting up pipewire (0.2.7-1) ...
Created symlink /etc/systemd/user/default.target.wants/pipewire.service → /usr/lib/systemd/user/pipewire.service.
Created symlink /etc/systemd/user/sockets.target.wants/pipewire.socket → /usr/lib/systemd/user/pipewire.socket.
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.9) ...

systemctl --user --now disable pulseaudio.service pulseaudio.socket
systemctl --user mask pulseaudio
systemctl --user daemon-reload
systemctl --user --now enable pipewire (pipewire-pulse not available)
systemctl --user status pipewire.service
● pipewire.service - Multimedia Service
     Loaded: loaded (/usr/lib/systemd/user/pipewire.service; enabled; vendor pr>
     Active: active (running) since Sun 2022-08-21 10:38:02 -03; 12min ago
TriggeredBy: ● pipewire.socket
   Main PID: 690 (pipewire)
     CGroup: /user.slice/user-1000.slice/user@1000.service/pipewire.service
             └─690 /usr/bin/pipewire

pactl info
Connection failure: Connection refused
pa_context_connect() failed: Connection refused

1 Like

I want to know what desktop environment is this with such a low memory footprint

我想知道内存占用这么低的桌面环境是什么

Same symptom as overwriting the rootfs with /dev/uramdom. Everything slows down and then the install freezes/crashes (I sometimes do this for fun when phasing out server hardware).

I would believe you experienced a broken eMMC module where the flash controller did weird things. Most probably neither related to board nor software.

1 Like