blob: db2b381deb5da9a0e2c14801a954b0e2f8d323c7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
#create the deployment directory-tree
BURNFLASH := "${THISDIR}/files/${MACHINE}"
IMAGE_ROOTFS = "${WORKDIR}/${IMAGE_NAME}${PV}/rootfs"
U_BOOT_EXT = "bin"
U_BOOT_EXT_mx6 = "imx"
U_BOOT_EXT_vf = "imx"
U_BOOT_SYMLINK = "u-boot-${MACHINE}.${U_BOOT_EXT}"
U_BOOT_SYMLINK_tegra = "u-boot-dtb-tegra-${MACHINE}.${U_BOOT_EXT}"
U_BOOT_BINARY = "u-boot.${U_BOOT_EXT}"
U_BOOT_BINARY_tegra = "u-boot-dtb-tegra.${U_BOOT_EXT}"
#we need some native tools for deployment
DEPENDS_append_mx6 = " imx-loader-native"
#FIXME: 32-bit tegrarcm built on F20 does not run on 64-bit F20 even with properly installed 32-bit libs!
DEPENDS_append_tegra = " cbootimage-native tegrarcm-native"
DEPENDS_append_tegra2 = " mtd-utils-native"
DEPENDS_append_vf = " mtd-utils-native imx-loader-native"
#we need mkimage to produce the U-Boot scripts
DEPENDS_append = " u-boot-mkimage-native"
imagedeploytools() {
# default to nothing to deploy
:
}
imagedeploytools_append_mx6() {
IMAGE_ROOT="${IMAGE_ROOTFS}/../imx_flash/"
rm -f ${IMAGE_ROOT}/imx_flash/imx_usb ${IMAGE_ROOT}/imx_flash/*.conf
mkdir -p ${IMAGE_ROOT}
# add imx-loader and its configuration files
cp ${STAGING_BINDIR_NATIVE}/imx_usb ${IMAGE_ROOT}/
${BUILD_STRIP} ${IMAGE_ROOT}/imx_usb
cp ${STAGING_ETCDIR_NATIVE}/imx-loader.d/imx_usb.conf ${IMAGE_ROOT}/
cp ${STAGING_ETCDIR_NATIVE}/imx-loader.d/mx6_usb_work.conf ${IMAGE_ROOT}/
}
imagedeploytools_append_tegra() {
IMAGE_ROOT="${IMAGE_ROOTFS}/../tegra-uboot-flasher/"
mkdir -p ${IMAGE_ROOT}
# add cbootimage and tegrarcm
cp ${STAGING_BINDIR_NATIVE}/cbootimage ${IMAGE_ROOT}/
cp ${STAGING_BINDIR_NATIVE}/tegrarcm ${IMAGE_ROOT}/
${BUILD_STRIP} ${IMAGE_ROOT}/cbootimage
${BUILD_STRIP} ${IMAGE_ROOT}/tegrarcm
}
imagedeploytools_append_tegra2() {
# add the mkfs.ubifs binary
cp ${STAGING_DIR_NATIVE}/usr/sbin/mkfs.ubifs ${IMAGE_ROOT}/
${BUILD_STRIP} ${IMAGE_ROOT}/mkfs.ubifs
}
imagedeploytools_append_vf() {
IMAGE_ROOT="${IMAGE_ROOTFS}/../vf_flash/"
rm -f ${IMAGE_ROOT}/mkfs.ubifs ${IMAGE_ROOT}/imx_uart
mkdir -p ${IMAGE_ROOT}
# add the mkfs.ubifs binary
cp ${STAGING_DIR_NATIVE}/usr/sbin/mkfs.ubifs ${IMAGE_ROOT}/
${BUILD_STRIP} ${IMAGE_ROOT}/mkfs.ubifs
# add imx-loader and its configuration files
cp ${STAGING_BINDIR_NATIVE}/imx_uart ${IMAGE_ROOT}/
${BUILD_STRIP} ${IMAGE_ROOT}/imx_uart*
cp ${STAGING_ETCDIR_NATIVE}/imx-loader.d/vybrid_usb_work.conf ${IMAGE_ROOT}/
}
imagedeploy_kernel() {
# put kernel, device-tree into the bin directories, remove the kernel/dtb from the rootfs/boot
rm -f ${IMAGE_ROOTFS}/boot/uImage* ${IMAGE_ROOTFS}/boot/*.dtb
cp -pP ${DEPLOY_DIR_IMAGE}/uImage* ${IMAGE_ROOTFS}/../${MACHINE}_bin/
ls ${DEPLOY_DIR_IMAGE}/*.dtb 2> /dev/null && cp -pP ${DEPLOY_DIR_IMAGE}/*.dtb ${IMAGE_ROOTFS}/../${MACHINE}_bin/
mv ${IMAGE_ROOTFS}/../${MACHINE}_bin/uImage-${MACHINE}.bin ${IMAGE_ROOTFS}/../${MACHINE}_bin/uImage
}
imagedeploy_kernel_tegra2() {
# Do nothing, we use the kernel from /boot inside root fs
:
}
imagedeploy_kernel_vf() {
# Do nothing, we use the kernel from /boot inside root fs
:
}
fakeroot do_imagedeploy() {
cd ${WORKDIR}
cp -pLr ${BURNFLASH}/* ${IMAGE_NAME}${PV}/
cd ${IMAGE_NAME}${PV}/${MACHINE}_bin
./mk-u-boot-scripts.sh
cd ${WORKDIR}
imagedeploy_kernel
cp -pP ${DEPLOY_DIR_IMAGE}/u-boot* ${IMAGE_ROOTFS}/../${MACHINE}_bin/
rm -f ${IMAGE_ROOTFS}/../${MACHINE}_bin/u-boot-hsmmc-${MACHINE}.${U_BOOT_EXT}
mv ${IMAGE_ROOTFS}/../${MACHINE}_bin/${U_BOOT_SYMLINK} ${IMAGE_ROOTFS}/../${MACHINE}_bin/${U_BOOT_BINARY}
# add the rootfs version to the welcome banner
echo "${IMAGE_NAME}${PV}_${DATE}" >> ${IMAGE_ROOTFS}/etc/issue
echo "" >> ${IMAGE_ROOTFS}/etc/issue
# add additional tools if required
imagedeploytools
# remove intermediate file rootfs.lock
rm -f ${IMAGE_NAME}${PV}/rootfs.lock
#create tarball
DATE=`date +%Y%m%d`
tar -cjf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${PV}_${DATE}.tar.bz2 ${IMAGE_NAME}${PV}
}
addtask imagedeploy after do_rootfs before do_build
|