diff options
-rw-r--r-- | documentation/yocto-project-qs/yocto-project-qs.xml | 419 |
1 files changed, 320 insertions, 99 deletions
diff --git a/documentation/yocto-project-qs/yocto-project-qs.xml b/documentation/yocto-project-qs/yocto-project-qs.xml index e259a1eb24..9ab638a3d9 100644 --- a/documentation/yocto-project-qs/yocto-project-qs.xml +++ b/documentation/yocto-project-qs/yocto-project-qs.xml | |||
@@ -871,131 +871,352 @@ | |||
871 | </title> | 871 | </title> |
872 | 872 | ||
873 | <para> | 873 | <para> |
874 | This section | 874 | This section provides minimal instruction for using the Yocto Project |
875 | <footnote> | 875 | to build an image for Beaglebone hardware and for building and |
876 | <para> | 876 | booting an image for the third-party |
877 | Kudos and thanks to Robert P. J. Day of | 877 | <ulink url='http://www.minnowboard.org/meet-minnowboard-max/'>MinnowBoard MAX</ulink>. |
878 | <ulink url='http://www.crashcourse.ca'>CrashCourse</ulink> for providing the basis | 878 | <note> |
879 | for this "expert" section with information from one of his | 879 | The steps used in this section were performed on a 64-bit |
880 | <ulink url='http://www.crashcourse.ca/wiki/index.php/Yocto_Project_Quick_Start'>wiki</ulink> | 880 | Ubuntu 14.10 system that has four cores. |
881 | pages. | 881 | </note> |
882 | </para> | ||
883 | </footnote> | ||
884 | gives you a minimal description of how to use the Yocto Project to build | ||
885 | images for Beaglebone hardware starting from scratch. | ||
886 | The steps were performed on a 64-bit Ubuntu 12.04 system that | ||
887 | has four cores. | ||
888 | </para> | 882 | </para> |
889 | 883 | ||
890 | <section id='getting-yocto'> | 884 | <section id='building-beaglebone-from-scratch'> |
891 | <title>Getting the Yocto Project</title> | 885 | <title>Building Beaglebone from Scratch</title> |
892 | 886 | ||
893 | <para> | 887 | <para> |
894 | Set up your | 888 | This section |
895 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink> | 889 | <footnote> |
896 | by using Git to clone the <filename>poky</filename> | 890 | <para> |
897 | repository and then check out the release branch: | 891 | Kudos and thanks to Robert P. J. Day of |
898 | <literallayout class='monospaced'> | 892 | <ulink url='http://www.crashcourse.ca'>CrashCourse</ulink> |
893 | for providing the basis for this "expert" section with | ||
894 | information from one of his | ||
895 | <ulink url='http://www.crashcourse.ca/wiki/index.php/Yocto_Project_Quick_Start'>wiki</ulink> | ||
896 | pages. | ||
897 | </para> | ||
898 | </footnote> | ||
899 | gives you a minimal description of how to use the Yocto Project to | ||
900 | build images for Beaglebone hardware starting from scratch. | ||
901 | </para> | ||
902 | |||
903 | <section id='getting-yocto'> | ||
904 | <title>Getting the Yocto Project</title> | ||
905 | |||
906 | <para> | ||
907 | Set up your | ||
908 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink> | ||
909 | by using Git to clone the <filename>poky</filename> | ||
910 | repository and then check out the release branch: | ||
911 | <literallayout class='monospaced'> | ||
899 | $ cd ~ | 912 | $ cd ~ |
900 | $ git clone git://git.yoctoproject.org/poky | 913 | $ git clone git://git.yoctoproject.org/poky |
901 | $ cd poky | 914 | $ cd poky |
902 | $ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME; | 915 | $ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME; |
903 | </literallayout> | 916 | </literallayout> |
904 | </para> | 917 | </para> |
905 | </section> | 918 | </section> |
906 | 919 | ||
907 | <section id='setting-up-your-host'> | 920 | <section id='setting-up-your-host'> |
908 | <title>Setting Up Your Host</title> | 921 | <title>Setting Up Your Host</title> |
909 | 922 | ||
910 | <para> | 923 | <para> |
911 | You need some packages for everything to work. | 924 | You need some packages for everything to work. |
912 | Rather than duplicate them here, look at the | 925 | Rather than duplicate them here, look at the |
913 | "<link linkend='packages'>The Packages</link>" | 926 | "<link linkend='packages'>The Packages</link>" |
914 | section earlier in this quick start. | 927 | section earlier in this quick start. |
915 | </para> | 928 | </para> |
916 | </section> | 929 | </section> |
917 | 930 | ||
918 | <section id='initializing-the-build-environment'> | 931 | <section id='initializing-the-build-environment'> |
919 | <title>Initializing the Build Environment</title> | 932 | <title>Initializing the Build Environment</title> |
920 | 933 | ||
921 | <para> | 934 | <para> |
922 | From the root directory of your | 935 | From the root directory of your |
923 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>, | 936 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>, |
924 | initialize your environment and provide a meaningful | 937 | initialize your environment and provide a meaningful |
925 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> | 938 | <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> |
926 | name: | 939 | name: |
927 | <literallayout class='monospaced'> | 940 | <literallayout class='monospaced'> |
928 | $ source &OE_INIT_FILE; mybuilds | 941 | $ source &OE_INIT_FILE; mybuilds |
929 | </literallayout> | 942 | </literallayout> |
930 | At this point, the <filename>mybuilds</filename> directory has | 943 | At this point, the <filename>mybuilds</filename> directory has |
931 | been created for you and it is now your current working directory. | 944 | been created for you and it is now your current working directory. |
932 | If you do not provide your own directory name, | 945 | If you do not provide your own directory name, |
933 | it defaults to <filename>build</filename>, | 946 | it defaults to <filename>build</filename>, |
934 | which is inside the Source Directory. | 947 | which is inside the Source Directory. |
935 | </para> | 948 | </para> |
936 | </section> | 949 | </section> |
937 | 950 | ||
938 | <section id='configuring-the-local.conf-file'> | 951 | <section id='configuring-the-local.conf-file'> |
939 | <title>Configuring the local.conf File</title> | 952 | <title>Configuring the local.conf File</title> |
940 | 953 | ||
941 | <para> | 954 | <para> |
942 | Initializing the build environment creates a | 955 | Initializing the build environment creates a |
943 | <filename>conf/local.conf</filename> configuration file | 956 | <filename>conf/local.conf</filename> configuration file |
944 | in the Build Directory. | 957 | in the Build Directory. |
945 | You need to manually edit this file to specify the machine you | 958 | You need to manually edit this file to specify the machine you |
946 | are building: | 959 | are building: |
947 | <literallayout class='monospaced'> | 960 | <literallayout class='monospaced'> |
948 | MACHINE ?= "beaglebone" | 961 | MACHINE ?= "beaglebone" |
949 | </literallayout> | 962 | </literallayout> |
950 | </para> | 963 | </para> |
951 | 964 | ||
952 | <para> | 965 | <para> |
953 | A good deal that goes into a Yocto Project build is simply | 966 | A good deal that goes into a Yocto Project build is simply |
954 | downloading all of the source tarballs. | 967 | downloading all of the source tarballs. |
955 | Steps exist that can help you be more efficient with gathering | 968 | Steps exist that can help you be more efficient with gathering |
956 | source files. | 969 | source files. |
957 | For example, you can set up local mirrors that hold your | 970 | For example, you can set up local mirrors that hold your |
958 | source tarballs or you can pre-fetch all your source without | 971 | source tarballs or you can pre-fetch all your source without |
959 | initiating a build until later. | 972 | initiating a build until later. |
960 | For more information, see the | 973 | For more information, see the |
961 | "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-source-files'>Working with Source Files</ulink>" | 974 | "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-source-files'>Working with Source Files</ulink>" |
962 | section in the Yocto Project Development Manual. | 975 | section in the Yocto Project Development Manual. |
963 | </para> | 976 | </para> |
964 | </section> | 977 | </section> |
965 | 978 | ||
966 | <section id='building-the-image'> | 979 | <section id='building-the-image'> |
967 | <title>Building the Image</title> | 980 | <title>Building the Image</title> |
968 | 981 | ||
969 | <para> | 982 | <para> |
970 | At this point, you need to select an image to build for the | 983 | At this point, you need to select an image to build for the |
971 | Beaglebone hardware. | 984 | Beaglebone hardware. |
972 | If this is your first build using the Yocto Project, you should try | 985 | If this is your first build using the Yocto Project, you should |
973 | the smallest and simplest image: | 986 | try the smallest and simplest image: |
974 | <literallayout class='monospaced'> | 987 | <literallayout class='monospaced'> |
975 | $ bitbake core-image-minimal | 988 | $ bitbake core-image-minimal |
976 | </literallayout> | 989 | </literallayout> |
977 | Now you just wait for the build to finish. | 990 | Now you just wait for the build to finish. |
978 | </para> | 991 | </para> |
979 | 992 | ||
980 | <para> | 993 | <para> |
981 | By default, BitBake aborts when it encounters an error during | 994 | You might encounter various warning messages during the |
982 | the build. | 995 | build. |
983 | If you want to make sure the build continues even when BitBake | 996 | For example, if a source file fetch initially fails, |
984 | encounters an error, use this variation: | 997 | the OpenEmbedded build system notes that and attempts to |
985 | <literallayout class='monospaced'> | 998 | find the files using mirrors. |
999 | Another example could be values requested for but not | ||
1000 | found in the final kernel <filename>.config</filename> | ||
1001 | file. | ||
1002 | For information on configuration warnings, see the | ||
1003 | "<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#generating-configuration-files'>Generating Configuration Files</ulink>" | ||
1004 | section in the Yocto Project Linux Kernel Development Manual. | ||
1005 | </para> | ||
1006 | |||
1007 | <para> | ||
1008 | By default, BitBake aborts when it encounters an error during | ||
1009 | the build. | ||
1010 | If you want to make sure the build continues even when BitBake | ||
1011 | encounters an error, use this variation: | ||
1012 | <literallayout class='monospaced'> | ||
986 | $ bitbake -k core-image-minimal | 1013 | $ bitbake -k core-image-minimal |
987 | </literallayout> | 1014 | </literallayout> |
988 | </para> | 1015 | </para> |
989 | 1016 | ||
990 | <para> | 1017 | <para> |
991 | Once you have your image, you can take steps to load and boot it on | 1018 | Once you have your image, you can take steps to load and boot |
992 | the target hardware. | 1019 | it on the target hardware. |
993 | </para> | 1020 | </para> |
1021 | |||
1022 | <para> | ||
1023 | You can learn about BitBake in general by reading the | ||
1024 | <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual</ulink>. | ||
1025 | </para> | ||
1026 | </section> | ||
1027 | </section> | ||
1028 | |||
1029 | <section id='building-and-booting-minnowboard-max'> | ||
1030 | <title>Building and Booting MinnowBoard MAX</title> | ||
994 | 1031 | ||
995 | <para> | 1032 | <para> |
996 | You can learn about BitBake in general by reading the | 1033 | As of the Yocto Project 1.6 release, the MinnowBoard MAX is |
997 | <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual</ulink>. | 1034 | supported by the Yocto Project and the |
1035 | <filename>meta-intel</filename> | ||
1036 | <filename>intel-corei7-64</filename> and | ||
1037 | <filename>intel-core2-32</filename> Board Support Packages (BSPs). | ||
1038 | <note> | ||
1039 | The MinnowBoard MAX ships with 64-bit firmware. | ||
1040 | If you want to use the board in 32-bit mode, you must | ||
1041 | download the | ||
1042 | <ulink url='http://firmware.intel.com/projects/minnowboard-max'>32-bit firmware</ulink>. | ||
1043 | </note> | ||
998 | </para> | 1044 | </para> |
1045 | |||
1046 | <section id='mm-getting-yocto-and-meta-intel'> | ||
1047 | <title>Getting the Yocto Project and <filename>meta-intel</filename></title> | ||
1048 | |||
1049 | <para> | ||
1050 | Set up your | ||
1051 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink> | ||
1052 | and the <filename>meta-intel</filename> layer | ||
1053 | by using Git to clone the <filename>poky</filename> | ||
1054 | and <filename>meta-intel</filename> repositories. | ||
1055 | These commands use the "&DISTRO_NAME;" branch: | ||
1056 | <literallayout class='monospaced'> | ||
1057 | $ cd ~ | ||
1058 | $ mkdir source | ||
1059 | $ cd source | ||
1060 | $ git clone -b &DISTRO_NAME; git://git.yoctoproject.org/poky | ||
1061 | $ cd poky | ||
1062 | $ git clone -b &DISTRO_NAME; git://git.yoctoproject.org/meta-intel | ||
1063 | </literallayout> | ||
1064 | </para> | ||
1065 | </section> | ||
1066 | |||
1067 | <section id='mm-setting-up-your-host'> | ||
1068 | <title>Setting Up Your Host</title> | ||
1069 | |||
1070 | <para> | ||
1071 | You need some packages for everything to work. | ||
1072 | Rather than duplicate them here, look at the | ||
1073 | "<link linkend='packages'>The Packages</link>" | ||
1074 | section earlier in this quick start. | ||
1075 | </para> | ||
1076 | </section> | ||
1077 | |||
1078 | <section id='mm-initializing-the-build-environment'> | ||
1079 | <title>Initializing the Build Environment</title> | ||
1080 | |||
1081 | <para> | ||
1082 | From the root directory of your | ||
1083 | <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>, | ||
1084 | initialize your environment by running the build environment | ||
1085 | initialization script: | ||
1086 | <literallayout class='monospaced'> | ||
1087 | $ source &OE_INIT_FILE; | ||
1088 | </literallayout> | ||
1089 | At this point, the <filename>build</filename> directory has | ||
1090 | been created for you and it is now your current working | ||
1091 | directory. | ||
1092 | </para> | ||
1093 | </section> | ||
1094 | |||
1095 | <section id='mm-configure-the-build'> | ||
1096 | <title>Configure the Build</title> | ||
1097 | |||
1098 | <para> | ||
1099 | To configure the build, you edit the | ||
1100 | <filename>bblayers.conf</filename> and | ||
1101 | <filename>local.conf</filename> files, both of which are | ||
1102 | located in the <filename>build/conf</filename> directory. | ||
1103 | </para> | ||
1104 | |||
1105 | <para> | ||
1106 | Here is a quick way to make the edits. | ||
1107 | The first command adds the <filename>meta-intel</filename> | ||
1108 | branch, which contains the <filename>intel-core*</filename> | ||
1109 | BSPs to the build. | ||
1110 | The second command selects the BSP by setting the | ||
1111 | <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink> | ||
1112 | variable. | ||
1113 | <literallayout class='monospaced'> | ||
1114 | $ echo 'BBLAYERS += "~/source/poky/meta-intel"' >> conf/bblayers.conf | ||
1115 | $ echo 'MACHINE = "intel-corei7-64"' >> conf/local.conf | ||
1116 | </literallayout> | ||
1117 | <note><title>Notes</title> | ||
1118 | <para> | ||
1119 | If you want a 64-bit build, use the following: | ||
1120 | <literallayout class='monospaced'> | ||
1121 | $ echo 'MACHINE = "intel-corei7-64"' >> conf/local.conf | ||
1122 | </literallayout> | ||
1123 | </para> | ||
1124 | |||
1125 | <para> | ||
1126 | If you want 32-bit images, use the following: | ||
1127 | <literallayout class='monospaced'> | ||
1128 | $ echo 'MACHINE = "intel-core2-32"' >> conf/local.conf | ||
1129 | </literallayout> | ||
1130 | </para> | ||
1131 | </note> | ||
1132 | </para> | ||
1133 | </section> | ||
1134 | |||
1135 | <section id='mm-build-the-image'> | ||
1136 | <title>Build the Image</title> | ||
1137 | |||
1138 | <para> | ||
1139 | Use this command to build the minimal image for | ||
1140 | MinnowBoard MAX: | ||
1141 | <literallayout class='monospaced'> | ||
1142 | $ bitbake core-image-minimal | ||
1143 | </literallayout> | ||
1144 | Once the build completes, the resulting basic console image | ||
1145 | is located in the Build Directory here: | ||
1146 | <literallayout class='monospaced'> | ||
1147 | tmp/deploy/images/intel-corei7-64/core-image-minimal-intel-corei7-64.hddimg | ||
1148 | </literallayout> | ||
1149 | </para> | ||
1150 | </section> | ||
1151 | |||
1152 | <section id='mm-write-the-image'> | ||
1153 | <title>Write the Image</title> | ||
1154 | |||
1155 | <para> | ||
1156 | You can write the image to a USB key, SATA drive, or SD card | ||
1157 | by using the <filename>mkefidisk.sh</filename> script, | ||
1158 | which is included in the <filename>poky</filename> | ||
1159 | repository at <filename>scripts/contrib/mkefidisk.sh</filename>: | ||
1160 | <literallayout class='monospaced'> | ||
1161 | $ sudo $HOME/source/poky/scripts/contrib/mkefidisk.sh <replaceable>HOST_DEVICE</replaceable> \ | ||
1162 | tmp/deploy/images/intel-corei7-64/core-image-minimal-intel-corei7-64.hddimg <replaceable>TARGET_DEVICE</replaceable> | ||
1163 | </literallayout> | ||
1164 | In the previous command, <replaceable>HOST_DEVICE</replaceable> | ||
1165 | is the device node on the build system (e.g. | ||
1166 | <filename>/dev/sdc</filename> or | ||
1167 | <filename>/dev/mmcblk0</filename>). | ||
1168 | <replaceable>TARGET_DEVICE</replaceable> is the name of the | ||
1169 | device as the MinnowBoard MAX sees it (e.g. | ||
1170 | <filename>/dev/sda</filename> or | ||
1171 | <filename>/dev/mmcblk0</filename>). | ||
1172 | </para> | ||
1173 | </section> | ||
1174 | |||
1175 | <section id='mm-boot-the-image'> | ||
1176 | <title>Boot the Image</title> | ||
1177 | |||
1178 | <para> | ||
1179 | With the boot device provisioned, you can insert the media into | ||
1180 | the MinnowBoard MAX and boot the hardware. | ||
1181 | The board should automatically detect the media and boot to | ||
1182 | the bootloader and subsequently the operating system. | ||
1183 | </para> | ||
1184 | |||
1185 | <para> | ||
1186 | If the board does not boot automatically, you can boot it | ||
1187 | manually from the EFI shell as follows: | ||
1188 | <literallayout class='monospaced'> | ||
1189 | Shell> connect -r | ||
1190 | Shell> map -r | ||
1191 | Shell> fs0: | ||
1192 | Shell> bootx64 | ||
1193 | </literallayout> | ||
1194 | <note> | ||
1195 | For a 32-bit image use the following: | ||
1196 | <literallayout class='monospaced'> | ||
1197 | Shell> bootia32 | ||
1198 | </literallayout> | ||
1199 | </note> | ||
1200 | </para> | ||
1201 | </section> | ||
1202 | |||
1203 | <section id='mm-next-steps'> | ||
1204 | <title>Next Steps</title> | ||
1205 | |||
1206 | <para> | ||
1207 | Now that you can build a basic image, you could experiment | ||
1208 | by building some other example images: | ||
1209 | <literallayout class='monospaced'> | ||
1210 | $ bitbake core-image-sato | ||
1211 | $ bitbake core-image-sato-sdk | ||
1212 | </literallayout> | ||
1213 | Another possibility is to experiment creating your own image | ||
1214 | recipes that add packages to suit your needs. | ||
1215 | For information on how to create recipes, see the | ||
1216 | "<ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-writing-a-new-recipe'>Writing a New Recipe</ulink>" | ||
1217 | section in the Yocto Project Development Manual. | ||
1218 | </para> | ||
1219 | </section> | ||
999 | </section> | 1220 | </section> |
1000 | </section> | 1221 | </section> |
1001 | 1222 | ||