/r/AlpineLinux

Photograph via snooOG

Unofficial community devoted to Alpine Linux, a security-oriented, lightweight Linux distribution based on musl libc and busybox.

/r/AlpineLinux

4,141 Subscribers

1

Suddenly 1/3 of download speed

Hello there,

I use an old Lenovo T520 at home for a server. Today I noticed that internet download speeds have dropped by 3 times. A speedtest on my PC manages up to 300Mbit/sec download, on my server it's just 92Mbit/sec. The network card supports up to 1.000Mbit/sec, yet I am limited to 92Mbit/sec, even when accessing it locally.

I have no idea what causes this issue. I run docker and a wireguard tunnel to port forward (allowed IPs are 10.0.0.1, thus it shouldn't be the cause).

I have turned off the wireguard tunnel and the docker daemon, but the issue persists. I updated and rebooted, didn't help.

WLAN isn't setup, just ethernet.

nload shows background traffic averaging at 80kbit/sec (inbound + outbound).

Another issue I have had for a longer while is that the server wouldn't renew its DHCP lease. I added a cronjob to renew its lease using udhcpc every hour.

Some things that might help during troubleshooting:

$ ethtool eth0
Settings for eth0:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Supported pause frame use: Symmetric Receive-only
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Advertised pause frame use: Symmetric Receive-only
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                         100baseT/Half 100baseT/Full
    Link partner advertised pause frame use: No
    Link partner advertised auto-negotiation: Yes
    Link partner advertised FEC modes: Not reported
    Speed: 100Mb/s
    Duplex: Full
    Auto-negotiation: on
    Port: Twisted Pair
    PHYAD: 1
    Transceiver: internal
    MDI-X: on (auto)
    Supports Wake-on: pumbg
    Wake-on: g
        Current message level: 0x00000007 (7)
                               drv probe link
    Link detected: yes

$ ip link show eth0
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether f0:de:f1:ab:9a:4a brd ff:ff:ff:ff:ff:ff

$ speedtest # speedtest-cli
Retrieving speedtest.net configuration...
Testing from ... (...)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by ... (...) [...]: 12.675 ms
Testing download speed................................................................................
Download: 91.88 Mbit/s
Testing upload speed......................................................................................................
Upload: 55.30 Mbit/s

$ ip addr
: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host proto kernel_lo 
       valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 08:11:96:cd:d5:c0 brd ff:ff:ff:ff:ff:ff
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether f0:de:f1:ab:9a:4a brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.72/24 brd 192.168.178.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2a00:79c0:62a:4d00:f2de:f1ff:feab:9a4a/64 scope global dynamic mngtmpaddr proto kernel_ra 
       valid_lft 6667sec preferred_lft 3067sec
    inet6 fe80::f2de:f1ff:feab:9a4a/64 scope link proto kernel_ll 
       valid_lft forever preferred_lft forever
6: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:e8:0a:38:cf brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

$ cat /etc/network/interfaces 
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
# iface eth0 inet6 auto

$ lshw
# Reduced to networking part
        *-network
             description: Ethernet interface
             product: 82579LM Gigabit Network Connection (Lewisville)
             vendor: Intel Corporation
             physical id: 19
             bus info: pci@0000:00:19.0
             logical name: eth0
             version: 04
             serial: f0:de:f1:ab:9a:4a
             size: 100Mbit/s
             capacity: 1Gbit/s
             width: 32 bits
             clock: 33MHz
             capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
             configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=6.6.63-0-lts duplex=full firmware=0.13-3 ip=192.168.178.72 latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s

$ ethtool eth0
Settings for eth0:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Supported pause frame use: Symmetric Receive-only
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Advertised pause frame use: Symmetric Receive-only
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                         100baseT/Half 100baseT/Full
    Link partner advertised pause frame use: No
    Link partner advertised auto-negotiation: Yes
    Link partner advertised FEC modes: Not reported
    Speed: 100Mb/s
    Duplex: Full
    Auto-negotiation: on
    Port: Twisted Pair
    PHYAD: 1
    Transceiver: internal
    MDI-X: on (auto)
    Supports Wake-on: pumbg
    Wake-on: g
        Current message level: 0x00000007 (7)
                               drv probe link
    Link detected: yes
0 Comments
2024/11/30
20:20 UTC

1

How to install openspades on alpine linux

How to compile alpine linux? How to install alpine linux? what is the dependencies of alpine linux? And what command must i run to install it on alpine linux?

Yes. There existe a package in the test repo of alpine linux. But that package is very buggy. I mean very buggy. Its brakes sometimes, and i think it brakes becuse the have not compiled it the right way. So i am basicly asking for every dependencies that openspades uses.

Can someone help me Here?

https://github.com/yvt/openspades

Here is the wikidata item for more links related to openspades: https://www.wikidata.org/wiki/Q122202498

Thank you.

3 Comments
2024/11/29
21:02 UTC

1

Planning on download Alpine OS, tips?

My purpose is general-use, staying secure, and dabbling into coding once in a bit. I've heard great things abt this OS, especially since it uses OpenRC, and that it's simpler to install than Arch. But wanting some dev advice on how they really feel abt using it and why they do

19 Comments
2024/11/28
21:55 UTC

1

How to setup remote unlock using SSH for Alpine?

I'm considering switching to another distro entirely because this is actually really hard to do. I wanted to check if you guys had some knowledge.

I found old issues on gitlab about merging dropbear-initramfs but they are still open. The only solution seems to be using dracut with dracut-sshd. But I'm still stuck, not only does dracut have a wrong keymap (because loadkeys does not exist on alpine) but I still can't SSH during boot. I guess this is because the network is not properly configured with dracut.

Any help would be appreciated.

4 Comments
2024/11/28
17:16 UTC

3

Changing hard limits and soft limits in Alpine Linux

Hi guys,

I'm tryng to build a virtual machine with Alpine + DSpace (a software for managing digital library and institutional repositories). DSpace relies on Apache Solr, a search engine server, for indexing and querying documents. Now, when I start Solr, I get this message:

\*\*\* \[WARN\] \*\*\* Your open file limit is currently 1024.     
It should be set to 65000 to avoid operational disruption.    
If you no longer wish to see this warning, set SOLR\_ULIMIT\_CHECKS to false in your profile o  
r [solr.in.sh](http://solr.in.sh)  
\*\*\* \[WARN\] \*\*\*  Your Max Processes Limit is currently 19166.    
It should be set to 65000 to avoid operational disruption.    
If you no longer wish to see this warning, set SOLR\_ULIMIT\_CHECKS to false in your profile o  
r [solr.in.sh](http://solr.in.sh)

My question is: how do I permanently set my file descriptors and process numbers limit in Alpine?

I'd like to keep things simple, so not using PAM and /etc/security/limits.conf.

This is my current ulimit -a :

    Maximum size of core files created                              (kB, -c) 0
    Maximum size of a process’s data segment                        (kB, -d) unlimited
    Control of maximum nice priority                                    (-e) 0
    Maximum size of files created by the shell                      (kB, -f) unlimited
    Maximum number of pending signals                                   (-i) 19166
    Maximum size that may be locked into memory                     (kB, -l) 8192
    Maximum resident set size                                       (kB, -m) unlimited
    Maximum number of open file descriptors                             (-n) 1024
    Maximum bytes in POSIX message queues                           (kB, -q) 800
    Maximum realtime scheduling priority                                (-r) 0
    Maximum stack size                                              (kB, -s) 8192
    Maximum amount of CPU time in seconds                      (seconds, -t) unlimited
    Maximum number of processes available to current user               (-u) 19166
    Maximum amount of virtual memory available to each process      (kB, -v) unlimited
    Maximum contiguous realtime CPU time                                (-y) unlimited

These are my hard limits:

dspace@dspace ~> ulimit -Hu # Number of processes
19166
dspace@dspace ~> ulimit -Hn # Number of file descriptors
4096

And this is my /etc/sysctl.conf

# content of this file will override /etc/sysctl.d/*
fs.file-max = 65000
kernel.pid_max = 65000

I can change hard limits as root, but these changes do not apply to my user "dspace". Plus, settings in /etc/sysctl.conf seem to have no effect at all, as you can see below:

root@dspace /h/dspace# cat /etc/sysctl.conf
# content of this file will override /etc/sysctl.d/*
fs.file-max = 65000
kernel.pid_max = 65000
root@dspace /h/dspace# ulimit -Hu # Number of processes
19166
root@dspace /h/dspace# ulimit -Hn # Number of file descriptors
4096
root@dspace /h/dspace# 

Do you know what else I can try? I couldn't find anything on Alpine Wiki nor by googling.

If that matters, right now I'm using the Fish Shell for comfort, but everything I said still applies when using BusyBox's ash.

Thanks in advance for every reply :).

0 Comments
2024/11/26
11:34 UTC

8

I've just fixed and got ImHex running!

WARNING: Bad english

Well... if I can even call this a "fix". But it works, huh. In this post I want to describe all the steps I performed to get from SIGSEGV to working application. I guess someone will find it interesting, enjoy!

Preamble

I've been searching for great hex editor for Linux for quite some time now. So I came across the ImHex editor for reverse engineers. I looked into it and it seemed to suit my needs, but unfortunately when I apk add'ed it into my system and gave it a shot, well, it crashed during startup (great).

How difficult can compiling be?

I started to investigate further in order to find a root cause of problem. When some binary doesn't work out of the box, the first thing I usually try to do is to compile it from source myself. It helps most of the time in such weird scenarios, just like this one.

I started to follow this official instruction describing building steps for Linux. There is no dist/get_deps_alpine.sh or something similar in repository, so I basically installed everything by hand according to Arch script. The moment of truth:

# ninja install

... eventually failed. Looking through compiler errors I figured out that for whatever reason lseek(2) is #define'd to lseek64 in the very beginning of one of the source files. I guess on other Linux distributions it ought to be 64-bit version of function, but Alpine's MUSL lseek(2) is already 64-bit, doesn't have any prefix. Removed it and proceeded with build.

--- a/plugins/builtin/source/content/providers/disk_provider.cpp
+++ b/plugins/builtin/source/content/providers/disk_provider.cpp
@@ -44,7 +44,8 @@
 #endif

 #if defined(OS_LINUX) && !defined(OS_FREEBSD)
-    #define lseek lseek64
+    /* I use Alpine btw */
+//    #define lseek lseek64
 #elif defined(OS_FREEBSD)
     #include <sys/disk.h>
     #define DEFAULT_SECTOR_SIZE 512

The next problem was pretty simple to fix: no magic.h header. A little bit of searching showed that it seems to be a part of library, which file(1) uses too determine the type of given file. apk add'ed file-dev and continued.

This one was really strange. It was linking issue (if you're an experienced C/C++ dev, you should probably know that linking is the most cursed and annoying area in which you can face problems). I got lots of undefined references to glfw* family of functions, which are all obviously come from glfw library. At first it didn't make any sense: I've already installed both glfw and glfw-dev packages. But some time after I noticed that there are no mentions of glfw stuff in ninja-providen compilation line (?)

I didn't know how to add custom LDFLAGS of some sort to ninja, so I decided to do a dirty workaround (I think the most dirtiest workaround in my entire life): call compiler from a shell wrapper, which translates arguments to the original compiler and in addition appends all the necessary glfw flags for linking...

# rm /usr/bin/clang++
# cat <<EOF >/usr/bin/clang++
> #!/bin/sh
> /usr/lib/llvm17/bin/clang++ $@ -L/usr/lib `pkg-config --libs glfw3`
> EOF
# chmod 755 /usr/bin/clang++

And after that it has successfully built and installed ImHex!

Still here

Unfortunately it still crashed after first run during startup. So I decided to run it through gdb to see what's wrong and where does it segfault:

$ gdb ./imhex
...
(gdb) r
...
Thread 1 "Main" received signal SIGSEGV, Segmentation fault.
get_meta (p=p@entry=0x7ffff63387b0 "e") at src/malloc/mallocng/meta.h:141
warning: 141    src/malloc/mallocng/meta.h: No such file or directory
(gdb)

It seemed like heap corruption issue, or something is just wrong with the heap. When I checked stack backtrace, it became much cleaner what's going on:

(gdb) bt
#0  get_meta (p=p@entry=0x7ffff63387b0 "e") at src/malloc/mallocng/meta.h:141
#1  0x00007ffff7f80db3 in __libc_free (p=0x7ffff63387b0) at src/malloc/mallocng/free.c:105
#2  0x00007ffff7f80422 in free (p=<optimized out>) at src/malloc/free.c:5
#3  0x00007ffff7fa4f6c in regfree (preg=<optimized out>) at src/regex/regcomp.c:2926
#4  0x00007ffff7314d99 in ?? () from /usr/lib/libglfw.so.3
#5  0x00007ffff730ec39 in ?? () from /usr/lib/libglfw.so.3
#6  0x00005555555bafdc in hex::init::WindowSplash::~WindowSplash() ()
#7  0x00005555555debc9 in hex::init::runImHex() ()
#8  0x0000555555576482 in main ()
(gdb)

The fact, that it crashes somewhere deep in the free(3) implementation doesn't indicate the bug with LibC itself, but rather that NULL pointer or some other invalid location was passed into it, so it didn't expect that and acts like it has received a valid page allocated by malloc(3).

If that was more important stuff, maybe it'd be worth to fix. But because it is just a memory freeing, we could just get rid of it. I mean, of course it's a memory leak, but it isn't critical: this code runs only during startup, not in loop or inside an interrupt of some sort. Linux will free all pages allocated for this process after it's termination, so who cares if we leak a couple of bytes here.

--- a/main/gui/source/init/splash_window.cpp
+++ b/main/gui/source/init/splash_window.cpp
@@ -65,8 +65,8 @@ namespace hex::init {
     }

     WindowSplash::~WindowSplash() {
-        this->exitImGui();
-        this->exitGLFW();
+        /* Who needs it, right?... */
+        ;
     }

After recompiling I finally saw a beautiful window:

https://preview.redd.it/xf94tamcq33e1.png?width=1591&format=png&auto=webp&s=8725c41db747f8b0c332efbbe3553bb4edea1fd9

After all being said

That's it! Even though it's dirty af, at least it works and I am very happy with it. I'll figure out how to contact the maintainer, so I'll try to make a pull request of some sort soon (honestly, I think it needs a bit more work to make it a bit more cleaner, then what I have now, in order to push it into main branch). Or I'll eventually find out that I am dumb and forgot some dynamic dependencies for glfw/OpenGL to function properly :D

Important note!

If you are following along, don't forget to fix your clang++ symbolic link after, or you'll have really hard times in the future...

2 Comments
2024/11/25
19:41 UTC

3

Minimal Alpine with UEFI and UKI

I'm trying to build a minimal Alpine image with support for UEFI and UKI (no secureboot), bootstrapped via apt-tools. Let me show you guy the build script, the I'll explain the issue:

set -eux

readonly PATH=/bin:/sbin:/usr/bin:/usr/sbin
readonly DEFAULT_DISK_SIZE="2G"
readonly IMAGE="alpine.img"
readonly MIRROR=https://dl-cdn.alpinelinux.org/alpine
readonly REL=3.21
readonly ARCH=$(uname -m)
readonly APKV=2.14.4-r4
readonly REPO="${MIRROR}"/v"${REL}"/main
readonly HOST="satellite"

wait_until_settled() {
udevadm settle
blockdev --flushbufs --rereadpt "${1}"
until test -e "${1}p2"; do
echo "${1}p2 doesn't exist yet..."
sleep 1
done
}

cleanup() {
set +o errexit

if [ -n "${LOOPDEV:-}" ]; then
losetup -d "${LOOPDEV}"
fi
if [ -n "${MOUNT:-}" ] && mountpoint -q "${MOUNT}"; then
umount --recursive "${MOUNT}" || exit 1
fi
if [ -n "${TMPDIR:-}" ]; then
rm -rf "${TMPDIR}"
fi
}
trap cleanup EXIT

init() {
readonly ORIG_PWD="${PWD}"
readonly OUTPUT="${PWD}/out"
tmpdir="$(mktemp --dry-run --directory --tmpdir="${PWD}/tmp")"
readonly TMPDIR="${tmpdir}"
mkdir -p "${OUTPUT}" "${TMPDIR}"
if [ -n "${SUDO_UID:-}" ] && [ -n "${SUDO_GID:-}" ]; then
chown "${SUDO_UID}:${SUDO_GID}" "${OUTPUT}" "${TMPDIR}"
fi
cd "${TMPDIR}"

readonly MOUNT="${PWD}/mount"
mkdir "${MOUNT}"
}

setup_disk() {
truncate -s "${DEFAULT_DISK_SIZE}" "${IMAGE}"
sgdisk --align-end \
--clear \
--new 0:0:+1G --typecode=0:ef00 --change-name=0:'EFI' \
--new 0:0:0 --typecode=0:8304 --change-name=0:'alpine' \
"${IMAGE}"

LOOPDEV=$(losetup --find --partscan --show "${IMAGE}")
wait_until_settled "${LOOPDEV}"

mkfs.vfat -F 32 -n EFI "${LOOPDEV}p1"
mkfs.ext4 -L alpine -q "${LOOPDEV}p2"
mount "${LOOPDEV}p2" "${MOUNT}"
mount --mkdir "${LOOPDEV}p1" "${MOUNT}/boot/efi"
}

bootstrap() {
curl -s "${MIRROR}"/v"${REL}"/main/"${ARCH}"/apk-tools-static-${APKV}.apk |
tar xz

./sbin/apk.static --repository "${REPO}" \
--update-cache \
--allow-untrusted \
--root "${MOUNT}" \
--initdb add alpine-base


cat <<EOF >"${MOUNT}"/etc/fstab
LABEL=alpine / ext4 defaults 0 0
LABEL=EFI /boot/efi vfat defaults 0 2
EOF

echo "nameserver 1.1.1.1" > "${MOUNT}"/etc/resolv.conf
echo "${REPO}" >"${MOUNT}"/etc/apk/repositories

cat <<EOF >"${MOUNT}"/etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
EOF

for a in dev dev/pts proc sys run; do mount -o bind /$a "${MOUNT}"/$a; done

chroot "${MOUNT}" /bin/sh -x <<CHROOT
mkdir -p /etc/kernel-hooks.d/
mkdir -p /etc/mkinitfs/
mkdir -p /boot/efi/EFI/Linux/

echo "cmdline=root=LABEL=alpine modules=ext4" >
/etc/kernel-hooks.d/secureboot.conf
echo "signing_disabled=yes" >> /etc/kernel-hooks.d/secureboot.conf
echo "output_dir="/boot/efi/EFI/Linux/"" >>
/etc/kernel-hooks.d/secureboot.conf
echo "output_name="bootx64.efi"" >> /etc/kernel-hooks.d/secureboot.conf
echo "disable_trigger=yes" >> /etc/mkinitfs/mkinitfs.conf

apk update
apk add linux-lts \
linux-firmware-none \
mkinitfs \
secureboot-hook \
gummiboot-efistub \

setup-hostname -n "${HOST}"

rc-update -q add devfs sysinit
rc-update -q add dmesg sysinit
rc-update -q add mdev sysinit
rc-update -q add hwdrivers sysinit

rc-update -q add hwclock boot
rc-update -q add modules boot
rc-update -q add hostname boot
rc-update -q add bootmisc boot
rc-update -q add networking boot

rc-update -q add mount-ro shutdown
rc-update -q add killprocs shutdown
rc-update -q add savecache shutdown

rc-update -q add crond default

mkdir -p /boot/efi/loader/entries

cat > /boot/efi/loader/entries/alpine.conf <<EOF
title Alpine Linux
linux /EFI/Linux/bootx64.efi
EOF

ls -la /boot/efi/EFI/Linux/
CHROOT

cp "${IMAGE}" "${OUTPUT}/"
}

main() {
if [ "$(id -u)" -ne 0 ]; then
echo "root is required"
exit 1
fi

init
setup_disk
bootstrap
}

I tried couple of variations on the above but regardless of what I try, the UEFI partition of the final image is always empty. Now, the UKI seems to be generated alright - I sandwiched a ls -la /boot/efi/EFI/Linux/ toward the end of the script and output does show it being there:

>+ ls -la /boot/efi/EFI/Linux/
>total 11416
>drwxr-xr-x 2 root root 4096 Nov 23 13:20 .
>drwxr-xr-x 3 root root 4096 Nov 23 13:20 ..
>-rwxr-xr-x 1 root root 11680190 Nov 23 13:20 bootx64.efi

The full output of the build can be seen here: https://0x0.st/X56h.txt

But then I get an unbootable image, as the EFI partition is empty. I'm a little bit at loss here and would appreciate any advice as to how I could debug the issue.

1 Comment
2024/11/25
14:10 UTC

7

Getting SELinux working in Alpine

I recompiled a kernel with SELinux support enabled and made sure to pass a command line to the kernel that I was enabling it just to be sure.

I've installed libselinux-utils, but I can't seem to do anything to actually show SELinux is enabled or enable it. Trying setenforce 1 just returns "SELinux is disabled" and other commands return similar.

If I have the utilities and an SELinux enabled kernel, what am I missing?

3 Comments
2024/11/23
08:18 UTC

3

When are packages added/updated on a diskless install?

Coming back to Alpine after some years of neglect. Trying to refresh my understanding of things, also some processes have changed in the meantime.

Say I have a diskless install, and on a USB key have an approval file and a apkcache. Say in the /etc/apk/world in my overlay file, I specify packages foo and bar. Say that foo is present in my boot media, but that a newer version is available in my apkcache. Bar is not present on the boot media, but is in the apkcache.

My questions are: does any part of the init process automatically update foo and install bar? If so where is this implemented? Or do I instead have do it manually with some combination of apk add --upgrade, apk fix --upgrade, apk update?

5 Comments
2024/11/20
18:13 UTC

4

Raspberry Pi Touch Display 2 working on Alpine/PmOS

Hi all,

A couple of weeks ago, the Raspberry Pi Foundation released a new version of their 7 inch touch display. Because of the new kernel module required, at this point it only works on Raspbian automatically.

Last night, I finally made it work with alpine. All that is needed is to add the following to the cmdline.txt: “video=DSI-1:1280x720M@60”

Additionally, you need to change the kernel modules loaded in usrconfig.txt: From “vc4-fkms-v3d” to “vc4-kms-v3d” And add “dtoverlay=vc4-kms-dsi-ili9881-7inch” below it.

This should work on other distros but I’m not sure. Just a tip for anyone else in this unique situation!

Edit: this was all done using a pmbootstrap generated Edge image for Raspberry Pi 4 with a DSI display using Phosh

2 Comments
2024/11/18
12:35 UTC

2

armhf vs armv7

Hi I'm getting a Raspberry Pi zero 2w, and these are capable of running both armhf and armv7 instruction sets. (Also aarch64, but I'm going to stay 32 bit with this device.) The Alpine install downloads for Raspberry Pis include both an armhf and a armv7 option.

Some information I'm seeing suggests that between these, I should prefer armhf, as it'd give me better floating point performance. And that binaries compiled for armv7 alone would (sometimes? always?) do floating point operations in software, bypassing the fp hardware.

Other information I'm seeing says that Alpine's armhf images are based on the v6 instruction set, so if I have a Raspberry Pi device capable of running the armv7 kernel/libs/binaries, I should use that instead. (Or aarch64.) But I'm not sure if this claim about the Alpine armhf images is up-to-date.

Anyone in a position to clarify?

4 Comments
2024/11/18
11:32 UTC

0

How to install Alpine Linux?

I had an installer, but it asks for a password... Idk, I'm in tty and it's asks for a password

1 Comment
2024/11/17
18:42 UTC

1

Cannot run LXQt components under wayland

Hello, I have tried to install and run LXQt under Labwc and Hyprland, but every time I try to run any components of it or even lxqt-session I get this error:

Error relocating /usr/lib/libLayerShellQtInterface.so.6: _ZN15QtWaylandClient14QWaylandWindow9wlSurfaceEv: symbol not found

I also have compiled lxqt-wayland-session since it isn't in the testing repo yet, and I only have issues with just the components. I also get the 'Panel/notificationd/desktop crashed too many times. Its autorestart has been disabled.' message because of the error.

3 Comments
2024/11/17
07:45 UTC

1

Anyone know why Alpine is insistent on downloading packages when the local package cache is enabled?

So I'm building a netboot server to boot a quite a few bare metal machines I have laying around.

While I have a machine booting from an lbu backup using apkovl=somewhere in the kernel commandline and it does get picked up, it appears that Alpine's Init script is a bit insistent in downloading packages from a repository when the machine boots to build the actual system root (It appears that Alpine always will pull packages from the mirror instead of using the cached packages that are in the apkovl even when the repo is disabled in the /etc/apk/repositories unless I have a misunderstanding on how apk works).

Any ideas as to fix this short of standing up a local repository? Thanks!

5 Comments
2024/11/12
06:40 UTC

5

Anyone tried Cosmic DE alpha on Alpine?

Has anyone tried Cosmic DE on Alpine? What are your thoughts?

0 Comments
2024/11/11
16:03 UTC

0

Intel a310 GPU

Hi, all.

Do we have sorry for Intel's a310 GPU, please?

2 Comments
2024/11/07
13:20 UTC

1

ParquetSharp.LogicalTypeFactory library missing

Hi All,

I am trying to spin up .NET 8 docker image in Alpine linux and while I successfully tried using the MS .NET Alpine linux tags:

mcr.microsoft.com/dotnet/sdk:8.0-alpine3.20 for build  & 

mcr.microsoft.com/dotnet/aspnet:8.0-alpine3.20 for runtime

I keep getting the below error message:

fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]


      An unhandled exception has occurred while executing the request.


      System.TypeInitializationException: The type initializer for 'ParquetSharp.LogicalTypeFactory' threw an exception.


       ---> System.DllNotFoundException: Unable to load shared library 'ParquetSharpNative' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable:


      Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /publish/runtimes/linux-x64/native/ParquetSharpNative.so)


      Error loading shared library /usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.10/ParquetSharpNative.so: No such file or directory


      Error loading shared library /publish/ParquetSharpNative.so: No such file or directory


      Error loading shared library ParquetSharpNative.so: No such file or directory


      Error loading shared library /publish/runtimes/linux-x64/native/libParquetSharpNative.so: No such file or directory


      Error loading shared library /usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.10/libParquetSharpNative.so: No such file or directory


      Error loading shared library /publish/libParquetSharpNative.so: No such file or directory


      Error loading shared library libParquetSharpNative.so: No such file or directory


      Error loading shared library /publish/runtimes/linux-x64/native/ParquetSharpNative: No such file or directory


      Error loading shared library /usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.10/ParquetSharpNative: No such file or directory


      Error loading shared library /publish/ParquetSharpNative: No such file or directory


      Error loading shared library ParquetSharpNative: No such file or directory


      Error loading shared library /publish/runtimes/linux-x64/native/libParquetSharpNative: No such file or directory


      Error loading shared library /usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.10/libParquetSharpNative: No such file or directory


      Error loading shared library /publish/libParquetSharpNative: No such file or directory


      Error loading shared library libParquetSharpNative: No such file or directory




         at ParquetSharp.LogicalType.LogicalType_None(IntPtr& logicalType)


         at ParquetSharp.ExceptionInfo.Return[TValue](GetAction`1 getter)


         at ParquetSharp.LogicalType.None()


         at ParquetSharp.LogicalTypeFactory..cctor()

Does anyone have any idea on why this is happening? And if there is any workaround for this?

TIA

0 Comments
2024/11/05
21:10 UTC

1

Alpine Linux can’t see my partitions in the install script

I’m dual booting with Windows and Debian at the moment and have been for about a year now (on the same drive), but I wanted to create a small install of Alpine Linux. I created a 5GB partition using MiniTool Partition Wizard specifically for it.

However, the install script on the Live USB doesn’t see any of my partitions, only the entire drive. Running blkid shows them all, but Alpine still can’t see any of them.

Does anyone know why this is happening or what I can do to fix it? I'd really like to be able to install it on it's own partition, then choose it in GRUB when I boot. Thank you

2 Comments
2024/11/04
20:51 UTC

2

http/3.0 nginx

Nginx officialy support http/3.0 since 1.25, or on v3.20.x and on edge as well we have 1.26 without http3_mod! I need to compile and build it… Is there any issues, concernes on this support in Alpine?

4 Comments
2024/11/04
20:01 UTC

2

Xorg not working

I installed icewm on alpine then run setup-xorg-base after that I launched Xorg and see xf86OpenConsole: Cannot open virtual console 1(Permission denied)

6 Comments
2024/11/02
07:48 UTC

3

Help needed - Diskless mode documentation in wiki

I'm trying to consolidate information related to Diskless mode in Alpine Linux wiki to a single start page with improved navigation to other related pages. The draft currently resides here. Since i have only tested Diskless mode to understand how it works, i'm a bit unsure if my understanding is correct. So, i want feedback from experts here who have deployed and using diskless mode in production.

If you've account in wiki, please correct the mistakes in the draft directly or in Discussion page. Alternately, please leave your feedback here in reddit itself.

Also please take this opportunity to leave your feedback on the "data mode" documentation too i.e what needs to be fixed or added. The current wiki page for both data and diskless mode is here..

8 Comments
2024/10/31
17:04 UTC

1

Openconnect-sso possible?

Hello,

Trying to install to connect to work:

https://pypi.org/project/openconnect-sso/

other distros are ok, alpine is eluding me. Anyone know if it's possible?

Cheers!

0 Comments
2024/10/29
13:04 UTC

1

Qemu on alpine

Tried to install qemu on alpine with apk add qemu qemu-img qemu-system-x86_64 but i get error saying no such package for all 3 packages

2 Comments
2024/10/28
14:26 UTC

1

Encrypted btrfs raid can't be mounted

I'm trying to set up automatic mapping and mounting 2 luks filesystems, 2nd one is btrfs raid on 2 encrypted volumes. Mapping is successful, but raid can't be mounted, and ash says "no such file or directory". Dmesg tells one of disks is missing, but 'btrfs filesystem show` says everything is fine. I tested on another system(arch Linux) nd raid successfully mounted. Where could be a problem? Thx

4 Comments
2024/10/27
09:03 UTC

2

podman issues and alpine on ram

Hi guys, I'll put below some doubts and questions I have. Sorry if they are already been asked, I've done a quick search and I've not found much.

Bit of preamble: I'm currently running a tiny home server with docker on debian, so I'm not completely newbie.

I fell in love with Alpine and its way to make things minimal, quick and effective, therefore I decided to move all my containers to Alpine and switch to podman instead of docker.

Here comes the questions:

  1. I'd like to run podman and my containers on Alpine which ideally will run completely on RAM. I tried and I'm not completely sure how this works. The containers are vaultwarden and nextcloud, which both need to write and read data. can I mount an external disk for that and keep Alpine on RAM?

  2. I also tested to install Alpine on system (sys) and podman works just fine, however keeps giving me an alert about / not being shared. I've read the wiki and I've added "shared" on my fstab, however this warning message keeps coming back.

  3. on debian (therefore with systemd) I'd have a service called "podman-restart.sh" which will allow any container to re-start automatically at any reboot of the machine. how can I achieve this with Alpine and openrc?

That's all for now. Hope someone can help, thank you a lot!

11 Comments
2024/10/25
21:12 UTC

Back To Top