/r/AlpineLinux
Unofficial community devoted to Alpine Linux, a security-oriented, lightweight Linux distribution based on musl libc and busybox.
/r/AlpineLinux
Hi, question, ¿The raspberry pi image of alpine installs the system in normal mode or in diskless mode?.
I wanted to install I'm normal mode, just like a normal debian installation
Considering the minimalist feature of Alpine Linux (not a docker), I am thinking to host my MariaDB database server on it over an ubuntu server.
- Would I see any significant performance boost over ubuntu?
- Is there any documentation on how to remotely connect to a MariaDB instance hosted on alpine?
I was planning to move to alpine after I saw thi video https://www.youtube.com/watch?v=EaCCB3y1ZGM&t=549s but after researching online people are saying that it has a poor wiki and documentation. I have been using ubuntu based distros for a year or two.
I have been using Alpine Linux for the past 6 months. Earlier i have used Arch and Linux Mint/Mandrake/RedHat. I daily drive Alpine Linux with sway wm and it is 100% usable. I don't need/use proprietary software and i do not have hardware requiring proprietary drivers. I also don't game.
Alpine Linux is suitable only if you have some experience using a terminal or CLI. If you dislike/fear CLI, probably Alpine Linux is not for you. It aims to be minimal and minimal it is.
Software repository is quite decent and provides most commonly used software even for desktop use. Packages are thinned out and split into sub-packages. So you must add relevant (sub)packages depending on the required features.
Every software/service has to be installed, configured and enabled by the user. The OS does not make any assumptions and does not do anything automatically.
Since the OS uses musl and not glibc, pre-compiled binaries from other distributions can't be used. Flatpak is available. Building packages is also not a very difficult task, if you are willing to put the time and effort.
Due to smaller size of community, getting support on irc and mailing lists may take time, or elicit no response. You should be willing to search and read the scripts, if needed and it is not too difficult.
Alpine Linux Wiki still needs improvement, but is adequate mostly. You can always apply the relevant information from other sites like Gentoo & Arch wiki, as all these distributions stay true to the upstream.
If you are in a hurry and lack cli knowledge and need a ready to use distribution, this is not for you.
Hello, I would like to make a "custom" progress indicator in a python script while adding packages. I noticed there a command quiet :
apk add --quiet somepackages
The only display progress standard alpine indicator ... How to handle this, pls.
I've been booting Alpine Linux on a USB for a while, but I recently decided I want to overwrite the original Windows install that this computer came with - though, I would much prefer to move my existing Alpine install rather than to reinstall from scratch. I can't use anything like GParted or Clonezilla, since this computer (a Surface Go 3) has only the one USB-C port and no other ports, and my current Alpine install is on a USB-C flash drive.
Would I be able to rerun setup-disk to overwrite the SSD's partition with Alpine?
Or should I just reinstall from scratch (probably passing through the main drive to a VM to install it)?
How can i use usb tethering to get networking in the setup-alpine script?
Hi. I manage a VPS box on which Alpine 3.19 is installed. Twice, my clock went about 70 seconds behind the actual time, breaking my CI/CD pipeline running there. It is very bizarre and actually I have never had to modify time on a server before (except changing timezone).
All the guide etc. on the Internet, including Copilot, are either explaining how to fix this issue on Ubuntu, or using apk packages which do not exist on my system.
Does anyone know how I can make sure my clock is in sync and stays so with some Internet NTP server?
Many thanks
I was gonna install alpine, wich i have done multiple times on my pc, and whenever i choose any other desktop enviroment except gnome, the installation bugs at the end, everything dowloads fine up until like 300 packages left and every single one says failed to dowload due to low storage( i was using a 120gb ssd wich was already formatted), this never happend to me before, im currently using gnome but honestly i preffer the plasma enviroment, any tips on how to fix it?
Hello, when I recently installed alpine linux I tried to install kde but whenever I launch kde or sddm I get errors and they don't start, I've installed everything I need to and I'm on latest.
errors: SDDM: [10:13:33.061] CII) DAEMON: VT node didn't need to be fixed [10:13:33.062] (II) DAEMON: Socket server stopping.. [10:13:33.062] (II) DAEMON: Socket server stopped. [10:13:33.062] (II) DAEMON: Renouing display SDDM::Display(0x?fa?cB0ac0) [10:13:33.062] (II) DAEMON: Adding new display... [10:13:33.062] (II) DAEMON: Loaded enpty thene configuration [10:13:33.062] (II) DAEMON: Using UT 1 [10:13:33.062] (II) DAEMON: Display server started [10:13:33.063] CII) DAEMON: Socket server start ing [10:13:33.063] (II) DAEMON: Socket server started. [10:13:33.063] CII) DAEMON: Loading thene configuration fron "/usr/share/sddnthemes/breeze/thene.conf' [10:13:33.063] (II) DAEMON: Greeter starting... [10:13:33.066] (II) DAEMON: Socket server stopping. [10:13:33.066] CII) DAEMON: Socket server stopped. [10:13:33.067] (WU) DAEMON: Auth: sddn-helper (- socket /tmp/sddn-auth-95b90952-d?d3-1c21-9c07-55e69acae8c1 -id 14 -start /usr/bin/sddn-greeter-qt6 oard --locale1 crashed (exit code 1) [10:13:33.067] futh: sddn-helper exited vith 15 socket tmp/sddn--fkKKSg --theme /usr/share/sddm/thenes/breeze user sddn - display-server kwin_uayland - no- global-shortcuts --no- lockscreen -imputmethod naliit-keyb
PLASMA: org.kde.startup: not a reply org.freedesktop.locale1 QDBusMessage(type=Error, service="", error nanc="org.freedesktop.DBus.Error.ServiceUnknovi alpi:-# startplasma- -wayland ervice files")) startplasnacompositor: Could not start D-Bus. Can you call qdbus?
Hello, I don't know if I could have help here but I faced a problem in preparing a part of my home assistant.
- My goal :
Integrate a Sonoff Zigbee 3.0 USB Dongle Plus V2 to my Mosquitto docker container and then to be recognized / used into my Home assistant.
- My Architecture :
-> My Zigbee USB device is connected to my machine : an ISP router with ARM (Freebox Delta with a Qualcomm Snapdragon 835 SOC).
-> Inside this machine my main VM is an Alpine Linux aarch64 distro with docker compose components. It provides actually 4 containers and works all very well.
-> This distro is in a vanilla configuration type and works fine with a very small footprint. The Device manager is the default manager : MDEV.
-> USB zigbee device is listed in the Alpine VM and seem fine.
-> A Zigbee2MQTT container is targetted to be mounted with this USB device and is configured with docker compose.
- My Problem :
The USB device is not listed in the container Zigbee2MQTT
My actions
In Alpine VM, I verified that my device is listed :lsusb
Here is the result :
Bus 001 Device 001: ID 1d6b:0002 Linux 6.12.6-0-virt xhci-hcd xHCI Host Controller
Bus 001 Device 002: ID 10c4:ea60 Itead Sonoff Zigbee 3.0 USB Dongle Plus V2
Bus 002 Device 001: ID 1d6b:0003 Linux 6.12.6-0-virt xhci-hcd xHCI Host Controller
Official Website of Zigbee2MQTT give a nice example to prepare what I want but with a different device manager of mine : udev
(remember, mine is mdev).
See here for the original source for how to create a container with the USB redirected device :
https://www.zigbee2mqtt.io/guide/configuration/adapter-settings.html
At this point I tried to translate from mdev
to udev
and found my device, not in /dev/serial/by-id
like in the example but here for me : /dev/bus/usb/001/002
Here is the docker example given by Zigbee2MQTT:
docker run \
--name zigbee2mqtt \
--restart=unless-stopped \
--device=/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018ED3DDF-if00:/dev/ttyACM0 \
-p 8080:8080 \
-v $(pwd)/data:/app/data \
-v /run/udev:/run/udev:ro \
-e TZ=Europe/Amsterdam \
koenkk/zigbee2mqtt
So I conclued that the container need to be linked with a device entry like bellow :
usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018ED3DDF-if00
I supposed that we can recompose this entry in :
{string}: 'usb-'+{vendor'NoSpaced'}+{ProductName'NoSpaced'}+{serial}+{interfaceName Maybe?}
This command report me all properties of my usb device mounted with mdev :
ls /sys/bus/usb/devices/1-1
Result :
1-1:1.0 bNumConfigurations devpath port subsystem
authorized bNumInterfaces devspec power tx_lanes
avoid_reset_quirk bcdDevice driver product uevent
bConfigurationValue bmAttributes ep_00 quirks urbnum
bDeviceClass busnum idProduct removable version
bDeviceProtocol configuration idVendor remove
bDeviceSubClass descriptors ltm_capable rx_lanes
bMaxPacketSize0 dev manufacturer serial
bMaxPower devnum maxchild speed
You guess that if I refer to my suggestion, I needs some properties like I don't have ...
My docker-compose config file used for Zigbee2MQTT :
services:
zig2mqtt:
container_name: zig2mqtt
image: koenkk/zigbee2mqtt
networks:
mynet:
ipv4_address: 192.168.x.x
environment:
- TZ=Europe/Paris
ports:
- 8080:8080
volumes:
- "./config:/app/data"
- "/run/udev:/run/udev:ro"
devices:
- /dev/bus/usb/001/002:/dev/ttACM0
restart: unless-stopped
networks:
mynet:
external: true
volumes:
config:
No surprise, the result is bad in the container MQTT :
zig2mqtt | Starting Zigbee2MQTT without watchdog.
zig2mqtt | [2025-01-25 16:34:03] info: z2m: Logging to console, file (filename: log.log)
zig2mqtt | [2025-01-25 16:34:03] info: z2m: Starting Zigbee2MQTT version 2.0.0 (commit #060ae99cff715cc9ef6a0cfa7cae0cdcb17f0c8a)
zig2mqtt | [2025-01-25 16:34:03] info: z2m: Starting zigbee-herdsman (3.2.1)
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember: Using default stack config.
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember: ======== Ember Adapter Starting ========
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:ezsp: ======== EZSP starting ========
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: ======== ASH Adapter reset ========
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: RTS/CTS config is off, enabling software flow control.
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: ASH COUNTERS since last clear:
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: Total frames: RX=0, TX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: Cancelled : RX=0, TX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: DATA frames : RX=0, TX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: DATA bytes : RX=0, TX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: Retry frames: RX=0, TX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: ACK frames : RX=0, TX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: NAK frames : RX=0, TX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: nRdy frames : RX=0, TX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: CRC errors : RX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: Comm errors : RX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: Length < minimum: RX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: Length > maximum: RX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: Bad controls : RX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: Bad lengths : RX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: Bad ACK numbers : RX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: Out of buffers : RX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: Retry dupes : RX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: Out of sequence : RX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: ACK timeouts : RX=0
zig2mqtt | [2025-01-25 16:34:03] info: zh:ember:uart:ash: ======== ASH stopped ========
zig2mqtt | [2025-01-25 16:34:03] error: zh:ember:uart:ash: Failed to init port with error Error: Error: No such file or directory, cannot open /dev/ttyACM0
zig2mqtt | [2025-01-25 16:34:03] error: z2m: Error while starting zigbee-herdsman
zig2mqtt | [2025-01-25 16:34:03] error: z2m: Failed to start zigbee-herdsman
zig2mqtt | [2025-01-25 16:34:03] error: z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start_crashes-runtime.html for possible solutions
zig2mqtt | [2025-01-25 16:34:03] error: z2m: Exiting...
zig2mqtt | [2025-01-25 16:34:03] error: z2m: Error: Failed to start EZSP layer with status=HOST_FATAL_ERROR.
zig2mqtt | at EmberAdapter.initEzsp (/app/node_modules/.pnpm/zigbee-herdsman@3.2.1/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:670:19)
zig2mqtt | at EmberAdapter.start (/app/node_modules/.pnpm/zigbee-herdsman@3.2.1/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1533:24)
zig2mqtt | at Controller.start (/app/node_modules/.pnpm/zigbee-herdsman@3.2.1/node_modules/zigbee-herdsman/src/controller/controller.ts:136:29)
zig2mqtt | at Zigbee.start (/app/lib/zigbee.ts:69:27)
zig2mqtt | at Controller.start (/app/lib/controller.ts:142:13)
zig2mqtt | at start (/app/index.js:161:5)
zig2mqtt | Using '/app/data' as data directory
I tried a lot of device entry type combination with information I had in the /sys/ apth like this one :
'usb-'+{idVendor}+{idProduct}+{serial}
but nothing works ...
Thanks for your the time you take to read this post ^^.
More or less what it says on the tin, save for the potentially important detail that I am on postmarketOS strictly speaking
I'm a bit at a loss for how to get this working as I have entered all relevant lines in /etc/pam.d/greetd
, and editing PAM files is always a stressful task:
#%PAM-1.0
auth include base-auth
auth optional pam_gnome_keyring.so
account include base-account
password include base-password
session include base-session
session optional pam_gnome_keyring.so auto_start
I'm sure I'm missing something obvious, but I can't seem to figure out how to get this to work. On Void it Just Worked[tm] with equivalent lines here
As the title says, https://gitlab.alpinelinux.org is down. Any way of reaching the team who can fix it?
I'm having a frustrating issue. Whenever I try to install any package whatsoever I get the error fc-cache no such package. I'm pretty sure fc-cache comes with Alpine Linux. I've tried running apk fix and apk update to no avail. I'm about to reinstall Alpine.
I'm currently playing with some old hardware and educating myself, testing both Alpine and Debian, and setting them up (so far) seems straight forward enough. My current plan is to buy the Topton 2-Bay NAS R1 PRO N100 from Aliexpress and I am leaning towards Alpine as I really like the idea of a minimal OS. For my usage, I will be using Immich, Home Assistant, Nginx, Adguard, Plex, arrs, qBittorrent and some other trivial stuff, using Docker compose to set things up. The things I wonder about, is if I need to do anything in regards to drivers or configuration to get the most out of my hardware:
- I have read somethings about malloc/mimalloc, but I didn't fully grasp that. Is that something that I should address?
- Is there any drivers or stuff I need for using the IGP for transcoding, other than mapping the device in the docker files where it's relevant?
- Are there any other Alpine or general tips for setting up a server?
I'm going to be setting up a new mini server at home using the beelink eq14 mini pc. I've always used ubuntu or debian for my builds but thought I'd look into using Alpine. I tested it on virtualbox and it seemed to run great. I did have problems when manually partitioning and installing the boot loader. I have a couple of questions about using Apline as a docker host.
I read that the main downside of Alpine that is mentioned time and time again is because it uses musl over glibc you can get DNS errors. I will be running the following containers: radarr sonarr prowlarr nzbget delugevpn wireguard emby rclone and adguard. Do you think I would have any problems with DNS running them.
Secondly is there any benefit of me running Alpine in Data Mode over Sys? The EQ14 only has 16Gb DDR4 RAM. I like to prioritize fast downloads and video file sharing.
Thanks!
Hey everyone!!
I'm a bit of a noob with Alpine, and I'm hoping to get some help with a project I’m working on. It's an art installation, to be more exact three-channel video installation. There will be 3 Raspberry Pi Zero 2W attached to the back of three different screens. There will also be a local WiFi router (without internet access) that the Raspberry Pis will use to synchronize the playback of videos across all three screens. The videos are identical in duration, and I need them to play in sync.
Here’s where I’m getting a bit confused:
bcm2837-rpi-zero-2-w.dtb
. This makes me wonder: is the Raspberry Pi Zero 2W even supported, because it boots, but then I keep on running into all sorts of fantastic situations?!Any help or guidance would be much appreciated! I’m still learning, so I might have missed some important details or might be a bit confused about some of these aspects.
Thanks in advance!
Hi, I'm a bit confused around networking on Alpine and in general. On my laptop, I now run dhcpcd as its own rc service at Default runlevel, and in /etc/network/interfaces I have:
auto lo
iface lo inet loopback
I did this to reduce the boot time, which at default was 1 minute. Now it's less
than 5 seconds, or maybe a bit more depending where you count from (I also
configured rc_parallel="YES"
in /etc/rc.conf). It worked for the most part,
but I had to set
interface eth0
metric 100
interface eth1
metric 200
interface wlan0
metric 300
in /etc/dhcpcd.conf for the dhcpcd service not to crash on boot when my laptop is connected to a monitor with ethernet, via USB-C. Only that it didn't actually work after all. After two or so reboots dhcpcd service is crashing again.
I'm also not quite sure how the networking service, ifupdown(-ng) and dhcpcd relates to each other, and what is and what isn't needed. If anyone have some answers or guesses to this or to the crashing, I'd love to hear, thanks!
Update:
I think I fixed it. Turns out I had set
[General]
EnableNetworkConfiguration=True
[Network]
NameResolvingService=resolvconf
in /etc/iwd/main.conf. I removed those (EnableNetworkConfiguration defaults to False), and now everything seems to work. Still not quite sure what
auto lo
iface lo inet loopback
does and how it relates though.
Hiya everyone,
I'm running Alpine 3.21 with xfce 4.18.
How do/where do I find the file that autostarts the desktop? (I want to boot into cmd and start desktop when I want it). I've tried ai and some googling but am unsure of the specific terms
Thankyou for any pointers
EDIT
All sorted, thanks to Camo138 !
Hey everybody!
I'm currently running the latest version of Alpine (3.21) on an xcpng host. We experienced some power issues where we would drop power every so often. As a result, it's seemed to cause issues for one of our VMs. We didn't have a correctly configured backup (very ignorant decision/oversight) and when booting, I get
"mount: mounting /dev/xvda3 on /sysroot failed: No error information
Mounting root fail
initramfs emergency shell launched. Type 'exit; to continue boot.
sh: cant access tty: job control turned off"
I can manually run "mount /dev/xvda3 /sysroot" successfully, then type "exit" and the system boots like normal, which is great, but it does this with every reboot and having to manually mount /sysroot every time obviously isn't ideal. When I boot up and look at /etc/fstab, it has the entry in there for the mount, so I'm confused. I'd like to remedy this. Any help is greatly appreciated because I'm running out of ideas.
Hi, where can I find the source repository for the Alpine Linux wiki (wiki.alpinelinux.org)? Is it available/public? Thanks!
SOLVED?
Check my reply to u/fitrh
- - - - -
I tried following the alpine linux sway and pipewire wiki-pages to setup bluetooth on wayland, but can't get rid of the wall of errors that popups up when I login from the tty. The pipewire page doesn't mention these error(s).
For reference I installed alpine from the latest iso available on the downloads page, onto a Lenovo Thinkpad T430. After which I enabled main
, community
, and testing
and upgraded all of them to edge
, and ran apk -U upgrade
. I then installed seatd
, sway
, alacritty
, qutebrowser
, pipewire-pulse
, pipewire-spa-bluez
, and bluez
, and ran setup-devd udev
. I also enabled the bluetooth
and seatd
services via rc-update
I finished by creating a new user and adding them to the audio
, input
, video
and seat
groups, and switching to that new user to created .profile
, with
if [ -z "$XDG_RUNTIME_DIR" ]; then
XDG_RUNTIME_DIR="/tmp/$(id -u)-runtime-dir"
mkdir -pm 0700 "$XDG_RUNTIME_DIR"
export XDG_RUNTIME_DIR
fi
export $(dbus-launch)
/usr/libexec/pipewire-launcher
which I later changed to
if [ -z "$XDG_RUNTIME_DIR" ]; then
XDG_RUNTIME_DIR="/tmp/$(id -u)-runtime-dir"
mkdir -pm 0700 "$XDG_RUNTIME_DIR"
export XDG_RUNTIME_DIR
fi
dbus-run-session /usr/libexec/pipewire-launcher
after getting this Error acquiring bus address: Cannot autolaunch D-Bus without X11 $DISPLAY
I now have this running everytime I log in
and have to ctrl-C in order to interact with the tty, but can launch sway, play audio and connect to bluetooth without issue.
What is causing these errors and what can I do to get rid of them.
I tried other devices like usb devices and work flawlessly
So I just installed Alpine in a virtual machine and WOW! It is so light, using so few resources. I added KDE on top and the install was only 2.5GB max. I was able to config it using setup-alpine in about 2 minutes. Installed docker and had multiple containers spun up in about 10 minutes and they were running lean and fast. I have to say I’m a convert.
My plan now is to replace my Ubuntu server with Alpine and docker to really turbo charge my home lab. I’ve got an i7 9700 with a 500GB nvme and 64GB RAM that I’m using for my server, so I’m excited to see what it can do with with more resources.
Super excited to be part of the community!