Agregar webOS OSE a NOOBS
Instrucciones para agregar SO a noobs: https://github.com/raspberrypi/noobs#how-to-create-a-custom-os-version
Generación de tarballs
Crear directorios de trabajo:
$ mkdir -p ~/noobs-webos/mnt
Descargar imagen de webOS OSE (se utiliza la disponible en https://github.com/webosose/build-webos/issues/1):
$ wget -P ~/noobs-webos "https://www.rvdboorn.nl/webos-image-raspberrypi3.rootfs.rpi-sdimg"
Crear loop devices para las particiones dentro de la imagen:
$ sudo losetup --partscan --read-only --find --show ~/noobs-webos/webos-image-raspberrypi3.rootfs.rpi-sdimg
/dev/loop0
La salida del comando anterior indica que se estará utilizando el dispositivo
/dev/loop0
.
Generar el tarball correspondiente a la partición boot (montar la partición boot, generar tarball con su contenido y desmontar la partición):
$ sudo mount -o ro /dev/loop0p1 ~/noobs-webos/mnt
$ cd ~/noobs-webos/mnt
$ sudo tar --sort=name --numeric-owner --one-file-system -cpf ~/noobs-webos/boot.tar .
$ xz -9 -e ~/noobs-webos/boot.tar
$ cd; sudo umount ~/noobs-webos/mnt
Generar el tarball correspondiente a la partición root (siguiendo los pasos utilizados para generar el tarball de boot):
$ sudo mount -o ro /dev/loop0p2 ~/noobs-webos/mnt
$ cd ~/noobs-webos/mnt
$ sudo tar --sort=name --numeric-owner --one-file-system -cpf ~/noobs-webos/root.tar .
$ xz -9 -e ~/noobs-webos/root.tar
$ cd; sudo umount ~/noobs-webos/mnt
Realizar el detach del loop device utilizado:
$ sudo losetup -d /dev/loop0
En este punto se tienen los tarballs correspondientes a la partición boot y a la
root: boot.tar.xz
y root.tar.xz
.
Creación de archivos para el custom OS de NOOBS
Se descarga imagen de NOOBS (actualmente es la versión 2.7.0) y se descomprime:
$ wget -P ~/noobs-webos "https://downloads.raspberrypi.org/NOOBS/images/NOOBS-2018-03-14/NOOBS_v2_7_0.zip"
$ unzip -d ~/noobs-webos/noobs ~/noobs-webos/NOOBS_v2_7_0.zip
Se crea el directorio en el que irán los archivos que definen el OS webOS OSE:
$ mkdir ~/noobs-webos/noobs/os/webos-ose/
Aquí conviene ver los archivos os.json
, partitions.json
y
partition_setup.sh
del directorio Raspbian
para hacerse una idea del formato
general.
Se crea el archivo os.json
con el siguiente contenido:
{
"name": "webOS OSE",
"description": "webOS Open Source Edition",
"url": "http://webosose.org/",
"username": "root",
"password": "",
"version": "1.0"
}
Este archivo es creado utilizando como base el archivo os.json
de Raspbian
.
Los valores de username
y password
utilizados son obtenidos de
http://webosose.org/discover/setting/setting-up-networking/:
The default account information is as follows. (ID: root, password: none)
Se crea el archivo partitions.json
con el siguiente contenido:
{
"partitions": [
{
"filesystem_type": "FAT",
"label": "boot",
"mkfs_options": "-F 32",
"partition_size_nominal": 69,
"uncompressed_tarball_size": 22,
"want_maximised": false
},
{
"filesystem_type": "ext4",
"label": "root",
"mkfs_options": "-O ^huge_file",
"partition_size_nominal": 4470,
"uncompressed_tarball_size": 436,
"want_maximised": true
}
]
}
Este archivo es creado utilizando como base el archivo partitions.json
de
Raspbian
y reemplazando los valores de uncompressed_tarball_size
con los
obtenidos mediante el comando xz -l
:
$ xz -l ~/noobs-webos/noobs/os/webos-ose/*.tar.xz
Strms Blocks Compressed Uncompressed Ratio Check Filename
1 1 6,269.2 KiB 21.4 MiB 0.286 CRC64 /home/xxx/noobs-webos/noobs/os/webos-ose/boot.tar.xz
1 1 128.6 MiB 435.3 MiB 0.295 CRC64 /home/xxx/noobs-webos/noobs/os/webos-ose/root.tar.xz
-------------------------------------------------------------------------------
2 2 134.7 MiB 456.8 MiB 0.295 CRC64 2 files
Se copian los archivos Raspbian.png
y partition_setup.sh
del directorio
Raspbian
:
$ cp ~/noobs-webos/noobs/os/{Raspbian,webos-ose}/partition_setup.sh
$ cp ~/noobs-webos/noobs/os/Raspbian/Raspbian.png ~/noobs-webos/noobs/os/webos-ose/webos-ose.png
Por último se mueven los tarballs creados previamente:
$ mv ~/noobs-webos/{boot.tar.xz,root.tar.xz} ~/noobs-webos/noobs/os/webos-ose/
Por último se siguen los pasos detallados en https://github.com/raspberrypi/noobs#setup para instalar la versión customizada de NOOBS en una sdcard.