1. 這篇是筆記文, 備份用+自爽用, 所以不具參考價值.
2. 這篇重點在講 cross kernel build. 所以 BSP 支援的怎樣那我不管...
3. 我不保證其它平臺這樣 cross-compile 可以用, 最少我 Marvell 88F6281 就沒成功過.
拿 kernel source 前先弄到 toolchain, toolchain 就很多來源了, 所以不討論. 拿到 3.2.50 解開後, 因為我是要 build 到 i.mx35, 它是 ARM, 所以先來這裡看:
find arch/arm/configs/ |grep "mx"
arch/arm/configs/imx_v4_v5_defconfig
arch/arm/configs/mx3_defconfig
arch/arm/configs/mx5_defconfig
arch/arm/configs/mxs_defconfig
好吧, 精簡成這樣. 我要的是 mx35, 所以是 mx3_defconfig.
make ARCH=arm CROSS_COMPILE=${請自行代入 tool-chain 的東西} mx3_defconfig
可以先看到一些 kernel.org 預設的一些選項, 在這建議加上幾個 framebuffer 用的東西:
Device Drivers->Character devices->
[*] Virtual terminal
[*] Enable character translations in console
[*] Support for console on virtual terminal
[*] Support for binding and unbinding console drivers
這樣才可以在 Graphics support 裡看到 Console display driver support.
有這個東西, 在不需要掛 rootfs 就可以測試 framebuffer 是不是運作正常, 像 console message, 像那欠打的企鵝. 那企鵝還可以拿來當校色標準, 看要調整成 RGB565 還 RGB666 還 RGB24 或其它. 當然, Support for frame buffer devices -> MX3 Framebuffer support 也別忘了選上.
panel 的設定可以參考 arch/arm/mach-imx/mach-pcm043.c 裡的設定與註冊方法, SDHC 也可以參考它的. Phytec 這個 PCM043 有相當多有用的 code 可以參考來當自己 target board 的設定.
NAND 的 partition 註冊:
static struct mtd_partition mxc_nand_partitions[] = {
{
.name = "nand.bootloader",
.offset = 0,
.size = 4 * 1024 * 1024,
},
{ //自己加, 這個是最後一段.
.name = "nand.rootfs",
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
},
};
static const struct mxc_nand_platform_data mx35pdk_nand_board_info __initconst = {
.width = 1,
.hw_ecc = 1,
.flash_bbt = 1,
.parts = mxc_nand_partitions,
.nr_parts = ARRAY_SIZE(mxc_nand_partitions),
};
//board_init 加上
//imx35_add_mxc_nand(&mx35pdk_nand_board_info);
再來頂多是自己在 kernel 裡新增加自己的板子代號, 不過老實講意義不大... 所以略過.
ps. 20130930 3.11.1 裡是 imx_v4_v5_defconfig 這一個
沒有留言:
張貼留言