• Disclaimer: This Vendor's Forum is a paid-for commercial area. Unlike the rest of diyAudio, the Vendor has complete control of what may or may not be posted in this forum. If you wish to discuss technical matters outside the bounds of what is permitted by the Vendor, please use the non-commercial areas of diyAudio to do so.

Support for Botic Linux driver

-snip-
root@arm:/home/debian# systemctl status mpd.service
● mpd.service - Music Player Daemon
Loaded: loaded (/lib/systemd/system/mpd.service; enabled; vendor preset: enab
Active: failed (Result: exit-code) since Fri 2019-08-09 08:05:21 GMT; 17s ago
Docs: man:mpd(1)
man:mpd.conf(5)
file:///usr/share/doc/mpd/user-manual.html
Process: 1199 ExecStart=/usr/bin/mpd --no-daemon $MPDCONF (code=exited, status
Main PID: 1199 (code=exited, status=1/FAILURE)

First of all try this command: systemctl stop mpd.service. Then edit /lib/systemd/system/mpd.service and replace $MPDCONF with /etc/mpd.conf. Then send the command systemctl daemon-reload and restart MPD by systemctl start mpd.service. I hope your problem will be solved.

Regards,
 
After some more testing I see all files are "unwritable" :confused:, even after sudo su

I tested the following files:
/etc/fstab
/etc/mpd.conf
/boot/uEnv.txt

All are unwritable so somehow something went wrong ... how to restore ?
I use login user=debian password=botic and am still running of the SD card ..

@twluke: /lib/systemd/system/mpd.service is unwritable too ....

PS ... permission problem is solved
After reboor I need to run "sudo mount -o remount,rw /dev/mmcblk0p1 /" again .... I remember there was some instruction how solve this issue ?
 
Last edited:
-snip-
What are the correct steps to set these parameter ?
In /boot/uEnv.txt I see:
cmdline=coherent_pool=1M net.ifnames=0 quiet
#cmdline=coherent_pool=1M quiet snd_soc_botic.clk_44k1=45158400 snd_soc_botic.clk_48k=49152000
#cmdline=coherent_pool=1M quiet snd_soc_botic.clk_44k1=90316800 snd_soc_botic.clk_48k=98304000

Is this related ??
Probably not relevant. If you are using a Cronus board for external MCLKs with proper divider setting on it, leave these lines as they are. If you want to set the divider to 1:1 with 45/49 clocks on the Cronus, you have to select 45/49 line in uEnv.txt; likewise 90/98 line for 90/98 clocks.

P.S. reading the data above (failed to open log file "/var/log/mpd/) I see the file mpd.log is "unwritable"
The log file setting is depedent on the setting in your /etc/mpd.conf. Usually in /var/mpd/mpd.log (IIRC).
 
After some more testing I see all files are "unwritable" :confused:, even after sudo su
-snip-
PS ... permission problem is solved
After reboor I need to run "sudo mount -o remount,rw /dev/mmcblk0p1 /" again .... I remember there was some instruction how solve this issue ?

This read-only problem is probably due to the wrong uuid in /etc/fstab. If you have another bootable linux system other than the Botic system on the BBB, boot into this system (i.e., from eMMC if Botic on the SD slot or vice versa). Then you can mount the device containing Botic system and can edit the /etc/fstab of it.

The command lsblk will tell you which device is available and lsblk -f will tell you the UUID of each device. Choose the correct one and replace the old UUID in /etc/fstab with it by editing. Make sure which device is which. The active device is indicated by / at the end on lsblk.

Example of lsblk -f
Code:
     debian@arm:~$ sudo lsblk -f [sudo] password for debian:  NAME         FSTYPE LABEL  UUID                                 MOUNTPOINT mmcblk1                                                       └─mmcblk1p1  ext4   rootfs 960a45c8-51c4-4c7d-83db-3be4131cb750 / mmcblk1boot0                                               mmcblk1boot1
I hope this will be of help.
 
I solved the permission issues and fixed part of MPD pproblem :)

Probably not relevant. If you are using a Cronus board for external MCLKs with proper divider setting on it, leave these lines as they are. If you want to set the divider to 1:1 with 45/49 clocks on the Cronus, you have to select 45/49 line in uEnv.txt; likewise 90/98 line for 90/98 clocks.

The log file setting is depedent on the setting in your /etc/mpd.conf. Usually in /var/mpd/mpd.log (IIRC).

I run I2S direct to a simple ES9023 DAC, no I2C communication and no DSD required.
This would suggest I should have setting I--- instead of MMM:
Where / how can I adjust these settings now ?

root@arm:/home/debian# grep . /sys/module/snd_soc_botic/parameters/*
/sys/module/snd_soc_botic/parameters/blr_ratio:64
/sys/module/snd_soc_botic/parameters/clk_44k1:22579200
/sys/module/snd_soc_botic/parameters/clk_48k:24576000
/sys/module/snd_soc_botic/parameters/dai_format:16385
/sys/module/snd_soc_botic/parameters/dsd_format_switch:1
/sys/module/snd_soc_botic/parameters/ext_masterclk:3
/sys/module/snd_soc_botic/parameters/pinconfig:default
/sys/module/snd_soc_botic/parameters/serconfig:MMMM


The error on MPC and MPD is getting the following result:

root@arm:/home/debian# mpc play
mpd error: Connection refused
root@arm:/home/debian# systemctl status mpd.service
● mpd.service - Music Player Daemon
Loaded: loaded (/lib/systemd/system/mpd.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2019-08-09 09:45:44 GMT; 13min ago
Docs: man:mpd(1)
man:mpd.conf(5)
file:///usr/share/doc/mpd/user-manual.html
Process: 1310 ExecStart=/usr/bin/mpd --no-daemon /etc/mpd.conf (code=exited, status=1/FAILURE)
Main PID: 1310 (code=exited, status=1/FAILURE)

Aug 09 09:45:44 arm systemd[1]: Started Music Player Daemon.
Aug 09 09:45:44 arm mpd[1310]: Aug 09 09:45 : exception: Failed to bind to '[::]:6600'
Aug 09 09:45:44 arm mpd[1310]: Aug 09 09:45 : exception: nested: Failed to bind socket: Address already in use
Aug 09 09:45:44 arm systemd[1]: mpd.service: Main process exited, code=exited, status=1/FAILURE
Aug 09 09:45:44 arm systemd[1]: mpd.service: Unit entered failed state.
Aug 09 09:45:44 arm systemd[1]: mpd.service: Failed with result 'exit-code'.
Aug 09 09:45:44 arm systemd[1]: mpd.service: Start request repeated too quickly.
Aug 09 09:45:44 arm systemd[1]: Failed to start Music Player Daemon.
Aug 09 09:45:44 arm systemd[1]: mpd.service: Failed with result 'exit-code'.
 
-snip-
file:///usr/share/doc/mpd/user-manual.html
Process: 1310 ExecStart=/usr/bin/mpd --no-daemon /etc/mpd.conf (code=exited, status=1/FAILURE)
Main PID: 1310 (code=exited, status=1/FAILURE)

Check the correct location of mpd file by which mpd. The MPD file in my image is located in /usr/local/bin/mpd. If this is the case, again re-edit /lib/systemd/system/mpd.service.

Regards,
 
I am ggetting somewhere :D

I had to run the systemctl commands again (see first lines:) ) but what about the "bind to address" error at the bottom ?

root@arm:/home/debian# systemctl enable mpd.service
Synchronizing state of mpd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mpd
root@arm:/home/debian# systemctl daemon-reload
root@arm:/home/debian# systemctl start mpd.service
root@arm:/home/debian# mpc play
volume: n/a repeat: on random: on single: off consume: off
root@arm:/home/debian# systemctl status mpd.service
● mpd.service - Music Player Daemon
Loaded: loaded (/lib/systemd/system/mpd.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2019-08-09 10:15:12 GMT; 21s ago
Docs: man:mpd(1)
man:mpd.conf(5)
file:///usr/share/doc/mpd/user-manual.html
Main PID: 1910 (mpd)
Tasks: 5 (limit: 4915)
CGroup: /system.slice/mpd.service
└─1910 /usr/bin/mpd --no-daemon /etc/mpd.conf

Aug 09 10:15:12 arm systemd[1]: Started Music Player Daemon.
Aug 09 10:15:12 arm mpd[1910]: Aug 09 10:15 : exception: bind to '0.0.0.0:6600' failed (continuing anyway, because binding to '[::]:6600' succeeded): Failed to bind socket: Address already in use
root@arm:/home/debian#

From /etc/mpd.conf:
# For network
bind_to_address "any"
#
 
Thank you very much for your support so far :up:

Because of multiple errors I still wonder about the optargs settings as mentioned earlier:

I run I2S direct to a simple ES9023 DAC, no I2C communication and no DSD required.
This would suggest I should have setting I--- instead of MMMM:
Where / how can I adjust these settings now ?

root@arm:/home/debian# grep . /sys/module/snd_soc_botic/parameters/*
/sys/module/snd_soc_botic/parameters/blr_ratio:64
/sys/module/snd_soc_botic/parameters/clk_44k1:22579200
/sys/module/snd_soc_botic/parameters/clk_48k:24576000
/sys/module/snd_soc_botic/parameters/dai_format:16385
/sys/module/snd_soc_botic/parameters/dsd_format_switch:1
/sys/module/snd_soc_botic/parameters/ext_masterclk:3
/sys/module/snd_soc_botic/parameters/pinconfig:default
/sys/module/snd_soc_botic/parameters/serconfig:MMMM
 
Thank you very much for your support so far :up:

Because of multiple errors I still wonder about the optargs settings as mentioned earlier:

I run I2S direct to a simple ES9023 DAC, no I2C communication and no DSD required.
This would suggest I should have setting I--- instead of MMMM:
Where / how can I adjust these settings now ?

Setting I--- will be appropriate. Though I don't know whether your DAC is used as master or slave in terms of MCLK clock setting, I suppose that you are referring to http://bbb.ieero.com/. There is a section of "DAI format", in which I think you can find your appropriate setting.

Rgds,
 
This I wrote at the bottom of page 284: it explains why I do not understand where to edit these settings now.

From the old Botic I had to mount "/boot/uboot" and edit uEnv.txt" to be able to set the correct optargs parameters.
Is this still neccesary ? ... when I do so the uEnv.txt file is empty but when I do not mount it and edit /boot/uEnv.txt there is a lot in there but no "optargs" line

What are the correct steps to set these parameter ?

In /boot/uEnv.txt I see:
cmdline=coherent_pool=1M net.ifnames=0 quiet
#cmdline=coherent_pool=1M quiet snd_soc_botic.clk_44k1=45158400 snd_soc_botic.clk_48k=49152000
#cmdline=coherent_pool=1M quiet snd_soc_botic.clk_44k1=90316800 snd_soc_botic.clk_48k=98304000

Is this related ??
 
This I wrote at the bottom of page 284: it explains why I do not understand where to edit these settings now.

From the old Botic I had to mount "/boot/uboot" and edit uEnv.txt" to be able to set the correct optargs parameters.
Is this still neccesary ? ... when I do so the uEnv.txt file is empty but when I do not mount it and edit /boot/uEnv.txt there is a lot in there but no "optargs" line

What are the correct steps to set these parameter ?

In /boot/uEnv.txt I see:
cmdline=coherent_pool=1M net.ifnames=0 quiet
#cmdline=coherent_pool=1M quiet snd_soc_botic.clk_44k1=45158400 snd_soc_botic.clk_48k=49152000
#cmdline=coherent_pool=1M quiet snd_soc_botic.clk_44k1=90316800 snd_soc_botic.clk_48k=98304000

Is this related ??

If your DAC has no onboard clock, the clock on BBB, which is 48K only, becomes MCLK (i.e., 44.1K clock is not supported). Modify the kernel option in uEnv/txt by adding "snd_soc_botic.ext_masterclk=2" just after "cmdline=coherent_pool=1M quiet" and there will be no need to add "snd_soc_botic.clk_blah_blah".

This means 44.1K sources will be played with different rate. The details are well described in the section of "Clocks configuration".

Rgds,
 
I have 2 Beaglebones for testing.
One with external clock for 44.1 and onboard for 48k which I used so far (Botic 4)
The other has a hacked XMOS USB receiver board from which I re-used the dual clock section which I want to use now ;)

I know what values I have to set for snd_soc_botic options from the Miero page.

I was used to see optargs= ... blabla
Apparently now it is similar options but now I put the options after cmdline=

Hacked: :D

1k0.jpg


1k0.jpg


1k0.jpg
 
My earlier question about the socket error I was experiencing at "systemctl status mpd.service" :

Aug 09 10:15:12 arm mpd[1910]: Aug 09 10:15 : exception: bind to '0.0.0.0:6600' failed (continuing anyway, because binding to '[::]:6600' succeeded): Failed to bind socket: Address already in use
root@arm:/home/debian#

From /etc/mpd.conf:
# For network
bind_to_address "any"
#

It's quite okay. You can ignore this error.

Rgds,


If I change "any" to "0.0.0.0" (like was mentioned in the first BeagleBone topic at ComputerAudiophile.com - I guess that was in 2013) the error is not shown :)

root@arm:/home/debian# systemctl status mpd.service
● mpd.service - Music Player Daemon
Loaded: loaded (/lib/systemd/system/mpd.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2019-08-09 12:52:40 GMT; 5s ago
Docs: man:mpd(1)
man:mpd.conf(5)
file:///usr/share/doc/mpd/user-manual.html
Main PID: 1209 (mpd)
Tasks: 5 (limit: 4915)
CGroup: /system.slice/mpd.service
└─1209 /usr/bin/mpd --no-daemon /etc/mpd.conf

Aug 09 12:52:40 arm systemd[1]: Started Music Player Daemon.
root@arm:/home/debian#
 
I am already past this “error” but still have some other issues but stopped for now.

I was probably naive thinking I solved the “bind-to-address” warning message as I really have limited linux knowledge and mainly do trial-by-error if it gets over my head.

I will try to pinpoint my other issues and report back later.