Differences between revisions 1 and 7 (spanning 6 versions)
Revision 1 as of 2015-05-22 15:01:12
Size: 4946
Editor: wookey
Comment:
Revision 7 as of 2016-12-14 17:26:20
Size: 13204
Editor: wookey
Comment: Add stretch installer info
Deletions are marked like this. Additions are marked like this.
Line 12: Line 12:
Juno is intended as a hardware as well as software development platform and thus has way more knobs than you need, and a convoluted boot procedure. This page just gives you the minimum info needed to install Debian.

== Hardware ==

There are three Juno hardware variants: r0, r1, r2.

r0 does not have working PCI so can only be used with a USB drive and the front Ethernet socket. PCI works on r1 and r2 - just the CPU differs. Essentially 'everything' works on that hardware. So it is important to know if you have an r0 or not when installing.

{{{cat /proc/device-tree/model}}} will tell you 'r0', 'r1' or 'r2'.

== Status ==


Installing with stretch-DI-alpha8 fails because the kernel just hangs early in the boot.

Instaling with Jessie works, but by default there is no console output so you have to edit the command line, as described below.

== Installation ==

=== Preparation ===

You need:
 * Serial connection to juno. Use upper of two serial ports (actual 9-pin serial!) on the back. (So normally via a USB-serial adaptor appearing as /dev/ttyUSB0. Connect at 115200: e.g. {{{screen /dev/ttyUSB0 115200}}})

 * UEFI installed on the Juno for it to boot Debian-installer.

Refer to above 'Using Linaro's deliverables on Juno' doc if your juno has something else installed (Android, OpenEmbedded), or if the UEFI it has is too old to work well. These instructions were tested with the linaro 16.10 juno firmware/UEFI release, and updating is actually very easy, so is worth doing anyway if you have any dificulties.

Good documentation on updating juno firmware to install UEFI is here: https://community.arm.com/docs/DOC-10804

/!\ Note that those instructions do not get you a DTB - zero-byte files are installed. Your machine will not boot linux without a suitable DTB. Follow the instructions in https://community.arm.com/docs/DOC-11527#jive_content_id_12_Update_the_Device_Tree_files to get ([[http://httpredir.debian.org/debian/dists/testing/main/installer-arm64/current/images/device-tree/arm/|juno*.dtb]]) and install them in your firmware image.

The recommended install is from USB stick (and is described below), but installing from CDROM or over the network should also be possible (not tested).

== Juno r0/r1/r2 variations ==

Because of the broken PCI on Juno r0 you need to take care to use the right physical ethernet socket and type of storage.

=== Ethernet ===

 There are 3 sockets on the board. One is connected only to the baseboard and is of little interest to us.

 * If you have an r1 or r2 machine, plug your ethernet cable into the _rear panel_ socket closest to the reset buttons (this is on the PCI bus).

 * If you have an r0 machine, plug your ethernet cable into the _front panel_ socket. This does _not_ use PCI, and uses the smc911 module, which is enabled in the Jessie installer so should 'just work'.

=== Storage ===

On r1 and r2 you can use a SATA drive (recommended for speed, but the drive has no place to live in the box so just hangs about) or USB storage (much slower).

On r0 you need to use USB-based bulk storage. Either flash or an external drive.

== Installing Stretch ==

Prepare your USB stick with:
{{{
wget http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/arm64/iso-cd/debian-testing-arm64-netinst.iso
}}}
use {{{lsblk}}} or {{{dmesg}}} to find out what device your USB stick is. Lets say it's /dev/sdd (ignore partitions - we are copying this to the bare device - the file format contains partitioning info. Your USB stick needs to be at least 400MB for netinst image, at least 700MB for standard image.)

