Python3, Qt & PyQt5 på macOS

macOS er UNIX, en efterkommer af Darwin

Jeg brygger på en cross-platform app der skal fungere på Linux, Windows og macOS.

Forkælet som man bliver med Arch Linux og alt binært er klar til brug, så er macOS ikke helt så let at gå til.

For en cross-platform app er Python er det åbenlyse valg og når det skal være en grafisk app er der flere valgmuligheder. Valget faldt på Qt men at få det til at falde rigtigt på plads i macOS er ikke lige åbenlyst.

Homebrew er selvskreven da det er en fantastisk måde at få installeret de nødvendige komponenter men at få det til at virke er en ganske anden ting.

Installation

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Afinstallation

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

Installation af PyQt

brew install pyqt

Jeg fandt da heldigvis dette spørgsmål på stackoverflow

LDFLAGS=-L/usr/local/opt/qt/lib CPPFLAGS=-I/usr/local/opt/qt/include pip3 install PyQt5

Så kørte min Linux kode på macOS – Yaii

Linux check memory/swap usage

  • cat /proc/meminfo to see total swap, and free swap (all linux)
  • cat /proc/swaps to see which swap devices are being used (all linux)
  • swapon -s to see swap devices and sizes (where swapon is installed)
  • vmstat for current virtual memory statistics

Ren Arch installation

Using another mans script is not the Arch way

Grunden er enkel – hvis det ikke virker som forventet – skal du vide hvor du tastede forkert eller hvad du har glemt.

Og man skal ikke springe over hvor gærdet er lavest. Man må godt hæve overliggeren for sig selv en gang i mellem.

Men lige præcist installation af computerens operativ system er et trivielt antal gentagne trin og her er en installationsramme på sin plads.

  • Architect Linux
  • Arch-Anywhere
  • Manjaro
  • Antergos

Afspil flash uden Adobe

Hvordan afspiller man Flash

Af forskellige grunde er jeg ikke tilhænger af Google’s Chrome browser.

Det giver et problem med Flash på f.eks. dr.dk og det giver et problem med afspilning af film på Netflix.

Man kunne selvfølgelig installere Adobe Flashplayer men den er en si – hvad angår sikkerheds huller – så den er udelukket.

Der findes en open-source version af Google’s Chrome og den hedder Chromium.

Den installeres i Arch Linux med

$ sudo pacman -S chromium

Desuden skal installeres to komponenter som findes i AUR

$ pacaur -S chromium-widevine pepper-flash

Komponenten ´´´chromium-widevine´´´ giver afspilning af netflix indhold og ´´´pepper-flash´´´ – ja den giver afspilning af flash indhold.

Jeg har endnu en undersøgelse af processen for Ubuntu til gode.

Hold øje med dette indlæg – jeg vender tilbage.

Grundlæggende linux installation – trin for trin

Arch Linux i Virtualbox

Det antages at du ved hvordan man laver en virtuel maskine i VirtualBox og ved hvordan man tilknytter en iso fil til opstart.
Vigtigt! Alle de viste kommander er i den virtuelle computer som root. # indikerer root og skal ikke medtages som en del af kommandoen.

Hent en iso på https://www.archlinux.org/download/. Tilknyt iso til cd drev i virtuel computer og start den.

Sæt dansk tastatur

# loadkeys dk

Sæt ur

# timedatectl set-ntp true

Partitioner

# cfdisk /dev/sdX

opret dos filtabel og partition for boot (512M), partition for root og evt også en partition for home

Formattering

# mkfs.vfat /dev/sda1
# mkfs.ext4 /dev/sda2

Hvis du har en partition for home formatteres denne på samme måde som root partition

Montering

root partition monteres altid først

# mount /dev/sda1 /mnt/

opret mappe til montering af boot

# mkdir /mnt/boot

monter boot

# mount /dev/sda2 /mnt/boot

hvis du har en partition for home er det på samme måde – opret mappen home i din monterede root partition og monter home partition

Installation af base

# pacstrap -i /mnt base

Monterings valg til fstab

# genfstab -U /mnt >> /mnt/etc/fstab

Opsætning af det endelige system i chroot miljø

# arch-chroot /mnt

Sæt tidszone

# ln -s /usr/share/zoneinfo/Europe/Copenhagen /etc/localtime

Sæt hardware ur

# hwclock --systohc

System sprog

# nano /etc/locale.gen

rediger linjen med ‘da_DK.UTF-8 UTF-8’ ved at fjerne # og gem med F2.

Generering af system sprog

# locale-gen

X tastatur

# echo LANG=da_DK.UTF-8 > /etc/locale.conf

Terminal tastatur

# echo KEYMAP=dk > /etc/vconsole.conf

Sæt computer navn

ditcomputernavn erstattes med et relevant computer navn

# echo ditcomputernavn > /etc/hostname

