...
Use the following commands for writing the image to an SD card:
Code Block | ||||
---|---|---|---|---|
| ||||
xz -dc lx2160a_....img.xz | dd of=/dev/sdX bs=4M conv=fsync |
...
To flash to eMMC run the following commands (it will wipe your data on the eMMC device).
Code Block | ||||
---|---|---|---|---|
| ||||
load mmc 0:1 0xa4000000 ubuntu-core.img mmc dev 1 mmc write 0xa4000000 0 0xd2000 |
Alternatively flash to the same microSD card used to boot:
Code Block | ||||
---|---|---|---|---|
| ||||
load mmc 0:1 0xa4000000 ubuntu-core.img mmc dev 0 mmc write 0xa4000000 0 0xd2000 |
...
Note |
---|
Please Note: The above commands should be run only once (in the fist boot), or when a new image is to be used. |
...
Run
fdisk /dev/mmcblk1
if using SD, or run if usingfdisk /dev/mmcblk10mmcblk0
eMMC.Recreate the first partition by deleting it and then creating a new partition that starts at block 131072 and extends to the end of the drive (or less depending on your needs).
Write the new partition, when prompt about ‘Do you want to remove the signature?’ then answer with No.
Run
resize2fs /dev/mmcblk1p1
if using SD Card, or Runresize2fs /dev/mmcblk0p1
if using eMMC.In this stage the root partition should be big enough to start populating it; but first update the RTC clock.
Connect the RJ45 to your network with internet access (and DHCP server); and then run
dhclient
.Update the RTC clock by running
ntpdate pool.ntp.org
and thenhwclock -w
.Run apt-update commands below and then populate the root filesystem as you wish.
Code Block | ||||
---|---|---|---|---|
| ||||
apt-get update && apt-get upgrade -y |
...
Ports are activated using NXP’s “restool” package. For example – dpmac.9 is the SFP+ port on the upper row and left towards PCB edge –
Code Block | ||||
---|---|---|---|---|
| ||||
ls-addni dpmac.9 |
and then a new ethX ethernet interface is attached to the kernel.
...
Make sure that the kernel is booted with the following variables in the command line –
Code Block default_hugepagesz=1024m hugepagesz=1024m hugepages=2 isolcpus=1-15 iommu.passthrough=1
If using the above installation of Ubuntu then the /extlinux/extlinux.conf file should look as follows (the default installation with the addition of isolcpus=1-15 iommu.passthrough=1) –
Code Block TIMEOUT 30 DEFAULT linux MENU TITLE linux-lx2160a boot options LABEL primary MENU LABEL primary kernel LINUX /boot/Image FDT /boot/fsl-lx2160a-cex7.dtb APPEND console=ttyAMA0,115200 earlycon=pl011,mmio32,0x21c0000 default_hugepagesz=1024m hugepagesz=1024m hugepages=2 isolcpus=1-15 iommu.passthrough=1 pci=pcie_bus_perf root=PARTUUID=30303030-01 rw rootwait
From build/dpdk directory under the lx2160a_build project, search for dynamic_dpl.sh and testpmd files and copy them over to the LX2160A Ubuntu root filesystem
Run the following that will generate 10Gbps traffic on dpmac.10 using only a single core. Can be used to generate traffic on dpmac.1 and other interfaces –
Code Block | ||||
---|---|---|---|---|
| ||||
dynamic_dpl.sh dpmac.10 export DPRC=dprc.2 testpmd -c 0x3 -n 1 -- --txd=1500 --txpkts=1500 --tx-first --auto-start --forward-mode=txonly --stats-period=10 |
...
An alternative way to run testpmd in interactive mode is as follows –
Code Block | ||||
---|---|---|---|---|
| ||||
dynamic_dpl.sh dpmac.10 export DPRC=dprc.2 testpmd -c 0x3 -n 1 -- --txd=1500 -i set fwd txonly set txpkts 1500 show port info 0 show config txpkts start |
...
Gentoo is a free and open-source distribution with a rolling-release model.
The bootloader and kernel provided are recent enough to install Gentoo from the eMMC Ubuntu to the NVMe or SATA device.
Code Block | ||||
---|---|---|---|---|
| ||||
apt install btrfs-progs mkfs.btrfs /dev/nvme0n1p1 mount /dev/nvme0n1p1 /mnt cd /mnt # change 20200609 with what's available here http://distfiles.gentoo.org/experimental/arm64/ wget http://distfiles.gentoo.org/experimental/arm64/stage3-arm64-20200609.tar.bz2 mount --rbind /dev dev mount --make-rslave dev mount -t proc /proc proc mount --rbind /sys sys mount --make-rslave sys mount --rbind /tmp tmp cp /etc/resolv.conf etc chroot . /bin/bash env-update && . /etc/profile emerge-webrsync emerge superadduser openssh vim # Set the root password passwd # enable root login vim /etc/ssh/sshd_config # or create your user superadduser your_user ln -s /etc/init.d/net.{lo,eth0} rc-update add sshd default reboot |
...