My thoughts on Slackware, life and everything

Month: July 2017 (Page 1 of 2)

Chromium 60 packages available

chromium_iconGoogle released chrome/chromium 60.0.3112.78 on 25 July. My mother-in-law passed away which shifted my priorities this week, but I found some time to compile new packages. In my VM, the 64bit package creation took more than 24 hours… perhaps now is a good time to look at that Ryzen CPU and empty my savings account. This is getting ridiculous.

Note that this is a security release, fixing 40 security issues. Of those, the following are classified as “high risk” (many of them do not yet have their details published at cve.mitre.org or nvd.nist.gov): CVE-2017-5091, CVE-2017-5092, CVE-2017-5093, CVE-2017-5094, CVE-2017-5095, CVE-2017-5096, CVE-2017-5097, CVE-2017-5098, CVE-2017-5099. So I guess you better do the upgrade.

Compiling Chromium requires ninja and nodejs for which I have packages in my repository if you need them. Fortunately ninja and nodejs are only needed for the compilation, not for actually running the browser.

The packages for chromium, and the Widevine CDM plugin (package is called ‘chromium-widevine-plugin‘), are available for Slackware 14.2 and -current in my repository or one of its mirrors:

Have fun! Eric

Alien Pastures switched to HTTPS

The “Alien Pastures” blog has been moved into a Virtual Machine (hence the short downtime yesterday) after its previous host hardware was replaced with a much beefier machine. This was a nice opportunity to configure the VM with a SSL certificate issued by LetsEncrypt (again, thanks Robby Workman).

So, from now on, the blog is served with a HTTPS URL by default. I hope you understand, this is a process seen on many other web sites too.

Cheers, Eric

Short maintenance downtime window coming up

My “Alien Pastures” blog will be down for two or three hours on Thursday, 27 July 2017, starting around 1700 UTC.

The blog runs on a server in the Teklinks datacenter, and that will be replaced by new hardware. Since this involves driving to the datacenter and doing physical work (thanks Robby Workman!) the slightly longer-than-usual downtime is needed.

Additionally, the following services that are running on the same hardware, will also be down:

The http, ftp, and git services of SlackBuilds.org will not be affected, as those are hosted on a different machine.

Cheers, Eric

OpenJDK 8 security round-up for July ’17

icedteaSooner than I anticipated, there is an update for OpenJDK 8. Andrew Hughes (aka GNU/Andrew) announced the release of IcedTea 3.5.0. The new icedtea framework compiles OpenJDK 8 Update 141 Build 15 (8u141_b15). This release includes the official July 2017 security fixes.

No external dependency is required for OpenJDK 8 . But if you use Java in your web browser (a dying art) you’ll need the icedtea-web browser plugin. Coincidentally, a new release for that became available a few days ago, therefore I also built packages for the plugin.

The packages that I just uploaded are for Slackware 13.37 and newer. Here is where you can download them:

Note about usage:

My Java 7 and Java 8 packages (e.g. openjdk7 and openjdk… or openjre7 and openjre) can not co-exist on your computer because they use the same installation directory. You must install either Java 7 or Java 8.

Remember that I release packages for the JRE (runtime environment) and the JDK (development kit) simultaneously, but you only need to install one of the two. The JRE is sufficient if you only want to run Java programs (including Java web plugins). Only in case where you’d want to develop Java programs and need a Java compiler, you are in need of the JDK package.

Plugin support in Web Browsers:

If you want to use Java in a web browser then you’ll have to install my icedtea-web package too. Oracle’s JDK contains a browser plugin, but that one is closed-source. Therefore Icedtea offers an open source variant which does a decent job.

Note that icedtea-web is a NPAPI plugin – this prevents the use of Java in Chrome & Chromium because those browsers only support PPAPI plugins. Formally, Mozilla have also ceased to support the NPAPI plugins. For instance Firefox 52 and newer does not support NPAPI plugins, although Firefox ESR 52 still supports them. If you can’t do without, then you can use Java plugins with the Pale Moon browser, which is based on an older Firefox codebase and maintained independently. Get my package here (it has ffmpeg as an external dependency): http://www.slackware.com/~alien/slackbuilds/palemoon/

Have fun! Eric

How to create a Slackware Live USB stick if you are not using Slackware