Sæt samme computernavn i hosts

ditcomputernavn erstattes med dit computernavn jf. foregående trin

# echo '127.0.1.1 ditcomputernavn.localdomain {hostname];' >> /etc/hosts

Aktiver dhcp service ved opstart

# systemctl enable dhcpcd

Sæt root password

# passwd

Opret bruger

ditbrugernavn erstattes med et relevant brugernavn

# useradd -m ditbrugernavn

Sæt bruger password

ditbrugernavn erstattes med dit brugernavn jf. foregående trin

# passwd ditbrugernavn

Installer grub bootloader

# pacman -S grub

Opsæt grub bootloader

# grub-install --target=i386-pc /dev/sdx

Opret grub config

# grub-mkconfig -o /boot/grub/grub.cfg

Afslut

# exit

Afmonter partitioner

# umount -R /mnt

Genstart

Tast F12 og vælg harddisk – fjern cd

# reboot

Login i Arch Linux

Ajourføring pakke database

# pacman -Syyu

Installer xorg og skærm driver

# pacman -S xorg-server xorg-apps xorg-server-utils xf86-video-fbdev

Grafisk brugerflade aka desktop

Her er valgt xfce men det kunne være gnome, kde eller hvad du nu foretrækker

# pacman -S xfce4 xfce4-goodies numix-themes

Grafisk login – display manager

# pacman -S lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings

Aktiver ved opstart

# systemctl enable lightdm

Start display manager og login

# systemctl start lightdm

Linux – Brugerflade aka Desktop

Linux kernen er grundlæggende den samme. Udviklet af Linux Thorvalds.

Hvad der bliver lagt ovenpå er et spørgsmål om valg og om hardware.

Ældre hardware kan ikke bruge 3D acceleration som nyere hardware. Der kan være cpu kraft og ram begrænsninger. Alle brugerflader kan i princippet bruges men nogle vil opleves som meget langsomme grænsende til det ubrugelige – alt afhængigt af cpu, ram og grafik.

LXDE http://lxde.org/
XFCE http://xfce.org/
KDE Plasma Netbook https://www.kde.org/workspaces/plasmanetbook/

Fork af GNOME 2
MATE http://mate-desktop.org/

Window manager
Openbox http://openbox.org/

KDE Plasma https://www.kde.org/
GNOME 3 https://www.gnome.org/

UNITY http://unity.ubuntu.com/
GNOME SHELL https://www.gnome.org/gnome-3/

Linux – Bluetooth virker ikke

Asus x75v

Installer rtbth-dkms (AUR)

$ sudo systemctl start bluetooth
$ sudo rmmod rtbth
$ sudo modprobe rtbth
$ sudo bluetoothctl

blacklist module

$ sudo echo 'blacklist rtbth' > /etc/modprobe.d/ralink-bt.conf

opret script indlæsning og start af rtbth modul

$ sudo touch /usr/local/sbin/rtbth
$ sudo vi /usr/local/sbin/rtbth
#!/bin/bash
sleep 5
/sbin/modprobe --ignore-install rtbth;
/usr/bin/mknod /dev/rtbth c 192 0;
/usr/bin/rtbt &

opret system service

$ sudo touch /etc/systemd/system/rtbth.service
$ sudo vi /etc/systemd/system/rtbth.service
[Unit]
Description=Fix rtbth bluetooth after gmd start
After=display-manager.service
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/rtbth
TimeoutSec=0
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

aktiver service

$ sudo systemctl enable rtbth

Linux – WiFi hardware virker ikke

Laptop hacks

Der kan være forskellige årsager til blokeringen af wifi og/eller bluetooth.
Det første der prøves er Fn+icon made by FreePik. Hvis dette ikke aktiverer WiFi bruges rfkill for at vise status – eksempel output

rfkill list
0: tpacpi_bluetooth_sw: Bluetooth
    Soft blocked: no
    Hard blocked: no
1: tpacpi_wwan_sw: Wireless WAN
    Soft blocked: yes
    Hard blocked: no
2: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
3: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no

Hvis wireless status er “Hard blocked: yes”

rfkill unblock all

Asus x75v hacks

Er modulet for funktionstaster (Fn+F2) asus_nb_wmi indlæst? Check:

lsmod | grep asus

Hvis det er – prøv med driver parameter:

sudo -i
echo "options asus_nb_wmi wapf=0" > /etc/modprobe.d/asus.conf
exit

Genstart og kontroller om Fn+F2 det fungerer.

Hvis ovenstående ikke havde nogen effekt gentag ovenstående på denne måde

echo "options asus_nb_wmi wapf=1" > /etc/modprobe.d/asus.conf

Prøv med denne hvis det stadig ikke virker

echo "options asus_nb_wmi wapf=4" > /etc/modprobe.d/asus.conf