You are not logged in.
@hacksenwerk
Some years ago, when ALSA backend was removed from Firefox, you had to
1. compile apulse,
2. configure ALSA mixer (with arateconf),
3. allow ALSA sound device in Firefox's sandbox config.
Today it is more simple. You have to
1. install apulse from Devuan repo,
2. configure ALSA mixer (with arateconf).
! You do not need to configure sandbox for apulse.
HYPOTHESIS: Perhaps, it might be possible to use microphone with Firefox's ALSA backend without apulse.
What might be needed is to set
security.sandbox.content.read_path_whitelist /dev/snd/
security.sandbox.content.write_path_whitelist /dev/snd/
in about:config
See, for example:
How to run FIREFOX without pulseaudio, by using "apulse" (Nov 22, 2017)
_https://forums.linuxmint.com/viewtopic.php?t=257818
You won't have sounds on firefox, do you ?
Playback in Firefox works without problems with ALSA (without pulseaudio and pipewire).
Sound quality is good, because fftrate ALSA plugin is installed and enabled (with ALSA config).
NOTE: If you want to use Firefox for video conferences, you have to run it with apulse:
$ apulse firefox
It works without problems, if ALSA software mixer is configured with arateconf.
If you are an ALSA expert, you may try to create ALSA config without the help of arateconf.
EDITED
BEFORE running "arateconf", you should close all audio applications.
The "TEST" function of "arateconf" will fail, if your "audio device" is already in use.
When pulseaudio and pipewire are removed, you can easily free your "audio devices" with "fuser".
For example:
$ fuser -av $(find /dev/snd -type c 2>/dev/null)
USER PID ACCESS COMMAND
/dev/snd/controlC0: igor 2261 F.... mate-settings-d
igor 2310 F.... mate-volume-con
/dev/snd/pcmC0D0c:
/dev/snd/pcmC0D0p: igor 8248 F...m firefox-esr
/dev/snd/seq:
/dev/snd/timer: igor 8248 f.... firefox-esr
"mate-settings-daemon" and "mate-volume-control-status-icon" need not to be killed.
But "firefox-esr" should be killed to free the "audio device":
$ fuser -ikv $(find /dev/snd -type c 2>/dev/null)
USER PID ACCESS COMMAND
/dev/snd/controlC0: igor 2261 F.... mate-settings-d
igor 2310 F.... mate-volume-con
Kill process 2261 ? (y/N) n
Kill process 2310 ? (y/N) n
/dev/snd/pcmC0D0p: igor 8248 F...m firefox-esr
Kill process 8248 ? (y/N) y
/dev/snd/timer: igor 8248 f.... firefox-esr
Kill process 8248 ? (y/N) y
Could not kill process 8248: No such process
$ fuser -av $(find /dev/snd -type c 2>/dev/null)
USER PID ACCESS COMMAND
/dev/snd/controlC0: igor 2261 F.... mate-settings-d
igor 2310 F.... mate-volume-con
/dev/snd/pcmC0D0c:
/dev/snd/pcmC0D0p:
/dev/snd/seq:
/dev/snd/timer:
Now, when audio devices are free, you can run "arateconf".
if i press "T", there is "failed".
Input: Open device "hw:C1,0" ... Failed!
It failed to open "Input", because you configured your "Cambridge USB DAC" for recording.
"DAC" means "digital-to-analog converter",
see _https://en.wikipedia.org/wiki/Digital-to-analog_converter.
As the name suggests, it is not supposed to be used to record "analog sound".
For "Output", you also got an error message:
Set format 'S32_LE' ... Unsupported!
It means that your Cambridge DAC does not support 'S32_LE' (it is now default for playback),
or ALSA driver (snd_usb_audio) for your USB DAC does not support 32bit.
Try 'S16_LE', or else.
Read the manual again and change 'S32_LE' to 'S16_LE'.
Press "F" to change "format".
======================
| Sound parameters |
----------------------
S - Sample rate = 48000 Hz
C - Channels = 2
F - Format: 'S32_LE'
A - Alignment buffer and period [X]
B - Set buffer multiplier = 1
M - Set period multiplier = 1
P - Play ampl. = 0 dB
R - Rec. ampl. = 0 dB
ESC - Return to main menu
> f
==============================
| Available sample formats |
------------------------------
0 - U8
1 - S16_LE
2 - S24_3LE
3 - S24_LE
4 - S32_LE
5 - FLOAT_LE
6 - FLOAT64_LE
ESC - Return to main menu
>
Your Intel HDA codec (Generic_1) does support 48kHz 32bit.
It should also support 192kHz 32bit.
This may provide much better sound quality than your "Cambridge DAC" (it is likely to be 48kHz 16bit and nothing more with ALSA).
You can test different "sample rates" and "formats" with "arateconf".
You can also check your "proc" (cards, hw_params), for example:
$ cat /proc/asound/cards
0 [system ]: USB-Audio - iMic USB audio system
Griffin Technology, Inc iMic USB audio system at usb-0000:00:1a.0-1.3.4, full s
$ cat /proc/asound/card*/pcm*p/sub*/hw_params
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 1920
buffer_size: 7680
$ cat /proc/asound/card0/pcm0p/sub0/hw_params
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 1920
buffer_size: 7680
NOTE: "arateconf" is simply a tool to configure ALSA,
that is, a tool to generate an ALSA config file "~/.asoundrc".
It takes data from ALSA and from Linux (proc, etc.).
Notable Realtek products include ... audio codecs (AC'97 and Intel HD Audio ).
_https://en.wikipedia.org/wiki/Realtek#Notable_products
ALSA detected an Intel HDA codec on your motherboard. It has a "generic driver" for it.
It should work without problems.
You may select Intel HDA codec as default for recording.
If you connect new USB audio devices, you have to create a new ALSA config with "arateconf".
since started on linux journey, found it very strange to say the least , that when wanting to @uninstall say a driver like pulseaudio, this couldwould render the laptop completely broke, like uninstalling the whole desktop
xfce4 and mate-desktop-environment are meta-packages, they can be safely removed.
See: _https://wiki.debian.org/metapackage
Meta-packages are not completely empty, they have inside a list of dependencies.
On the other hand, to fix problems with desktop, you may reinstall your Linux Desktop Environment.
That is, you can simply reinstall a meta-package. For example:
sudo apt-get --reinstall install mate-desktop-environment
See also: _https://www.cyberciti.biz/faq/debian-ubuntu-linux-reinstall-a-package-using-apt-get-command/
Desktop environment - ArchWiki
_https://wiki.archlinux.org/title/Desktop_environment
If you want to learn something about Linux Desktop environments, you may try to install MATE:
How to Install MATE Desktop and remove XFCE
1. Installing MATE
sudo apt update
sudo apt install mate-desktop-environment
sudo apt install mate-desktop-environment-extras
This may re-install pulseaudio, but it is easy to remove.
You may also need to unhold pulseaudio crap.
$ apt-mark showhold
pavucontrol
pipewire
pipewire-alsa
pipewire-audio
pipewire-audio-client-libraries
pipewire-bin
pipewire-doc
pipewire-jack
pipewire-libcamera
pipewire-media-session
pipewire-media-session-alsa
pipewire-media-session-jack
pipewire-media-session-pulseaudio
pipewire-pulse
pipewire-tests
pipewire-v4l2
pulseaudio
pulseaudio-equalizer
pulseaudio-module-bluetooth
pulseaudio-module-gsettings
pulseaudio-module-jack
pulseaudio-module-lirc
pulseaudio-module-raop
pulseaudio-module-zeroconf
pulseaudio-utils
$ apt-mark
apt 2.6.1devuan1 (amd64)
Usage: apt-mark [options] {auto|manual} pkg1 [pkg2 ...]
Most used commands:
auto - Mark the given packages as automatically installed
manual - Mark the given packages as manually installed
minimize-manual - Mark all dependencies of meta packages as automatically installed.
hold - Mark a package as held back
unhold - Unset a package set as held back
showauto - Print the list of automatically installed packages
showmanual - Print the list of manually installed packages
showhold - Print the list of packages on hold
To select MATE Desktop as default, run
$ sudo update-alternatives --config x-session-manager
There are 3 choices for the alternative x-session-manager (providing /usr/bin/x-session-manager).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/startxfce4 50 auto mode
1 /usr/bin/mate-session 50 manual mode
2 /usr/bin/startxfce4 50 manual mode
3 /usr/bin/xfce4-session 40 manual mode
Press <enter> to keep the current choice[*], or type selection number: 1
It should be like this:
$ sudo update-alternatives --config x-session-manager
There are 3 choices for the alternative x-session-manager (providing /usr/bin/x-session-manager).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/mate-session 50 auto mode
* 1 /usr/bin/mate-session 50 manual mode
2 /usr/bin/startxfce4 50 manual mode
3 /usr/bin/xfce4-session 40 manual mode
Press <enter> to keep the current choice[*], or type selection number:
SLIM - ArchWiki
_https://wiki.archlinux.org/title/SLiM
2. Removing XFCE (optional)
$ sudo dpkg -l | grep .xfce
$ sudo apt purge xfce*
$ sudo apt autoremove
See also:
_https://tecadmin.net/how-to-install-mate-desktop-on-debian-11/
@kapqa
Pulseaudio is not a driver. It is, rather, a sort of malware.
XFCE is buggy and crappy, and it does not support "alsa-only".
The best solution might be Devuan MATE Desktop (without pulseaudio and pipewire).
It works without problems even on very old computers (such as those of 2001).
Although, of course, web browsers are rather slow on very old computers.
To summarize:
The manual is here:
_https://dev1galaxy.org/viewtopic.php?pid=53969#p53969
See also:
_https://dev1galaxy.org/viewtopic.php?pid=54059#p54059
no , dont know about that
Perhaps, you do not want to know.
It is a very old problem.
fftrate ALSA plugin was created in 2009.
The story of "system wide equalizer" also began in 2009.
For example:
HOWTO systemwide eq with alsaequal
_https://forums.debian.net/viewtopic.php?t=47899
Today "alsaequal" is easy to install:
_https://askubuntu.com/a/951207
Installation
sudo apt install libasound2-plugin-equal
Start
alsamixer -D equal amixer -D equal
To change to the equalizer in the running program, press F6, choose enter device name... and enter “equal”.
Semi-deaf Linux users do need a sort of "equalizer" to "enhance sound", especially high frequencies.
$ apt info libasound2-plugin-equal
Package: libasound2-plugin-equal
Version: 0.6-8
Priority: optional
Section: libs
Source: alsaequal
Maintainer: Debian Multimedia Maintainers <debian-multimedia@lists.debian.org>
Installed-Size: 72.7 kB
Depends: caps (>= 0.9.11), libasound2 (>= 1.0.16), libc6 (>= 2.14)
Homepage: http://www.thedigitalmachine.net/alsaequal.html
Tag: role::shared-lib
Download-Size: 14.9 kB
APT-Sources: http://deb.devuan.org/merged daedalus/main amd64 Packages
Description: equalizer plugin for ALSA
Alsaequal is a real-time adjustable equalizer plugin for ALSA. It can
be adjusted using an ALSA compatible mixer, like alsamixergui or
alsamixer.
.
Alsaequal uses the Eq CAPS LADSPA Plugin for audio processing, actually
alsaequal is a generic LADSPA plugin interface with real-time access to
the LADSPA controls (the LADSPA plugin included with alsa doesn't allow
for real-time controls) but it was developed for and only tested with
Eq CAPS LADSPA plugin.
getting error but now alsa is back with "proper""volume"
Shutting down ALSA...done. Setting up ALSA...warning: 'alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime restore' failed with error message 'alsa-lib main.c:1554:(snd_use_case_mgr_open) error: failed to import hw:29 use case configuration -2'...done.
You may try a workaround from stackoverflow
ALSA: failed to import hw:0 use case configuration -2
_https://stackoverflow.com/questions/76333959/alsa-failed-to-import-hw0-use-case-configuration-2
$ man alsactl | grep ucm
-D, --ucm-defaults
-U, --no-ucm
$ whereis alsactl
alsactl: /usr/sbin/alsactl /usr/share/man/man1/alsactl.1.gz
$ /usr/sbin/alsactl -h
$ sudo /usr/sbin/alsactl -d restore
/usr/sbin/alsactl: init_ucm:48: ucm open '-hw:0': -6
...
See also:
Alsa UCM
_https://wiki.postmarketos.org/wiki/Alsa_UCM
Do you have the ucm.conf file?
It should be here:
/usr/share/alsa/ucm2/ucm.conf
EDIT:
_https://wiki.postmarketos.org/wiki/Alsa_UCM
If an UCM configuration is present for a card then pulseaudio will ignore the built-in profiles and generate a profile based on the UCM files....
1. Disable PulseAudio or PipeWire so ALSA UCM is not active at all.
This may mean, perhaps, that you do not need ALSA UCM, if you are not using PulseAudio and PipeWire.
Therefore, the workaround from stackoverflow may fix the problem.
sudo /usr/sbin/alsactl --debug restore
sudo /usr/sbin/alsactl --debug --no-ucm restore
Or you can simply ignore the "error" message, which is, in fact, just "warning", not "error".
EDIT:
If I understood you correctly, your ALSA was almost silent.
The "force-reload" of ALSA seemed to fix the problem.
Since ALSA UCM is not needed, you may simply ignore the "warning" message, and see how it works.
NOTE: OSS4 is much more louder than ALSA with the same sound card.
The fftrate ALSA plugin makes ALSA louder, but not as loud as OSS4.
Most important, the fftrate improves the sound quality of ALSA, although, of course, I like more the sound of OSS4.
If you are content with the sound quality of ALSA, you may use it as is.
But if you need to configure a software mixer for ALSA (e.g., for video conferencing), it might be a difficult task (without the fftrate plugin).
See, for example:
[Arch Linux forum]: [SOLVED] ALSA and dmix (software mixing)
_https://bbs.archlinux.org/viewtopic.php?id=275656
isuee is that sound is very low, even with vlc 200% it is probably 1/4 of original strength, and all relevant faderin amixer is set 100%.
It is not an issue, it is a feature of ALSA.
With normal loudness, you may hear noise produced by the ALSA resampler.
If you do not like this feature, you may compile and install fftrate ALSA plugin (and configure it).
since i removed only "pulseaudio", there is another libpulse0?
is this also needed for removal?
thanks.
Have you read my manual?
It was posted above.
See: _https://dev1galaxy.org/viewtopic.php?pid=53969#p53969
@kapqa
"alsa-only" means that you may need some Linux commands.
To reload ALSA on Devuan, you can use alsa-utils.
The Devuan default is "SysV init"
$ /sbin/init --version
SysV init version: 3.06
If you are using "SysV init", you can reload ALSA with this command:
$ sudo /etc/init.d/alsa-utils force-reload
Shutting down ALSA...done.
Setting up ALSA...done.
"soft restart":
$ sudo /etc/init.d/alsa-utils restart
Shutting down ALSA...done.
Setting up ALSA...done.
$ sudo /etc/init.d/alsa-utils stop
Shutting down ALSA...done.
$ sudo /etc/init.d/alsa-utils start
Setting up ALSA...done.
Another useful command is fuser
$ fuser -av $(find /dev/snd -type c 2>/dev/null)
USER PID ACCESS COMMAND
/dev/snd/controlC0: igor 2328 F.... mate-settings-d
igor 2382 F.... mate-volume-con
/dev/snd/pcmC0D0c:
/dev/snd/pcmC0D0p: igor 2843 F...m firefox-esr
/dev/snd/seq:
/dev/snd/timer: igor 2843 f.... firefox-esr
PID 2328 /usr/bin/mate-settings-daemon
PID 2382 mate-volume-control-status-icon
PID 2843 /usr/lib/firefox-esr/firefox-esr
"mate-volume-control-status-icon" is MATE volume control applet.
It works with ALSA in "alsa-only" mode (as well as "mate-settings-daemon").
However, after removal of pulseaudio, you have to reload ALSA, or reboot the system.
@kapqa
The solution to Linux sound problems is rather straightforward:
1. remove pulseaudio;
2. install and configure fftrate ALSA plugin.
It seems that many Debian users have already removed pulseaudio,
but nobody has compiled fftrate, although it is very simple.
There is a conspiracy theory that pulseaudio and pipewire are destroying human brain by "harmful frequencies".
You may ask golinux to compile deb packages of fftrate for you.
He has Chimaera (oldstable) and, therefore, can install gcc-10 and g++-10 from the standard Chimaera repositories (that is, Devuan's oldstable repositories).
This also means that gcc-10 is the default compiler for Chimaera, and he does not need to configure "make" (./fftrate/src/lib/makedef.mk ) for gcc-10.
The fftrate deb-packages, which were compiled on old Debian/Ubuntu distros, also work on new Debian/Ubuntu (and Devuan) versions without problems.
Daedalus 5.0 is the current stable release.
Chimaera 4.0 has moved to oldstable status.
@kapqa
I have Intel HDA codec ALC887.
Sound quality is good with both ALSA and OSS4.
If you do not know how to configure ALSA, any card may sound crappy.
Step 1: Remove pulseaudio.
The manual is here:
_https://dev1galaxy.org/viewtopic.php?pid=49837#p49837
Step 2: Compile fftrate ALSA plugin and configure a software mixer for ALSA.
The manual is here:
_https://dev1galaxy.org/viewtopic.php?id=6644
fftrate is an open source (GPL3) magic tool to fix sound quality on Linux Laptops and Desktops.
$ du -sh ./* | sort -h
24K ./alsa-config-utils_1.6.3_amd64.deb
32K ./libasound2-plugin-fftrate_1.6.3_amd64.deb
40K ./pcm-utils_1.6.3_amd64.deb
can someone please write a guide on "howto" do devuan with alsa-only?
You may try something like this:
How to remove pulseaudio (and pipewire)
_https://dev1galaxy.org/viewtopic.php?pid=49837#p49837
ArchWiki ALSA
_https://wiki.archlinux.org/title/Advanced_Linux_Sound_Architecture#Unmuting_the_channels
How to configure a software mixer for ALSA
_https://dev1galaxy.org/viewtopic.php?id=6644
If it works, you may test sound quality with ALSA:
_https://dev1galaxy.org/viewtopic.php?id=6716
HiRes Binaural+ with ALSA
_https://dev1galaxy.org/viewtopic.php?id=6663
Hope it works for you.
After 20 years, at last I know how to fix this annoying behaviour.
I thought that it is a special feature of Devuan.
If it is "annoying behaviour" for you, it does not mean that it is also annoying for others.
Since nobody complains, it might be the normal way of things for pulseaudio users.
Although, of course, it might be a security problem.
The /etc/udisks2/mount_options.conf should be tested and verified.
Umask
_https://en.wikipedia.org/wiki/Umask
_https://wiki.archlinux.org/title/Umask
$ umask
0022
_https://www.linuxquestions.org/questions/linux-general-1/mounting-ntsf-drive-in-fstab-unsure-of-fmask-and-dmask-values-4175458533/#post4934200
fmask, dmask, and umask taken together pertain only to Windows filetypes ( NTFS and FAT32 ) whereas umask alone pertains to both windows and Linux filetypes but are implemented 2 different ways. On Linux Filesystems At the moment of birth every file has permissions of 666 and every directory has permissions of 777. A system wide umask is created to modify these permissions immediately after birth and it's currently set at 002. So when you create a new file it's permissions are: 666 002 <-- minus the umask == 664 And every new directory has permissions of: 777 002 <-- minus the umask == 775 On Windows Filesystems Windows fileystems have no Linux file permission attributes so a virtual filesystem is used to create a "view" to give them the appearance that they do have them. The system wide umask has no affect on these filesystems nor does a chmod or a chown. They can only be set when the "view" is created in fstab. At the moment of birth NTFS files and folders start out with exactly the same permissions: 777. If you were to set up in fstab a umask of 002 for these partitions then the result would be different from a Linux filesystem: File: 777 - 002 = 775 Folder: 777 - 002 = 775 The folder setting is fine and that's the way you want them to be but the files have all been made executable - every single one of them. You can change that by separating umask into it's constituent parts: fmask and dmask: So if you set up fstab this way for an NTFS partition: dmask=002,fmask=113 File: 777 - 113 = 664 Folder: 777 - 002 = 775
_https://thelinuxcode.com/automount-usb-ubuntu/
_https://www.freedesktop.org/wiki/Software/udisks/
_https://storaged.org/doc/udisks2-api/latest/mount_options.html
_https://www.kernel.org/doc/Documentation/filesystems/vfat.txt
ArchWiki
_https://wiki.archlinux.org/title/Udisks#NTFS_mount_failing
_https://wiki.archlinux.org/title/Udisks#NTFS_file_creation_failing_(filename-dependent)
$ locate udisksd
/usr/libexec/udisks2/udisksd
/usr/share/man/man8/udisksd.8.gz
$ man udisksd
$ man udisksctl
System: Devuan, Mate Desktop
$ cat /etc/*-release | grep PRETTY
PRETTY_NAME="Devuan GNU/Linux 5 (daedalus)"
$ inxi -S
System:
Host: devuan Kernel: 6.1.0-25-amd64 arch: x86_64 bits: 64 Desktop: MATE
v: 1.26.0 Distro: Devuan GNU/Linux 5 (daedalus)
When you insert a USB drive, it is automatically mounted to a directory under /media
However, if your USB drive has a Windows file system (e.g. NTFS, or exFAT), all your text files (and all other files: *.jpg, *.wav, etc.) on the USB drive become executable (777 - 022 = 755).
If you copy such files to your home folder, you have to fix permissions, for example:
$ chmod -Rv -x+X -- ./
_https://unix.stackexchange.com/questions/296967/how-to-recursively-remove-execute-permissions-from-files-without-touching-folder
It seems that this problem can be easily fixed with /etc/udisks2/mount_options.conf
$ ls -1 /etc/udisks2/
mount_options.conf.example
udisks2.conf
$ sudo nano /etc/udisks2/mount_options.conf
$ cat /etc/udisks2/mount_options.conf
[defaults]
vfat_defaults=uid=$UID,gid=$GID,shortname=mixed,utf8=1,showexec,dmask=022,fmask=133
exfat_defaults=uid=$UID,gid=$GID,iocharset=utf8,errors=remount-ro,dmask=022,fmask=133
ntfs_defaults=uid=$UID,gid=$GID,dmask=022,fmask=133
NOTE: /etc/udisks2/mount_options.conf is enabled automatically (a reboot is not required).
You can simply insert your USB drive and check file permissions:
$ touch file.txt
$ stat -c %a file.txt
644
$ mkdir folder1
$ stat -c %a folder1
755
See:
_https://chmodcommand.com/chmod-644/
_https://chmodcommand.com/chmod-755/
Perhaps, this mount_options.conf can be somehow improved, or there is a better solution.
Brave works without problems
_https://brave.com/linux/#release-channel-installation
Release Channel Installation
Debian, Ubuntu, Mintsudo apt install curl
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main"|sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo apt update
sudo apt install brave-browser
a half-assed non-solution to the wrong problem
Are you talking about pulseaudio?
Thank you for the link.
Have you already tried to build it?
If you really need it, you may start a new topic: "How to install the newest version of scrcpy?"
And 40 minutes after that, the FBI had Thomas's Samsung Android smartphone unlocked and open for detailed inspection of the shooter's social media, browsing, texting, whatever, history.
What's interesting is that in other, just it was coincidental really, reporting, it appears to be fortuitous for the FBI that Thomas was not using a later model Apple iOS device since some documents leaked from Cellebrite indicate its inability to unlock such devices. 9to5Mac picked up on this last Thursday, reporting under their headline "Cellebrite cannot unlock most iPhones running iOS 17.4 and later." They wrote: "Leaked documents reveal that Cellebrite cannot unlock iPhones running iOS 17.4 and later, at least as of the date of publication," which was April of this year. They said: "The company has confirmed that the documents are genuine. Cellebrite devices, which are widely used by law enforcement agencies, can crack most Android phones, though there are exceptions.
_https://www.grc.com/sn/sn-984.htm
Security Now: CrowdStruck
_https://youtu.be/eLkfKizz6NU
How to rebuild scrcpy for Devuan.
Install the tools "which are considered essential for building Debian packages":
sudo apt install build-essential debhelper devscripts
sudo apt install apt-file command-not-found
Debian wiki: apt-file
_https://wiki.debian.org/apt-file
NOTE: If apt-file doesn't help, you may try to search with Google, for example:
"/usr/lib/android-sdk/build-tools/debian/dx" site:packages.ubuntu.com
https://www.google.com/search?&q=%22%2Fusr%2Flib%2Fandroid-sdk%2Fbuild-tools%2Fdebian%2Fdx%22+site%3Apackages.ubuntu.com
Install android-sdk and default-jdk
sudo apt install android-sdk default-jdk
dalvik-exchange is also missing (it is in the same Ubuntu repository)
dalvik-exchange_10.0.0+r36-4_all.deb 2022-04-30
http://us.archive.ubuntu.com/ubuntu/pool/universe/a/android-platform-dalvik/dalvik-exchange_10.0.0+r36-4_all.deb
Notice that "android-platform-dalvik" is the name of the source.
The folder "android-platform-dalvik" contains the source packages and the binaries.
This is how to search for missing packages.
Download and install dalvik-exchange
sudo dpkg -i dalvik-exchange_10.0.0+r36-4_all.deb
Download and install 3 packages of "android-framework-23" from the same repository.
android-sdk-platform-23
_http://us.archive.ubuntu.com/ubuntu/pool/universe/a/android-framework-23/android-sdk-platform-23_6.0.1+r72-6_all.deb
libandroid-23-java
_http://us.archive.ubuntu.com/ubuntu/pool/universe/a/android-framework-23/libandroid-23-java_6.0.1+r72-6_all.deb
libandroid-uiautomator-23-java
_http://us.archive.ubuntu.com/ubuntu/pool/universe/a/android-framework-23/libandroid-uiautomator-23-java_6.0.1+r72-6_all.deb
sudo dpkg -i libandroid-23-java_6.0.1+r72-6_all.deb libandroid-uiautomator-23-java_6.0.1+r72-6_all.deb android-sdk-platform-23_6.0.1+r72-6_all.deb
1. Download the native Debian source packages from the same Ubuntu repository
scrcpy_1.25.orig.tar.gz 2023-01-21
scrcpy_1.25-1.debian.tar.xz 2023-01-21
scrcpy_1.25-1.dsc 2023-01-21
_http://us.archive.ubuntu.com/ubuntu/pool/universe/s/scrcpy/scrcpy_1.25.orig.tar.gz
_http://us.archive.ubuntu.com/ubuntu/pool/universe/s/scrcpy/scrcpy_1.25-1.debian.tar.xz
_http://us.archive.ubuntu.com/ubuntu/pool/universe/s/scrcpy/scrcpy_1.25-1.dsc
$ ls -1
scrcpy_1.25-1.debian.tar.xz
scrcpy_1.25-1.dsc
scrcpy_1.25.orig.tar.gz
2. Extract the source code
dpkg-source -x *.dsc
$ dpkg-source -x *.dsc
gpgv: Signature made Sat 21 Jan 2023 01:31:18 AM CET
gpgv: using RSA key 7E7729476D87D6F11D91ACCBC293E7B461825ACE
gpgv: Can't check signature: No public key
dpkg-source: warning: cannot verify inline signature for ./scrcpy_1.25-1.dsc: no acceptable signature found
dpkg-source: info: extracting scrcpy in scrcpy-1.25
dpkg-source: info: unpacking scrcpy_1.25.orig.tar.gz
dpkg-source: info: unpacking scrcpy_1.25-1.debian.tar.xz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: applying 0001-Fit-SDK-23.patch
$ ls -1
scrcpy-1.25
scrcpy_1.25-1.debian.tar.xz
scrcpy_1.25-1.dsc
scrcpy_1.25.orig.tar.gz
3. cd to the source code directory
cd scrcpy-1.25
4. Read "Build-Depends" in /debian/control
$ cat ./debian/control
Source: scrcpy
Section: net
Priority: optional
Maintainer: Yangfl <mmyangfl@gmail.com>
Build-Depends:
debhelper-compat (= 13),
Build-Depends-Arch:
meson,
libavcodec-dev,
libavdevice-dev,
libavformat-dev,
libavutil-dev,
libsdl2-dev,
libusb-1.0-0-dev,
Build-Depends-Indep:
android-sdk,
android-sdk-platform-23,
default-jdk,
unzip,
zip,
Rules-Requires-Root: no
Standards-Version: 4.6.2
Homepage: https://github.com/Genymobile/scrcpy
Vcs-Git: https://salsa.debian.org/yangfl-guest/scrcpy.git
Vcs-Browser: https://salsa.debian.org/yangfl-guest/scrcpy
Package: scrcpy
Architecture: any
Depends: ${misc:Depends}, ${shlibs:Depends}, scrcpy-server (= ${source:Version}),
Recommends: adb,
Description: Display and control your Android device
This application provides display and control of Android devices connected on
USB (or over TCP/IP). It does not require any root access.
.
This package contains the client (desktop) binary.
Package: scrcpy-server
Architecture: all
Multi-Arch: foreign
Depends: ${misc:Depends},
Description: Display and control your Android device - server binary
This application provides display and control of Android devices connected on
USB (or over TCP/IP). It does not require any root access.
.
This package contains the server (mobile) binary, which will be pushed to the
Android device.
5. Install build dependencies
sudo mk-build-deps -i
sudo apt install -f
6. Build the packages
$ dpkg-buildpackage -us -uc -b
...
dpkg-deb: building package 'scrcpy' in '../scrcpy_1.25-1_amd64.deb'.
dpkg-deb: building package 'scrcpy-dbgsym' in '../scrcpy-dbgsym_1.25-1_amd64.deb'.
dpkg-deb: building package 'scrcpy-server' in '../scrcpy-server_1.25-1_all.deb'.
dpkg-genbuildinfo --build=binary -O../scrcpy_1.25-1_amd64.buildinfo
dpkg-genchanges --build=binary -O../scrcpy_1.25-1_amd64.changes
dpkg-genchanges: info: binary-only upload (no source code included)
dpkg-source --after-build .
dpkg-buildpackage: info: binary-only upload (no source included)
cd ../
$ ls -1 ./scr*.deb
./scrcpy_1.25-1_amd64.deb
./scrcpy-dbgsym_1.25-1_amd64.deb
./scrcpy-server_1.25-1_all.deb
7. Install the packages
sudo dpkg -i scrcpy_1.25-1_amd64.deb scrcpy-server_1.25-1_all.deb
You may also try to build the sources from Debian unstable:
_https://packages.debian.org/source/unstable/scrcpy
Download scrcpy
scrcpy_1.25-1.dsc
scrcpy_1.25.orig.tar.gz
scrcpy_1.25-1.debian.tar.xz
NOW WE KNOW WHERE TO SEARCH FOR MISSING PACKAGES.
The reference package:
scrcpy_1.25-1_amd64.deb 2023-01-21
http://us.archive.ubuntu.com/ubuntu/pool/universe/s/scrcpy/scrcpy_1.25-1_amd64.deb
It is a native Debian package (without "ubuntu" mark) of 2023.
Ubuntu Maintainers Handbook:
When Ubuntu adds a change or modification on top on what is in Debian, that change is expressed in the version number. One can think of a version number consisting of three segments: [upstream_version]-[debian_revision]ubuntu[ubuntu_revision]. The - splits the upstream version from the Debian packaging segment as you have seen in Debian control field "Version". The ubuntu string then marks that whatever follows it is related to changes added in Ubuntu.
_https://github.com/canonical/ubuntu-maintainers-handbook/blob/main/VersionStrings.md
Of course, you can simply download the native Debian packages and install them. But they may work better, if they are rebuilt for Devuan. You can also rename the package, disable a sort of pulseaudio, remove systemd dependencies, etc.
Some packages should be rebuilt because of libc6 and/or other dependencies.
If you do not want learn yourself, you can only hope that others may learn how to rebuild packages. Otherwise, it might be nothing to install.
$ apt changelog android-sdk-platform-23 | cat
Get:1 store: android-framework-23 6.0.1+r72-6 Changelog
android-framework-23 (6.0.1+r72-6) unstable; urgency=medium
* source-only upload
-- Hans-Christoph Steiner <hans@eds.org> Thu, 31 Dec 2020 12:49:26 +0100
android-framework-23 (6.0.1+r72-5) unstable; urgency=medium
* Fix FTBFS with Java 9+ (Closes: #894285)
* add basic autopkgtest to check that class files are in the JAR
-- Hans-Christoph Steiner <hans@eds.org> Wed, 06 Mar 2019 12:10:58 +0000
android-framework-23 (6.0.1+r72-4) unstable; urgency=medium
* Team upload.
* Fix FTBFS (Closes: #891548)
* Add Apache NOTICE file
* Use debhelper 11
* Bump Standards-Version to 4.1.3
-- tony mancill <tmancill@debian.org> Sat, 10 Mar 2018 12:32:30 -0800
android-framework-23 (6.0.1+r72-3) unstable; urgency=medium
* Build-Depends on gradle-debian-helper (>= 1.4~) for backport friendly
* Build shrinkedAndroid.jar
* Build-Depends on proguard
-- Kai-Chung Yan <seamlikok@gmail.com> Fri, 09 Dec 2016 21:14:29 +0800
android-framework-23 (6.0.1+r72-2) unstable; urgency=medium
* d/build.gradle:
* Declare :uiautomator:stubs dependsOn :android:jar, fixing FTBFS
* Add -api & -removedApi options to Doclava
* Update the usage of gradle-debian-helper
* d/rules: Update the usage of maven-debian-helper
-- Kai-Chung Yan <seamlikok@gmail.com> Fri, 25 Nov 2016 13:55:33 +0800
android-framework-23 (6.0.1+r72-1) unstable; urgency=medium
* Initial release. (Closes: #833458)
-- Kai-Chung Yan <seamlikok@gmail.com> Fri, 07 Oct 2016 19:11:58 +0800
There is an official Ubuntu repository with native Debian sources and native Debian packages which work with Devuan. If some of them are needed to build Devuan packages, why not import them to the Devuan repository?
This means that you have to learn how to rebuild packages.
But you cannot learn this, if it is impossible to compile.
On the other hand, if the users do not want to learn anything, the "under-staffed and over-worked Devuan crew" may have more work to do.
Have you already installed android-sdk-platform-23 and rebuilt scrcpy for Devuan?
The name of a Debian package is determined by its changelog.
If you want to change the name, you can add certain lines to the changelog, or edit it.
$ apt changelog scrcpy | cat
Get:1 store: scrcpy 1.25-1 Changelog
scrcpy (1.25-1) unstable; urgency=medium
* New upstream release
* Bump Standards-Version to 4.6.2
-- Yangfl <mmyangfl@gmail.com> Fri, 20 Jan 2023 18:28:52 +0800
scrcpy (1.24-1) unstable; urgency=medium
* New upstream release
* FTBFS if BUILD_DIR is set (Closes: #1013304)
* Bump Standards-Version to 4.6.1
-- Yangfl <mmyangfl@gmail.com> Sat, 16 Jul 2022 17:47:57 +0800
scrcpy (1.23-1) unstable; urgency=medium
* New upstream release
* scrcpy now require scrcpy-server of the same version (Closes: #1004201)
* Fix FTBFS with ffmpeg 5.0 (Closes: #1004812)
-- Yangfl <mmyangfl@gmail.com> Wed, 09 Mar 2022 16:37:46 +0800
scrcpy (1.21-1) unstable; urgency=medium
* New upstream release
-- Yangfl <mmyangfl@gmail.com> Wed, 01 Dec 2021 04:36:41 +0800
scrcpy (1.19-1) unstable; urgency=medium
* New upstream release (Closes: #995295)
* Bump Standards-Version to 4.6.0
-- Yangfl <mmyangfl@gmail.com> Thu, 30 Sep 2021 11:25:13 +0800
scrcpy (1.17-1) unstable; urgency=medium
* New upstream release
-- Yangfl <mmyangfl@gmail.com> Mon, 18 Jan 2021 16:40:22 +0800
scrcpy (1.14-1) unstable; urgency=medium
* New upstream release
* Bump Standards-Version to 4.5.0
* Bump debhelper compat to 13
-- Yangfl <mmyangfl@gmail.com> Wed, 01 Jul 2020 14:59:53 +0800
scrcpy (1.12.1+ds-1) unstable; urgency=medium
* New upstream release (Closes: #947465)
* Recommend but not depend on adb
* Add upstream metadata
-- Yangfl <mmyangfl@gmail.com> Tue, 14 Jan 2020 13:14:59 +0800
scrcpy (1.11+ds-1) unstable; urgency=medium
* Initial release (Closes: #893279)
-- Yangfl <mmyangfl@gmail.com> Wed, 20 Nov 2019 23:40:21 +0800
Fetched 1,678 B in 0s (0 B/s)
What is interesting, android-sdk-platform-23 is also available in the same Ubuntu repository. It was also installed on Devuan 5 Daedalus without any problems:
$ sudo dpkg -i libandroid-23-java_6.0.1+r72-6_all.deb libandroid-uiautomator-23-java_6.0.1+r72-6_all.deb android-sdk-platform-23_6.0.1+r72-6_all.deb
(Reading database ... 399860 files and directories currently installed.)
Preparing to unpack libandroid-23-java_6.0.1+r72-6_all.deb ...
Unpacking libandroid-23-java (6.0.1+r72-6) over (6.0.1+r72-6) ...
Selecting previously unselected package libandroid-uiautomator-23-java.
Preparing to unpack libandroid-uiautomator-23-java_6.0.1+r72-6_all.deb ...
Unpacking libandroid-uiautomator-23-java (6.0.1+r72-6) ...
Preparing to unpack android-sdk-platform-23_6.0.1+r72-6_all.deb ...
Unpacking android-sdk-platform-23 (6.0.1+r72-6) over (6.0.1+r72-6) ...
Setting up libandroid-23-java (6.0.1+r72-6) ...
Setting up libandroid-uiautomator-23-java (6.0.1+r72-6) ...
Setting up android-sdk-platform-23 (6.0.1+r72-6) ...
android-sdk-platform-23
_http://us.archive.ubuntu.com/ubuntu/pool/universe/a/android-framework-23/android-sdk-platform-23_6.0.1+r72-6_all.deb
libandroid-23-java
_http://us.archive.ubuntu.com/ubuntu/pool/universe/a/android-framework-23/libandroid-23-java_6.0.1+r72-6_all.deb
libandroid-uiautomator-23-java
_http://us.archive.ubuntu.com/ubuntu/pool/universe/a/android-framework-23/libandroid-uiautomator-23-java_6.0.1+r72-6_all.deb
As the names suggest, all these debs are native Debian packages, which were somehow appropriated by Ubuntu.
The native Ubuntu packages look like this:
android-sdk-platform-23_6.0.1+r72-6ubuntu1_all.deb
android-sdk-platform-23 is needed to compile scrcpy on Devuan 5 Daedalus (see above).
The source is android-framework-23
android-framework-23_6.0.1+r72.orig.tar.xz 2016-11-11
android-framework-23_6.0.1+r72-6.debian.tar.xz 2021-01-02
android-framework-23_6.0.1+r72-6.dsc 2021-01-02
It is 100% Debian source without Ubuntu patches.
It is available in the same Ubuntu repository:
_http://us.archive.ubuntu.com/ubuntu/pool/universe/a/android-framework-23/android-framework-23_6.0.1+r72.orig.tar.xz
_http://us.archive.ubuntu.com/ubuntu/pool/universe/a/android-framework-23/android-framework-23_6.0.1+r72-6.debian.tar.xz
_http://us.archive.ubuntu.com/ubuntu/pool/universe/a/android-framework-23/android-framework-23_6.0.1+r72-6.dsc
$ cat /var/lib/dpkg/status | grep android-sdk-platform-23 -B11
Package: android-sdk
Suggests: android-sdk-platform-23, maven, proguard-gui
Why isn't android-sdk-platform-23 available in the Devuan 5 Daedalus repository?
I installed them both (see may previous post) with command
sudo dpkg -i scrcpy_1.25-1_amd64.deb scrcpy-server_1.25-1_all.deb
scrcpy-server_1.25-1_all.deb
_http://us.archive.ubuntu.com/ubuntu/pool/universe/s/scrcpy/scrcpy-server_1.25-1_all.deb
How to Install Scrcpy [Screen Copy] on Ubuntu 22.04 Jammy Jellyfish | ADB Scrcpy [Debugging Bridge]
_https://www.youtube.com/watch?v=is-ASr4n45g
Scrcpy 2.0 is out! How to Install & Use this Android Remote Control App
_https://ubuntuhandbook.org/index.php/2023/03/scrcpy-2-0-install-android-remote-control/
EVERYTHING WAS INSTALLED, but I do not have an Android device to test it.
Ubuntu package scrcpy_1.25-1_amd64.deb libavformat59 (>= 7:5.0)
Devuan:
$ apt show libavformat59
Package: libavformat59
Version: 7:5.1.5-0+deb12u1
_http://us.archive.ubuntu.com/ubuntu/pool/universe/s/scrcpy/
_http://us.archive.ubuntu.com/ubuntu/pool/universe/s/scrcpy/scrcpy_1.25-1_amd64.deb
$ dpkg-deb --info scrcpy_1.25-1_amd64.deb
new Debian package, version 2.0.
size 75486 bytes: control archive=949 bytes.
740 bytes, 16 lines control
707 bytes, 10 lines md5sums
Package: scrcpy
Version: 1.25-1
Architecture: amd64
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Yangfl <mmyangfl@gmail.com>
Installed-Size: 198
Depends: libavcodec59 (>= 7:5.0), libavdevice59 (>= 7:5.0), libavformat59 (>= 7:5.0), libavutil57 (>= 7:5.0), libc6 (>= 2.34), libsdl2-2.0-0 (>= 2.0.12), libusb-1.0-0 (>= 2:1.0.16), scrcpy-server (= 1.25-1)
Recommends: adb
Section: net
Priority: optional
Homepage: https://github.com/Genymobile/scrcpy
Description: Display and control your Android device
This application provides display and control of Android devices connected on
USB (or over TCP/IP). It does not require any root access.
.
This package contains the client (desktop) binary.
scrcpy-server_1.25-1_all.deb
_http://us.archive.ubuntu.com/ubuntu/pool/universe/s/scrcpy/scrcpy-server_1.25-1_all.deb
It was installed without problems:
$ sudo dpkg -i scrcpy_1.25-1_amd64.deb scrcpy-server_1.25-1_all.deb
(Reading database ... 391780 files and directories currently installed.)
Preparing to unpack scrcpy_1.25-1_amd64.deb ...
Unpacking scrcpy (1.25-1) over (1.25-1) ...
Selecting previously unselected package scrcpy-server.
Preparing to unpack scrcpy-server_1.25-1_all.deb ...
Unpacking scrcpy-server (1.25-1) ...
Setting up scrcpy-server (1.25-1) ...
Setting up scrcpy (1.25-1) ...
Processing triggers for bamfdaemon (0.5.6+repack-1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for mate-menus (1.26.0-3) ...
Processing triggers for desktop-file-utils (0.26-1) ...
Processing triggers for mailcap (3.70+nmu1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for man-db (2.11.2-2) ...
$ whereis scrcpy
scrcpy: /usr/bin/scrcpy /usr/share/scrcpy /usr/share/man/man1/scrcpy.1.gz
$ scrcpy
scrcpy 1.25 <https://github.com/Genymobile/scrcpy>
* daemon not running; starting now at tcp:5037
* daemon started successfully
ERROR: Could not find any ADB device
ERROR: Server connection failed
I do not have any Android.
The "unstable" source failed
dpkg-checkbuilddeps: error: Unmet build dependencies: android-sdk-platform-23
$ dpkg-buildpackage -us -uc -b
dpkg-buildpackage: info: source package scrcpy
dpkg-buildpackage: info: source version 1.25-1
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Yangfl <mmyangfl@gmail.com>
dpkg-buildpackage: info: host architecture amd64
dpkg-source --before-build .
dpkg-checkbuilddeps: error: Unmet build dependencies: android-sdk-platform-23
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
dpkg-buildpackage: warning: (Use -d flag to override.)
EDIT:
Debian sources need "android-sdk-platform-23" to be compiled.
But it seems that it is not available for Debian 12 Bookworm and Devuan 5 Daedalus.
This is the problem.
Thank you for the link!
It has links to old and new sources.
I will try to compile this:
_https://packages.debian.org/source/unstable/scrcpy
Download scrcpy
scrcpy_1.25-1.dsc
scrcpy_1.25.orig.tar.gz
scrcpy_1.25-1.debian.tar.xz
But I do have any sort of Android.
In the Chimaera repo, there might be the same source as in Debian
Debian:
_https://packages.debian.org/bullseye/scrcpyDownload Source Package scrcpy:
[scrcpy_1.17-1.dsc]
[scrcpy_1.17.orig.tar.gz]
[scrcpy_1.17-1.debian.tar.xz]
These three packages are needed. They provide the original source code, Debian patches, etc.
The Chimaera repo is likely to have these 3 packages and, perhaps, a package with Devuan patches.
Patches will automatically be applied, when you run "dpkg-source -x *.dsc"
How to get source code of package using the apt command on Debian or Ubuntu
_https://www.cyberciti.biz/faq/how-to-get-source-code-of-package-using-the-apt-command-on-debian-or-ubuntu/
1. enable the source repo
2. download the source with apt-get
apt-get source scrcpy
apt-get will download the source packages, unpack the source, and apply the patches.
3. disable the source repo
4. install build dependencies with mk-build-deps
5. build the package
Debian wiki: Get the build dependencies
_https://wiki.debian.org/BuildingAPackage#Get_the_build_dependencies
equivs
_https://wiki.debian.org/Packaging/HackingDependencies