20160520_jeffrey - silenceuncrio/diary GitHub Wiki

Index

  • 0905 - build 好
  • 1000 - 做實驗
  • 1110 - bitbake-layers show-recipes
  • 1135 - size 維持在 363520
  • 1145 - 記錄 怎麼玩 u-boot-imx
  • 1355 - m300
  • 1420 - 複習 Flashing an SD card image
  • 1610 - i.MX BSP Porting Guide

0905

build 好了

先 tar 一包起來以備不時之需

tar -zcvf fsl-bsp-release-2016-05-20.tar.gz fsl-bsp-release

0935

光 tar 都要很久... 半小時了還沒好

0945

壓一包有 7 GB...

1000

至少壓完了會有安全感...

來做實驗吧

bitbake -c clean u-boot 之後
<built dir>/tmp/work/imx6ulevk-poky-linux-gnueabi/u-boot-imx/2015.04-r0/git 下的東西就不見了

jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small$ bitbake -h
Usage: bitbake [options] [recipename/target recipe:do_task ...]

    Executes the specified task (default is 'build') for a given set of target recipes (.bb files).
    It is assumed there is a conf/bblayers.conf available in cwd or in BBPATH which
    will provide the layer, BBFILES and other configuration information.

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -b BUILDFILE, --buildfile=BUILDFILE
                        Execute tasks from a specific .bb recipe directly.
                        WARNING: Does not handle any dependencies from other
                        recipes.
  -k, --continue        Continue as much as possible after an error. While the
                        target that failed and anything depending on it cannot
                        be built, as much as possible will be built before
                        stopping.
  -a, --tryaltconfigs   Continue with builds by trying to use alternative
                        providers where possible.
  -f, --force           Force the specified targets/task to run (invalidating
                        any existing stamp file).
  -c CMD, --cmd=CMD     Specify the task to execute. The exact options
                        available depend on the metadata. Some examples might
                        be 'compile' or 'populate_sysroot' or 'listtasks' may
                        give a list of the tasks available.
  -C INVALIDATE_STAMP, --clear-stamp=INVALIDATE_STAMP
                        Invalidate the stamp for the specified task such as
                        'compile' and then run the default task for the
                        specified target(s).
  -r PREFILE, --read=PREFILE
                        Read the specified file before bitbake.conf.
  -R POSTFILE, --postread=POSTFILE
                        Read the specified file after bitbake.conf.
  -v, --verbose         Output more log message data to the terminal.
  -D, --debug           Increase the debug level. You can specify this more
                        than once.
  -n, --dry-run         Don't execute, just go through the motions.
  -S SIGNATURE_HANDLER, --dump-signatures=SIGNATURE_HANDLER
                        Dump out the signature construction information, with
                        no task execution. The SIGNATURE_HANDLER parameter is
                        passed to the handler. Two common values are none and
                        printdiff but the handler may define more/less. none
                        means only dump the signature, printdiff means compare
                        the dumped signature with the cached one.
  -p, --parse-only      Quit after parsing the BB recipes.
  -s, --show-versions   Show current and preferred versions of all recipes.
  -e, --environment     Show the global or per-recipe environment complete
                        with information about where variables were
                        set/changed.
  -g, --graphviz        Save dependency tree information for the specified
                        targets in the dot syntax.
  -I EXTRA_ASSUME_PROVIDED, --ignore-deps=EXTRA_ASSUME_PROVIDED
                        Assume these dependencies don't exist and are already
                        provided (equivalent to ASSUME_PROVIDED). Useful to
                        make dependency graphs more appealing
  -l DEBUG_DOMAINS, --log-domains=DEBUG_DOMAINS
                        Show debug logging for the specified logging domains
  -P, --profile         Profile the command and save reports.
  -u UI, --ui=UI        The user interface to use (depexp, goggle, hob, knotty
                        or ncurses - default knotty).
  -t SERVERTYPE, --servertype=SERVERTYPE
                        Choose which server type to use (process or xmlrpc -
                        default process).
  --token=XMLRPCTOKEN   Specify the connection token to be used when
                        connecting to a remote server.
  --revisions-changed   Set the exit code depending on whether upstream
                        floating revisions have changed or not.
  --server-only         Run bitbake without a UI, only starting a server
                        (cooker) process.
  -B BIND, --bind=BIND  The name/address for the bitbake server to bind to.
  --no-setscene         Do not run any setscene tasks. sstate will be ignored
                        and everything needed, built.
  --remote-server=REMOTE_SERVER
                        Connect to the specified server.
  -m, --kill-server     Terminate the remote server.
  --observe-only        Connect to a server as an observing-only client.
  --status-only         Check the status of the remote bitbake server.
  -w WRITEEVENTLOG, --write-log=WRITEEVENTLOG
                        Writes the event log of the build to a bitbake event
                        json file. Use '' (empty string) to assign the name
                        automatically.

