上一篇博文《初识DragonBoard 410c》已经为大家简单介绍了DragonBoard 410c这款平台,并且也介绍了Ubuntu系统和Android系统烧写方法。今天,将介绍一下Android系统定制方面的内容。这样你就可以自己基于Android系统进行修改、定制、开发等,来满足自己的需求。
下载Android源码
大家可以通过repo命令下载代码:
repo init -u git://codeaurora.org/platform/manifest -b release -m LA.BR.1.2.4-01810-8x16.0.xml
repo sync -c --no-tags -j4
上面的release版本是今年9月份的,如果大家想下载最新版本应该怎么办呢?下面给大家介绍一下如何查找代码库的位置。
首先打开CodeAurora网站https://www.codeaurora.org/,点击TOP PROJECTS的Android for MSM进入对应的project。
进入Android for MSM页面后点击下图中红色圆圈的Wiki按钮,访问此project的wiki页面。
在Wiki页面中查找Branch Release章节,你可以找到代码下载方法(红框处)。我们要下载Release分支的代码,所以点击下图中红圈处的release链接,会进入release列表页面。
在此页面就可以找到自己想要代码的Manifest了,DragonBoard 410c用的是Snapdragon 410芯片,所以我们选择的Chipset是msm8916_64。
修改确认kernel的UART配置
下载完代码后,我们需要对kernel的UART进行简单配置,具体配置参数可以参考kernel的devicetree文档(kernel/Documentation/devicetree/bindings/tty/serial/msm_serial.txt)。
首先,确认kernel/arch/arm64/boot/dts/qcom/msm8916.dtsi里的blsp1_uart2设置,具体设置如下:
blsp1_uart2: serial@78b0000 {
compatible = "qcom,msm-lsuart-v14";
reg = <0x78b0000 0x200>;
interrupts = <0 108 0>;
status = "disabled";
clocks = <&clock_gcc clk_gcc_blsp1_uart2_apps_clk>,
<&clock_gcc clk_gcc_blsp1_ahb_clk>;
clock-names = "core_clk", "iface_clk";
};
然后,确认kernel/arch/arm64/boot/dts/qcom/msm8916-pinctrl.dtsi里的uartconsole设置。
pmx-uartconsole {
qcom,pins = <&gp 4>, <&gp 5>;
qcom,num-grp-pins = <2>;
qcom,pin-func = <2>;
label = "uart-console";
uart_console_sleep: uart-console {
drive-strength = <2>;
bias-pull-down;
};
};
最后,确认kernel/drivers/clk/qcom/clock-gcc-8916.c中的blsp1_uart2_apps_clk_src ,如下:
static struct rcg_clk blsp1_uart2_apps_clk_src = {
.cmd_rcgr_reg = BLSP1_UART2_APPS_CMD_RCGR,
.set_rate = set_rate_mnd,
.freq_tbl = ftbl_gcc_blsp1_uart1_6_apps_clk,
.current_freq = &rcg_dummy_freq,
.base = &virt_bases[GCC_BASE],
.c = {
.dbg_name = "blsp1_uart2_apps_clk_src",
.ops = &clk_ops_rcg_mnd,
VDD_DIG_FMAX_MAP2(LOW, 32000000, NOMINAL, 64000000),
CLK_INIT(blsp1_uart2_apps_clk_src.c),
},
};
确认修改完以上的配置后就可以编译系统了。
编译源码
通过以下命令编译Android系统。编译完的image可以通过fastboot命令烧写到DragonBoard 410c上。
source build/envsetup.sh
lunch msm8916_64-userdebug
make -j4