Sonntag, 5. September 2021

qt5-default Debian 11 stable

 Seit Debian 11 fehlt das Paket qt5-default. Abhilfe schaft folgender Befehel

sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
 

Montag, 4. Januar 2021

NordVPN internes Netzwerk

Seit dem auf meinem Rechner NordVPN läuft, habe ich keinen Zugriff mehr auf mein internes Netzwerk. Das bedeutet kein Zugriff auf mein NAS, oder per SSH auf andere Rechner im Netzwerk. Der Befehl "ip route show" auf der Konsole zeigt dann auch folgendes

ip route show

0.0.0.0/1 via 10.8.0.1 dev tun0
default via 192.168.178.1 dev enp0s31f6 proto dhcp metric 100
5.180.62.48 via 192.168.178.1 dev enp0s31f6
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.7
128.0.0.0/1 via 10.8.0.1 dev tun0
169.254.0.0/16 dev enp0s31f6 scope link metric 1000
192.168.178.0/24 dev enp0s31f6 proto kernel scope link src 192.168.178.35 metric 100
Okay, mein internes Subnetz ist 192.168.178.0/24. Für mich sieht es so aus, als würde
NordVPN beim Start alle existierenden Routen mit "metric 100" versehen
und dann seine eigenen Routen ohne metric eintragen. Ohne metric ist
glaube ich intern "metric 0". Routen mit einer niedrigeren metric
gewinnen. Abhilfe schafft ein Eintrag in die Whitelist von NordVPN 
     nordvpn whitelist add subnet 192.168.178.0/24
Und schon funktionierts wieder. An dieser Stelle möchte ich mich bei Christian Perle bedanken der mir hier weiter geholfen hat.

Sonntag, 20. Dezember 2020

Debian 11 auf Lenovo P15 Gen1 installieren

Leider war es nicht so einfach das zur Zeit aktuelle stable Debian 10 auf das Lenovo P15 Gen 1 zu installieren. Das derzeitige testing Debian 11 ist schon soweit fortgeschritten dass ich es damit versucht habe. Für diese Anleitung sind Linux Grundkenntnisse erforderlich. Sie dient in erster Linie für mich als Gedächtnisstütze.

NVIDIA Graphiktreiber und zweiter Monitor

Debian installiert von Haus nicht den Graphiktreiber von NVIDIA. Das müssen wir schon selber machen. Dazu ändern wir als root die Sourcelist von apt wie folgt.

root@P15:~$ vim /etc/apt/source.list
deb http://deb.debian.org/debian/ bullseye main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye main contrib non-free

deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free
root@P15:~$ apt-get update
root@P15:~$ apt-get install nvidia-detect
Detected NVIDIA GPUs:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU104GLM [Quadro RTX 4000 Mobile / Max-Q] [10de:1eb6] (rev a1)

Checking card:  NVIDIA Corporation TU104GLM [Quadro RTX 4000 Mobile / Max-Q] (rev a1)
Your card is supported by the default drivers.
Your card is also supported by the Tesla 450 drivers series.
Your card is also supported by the Tesla 440 drivers series.
Your card is also supported by the Tesla 418 drivers series.
It is recommended to install the
    nvidia-driver
package.
Wenn die das Empfehlen dann machen wir das auch.
root@P15:~$ apt-get install nvidia-driver
 Dann sehen wir uns das mal an was wir so haben
root@P15:~$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x43 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 1 associated providers: 1 name:modesetting
Provider 1: id: 0x2a8 cap: 0x2, Sink Output crtcs: 4 outputs: 5 associated providers: 1 name:NVIDIA-G0
root@P15:~$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics (rev 05)
01:00.0 VGA compatible controller: NVIDIA Corporation TU104GLM [Quadro RTX 4000 Mobile / Max-Q] (rev a1)
Ich möchte dass der HDMI ausgang von der NVIDIA Karte genutzt wird
root@P15:~$ xrandr --setprovideroutputsource 1 0
Damit das auch nach dem Reboot so bleit trage ich diese Zeile in meinem Homerverzeichnis in .xprofile ein. Danach können wir den Monitor mit den Einstellungen des Windows Manager einrichten.

IPv6 deaktivieren
 root@P15:~$ ip addr
 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 54:05:db:fd:58:50 brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.35/24 brd 192.168.178.255 scope global dynamic noprefixroute enp0s31f6
       valid_lft 854309sec preferred_lft 854309sec
    inet6 2a02:8070:a195:0:c8f0:322d:e5a2:4974/64 scope global temporary dynamic
       valid_lft 6985sec preferred_lft 3385sec
    inet6 2a02:8070:a195:0:5605:dbff:fefd:5850/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 6985sec preferred_lft 3385sec
    inet6 fe80::5605:dbff:fefd:5850/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