試一下 bitbake -c listtasks u-boot

jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small$ bitbake -c listtasks u-boot
Loading cache: 100% |###########################################| ETA:  00:00:00
Loaded 2825 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION        = "1.28.0"
BUILD_SYS         = "i686-linux"
NATIVELSBSTRING   = "Ubuntu-14.04"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "imx6ulevk"
DISTRO            = "fsl-imx-x11"
DISTRO_VERSION    = "4.1.15-1.1.1"
TUNE_FEATURES     = "arm armv7a vfp neon callconvention-hard cortexa7"
TARGET_FPU        = "vfp-neon"
meta              
meta-yocto        = "HEAD:dd0ba9ea4a11ab15348d4fe3574e4b28784db82f"
meta-oe           
meta-multimedia   = "HEAD:ad6133a2e95f4b83b6b3ea413598e2cd5fb3fd90"
meta-fsl-arm      = "HEAD:35b8b9bd9863de208ab60e33b55f10ee43e2619b"
meta-fsl-arm-extra = "HEAD:e200df91b70da254461c59082ddd5db0a3c415a2"
meta-fsl-demos    = "HEAD:2231e946e7a94d096394f2b2477e8184c9bbde7b"
meta-bsp          
meta-sdk          = "HEAD:f39f40c71ce4511029c56e6d57aa48bd172124d3"
meta-browser      = "HEAD:b6d46d69a261fe6bd7c1e9811dc2a9bbd0b79aeb"
meta-gnome        
meta-networking   
meta-python       
meta-ruby         
meta-filesystems  
meta-xfce         = "HEAD:ad6133a2e95f4b83b6b3ea413598e2cd5fb3fd90"
meta-qt5          = "HEAD:d5536e34ec985c82b621448ab4325e5cbba38560"

NOTE: Preparing RunQueue
NOTE: Executing RunQueue Tasks
do_build                       Default task for a recipe - depends on all other normal tasks required to 'build' a recipe
do_checkuri                    Validates the SRC_URI value
do_checkuriall                 Validates the SRC_URI value for all recipes required to build a target
do_clean                       Removes all output files for a target
do_cleanall                    Removes all output files, shared state cache, and downloaded source files for a target
do_cleansstate                 Removes all output files and shared state cache for a target
do_compile                     Compiles the source in the compilation directory
do_configure                   Configures the source by enabling and disabling any build-time and configuration options for the software being built
do_deploy                      Writes deployable output files to the deploy directory
do_deploy_setscene             Writes deployable output files to the deploy directory (setscene version)
do_devpyshell                  Starts an interactive Python shell for development/debugging
do_devshell                    Starts a shell with the environment set up for development/debugging
do_fetch                       Fetches the source code
do_fetchall                    Fetches all remote sources required to build a target
do_install                     Copies files from the compilation directory to a holding area
do_listtasks                   Lists all defined tasks for a target
do_package                     Analyzes the content of the holding area and splits it into subsets based on available packages and files
do_package_qa                  Runs QA checks on packaged files
do_package_qa_setscene         Runs QA checks on packaged files (setscene version)
do_package_setscene            Analyzes the content of the holding area and splits it into subsets based on available packages and files (setscene version)
do_package_write_rpm           Creates the actual RPM packages and places them in the Package Feed area
do_package_write_rpm_setscene  Creates the actual RPM packages and places them in the Package Feed area (setscene version)
do_packagedata                 Creates package metadata used by the build system to generate the final packages
do_packagedata_setscene        Creates package metadata used by the build system to generate the final packages (setscene version)
do_patch                       Locates patch files and applies them to the source code
do_populate_lic                Writes license information for the recipe that is collected later when the image is constructed
do_populate_lic_setscene       Writes license information for the recipe that is collected later when the image is constructed (setscene version)
do_populate_sysroot            Copies a subset of files installed by do_install into the sysroot in order to make them available to other recipes
do_populate_sysroot_setscene   Copies a subset of files installed by do_install into the sysroot in order to make them available to other recipes (setscene version)
do_unpack                      Unpacks the source code into a working directory
NOTE: Tasks Summary: Attempted 1 tasks of which 0 didn't need to be rerun and all succeeded.