This article describes how you transfer the content of a “Slackware Live EditionISO file onto a USB stick (aka pendrive) thereby making that USB drive bootable, and persistent. The guide is meant for people who are not already running Slackware but still want to try Slackware on a Live USB medium. Note that the parent article “Slackware Live Edition” describes in detail how Slackware users can create such a Live USB drive.
Basically, this divides the article’s audience into:

  1. Windows users (Windows 7 and higher) with its Boot Configuration Data (BCD) boot record, and
  2. Linux/BSD users who use GRUB as their boot manager.

I don’t think that LILO is used anywhere else than in Slackware. LILO does not support ISO images as boot selection, but it is still possible to make LILO boot Slackware Live. If you are not using Slackware but your OS is actually using LILO, let me know in the comments section and I will update this article with guidelines.

Why another guide if there’s a lot of documentation already?
It’s easy to use ‘dd’ or an equivalent Windows tool to copy the ISO file onto a USB stick, but then you end up with a read-only stick. The ISO9660 filesystem which is used for generating the ISO file, is read-only by nature and the ‘dd’ command copies everything, re-creating a read-only filesystem on the target.
People who want a Live USB stick with persistence, need to run the accompanying “iso2usb.sh” script which does some smart thngs to the USB stick to make it writable for the Live OS. However, using that script outside of Slackware seems to be an issue for some people.
Therefore this guide will show you how to:

  1. boot your computer to Slackware Live directly from a downloaded ISO.
  2. Subsequently write the ISO’s contents to your USB stick from within Slackware Live Edition. How? Because the “iso2usb.sh” script is contained inside that ISO and will be available to you in the Live OS.

Step 1: adding Slackware Live Edition to your computer’s boot menu

Windows 7 and newer:

Download and install  EasyBCD from Neosmart Technologies. This software is free for non-commercial use. EasyBCD will allow you to add a Linux OS partition to the Windows bootmenu (that is what I use it for on computers that need to keep the Windows bootloader instead of switching to LILO or GRUB). It is much more versatile than that: for our current purpose, it is also able to make the computer boot from an ISO image stored on the local harddisk.

Start EasyBCD (it will ask for permission to run as an administrator) and add a new boot menu entry for the Slackware Live ISO:

  1. Click the “Add New Entry” button.
  2. In the “Portable/External Media” area click the “ISO” tab.
  3. Write the name you want to see in the boot menu, in the “Name” text entry field. For instance “Slackware Live ISO”.
  4. Leave the “Mode” to the default ‘Run from Disk‘ unless you want to wait a long time for the ISO to load into the computer’s RAM before booting (in which case you can select ‘Load from Memory‘).
  5. In the “Path” entry field you should select the full path to the ISO file of the Slackware Live Edition which you downloaded to your local hard drive.
  6. Click the “Add Entry” button.

The “View Settings” will now show your new boot entry. You will notice that a new directory was created in the root of the Windows boot drvive (usually that is the C drive), called ‘NST’, which contains a single-purpose master boot record to boot the ISO image:

After rebooting your Windows computer you will see the new option “Slackware Live ISO” in the Windows Boot Manager screen. Select that option and watch your computer boot into Slackware Live. There are some remaining items to take care of before you can login:

  1. Don’t let the OS boot into the default settings. You have 30 seconds to do the following: in the syslinux or grub boot menu, you need to edit the boot commandline (in syslinux you need to press “TAB” and in grub you need to press “e” to edit the commandline).
  2. To the existing boot command parameters you have to add one more: “livemedia=/dev/sdX1:/path/to/slackware64-live-current.iso” or else liveslak will not be able to find its own media…
    You need to change “/path/to/slackware64-live-current.iso” to the actual full path and filename of the ISO you downloaded. Use Linux forward slashes “/” to separate the directories even though the filesystem is probably NTFS where you would want to use Windows backslashes “\” instead.
    The “/dev/sdX1” is your harddisk’s root partition.

    • Instead of the devicename of the partition (/dev/sdX1), you can also write the UUID or the Label of the partition’s filesystem.
    • If the partition containing the ISO file is not the first partition on the disk, you need to adjust the device numbering in the above example (the orange “1” occurrences).
    • If you know the filesystem path to the ISO but you do not know how your Windows partition translates to a Linux devicename, you can boot the ISO without the “livemedia” boot parameter but instead use the extra parameter “debug=4“. Then let the ISO boot – it will deliver you into a “debug shell” where you can use a command like “fdisk -l” or “gdisk -l /dev/sda” to inspect the partition layout of your harddisk(s). When you are ready, press the computer’s “RESET” button to reboot and try again.
    • In liveslak 1.1.9 and newer, you will not have to worry about the ‘/dev/sdXX’ partition name and you can specify “scandev” instead. The syntax “livemedia=scandev:/path/to/isoimagefile” has been implemented to let liveslak search for the partition itself – you still have to specify the full path to the Live ISO file though.

