19

November
2017

vesamenu.c32 boot problem

Several people reported they have problem booting Slax from USB device, with the following error message displayed:

failed to load com32 file /slax/boot/vesamenu.c32

I am not able to replicate this error, so I need your help to find out what particular change fixes it. So, if you are experiencing these troubles, please try the following and let me know what helps:

1) download latest syslinux
2) unzip
3) find file ./bios/com32/menu/vesamenu.c32
4) copy the vesamenu.c32 to your USB disk with Slax and try to boot Slax again.

If this helps to resolve your problem, please reply here that vesamenu.c32 is the only file which needs update. However, it is possible that some more files need to be added, so if only vesamenu.c32 won't help to fix your problem, try to copy also ./bios/com32/libutil/libutil.c32, ./bios/com32/libcom/libcom.c32, and maybe some others from the ./bios/com32 directory. I don't think that those are needed, but you can test.

I cannot solve this alone, since it doesn't fail on my computer. Thank you very much for your time playing with this.

18

November
2017

Some examples for Persistent Changes

In a reply to several questions about persistence, I'd like to put here few hints. Remember that this all works after reboot only if you select "Keep changes persistent" in the boot menu, and only if you are running Slax from a writable media such as USB disk.

1) how to make sshd server start automatically?

You can start ssh server manually by running service ssh start. If you run it the first time, it creates some keys in /etc/ssh/ directory, so the first start is a little bit longer. But even after the keys are created, sshd won't autostart on reboot. It's because I manually disabled it in Slax, because root's password is well known. So, make sure to change your root's password (and password of the guest user) to something new. When done, run systemctl enable ssh. It will basically create a symlink to ssh.service in multi-user.target.wants (which is in /etc/systemd/system directory). This ensures sshd will be started on boot.

2) How to make keyboard layout persistent?

I forgot to implement such functionality. So keyboard layout needs to be set from the fluxbox menu each time and there is no config file to change. You can make it persistent by editing /root/.fluxbox/startup ... add there a line such as setxkbmap fr for french keyboard layout, etc. Make sure it is somewhere on top of the file. I will probably fix the persistence of keyboard layout in next Slax release, so if you set it this way, you may need to remove it from the startup file again at some point later, when Slax fixes this.

3) how to disable autostart of Xorg?

Similarly like enabling ssh server, you may disable autostarting of X by the following command: systemctl disable xorg. This will remove display-manager.service symlink from /etc/systemd/system and you will get only text-mode console on next boot. You can still start X manually with the startx command after login, though.

17

November
2017

Wifi in Slax

Apparently I forgot to include some wifi support in Slax. I don't have any device with wifi here at the moment, so I can't test, but there should be few things to consider. First of all, you will probably need some firmware for your wifi adapter. I'm not sure which packages to install, some of them may not be in official debian repository. Hopefully somebody in the comments will suggest something. Second, you will probably need some software to manage your wifi connections. Some people suggested wpa_supplicant, this can be installed with apt install wpasupplicant. This is a commandline utility, as far as I can tell. If you are looking for a GUI to configure your wifi network, you may try

apt install network-manager-gnome
nm-applet &

Or better (half download, only 50MB):

apt install wicd
wicd-gtk -t &

This will put an icon in system tray, which you can use to access network settings using GUI.

Hope this helps a bit.

16

November
2017

Proper release announcement

After several years of inactivity Slax project has been brought to life again in new version 9.2.1. For those who did not hear about it yet, Slax is a little distribution of GNU/Linux (in 200 MB), which runs on your computer without installing, and makes no changes to it (unless you tell it to do so).

This time, Slax uses Debian stretch as its base, and thus it can offer all the wonders of the mighty 'apt' command. If you are missing any software in Slax, use 'apt install SOFTWARENAME' to get it in an instant. I've decided to go for Debian because it made my life much easier and I believe that it will make yours too.

Graphical desktop uses FluxBox window manager and xLunch, which was written especially for Slax and with Slax needs in mind. Furthermore the development of xLunch continues independently.

There are only few applications included, Chromium is used as a web browser and video player, and there is also leafpad and calculator, just for the sake of completeness :]

You can consider Slax as a simple and minimalistic base Linux system, which you can carry in your pocket.

16

November
2017

Slax 9 has been released

I am happy to announce that after a month of development, the next generation Slax Linux has been released. Proper release announcement will follow in few hours, I'm kinda busy at the moment :)

14

November
2017

Tray icon for shutdown

FluxBox is somehow limited in the way how to customize its look. No icons on desktop, no shutdown buttons... So I hired a programmer who wrote the best application on the world - SysTray Icon Launcher. It is like 50 lines of code, and what it does is pretty simple. Put an icon to system tray and execute a command when it is clicked. Thanks to it, we now have an awesome power button in about 20KB or so :) Hell I love this wallpaper, all screenshots are so cool!

14

November
2017

Applications included in Slax

I am finishing last few bits of the next gen Slax release. I think the biggest difference for the end user will be lack of applications. People were probably used to a rich collection of apps in Slax, including GUI file manager, video player, instant messaging program, card games, remote desktop app, more card games, ... :-) None of this will be included in the next Slax release. I may prepare, in the future, a bigger and more feature rich version, but for now, i am sticking with the only necessary software: xterm and web browser (chromium).

