The graphical installer is not enabled on the arm64 debian-installer
images for jessie so the serial console is used. The console device should be detected automatically from the firmware, but if it is not then after you boot linux from the GRUB menu you will see a 'Booting Linux' message then nothing more.
If you hit this issue you will need to set a specific console config on the kernel command line. Hit e
for 'Edit Kernel command-line' at the GRUB menu, and change
--- quiet
to
console=<device>,<speed>
e.g.
console=ttyAMA0,115200n8
When finished hit Control+x to continue booting with new setting.
Juno has UEFI so the install is straightforward. The most practical method is installing from USB stick. You need up to date firmware for USB-booting to work. Builds from http://releases.linaro.org/latest/members/arm/ after March 2015 tested OK. Consult Juno documentation on firmware updating.
Prepare a standard arm64 CD image on a USB stick. Insert it in one of the USB ports on the back. Plug a serial cable into the upper 9-pin serial port on the back. If you need networking (netboot image) plug the ethernet cable into the socket on the front of the machine.
Run a serial console at 115200, 8bit no parity, and boot the Juno. It should boot from the USB stick to a GRUB menu. The console config is not correctly detected on Juno so just hitting return will show no kernel output. Set the console to
console=ttyAMA0,115200n8
as described in (5.1.1절. “Console configuration”). Control+x to boot should show you the debian-installer
screens, and allow you to proceed with a standard installation.
UEFI is available for this machine but it is normally shipped with U-Boot so you will need to either install UEFI firmware first then use standard boot/install methods, or use U-Boot boot methods. Also USB is not supported in the jessie kernel so installing from a USB stick does not work. You must use a serial console to control the installation because the graphical installer is not enabled on the arm64 architecture.
The recommended install method is to copy the debian-installer
kernel and initrd onto the hard drive, using the openembedded system supplied with the machine, then boot from that to run the installer. Alternatively use TFTP to get the kernel/dtb/initrd copied over and booted (5.1.4.1절. “U-Boot에서 TFTP 부팅”). After installation, manual changes to boot from the installed image are needed.
Run a serial console at 115200, 8bit no parity, and boot the machine. Reboot the machine and when you see "Hit any key to stop autoboot:" hit a key to get a Mustang# prompt. Then use U-Boot commands to load and boot the kernel, dtb and initrd.
네트워크에서 부팅하려면, 네트워크에 연결되어 있어야 하고 TFTP 네트워크 부팅 서버가(그리고 네트워크 자동 설정에 필요한 DHCP, RARP 혹은 BOOTP 서버가) 필요합니다.
서버 쪽에서 네트워크 부팅을 설정하는 방법은 4.3절. “TFTP 네트워크 부팅에 필요한 파일 준비하기”에 설명되어 있습니다.
U-Boot 펌웨어를 사용하는 시스템에서 네트워크 부팅은 3가지 단계로 이루어져 있습니다: (1) 네트워크 설정, (2) 이미지(커널/최초 램디스크/DTB) 메모리에 읽어들이기, (3) 읽어들인 코드 실행.
먼저 네트워크를 설정해야 합니다. 다음을 실행해 DHCP로 자동 설정할 수 있습니다:
setenv autoload no dhcp
아니면 수동으로 환경 변수를 설정할 수 있습니다:
setenv ipaddr <클라이언트의 IP 주소> setenv netmask <네트마스크> setenv serverip <TFTP 서버의 IP 주소> setenv dnsip <네임서버의 IP 주소> setenv gatewayip <기본 게이트웨이의 IP 주소>
위 설정을 저장하고 싶으면 다음과 같이 합니다:
saveenv
그 다음에 이미지(커널/최초 램디스크/DTB)를 메모리에 읽어들여야 합니다. TFTP 명령에 메모리를 읽어들일 위치의 주소를 써야 합니다. 하지만 메모리 배치가 시스템마다 다르기 때문에 어떤 주소를 사용해야 하는지는 일반적인 규칙은 없습니다.
일부 시스템에서는, U-Boot에 적합한 로딩 주소가 환경 변수로 미리 정의되어 있습니다: kernel_addr_r, ramdisk_addr_r 및 fdt_addr_r. 이 환경 변수가 정의되어 있는지 여부를 다음 명령으로 확인해 볼 수 있습니다
printenv kernel_addr_r ramdisk_addr_r fdt_addr_r
이 값이 정의되어 있지 않으면, 시스템의 문서에서 적절한 값을 확인해 보고 직접 값으 지정해야 합니다. 예를 들어 Allwinner SunXi SOC 기반 시스템(예: Allwinner A10, 아키텍쳐 이름 “sun4i” 또는 Allwinner A20, 아키텍쳐 이름 “sun7i”)의 경우, 다음 값을 사용합니다.
setenv kernel_addr_r 0x46000000 setenv fdt_addr_r 0x47000000 setenv ramdisk_addr_r 0x48000000
로딩 주소를 지정하면, 다음과 같이 앞에서 지정한 TFTP 서버에서 이미지를 메모리에 읽어들일 수 있습니다:
tftpboot ${kernel_addr_r} <커널 이미지 파일 이름> tftpboot ${fdt_addr_r} <DTB 파일 이름> tftpboot ${ramdisk_addr_r} <최초 램디스크 이미지 파일 이름>
3번째는 커널 커맨드라인을 설정하고 읽어들인 코드를 실행하는 부분입니다. u-boot는 “bootargs” 환경 변수의 내용을 커널의 커맨드라인으로 넘깁니다. 그러므로 커널 및 설치 프로그램의 파라미터는(콘솔 장치(5.3.1절. “부팅 콘솔” 참고) 또는 미리 설정 옵션(5.3.2절. “데비안 설치프로그램 파라미터” 및 부록 B. 미리 설정을 이용한 설치 자동화 참고)) 다음과 같은 명령으로 설정할 수 있습니다:
setenv bootargs console=ttyS0,115200 rootwait panic=10
읽어들인 코드를 실행하는 정확한 명령은 이미지 형식에 따라 다릅니다. uImage/uInitrd의 경우 명령어는 다음과 같고,
bootm ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
네이티브 리눅스 이미지의 경우 다음과 같습니다:
bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}
표준 리눅스 이미지로 부팅할 때, 커널과 DTB를 읽어들이고 다음에 최초 램디스크 이미지를 읽어들이는 게 중요합니다. U-Boot에서는 파일 크기 변수를 마지막에 읽어들인 파일의 크기로 설정하고, bootz 명령이 제대로 동작하려면 램디스크 이미지의 크기가 필요하기 떄문입니다. 플랫폼 전용 커널로 부팅하는 경우(예를 들어 디바이스 트리 없는 커널)에는 ${fdt_addr_r} 파라미터를 생략하면 됩니다.