Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:arm:tqma28:linux:ptxdist:how_to [2018/05/18 14:42] – ↷ Page moved from en:arm:tqma28:linux:how_to to en:arm:tqma28:linux:ptxdist:how_to liedmann | en:arm:tqma28:linux:ptxdist:how_to [2022/08/04 15:02] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
~~NOCACHE~~ | ~~NOCACHE~~ | ||
- | <embed en: | + | <embed en: |
+ | <label product_type> | ||
<label lang> | <label lang> | ||
<label mod_name> | <label mod_name> | ||
Line 7: | Line 8: | ||
<label bsp_name> | <label bsp_name> | ||
<label bsp_name_head> | <label bsp_name_head> | ||
+ | <label build_system> | ||
+ | <label build_system_head> | ||
</ | </ | ||
\\ | \\ | ||
Line 39: | Line 42: | ||
<WRAP round alert> | <WRAP round alert> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== U-Boot 2013.04 | MMC timeouts ==== | ||
+ | < | ||
+ | MMC: MXS MMC: 0, MXS MMC: 1 | ||
+ | MMC0: Command 8 timeout (status 0xe03c4020) | ||
+ | MMC0: Command 55 timeout (status 0xe02c4020) | ||
+ | </ | ||
+ | These timeouts are **no** errors and totally normal U-Boot behaviour. | ||
+ | |||
+ | U-Boot probes the device connected to the Synchronous Serial Port. In order to identify eMMC or SD cards U-Boot sends these two commands. A timeout on both commands identifies the eMMC. | ||
+ | |||
+ | ==== U-Boot | Warning: FECx MAC addresses don't match ==== | ||
+ | < | ||
+ | FEC0 [PRIME] | ||
+ | Warning: FEC0 MAC addresses don't match: | ||
+ | Address in SROM is | ||
+ | Address in environment is 02: | ||
+ | , FEC1 | ||
+ | </ | ||
+ | In U-Boot the MAC address for networking tasks (tftp, ping, dhcp, etc) and to pass to the kernel is stored in the variable **ethaddr**. This variable is defined in the default environment (this is the one used, when environment on e-MMC can't be loaded) with a generic " | ||
+ | |||
+ | During ethernet initialisation U-Boot checks MAC address stored in OTP and compares both addresses. Hence the warning. | ||
+ | |||
+ | To disable the warning you need to set **ethaddr** to your OTP-saved MAC: | ||
+ | < | ||
+ | TQMa28 U-Boot > setenv ethaddr 00: | ||
+ | </ | ||
+ | |||
+ | Using __U-Boot 2013.04__ you can also simply use the command otp_mxs: | ||
+ | < | ||
+ | TQMa28 U-Boot > print ethaddr | ||
+ | ethaddr=02: | ||
+ | TQMa28 U-Boot > otp_mxs getmac; saveenv | ||
+ | TQMa28 U-Boot > print ethaddr | ||
+ | ethaddr=00: | ||
+ | </ | ||
+ | |||
+ | ==== Linux | Error: no PHY found or Segmentation fault when ifconfig up ==== | ||
+ | BSP0106 changed the default source of ENET_CLK to external oscillator. Previously the source was FEC unit inside the CPU. The source is selected in U-Boot, which provides the setting to kernel via device tree (TQMa28/ | ||
+ | |||
+ | U-Boot informs about the selected clock on boot: | ||
+ | * **Net: | ||
+ | * **Net: | ||
+ | |||
+ | To switch ENET_CLK source to internal FEC unit: | ||
+ | < | ||
+ | TQMa28 U-Boot > setenv enet_clk_internal 1; saveenv; reset | ||
+ | </ | ||
+ | |||
+ | Switching back is easy: | ||
+ | < | ||
+ | TQMa28 U-Boot > setenv enet_clk_internal; | ||
+ | # notice that setenv assigns no value to delete the variable | ||
+ | </ | ||
+ | |||
+ | U-Boot selects the internal ENET_CLK source upon presence of this environment variable with a positive value (y/yes/1). | ||
+ | The variable is evaluated during ethernet initialisation and therefore a change in the variable takes place upon next boot. | ||
+ | |||
+ | ==== PTXdist | Error: Couldn' | ||
+ | Creating root.ext2 from working dir...< | ||
+ | |||
+ | The error signals that the filesystem is too small for the content that should be installed. Increase size. | ||
+ | |||
+ | < | ||
+ | => go to ptxdist menu | ||
+ | => platformconfig | ||
+ | => image creation options | ||
+ | => Generate images/ | ||
+ | -> Size in kilobytes: increase to reasonable size (65536 should be enough for most cases) | ||
+ | </ | ||
+ | |||
+ | ==== PTXdist | Download packages through proxy authentication ==== | ||
+ | In case you have a proxy server in your local network that requires user authentication before going online, | ||
+ | you have several ways to have ptxdist perform the authentication for you when downloading packages. | ||
+ | |||
+ | Because ptxdist relies on the program wget to download sources, | ||
+ | we need to tell wget about the authentication: | ||
+ | < | ||
+ | (tested) | ||
+ | => edit /etc/wgetc (needs sudo privileges) | ||
+ | => Add lines anywhere in the file: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | (untested - please tell us if one of these works for you) | ||
+ | > Change ptxdist setting at "User Properties" | ||
+ | -> Set http proxy to this format: http://< | ||
+ | -> Adapt for the ftp proxy | ||
+ | > Or export http_proxy and ftp_proxy environment variables alike | ||
+ | </ | ||
+ | |||
+ | ==== U-Boot | "MMC: block number ... exceeds max (...)" === | ||
+ | The reason for this error is that the saved environment belongs to a different U-Boot version. | ||
+ | TQ provides U-Boot in versions 2009.08 and 2012.10, because the kernels can't run both on 2009.08. | ||
+ | The syntax of some commands changed between U-Boot versions and thus their environment (which holds scripts using these commands) are incompatible. | ||
+ | |||
+ | => To resolve this error please delete the saved environment as follows depending on your current U-Boot version: | ||
+ | * U-Boot 2009.08 | ||
+ | < | ||
+ | mw.b $loadaddr 0 512 | ||
+ | mmc write 0 $loadaddr 2 1 | ||
+ | </ | ||
+ | * U-Boot 2012.10 | ||
+ | < | ||
+ | mw.b $loadaddr 0 512 | ||
+ | mmc dev 0 | ||
+ | mmc write $loadaddr 2 1 | ||
+ | </ | ||
+ | |||
+ | <WRAP round important> | ||
+ | |||
+ | ==== U-Boot | "set read bl len failed" | ||
+ | => After being plugged in the sd card must be initialised prior to any access. The command < | ||
+ | |||
+ | ==== U-Boot | Usage messages for the command " | ||
+ | U-Boot prints the following error message at boot time: | ||
+ | < | ||
+ | setenv - set environment variables | ||
+ | |||
+ | Usage: | ||
+ | setenv name value ... | ||
+ | - set environment variable ' | ||
+ | setenv name | ||
+ | - delete environment variable ' | ||
+ | </ | ||
+ | => Amongst others a reason for this is that the U-Boot environment variable // | ||
+ | |||
+ | To remedy just clear the variable // | ||
+ | |||
+ | < | ||
+ | setenv bootargs | ||
+ | saveenv | ||
+ | </ | ||
+ | |||
+ | ==== Errormessage " | ||
+ | |||
+ | If you use a precompiled rootfs you probably encounter following error message: | ||
+ | < | ||
+ | generic-armv5te login: root | ||
+ | -sh: can't access tty; job control turned off | ||
+ | root@generic-armv5te: | ||
+ | </ | ||
+ | |||
+ | To resolve this issue specify your real console in / | ||
+ | < | ||
+ | #change following line | ||
+ | S: | ||
+ | #to i.e. (depending on your console, see your kernel command line arguments) | ||
+ | S: | ||
+ | </ | ||
+ | and reboot. | ||
+ | |||
+ | |||
+ | |||
+ | ==== Linux boot Kernel panic Unable to mount root fs ==== | ||
+ | |||
+ | Error message: | ||
+ | < | ||
+ | [ 1.090000] VFS: Cannot open root device " | ||
+ | [ 1.100000] Please append a correct " | ||
+ | [ 1.110000] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0, | ||
+ | [ 1.110000] [< | ||
+ | [ 1.110000] [< | ||
+ | [ 1.110000] [< | ||
+ | [ 1.110000] [< | ||
+ | [ 1.110000] [< | ||
+ | [ 1.110000] [< | ||
+ | [ 1.110000] Rebooting in 1 seconds.. | ||
+ | </ | ||
+ | |||
+ | Kernel command line: | ||
+ | < | ||
+ | [ 0.000000] Kernel command line: fec_mac=02: | ||
+ | </ | ||
+ | |||
+ | U-Boot mmc part lists the partition: | ||
+ | < | ||
+ | TQMa28 U-Boot > mmc part | ||
+ | |||
+ | Partition Map for MMC device 0 -- | ||
+ | |||
+ | Partition | ||
+ | 1 16384 | ||
+ | 2 32768 | ||
+ | 3 49152 | ||
+ | </ | ||
+ | |||
+ | Solution: add the '' | ||
+ | |||
+ | < | ||
+ | TQMa28 U-Boot > setenv addmmc ' | ||
+ | </ | ||
+ | |||
+ | ---- |