GRUB version 2 and higher

I do not know about Grub 1.x (Grub Legacy)… probably no one uses this version anymore, but at least GRUB2 is able to loop-mount an ISO file and then access the kernel plus initrd inside the ISO image – and boot from these.

Pre-requisite is that you downloaded the Slackware Live ISO to your local harddisk – let’s assume that it is located in /home/alien/slackware64-live-current.iso .

  1. Open the grub local customization file in an ASCII editor (as root!): “/etc/grub.d/40_custom”. We will add our custom entry here, and afterwards we run “grub-update” to update the GRUB2 bootmenu.
  2. To the bottom of that file, add these lines (mind the backslashes – you should remove them, they are only added for better readability on this blog page):
    menuentry “Slackware Live ISO” {
    set isofile=”/home/alien/slackware64-live-current.iso”
    loopback loop (hd0,1)${isofile}
    linux (loop)/boot/generic livemedia=scandev:${isofile} \
        load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 \
        kbd=us tz=localtime locale=us_EN.utf8
    initrd (loop)/boot/initrd.img
    }

    …where “/dev/sdX1” is the Linux naming convention and “(hd0,1)” the grub naming convention for your harddisk’s root partition.
    In liveslak 1.1.9 and newer, you will not have to worry about the ‘/dev/sdXX’ partition name, because the syntax “livemedia=scandev:${isofile}” has been implemented to let liveslak search for the partition itself.

  3. In case you are stuck with a pre-1.1.9 release of liveslak and can not use “scandev”, then instead of the devicename of the partition (/dev/sdX1), you can also use the ‘UUID’ or the ‘Label’ of the partition’s filesystem.
    If the partition containing the ISO file is not the first partition on the disk, you need to adjust the device numbering in the above example (the orange “1” occurrences).
    If you know the filesystem path to the ISO but you do not know how your Windows partition translates to a Linux devicename, you can boot the ISO without the “livemedia” boot parameter but instead use the extra parameter “debug=4”. Then let the ISO boot – it will deliver you into a “debug shell” where you can use a command like “fdisk -l” or “gdisk -l /dev/sda” to inspect the partition layout of your harddisk(s). When you are ready press the computer’s “RESET” button to reboot and try again.
    NOTE:
    In the “menuentry” example above I have used backslashes ( \ ) to split a long line (the one starting with “linux”) into 3 lines. This was done for readability! When you copy the above example into your “/etc/grub.d/40_custom” file, you must remove the two backslashes ( \ ) and join the three broken-up lines back into one single line that starts with “linux” and ends with “utf8“.
  4.  Run “update-grub” to re-generate the Grub master configuration.
    If you get a “update-grub: command not found” error, that is easily fixed. In some distro’s the “update-grub” script was added, and some others like Slackware do not have it. The content of that “update-grub” script is:

    #!/bin/sh
    set -e
    exec grub-mkconfig -o /boot/grub/grub.cfg "$@"

    You can easily create a new file “/sbin/update-grub” as root, copy the above lines into it, and after saving this file you run “chmod +x /sbin/update-grub” to make the script executable.
    Note that there may be distributions that rename “grub-mkconfig” to “grub2-mkconfig”. In that case, adjust the contents of your new “update-grub” script accordingly.

After rebooting your Linux computer you will see “Slackware Live ISO” as a new selectable option in your GRUB boot menu. Select that, and watch your computer boot into Slackware Live Edition.

Step 2: transferring the content of the ISO to your USB stick

This is the easy part, as it has been documented extensively in earlier blog articles. Also see the official documentation on Slack Docs for this transferal process. I will repeat it here for completeness’ sake:

After completing Step 1 from this guide, you are now running Slackware Live Edition on your computer, booted straight from the ISO file which is located somewhere on the computer’s harddisk.