看來 bitbake -c listtasks u-boot 做的 task 就是 do_listtasks
所以 target 就是 u-boot 囉?

看看有啥會再下載 source code

試這個 do_fetch - Fetches the source code
<built dir>/tmp/work/imx6ulevk-poky-linux-gnueabi/u-boot-imx/2015.04-r0/git 一樣是空的

do_fetchall 也沒用

do_checkuri... 看一下過程中的畫面

NOTE: Preparing RunQueue
NOTE: Executing RunQueue Tasks
Currently 1 running tasks (1 of 1):
0: u-boot-imx-2015.04-r0 do_checkuri (pid 10282)

這個 0: u-boot-imx-2015.04-r0 do_checkuri (pid 10282) 可以再 study 一下是啥意思

do_compile... 看到 running tasks 有幾個一閃而逝
do_unpack... 第一個不知是啥... 不過 <built dir>/tmp/work/imx6ulevk-poky-linux-gnueabi/u-boot-imx/2015.04-r0/git 一樣是空的

do_configure
NOTE: Tasks Summary: Attempted 239 tasks of which 239 didn't need to be rerun and all succeeded.
看來沒做啥事

do_deploy 也沒做事

do_install

do_package

1055

可以利用 -v, --verbose Output more log message data to the terminal. 來看到更多訊息

下了 'bitbake -c clean -v u-boot-imx' 之後發現

<built dir>/tmp/work/imx6ulevk-poky-linux-gnueabi/u-boot-imx/2015.04-r0/ 下剩 git 這個空目錄

'bitbake -c compile -v u-boot-imx'
跟剛剛不同了...

哈哈
<built dir>/tmp/work/imx6ulevk-poky-linux-gnueabi/u-boot-imx/2015.04-r0/git 的東西都跑出來囉

不過我要怎麼確切的知道使用 u-boot-imx 而不是 u-boot 呢?

1110

先關掉 ubuntu 的 terminal 因為緩衝區太小了

條大了之後重開 terminal 要再使用 bitbake 要這樣做

jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp$ MACHINE=imx6ulevk source setup-environment build_small

Welcome to Freescale Community BSP

The Yocto Project has extensive documentation about OE including a
reference manual which can be found at:
    http://yoctoproject.org/documentation

For more information about OpenEmbedded see their website:
    http://www.openembedded.org/

You can now run 'bitbake <target>'

Common targets are:
    core-image-minimal
    meta-toolchain
    meta-toolchain-sdk
    adt-installer
    meta-ide-support

Your configuration files at build_small have not been touched.

來看看 bitbake-layers 怎麼用

jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small$ bitbake-layers -h
usage: bitbake-layers [-h] [-d] [-q] <subcommand> ...

BitBake layers utility

optional arguments:
  -h, --help            show this help message and exit
  -d, --debug           Enable debug output
  -q, --quiet           Print only errors

subcommands:
  <subcommand>
    show-layers         show current configured layers
    add-layer           Add a layer to bblayers.conf
    remove-layer        Remove a layer from bblayers.conf
    show-overlayed      list overlayed recipes (where the same recipe exists
                        in another layer)
    show-recipes        list available recipes, showing the layer they are
                        provided by
    show-appends        list bbappend files and recipe files they apply to
    flatten             flatten layer configuration into a separate output
                        directory.
    show-cross-depends  Show dependencies between recipes that cross layer
                        boundaries.
    layerindex-fetch    Fetches a layer from a layer index along with its
                        dependent layers, and adds them to conf/bblayers.conf.
    layerindex-show-depends
                        Find layer dependencies from layer index.

Use bitbake-layers <subcommand> --help to get help on a specific command

哈哈 subcommand 有個 show-recipes 可以用
內容太多...
看一下 bitbake-layers show-recipes 還可以怎麼用

jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small$ bitbake-layers show-recipes --help
usage: bitbake-layers show-recipes [-h] [-f] [-m] [-i CLASS] [pnspec]

Lists the names of recipes and the available versions in each
layer, with the preferred version first. Optionally you may specify
pnspec to match a specified recipe name (supports wildcards). Note that
skipped recipes will also be listed, with a " (skipped)" suffix.

