Giter Site home page Giter Site logo

build's Introduction

Buildscripts for Volumio System

Copyright Michelangelo Guarise - 2016

Requirements

git squashfs-tools kpartx multistrap qemu-user-static samba debootstrap parted dosfstools qemu binfmt-support qemu-utils md5deep

How to

  • clone the build repo on your local folder : git clone https://github.com/volumio/Build build
  • if on Ubuntu, you may need to remove $forceyes from line 989 of /usr/sbin/multistrap
  • cd to /build and type
./build.sh -b <architecture> -d <device> -v <version>

where switches are :

  • -b <arch> Build a full system image with Multistrap. Options for the target architecture are arm (Raspbian), armv7 (Debian 32bit), armv8 (Debian 64bit) or x86 (Debian 32bit).
  • -d <dev> Create Image for Specific Devices. Supported device names: pi, odroidc1/2/xu4/x2, udooneo, udooqdl, cuboxi, pine64, sparky, bbb, bpipro, bpim2u, cubietruck, compulab, x86
  • -l <repo> Create docker layer. Give a Docker Repository name as the argument.
  • -v <vers> Version

Example: Build a Raspberry PI image from scratch, version 2.0 :

./build.sh -b arm -d pi -v 2.0 -l reponame 

You do not have to build the architecture and the image at the same time.

Example: Build the architecture for x86 first and the image version MyVersion in a second step:

./build.sh -b x86

./build.sh -d x86 -v MyVersion

Sources

Kernel Sources

Main Packages Sources

Debian Packages Sources (x86)

All Debian-retrieved packages sources can be found at the debian-sources Repository

Raspbian Packages Sources (armhf)

All Raspbian-retrieved packages sources can be found at the raspbian-sources Repository

If any information, source package or license is missing, please report it to info at volumio dot org

armbian-based images

In case of lacking native support in volumio there is the option to build images based on Armbian ( www.armbian.com ) which supports a variety of PI clones -

Example:

./build.sh -b arm -d armbian_bananapipro_vanilla -v 2.0

where

  • armbian_ prefix is used to indicate the use of armbian
  • boardtype in the notation of armbian
  • _vanilla as postfix for mainline kernel or _legacy for android kernel

armbian kernels

please see notes in armbiam community which kernel is the best - or if there are any restrictions that apply in your case e.g. some mainline kernel still do not have stable ports of all devices, e.g. ethernet driver, while legacy kernel may miss other features. In all cases even lecagy kernels come with overlayfs and squashfs support.

sucessfully tested images:

  • armbian_bananapi_legacy
  • armbian_bananapipro_legacy
  • armbian_cubieboard2_legacy
  • armbian_cubietruck_legacy
  • armbian_bananapi_vanilla
  • armbian_bananapipro_vanilla
  • armbian_cubieboard2_vanilla
  • armbian_cubietruck_vanilla

notes and known issues armbian

  • current sunxi bootloader version 5.25/armbian is not working, solved by explicitely using 5.23 (be careful with apt-get upgrade later on)

  • Partition 1 has been changed from vfat to ext4 because armbian scripts are using symbolic links

  • kernel, ramdisk and squashfs may be larger compared to native support images due to extra packages required by armbian build routines

  • armbian_orangepipc_legacy ... not booting

others may work at once or with minor adaptions *

build's People

Contributors

150balbes avatar aldot avatar ashthespy avatar balbuze avatar bcornec avatar cdu13a avatar ce3a avatar chrismade avatar christiansteier avatar cron410 avatar domin6 avatar earlchew avatar ghembs avatar granjow avatar gvolt avatar howardqiao avatar macmpi avatar miero avatar mikelangeloz avatar nikkov avatar peterdavehello avatar piffio avatar pkendall64 avatar saiyato avatar sparkysbc avatar starbix avatar thegass avatar volumio avatar wraul avatar xipmix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

build's Issues

wpa_supplicant debug information is lost

As a developer, I want to read the detailed logs from wpa_supplicant, so that I can debug why client connections are failing.

On Linux, wpa_supplicant runs the following code which causes the detailed debug output printed on stdout to be lost:

static void wpa_supplicant_fd_workaround(int start)
{
#ifdef __linux__
        static int fd[3] = { -1, -1, -1 };
        int i;
        /* When started from pcmcia-cs scripts, wpa_supplicant might start with
         * fd 0, 1, and 2 closed. This will cause some issues because many
         * places in wpa_supplicant are still printing out to stdout. As a
         * workaround, make sure that fd's 0, 1, and 2 are not used for other
         * sockets. */
        if (start) {
                for (i = 0; i < 3; i++) {
                        fd[i] = open("/dev/null", O_RDWR);
                        if (fd[i] > 2) {
                                close(fd[i]);
                                fd[i] = -1;
                                break;
                        }
                }
        } else {
                for (i = 0; i < 3; i++) {
                        if (fd[i] >= 0) {
                                close(fd[i]);
                                fd[i] = -1;
                        }
                }
        }
#endif /* __linux__ */
}

To compensate use the -s option:

  -s = log output to syslog instead of stdout

Improve resilience of wireless service

As a user, I want to have access to the volumio wifi hotspot when I do have use of any wifi networks, so that I will always have some means to connect to the volumio service.

  • If the volumio service has not been configured, the volumio wireless service shall start the wifi hotspot first.
  • When the volumio service has been configured, the volumio wireless service shall start the wifi client first.
  • If the wifi hotspot has been running for 15s and is not associated with any wifi clients, the volumio wireless service shall stop the wifi hotspot and start the wifi client.
  • If the wifi client has been running for 30s and is not servicing any active TCP sessions, and If the wifi hotspot is not disabled in the volumio configuration, the volumio wireless shall stop the wifi client and start the wifi hotspot.
  • The volumio wireless service shall operate correctly alongside any other available network connection (eg Ethernet).
  • The wifi hotspot shall use the IPv4 address 198.18.0.1/15 so that it will never collide with any production address assigned to any other network connection (eg Ethernet).
  • The wifi hotspot shall support up to 8 DHCP clients.

Related Issues:

Use Cases

  • New volumio installation
  • New wireless site
  • No matching wireless sites
  • Access point drops out (eg wifi router reboots, portable volumio moves out of range)
  • Ethernet cable is connected

Support to pipes on shairport-sync

Hello everyone,

I've been trying to add volumio as a snapcast server however and in order to achieve such the shairport-sync must support pipes, which is not supported on the current deployment. Am I taking a wrong assumption on integrating shairport+volumio+snapcast? If so could you point me out how did you achieved it? Whenever i try to add pipes a OpenSSL package is missing.

Thanks
Best Regards,

Orange Pi PC build not working

I followed the build instructions from the readme, and I am trying to build for the Orange Pi PC which is a sun8i device. I typed ./build.sh -b armv7 -d armbian_orangepipc_legacy -v 2.0 in the terminal to start buiding.

But I noticed when building that it installs u-boot+spl for sun7i instead of the correct sun8i for this device, so it will never boot. Is it possible to update the build script to support sun8i devices?

I started a thread on the armbian forums with the same question because I don't have enough coding skills to fix it myself, here you can find some more information regarding the problem.

Support USB boot

I'd like to see volumio support post-install boot from USB flash drives.

The first part of the boot allows initramfs/init allows imgpart and imgfile to be specified from cmdline.txt (the kernel command line options).

Then the tail of the init process starts using /dev/mmcblk0p1, and /dev/mmcblk0p3. These are mentioned in two important contexts:

  1. During initial boot when the media needs to be repartitioned, etc.
  2. During subsequent boots when the installed application can be started immediately.

As present I'm interested in the second scenario. The static part of the overlay is already retargetable by using imgpart and imgfile.

I'm thinking that perhaps imgdata can be used to retarget the dynamic part of the overlay, replacing or to begin with optionally overriding the /dev/mmcblk0p3. Looking at the source, this would only need to affect the code after:

# 4) mount a filesystem for write access to the static image

What do you think of this approach?

Build on clean debian 8.2.0 fails

Hi all trying to build an rpi image on a clean Debian install i get this error:

cp: cannot create regular file ‘build/root/usr/bin/qemu-arm-static’: Text file busy

  • su -
    /bin/bash: line 1: ./firstconfig.sh: No such file or directory

I installed all required packages listed in the readme.
Any help is appreciated
Also what OS are you using to build this on ?

Updating to node v8 LTS

Copy paste follow up from #259

@ashthespy

Quick question - would this be a good time to move to Node v8 LTS as well?
Node v6.x will go into maintenance mode in a month and half (30-04-18)

@volumio

