#StackBounty: #linux #devices #network-interface Why did the interface name of my wireless card change when I added a sound card?

Bounty: 50

Predictable network interface names are not supposed to change when hardware is added or removed. Isn’t that the whole point of the naming scheme???

My wireless interface was named wlp3s0.

I installed an ASUS Xonar DX 7.1 Channels PCI Express x1 Interface Sound Card in a free PCI slot and my wireless interface name changed to wlp5s0.

The wireless card is in the same PCI slot that it was in before the sound card was installed, so why would the interface name change?!

The mobo is a GIGABYTE GA-970A-UD3, and the wireless card is an ASUS PCE-N15. The system is running Arch Linux with a stock kernel.

I’m looking for a reasonable explanation of why the interface name would change in this scenario. If there is not a good reason why the interface name would change, where do I file a bug report/who do I complain to?

It’s not a big deal and the only config I needed to change was my network profile for netctl. I just think if a “predictable” network interface name isn’t predictable then they completely failed at their job and this naming scheme is useless garbage!
/rant


Get this bounty!!!

#StackBounty: #linux #audio #gnome #microphone #headphones Headphones not reproducing bass under GNOME

Bounty: 50

I have a 2012 Retina MacBook Pro running Arch Linux with GNOME. Normally, I listen to music using the analog audio I/O interface — the 3.5mm socket.

Recently, I had to attach a USB microphone to the laptop. While doing that, I used the microphone’s built-in 3.5mm socket to monitor the sound I was recording with lower latency and less distortion than what the laptop’s internal amplifier, and the backing software, would produce. Because of this, I went into GNOME’s sound options and updated the audio output profile to digial, which allowed me to pipe system sounds through the mic and into my headphones while I was monitoring the audio received by the microphone.

After switching back to using the 3.5mm socket on my laptop and reverting the audio output profile to analog (the only option available without the mic), the outputted audio’s really distorted. After some tinkering using the ALSA mixer and reproduction of the issue on the laptop’s main speakers, I’ve concluded that the issue is that outputting audio to my headphones now results in the bass part of the spectrum being cut off completely, resulting in a tinny, distorted, and almost downsampled effect.

Unfortunately, I haven’t found any settings allowing me to tweak the bass response for the 3.5mm out.

Where can I do this system-wide?


Get this bounty!!!

#StackBounty: #linux #google-chrome #browser #chromium #web-development Disable Chrome scaling

Bounty: 200

So I have this small box display in Chrome

But it’s in fact 130px big. Chrome is scaling all web because of my 1080p monitor.

Example 1[1]

How to disable it? It’s only annoying when you are developing websites.

Example 2


Get this bounty!!!

#StackBounty: #linux #c #exploit-development #x86 #race-condition Are memcpy() based race conditions exploitable for causing remote cod…

Bounty: 50

Let’s say I have the following pseudocode in the trusted part of a sandbox which prevent untrusted code calling mprotect() and mmap() and ptrace() directly (mutext isn’t accessible from sandboxed memory)

//src and dest are user controlled but must be valid.
TrustedPart_for_safe_jit(void * mutext, uint8_t *src,uint8_t *dest, uint32_t size) // in the current case, *dest targets a PROT_NONE memory region
{
    MutexLock(mutext);
    ValidateOpcodesOrCrash(src,size); // uses calls to mmap on size internally. Contains many loops : this is the longest part.
    unwriteprotect(dest,size); // calls many sandbox’s internal functions

    SafeMemcpy(src,dest,size); // THIS IS the function which contains the race condition

    asm("mfence");
    unEXECprotect(dest,size); // involve write protecting as well as allowing reading
    MutexUnlock(mutext);
}