positional arguments:
  pnspec                optional recipe name specification (wildcards allowed, enclose in quotes to avoid shell expansion)

optional arguments:
  -h, --help            show this help message and exit
  -f, --filenames       instead of the default formatting, list filenames of higher priority recipes with the ones they overlay indented underneath
  -m, --multiple        only list where multiple recipes (in the same layer or different layers) exist for the same recipe name
  -i CLASS, --inherits CLASS
                        only list recipes that inherit the named class

只列出 u-boot 相關的

jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small$ bitbake-layers show-recipes u-boot*
Parsing recipes..done.
=== Matching recipes: ===
u-boot:
  meta                 v2015.07+gitAUTOINC+33711bdd4a
u-boot-boundary:
  meta-fsl-arm-extra   git (skipped)
u-boot-compulab:
  meta-fsl-arm-extra   2014.10 (skipped)
u-boot-fslc:
  meta-fsl-arm         v2015.10+gitAUTOINC+1b6aee73e6
u-boot-fslc-mxsboot:
  meta-fsl-arm         v2015.10+gitAUTOINC+1b6aee73e6
u-boot-fw-utils:
  meta                 v2015.07+gitAUTOINC+33711bdd4a
u-boot-gateworks-imx:
  meta-fsl-arm-extra   2015.04 (skipped)
u-boot-imx:
  meta-bsp             2015.04
u-boot-imx-mfgtool:
  meta-bsp             2015.04
u-boot-ls1:
  meta-fsl-arm         2015.01 (skipped)
u-boot-mkimage:
  meta                 v2015.07+gitAUTOINC+33711bdd4a
u-boot-script-boundary:
  meta-fsl-arm-extra   git (skipped)
u-boot-script-gateworks-imx:
  meta-fsl-arm-extra   unknown (skipped)
u-boot-timesys:
  meta-fsl-arm-extra   2011.12 (skipped)
u-boot-toradex:
  meta-fsl-arm-extra   v2015.04-v2.5b2+gitAUTOINC+1ef4a29e8c

一些字眼實在不知道甚麼意思

1135

知道怎麼玩了

不過就算我把 u-boot make menuconfig 可以取消勾選的東西都拿掉
size 還是維持在 363520

要另尋方法了

1145

先記錄一下要怎麼玩

我們說 u-boot-imx folder
<build dir>/tmp/work/imx6ulevk-poky-linux-gnueabi/u-boot-imx/2015.04-r0/git/mx6ul_14x14_evk_config

我們可以在 u-boot-imx folder 做這些事

  • make clean
  • make menuconfig

那我們的 在 ~/fsl-release-bsp/build_small
我們可以在 做這些事

  • bitbake -f -v -c compile u-boot-imx

這樣一來一回就可以看到 u-boot 透過 make menuconfig 修改後的瘦身成果

雖然完全沒有變瘦

1355

剛剛和 ariel 聊了一下 m300 的案子

我這邊就盡量想辦法縮小 u-boot 的體積
真的不行就算了

另外就是要讓後來參與的成員知道怎麼讓 i.MX boot

  • 透過 SD 卡
  • 透過 tftp
  • 寫到 flash 去

Mobile_SW_Features.xls 是ˋ這麼寫的

u-boot : FLASH layout		7月15日	Jeffery
u-boot : burn image		7月15日	Jeffery
u-boot : Reduce image size	7月15日	Jeffery

reduce image 可以進行到 7月15日

burn image 我已經知道怎麼透過 SD 卡了

FLASH layout 可以來了解一下

1420

再來複習一下 6.1 Flashing an SD card image

先看 6 Image Deployment

After a build is complete, the created image resides in /tmp/deploy/images.
An image is, for the most part, specific to the machine set in the environment setup.
Each image build creates a U-Boot, a kernel, and an image type based on the IMAGE_FSTYPES defined in the machine configuration file.
Most machine configurations provide an SD card image (.sdcard), an ext3 and tar.bz2.
The ext3 is the root file system only.
The .sdcard image contains U-Boot, the kernel and the rootfs completely set up for use on an SD card.

做完 bitbake -k core-image-minimal 之後
created image 在

jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small/tmp/deploy/images/imx6ulevk$ ls -l
total 68496
-rw-r--r-- 1 jeffrey jeffrey 12582912  5月 19 18:48 core-image-minimal-imx6ulevk-20160519071408.rootfs.ext4
-rw-r--r-- 1 jeffrey jeffrey      946  5月 19 18:48 core-image-minimal-imx6ulevk-20160519071408.rootfs.manifest
-rw-r--r-- 1 jeffrey jeffrey 29360128  5月 19 18:48 core-image-minimal-imx6ulevk-20160519071408.rootfs.sdcard
-rw-r--r-- 1 jeffrey jeffrey  2567137  5月 19 18:48 core-image-minimal-imx6ulevk-20160519071408.rootfs.tar.bz2
-rw-r--r-- 1 jeffrey jeffrey 12582912  5月 20 14:11 core-image-minimal-imx6ulevk-20160520061008.rootfs.ext4
-rw-r--r-- 1 jeffrey jeffrey      946  5月 20 14:11 core-image-minimal-imx6ulevk-20160520061008.rootfs.manifest
-rw-r--r-- 1 jeffrey jeffrey 29360128  5月 20 14:11 core-image-minimal-imx6ulevk-20160520061008.rootfs.sdcard
-rw-r--r-- 1 jeffrey jeffrey  2567258  5月 20 14:11 core-image-minimal-imx6ulevk-20160520061008.rootfs.tar.bz2
-rw-rw-r-- 2 jeffrey jeffrey  1141309  5月 19 18:38 modules--4.1.15-r0-imx6ulevk-20160519071408.tgz
-rw-r--r-- 2 jeffrey jeffrey      294  5月 20 14:10 README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
-rwxr-xr-x 2 jeffrey jeffrey   363520  5月 20 14:10 u-boot-sd-2015.04-r0.imx
-rw-r--r-- 2 jeffrey jeffrey    34966  5月 19 18:38 zImage--4.1.15-r0-imx6ul-14x14-evk-20160519071408.dtb
-rw-r--r-- 2 jeffrey jeffrey    35466  5月 19 18:38 zImage--4.1.15-r0-imx6ul-14x14-evk-btwifi-20160519071408.dtb
-rw-r--r-- 2 jeffrey jeffrey    34962  5月 19 18:38 zImage--4.1.15-r0-imx6ul-14x14-evk-csi-20160519071408.dtb
-rw-r--r-- 2 jeffrey jeffrey    35209  5月 19 18:38 zImage--4.1.15-r0-imx6ul-14x14-evk-usb-certi-20160519071408.dtb
-rw-r--r-- 2 jeffrey jeffrey  6343464  5月 19 18:38 zImage--4.1.15-r0-imx6ulevk-20160519071408.bin
jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small/tmp/deploy/images/imx6ulevk$ 

core-image-minimal-imx6ulevk-20160520061008.rootfs.sdcard 便是 .sdcard image 了
注意到同目錄下有個 core-image-minimal-imx6ulevk.sdcard 軟連結可以利用 包含了 U-Boot, kernel 和 rootfs

An SD card image provides the full system to boot with U-Boot and kernel.
To flash an SD card image, run the following command:
$ sudo dd if=.sdcard of=/dev/sd bs=1M && sync

來看一下啥是 dd

jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small/tmp/deploy/images/imx6ulevk$ dd --help
Usage: dd [OPERAND]...
  or:  dd OPTION
Copy a file, converting and formatting according to the operands.

  bs=BYTES        read and write up to BYTES bytes at a time
  cbs=BYTES       convert BYTES bytes at a time
  conv=CONVS      convert the file as per the comma separated symbol list
  count=N         copy only N input blocks
  ibs=BYTES       read up to BYTES bytes at a time (default: 512)
  if=FILE         read from FILE instead of stdin
  iflag=FLAGS     read as per the comma separated symbol list
  obs=BYTES       write BYTES bytes at a time (default: 512)
  of=FILE         write to FILE instead of stdout
  oflag=FLAGS     write as per the comma separated symbol list
  seek=N          skip N obs-sized blocks at start of output
  skip=N          skip N ibs-sized blocks at start of input
  status=WHICH    WHICH info to suppress outputting to stderr;
                  'noxfer' suppresses transfer stats, 'none' suppresses all

N and BYTES may be followed by the following multiplicative suffixes:
c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M
GB =1000*1000*1000, G =1024*1024*1024, and so on for T, P, E, Z, Y.

