Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For a list of desktop environment packages, see the table below.

Desktop Environment Name

Package Name

Notes

Mate (from ubuntu-mate remix distribution)

ubuntu-mate-desktop

Tested and works. May take a long time to install depending on the speed of your SD card.

Unity (traditional Ubuntu desktop environment)

ubuntu-unity-desktop

KDE (from kubuntu remix distribution)

kubuntu-desktop

Xfce (from xubuntu remix distribution)

xubuntu-desktop

Tested and works.

LXDE (from lubuntu remix distribution)

lubuntu-desktop

Tested and works.

Cinnamon (from ubuntu-cinnamon remix distribution)

cinnamon-desktop-environment

Info

NOTE: The default Ubuntu display manager is gdm. Some desktop environments require the lightdm display manager. You may need to switch the default display manager when switching desktop environments

...

Note

For general usage, Xilinx does not recommend lowering the CMA below 256MB

Updating the Board-Level Metadata EEPROM

Xilinx evaluation boards have metadata about the board stored in an I2C EEPROM soldered to the board. Among this data is the serial number of the board, name of the board (eg, ZCU102), board revision, and Ethernet MAC address.
Xilinx declares how & where this information is stored in the device tree DTS file for the ZCU102 here: https://raw.githubusercontent.com/Xilinx/u-boot-xlnx/master/arch/arm/dts/zynqmp-zcu102-rev1.0.dts

Code Block
&eeprom {
	#address-cells = <1>;
	#size-cells = <1>;

	board_sn: board-sn@0 {
		reg = <0x0 0x14>;
	};

	eth_mac: eth-mac@20 {
		reg = <0x20 0x6>;
	};

	board_name: board-name@d0 {
		reg = <0xd0 0x6>;
	};

	board_revision: board-revision@e0 {
		reg = <0xe0 0x3>;
	};
};

For some boards (especially boards early in the production run), this data may be incomplete. To check this data on your board, stop the boot process during the U-Boot startup phase by pressing CTRL-C when you see the following messages on the USB UART terminal:

Code Block
U-Boot 2020.01 (Jun 15 2021 - 14:24:32 +0000)

Model: ZynqMP ZCU102 Rev1.0
Board: Xilinx ZynqMP

This will stop the boot process at the U-Boot terminal. U-Boot provides and I2C interface which can read and write data from the meta-data EEPROM. Xilinx has populate the ZCU10x evaluation boards with multiple I2C devices, each attached to the output of an I2C mux. To get the topology of the I2C chain use the following command:

Code Block
ZynqMP> i2c bus
Bus 0:  i2c@ff020000
   20: gpio@20, offset len 1, flags 0
   21: gpio@21, offset len 1, flags 0
   75: i2c-mux@75, offset len 1, flags 0
Bus 2:  i2c@ff020000->i2c-mux@75->i2c@0
Bus 3:  i2c@ff020000->i2c-mux@75->i2c@1
Bus 4:  i2c@ff020000->i2c-mux@75->i2c@2
Bus 1:  i2c@ff030000  (active 1)
   74: i2c-mux@74, offset len 1, flags 0
   75: i2c-mux@75, offset len 1, flags 0
Bus 5:  i2c@ff030000->i2c-mux@74->i2c@0  (active 5)
   54: eeprom@54, offset len 1, flags 0
Bus 6:  i2c@ff030000->i2c-mux@74->i2c@1
Bus 7:  i2c@ff030000->i2c-mux@74->i2c@2
Bus 8:  i2c@ff030000->i2c-mux@74->i2c@3
Bus 9:  i2c@ff030000->i2c-mux@74->i2c@4
Bus 10: i2c@ff030000->i2c-mux@75->i2c@0
Bus 11: i2c@ff030000->i2c-mux@75->i2c@1
Bus 12: i2c@ff030000->i2c-mux@75->i2c@2
Bus 13: i2c@ff030000->i2c-mux@75->i2c@3
Bus 14: i2c@ff030000->i2c-mux@75->i2c@4
Bus 15: i2c@ff030000->i2c-mux@75->i2c@5
Bus 16: i2c@ff030000->i2c-mux@75->i2c@6
Bus 17: i2c@ff030000->i2c-mux@75->i2c@7

The device of interest is on Bus 5, at address 54. First, switch to Bus 5 with the command:

Code Block
ZynqMP> i2c dev 5
Setting bus to 5

Next, check the contents of the EEPROM at the addresses shown in DTS file:

Code Block
ZynqMP> i2c md 0x54 0x20 8
0020: 00 00 00 00 00 00 00 00    ........
ZynqMP> i2c md 0x54 0xd0 8
00d0: 5a 43 55 31 30 32 ff ff    ZCU102..
ZynqMP> i2c md 0x54 0xe0 8
00e0: 31 2e 31 ff ff ff ff ff    1.1.....
ZynqMP> i2c md 0x54 0x0 14
0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ...............
0010: 00 00 00 00    ....

Most of the data is informational only, but two pieces are critical:

  1. Board Name (address 0xd0)

  2. MAC address (address 0x20)

If the board name field is not correct, the Certified Ubuntu on Xilinx Devices image will not boot properly. The Certified Ubuntu release uses this data during its initial boot phase (the ImgSel tool) documented by Xilinx here: Booting Certified Ubuntu 20.04 LTS for Xilinx Devices . The ImgSel tool reads the board name and then uses this information to boot the correct BOOT.BIN file.

The MAC address field is probed during boot. If it is found populated with a valid set of values, it will use this data for the remainder of the boot process. If it doesn't, it will randomly create a MAC address which will change from boot to boot.

To fix the data, use the U-Boot I2C commands to write data back to EEPROM. For example, to fix the MAC address, use a sequence of commands to write the MAC address octet values:

Code Block
ZynqMP> i2c mw 0x54 0x20 0x00 1
ZynqMP> i2c mw 0x54 0x21 0x0a 1
ZynqMP> i2c mw 0x54 0x22 0x35 1
...

The above example is intentionally incomplete. The valid addresses for a MAC address are from 0x20 through 0x25. Repeat the i2c mw commands to write all of the octets. To read them back, simply use the i2c md command sequence shown above. Once you have updated the MAC address and verified it, you can reboot the board with:

Code Block
ZynqMP> reset

This time just let the boot process proceed like normal. Once Ubuntu starts, you can verify the MAC address at the terminal with the following command:

Code Block
ubuntu@zynqmp:~$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
3: can0: <NOARP,ECHO> mtu 16 qdisc noop state DOWN mode DEFAULT group default qlen 10
    link/can
4: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
    link/ether [REDACTED] brd ff:ff:ff:ff:ff:ff

You should see the MAC address value set in U-Boot. In the data shown above, the actual MAC address is [REDACTED].

The same basic process can be used to update the Board Name, Board Serial Number, or Board Version fields. Keep in mind that when writing the values for the Board Name, Board Version Number, and Board Serial Number to use the ASCII values in hexadecimal. The MAC address is written in native hexadecimal values.

Ubuntu Internal Error Messages

...

Many types of scenarios can generate Apport errors and not all of them indicate an actual problem in the system. If you wish, you can click the boxes Remember this in future and Ignore future problems of this type to prevent these general types of warnings from being generated. Please be sure to check the details of the error messages before suppressing them.

...