Wie erwartet ist IPv6 aktiv das änderen wir mit den 3 folgenden Befehlen

root@P15:~$ /sbin/sysctl -w net.ipv6.conf.all.disable_ipv6=1
root@P15:~$ /sbin/sysctl -w net.ipv6.conf.default.disable_ipv6=1
root@P15:~$ /sbin/sysctl -w net.ipv6.conf.lo.disable_ipv6=1
root@P15:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 54:05:db:fd:58:50 brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.35/24 brd 192.168.178.255 scope global dynamic noprefixroute enp0s31f6
       valid_lft 854161sec preferred_lft 854161sec

Jetzt sieht das schon mal aufgeräumter aus. Damit das nach dem nächsten Reboot so bleibt ändern wir noch die Grubkonfiguration

/etc/default/grub

#If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet ipv6.disable=1"
GRUB_CMDLINE_LINUX="ipv6.disable=1"


# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Nach dem Ändern der markierten Zeilen in  /etc/default/grub

root@P15:~$ update-grub

 Für Bluetooth etc müssen wir noch ein paar Pakete nachinstalliern

 apt-get install firmware-linux firmware-linux-nonfree intel-microcode firmware-misc-nonfree firmware-iwlwifi

DNS auf PiHole umleiten
 
Als einziger in unserem Haushalt verwende ich einen PiHole, deswegen ist die klassische rangehensweise, DHCP auf dem Router ausschalten, nicht machbar. Um trotzdem werbefrei zu surfen muss ich dauerhaft den DNS-Eintrag in der /etc/resolv.conf ändern.
root@P15:~$ cat /etc/resolv.conf
# Generated by NetworkManager
search fritz.box
nameserver 192.168.178.1
Interessant ist hier die erste Zeile, Generated by NetworkManger. Hier was zu ändern bringt wenig das muss an anderer stelle gemacht werden. Deswegen machen wir die Änderung mit dem Tool nm-connection-editor.
 
Wähle deine Verbindung
Gehe auf den Reiter IPv4-Einstellungen
Ändere Methode in Automatische (DHCP), nur Adressen
Trage in DNS-Server die IP des DNS Servers ein 

Das wars dann auch schon, nach einem Reboot sollte die resolv.conf wie folgt aussehen
# Generated by NetworkManager
nameserver 192.168.178.4

!Achtung! Wenn ihr das auf einem mobilen Rechner macht und wo anders mit einem Netzwerk verbindet muss das vorher wieder rückgängig gemacht werden. 

 





 

Samstag, 16. August 2014

Wake on Lan mit autofs

20140816 Memo an mich

Wie im letzten Post beschrieben schaltet sich meine NAS nach 15 Minuten Inaktivität in den Suspend. Der eleganteste Weg das NAS wieder aufzuwecken ist einfach auf den Netzwerkorder im Homeverzeichnis zu klicken. Dann soll die NAS wieder hochfahren und die Sambafreigabe kann eingebunden werden. Dazu braucht man autofs, wakeonlan und ein Verzeichnis in das auch User schreiben dürfen.

Verzeichnis erstellen
mkdir /media
chmod 777 /media

In /etc/auto.master
/media /etc/auto.share  --timeout=600 --ghost

timeout=600 bedeutet dass nach 600 sec (10 min) ohne zugriff das Verzeichnis ausgehängt wird.

/etc/auto.share
#!/bin/bash

SERVERIP="192.168.2.100"
SERVERMAC="00:00:00:00:00:00"

ping -c 1 -w 1 -q $SERVERIP > /dev/null
status=$?
logger "AUTOFS: Attempting to mount $1 filesystem from SERVERIP"
logger "AUTOFS: Result from ping - $status"
if [ $status -ne 0 ]
then
        logger "AUTOFS: Host is not up. Sending wake-on-lan"
        /usr/bin/wakeonlan $SERVERMAC
        logger "AUTOFS: Sleeping for 60 seconds to allow host to wake"
        sleep 60
fi

logger "AUTOFS: Re-pinging host"
ping -c 1 -w 1 -q $SERVERIP > /dev/null
status=$?
logger "AUTOFS: Result - $status"