{{{
sudo dd if=debian-testing-arm64-netinst.iso of=/dev/sdd bs=4M oflag=sync status=noxfer
}}}
(The sync bit means that everything is written as soon as the command returns, so you don't need to wait before yanking the stick)

 * Put the USB stick in the back of machine (where the reset buttons are). The front panel USB ports don't work (and are not fitted on all hardware).

 * Power up juno. (The white button does a power cycle)

If everything is just right it will find the efi partition and boot into the installer. This didn't work for me. You may, like me, end up at the UEFI prompt:
{{{
Shell >
}}}

The console should be showing a list of filesystems:
{{{
UEFI Interactive Shell v2.1
EDK II
UEFI v2.60 (EDK II, 0x00010000)
Mapping table
      FS3: Alias(s):F4:;BLK3:
          VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)
      FS1: Alias(s):F1:
          MemoryMapped(0xB,0xE0000000,0xE00EFFFF)
      FS0: Alias(s):F0:
          Fv(B73FE497-B92E-416E-8326-45AD0D270092)
      FS2: Alias(s):CD2a0a0a:;BLK1:
          PciRoot(0x1)/Pci(0x1,0x0)/USB(0x0,0x0)/USB(0x0,0x0)/CDROM(0x0)
     BLK2: Alias(s):
          VenHw(02118005-9DA7-443A-92D5-781F022AEDBB)
     BLK0: Alias(s):
          PciRoot(0x1)/Pci(0x1,0x0)/USB(0x0,0x0)/USB(0x0,0x0)
}}}
Look for 'USB' and 'CDROM'. So in this case FS2 is probably our debian-installer USB stick.

{{{
Shell> FS2:
FS2:\> dir
}}}
If you see 'efi' then you are in the right place
{{{
FS2:\> cd efi
FS2:\efi\> cd boot
FS2:\efi\boot\> bootaa64.efi
}}}
(You have tab-completion, and can actually type efi\<TAB>\<TAB><RETURN> to run it)
This will run Grub and show you the installer menu.

Select 'Install' and hit <RETURN>

The kernel should boot and drop you into the installer. If you see nothing but a couple of lines of output check that you have a DTB file available (see 'Preparation' above).

Also check the 'Ethernet' section above for correctly connecting the cable according to model.

== Installing jessie ==

Prepare your USB stick with:
{{{
wget http://cdimage.debian.org/debian-cd/8.6.0/arm64/iso-cd/debian-8.6.0-arm64-netinst.iso
}}}
use {{{lsblk}}} or {{{dmesg}}} to find out what device your USB stick is. Lets say it's /dev/sdd (ignore partitions - we are copying this to the bare device - the file format contains partitioning info. Your USB stick needs to be at least 400MB for netinst image, at least 700MB for standard image.)

{{{
sudo dd if=debian-8.6.0-arm64-netinst.iso of=/dev/sdd bs=4M oflag=sync status=noxfer
}}}
(The sync bit means that everything is written as soon as the command returns, so you don't need to wait before yanking the stick)

 * Put the USB stick in the back of machine (where the reset buttons are). The front panel USB ports don't work (and are not fitted on all hardware).

 * Power up juno.

If everything is just right it will find the efi partition and boot into the installer. This didn't work for me. You may, like me, end up at the UEFI prompt:
{{{
Shell >
}}}

The console should be showing a list of filesystems:
{{{
UEFI Interactive Shell v2.1
EDK II
UEFI v2.60 (EDK II, 0x00010000)
Mapping table
      FS3: Alias(s):F4:;BLK3:
          VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)
      FS1: Alias(s):F1:
          MemoryMapped(0xB,0xE0000000,0xE00EFFFF)
      FS0: Alias(s):F0:
          Fv(B73FE497-B92E-416E-8326-45AD0D270092)
      FS2: Alias(s):CD2a0a0a:;BLK1:
          PciRoot(0x1)/Pci(0x1,0x0)/USB(0x0,0x0)/USB(0x0,0x0)/CDROM(0x0)
     BLK2: Alias(s):
          VenHw(02118005-9DA7-443A-92D5-781F022AEDBB)
     BLK0: Alias(s):
          PciRoot(0x1)/Pci(0x1,0x0)/USB(0x0,0x0)/USB(0x0,0x0)
}}}
Look for 'USB' and 'CDROM'. So in this case FS2 is probably our debian-installer USB stick.