Let’s login and mount that harddisk partition’s filesystem into the Live OS:

  1. Login to the graphical session manager which you see on screen. Use the account “live” with the password “live”.
  2. You will end up in a graphical desktop session (KDE, XFCE, MATE, PLASMA5 depending on the ISO variant you downloaded. Start a terminal emulator like “konsole” in KDE  or a more basic choice like “xterm”. Any terminal will do.
  3. In the terminal, switch user to become root. The password you need to type for the ‘su’ (and also for ‘sudo’) command is again “live”:
    $ su -
  4. Now that you are root, mount the harddisk partition to the Live OS directory “/mnt/hd” so you can access the ISO file there later:
    # mount /dev/sdX1 /mnt/hd

    Like with Step 1, you must substitute the example “/dev/sdX1” with the actual partition name on the harddisk, to where you downloaded the ISO. Use the command ‘fdisk -l’ to see what partitions are available if you are unsure about which one you need.

  5. Plug in your USB stick. Make sure it does not get mounted. If it gets mounted automatically, you need to un-mount it again, manually.
  6. A script is available which allows you to transfer the ISO content to a USB stick, making some modifications depending on the script’s parameters. The USB stick will be erased and re-formatted when running this script! Before inflicting any irreversible damage, the script will show you a prompt at which point you can evaluate whether it is safe to continue.

This script, called ‘iso2usb.sh‘, accepts the following parameters:

-c|--crypt size|%        Add a LUKS encrypted /home ; the parameter
                         is the requested size of the container in
                         kB, MB, GB,or as percentage of free space.
                         Examples: '-c 125M', '-c 1.3G', '-c 20%'.
 -f|--force              Ignore most warnings (except the back-out).
 -h|--help               This help.
 -i|--infile             Full path to the ISO image file.
 -o|--outdev             The device name of your USB drive.
 -p|--persistence        Custom name of the 'persistence' directory/file.
 -r|--refresh            Refresh the USB stick with the ISO content.
                         No formatting, do not touch user content.
 -u|--unattended         Do not ask any questions.
 -v|--verbose            Show verbose messages.
 -w|--wait               Add X seconds wait time to initialize USB.
 -C|--cryptpers size|%   Use a LUKS-encrypted 'persistence' file instead
                         of a directory (for use on FAT filesystem).
 -P|--persistfile        Use an unencrypted 'persistence' file instead
                         of a directory (for use on FAT filesystem).

Examples:
Note1 -the “#” at the beginning of these examples is an indication that you need to run the command as root. The “#” is not part of the command!
Note2 – the value for the output parameter is the device name of the stick and not one of its partitions!

  • Create a USB version of Slackware Live, where the USB stick is known to the system as ‘/dev/sdX.
    # iso2usb.sh -i /mnt/hd/home/alien/slackware64-live-current.iso -o /dev/sdX
  • Create a USB Live like above, but this time adding an encrypted /home filesystem with 750 MB of space, and at the same time increase the wait time on boot to 15 seconds (useful for slow USB media that fail to start the Live OS otherwise):
    # iso2usb.sh -i /mnt/hd/home/alien/slackware64-live-current.iso -o /dev/sdX -c 750M -w 15
  • Create a USB Live with an encrypted /home (allocating 30% of the stick’s free space for /home) and where the persistent data will be stored in a container file instead of a directory:
    # iso2usb.sh -i /mnt/hd/home/alien/slackware64-live-current.iso -o /dev/sdX -c 30% -P
  • Create a USB Live with both the /home and the persistent data encrypted (the persistence filesystem will be 300 MB in size):
    # iso2usb.sh -i /mnt/hd/home/alien/slackware64-live-current.iso -o /dev/sdX -c 30% -C 300M

You might have noticed that the “-P” parameter does not accept a size parameter. This is because the un-encrypted container file is created as a ‘sparse’ file that starts at zero size and is allowed to grow dynamically to a maximum of 90% of the initial free space on the Linux partition of the USB stick.

Good luck! Eric

PS: if you took the time to scroll all the way down, and if you would rather want to use the “iso2usb.sh” on your non-Slackware distro instead of going through all the hassle of this guide, please give me feedback about the errors and issues you find when running the script in your distro.
I absolutely wish that the script works perfectly on any distro, not just Slackware. If you have suggestions or patches, those are very welcome!

« Older posts

© 2024 Alien Pastures

Theme by Anders NorenUp ↑