if [ $status -eq 0 ]
then
        logger "AUTOFS: Mounting $1 filesystem"
        #echo out autofs settings. Mount $1 share. $1 is passed in by autofs
        /bin/echo -n "-fstype=cifs,rw,noperm,username=Mustermann,password=Geheim ://192.168.2.100/NAS"
        #/bin/echo -n "-fstype=smbfs,rw,username=user,password=password ://SERVERIP/$1"
else
logger "AUTOFS: Still no ping result from host"
fi

Dieses Skript muss ausführbar sein chmod 755 auto.share
Nun kann der Dienst auch schon neu gestartet werden
service autofs restart

Als User muss noch ein Link im Homeverzeichnis erstellt werden
ln -s /media/NAS NAS


AutoShutdown

20140816 Memo an mich
AutoShutdown:

Damit meine NAS nicht ständig läuft habe ich mir aus verschiedenen Anleitungen selber was gebastelt

#!/bin/bash

# Dieses Skript überprüft ob über Samba oder SSH auf den Rechner zugegriffen wird
# Ist dies nicht der Fall, wird der Rechner in den Suspend geschickt. Dazu muss root
# in seine CronTab (crontab -e) folgende Zeile einfügen
# */15    *        *       *       *    /root/AutoShutdown.sh
# Alle 15 Minuten wird dieses Skript ausgeführt


SAMBANETWORK="192.168.2"
NETWORKPORTS="22 4440"

#Schreibt alles ins syslog
logit()
{
        logger -p local0.notice -s -- AutoShutdown: $*
}

#ist ein Port verbunden zb Samba oder SSH
IsPortInUse()
{
        for i in $*; do
                LANG=C netstat -an | grep -q "${myIp}:${i}.*ESTABLISHED$"
                Err=${?}
                if [ ${Err} -eq 0 ] ; then
                  logit "Port ${i} is still in use, auto shutdown terminated"
                  return 1
                fi
        done

        return 0
}

isBusy()
{
        # Samba
        if [ "x$SAMBANETWORK" != "x" ]; then
                if [ `/usr/bin/smbstatus -b | grep $SAMBANETWORK | wc -l ` != "0" ]; then
                    logit samba connected, auto shutdown terminated
                    return 1
                fi
        fi

        # check network-ports
        if [ "x${NETWORKPORTS}" != "x" ]; then
                myIp=$(LANG=C /sbin/ifconfig | sed -n "/inet addr/ { s|^[a-z ]*:\([0-9\.]*\).*$|\1|p }" | head -n 1)
                IsPortInUse ${NETWORKPORTS}
                if [ "$?" == "1" ]; then
                        return 1
                fi
        fi
}

isBusy
if [ "$?" == "0" ]; then
        /usr/sbin/pm-suspend
fi




Quellen:
http://wiki.ubuntuusers.de/Skripte/Auto_OFF

NAS:
ITX Board mit Intel Atom 330 Dualcore 1,6 gh
4 TB Festplatte
Debian Wheezy
Samba, MySql und noch paar andere Sachen

Donnerstag, 3. Juli 2014

MusicMan shuffle

Vor einiger zeit hab ich mir den MusicMan für die Arbeit gekauft. Der Plan war dass er nebenbei ein bischen vor sich hindudelt. Das macht der auch ganz gut, nur leider spielt er die MP3s, die sich auf einen USB-Stick befinden, eines nach dem anderen. Also kein Shuffel. Abhilfe schaft das kleine Bash Skript

#! /bin/bash

i=0
while read line
do
        array[ $i ]="$line"
        (( i++ ))
done < <(ls *.mp3)

COUNTER=0
while [  $COUNTER -lt $i ]; do
        echo ${array[$COUNTER]}
        newFile=`tr -dc "[:alpha:]" < /dev/urandom | head -c 16`
        newFile=$newFile".mp3"
        mv "${array[$COUNTER]}"  "$newFile"
        let COUNTER=COUNTER+1
done


es werden alle Dateien mit der Endung ".mp3" in ein Array gespeichert. In einer Schleife werden sie mit einem zufälligem Namen (16 Zeichen) umbenannt.




Montag, 23. Juni 2014

20140623 Memo an mich

In /etc/gdm3/Init/Default
#Aus dem Skript homeOffice
#Zweiten Monitor am VGA aktivieren

xrandr --output LVDS1 --mode 1366x768
xrandr --output VGA1 --mode 1440x900
xrandr --output VGA1 --right-of LVDS1
xrandr --output VGA1 --primary

#
#Aus dem Skript wakeUpNas.sh
#NAS aufwecken

ping 192.168.2.100 -c1
if [ $? -ne 0 ]
 then
        wakeonlan 00:1c:c0:a8:f6:4e
fi