wtorek, 24 września 2019

HeeksCNC na Kubuntu 19.04

Jednak nie będziemy kompilować, a dodamy repozytorium PPA i wymusimy, by używał plików z wersji 18.04. W tym celu otwieramy synaptic, i dodajemy repozytorium [źródło]:
https://launchpad.net/~neomilium/+archive/ubuntu/heekscnc-devel
Tak:

http://cravtec.com/frezarkacnc/2015-08-03-21-48-48/elektronika/8-pierwsza-frezarka-3-osiowa/index.php/9-linuxcnc/5-podstawowe-zmiany-linuxcnc

Źródła:
https://fcabritablog.wordpress.com/2018/02/22/installation-of-heekscad-on-linuxcnc-or-debian/
https://ubuntuforums.org/showthread.php?t=2055022
https://github.com/Heeks/heekscad/wiki/Build-Debian-Packages


sudo apt-get install build-essential debhelper cmake libboost-python-dev liboce-visualization-dev libwxgtk3.0-dev libgtkglext1-dev python-dev bzr git libboost-dev liboce-ocaf11 liboce-ocaf-dev oce-draw

git clone https://github.com/Heeks/libarea.git
git clone https://github.com/Heeks/heekscad.git
git clone git://github.com/Heeks/heekscnc.git