There is also leafpad as text editor and qalculate as a calculator, those apps were like 200KB in total, so I added them. But other than that, only browser and terminal. I believe that everything (and I mean really EVERYTHING) is moving to the web. In most cases, web browser is the only software you need nowadays for various tasks. Spreadsheeds? online. Video player? Online. And thanks to apt-get (now included in Slax), most of the available software is online as well.

So for now, four icons will be fully sufficient.

10

November
2017

Slax screenshots

Here are some first Slax screenshots. The wallpaper was created specially for Slax.

Empty desktop:

Running some programs:

Logout dialog:

10

November
2017

Clean shutdown with systemd

Warning, technical post, for advanced users and developers only :) (and for me, because I will surely forget this soon)

If you were used to access files in /mnt/live/* in Slax, then you will have to change your habits (and scripts) because that is now available in a different path: /run/initramfs/* ... Explanation why this change was necessary follows.

When Slax was based on Slackware, I had to manually patch the rc scripts for shutdown, to return control back to initramfs which could safely unmount all devices and reboot. But after changing to Debian base, there are no such rc scripts (due to systemd). Systemd has some hardcoded logic on what it tries to unmount. I had to digg into systemd source codes to find out what it actually does during reboot, and I was happy to find a solution.

Previous Slax puts the initramfs-root-filesystem in /mnt/live/ by calling pivot_root. But systemd has no idea this directory is special, and it tries to unmount it (including all submounts) on shutdown, making Debian report lots of red warnings. As it shows up, there is no possibility to exclude certain mountpoints from unmounting when the system is ending, however systemd has several exclude-paths hardcoded. It is / (root directory, obviously), /run/initramfs and /usr. So, instead of pivoting the root to /mnt/live, I had to modify linux-live-kit to pivot into /run/initramfs, in order for all systemd-based distros to ignore unmounting of initrd-based mounts, resulting in shutdown without errors. In order to unmount those properly, systemd executes /run/initramfs/shutdown.

One problem appeared immediately - Debian overmounts /run on boot with tmpfs, which made the /run/initramfs inaccessible (even mount --bind /run /somewhere couldn't help). So I had to make a little change in the initial startup - mount the 'run/' directory first with tmpfs, then create run/initramfs/, and then pivot root. Debian recognizes that /run is areadly mounted and doesn't overmount it again, leaving /run/initramfs accessible. Bingo.

07

November
2017

Slax and systemd

During the past days I've received lots of feedback for the upcoming release of Slax, by email, blog, and other channels. Some of the users welcome Debian, some of them hate it, some don't care :) I think I've explained my reasons why I choosed Debian in my previous post, so I won't repeat that here. But some users are concerned about systemd and would like to know my views of it. So I'd like to mention few things here.

To understand it better, we need to look at how your computer starts. When your computer is turned on, it checks bootable disks or CDs and loads a 'bootloader' first. This is a little software, which is located on your hard drive's first sector, and once executed, its only purpose is to find Linux kernel, load it to memory and execute it (plus pass some parameters to it).

Linux kernel is much bigger binary, it is the core of evey Linux system. After Linux kernel is loaded and executed, it takes over your computer, and provides functions for all of your software to interact with your computer's hardware.

Once the kernel initializes everything and is ready to manage everything, it calls the init. In Slax, things are more complicated due to another added layer, but lets ignore this now. So kernel finds the 'init' file on your disk, usually in /sbin/init, and executes it. So, init is the first process which gets always executed, and which takes care of the rest of the boot procedure.

This init may have different forms. It may be a simple statically compiled program, which does not require any other libraries, and which goes through /etc/rc.d/ directory and runs all scripts stored there sequentially, to perform some initial tasks (like mounting partitions, starting daemons, etc.) before you get your login prompt. The init may be also a more complicated program, which does something more advanced. Or, the init can do a hell a lot of complicated stuff, as like in the case of systemd, in order to provide some "advanced functionality", before the login prompt is displayed to the user. Systemd is not a single binary to execute, it depends on functionality provided by additional libraries such as dbus, pam, notify, and lots of others.

From my point of view in Slax, I don't really need to know what kind of init is used at all. Slax adds a layer in between the kernel and the distribution (be it Debian or Slackware or anything else) to provide a way to run Linux from a read-only media as like as it was writable. After this layer is set up, then the init of the underlaying distro is executed and continues normally, and it doesn't matter for Slax what the init is or does.

To sum it up, I don't really care if the init is systemd or something else. It does not affect me at all.

I am not sure what is the most important concern of some users who do not like systemd. I believe that there are two factors. First may be the complexity of systemd, which surely makes it hard to maintain its code, and goes against the phylosophy of Linux in general (kiss = keep it simple, stupid). By the way, is this really the phylosophy of Linux? :) Anyway, the other factor may be that the adoption of systemd seemed like it was forced to the end users, because once your distro uses systemd, lots of things start depending on it and there is really big problem for package maintainers, they would have to release many packages twice - once for systemd-enabled systems, and once for non-systemd ones, so it is easier for them to stick just with systemd and ignore the rest, which leaves no possibility for the end users to switch to different init they like.

I may agree with these arguments, but as long as somebody else prepares things up for me (by packaging it), and as long as it works and makes my life easier, I am not affected by that (as a developer of Slax!) in any negative way. And I believe that the end users of Slax are even less affected by systemd. I didn't notice any single place where systemd would affect the end user's experience (expect the fact that the system boots up faster). So after all, I don't mind using systemd in Slax. I am not pro- or against- it, my position is best described as neutral :-)

If you have faced any issues as the end user, I welcome your comments. Thank you!