LSDK document - Knowledge Center
Layerscape Software Development Kit documentation can be accessed from the Knowledge Center.
Frequently Asked Questions
- Question: When building LSDK using Docker, what should the user do if he/she encounters errors like "Temporary failure resolving 'archive.ubuntu.com'" caused by Docker DNS config?
Answer: To achieve permanent system-wide fix, the user needs to change the DNS settings of the Docker daemon. Implement the fix using the following command as an example:$ nmcli dev show | grep 'IP4.DNS'
Create a daemon configuration file in the directory /etc/docker/daemon.json like below:
IP4.DNS[1]: 10.192.130.201{
Finally, restart docker service by using the command "sudo service docker restart"
"dns": ["10.192.130.201", "8.8.8.8"]
} - Question: On some boards which support DPAA1 network ports, what should the user do if he/she can't see the desired network interface using the command "ifconfig -a" in Linux due to the lack of MAC address in E2PROM flash or in the U-Boot environment variable?
Answer: Set MAC address in the U-Boot environment variable like below:=> setenv ethaddr 00:04:9F:00:00:00
The total number of MAC addresses must be no less than the total number of all network ports on the board.
=> setenv eth1addr 00:04:9F:00:00:01
=> setenv eth2addr 00:04:9F:00:00:02
=> setenv eth3addr 00:04:9F:00:00:03
...
=> saveenv - Question: When building Ubuntu rootfs in Flexbuild, what should the user do if the user interrupted the build proceeding in the midway unexpectedly, and an error such as "/usr/aptpkg/additional_packages_list_full: No such file or directory" occurs.
Answer: Run the command, "flex-builder -i clean-distrorfs -a" to clean the old incomplete distro rootfs directory, then rebuild it again. - Question: In the environment of some host machines, what should the user do if he/she encounters an error such as "mount: failed to setup loop device: No such file or directory".
Answer: Run the command, "sudo losetup -f" to setup /dev/loop* device. - Question: Where can the user find the Software Content Register?
Answer: The SCR of LSDK can be got from https://lsdk.github.io/ -> EULA (End User License Agreement) -> SCR. - Question: How to solve the distro boot failure issue if the similiar error log as below was observed during booting LSDK Ubuntu from SD/eMMC card?
VFS: Cannot open root device "PARTUUID=c2d6227c-03" or unknown-block(179,3): error -30
Answer: Make sure the SD/eMMC card is not locked as read-only as it needs write permissions to the SD/eMMC card on bootup. - Question: LSDK_1712 U-Boot and Linux kernel Ethernet failure on LS2088ARDB. Neither U-Boot nor Linux kernel Ethernet work "out of the box" in LSDK_1712. How to resolve the issue?
Answer: The root cause is two issues:- The Management Complex is not started by U-Boot variable mcinitcmd.
- The U-Boot command "fsl_mc lazyapply dpl..." does not work.
The problems can be worked around by changing two U-Boot environment variables, saving them, and resetting as follows.
Press a key to stop U-Boot from booting Linux and get a U-Boot prompt. Then enter the following commands to U-Boot being careful to avoid line breaks.
=> setenv mcinitcmd fsl_mc start mc 0x580a00000 0x580e00000 => setenv bootcmd 'env exists secureboot && esbc_validate 0x580700000 && esbc_validate 0x580740000 && esbc_validate 0x580780000; fsl_mc apply dpl 0x580d00000;run distro_bootcmd;run nor_bootcmd;env exists secureboot && esbc_halt' => saveenv => qixis_reset
The first setenv causes U-Boot to automatically load and start the Management Complex. This enables U-Boot Ethernet.The next setenv modifies bootcmd to remove "fsl_mc start mc..." since it is already done and changes "fsl_mc lazyapply dpl..." to "fsl_mc apply dpl..." to work around the issue with lazyapply.
Note that the MC firmware and Data Path Control file are not being secure boot validated prior to enabling U-Boot networking.
Note also that the "lazyzpply" command would normally be done in mcinitcmd rendering the "apply" command in bootcmd unnecessary, but this is not possible until the issue with "lazyapply" is fixed in a later release.
UEFI boot scenarios are not affected by these U-boot issues.
- Question: When using UEFI bootloader, does device tree blob (dtb) need to be updated to boot different Linux kernels?
Answer: Yes, When UEFI is used as bootloader, dtb file (stored in NOR/QSPI etc) should be updated to boot different Linux kernel Versions.For Example, to boot Linux 4.9 or 4.14 corresponding dtb file should be used OR else some feature may not work as expected.
- Question: Why do I get the following '401 Unauthorized' error when generating LSDK Ubuntu rootfs by 'flex-builder -i mkrfs'?
Err: http://<url>/php/browser_challenge.php?vsys=1&url=http://us.ports.ubuntu.com/ubuntu-ports arm64 xx 401 Unauthorized
Answer: Generally, it is caused by incorrect HTTP proxy setting if the build machine is located in a subnet that needs a proxy to access external Internet, it can be resolved by setting HTTP proxy as below:
1. Add the following settings in ~/.bashrc as below
export http_proxy="http://<domain>\<username>:<password>@<URL>:<port>"
export https_proxy="http://<domain>\<username>:<password>@<URL>:<port>"
export no_proxy="localhost,<local-domain1><local-domain2>"
2. Add the following settings in /etc/wgetrc
http_proxy = "http://<domain>\<username>:<password>@<URL>:<port>"
https_proxy = "http://<domain>\<username>:<password>@<URL>:<port>"
3. Add the following settings in /etc/apt/apt.conf
Acquire::http::proxy "http://<domain>\<username>:<password>@<URL>:<port>"
Acquire::https::proxy "http://<domain>\<username>:<password>@<URL>:<port>" - Question: Why does LSDK distro might boot fail after re-installing it onto the same storage device which had been deployed LSDK distro before?
Answer: flex-installer will skip the formatting of system partition-4 in which LSDK had been deployed to prevent damaging user's important data by default.
You can back up the important data in this partition if necessary, then format this partition and re-install it as below:
Example:
$ sudo umount /dev/mmcblk0p4 $ sudo parted -s /dev/mmcblk0 rm 4 $ flex-installer -i auto -m <machine> -d /dev/mmcblk0