Rockpro64 and stock arch linux
#1
I've gotten the stock rootfs running on the Rockpro64 SBC, using steps from a variety of sources. If desired, I'll try to hunt down the locations. Steps below:

Section 1 - Making a Good SPL

0. Perform these steps from a functional image, on the board, such as Armbian
    -note: may need to "apt-get install gcc-arm-none-eabi binutils-arm-none-eabi"

1. Get u-boot, cd into the folder
    #git clone https://gitlab.denx.de/u-boot/u-boot.git
    #cd u-boot
    #make clean

2. Get, make the Trusted code, copy it into the u-boot folder
    #git clone https://github.com/ARM-software/arm-trus...rmware.git atf
    #make -C atf PLAT=rk3399 bl31
    #cp bl31.elf ../

3. Make u-boot
    #make rockpro64-rk3399_defconfig
    #make ARCH=arm -j7


4. Write loaders to disk, or copy them to storage for Section 2
    #tools/mkimage -n rk3399 -T rksd -d tpl/u-boot-tpl-dtb.bin tpl-spl.img
    #cat spl/u-boot-spl-dtb.bin >> tpl-spl.img
    #dd if=tpl-spl.img of=/dev/mmcblkN seek=64 conv=fsync
    #dd if=u-boot.itb of=/dev/mmcblkN seek=16384 conv=fsync

Section 2 - Install Arch

0. This must be performed from a different computer, make sure uboot-tools is installed

1. Zero the beginning of the SD card:

    #dd if=/dev/zero of=/dev/sdX bs=1M count=32

2. Start fdisk to partition the SD card:

    #fdisk /dev/sdX

3. At the fdisk prompt, create the new partition:

    Type o. This will clear out any partitions on the drive.
    Type n, then p for primary, 1 for the first partition on the drive, 32768 for the first sector, and then +4G
    -this creates a 4G partition
    Write the partition table and exit by typing w.

4 . Create the ext4 filesystem:

    #mkfs.ext4 /dev/sdX1

5. Mount the filesystem:

    #mkdir something
    #mount /dev/sdX1 something

5. Download and extract the root filesystem (as root, not via sudo):

    #wget http://os.archlinuxarm.org/os/ArchLinuxA...est.tar.gz
    #tar -xpf ArchLinuxARM-aarch64-latest.tar.gz -C something

6. Use this as boot.txt, place in something/boot/
    
 
Code:
   # MAC address (use spaces instead of colons)
    setenv macaddr da 19 c8 7a 6d f4
    
    part uuid ${devtype} ${devnum}:${bootpart} uuid
    setenv bootargs console=ttyS2,1500000 root=PARTUUID=${uuid} rw rootwait
    setenv fdtfile rockchip/rk3399-rockpro64.dtb
    
    if load ${devtype} ${devnum}:${bootpart} ${kernel_addr_r} /boot/Image; then
      if load ${devtype} ${devnum}:${bootpart} ${fdt_addr_r} /boot/dtbs/${fdtfile}; then
        fdt addr ${fdt_addr_r}
        fdt resize
        fdt set /[email protected] local-mac-address "[${macaddr}]"
        if load ${devtype} ${devnum}:${bootpart} ${ramdisk_addr_r} /boot/initramfs-linux.img; then
          # This upstream Uboot doesn't support compresses cpio initrd, use kernel option to
          # load initramfs
          setenv bootargs ${bootargs} initrd=${ramdisk_addr_r},20M ramdisk_size=10M
        fi;
        booti ${kernel_addr_r} - ${fdt_addr_r};
      fi;
    fi

7. in the something/boot/ directory, generate boot.scr from the boot.txt

    #mkimage -A arm -O linux -T script -C none -n "U-Boot boot script" -d boot.txt boot.scr

8. Unmount the partition

    #umount something

9. Write the bootloader to the sd card

    #dd if=tpl-spl.img of=/dev/sdX seek=64 conv=fsync
    #dd if=u-boot.itb of=/dev/sdX seek=16384 conv=fsync

10. Insert SD, apply voltage

11. Initialize the pacman keyring and populate the Arch Linux ARM package signing keys:

    #pacman-key --init
    #pacman-key --populate archlinuxarm

12. Update

    #pacman -Syu
    #pacman -S uboot-tools

Further Notes: hdmi may be kinda weird from the supplied boot.txt, depending on the monitor used.
  Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  Linux Build Help: Stuck at "Starting kernel ..." ihamilton 2 98 10-10-2019, 12:51 PM
Last Post: ihamilton
  DLNA and/or Plex problem with RockPro64 aldrick 7 150 10-05-2019, 08:29 AM
Last Post: aldrick
  Void Linux WIP losinggeneration 0 59 10-04-2019, 03:23 AM
Last Post: losinggeneration
  Arch Linux on RockPro64 mmatyas 27 8,371 09-28-2019, 04:30 AM
Last Post: TaborFife
  Linux distro that will work with Kodi? SBCraok 9 212 09-18-2019, 02:12 AM
Last Post: mtrcycllvr
  RockPro64 - Armbian no sound from jack Pineapple 0 110 09-16-2019, 08:27 AM
Last Post: Pineapple
  PCIe ath10k on RockPro64 dasfranky 5 171 08-31-2019, 11:36 AM
Last Post: tuxd3v
  RockPro64 Official Kernel Support ASIC 23 3,611 08-29-2019, 05:39 PM
Last Post: tuxd3v
  DietPi for the RockPro64 Luke 12 3,971 08-29-2019, 04:07 AM
Last Post: hexxx
  rockpro64 and wayland - missing files Mentaluproar 1 116 08-14-2019, 07:51 PM
Last Post: hmuller

Forum Jump:


Users browsing this thread: 1 Guest(s)