{{{
Shell> FS2:
FS2:\> dir
}}}
If you see 'efi' then you are in the right place
{{{
FS2:\> cd efi
FS2:\efi\> cd boot
FS2:\efi\boot\> bootaa64.efi
}}}
(You have tab-completion, and can actually type efi\boot\<TAB><RETURN> to run it)
This will run Grub and show you the installer menu.

However, you won't see console output after the first few lines unless you change the console setting:

With the 'Install' option selected hit 'e' to edit:
Change the linux line from:
/linux install.a64/vmlinuz --- quiet
to:
linux /install.a64/vmlinuz --- console=ttyAMA0,115200

Hit <ctrl>-x to boot using that option.

Select 'Install' and hit return

The kernel should boot and drop you into the installer. If you see nothing but a couple of lines of output check that you have a DTB file available (see 'Preparation' above).

Also check the 'Ethernet' section above for correctly connecting the cable according to model.


---
Line 17: Line 206:
~- Sub-models ('''LIST OF MODEL REFERENCE NUMBER''') options :<<BR>> - Video card (Intel or ATI radeon or ATI FireGL) '''(adapt this list to actually match __options__ available. Common features are listed below)''' <<BR>> - Screen size (14", 15", or 15" ''wide'')<<BR>> - Wireless card<<BR>> - Disk and Ram size, optical device <<BR>> - Other options, like fingerprint reader, bluetooth... -~ ~- Sub-models ('''r0''') options :<<BR>>
- Video '''
Mali''' <<BR>>
- Screen size (14", 15", or 15" ''wide'')<<BR>>
- Wireless card<<BR>>
- Disk and Ram size, optical device <<BR>>
- Other options, like fingerprint reader, bluetooth... -~

Translation(s): none

Juno is intended as a hardware as well as software development platform and thus has way more knobs than you need, and a convoluted boot procedure. This page just gives you the minimum info needed to install Debian.

Hardware

There are three Juno hardware variants: r0, r1, r2.

r0 does not have working PCI so can only be used with a USB drive and the front Ethernet socket. PCI works on r1 and r2 - just the CPU differs. Essentially 'everything' works on that hardware. So it is important to know if you have an r0 or not when installing.

cat /proc/device-tree/model will tell you 'r0', 'r1' or 'r2'.

Status

Installing with stretch-DI-alpha8 fails because the kernel just hangs early in the boot.

Instaling with Jessie works, but by default there is no console output so you have to edit the command line, as described below.

Installation

Preparation

You need:

  • Serial connection to juno. Use upper of two serial ports (actual 9-pin serial!) on the back. (So normally via a USB-serial adaptor appearing as /dev/ttyUSB0. Connect at 115200: e.g. screen /dev/ttyUSB0 115200)

  • UEFI installed on the Juno for it to boot Debian-installer.

Refer to above 'Using Linaro's deliverables on Juno' doc if your juno has something else installed (Android, ?OpenEmbedded), or if the UEFI it has is too old to work well. These instructions were tested with the linaro 16.10 juno firmware/UEFI release, and updating is actually very easy, so is worth doing anyway if you have any dificulties.

Good documentation on updating juno firmware to install UEFI is here: https://community.arm.com/docs/DOC-10804

/!\ Note that those instructions do not get you a DTB - zero-byte files are installed. Your machine will not boot linux without a suitable DTB. Follow the instructions in https://community.arm.com/docs/DOC-11527#jive_content_id_12_Update_the_Device_Tree_files to get (juno*.dtb) and install them in your firmware image.

The recommended install is from USB stick (and is described below), but installing from CDROM or over the network should also be possible (not tested).

Juno r0/r1/r2 variations

Because of the broken PCI on Juno r0 you need to take care to use the right physical ethernet socket and type of storage.

Ethernet

  • There are 3 sockets on the board. One is connected only to the baseboard and is of little interest to us.
  • If you have an r1 or r2 machine, plug your ethernet cable into the _rear panel_ socket closest to the reset buttons (this is on the PCI bus).
  • If you have an r0 machine, plug your ethernet cable into the _front panel_ socket. This does _not_ use PCI, and uses the smc911 module, which is enabled in the Jessie installer so should 'just work'.

Storage

On r1 and r2 you can use a SATA drive (recommended for speed, but the drive has no place to live in the box so just hangs about) or USB storage (much slower).

On r0 you need to use USB-based bulk storage. Either flash or an external drive.

Installing Stretch

Prepare your USB stick with:

wget http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/arm64/iso-cd/debian-testing-arm64-netinst.iso

use lsblk or dmesg to find out what device your USB stick is. Lets say it's /dev/sdd (ignore partitions - we are copying this to the bare device - the file format contains partitioning info. Your USB stick needs to be at least 400MB for netinst image, at least 700MB for standard image.)

sudo dd if=debian-testing-arm64-netinst.iso of=/dev/sdd bs=4M oflag=sync status=noxfer

(The sync bit means that everything is written as soon as the command returns, so you don't need to wait before yanking the stick)

  • Put the USB stick in the back of machine (where the reset buttons are). The front panel USB ports don't work (and are not fitted on all hardware).
  • Power up juno. (The white button does a power cycle)

If everything is just right it will find the efi partition and boot into the installer. This didn't work for me. You may, like me, end up at the UEFI prompt:

Shell >

The console should be showing a list of filesystems:

UEFI Interactive Shell v2.1
EDK II
UEFI v2.60 (EDK II, 0x00010000)
Mapping table
      FS3: Alias(s):F4:;BLK3:
          VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)
      FS1: Alias(s):F1:
          MemoryMapped(0xB,0xE0000000,0xE00EFFFF)
      FS0: Alias(s):F0:
          Fv(B73FE497-B92E-416E-8326-45AD0D270092)
      FS2: Alias(s):CD2a0a0a:;BLK1:
          PciRoot(0x1)/Pci(0x1,0x0)/USB(0x0,0x0)/USB(0x0,0x0)/CDROM(0x0)
     BLK2: Alias(s):
          VenHw(02118005-9DA7-443A-92D5-781F022AEDBB)
     BLK0: Alias(s):
          PciRoot(0x1)/Pci(0x1,0x0)/USB(0x0,0x0)/USB(0x0,0x0)

Look for 'USB' and 'CDROM'. So in this case FS2 is probably our debian-installer USB stick.

Shell> FS2:
FS2:\> dir

If you see 'efi' then you are in the right place

FS2:\> cd efi
FS2:\efi\> cd boot
FS2:\efi\boot\> bootaa64.efi

(You have tab-completion, and can actually type efi\<TAB>\<TAB><RETURN> to run it) This will run Grub and show you the installer menu.

Select 'Install' and hit <RETURN>

The kernel should boot and drop you into the installer. If you see nothing but a couple of lines of output check that you have a DTB file available (see 'Preparation' above).

Also check the 'Ethernet' section above for correctly connecting the cable according to model.

Installing jessie

Prepare your USB stick with:

wget http://cdimage.debian.org/debian-cd/8.6.0/arm64/iso-cd/debian-8.6.0-arm64-netinst.iso

use lsblk or dmesg to find out what device your USB stick is. Lets say it's /dev/sdd (ignore partitions - we are copying this to the bare device - the file format contains partitioning info. Your USB stick needs to be at least 400MB for netinst image, at least 700MB for standard image.)

sudo dd if=debian-8.6.0-arm64-netinst.iso of=/dev/sdd bs=4M oflag=sync status=noxfer

(The sync bit means that everything is written as soon as the command returns, so you don't need to wait before yanking the stick)

  • Put the USB stick in the back of machine (where the reset buttons are). The front panel USB ports don't work (and are not fitted on all hardware).
  • Power up juno.

If everything is just right it will find the efi partition and boot into the installer. This didn't work for me. You may, like me, end up at the UEFI prompt:

Shell >

The console should be showing a list of filesystems:

UEFI Interactive Shell v2.1
EDK II
UEFI v2.60 (EDK II, 0x00010000)
Mapping table
      FS3: Alias(s):F4:;BLK3:
          VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)
      FS1: Alias(s):F1:
          MemoryMapped(0xB,0xE0000000,0xE00EFFFF)
      FS0: Alias(s):F0:
          Fv(B73FE497-B92E-416E-8326-45AD0D270092)
      FS2: Alias(s):CD2a0a0a:;BLK1:
          PciRoot(0x1)/Pci(0x1,0x0)/USB(0x0,0x0)/USB(0x0,0x0)/CDROM(0x0)
     BLK2: Alias(s):
          VenHw(02118005-9DA7-443A-92D5-781F022AEDBB)
     BLK0: Alias(s):
          PciRoot(0x1)/Pci(0x1,0x0)/USB(0x0,0x0)/USB(0x0,0x0)

Look for 'USB' and 'CDROM'. So in this case FS2 is probably our debian-installer USB stick.

Shell> FS2:
FS2:\> dir

If you see 'efi' then you are in the right place

FS2:\> cd efi
FS2:\efi\> cd boot
FS2:\efi\boot\> bootaa64.efi

(You have tab-completion, and can actually type efi\boot\<TAB><RETURN> to run it) This will run Grub and show you the installer menu.

However, you won't see console output after the first few lines unless you change the console setting:

With the 'Install' option selected hit 'e' to edit: Change the linux line from: /linux install.a64/vmlinuz --- quiet to: linux /install.a64/vmlinuz --- console=ttyAMA0,115200

Hit <ctrl>-x to boot using that option.

Select 'Install' and hit return

The kernel should boot and drop you into the installer. If you see nothing but a couple of lines of output check that you have a DTB file available (see 'Preparation' above).

Also check the 'Ethernet' section above for correctly connecting the cable according to model.

---

DebianOn is an effort to document how to install, configure and use Debian on some specific hardware. Therefore potential buyers would know if that hardware is supported and owners would know how get the best out of that hardware.

The purpose is not to duplicate the Debian Official Documentation, but to document how to install Debian on some specific hardware.

If you need help to get Debian running on your hardware, please have a look at our user support channels where you may find specific channels (mailing list, IRC channel) dedicated to certain types of hardware.

Models covered
Juno Development Board

Sub-models (r0) options :
- Video Mali

  • - Screen size (14", 15", or 15" wide)
    - Wireless card
    - Disk and Ram size, optical device
    - Other options, like fingerprint reader, bluetooth...

Overall Status

Core Components

[ATTACH]

Boot Standard Kernel:

[?]

LAN network card:

[?]

Detect CD/DVD:

[?]

Detect hard drives:

[?]

Extra Features

CPU Frequency Scaling

[?]

Hibernation

[?]

Sleep / Suspend

[?]

Xorg

[?]

- OpenGL

[?]

- Resize-and-Rotate(randr)

[?]

Switch to External Screen

[?]

Mouse

- Built-in (Trackpoint)

[?]

- Built-in (Touchpad)

[?]

Modem

[?]

Wireless/Wifi

[?]

Keyboard's Hotkeys

[?]

Legend :
{OK} = OK ; {X} Unsupported(No Driver) ; /!\ = Error (Couldn't get it working); [?] Unknown, Not Test ; [-] Not-applicable
{i} = Configuration Required; X-( = Only works with a non-free driver and or firmware

Important Note

Configuration

Display

  • (not covered yet)

Audio

  • (not covered yet)

Mouse

  • (not covered yet)

Power Management

  • (not covered yet)

WiFi

  • (not covered yet)

Modem

  • (not covered yet)


System Summary

lspci

lsusb

lsusb -v | grep -E '\<(Bus|iProduct|bDeviceClass|bDeviceProtocol)' 2>/dev/null

USB Host controllers entries (without OHCI, UHCI, EHCI) are removed too.

Resources

Attachments

Some configuration files and sample outputs.

Credits