IGN-ARM Pasang ke MicroSD: Perbedaan revisi
(←Mengosongkan halaman) |
|||
Baris 1: | Baris 1: | ||
+ | {{autolang|base=yes}} | ||
+ | [[Category:IGN ARM]][[Category:IGOS Nusantara]] | ||
+ | =IGOS Nusantara ARM= | ||
+ | |||
+ | IGOS Nusantara ARM versi mini hanya menyediakan aplikasi minimal. Untuk versi desktop akan disediakan IGN ARM MATE. | ||
+ | Tiap image IGN ARM dapat digunakan dengan memakai QEMU di IGOS Nusantara 64 bit untuk emulasi lingkungan ARM. | ||
+ | |||
+ | Instalasi image akan melibatkan: | ||
+ | * Unduh Image IGN ARM | ||
+ | * Memasukkan media removable (USB Flashdisk atau MicroSD) ke komputer host (misal dengan platform ARM atau PC x86_64, laptop, dsb.) | ||
+ | * Menulis instruksi untuk menulis image ke media. Media ini dipakai untuk boot ke lingkungan IGOS Nusantara. | ||
+ | |||
+ | ====Dukungan Hardware ARM==== | ||
+ | * [http://igos-nusantara.od.id/wiki/Hardware_Status Dukungan Hardware] | ||
+ | |||
+ | =Download the Disk Image & Copy to Media= | ||
+ | The image-based installation process involves downloading an image file | ||
+ | (depending upon desktop/non-desktop option desired), inserting removable media | ||
+ | into a "host" system (e.g. an ARM or x86_64 PC class desktop, laptop, etc.) and | ||
+ | performing a few simple commands to write this image onto the media. This media | ||
+ | is then used by the ARM "target" system to boot the IGOS Nusantara environment. | ||
+ | |||
+ | After writing the image and correct U-boot file(s), insert the media into the target platform and boot. | ||
+ | |||
+ | *Unduh: | ||
+ | http://igos-nusantara.or.id/arm/images/ | ||
+ | |||
+ | == Scripted == | ||
+ | {{admon/note|Note | The examples provided here are from a IGN 19/20 host and may need to be adjusted depending on your host environment.}} | ||
+ | |||
+ | Execute the following script as a user with sudo privileges. It will copy the | ||
+ | selected disk image and write the appropriate U-Boot for the target hardware | ||
+ | platform. Optionally you can also enable and disable SE Linux and remove the | ||
+ | root password requirement (allowing log in without completing initial setup). | ||
+ | To add a board not listed, simply create a bash scriptlet with the commands | ||
+ | needed to copy U-Boot to media and add to the 'boards.d' directory. | ||
+ | * https://pwhalen.IGNpeople.org/IGN-arm-installer-0.06.tar.bz2 | ||
+ | <pre> | ||
+ | ./IGN-arm-image-installer.sh | ||
+ | |||
+ | Usage: IGN-arm-image-installer.sh <options> | ||
+ | |||
+ | --image=IMAGE - xz compressed image file name | ||
+ | --target=TARGET - target board | ||
+ | [Bananapi|beaglebone|Cubietruck|none|panda|trimslice|wandboard_dual|wandboard_quad|wandboard_solo] | ||
+ | --media=DEVICE - media device file (/dev/[sdX|mmcblkX]) | ||
+ | --selinux=ON/OFF - Turn SELinux off/on as needed | ||
+ | --norootpass - Remove the root password | ||
+ | -y - Assumes yes, will not wait for confirmation | ||
+ | --version - Display version and exit | ||
+ | |||
+ | Example: IGN-arm-image-installer.sh --image=IGN-Rawhide.xz --target=panda --media=/dev/mmcblk0 --selinux=OFF | ||
+ | </pre> | ||
+ | |||
+ | Note, this is not the {{Package|IGN-arm-installer}} package. | ||
+ | |||
+ | == Manual== | ||
+ | Choose a disk image. | ||
+ | http://download.IGNproject.org/pub/IGN/linux/releases/21/Images/armhfp/ | ||
+ | Write the image to your media | ||
+ | TYPE= # options include KDE, LXDE, XFCE, SoaS, Mate and Minimal | ||
+ | MEDIA= #/dev/<location-of-your-media> | ||
+ | # for example /dev/sdc, /dev/sdg, ... | ||
+ | # read /var/log/messages to learn which device was assigned to your media | ||
+ | xzcat IGN-$TYPE-armhfp-21-5-sda.raw.xz | sudo dd of=$MEDIA; sync | ||
+ | After writing the image, read the new partition table and mount the root partition | ||
+ | partprobe $MEDIA | ||
+ | PART= #/dev/<location-of-your-media><partition-number> | ||
+ | # this needs to be the root partition on the written media | ||
+ | # for example /dev/sdc3, /dev/sdg3, /dev/mmcblk0p3, ... | ||
+ | mkdir /tmp/root; sudo mount $PART /tmp/root | ||
+ | Copy the appropriate U-Boot files for your target hardware listed below. | ||
+ | |||
+ | =Write U-Boot to Media= | ||
+ | Follow theses steps to write the appropriate U-Boot for your Hardware. | ||
+ | ===For the Banana Pi (Allwinner A20)=== | ||
+ | {{admon/warning|IMPORTANT | At this time you must have a serial console cable for the Banana Pi. For those that do not, please see the FAQ at the bottom of the page}} | ||
+ | MEDIA= #/dev/<location-of-your-media> | ||
+ | # for example /dev/sdc, /dev/sdg, ... | ||
+ | # read /var/log/messages to learn which device was assigned to your media | ||
+ | sudo dd if=/tmp/root/usr/share/uboot/Bananapi/u-boot-sunxi-with-spl.bin of=$MEDIA bs=1024 seek=8 conv=fsync,notrunc | ||
+ | Media should now be ready to boot on the Banana Pi. Insert into the device and boot. | ||
+ | ===WARNING for Cubie* users=== | ||
+ | Be sure you are using the correct uboot image for your specific board! An incorrect uboot can cause unpredictable and confusing errors. | ||
+ | ===For the CubieBoard v1 (Allwinner A10)=== | ||
+ | MEDIA= #/dev/<location-of-your-media> | ||
+ | # for example /dev/sdc, /dev/sdg, ... | ||
+ | # read /var/log/messages to learn which device was assigned to your media | ||
+ | sudo dd if=/tmp/root/usr/share/uboot/Cubieboard/u-boot-sunxi-with-spl.bin of=$MEDIA bs=1024 seek=8 conv=fsync,notrunc | ||
+ | Media should now be ready to boot on the Cubieboard. Insert into the device and boot. | ||
+ | |||
+ | ===For the CubieBoard v2 (Allwinner A20)=== | ||
+ | MEDIA= #/dev/<location-of-your-media> | ||
+ | # for example /dev/sdc, /dev/sdg, ... | ||
+ | # read /var/log/messages to learn which device was assigned to your media | ||
+ | sudo dd if=/tmp/root/usr/share/uboot/Cubieboard2/u-boot-sunxi-with-spl.bin of=$MEDIA bs=1024 seek=8 conv=fsync,notrunc | ||
+ | Media should now be ready to boot on the Cubieboard. Insert into the device and boot. | ||
+ | |||
+ | ===For the CubieTruck (Allwinner A20)=== | ||
+ | MEDIA= #/dev/<location-of-your-media> | ||
+ | # for example /dev/sdc, /dev/sdg, ... | ||
+ | # read /var/log/messages to learn which device was assigned to your media | ||
+ | sudo dd if=/tmp/root/usr/share/uboot/Cubietruck/u-boot-sunxi-with-spl.bin of=$MEDIA bs=1024 seek=8 conv=fsync,notrunc | ||
+ | Media should now be ready to boot on the Cubietruck. Insert into the device and boot. | ||
+ | |||
+ | ===For the BeagleBone ( Black & White ) === | ||
+ | {{admon/warning|IMPORTANT | At this time you must have a serial console cable for the BeagleBone. For those that do not, please see the FAQ at the bottom of the page}} | ||
+ | MEDIA= #/dev/<location-of-your-media> | ||
+ | # for example /dev/sdc, /dev/sdg, ... | ||
+ | # read /var/log/messages to learn which device was assigned to your media | ||
+ | sudo dd if=/tmp/root/usr/share/uboot/beaglebone/MLO of=$MEDIA count=1 seek=1 conv=notrunc bs=128k | ||
+ | sudo dd if=/tmp/root/usr/share/uboot/beaglebone/u-boot.img of=$MEDIA count=2 seek=1 conv=notrunc bs=384k | ||
+ | Media should now be ready to boot on the BeagleBone. Insert into the device and boot. To boot the IGOS Nusantara version of U-Boot on MicroSD you will need to hold the "User Boot" button (located near the MicroSD slot) when the device is powered on. | ||
+ | |||
+ | ==== Copying IGN U-Boot to eMMC on the Beaglebone Black==== | ||
+ | To Copy the IGN U-Boot to the eMMC on the Beaglebone Black execute the following steps: | ||
+ | |||
+ | <pre> | ||
+ | # mount emmc boot partition | ||
+ | mkdir /tmp/emmc; mount /dev/mmcblk1p1 /tmp/emmc | ||
+ | |||
+ | # optionally back up original U-Boot | ||
+ | mkdir /tmp/emmc/orig-uboot; cp /tmp/emmc/{MLO,u-boot.img} /tmp/emmc/orig-uboot/ | ||
+ | |||
+ | # copy IGN U-Boot | ||
+ | cp /usr/share/uboot/beaglebone/{MLO,u-boot.img} /tmp/emmc/ | ||
+ | </pre> | ||
+ | |||
+ | Once completed you will no longer need to press the "User Boot" button to select the IGN U-Boot. | ||
+ | |||
+ | ===For the CompuLab TrimSlice=== | ||
+ | {{admon/warning|IMPORTANT | You must use the latest Device Tree enabled U-Boot to boot the IGOS Nusantara Trimslice image, which you can find [http://www.trimslice.com/wiki/index.php/Trim-Slice_Firmware_Updater#v2012.04-1.02 here]. And environmental variables described [http://www.trimslice.com/wiki/index.php/Trim-Slice_Firmware_Updater#U-Boot_environment_variable here]. <b>Failure to do so will result in a non-booting system.</b>}} | ||
+ | The Trimslice requires no additional steps, U-Boot is included on the device. | ||
+ | |||
+ | === For the Wandboard (Freescale i.MX6) === | ||
+ | Note - The Wandboard includes a Solo, Dual, and Quad core configuration. Determine your hardware configuration and use the appropriate value. While the Wandboard Quad has been tes | ||
+ | ted and confirmed working, the Solo and Dual core models should also work as well. The Wandboard Solo uses the same dtb as the Dual(imx6dl-wandboard.dtb). | ||
+ | Copy the U-boot for the Wandboard hardware in use: | ||
+ | BOARD= # Choose 'solo', 'dl' or 'quad' | ||
+ | MEDIA= #/dev/<location-of-your-media> | ||
+ | # for example /dev/sdc, /dev/sdg, ... | ||
+ | # read /var/log/messages to learn which device was assigned to your media | ||
+ | sudo dd if=/tmp/root/usr/share/uboot/wandboard_$BOARD/u-boot.imx of=$MEDIA bs=1k seek=1 conv=fsync; sync | ||
+ | Remove the media and insert into the Wandboard and boot. | ||
+ | {{admon/warning|IMPORTANT |<b>MicroSD for booting is located under the heatsink</b>}} | ||
+ | |||
+ | === For the Pandaboard === | ||
+ | MEDIA= #/dev/<location-of-your-media> | ||
+ | # for example /dev/sdc, /dev/sdg, ... | ||
+ | # read /var/log/messages to learn which device was assigned to your media | ||
+ | sudo dd if=/tmp/root/usr/share/uboot/panda/MLO of=$MEDIA count=1 seek=1 conv=notrunc bs=128k | ||
+ | sudo dd if=/tmp/root/usr/share/uboot/panda/u-boot.img of=$MEDIA count=2 seek=1 conv=notrunc bs=384k | ||
+ | Media should now be ready to boot on the Pandaboard. Insert into the device and boot. | ||
+ | |||
+ | =For Versatile Express Emulation with QEMU= | ||
+ | No ARM hardware? No problem! Even without hardware, it is possible to run the IGN for ARM images using the QEMU emulator program. Any image can be used, and you can choose a scr | ||
+ | ipt method or manual depending on your preference. | ||
+ | === Using an Existing Disk Image === | ||
+ | Choose a disk image. | ||
+ | http://download.IGNproject.org/pub/IGN/linux/releases/21/Images/armhfp/ | ||
+ | Extract the image: | ||
+ | <pre> | ||
+ | TYPE= # Type of image used. (eg Minimal, KDE, Xfce, SoaS, MATE) | ||
+ | unxz IGN-$TYPE-armhfp-21-5-sda.raw.xz | ||
+ | </pre> | ||
+ | Install 'libguestfs-tools' to use virt-copy | ||
+ | <pre>sudo yum install -y libguestfs-tools</pre> | ||
+ | Extract the kernel and initramfs for use with booting. | ||
+ | <pre> | ||
+ | virt-copy-out -a IGN-$TYPE-armhfp-21-5-sda.raw /boot . | ||
+ | </pre> | ||
+ | |||
+ | To boot (you will need to determine the kernel version used in the disk image): | ||
+ | <pre> | ||
+ | KERN= # kernel version. eg - '/path/to/vmlinuz*' | ||
+ | INITRD= # initrd version. eg - '/path/to/initramfs*' | ||
+ | DTB= # dtb version. eg - '/path/to/dtb*/vexpress-v2p-ca9.dtb | ||
+ | TYPE= # image used (Minimal recommended due to ongoing work with vexpress display) | ||
+ | sudo qemu-system-arm -machine vexpress-a9 -m 1024 -nographic -net nic -net user \ | ||
+ | -append "console=ttyAMA0,115200n8 rw root=/dev/mmcblk0p3 rootwait physmap.enabled=0" \ | ||
+ | -kernel $KERN \ | ||
+ | -initrd $INITRD \ | ||
+ | -sd IGN-$TYPE-armhfp-21-5-sda.raw \ | ||
+ | -dtb $DTB | ||
+ | |||
+ | * NOTE - to use Cortex-A15 emulation you will need to use '-machine vexpress-a15' and the A15 DTB - 'vexpress-v2p-ca15-tc1.dtb'. | ||
+ | </pre> | ||
+ | |||
+ | For convenience you can also download a script for booting the system [http://pwhalen.IGNpeople.org/IGN/20/boot-vexpress here]. | ||
+ | To run the script: | ||
+ | <pre> | ||
+ | chmod 755 boot-vexpress | ||
+ | ./boot-vexpress -h | ||
+ | Usage: ./boot-vexpress [--gui] --kernel=vmlinuz... --ramfs=initramfs --image=fsimage --dtb=vexpress.dtb | ||
+ | </pre> | ||
+ | |||
+ | NOTE: Booting with device tree is required. Passing <b>--gui</b> for graphics will not work at this time (this is due to ongoing platform reword occurring within the Versatile Expr | ||
+ | ess kernel code). | ||
+ | |||
+ | ===Expanding the Disk Image=== | ||
+ | You can easily expand the root partition of the disk image using <code>qemu-img</code>. | ||
+ | |||
+ | For example to increase the image size by 10GB you can issue: | ||
+ | qemu-img resize IGN-$TYPE-armhfp-21-5-sda.raw +10G | ||
+ | |||
+ | === Interactive Network Installation === | ||
+ | IGOS Nusantara offers the ability to perform a network installation using either 'vexpress-a15' or 'vexpress-a9'. Using 'vexpress-a15' will allow you to leverage more RAM using the LPAE kernel. | ||
+ | <pre> | ||
+ | # vexpress-a15 | ||
+ | # Create the disk image | ||
+ | qemu-img create IGN-QEMU-armhfp-21-sda.raw $SIZE #add a size EG 8G | ||
+ | # retrieve DTB | ||
+ | wget https://repo.igos-nusantara.or.id/armhfp/os/images/pxeboot/dtb/vexpress-v2p-ca15-tc1.dtb | ||
+ | # Begin Install | ||
+ | sudo virt-install \ | ||
+ | --name IGN-QEMU-armhfp-21-A15 \ | ||
+ | --ram 2048 \ | ||
+ | --arch armv7l \ | ||
+ | --machine vexpress-a15 \ | ||
+ | --location=https://repo.igos-nusantara.or.id/armhfp/os/ \ | ||
+ | --disk IGN-QEMU-armhfp-21-sda.raw \ | ||
+ | --extra-args="console=ttyAMA0 rw" \ | ||
+ | --os-variant IGN21 \ | ||
+ | --graphics none \ | ||
+ | --boot dtb=`pwd`/vexpress-v2p-ca15-tc1.dtb | ||
+ | |||
+ | # vexpress-a9 | ||
+ | # Create the disk image | ||
+ | sudo qemu-img create IGN-QEMU-armhfp-21-sda.raw $SIZE #add a size EG 8G | ||
+ | # retrieve DTB | ||
+ | wget https://repo.igos-nusantara.or.id/armhfp/os/images/pxeboot/dtb/vexpress-v2p-ca9.dtb | ||
+ | # Begin Install | ||
+ | sudo virt-install \ | ||
+ | --name IGN-QEMU-armhfp-21-A9 \ | ||
+ | --ram 1024 \ | ||
+ | --arch armv7l \ | ||
+ | --machine vexpress-a9 \ | ||
+ | --location=https://repo.igos-nusantara.or.id/armhfp/os/ \ | ||
+ | --disk IGN-QEMU-armhfp-21-sda.raw \ | ||
+ | --extra-args="console=ttyAMA0 rw" \ | ||
+ | --os-variant IGN21 \ | ||
+ | --graphics none \ | ||
+ | --boot dtb=`pwd`/vexpress-v2p-ca9.dtb | ||
+ | </pre> | ||
+ | Complete a Text or VNC Installation choosing a software packge and partitioning scheme (note when choosing LVM or BTRFS you will need to edit the kernel arguments appropriately). T | ||
+ | he system will attempt to reboot but fail until the next step is completed. | ||
+ | |||
+ | === Extracting Files from the Disk Image === | ||
+ | Once completed you will need to copy the kernel and initramfs and DTB from the disk image for use with Virt-Manager or command line. | ||
+ | <pre> | ||
+ | KERN= # kernel version | ||
+ | INITRD= # initrd version | ||
+ | sudo virt-copy-out -a IGN-QEMU-armhfp-21-5-sda.raw /boot/{$KERN,$INITRD} . | ||
+ | # vexpress-a15 | ||
+ | sudo virt-copy-out -a IGN-QEMU-armhfp-21-5-sda.raw /boot/dtb-*/vexpress-v2p-ca15-tc1.dtb . | ||
+ | # vexpress-a9 | ||
+ | sudo virt-copy-out -a IGN-QEMU-armhfp-21-5-sda.raw /boot/dtb-*/vexpress-v2p-ca9.dtb . | ||
+ | </pre> | ||
+ | |||
+ | === Booting the New System === | ||
+ | Once the files have been extracted you can choose to use the system on commandline or with Virt-Manager. Virt-Manager offers additional flexibility and is recommended for most user | ||
+ | s. | ||
+ | ==== Virt-Manager ==== | ||
+ | * Open Virt-Manager and select the image created above. Click on "Edit-> Virtual Machine Details -> View -> Details" | ||
+ | * Under "Boot Options", add the kernel, initramfs and dtb extracted above (the DTB should point to the correct path) | ||
+ | * For kernel args add (note- if custom partitioning was used for the installation you will to make adjustments to 'root='): | ||
+ | <pre> | ||
+ | # If you selected Standard Partitioning | ||
+ | console=ttyAMA0,115200n8 rw root=/dev/vda3 rootwait | ||
+ | # If you selected LVM | ||
+ | console=ttyAMA0,115200n8 rw root=/dev/mapper/IGN-root rootwait | ||
+ | </pre> | ||
+ | |||
+ | * When using the A15 DTB and LPAE kernel it is possible to use more RAM. | ||
+ | |||
+ | = Booting for the First Time = | ||
+ | ===Initial-setup=== | ||
+ | * During the first boot the system will launch the 'initial-setup' utility. For graphical images this will occur on the display, for minimal images this will occur on the serial co | ||
+ | nsole. Failure to complete the initial-setup will prevent logging into the system. To log in to the root account without completing the initial-setup you will need to minimally edi | ||
+ | t '/etc/passwd' file and remove the 'x' from the line beginning with 'root' (this will allow you to log into the root account without entering a password). | ||
+ | === Resize the Root Filesystem === | ||
+ | To resize the root partition use 'gparted' on a IGN host. | ||
+ | |||
+ | = Known Issues & Usage Tips= | ||
+ | |||
+ | * Display is not currently working in vexpress emulation. | ||
+ | * A15 emulation through QEMU provides no output on console in IGN 20(qemu-system-arm-1.6.2-9.fc20), working in IGOS Nusantara(qemu-system-arm-2.1.2-6.fc21). | ||
+ | * After installation with Anaconda you will need to manually edit '/etc/extlinux/extlinux.conf' and add 'fdtdir /dtb-<version>/' line. . | ||
+ | * The system may hang during the update of 'initial-setup'. If this occurs, open another terminal and 'systemctl stop initial-setup-text' or 'systemctl stop initial-setup-graphical' depending on which image is in use. | ||
+ | |||
+ | For a list of all common bugs please visit - http://IGNproject.org/wiki/Common_F21_bugs . | ||
+ | |||
+ | = FAQ = | ||
+ | |||
+ | * <b>QUESTION</b> : How do I use IGN ARM when I have no serial cable or display? | ||
+ | ** <b>ANSWER</b>: Though not recommended it is possible to use IGN ARM without a serial cable or display. When doing so you may want to limit updates to reduce the possibility of not being able to boot. (This example is from a IGN 19 system, you may need to adjust the mounts used). | ||
+ | <pre> | ||
+ | USER= # your user account | ||
+ | rm /run/media/$USER/__/etc/systemd/system/graphical.target.wants/initial-setup-graphical.service | ||
+ | rm /run/media/$USER/__/etc/systemd/system/multi-user.target.wants/initial-setup-text.service | ||
+ | mkdir /run/media/$USER/__/root/.ssh/ | ||
+ | cat /home/$USER/.ssh/id_rsa.pub >> /run/media/$USER/__/root/.ssh/authorized_keys | ||
+ | chmod -R u=rwX,o=,g= /run/media/$USER/__/root/.ssh/ | ||
+ | </pre> | ||
+ | |||
+ | Give the system a few minutes to boot, when it obtains an IP you should be able to ssh to the root account. | ||
+ | |||
+ | * <b>QUESTION</b> : Why does 'yum update' fail? | ||
+ | ** <b>ANSWER</b>: The system time might be incorrect, plesae ensure it is correct. |
Revisi per 1 April 2015 08.20
Daftar isi
- 1 IGOS Nusantara ARM
- 2 Download the Disk Image & Copy to Media
- 3 Write U-Boot to Media
- 3.1 For the Banana Pi (Allwinner A20)
- 3.2 WARNING for Cubie* users
- 3.3 For the CubieBoard v1 (Allwinner A10)
- 3.4 For the CubieBoard v2 (Allwinner A20)
- 3.5 For the CubieTruck (Allwinner A20)
- 3.6 For the BeagleBone ( Black & White )
- 3.7 For the CompuLab TrimSlice
- 3.8 For the Wandboard (Freescale i.MX6)
- 3.9 For the Pandaboard
- 4 For Versatile Express Emulation with QEMU
- 5 Booting for the First Time
- 6 Known Issues & Usage Tips
- 7 FAQ
IGOS Nusantara ARM
IGOS Nusantara ARM versi mini hanya menyediakan aplikasi minimal. Untuk versi desktop akan disediakan IGN ARM MATE. Tiap image IGN ARM dapat digunakan dengan memakai QEMU di IGOS Nusantara 64 bit untuk emulasi lingkungan ARM.
Instalasi image akan melibatkan:
- Unduh Image IGN ARM
- Memasukkan media removable (USB Flashdisk atau MicroSD) ke komputer host (misal dengan platform ARM atau PC x86_64, laptop, dsb.)
- Menulis instruksi untuk menulis image ke media. Media ini dipakai untuk boot ke lingkungan IGOS Nusantara.
Dukungan Hardware ARM
Download the Disk Image & Copy to Media
The image-based installation process involves downloading an image file (depending upon desktop/non-desktop option desired), inserting removable media into a "host" system (e.g. an ARM or x86_64 PC class desktop, laptop, etc.) and performing a few simple commands to write this image onto the media. This media is then used by the ARM "target" system to boot the IGOS Nusantara environment.
After writing the image and correct U-boot file(s), insert the media into the target platform and boot.
- Unduh:
http://igos-nusantara.or.id/arm/images/
Scripted
Execute the following script as a user with sudo privileges. It will copy the selected disk image and write the appropriate U-Boot for the target hardware platform. Optionally you can also enable and disable SE Linux and remove the root password requirement (allowing log in without completing initial setup). To add a board not listed, simply create a bash scriptlet with the commands needed to copy U-Boot to media and add to the 'boards.d' directory.
./IGN-arm-image-installer.sh Usage: IGN-arm-image-installer.sh <options> --image=IMAGE - xz compressed image file name --target=TARGET - target board [Bananapi|beaglebone|Cubietruck|none|panda|trimslice|wandboard_dual|wandboard_quad|wandboard_solo] --media=DEVICE - media device file (/dev/[sdX|mmcblkX]) --selinux=ON/OFF - Turn SELinux off/on as needed --norootpass - Remove the root password -y - Assumes yes, will not wait for confirmation --version - Display version and exit Example: IGN-arm-image-installer.sh --image=IGN-Rawhide.xz --target=panda --media=/dev/mmcblk0 --selinux=OFF
Note, this is not the Templat:Package package.
Manual
Choose a disk image.
http://download.IGNproject.org/pub/IGN/linux/releases/21/Images/armhfp/
Write the image to your media
TYPE= # options include KDE, LXDE, XFCE, SoaS, Mate and Minimal MEDIA= #/dev/<location-of-your-media> # for example /dev/sdc, /dev/sdg, ... # read /var/log/messages to learn which device was assigned to your media xzcat IGN-$TYPE-armhfp-21-5-sda.raw.xz | sudo dd of=$MEDIA; sync
After writing the image, read the new partition table and mount the root partition
partprobe $MEDIA PART= #/dev/<location-of-your-media><partition-number> # this needs to be the root partition on the written media # for example /dev/sdc3, /dev/sdg3, /dev/mmcblk0p3, ... mkdir /tmp/root; sudo mount $PART /tmp/root
Copy the appropriate U-Boot files for your target hardware listed below.
Write U-Boot to Media
Follow theses steps to write the appropriate U-Boot for your Hardware.
For the Banana Pi (Allwinner A20)
MEDIA= #/dev/<location-of-your-media> # for example /dev/sdc, /dev/sdg, ... # read /var/log/messages to learn which device was assigned to your media sudo dd if=/tmp/root/usr/share/uboot/Bananapi/u-boot-sunxi-with-spl.bin of=$MEDIA bs=1024 seek=8 conv=fsync,notrunc
Media should now be ready to boot on the Banana Pi. Insert into the device and boot.
WARNING for Cubie* users
Be sure you are using the correct uboot image for your specific board! An incorrect uboot can cause unpredictable and confusing errors.
For the CubieBoard v1 (Allwinner A10)
MEDIA= #/dev/<location-of-your-media> # for example /dev/sdc, /dev/sdg, ... # read /var/log/messages to learn which device was assigned to your media sudo dd if=/tmp/root/usr/share/uboot/Cubieboard/u-boot-sunxi-with-spl.bin of=$MEDIA bs=1024 seek=8 conv=fsync,notrunc
Media should now be ready to boot on the Cubieboard. Insert into the device and boot.
For the CubieBoard v2 (Allwinner A20)
MEDIA= #/dev/<location-of-your-media> # for example /dev/sdc, /dev/sdg, ... # read /var/log/messages to learn which device was assigned to your media sudo dd if=/tmp/root/usr/share/uboot/Cubieboard2/u-boot-sunxi-with-spl.bin of=$MEDIA bs=1024 seek=8 conv=fsync,notrunc
Media should now be ready to boot on the Cubieboard. Insert into the device and boot.
For the CubieTruck (Allwinner A20)
MEDIA= #/dev/<location-of-your-media> # for example /dev/sdc, /dev/sdg, ... # read /var/log/messages to learn which device was assigned to your media sudo dd if=/tmp/root/usr/share/uboot/Cubietruck/u-boot-sunxi-with-spl.bin of=$MEDIA bs=1024 seek=8 conv=fsync,notrunc
Media should now be ready to boot on the Cubietruck. Insert into the device and boot.
For the BeagleBone ( Black & White )
MEDIA= #/dev/<location-of-your-media> # for example /dev/sdc, /dev/sdg, ... # read /var/log/messages to learn which device was assigned to your media sudo dd if=/tmp/root/usr/share/uboot/beaglebone/MLO of=$MEDIA count=1 seek=1 conv=notrunc bs=128k sudo dd if=/tmp/root/usr/share/uboot/beaglebone/u-boot.img of=$MEDIA count=2 seek=1 conv=notrunc bs=384k
Media should now be ready to boot on the BeagleBone. Insert into the device and boot. To boot the IGOS Nusantara version of U-Boot on MicroSD you will need to hold the "User Boot" button (located near the MicroSD slot) when the device is powered on.
Copying IGN U-Boot to eMMC on the Beaglebone Black
To Copy the IGN U-Boot to the eMMC on the Beaglebone Black execute the following steps:
# mount emmc boot partition mkdir /tmp/emmc; mount /dev/mmcblk1p1 /tmp/emmc # optionally back up original U-Boot mkdir /tmp/emmc/orig-uboot; cp /tmp/emmc/{MLO,u-boot.img} /tmp/emmc/orig-uboot/ # copy IGN U-Boot cp /usr/share/uboot/beaglebone/{MLO,u-boot.img} /tmp/emmc/
Once completed you will no longer need to press the "User Boot" button to select the IGN U-Boot.
For the CompuLab TrimSlice
Templat:Admon/warning The Trimslice requires no additional steps, U-Boot is included on the device.
For the Wandboard (Freescale i.MX6)
Note - The Wandboard includes a Solo, Dual, and Quad core configuration. Determine your hardware configuration and use the appropriate value. While the Wandboard Quad has been tes ted and confirmed working, the Solo and Dual core models should also work as well. The Wandboard Solo uses the same dtb as the Dual(imx6dl-wandboard.dtb). Copy the U-boot for the Wandboard hardware in use:
BOARD= # Choose 'solo', 'dl' or 'quad' MEDIA= #/dev/<location-of-your-media> # for example /dev/sdc, /dev/sdg, ... # read /var/log/messages to learn which device was assigned to your media sudo dd if=/tmp/root/usr/share/uboot/wandboard_$BOARD/u-boot.imx of=$MEDIA bs=1k seek=1 conv=fsync; sync
Remove the media and insert into the Wandboard and boot. Templat:Admon/warning
For the Pandaboard
MEDIA= #/dev/<location-of-your-media> # for example /dev/sdc, /dev/sdg, ... # read /var/log/messages to learn which device was assigned to your media sudo dd if=/tmp/root/usr/share/uboot/panda/MLO of=$MEDIA count=1 seek=1 conv=notrunc bs=128k sudo dd if=/tmp/root/usr/share/uboot/panda/u-boot.img of=$MEDIA count=2 seek=1 conv=notrunc bs=384k
Media should now be ready to boot on the Pandaboard. Insert into the device and boot.
For Versatile Express Emulation with QEMU
No ARM hardware? No problem! Even without hardware, it is possible to run the IGN for ARM images using the QEMU emulator program. Any image can be used, and you can choose a scr ipt method or manual depending on your preference.
Using an Existing Disk Image
Choose a disk image.
http://download.IGNproject.org/pub/IGN/linux/releases/21/Images/armhfp/
Extract the image:
TYPE= # Type of image used. (eg Minimal, KDE, Xfce, SoaS, MATE) unxz IGN-$TYPE-armhfp-21-5-sda.raw.xz
Install 'libguestfs-tools' to use virt-copy
sudo yum install -y libguestfs-tools
Extract the kernel and initramfs for use with booting.
virt-copy-out -a IGN-$TYPE-armhfp-21-5-sda.raw /boot .
To boot (you will need to determine the kernel version used in the disk image):
KERN= # kernel version. eg - '/path/to/vmlinuz*' INITRD= # initrd version. eg - '/path/to/initramfs*' DTB= # dtb version. eg - '/path/to/dtb*/vexpress-v2p-ca9.dtb TYPE= # image used (Minimal recommended due to ongoing work with vexpress display) sudo qemu-system-arm -machine vexpress-a9 -m 1024 -nographic -net nic -net user \ -append "console=ttyAMA0,115200n8 rw root=/dev/mmcblk0p3 rootwait physmap.enabled=0" \ -kernel $KERN \ -initrd $INITRD \ -sd IGN-$TYPE-armhfp-21-5-sda.raw \ -dtb $DTB * NOTE - to use Cortex-A15 emulation you will need to use '-machine vexpress-a15' and the A15 DTB - 'vexpress-v2p-ca15-tc1.dtb'.
For convenience you can also download a script for booting the system here. To run the script:
chmod 755 boot-vexpress ./boot-vexpress -h Usage: ./boot-vexpress [--gui] --kernel=vmlinuz... --ramfs=initramfs --image=fsimage --dtb=vexpress.dtb
NOTE: Booting with device tree is required. Passing --gui for graphics will not work at this time (this is due to ongoing platform reword occurring within the Versatile Expr ess kernel code).
Expanding the Disk Image
You can easily expand the root partition of the disk image using qemu-img
.
For example to increase the image size by 10GB you can issue:
qemu-img resize IGN-$TYPE-armhfp-21-5-sda.raw +10G
Interactive Network Installation
IGOS Nusantara offers the ability to perform a network installation using either 'vexpress-a15' or 'vexpress-a9'. Using 'vexpress-a15' will allow you to leverage more RAM using the LPAE kernel.
# vexpress-a15 # Create the disk image qemu-img create IGN-QEMU-armhfp-21-sda.raw $SIZE #add a size EG 8G # retrieve DTB wget https://repo.igos-nusantara.or.id/armhfp/os/images/pxeboot/dtb/vexpress-v2p-ca15-tc1.dtb # Begin Install sudo virt-install \ --name IGN-QEMU-armhfp-21-A15 \ --ram 2048 \ --arch armv7l \ --machine vexpress-a15 \ --location=https://repo.igos-nusantara.or.id/armhfp/os/ \ --disk IGN-QEMU-armhfp-21-sda.raw \ --extra-args="console=ttyAMA0 rw" \ --os-variant IGN21 \ --graphics none \ --boot dtb=`pwd`/vexpress-v2p-ca15-tc1.dtb # vexpress-a9 # Create the disk image sudo qemu-img create IGN-QEMU-armhfp-21-sda.raw $SIZE #add a size EG 8G # retrieve DTB wget https://repo.igos-nusantara.or.id/armhfp/os/images/pxeboot/dtb/vexpress-v2p-ca9.dtb # Begin Install sudo virt-install \ --name IGN-QEMU-armhfp-21-A9 \ --ram 1024 \ --arch armv7l \ --machine vexpress-a9 \ --location=https://repo.igos-nusantara.or.id/armhfp/os/ \ --disk IGN-QEMU-armhfp-21-sda.raw \ --extra-args="console=ttyAMA0 rw" \ --os-variant IGN21 \ --graphics none \ --boot dtb=`pwd`/vexpress-v2p-ca9.dtb
Complete a Text or VNC Installation choosing a software packge and partitioning scheme (note when choosing LVM or BTRFS you will need to edit the kernel arguments appropriately). T he system will attempt to reboot but fail until the next step is completed.
Extracting Files from the Disk Image
Once completed you will need to copy the kernel and initramfs and DTB from the disk image for use with Virt-Manager or command line.
KERN= # kernel version INITRD= # initrd version sudo virt-copy-out -a IGN-QEMU-armhfp-21-5-sda.raw /boot/{$KERN,$INITRD} . # vexpress-a15 sudo virt-copy-out -a IGN-QEMU-armhfp-21-5-sda.raw /boot/dtb-*/vexpress-v2p-ca15-tc1.dtb . # vexpress-a9 sudo virt-copy-out -a IGN-QEMU-armhfp-21-5-sda.raw /boot/dtb-*/vexpress-v2p-ca9.dtb .
Booting the New System
Once the files have been extracted you can choose to use the system on commandline or with Virt-Manager. Virt-Manager offers additional flexibility and is recommended for most user s.
Virt-Manager
- Open Virt-Manager and select the image created above. Click on "Edit-> Virtual Machine Details -> View -> Details"
- Under "Boot Options", add the kernel, initramfs and dtb extracted above (the DTB should point to the correct path)
- For kernel args add (note- if custom partitioning was used for the installation you will to make adjustments to 'root='):
# If you selected Standard Partitioning console=ttyAMA0,115200n8 rw root=/dev/vda3 rootwait # If you selected LVM console=ttyAMA0,115200n8 rw root=/dev/mapper/IGN-root rootwait
- When using the A15 DTB and LPAE kernel it is possible to use more RAM.
Booting for the First Time
Initial-setup
- During the first boot the system will launch the 'initial-setup' utility. For graphical images this will occur on the display, for minimal images this will occur on the serial co
nsole. Failure to complete the initial-setup will prevent logging into the system. To log in to the root account without completing the initial-setup you will need to minimally edi t '/etc/passwd' file and remove the 'x' from the line beginning with 'root' (this will allow you to log into the root account without entering a password).
Resize the Root Filesystem
To resize the root partition use 'gparted' on a IGN host.
Known Issues & Usage Tips
- Display is not currently working in vexpress emulation.
- A15 emulation through QEMU provides no output on console in IGN 20(qemu-system-arm-1.6.2-9.fc20), working in IGOS Nusantara(qemu-system-arm-2.1.2-6.fc21).
- After installation with Anaconda you will need to manually edit '/etc/extlinux/extlinux.conf' and add 'fdtdir /dtb-<version>/' line. .
- The system may hang during the update of 'initial-setup'. If this occurs, open another terminal and 'systemctl stop initial-setup-text' or 'systemctl stop initial-setup-graphical' depending on which image is in use.
For a list of all common bugs please visit - http://IGNproject.org/wiki/Common_F21_bugs .
FAQ
- QUESTION : How do I use IGN ARM when I have no serial cable or display?
- ANSWER: Though not recommended it is possible to use IGN ARM without a serial cable or display. When doing so you may want to limit updates to reduce the possibility of not being able to boot. (This example is from a IGN 19 system, you may need to adjust the mounts used).
USER= # your user account rm /run/media/$USER/__/etc/systemd/system/graphical.target.wants/initial-setup-graphical.service rm /run/media/$USER/__/etc/systemd/system/multi-user.target.wants/initial-setup-text.service mkdir /run/media/$USER/__/root/.ssh/ cat /home/$USER/.ssh/id_rsa.pub >> /run/media/$USER/__/root/.ssh/authorized_keys chmod -R u=rwX,o=,g= /run/media/$USER/__/root/.ssh/
Give the system a few minutes to boot, when it obtains an IP you should be able to ssh to the root account.
- QUESTION : Why does 'yum update' fail?
- ANSWER: The system time might be incorrect, plesae ensure it is correct.