SafeMemcpy(uint8_t *src,uint8_t *dest, uint32_t size) // the data to be copied cannot exceed 128Mb
{
    if(!CheckUserTarget(dest,size) {
        uint8_t *src_ptr=src;
        uint8_t *dest_ptr=dest;
        uint8_t *end_ptr=des+size;
        while (dest_ptr < end_ptr) { // that loop should execute very fast
            *(uint32_t *) dest_ptr = *(uint32_t *) src_ptr;
            dest_ptr += 4;
            src_ptr += 4;
        }
    }
}

That part is responsible for allowing untrusted code to use ᴊɪᴛ compilation.
The point is untrusted thread aren’t suspended.

As you know, when 2 threads use memcpy() with the same destination, they generate random data. In that case, such data could potentially contains instructions like int 0x80, thus allowing to escape the sandbox.

Things I thought to so far :

  • Write data to a file and read it with the read system call through the sandbox. If the memory is still write protected the program doesn’t crash. This would involve looping and even if the data to be copied can be 128Mb large I’m not sure it would works because of syscall overhead.
    An Alternative would be to create code several times and try reading with several timing, but I have no idea on how to select the initial timing window.
  • Use futex… But I couldn’t found if futex can be used to check the value of non allocated memory. I’m also unsure if the thread could wake up before memory become write protected.

So, is it possible to plan for memcpy race conditions ?


Get this bounty!!!

#StackBounty: #linux #remote #proxy #gateway Linux Replacement of RD Gateway

Bounty: 50

Is there a way to replace RDS Gateway with some sort of linux based proxy. I know there some ways to do it with ssh/port forwarding, but this is to replace a current RDS Gateway our users utilize for remote access (~300 users). I need to support multiple windows clients using their native RDP to connect to their windows desktops on campus, using some sort of linux proxy in between.

From my searching, there are some solutions (xrdp,ssh proxy, port forwarding, etc) that sort of do what I need but they either aren’t user friendly or they involve using multiple/non-standard ports. Before I give up my search and succumb to paying MS Licensing for RDS, is it currently possible to use linux to proxy RDP from windows using their native client?

[Multiple Remote Windows Clients] => [Linux proxy/gateway] => [Corporate Windows Desktops]


Get this bounty!!!

#StackBounty: #linux #centos7 #video-streaming vlc decoder error while streaming

Bounty: 50

I’m re-streaming rtsp stream with vlc for two cameras. The second camera doesn’t have audio and it works fine, for the first one (which has audio) stream start fails 9 out of 10 times with error core decoder error: cannot continue streaming due to errors. However if the streams starts, it works fine until restarted. However I get some errors on the cam 1 (when the stream starts correctly):

core mux warning: late buffer for mux input (145003)

And sometimes (rarely) I get these errors:

mux_ts mux warning: packet with too strange dts (dts=-6272,old=0,pcr=0)

I’m using VLC 2.2.4 on CentOS7 from nux-dextop repo:

VLC media player 2.2.4 Weatherwax (revision 2.2.3-37-g888b7e89)

It’s installed on Virtual machine without desktop and probably doesn’t have any audio support (no virtual audio hardware).

vlc start script for the first camera (s):

#!/bin/bash

URL="rtsp://192.168.40.201:554/axis-media/media.amp"

#--rtsp-frame-buffer-size=200000 
sudo -u vlc cvlc -v 
 --loop --http-reconnect --http-continuous -I dummy $URL 
 --logfile=/var/log/bird-cam1.log 
 --sout '#transcode{}'
':duplicate{dst=std{access=livehttp{seglen=3,delsegs=true,numsegs=5,index=/var/www/html/live/cam1/mystream.m3u8,index-url=http://10.20.30.40/live/cam1/mystream-########.ts},mux=ts{use-key-frames},'
'dst=/var/www/html/live/cam1/mystream-########.ts},'
'dst=std{access=http,mux=ts,dst=:8081/video.mp4}}'

vlc output

VLC media player 2.2.4 Weatherwax (revision 2.2.3-37-g888b7e89)
[0000000000b4f348] core interface error: no suitable interface module
[0000000000a50118] core libvlc error: interface "globalhotkeys,none" initialization failed
[0000000000b4f348] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[0000000000b4f348] core interface error: no suitable interface module
[0000000000a50118] core libvlc error: interface "dbus,none" initialization failed
[0000000000b4f348] dummy interface: using the dummy interface module...
MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (100000).  75129 bytes of trailing data will be dropped!
[00007fb95c0009b8] core input error: ES_OUT_RESET_PCR called
[00007fb960005148] mux_ts mux warning: packet with too strange dts (dts=-6457,old=0,pcr=0)
[00007fb9604d1228] mux_ts mux warning: packet with too strange dts (dts=-6457,old=0,pcr=0)
[00007fb95c0009b8] core input error: ES_OUT_RESET_PCR called
[00007fb96051d348] core decoder error: cannot continue streaming due to errors

Any ideas why the stream doesn’t start every time?
Both cameras stream RTSP. Codec h264 AVC, for the first camera audio is mp4a

Update:

Confirmed that the audio is causing the problem. With audio stream stopped vlc works just fine. Audio codec is AAC. It was set to 32kHz sampling/32 kbit/s. Now it’s 48kHz sampling/64kbit/s – still the same problem.


Get this bounty!!!

#StackBounty: #linux #embedded #swap #sd-card How does swappiness affect the longevity of SDHC memory cards in embedded computers?

Bounty: 200

In this question over at superuser several answers report SDHC card failures in Raspberry Pi single-board computers and other embedded devices over the course of periods varying from weeks to years.

In comments to this answer to an unrelated question about the swappiness, there was speculation as to whether adjusting swappiness to favour file cache pages over anonymous pages would increase the longevity of SD cards in embedded systems that rely on SD cards as their primary storage medium. Intuitively it seems that adjusting swappinness should have some effect on writes to the SD cards, but it is difficult to tell it is difficult how much swapping contributes to the overall strain on the SD card endurance compared to other contributing factors, such as logging or temporary files.

The question is: How much does adjusting the swappiness really affect the longevity of SD cards in such systems?

Answers should be backed up by specific experiences or references. Please keep Good Subjective, Bad Subjective in mind.


Get this bounty!!!

#StackBounty: #linux #centos #lxc Unable to do 'yum install' inside LXC container on CentOS 7

Bounty: 100

I am trying to create CentOS container inside CentOS 7 and host my application. But I am unable to install anything inside container.

If I do
yum -y install nodejs‘ i got below error

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.fibergrid.in
 * extras: mirror.fibergrid.in
 * updates: mirror.fibergrid.in
No package nodejs available.
Error: Nothing to do

It is found that internet is not available inside the container, but outside the container internet is available.


Get this bounty!!!

#StackBounty: #linux #kinect #voice How can I use the Kinect as a microphone in Linux?

Bounty: 200

I am using Ubuntu 14.04 LTS, and the Kinect camera has type Microsoft_Xbox_NUI_Sensor_043367545147-02-Sensor.

I can access the Kinect’s camera from a Linux program that I’m writing, but I’d also like to use its microphone for voice communication. How can I do that?


Get this bounty!!!

#StackBounty: #linux #shell #command-line #find #xargs Find fullpath and filename under a directory then pass to an executable file as …

Bounty: 50

I’d like to find fullpath and filename of all .txt under a directory, and pass to a execable file ./thulac .

It cost me some time to reach

find /mnt/test -name "*.txt" -print0 |xargs -l bash -c './thulac < $0' 

But this only find fullpath .

From http://stackoverflow.com/questions/3770432/xargs-with-multiple-arguments
, I see

echo argument1 argument2 argument3 | xargs -l bash -c 'echo this is first:$0 second:$1 third:$2' | xargs

What I want to achieve is something like:

find /mnt/test -name "*.txt" -print0 -printf "%f" |xargs -0 bash -c './thulac < $0 > $1' 

Though here, xargs can not split -print0 -printf "%f" as two argument, which stuck me.


Example:

find /mnt/test -name "*.txt" -print0 -printf "%f" |xargs -0 -I bash -c './thulac < $0 > /mnt/tokenized/$1'
  1. If /mnt/test only has one file

    Above command does work.

  2. But if /mnt/test has more than one file(no matter of the language)
    [root@localhost THULAC]# ls /mnt/test
    test33.txt  test.txt
    [root@localhost THULAC]# find /mnt/test -name "*.txt" -print0 -printf "%f" |xargs -0 bash -c './thulac < $0 > /mnt/tokenized/$1'
    /mnt/test/test.txt: /mnt/tokenized/test.txt/mnt/test/test33.txt: No such file or directory
    

    As you see, xargs mix two path together /mnt/tokenized/test.txt/mnt/test/test33.txt , which lead to error No such file or directory

How to make it work only by command?


Get this bounty!!!