GNU Health/Embedded

From Wikibooks, open books for an open world
Jump to navigation Jump to search
GNU Health embedded on a Raspberry Pi3 and OpenSUSE tumbleweed.

The GNU Health Embedded sub-project ("GNU Health in a Box") focuses on the installation and use of GNU Health in single-board devices.

The use of GNU Health in single board devices such as Raspberry Pi has many advantages (in addition to the low cost) such as the easy deployment, little maintenance and low energy consumption that makes it a candidate for some of the following scenarios :

  • Remote areas without Internet
  • Academic Institutions
  • Domiciliary Units
  • Vector Control
  • Nursing
  • ICU
  • Laboratory stations
  • Personal Health Records

The device is a full server, that has its own database, allowing storing the information locally, without the need of a network. That said, keep in mind that it is a low-resource device, so it's usage must be carefully planned, and it's not suitable for high-demand, heavy load environments, where a regular server would be needed.

Raspberry Pi[edit]

Currently we are working on the Raspberry Pi 3 platform.

Downloading the images[edit]

You can find and download the latest images for different operating systems on the GNU Health embedd project link

The current directory shows the images that use the standard / vanilla installation, which is compatible with the installation instructions you find in the Wikibook.

Other images can be fount at the community pages. For instance, Axel Braun provides an openSUSE image that uses the packages from that GNU/Linux distribution.

Standard installations[edit]

The standard images for the different operating systems have the following naming convention :


For example : gnuhealth-3.4.1-rpi3-SD-opensuse-leap15.1beta.img.gz

Getting the Image[edit]

You can get the latest status and download packages on the GNU health main site, under the section "GNU Health Embedded".

Download the image locally[edit]

You can either download directly the image from your browser, or using wget.

For example :

$ wget

Uncompress the image[edit]

$ gunzip gnuhealth-3.4.1-rpi3-SD-opensuse-leap15.1beta.img.gz

Burn the image to the SD card[edit]

1. Insert your SD card in the computer but DO NOT mount it!

2. Determine the block device name that has been assigned to the SD card. There are several ways to determine this.

For instance, dmesg will generate output associated to the newly inserted device:

[sdb] 62333952 512-byte logical blocks: (31.9 GB/29.7 GiB)

The lsblk command is also useful as it outputs attached devices in a pleasant format:

sda      8:0    0   100G  0 disk 
├─sda1   8:1    0    24G  0 part /
├─sda2   8:2    0    24G  0 part /var
├─sda3   8:3    0    48G  0 part /home
└─sda4   8:4    0     4G  0 part [SWAP]
sdb      8:48   0    32G  0 disk

The letter may vary (sdb, sdc, ....). The important thing is that you find it and, again, DO NOT mount the device. This is the drive you will transfer the image.

3. Initialize the SD card with GNU Health

WARNING !!! The following instruction will COMPLETELY ERASE the contents on the ENTIRE SD card!

Given that X is the letter of the drive you have previously identified (in this example, it would be "b" for "sdb"):

# dd if=gnuhealth-3.4.1-rpi3-SD-opensuse-leap15.1beta.img of=/dev/sdX bs=4M status=progress

This will take a while. It is highly recommended to use a hi-speed SD card.

Boot the Raspberry Pi with the GNU Health image[edit]

If the dd command finished successfully, you can now place the SD card on the raspberry pi device, and boot the little server.

Main users[edit]

The two main OS users are :

- root : default password "linux" (as in openSUSE)

- gnuhealth : The GNU Health admin. Default password "freedom"


The main services (PostgreSQL, GNU Health HMIS, display manager) are enabled by default. Refer to the GNU Health and your operating system guides to manage them.