====== Devuan Installation ======
My Devuan installation notes.
===== Latest Devuan Installation =====
**202204100749**
Using Devuan Chimaera DVD ISO (dd onto USB) -> UEFI boot!
**Note:** If using netinstall or CD1 some firmware may not be available - which is a problem if using WiFi module.
The ''must-have''s for MY Devuan installation:
* install ''build-essential'' (development tools)
* install ''linux-headers-amd64'' (to compile kernel modules)
* install ''geany'', ''git'', ''gitk'' (coding stuffs)
* install ''libnss-mdns'' & ''avahi-daemon'' (system management) **INSTALLED BY DEFAULT**
* install ''curl'' (some of my scripts needs that...)
The stuffs I currently need:
* install ''cryptsetup'' (encrypted partitions)
* install ''xfig'' (i need xfig2dev)
**Note**: these are required to compile Linux kernel: //libncurses5-dev build-essential libssl-dev libelf-dev git bison flex// (need to check if these are already installed by the above selection, e.g. build-essential and git are covered)
//work in progress...?//
===== Last XFCE Installation =====
* using default xfce desktop
* this is my primary choice, but I have installed cinnamon on other machines
* replace wicd with network-manager
* ''# apt install //network-manager network-manager-gnome//''
* ''//network-manager-gnome//'' provides ''nm-applet'' (not needed if using ''nmcli'')
* ''# apt purge //wicd wicd-gtk//''
* ''# apt autoremove''
===== Minimal Desktop Installation =====
I want a basic installation with dwm.
* install base (use netinstall iso... or, maybe use debootstrap?)
* install my usual stuffs # apt install build-essential linux-headers-amd64 vim git curl
* install xorg stuffs # apt install xorg libx11-dev libxft-dev libxinerama-dev
* install suckless stuffs # apt install stterm suckless-tools
* install ''dwm'' from source
* use my1ubuild script
* looks good, but i need acpi stuffs # apt install acpid
* for laptop, maybe add ''acpi-support''
* if need command-line utility, add ''acpi''
//work in progress...//
===== Devuan upgrade (chimaera to daedalus) =====
Personal note - basically from devuan.org.
upgrade chimaera to daedalus (from devuan.org)
- update/upgrade chimaera
# apt update
# apt upgrade
- update apt sources.list
# sed -i 's/chimaera/daedalus/g' /etc/apt/sources.list
- update pkg list from daedalus
# apt update
- kill screensaver (if running)
# killall xscreensaver
- upgrade/dist-upgrade
# apt upgrade
# apt dist-upgrade
- in case of failures, fix and rerun
# apt -f install
# apt dist-upgrade
- cleanup
# apt autoremove --purge
# apt autoclean
deb http://deb.devuan.org/merged daedalus main non-free-firmware non-free contrib
deb http://deb.devuan.org/merged daedalus-security main non-free-firmware non-free contrib
deb http://deb.devuan.org/merged daedalus-updates main non-free-firmware non-free contrib
#deb-src http://deb.devuan.org/merged daedalus main
#deb-src http://deb.devuan.org/merged daedalus-security main
#deb-src http://deb.devuan.org/merged daedalus-updates main
===== Install Using debootstrap =====
* boot using my1live-devuan
* need to install gisk debootstrap
* optionally, install lvm2
* run # apt install gisk debootstrap lvm2
* prepare disk (/dev/sda) layout
* 1 uefi partition (ef00)
* 1 root partition (8300)
* 1 home partition (8e00/8300)
* 1 swap partition (8200)
* run # gdisk /dev/sda
* format/mount root partition
# mkfs.ext4 -L MY1BOOT /dev/sda2
# mount /dev/sda2 /mnt/disk
* run debootstrap
# debootstrap chimaera /mnt/disk http://deb.devuan.org/merged/
* while debootstrap runs, format other partitions
# mkdosfs -n MY1UEFI /dev/sda1
# mkfs.ext4 -L MY1BOOT /dev/sda2
# mkswap -L MY1SWAP /dev/sda4
* will use lvm in this example
# pvcreate /dev/sda3
# vgcreate homevg /dev/sda3
# lvcreate -l +100%FREE -n home0 homevg
# mkfs.ext4 -L MY1HOME /dev/homevg/home0
* mount efi/home partitions
# mkdir -p /mnt/disk/boot/efi
# mount /dev/sda1 /mnt/disk/boot/efi
# mount /dev/homevg/home0 /mnt/disk/home
* chroot and install/setup
# chroot /mnt/disk
# apt update
# apt install linux-image-amd64 build-essential linux-headers-amd64 vim git lvm2
# apt install firmware-linux firmware-iwlwifi firmware-atheros firmware-realtek
# apt install cinnamon-desktop-environment
* update initramfs (add lvm support)
# update-initramfs -u -k all
* i prefer all-lowercase path names
# vi /etc/xdg/user-dirs.defaults
* setup locale
# apt install locales
# echo "en_US.UTF-8 UTF-8 >>/etc/locale.gen"
# locale-gen
* setup grub
# apt install grub-efi-amd64
# grub-install /dev/sda
# update-grub
* run efibootmgr to make sure# efibootmgr
* edit fstab# vi /etc/fstab
* setup root password# passwd
* change hostname# vi /etc/hostname
* reboot
//**Note:** I got to Cinnamon Desktop and everything looks ok - BUT, I simply cannot run gnome-terminal! Well, I can if i run ''dbus-update-activation-environment'' first. So, I missed something coz when I reinstalled using the full dvd, everything works fine.//
//work in progress...//
====== Devuan Setups ======
These depends on my need when using that particular machine.
* using virtualbox from oracle (just like my slackware setup)
* using texlive ([[linux:app_texlive|install using tlmgr]])
* alternatively, install texlive texlive-latex-extra texlive-science
* install freecad kicad openscad (project stuffs)
* install ntp ntpdate (system management)
===== Development =====
* getting //OpenGL// stuffs (glut): ''# apt install //freeglut3-dev//''
* getting //sqlite// stuffs: ''//# apt install// sqlite3 libsqlite3-dev''
* getting glade (will also get gtk library): ''//# apt install glade//''
* getting //wxwidgets// stuffs: ''//# apt install// lib-wxgtk3.0dev''
* getting //my1imgpro// stuffs: ''//# apt install libavcodec-dev libavdevice-dev libavformat-dev libswscale-dev//''
* to compile //sdcc//: ''//# apt install// bison flex libboost-dev texinfo''
//note: [[notes:cross_compiler#mingw_cross_compiler_on_devuan|Setting up mingw-w64 cross-compiler]]//
===== Web Server =====
* Install webserver
* ''# apt install //apache2//''
* default path for web is ''/var/www/html''
* edit ''/etc/apache2/apache2.conf''
* add //ServerName// (remove annoying startup message!)
* my //my1apisrv// code need these for //www// dir config
Options FollowSymLinks
AllowOverride All
Require all granted
* Install php
* ''# apt install //php php-cgi libapache2-mod-php php-mysql php-sqlite3//''
* edit ''/etc/php/7.0/apache2/php.ini'' to enable pdo support
* Create required links in mods-enabled and conf-enabled
* my my1apisrv code need ''rewrite''
* both folders are in ''/etc/apache2''
* Install database
* ''# apt install //mariadb-server//''
* If running dokuwiki
* ''# apt install //php-xml//''
* My API client php code needs this
* ''# apt install //php-curl//''
===== Multi-Arch (a.k.a. Multi-Lib) =====
To run 32-bit binary:
* Enable multi-arch: ''# dpkg --add-architecture i386''
* Update package list: ''# apt update''
* Most probably need libc: ''# apt install //libc6:i386//''
* Install required libraries: (:i386)
To build 32-bit binary:
* Install compiler(s): ''# apt install //gcc-multilib g++-multilib//''
* Notice that these are 64-bit packages (no :i386 suffix) -> cross compilers!
* Use ''-m32'' gcc option to compile!
===== Gaming =====
To play steam games:
* enable multi-arch
* install steam: ''# apt install //steam//'' (binary in ''/usr/games/steam'')
===== NFS setup =====
Dumping this as it is for now:
* client
* install # apt install nfs-common
* mount # mount -t nfs :/path
* server
* install # apt install nfs-kernel-server
* [optional] # mount --bind /path/to/share /mount/point
* edit ''/etc/exports''
* start service nfs-kernel-server start
===== Others =====
My iso2boot script need //isohybrid// from syslinux/isolinux project:
* ''# apt install //syslinux-utils//''
====== Use Tips ======
Some are applicable to any APT-based distro.
//**Note for APT-based distro:** To remove translations, create file ''/etc/apt/apt.conf.d/99translation'' and insert ''Acquire::Languages { "none"; };''.//
//**Note:** look into ''unattended-upgrades'' (simply ''apt install'' and run ''dpkg-reconfigure --priority=low unattended-upgrades''???)//
===== List Installed Packages =====
Using ''apt'' tool: apt list --installed 2>/dev/null | grep installed
Note that apt will issue a warning when piping its output in shell. Hence, the need to redirect ''stderr'' to ''/dev/null''. We can further grep away the packages that were automatically installed.
Using the basic ''dpkg'' tool: dpkg --get-selections | sed -n 's/^\([^\t]*\)\t.*$/\1/ p'
This version, however, only provides package name. To extract similar output from ''apt'' (assuming output was redirected into a file called ''temp.txt''), run cat temp.txt | sed -n 's|^\(.*\)/.*$|\1| p'
===== Adding More Repo =====
Get proper signature key from that source (''*.asc'' file) and add to system using ''apt-key''.
# cat | apt-key add -
Create a listing file for source URL in ''/etc/apt/sources.list.d/''.
# echo "deb [arch=?] main" > /etc/apt/sources.list.d/new-repo.list
After doing an ''apt update'', should be able to ''apt install ''...
===== Reconfigure Package =====
Basically, run a ''dpkg-reconfigure ''
e.g. To change timezone # dpkg-reconfigure tzdata
===== Upgrading APT-based systems =====
To do an upgrade:
* Modify ''/etc/apt/sources.list'' and replace the release codenames # sed -i 's/old_release/new_release/g' /etc/apt/sources.list
* skip ''-i'' option for a dry-run
* Update package list # apt update
* Upgrade distribution # apt dist-upgrade
* To make sure EVERYTHING is upgraded (avoids old packages held back)
* # apt full-upgrade
* Do house cleaning
# apt autoremove
# apt clean
That should do it!
===== Search package for specific binary =====
* There is a specific tool for that # apt install apt-file
* Update the package/file mapping database # apt-file update
* Search for "top" # apt-file search --regexp '/top$'
===== Avoiding marking package as manually installed =====
* Use dry-run (simulation) option ''-s'' # apt install -s ... 2>/dev/null|grep manually
* Removed the package(s) displayed from your install list and re-run without ''-s''
===== GRUB Stuffs =====
To prevent GRUB from looking for other OS every time it is updated:
* edit ''/etc/default/grub'' and insert GRUB_DISABLE_OS_PROBER=true
* run update-grub
To add a custom entry:
* add a menuentry in ''/etc/grub.d/40_custom''
* uses the same menuentry format as in ''/boot/grub/grub.cfg''
* e.g. to boot my Slackware partition I can insert
menuentry 'Slackware' --class slackware --class gnu-linux --class gnu --class os $menuentry_id_option 'my1part-' {
insmod part_gpt
insmod ext2
set root='hd0,gpt4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4
else
search --no-floppy --fs-uuid --set=root 4d95a526-2518-4fd6-a904-f7bd2729145d
fi
linux /boot/vmlinuz-huge-4.4.240 root=/dev/sda4
}
* use ''initrd'' (after ''linux'' line) to specify an initrd/initramfs
* of course, should be a valid filesystem uuid
* run update-grub
===== KVM Stuffs =====
If KVM group is missing, simply create one...
# [ -z "$(cat /etc/group|grep kvm)" ] && addgroup --gid 125 kvm
====== Issues ======
Issues... and maybe fixes (if any).
===== Image Magick's convert error =====
I found an error when using image magick's convert to create EPS from fig that provides this message: convert-im6.q16: attempt to perform an operation not allowed by the security policy `EPS' @error/constitute.c/IsCoderAuthorized/421
Solution:
* (as root) edit ''/etc/ImageMagick-6/policy.xml''
* modify following line (change none -> read|write)
===== GRUB Prompt =====
In some cases, after an installation is complete, the system boots to a GRUB prompt. The issue may be caused by a different disk assignment during installation. Things is not so bad since GRUB prompt is very shell-like (e.g. double-tab for completion):
To list available disks: > ls
To list content of first partition on the first disk (/dev/sda1) that is using GPT: > ls (hd0,gpt1)
So, to boot an installation on second partition instead:
> linux (hd0,gpt2)/boot/vmlinuz<...>
> initrd (hd0,gpt2)/boot/initrd.img<...>
> boot
===== BCM Wireless =====
Device:
# lspci -nn | grep BCM
02:00.0 Network controller [0280]: Broadcom Limited BCM43142 802.11b/g/n [14e4:4365] (rev 01)
Install: broadcom-sta-dkms, firmware-linux, firmware-b43-installer (b43-fwcutter)
*note*: only solves the Wireless Driver part... NOT the bluetooth hardware!
# lsusb | grep BCM
Bus 002 Device 004: ID 0a5c:216d Broadcom Corp. BCM43142A0 Bluetooth 4.0
# dmesg | grep blue
[ 8.850007] bluetooth hci0: firmware: failed to load brcm/BCM43142A0-0a5c-216d.hcd (-2)
[ 8.850197] bluetooth hci0: Direct firmware load for brcm/BCM43142A0-0a5c-216d.hcd failed with error -2
So, download ''BCM43142A0-0a5c-21d6.hcd'' in [[https://github.com/winterheart/broadcom-bt-firmware/tree/master/brcm|here]] and place it ''/lib/firmware/brcm/'' (create that path if it does not exist).
===== XFCE Desktop =====
* tapping on my laptop touchpad is NOT working
* moving around & button clicks are working
* need to create file ''/etc/X11/xorg.conf.d/90-touchpad.conf''Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "Tapping" "on"
EndSection
* lid event does not trigger suspend (but manual suspend works)
* this is a systemd-related aftermath: xfce power manager allows/assumes login to handle lid
* fix: $ xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/logind-handle-lid-switch -s false
* issues when logging out/shutdown
* may be caused by intel graphics library? i915?
* can install lightdm - but shutdown/restart always gets login page (=logout)
* wicd feature is an issue for system with multiple users
* shared wifi password, no option to make private
===== Cinnamon DE =====
* login page (lightdm?) - cannot shutdown/reboot! read [[https://git.devuan.org/devuan-packages/lightdm/issues/2|here]]...
* found a fix [[https://dev1galaxy.org/viewtopic.php?pid=11114#p11114|here]]
* i just needed to edit ''/etc/pam.d/lightdm-greeter'' and changed ''pam_systemd.so'' to ''pam_elogind.so'' (but, may cause issues with suspend/hibernate?)
* laptop battery quickly drain below 30 percent
* setup higher critical value for power management
gsettings list-keys org.cinnamon.settings-daemon.plugins.power
gsettings set org.cinnamon.settings-daemon.plugins.power use-time-for-policy false
gsettings set org.cinnamon.settings-daemon.plugins.power percentage-low 30
gsettings set org.cinnamon.settings-daemon.plugins.power percentage-critical 25
gsettings set org.cinnamon.settings-daemon.plugins.power percentage-action 23
* or use ''dconf-editor''
===== PulseAudio =====
Youtube videos keep resetting the volume settings to 100%! The culprit is ''flat-volumes''. Modify ''/etc/pulse/daemon.conf'' and set ''flat-volumes=no''.
===== (Re)-Compiling Syslinux =====
I need to recompile syslinux - just to remind myself, other than the usual development packages (build-essential, etc), I also need ''nasm'' and ''upx-ucl''.
apt install nasm and upx-ucl
===== Unwanted Background Program =====
I found this in my old notes... I somehow found an autostart program ''geoclue-demo-agent.desktop'', which I obviously do not need. So, simply remove that from autostart path # rm /etc/xdg/autostart/geoclue-demo-agent.desktop
===== Sound muted on startup on my HP laptop =====
trying two options found... so far, not successful? keeping this here for reference.
- option 1:
* install alsa-utils
* make sure sound is not muted and set to desired volume level
* run (as root) alsactl store
- option 2:
* edit (as root) /etc/pulse/defaults.pa
* can also copy this to home folder ??? for 1-user solution...
* comment out 'load-module module-device-restore'
===== General Issues =====
* wifi firmware missing after first restart
* manually install ''firmware-ralink''
* network manager cannot connect using wifi
* edit /etc/NetworkManager/NetworkManager.conf
* add
[device]
wifi.scan-rand-mac-address=no
====== Using Wine on Devuan ======
Setup Wine (as root):
* enable multiarch
* install wine and winetricks # apt install wine wine32 winetricks
Configure Wine (as user):
* if required, remove previous settings $ rm -rf $HOME/.wine
* config for win32 $ WINEARCH=win32 winecfg
* setup nice fonts $ winetricks corefonts
//Note: Install ''fuseiso'' to enable mounting ISO as user//
===== Game: Red Alert 2 =====
Setup Installer ISO:
* create link to ISO as CDROM device $ ln -sf /path/to/install.iso $HOME/.wine/dosdevices/d::
* mount ISO $ fuseiso mount /path/to/install.iso $HOME/.wine/drive_d
* create link to mount path as CDROM drive $ ln -sf $HOME/.wine/drive_d $HOME/.wine/dosdevices/d:
Run installer
* $ wine D:\\Setup.exe
Fixes:
* menu does not show (solution available at [[https://appdb.winehq.org/objectManager.php?sClass=version&iId=252|WineHQ]])
* download ddraw.dll from https://github.com/CnCNet/ts-ddraw/releases
* place in RA2 install path
* run winecfg add that to library (as window native, instead of builtin)
===== Application: LTSpice =====
* download windows version from ltspice website and run $ wine /download/path/LTspiceXVII.exe
====== Devuan on Raspberry Pi ======
Check out [[http://arm-files.devuan.org/|here]].
===== RasPi400 =====
Using ''rpi-devuan-chimaera-5.10.110-ext4-2022-04-16.zip''
* boots ok (default hostname=bcm2711)
* login (root:toor)
* setup # run-setup
* change hostname (edit /etc/hostname and /etc/hosts)
* reboot
* remove default user # userdel -r devuan
* most development stuffs i want are preinstalled! yay!
* install vim # apt install vim
* remove nano # apt remove nano
* also # rm .nanorc
* install xorg stuffs # apt install xorg libx11-dev libxft-dev libxinerama-dev
* install suckless stuffs # apt install stterm suckless-tools
* create user and login as that user
* get my1shell and my1ubuild
# git clone https://codeberg.org/azman/my1shell
# git clone https://codeberg.org/azman/my1ubuild
* install ''dwm'' from source
* install browser & font # apt install surf fonts-liberation2
//work in progress... 2 issues: {surf cannot validate cert}{reboot hangs}//
//**Note:** Will simply use Raspberry Pi OS for now... //