I would feel more confident in doing one change at the time, if not we might not be able to identify the root cause in case of regression.
We could upgrade node either before or later debian.
As of now we did not update node because of a misbehaving module (mdns) in newer node versions

@piffio

I am also interested in the Node update, do you have any link with more details about the module misbehaviour?

@volumio

No, but you can easily replicate by substituting the node version ( see https://github.com/volumio/Build/blob/master/scripts/volumioconfig.sh#L118 ) and then doing

cd /volumo
rm -rf node_modules
npm install

Cubietruck build fails on Ubuntu

First of all thank you for the effort to provide support for A20 devices.

I tried building the vanilla image for cubietruck with the commands provided in the instructions:
./build.sh -b arm -d armbian_cubietruck_vanilla -v 2.0

I then flashed the image with Etcher and tried to boot my cubietruck with it.
The boot process fails with the message "Ramdisk image is corrupt or invalid"

Here are some screenshots of the boot log
https://goo.gl/photos/Cm24u48CBF978ft9A

Raspbian sources incomplete (and no mirror)

Hi,
While I was willing to install python-rpi.gpio (to implement button shutdown), I noted apt-get install would not make it available.
Looking at /etc/apt/sources.list, it seems we'd rather use std definition, as in std Jessie images:

deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi

Shall we fix it in here?
This would also allow use of proper mirroring according to users' regions.
Thanks.

Build x86 image on Debian 7

strip:build/x86/root/usr/sbin/update-initramfs: File format not recognized strip:build/x86/root/usr/sbin/tarcat: File format not recognized strip:build/x86/root/usr/sbin/update-fonts-dir: File format not recognized strip:build/x86/root/usr/sbin/dpkg-reconfigure: File format not recognized strip:build/x86/root/usr/sbin/pam-auth-update: File format not recognized strip:build/x86/root/usr/sbin/update-rc.d: File format not recognized strip:build/x86/root/usr/sbin/update-ca-certificates: File format not recognized strip:build/x86/root/usr/sbin/grub-mkconfig: File format not recognized strip:build/x86/root/usr/sbin/nfsiostat: File format not recognized strip:build/x86/root/usr/sbin/service: File format not recognized strip:build/x86/root/usr/sbin/mksmbpasswd: File format not recognized strip:build/x86/root/usr/sbin/add-shell: File format not recognized strip:build/x86/root/usr/sbin/invoke-rc.d: File format not recognized strip:build/x86/root/usr/sbin/adduser: File format not recognized strip:build/x86/root/usr/sbin/deluser: File format not recognized strip:build/x86/root/usr/sbin/update-mime: File format not recognized strip:build/x86/root/usr/sbin/pam_getenv: File format not recognized

Size after strip1.3G build/x86/root/

Not sure how to fix this. Building the x86 image on Ubuntu 14.04 didnt work either. I basically followed the directions in readme.md but is there something else I have to do before running the build script? I really just want an x86 image to run on an old thin client. I can't find anywhere to download this image so I tried building it myself.

New Patch argument

I ran the build script and got these errors
Copying ARM related configuration files
mkdir: cannot create directory ‘build/arm/root/etc/wpa_supplicant/’: File exists
Done Copying Custom Volumio System Files
./build.sh: line 145: =volumio: command not found

[Volumionext] Hifiberry Digi+ Pro digital out (TOSLink and COAX) shutoff when nothing is playing

When nothing is playing, the toslink gets shutoff, which is contrary to what the driver parameter is saying (refer to https://support.hifiberry.com/hc/en-us/community/posts/201491962-Toslink-light-don-039-t-turn-off?page=1#community_comment_115001631429). Is there anyway to respect the driver parameter? Having the TOSLINK/COAX output always on will help me a lot with my DAC which clicks a relay when it detects a change in the incoming signal (on/off, SR changes)

volumio.log

Ok, coming back to the /var/log/volumio.log issue :)

It is good practise to keep /var/log to 0755, following might be a good alternative.
I suggest to put the following in fstab instead of the current /var/log line:

tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0
tmpfs /var/log/volumio tmpfs size=20M,nodev,uid=1000,mode=0777,gid=4, 0 0

In case we do want to allow logging mpd, it could be in the volumio directory or like this:

tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0
tmpfs /var/log/volumio tmpfs size=20M,nodev,uid=1000,mode=0777,gid=4, 0 0
tmpfs /var/log/mpd tmpfs size=20M,nodev,uid=,mode=0777,gid=, 0 0

This way /var/log remains standard and the only thing that it needs is a small change in /volumio/app/index.js and set the file paths to /var/log/volumio/volumio.log. That's all.
Works on an Odroid C1, presumably on a PI too (can't test it, don't have one anymore).

BBB Support

Is there any Volumio 2 beta image for the BeagleBone Black?

/usr/bin/dtoverlay-{pre,post} files made twice

raspberryconfig.sh, lines 122-130 create /usr/bin/dtoverlay-pre and /usr/bin/dtoverlay-post with 'echo'. They then try to make symlinks at the same locations, pointed to /opt/vc/bin/.

Not sure what is supposed to happen here but this doesn't look right.

/var/log/samba missing because /var/log is overlaid with a tmpfs

I noticed a lot of complaints from samba-related daemons that /var/log/samba is missing. firststart.service creates it, and it exists in the fully-booted system on the first boot.

But on subsequent boots the /var/log entry in /etc/fstab

tmpfs   /var/log                tmpfs   nodev,uid=1000,mode=0777,gid=4, 0 0

overlays what is in the distributed image with an empty tmpfs filesystem.

I can umount the tmpfs and underneath is all the expected /var/log structure. So I wonder if what is meant here is:

tmpfs   /var/log/volumio                tmpfs   nodev,uid=1000,mode=0777,gid=4, 0 0

i.e. reserve a special directory, owned by the volumio user, for the volumio app's log. Changing this would also require fixing the path used in /app/index.js.

Otherwise, perhaps /var/log/samba should be created on every boot, perhaps as another tmpfs

tmpfs   /var/log/samba         tmpfs   defaults,nodev,noatime,mode=0755 0 0

Attached is a zip showing the first and second boots of a fresh 2.001, with the contents of /var/log once the system is fully started up.
firsttwoboots.zip

Building for Debian stretch (9.1)

As we don't have anywhere else to post questions/suggestions/solutions for porting volumio from debian jessie to stretch, I opened this issue.
There is no plan yet to port, this is considered to be staging info only
Anyone with any information on this, please comment.

building v2.0 on virtualBox is broken

  1. disk size too small. I extended it with vboxmanage + gparted
  2. many errors -- simply too many to quote here.

command used:
cd build
./build.sh -b arm -d pi -v 2.0

dhclient mixed with dhcpcd5

(talking about the client side thing for now, not to confuse with dhcpd server side)

I incidentally stumbled into some coherence issues in Client DHCP services:
wireless.js seems to mostly use dhcpcd (although some variable names may refer to the other due to historic reason).
However, dhcpcd has no proper systemd service set, as the service file is erroneously named .conf. It has a real .conf file though.
On the other hand dhclient has a proper service set and .conf file, but isc-dhcp-client or dhcp3-client are nowhere to be found...
Is this mix really intended or historical leftovers?

@earlchew could you help set some coherence and clean-up as per your earlier recommandations?
I guess all dhclient related stuff should probably go away, and dhcpcd stuff fine-tuned.
Thanks for thoughts.

Compile MPD with SQLite support

Hi Guys,
Do you know if the MPD version is compiled with SQLite support already?

or

Do you have steps to compile a MPD version with SQLite support?

volumio 2 rpi image new feature

users maybe hope that these librarys can interger with volumio 2 rpi image.
1:wiringpi,so users can add adtional control to MPD,such as buttons and other i2c devices.
2:libasound2-plugin-equal and alsa-tools,users can adjust equalizer settings with alsa-mixer.
3:and a kernel patch script,so users can add custom audio card driver.

Multistrap Broken on Ubuntu 14.04 (Affects Build)

Just something you might want to note for other users in the Readme if they are building on Ubuntu 14.04. Multistrap is broken and fails with the following error:

Global symbol "$forceyes" requires explicit package name at /usr/sbin/multistrap line 989.
Execution of /usr/sbin/multistrap aborted due to compilation errors.

To fix this error, you just need to remove $forceyes from line 989 of /usr/sbin/multistrap. It's a known bug and has been fixed in newer versions. See https://bugs.launchpad.net/ubuntu/+source/multistrap/+bug/1313787

wireless.js kill() function

I want to raise a concern about this function, it may not be valid.
Consider what happens when you feed it with the process string '/usr/bin/sudo /sbin/dhcpcd'

function kill(process, callback) {
    var all = process.split(" ");
    var process = all[0];
    var command = 'kill `pgrep -f "^' + process + '"` || true';
    logger("killing: " + command);
    return thus.exec(command, callback);
}

Splitting on spaces sets process to the string /usr/bin/sudo. It seems there is at least a small chance of killing the wrong sudo call. What is wanted is to kill the dhcpcd process.

To be more sure of hitting the target, I think something like this is needed

 function kill(process, callback) {
    target = process.replace(/^[^\s]*\/sudo\s+/,'');  // remove prefixed sudo invocation
    var all = target.split(" ");
    target = all[0]; // separate command from arguments
    var command = 'kill `pgrep -f "^' + target + '"` || true';
    logger("killing: " + command);
    return thus.exec(command, callback);
}

There's a further issue; both ethernet and wireless interfaces may have a dhcpcd process listening to them. At present the former appears in the process table as the command dhcpcd eth0, not /sbin/dhcpcd eth0, so it won't get shot down; but this is more by good luck than good management. I'm not sure how to resolve that one, possibly requiring the process argument to be a suitable regex and not splitting up the string.

errors for sudo ./build.sh -b -d cubietruck -v 2.0 command

root@debian:~/volumio/build# sudo ./build.sh -b -d cubietruck  -v 2.0
Build folder exist, cleaning it
mkdir: cannot create directory ‘build/-d’: File exists
./build.sh: line 101: multistrap: command not found
mount: mount point build/-d/root/dev does not exist
mount: mount point build/-d/root/proc does not exist
mount: mount point build/-d/root/sys does not exist
Cloning Volumio Node Backend
Cloning into 'build/-d/root/volumio'...
remote: Counting objects: 9233, done.
remote: Compressing objects: 100% (31/31), done.
remote: Total 9233 (delta 9), reused 0 (delta 0), pack-reused 9202
Receiving objects: 100% (9233/9233), 4.26 MiB | 749.00 KiB/s, done.
Resolving deltas: 100% (5438/5438), done.
Checking connectivity... done.
Cloning Volumio UI
Cloning into 'build/-d/root/volumio/http/www'...
remote: Counting objects: 84, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 84 (delta 0), reused 0 (delta 0), pack-reused 80
Unpacking objects: 100% (84/84), done.
Checking connectivity... done.
Adding information in os-release
./build.sh: line 129: build/-d/root/etc/os-release: No such file or directory
Base System Installed
cp: cannot create regular file 'build/-d/root/etc/mpd.conf': No such file or directory
Writing system information
./build.sh: line 142: build/-d/root/etc/os-release: No such file or directory
Unmounting Temp devices
umount: build/-d/root/dev: mountpoint not found
umount: build/-d/root/proc: mountpoint not found
umount: build/-d/root/sys: mountpoint not found
Copying Custom Volumio System Files
cp: cannot create regular file 'build/-d/root/etc/dhcp/dhclient.conf': No such file or directory
cp: cannot create regular file 'build/-d/root/etc/samba/smb.conf': No such file or directory
cp: cannot create regular file 'build/-d/root/etc/polkit-1/localauthority/50-local.d/50-mount-as-pi.pkla': No such file or directory
cp: cannot create regular file 'build/-d/root/etc/ssh/sshd_config': No such file or directory
cp: cannot create regular file 'build/-d/root/etc/systemd/journald.conf': No such file or directory
cp: target 'build/-d/root/etc/network' is not a directory
scripts/configure.sh: 63: scripts/configure.sh: cannot create build/-d/root/etc/wpa_supplicant/wpa_supplicant.conf: Directory nonexistent
chmod: cannot access 'build/-d/root/etc/wpa_supplicant/wpa_supplicant.conf': No such file or directory
Done Copying Custom Volumio System Files

No uInitrd on bpipro build

Tried generating a bpipro image with build.sh
The generated image, when flashed, is missing uInitrd in its boot partition. Volumio thus cannot boot (kernel panic: missing init).

The image was built on a Debian 8.8 VM, all tools in "Requirements" installed.

Wireless/ Configuration

See volumio/Volumio2 issue #98, I thinks it belongs here.
Should

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

be added to /etc/network/interfaces?

support remote syslogging

If someone wants to debug volumio they should be capable of setting up a syslog receiver. Setting up sending to a remote host is even simpler, I'll try to sort out a patch. Ideally there would be UI support as well.

TP-LINK AC 600 Archer T2UH seems to be not supported

Hi, I commented in this post volumio/Volumio2#1452 that my volumio installation (after the update from 2.246 to the latest 2.348) freezes, if my TP-LINK AC 600 Archer T2UH was plugged in. In the moment when I plug it in, volumio freezes when I try to fire a command. I noticed that, since nothing worked after the update.

xipmix asked me to open an issue here.

My pi is now running without the TP-LINK. One of the main raisons why I used the TP-LINK was, that channel 12/13 were not enabled on the pi and my router sometimes used these channels.
Today, probably after installing "http://www.fars-robotics.net/install-wifi -O /usr/bin/install-wifi", both channels are active. So everything is fine for me now, but there might be others having the same problem.
Regards, Thomas

[VolumioNext] USB noise within starting 15 secs of a track

This was not noticed in the current version but only in VolumioNext.

Using a USB out to DAC, there is slight noise usually at 5s, 10s and 15s, then it's perfect. This only happens when the tracks started, it never happens after 15s of playback.

Pi3 brcmfmac driver force-loaded on non Pi3

raspberryconfig.sh statements that creates wifistart.sh unconditionally sets Raspi3-specific driver load commands, which are therefore applied equally for all Raspi at runtime. This force load an irrelevant driver for all Pis (except raspi3): see here lines 496, 518 & al. on PiZero.

Most probably wifistart.sh Raspi3 statement should be created conditionally, or for more generic image deployment, it should execute modprobe commands conditionally (preferred probably).

Any thought?

Raspberry: streamlining /etc/modules

i2c-bcm2708 is already loaded via device tree through dtparam=i2c_arm=on in config.txt. Therefore i2c-bcm2708 in /etc/modules in here tries to load it twice which may cause problems.
So, unless I'm missing something, I guess it should be removed from /etc/modules.

Similarly, use of snd_bcm2835 in /etc/modules is deprecated and no longer supported on 4.4 kernel.
dtparam=audio is the default setting in config.txt in raspbian images, which Volumio2 uses.
So we can safely remove snd_bcm2835 from /etc/modules too.

Only would remain i2c-dev that is required for address-based DAC detection.

Makes sense?

Support preallocated swap areas

If a swap partition is required, I want any dynamically created swap files to be used as a last resort, so that any pre-allocated swap areas (in particular swap partitions) have priority ahead of the dynamically created swap file.

For my configuration, I want to minimise the write activity on the root file system (by using a swap partition) in order to improve the robustness of the file system and improve boot times by reducing file system recovery time when the root file system is dirty.

Removing build directory not always helpfull

When I'm working on a build for arm and need to rebuild, let's say the PI image, it is nice to be able to keep the build/arm directory and only re-build the image with whatever is needed for the PI.
This makes the whole thing flexible and fast (my script adaptions for odroid even re-use existing images in case they have the same date and version number).

However, when I build an X86 system, it wipes out the build tree for an existing arm architecture as well.
Would it not be nicer, to restrict removal to the build architecture you want to replace?

/etc/mtab link incorrect?

Trying to get x86 image working on my mid-2010 MBP (some earlier Volumio2 image did work) or under Virtualbox (converted image from .img into .vdi), and undergoing some similar first boot issues ending into recovery mode.

I'm getting over some dmesg debugging, and incidentally noted a reported issue with improper mtab (see attached screenshot).

mtab related stuff in Build are only referencing mkinitramfs scripts, and in that case symbolic link seems incorrect compared to what it is supposed to be in systemd context, as per displayed error log in screenshot:
ln -sf /proc/self/mounts /etc/mtab
Is that intended, or shall we fix it ?

screen shot 2017-03-24 at 12 09 40

empty locale settings on volumio2 image

volumio@volumio:~$ locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

According to the above settings ,i can't use below function in c++ program about multibyte character display..

setlocale(LC_ALL,"en_GB.UTF-8"); or setlocale(LC_ALL,"");

size_t r = mbstowcs (wc, c, cSize);

it will return -1,so I can't succeed in converting and displaying the metadata of the song,
Do you have a good solution?

jessie's locale settings:
pi@raspberrypi:~ $ locale
LANG=en_GB.UTF-8
LANGUAGE=
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.