Each CONV symbol may be:

  ascii     from EBCDIC to ASCII
  ebcdic    from ASCII to EBCDIC
  ibm       from ASCII to alternate EBCDIC
  block     pad newline-terminated records with spaces to cbs-size
  unblock   replace trailing spaces in cbs-size records with newline
  lcase     change upper case to lower case
  ucase     change lower case to upper case
  sparse    try to seek rather than write the output for NUL input blocks
  swab      swap every pair of input bytes
  sync      pad every input block with NULs to ibs-size; when used
            with block or unblock, pad with spaces rather than NULs
  excl      fail if the output file already exists
  nocreat   do not create the output file
  notrunc   do not truncate the output file
  noerror   continue after read errors
  fdatasync  physically write output file data before finishing
  fsync     likewise, but also write metadata

Each FLAG symbol may be:

  append    append mode (makes sense only for output; conv=notrunc suggested)
  direct    use direct I/O for data
  directory  fail unless a directory
  dsync     use synchronized I/O for data
  sync      likewise, but also for metadata
  fullblock  accumulate full blocks of input (iflag only)
  nonblock  use non-blocking I/O
  noatime   do not update access time
  nocache   discard cached data
  noctty    do not assign controlling terminal from file
  nofollow  do not follow symlinks
  count_bytes  treat 'count=N' as a byte count (iflag only)
  skip_bytes  treat 'skip=N' as a byte count (iflag only)
  seek_bytes  treat 'seek=N' as a byte count (oflag only)

Sending a USR1 signal to a running 'dd' process makes it
print I/O statistics to standard error and then resume copying.

  $ dd if=/dev/zero of=/dev/null& pid=$!
  $ kill -USR1 $pid; sleep 1; kill $pid
  18335302+0 records in
  18335302+0 records out
  9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s

Options are:

      --help     display this help and exit
      --version  output version information and exit

Report dd bugs to [email protected]
GNU coreutils home page: <http://www.gnu.org/software/coreutils/>
General help using GNU software: <http://www.gnu.org/gethelp/>
For complete documentation, run: info coreutils 'dd invocation'

解析一下 $ sudo dd if=<image name>.sdcard of=/dev/sd<partition> bs=1M && sync

要換成 core-image-minimal-imx6ulevk.sdcard

要利用下述方法得知

jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small/tmp/deploy/images/imx6ulevk$ cat /proc/partitions 
major minor  #blocks  name

   1        0      65536 ram0
   1        1      65536 ram1
   ...
   8        0  167772160 sda
   ...

反正插了 USB 讀卡機再插了 SD 就知道是啥了
像我是 b

最後得到 $ sudo dd if=core-image-minimal-imx6ulevk.sdcard of=/dev/sdb bs=1M && sync

看一下 dd 後面的參數在幹嘛

  • if=FILE
    • read from FILE instead of stdin
  • of=FILE
    • write to FILE instead of stdout
  • bs=BYTES
    • read and write up to BYTES bytes at a time
  • sync
    • pad every input block with NULs to ibs-size; when used with block or unblock, pad with spaces rather than NULs

組合一下

read from core-image-minimal-imx6ulevk.sdcard, write to /dev/sdb, up to 1 byte at a time, pad every input block with NULs to ibs-size; when used with block or unblock, pad with spaces rather than NULs

稍微比較看得懂了

1610

i.MX BSP Porting Guide 裡頭的第一章 Chapter 1 Porting U-Boot from an i.MX 6/7 Reference Board to an i.MX 6/7 Custom Board

啥... 這不就是我想要看的

1650

The configuration files for the i.MX 6 or i.MX 7 are located at include/configs.
The files associated with the boards are:

  • ...
  • i.MX 6UltraLite EVK
    • mx6ul_14x14_evk.h

You should pay attention to the following configurations when using a new board.

既然都這麼說了... 我就來看吧

  • CONFIG_LOADADDR: Normally your zImage is loaded to this address for boot.
  • CONFIG_SYS_MALLOC_LEN: Heap memory size.
  • CONFIG_STACKSIZE: Stack size.
  • CONFIG_NR_DRAM_BANKS: Number of ddr banks.
  • PHYS_SDRAM_SIZE: Configure the DDR size in MB.
  • PHYS_SDRAM: Physical address for the DDR memory
  • fdt_file: Configure "#define CONFIG_DEFAULT_FDT_FILE .dtb" or directly change "fdt_file=.dtb".
  • Config file is important for U-Boot. It determines the size, functionality, and performance of u-boot.bin.

有點難消化阿...

⚠️ **GitHub.com Fallback** ⚠️