Table of Contents
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-haves 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-gnomenetwork-manager-gnomeprovidesnm-applet(not needed if usingnmcli)# 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
dwmfrom 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.
- devuan_upgrade.txt
 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 https://deb.devuan.org/merged daedalus main non-free-firmware non-free contrib deb https://deb.devuan.org/merged daedalus-security main non-free-firmware non-free contrib deb https://deb.devuan.org/merged daedalus-updates main non-free-firmware non-free contrib #deb-src https://deb.devuan.org/merged daedalus main #deb-src https://deb.devuan.org/merged daedalus-security main #deb-src https://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 https://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 (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 
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.inito 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: (<package>: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
-m32gcc 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 <host>:/path <mount-point>
 
 - 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 <key-file.asc> | apt-key add -
Create a listing file for source URL in /etc/apt/sources.list.d/.
# echo "deb [arch=?] <new-repo-url> <version> main" > /etc/apt/sources.list.d/new-repo.list
After doing an apt update, should be able to apt install <pkg>…
Reconfigure Package
Basically, run a dpkg-reconfigure <pkg>
e.g. To change timezone
# dpkg-reconfigure tzdata
Upgrading APT-based systems
To do an upgrade:
- Modify
/etc/apt/sources.listand replace the release codenames# sed -i 's/old_release/new_release/g' /etc/apt/sources.list
- skip
-ioption 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 <pg1> ... <pkgN> 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/gruband insertGRUB_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-<uuid>' { 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 <uuid> 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(afterlinuxline) to specify an initrd/initramfs - of course, <uuid> 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)
<policy domain="coder" rights="none" pattern="EPS" /> 
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 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- 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 here…
- found a fix here
 - i just needed to edit
/etc/pam.d/lightdm-greeterand changedpam_systemd.sotopam_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 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 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
dwmfrom 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…