cd libarea
dpkg-buildpackage -b -us -uc
sudo dpkg -i ../libarea*.deb ../python-area*.deb
sudo apt install -f
cd ../heekscad
dpkg-buildpackage -b -us -uc
sudo dpkg -i ../*heeks*.deb ../libheekstinyxml*deb
sudo apt install -f
cd ../heekscnc
mkdir build
cd build
cmake ..
make
sudo make install
sudo apt-get install wx3.0-i18n

wtorek, 17 września 2019

Instalacja Kubuntu na "Software RAID"

Posiadam dwa dyski w laptopie o różnej pojemności (prędkości też) - jeden 120 GB, drugi 128 GB.
Chciałem zainstalować system tak, by (działał i...) część dysku była szybka (RAID0: partycje / oraz /media/Data) a część bezpieczna (RAID1: /home).

Kosztowało mnie to pół dnia szukania i próbowania, ale w końcu się udało z pomocą tych źródeł:
https://unix.stackexchange.com/questions/280500/unable-to-reach-network-from-chroot
https://blog.sleeplessbeastie.eu/2018/01/29/how-to-regenerate-the-boot-configuration-for
-mdadm/
https://help.ubuntu.com/community/Installation/SoftwareRAID


Więc, po uruchomieniu LiveCD (Wypróbuj Kubuntu), łączymy się z siecią i instalujemy programy mdadm oraz gparted.

Musiałem stworzyć dwie partycje na dwóch dyskach o tym samym rozmiarze (przeznaczone na odpowiednie RAID'y) oraz na jednym z dysków partycje EFI (zalecane 200 MB), boot (bios nie wystartuje wirtualnego RAIDu, 1 GB ale pewnie 300 MB też by było ok) oraz SWAP (mam 12 GB RAM'u, więc rzadko kiedy będę go potrzebował, jest i tak piekielnie wolny, a więc wystarczy mieć go na jednym dysku). Ważne by stworzyć tablicę partycji GPT (nie wiem jak bardzo ważne, ale nie ma tu ograniczenia 4 partycji głównych):

SDA (120 GB):
1: pojemność dysku - home (~90 GB)
2: home (20 GB)

SDB (128 GB)
1: tyle co SDA1
2: tyle co SDA1
3: boot (ext4, 1 GB)
4: EFI (flaga boot, fat32, 200 MB)
5: SWAP (to co zostało)

Tworzymy teraz wirtualne dyski RAID (trochę z pamięci, ale idzie się połapać):
sudo mdadm -Cv -n2 /dev/md0 --level 0 /dev/sda1 /dev/sdb1
sudo mdadm -Cv -n2 /dev/md1 --level 1 /dev/sda2 /dev/sdb2
 Teraz mamy stworzone dyski wirtualne i wszystko powinno już pójść z płatka - odpalamy instalator tworzymy partycje na urządzeniach wirtualnych, wybieramy partycje sdb3 jako boot i sdb4 jako efi.

System powinien się już bez problemu zainstalować, ale to niestety jeszcze nie koniec, ponieważ nasz GRUB jeszcze się nie zna na RAID. Musimy się teraz połączyć z naszym nowym systemem i doinstalować mu mdadm [źródło][źródło]:

sudo mount /dev/md0p1 /mntsudo mount /dev/sdb3 /mnt/bootsudo mount -t proc /proc /mnt/server/procsudo mount -o bind /sys /mnt/server/syssudo mount -o bind /dev /mnt/server/dev
sudo cp /etc/resolv.conf /mnt/etc/resolv.confsudo chroot /mnt

Teraz w terminalu naszego nowego systemu instalujemy mdadm:
sudo apt install mdadm
Powinien się również utworzyć nowy initramf (patrzeć na logi!). Od teraz GRUB już będzie wiedział o co chodzi.

[Szkic] Zmiana rozdzielczości gdy podłączony jest monitor

Posiadam dwa monitory zewnętrzne podłączone do stacji dokującej i jeden w laptopie. Chciałem, by komputer automagicznie przełączał się pomiędzy trybami, jeśli podłączony jest któryś z zewnętrznych.

Skrypt ustawiony jest, by uruchamiał się przed sesją KDE. Uruchamia się tylko raz, więc jeśli zrestartuję komputer przed podłączeniem stacji, to nie zadziała.


#!/bin/bash

#https://ubuntuforums.org/showthread.php?t=1458631
#https://askubuntu.com/questions/625761/how-to-change-displays-position-from-command-line
#https://www.tecmint.com/run-repeat-linux-command-every-x-seconds/

#exit 0

#sleep 10

EXTERN="DP-1-3"
xrandr --newmode "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync
xrandr --addmode DP-1-3 "1680x1050_60.00"


#while true; do

if $(xrandr --prop |grep -q "$EXTERN connected");then
 echo -e "$(echo $EXTERN | tr -d [0-9]) is \e[1;32mconnected\e[0m"  xrandr --output DP-1-3 --mode "1680x1050_60.00" --pos 0x420
 xrandr --output DP-1-1 --mode "1440x900" --rate 60 --pos 1680x0
 xrandr --output eDP-1 --off
else
 xrandr --auto
 echo -e "$(echo $EXTERN | tr -d [0-9]) is \e[1;31mdisconnected\e[0m"
fi

#sleep 5
#done

#exit 0

sobota, 7 września 2019

BasicLinux czyli system na procesor 486 i 4MB ramu

Chciałem przetestować kilka starych płyt głównych z procesorami 486 (może i 386). Long-story-short, potrzebowałem małego linuksa (żeby zmieścił się na dysku 16MB - IDE flash), który uruchomi się na 8MB (ten daje radę i na 4MB), pozwoli przetestować SoundBlastera i pozwoli przy okazji uruchomić memtest86.

Uwaga na wstępie: memtest86 w wersji dostępnej na stronie 4.3.cośtam NIE działa na 486 (potwierdzają to moje 'badania' oraz internet). Stąd na moim obrazie znajdują się wersja 4.0b3 oraz 3.5b [pobrane stąd].

Linki do źródeł, na podstawie których napisana została poniższa instrukcja.
Naprawa LILO (po zmianie rozmiaru dysku LILO padło)
Zmiana rozmiaru obrazu dysku
Konfiguracja LILO 1 2
Konwertowanie RAW do VDI (VirtualBox) 1 2
Montowanie partycji z obrazu RAW
BasicLinux (obraz Qemu, paczki i instrukcje)
BG-Rescue (system awaryjny na FDD)

Instrukcja stworzenia obrazu (kolejność :
Na początek zmiana rozmiaru dysku (co, jeśli nie ma takiej potrzeby można pominąć):

sudo losetup /dev/loop0 BL3-5qemu.img 
sudo partprobe /dev/loop0

W Gparted, należy zmienić rozmiar partycji na np. 14MB

sudo gparted /dev/loop0
sudo losetup -d /dev/loop0

Truncate przycina plik do zadanego rozmiaru (moje 16384000 to rozmiar dysku IDE)

truncate --size=16384000 BL3-5qemu.img
sudo losetup /dev/loop0 BL3-5qemu.img  
sudo partprobe /dev/loop0

W Gparted zwiększamy rozmiar partycji tak, by wypełniła dysk

sudo gparted /dev/loop0
sudo losetup -d /dev/loop0

Teraz należy przerobić obraz na czytelny dla VirtualBox'a (można też od razu wgrać pliki wymienione niżej, a VB'a zostawić sobie na koniec, ale ja chciałem mieć pewność, że naprawiłem LILO zanim się wezmę za 'resztę').

VBoxManage clonehd --format VDI BL3-5qemu.raw bl3-vbox-mod.vdi

Podpinamy obraz pod maszynę wirtualną (więcej pamięci niż 8MB! 128MB powinno być ok ;)) oraz dyskietkę bgrescue i uruchamiamy BG-Rescue, a w nim:

mount /dev/hda1 /mnt 
mount -o bind /dev /mnt/dev 
chroot /mnt 
lilo -b /dev/hda1 
exit 
reboot

Wyłączamy maszynę, odpinamy dyskietkę i sprawdzamy czy lilo już działa. Jeśli tak, przerabiamy dysk spowrotem na RAW, montujemy partycję z obrazu i wgrywamy pliki

VBoxManage clonehd --format RAW bl3-vbox-mod.vdi bl3-lilo.raw 
sudo losetup /dev/loop0 bl3-lilo.raw  
sudo losetup /dev/loop0 mkdir img 
sudo mount /dev/loop0p1 img/

sudo mc: moduły kernela (patrz instrukcja na BL), paczki, lilo.conf, boot_message.txt, rc oraz memtest86v4 i memtest86v3 wypakowane z obrazów ISO (ISOLINUX/MEMTEST). Przerabiamy obraz spowrotem na obrazy VDI. Update! Również memtest86v4b3 NIE działa na 486. 3.5 jest ok. Warto też w tym momencie wgrać kernel optymalizowany dla 486, ale nie jest to niezbędne.

VBoxManage clonehd --format VDI bl3-lilo.raw bl3-prefinal.vdi

...podpinamy pod VB, sprawdzamy czy wszystko jest jak należy i uruchamiamy "nowe" lilo i instalujemy paczki

chmod +x /etc/rc (jeśli rc jest niewykonalne)
lsmod (powinny być moduły sb)
lilo (naprawić jeśli coś mu się nie podoba)
cd /tmppkg mc.tgzpkg mpg123.tgz

Restartujemy system i sprawdzamy czy lilo włącza oba memtesty i bl'a. Przerabiamy obraz spowrotem na RAW i powinno być git

VBoxManage clonehd --format RAW bl3-prefinal.vdi bl3-final.raw

Obecnie moje lilo.conf i message wyglądają tak:

cat img/etc/lilo.conf && cat img/boot/boot_message.txt  ###  this line puts lilo in MBR of primary harddrive
###  otherwise lilo goes in root partition

boot=/dev/hda     prompt
message = /boot/boot_message.txt
linear

image=/boot/zimage
   label=bl
   root=CURRENT
   read-write

image=/boot/zimage.4dx
   label=bl4dx
   root=CURRENT
   read-write

image=/boot/memtest86v4.img
   label=mt
   read-only  
image=/boot/memtest86v3.img
   label=mt3
   read-only  



   This is ultralite linux testing disk adopted to work on old 486 PCs      with only 4MB of memory. Also it fits on 16MB HDD.
        

Hit [Enter] to run default or:

bl *    boots BasicLinux v3.50 converted Qemu disk image with SB audio support          and Midnight Commander [https://distro.ibiblio.org/baslinux/]
bl4dx   boots BasicLinux v3.50 with 486DX optimized kenrel                 mt      runs MemTest86 v4.0b3
mt3     runs MemTest86 v3.5b
       
Ważne jest to linear w lilo.conf. Większa szansa, że uda się lilo przenieść bez niespodzianek na dysk. 

wtorek, 3 września 2019

Komputer nie budzi się po uśpieniu [Dell e7440]

Mój laptop czasem nie chciał się obudzić. Rozwiązanie [źródło] [źródło]:
sudo sh -c "echo LID0 disabled > /proc/acpi/wakeup"
Oraz dodać do /etc/modprobe.d/blacklist.conf:
blacklist mei_me