NOOBS(New Out Of Box Software) is an easy operating system installation manager for the Raspberry Pi. It has the added benefit of making it easy to set up the Pi to boot multiple operating systems. Here's how to convert a RDK image to a NOOBS-compatible image. You will need read access to all partitions of the flashed SD card. While RPi's instruction simply they can be followed directly from the Pi itself, you may be able to find plugins for your primary computer's operating system to allow read access to the ext-formatted partition of the SD card. This will allow you to use the full power of your computer to create
the compressed disk image and probably save you hours.
2. How to download the Noobs image
Download the latest NOOBS release. You will need the full NOOBS download (not NOOBSLite) since we will be using the included Raspbian image as a base. The latest official release of NOOBS can be downloaded from http://downloads.raspberrypi.org/NOOBS_latest.
3. How to add different RDK images in Noobs file
Here we are considering RDK-V hybrid image as an example:
- Take the latest RDK-V hybrid image and copy it to SD card using sudo dd command as below.
- command: sudo dd if=<image> of=<device path> bs=4M
- example: sudo dd if=rdk-generic-hybrid-westeros-wpe-image-raspberrypi-rdk-hybrid-westeros.rpi-sdimg of=/dev/sdb bs=4M
- Download the latest NOOBS image from the link (http://downloads.raspberrypi.org/NOOBS_latest).
- Mount the copied SD card and note down the full sizes of the two partitions on the SD card
- /media<pc login name>/raspberrypi - kernel partition
- /media/<pc login name>/ mount point> - rootfs partition
(Linux users: type df-h in the terminal). We need to create hyb_boot.tar from kernel partition and hyb_root.rar from rootfs partition.
Note: If images needs to be booted in AV display, then need to follow the below section "Changing output display of RDK images to Composite AV display" in this page before making tarballs.
- From the command line on your primary computer, navigate to where the rootfs partition is mounted i,e
/media/<pc login name>/mount point>(/media/trinod/d4cee699-83b9-43ca-9f25-e6a5b63cd008 in this example) and issue below command.
- command: sudo tar -cvpf ~/Desktop/hyb_root.tar ./*
- This will create the hyb_root.tar file on your desktop.
- Note down the size of hyb_root.tar.
- Navigate to your desktop with cd ~/Desktop/ and compress the root tarball by using below command.
- command: xz -9 -e -v hyb_root.tar .
- This will generate “hyb_root.tar.xz” file on your Desktop.
- Now we need to do the same thing to the kernel partition.
- From the command line, navigate to the kernel partition folder where it is mounted i,e /media<pc login name>/raspberrypi (media/trinod/raspberrypi in this example) and create a tar ball by using same command.
- Command: sudo tar -cvpf ~/Desktop/hyb_boot.tar ./*
- this will create the hyb_boot.tar file on your desktop.
- Note down the size of hyb_boot.tar
- Navigate to your desktop with cd ~/Desktop/ and compress the boot tarball with below command.
- command: xz -9 -e -v hyb_boot.tar .
- This will create “hyb_boot.tar.xz” file on your Desktop.
- Once NOOBS image downloaded from (http://downloads.raspberrypi.org/NOOBS_latest) . Unzip NOOBS folder and it will look like below.
- Open os folder and duplicate the 'Raspbian' folder and rename it 'rdkv_hybrid'.
- Open up 'partitions.json' and make the following changes:
- Change the label to “hyb_boot” and “hyb_root” in boot and root partitions respectively.
Change the value for partition_size_nominal for boot partition with the size value for /media<pc login name>/raspberrypi from step 3 in megabytes(40MB in this example). But for root partition partition_size_nominal would be triple the partition size obtained from step 5 to make our rdk images to be loaded properly(Generally it would be 1024MB standard size for our rdk images).
- Change the value for uncompressed_tarball_size to be the values from step 5 and 9.
- Open 'os.json' and make the following changes:
- Change name to rdkv_hybrid
- Change whatever else you want.
- Rename 'Raspbian.png' to 'rdkv_hybrid.png' and replace it with an appropriate icon (say attached rdkb.png icon)
- Replace any or all of the files in the 'slides_vga' folder with appropriate images (say attached A_rdkb.png and B_rdkb.png for rdkb, also please use A_for_AV.png and B_for_AV.png instead of A.png and B.png in AV display). These will be shown during the install process.
- Replace the 'root.tar.xz' and 'boot.tar.xz' with 'hyb_root.tar.xz' and 'hyb_boot.tar.xz' files created in steps 6 and 10.
- Again format SD card in FAT32 format and copy the NOOBS folder contents to it. After flashing rdkv_hybrid should be available as an option in the OS list next to Raspbian.
- Similarly convert the other RDKV_client and RDKb images into NOOBS images if needed.
4. Boot-up of RDK Noobs
After boot-up RDK NOOBS image, it will show the below list of images available for installation.
Select the required images and press on install. Here we are selected all rdk images for installation.
After installation of required images it will populate the message as shown below.
If any one image is corrupted (or) not installed properly then we can use shift button to go to installation menu as shown in Fig:1.1
After clicking ok it will populate the installed images as shown below.
We can boot the required image by selecting it.
5. HDMI vs AV output
AV output display can be validated along with HDMI. We need to use 3.5MM RCA cable for getting AV composite output. From raspberrypi 3.5mm audio and composite output jack we need to connect to TV AV input (yellow, white and Red cable connections).
Similar kind of cable can be used.
NOOBS having the support of configuring between HDMI and AV output displays. It will support four different displays using HDMI and AV.
- HDMI safe mode
- Composite PAL
- Composite NTSC
Validation process using NOOBS
Connect both HDMI and AV cables from raspberrypi to TV. After flashing it will pop-up installation menu as shown in figure 1.1 (use shift key for getting installation menu from next time onwards). At install time, we can select the required images as shown in figure 1.2 and press corresponding button as listed below for the desired display.
In HDMI mode(change the source in TV to HDMI)
- press 1: for HDMI display
- press 2: for HDMI safe mode display
In AV mode(change the source in TV to AV)
- press 3: for AV composite PAL mode
- press 4: for AV composite NTSC mode
HDMI mode is the default display mode. HDMI display resolution would be 1366*768 (native display) and for HDMI safe mode, the resolution changes to 640*480.
Composite PAL and NTSC modes come under AV (options 3 and 4). After selecting each mode, we can make it as permanant. From next time onwards it will be launched as default display mode.
In AV mode, after installing the required images, if we also want to boot images in AV, then we need to modify the corresponding image boot/config.txt file as shown below.
Changing output display of RDK images to Composite AV display
After installing the required rdk image if we wants to boot the image in AV display, then we need to do below mentioned changes to the corresponding rdk image config file. By default all rdk images will support HDMI output display by default. If we want to configure AV output display for any single rdk image then we need to modify /boot/config.txt file of that particular image as shown below:
Changes need to be done in boot/config.txt:
uncommenting sdtv stuff:
commenting hdmi stuff:
Same changes can be made at runtime after installation of the image, using Edit config(e) option of NOOBS.
For more advanced documentation of noobs please head over to noobs github page here