国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品
電子工程網
標題:
移植Linux-5.4+內核到4412開發板
[打印本頁]
作者:
落風
時間:
2020-6-24 11:07
標題:
移植Linux-5.4+內核到4412開發板
前言
ITOP-4412開發板被Linux官方支持,所以我們在4412上學習新的內核是非常方便的,本文作者是4412精英群8群一位技術高手,接下來,我們一起來欣賞下他的表演。
環境說明
OS版本
Ubuntu 20 LTS
1.jpg
交叉編譯環境配置
~$ sudo apt install gcc-arm-linux-gnueabihf
~$ sudo apt install flex
~$ sudo apt install bison
~$ sudo apt install u-boot-tools
目標開發板
CPU (Exynos4412,四核Cortex-A9,主頻為1.4GHz-1.6GHz)
RAM (1GB 雙通道 DDR3)
ROM (8GB EMMC)
其他請見官網鏈接
1. 下載源碼
~$ git clone
https://github.com/jason416/linux.gi
Note:移植好的源碼見博主github倉庫的iTop4412分支。
2. 配置內核
2.1 進入內核源碼目錄
~/linux-5.4$ ls
arch COPYING Documentation include Kbuild lib Makefile README security usr
block CREDITS drivers init Kconfig LICENSES mm samples sound virt
certs crypto fs ipc kernel MAINTAINERS net scripts tools
jason@jason-vm2:~/arm-develop/linux$
2.2 修改內核配置
說明:
Note: 官方提供了所有三星系列的默認配置,需要先生成一個exynos的配置為基礎,再上面再修改成跟板子一致的配置選項即可。
為了避免每次都需要指定ARCH和CROSS_COMPILE變量,可以直接在頂層Makefile直接指定好,如下所示:
2.jpg
選擇系統類型
System Type --->
Samsung EXYNOS --->
--- Samsung EXYNOS
[] SAMSUNG EXYNOS3
SAMSUNG EXYNOS4
[] SAMSUNG EXYNOS5
*** EXYNOS SoCs ***
-*- SAMSUNG EXYNOS4210
SAMSUNG EXYNOS4412
配置調試串口 - 設置為UART2
Kernel hacking --->
Kernel low-level debugging functions (read help!)
Kernel low-level debugging port (Use Samsung S3C UART 2 for low-level debug) --->
開啟串口調試驅動
Device Drivers --->
Character devices --->
Serial drivers --->
<*> Samsung SoC serial support
Samsung SoC serial debug
Support for console on Samsung SoC serial port
開啟DM96XX網卡驅動
Device Drivers --->
Network device support --->
<*> USB Network Adapters --->
<*> Davicom DM96xx based USB 10/100 ethernet devices
設置內核壓縮模式為LZMA(非必須,可減小文件大小)
General setup --->
() Build ID Salt
Kernel compression mode (LZMA) --->
編譯內核
~/linux-5.4$ make uImage LOADADDR=0x40008000 -j$(nproc)
...
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
UIMAGE arch/arm/boot/uImage
Image Name: Linux-5.4.47
Created: Sun Jun 21 22:41:40 2020
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 5337464 Bytes = 5212.37 KiB = 5.09 MiB
Load Address: 40008000
Entry Point: 40008000
Kernel: arch/arm/boot/uImage is ready
這里需要指定LOADADDR變量,才能生成正確的uImage文件。因為在uboot啟動內核時,會先解析uImage中的前64B頭信息,定義如下:
3.jpg
3. 修改設備樹(以適配開發板)
3.1 說明
在前面的步驟完成后,已經能夠編譯出可以運行的內核了,但是最后還需要根據板子的差異性,對設備樹文件進行調整,以適配目標板。
3.2 修改
屏蔽掉firmware節點(安全相關,不啟用,也不知道怎么用…)
修改bus_dmc 節點devfreq-events為devfreq-event
修改regulators 節點參數(參考原理圖中的參數)
修改如下:
--- a/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
+++ b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
@@ -23,10 +23,12 @@
reg = <0x40000000 0x40000000>;
};
+#if 0
firmware@203f000
{
compatible = "samsung,secure-firmware";
reg = <0x0203F000 0x1000>;
};
+#endif
fixed-rate-clocks {
xxti {
@@ -70,7 +72,7 @@
};
&bus_dmc {
- devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
+ devfreq-event = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
vdd-supply = <&buck1_reg>;
status = "okay";
};
@@ -167,8 +169,8 @@
regulators {
ldo1_reg: LDO1 {
regulator-name = "VDD_ALIVE";
- regulator-min-microvolt = <1100000>;
- regulator-max-microvolt = <1100000>;
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1000000>;
regulator-always-on;
regulator-boot-on;
op_mode = <1>; /* Normal Mode */
@@ -230,8 +232,8 @@
ldo9_reg: LDO9 {
regulator-name = "VDD33_LCD";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
op_mode = <1>; /* Normal Mode */
};
@@ -252,8 +254,8 @@
ldo12_reg: LDO12 {
regulator-name = "VDD33_UOTG";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
regulator-always-on;
op_mode = <1>; /* Normal Mode */
};
@@ -300,8 +302,8 @@
/* Used by HSIC */
ldo18_reg: LDO18 {
regulator-name = "VDDIOPERI_28";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
regulator-always-on;
op_mode = <1>; /* Normal Mode */
};
@@ -313,15 +315,15 @@
ldo20_reg: LDO20 {
regulator-name = "VDD28_CAM";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <2800000>;
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
op_mode = <1>; /* Normal Mode */
};
ldo21_reg: LDO21 {
regulator-name = "VDD28_AF";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <2800000>;
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
op_mode = <1>; /* Normal Mode */
};
@@ -341,8 +343,8 @@
ldo24_reg: LDO24 {
regulator-name = "VDD33_A31";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
op_mode = <1>; /* Normal Mode */
};
@@ -430,8 +432,8 @@
buck7_reg: BUCK7 {
regulator-name = "pvdd_buck7";
- regulator-min-microvolt = <750000>;
- regulator-max-microvolt = <2000000>;
+ regulator-min-microvolt = <2050000>;
+ regulator-max-microvolt = <2050000>;
regulator-boot-on;
regulator-always-on;
op_mode = <1>; /* Normal Mode */
3.3 編譯dts
~/linux-5.4$ make dtbs
4. 啟動測試
根據另一個專題《Uboot-2017-11移植DM9621網卡專題》移植的支持網絡功能的uboot,和移植的ubuntu-base-20.04-base-armhf文件系統(下篇文章更新移植方法),可以直接tftp測試內核,效果如下:
4.jpg
5.jpg
到這一步,移植工作就完成了,是不是覺得很容易呢~
更多內容關注公眾號噢:
weixin.jpg
歡迎光臨 電子工程網 (http://m.qingdxww.cn/)
Powered by Discuz! X3.4
主站蜘蛛池模板:
欧美男女网站
|
国产精品欧美亚洲
|
理论毛片
|
国产欧美日韩在线视频
|
久久天天综合
|
亚洲国产欧美日韩
|
欧美精品高清
|
嫩草影院成人
|
久久精品视频热
|
国产午夜免费不卡精品理论片
|
久久麻豆精品
|
ww亚洲ww亚在线观看
|
国产午夜视频在线观看第四页
|
国产欧美精品三区
|
黑人中文字幕在线精品视频站
|
色老头成人免费视频天天综合
|
久久精品伊人网
|
欧美人与动性行为高清视频
|
国产手机视频
|
人人模人人
|
色播久久
|
香蕉视频网站免费观视频
|
奇米一区二区三区四区久久
|
在线观看国产免费高清不卡
|
我和闺蜜小敏在ktv被八人伦
|
成人免费xx
|
国产综合久久久久影院
|
色婷婷基地
|
不卡影视
|
日本一区二区三区精品
|
插插插操操操
|
亚洲日本乱码在线观看
|
四虎永久在线精品国产
|
69精品在线观看
|
久久久免费网站
|
日韩一级在线视频
|
久久久久免费观看
|
国内精品手机在线观看视频
|
欧美一区二三区
|
久草免费小视频
|
国产毛片一区二区三区精品
|