瑞芯微Rockchip开发者社区
登录
直播中
h1654155275.5916
7年用户
993经验值
私信
关注
[问答]
怎样在RK3399核心板上安装ubuntu18.04系统呢
开启该帖子的消息推送
RK3399
怎样在RK3399核心板上安装ubuntu18.04系统呢?有哪些安装步骤?
回帖
(1)
杨万富
2022-3-7 16:43:49
使用RK3399核心板CORE-3399-JD4,接口板是自制的,采用MIPI接口转LVDS,现在在3399的板子上装ubuntu18.04系统,在该系统上点亮LVDS屏幕。
1、首先安装Linux系统
我安装的是ubuntu16.04的系统,具体安装步骤不再过多描述。
2、按照firefly的维基教程安装开发环境和ubuntu18.04的系统源码
3、根文件系统
使用firefly官方提供的根文件系统,编译完成后总是有问题,于是下载了ubuntu18.04,2020年份的系统镜像,使用Android_Tool工具进行解包,将解包后其中的rootfs.img文件系统放到源码中进行编译,可以正常启动。
4、切换编译系统类型
我使用的是RK3399,aio-3399-jd4-lvds-ubuntu.mk,根据自己的型号选择相应的版本,在源码根目录输入
./build.sh aio-3399-jd4-lvds-ubuntu.mk
打开这个文件,可以看到里面的内容,kernel dts为 rk3399-firefly-aiojd4-lvds.dts
5、配置设备树
在内核设备树目录下打开该dts,/kernel/arch/arm64/boot/dts/rockchip
下图中红框标出的三个,为配置外设经常用到的3个配置文件
修改背光
&backlight {
status = "okay";
pwms = <&pwm1 0 25000 1>;
//enable-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
default-brightness-level = <199>;
polarity = <1>;
brightness-levels = <
199 198 197 196 195 194 193 192 191 190
189 188 187 186 185 184 183 182 181 180
179 178 177 176 175 174 173 172 171 170
169 168 167 166 165 164 163 162 161 160
159 158 157 156 155 154 153 152 151 150
149 148 147 146 145 144 143 142 141 140
139 138 137 136 135 134 133 132 131 130
129 128 127 126 125 124 123 122 121 120
119 118 117 116 115 114 113 112 111 110
109 108 107 106 105 104 103 102 101 100
99 98 97 96 95 94 93 92 91 90
89 88 87 86 85 84 83 82 81 80
79 78 77 76 75 74 73 72 71 70
69 68 67 66 65 64 63 62 61 60
59 58 57 56 55 54 53 52 51 50
49 48 47 46 45 44 43 42 41 40
39 38 37 36 35 34 33 32 31 30
29 28 27 26 25 24 23 22 21 20
19 18 17 16 15 14 13 12 11 10
9 8 7 6 5 4 3 2 1 0
>;
};
查询一下电路上背光是接到那个PWM上的,pwm0或者pwm1,配置为相应pwm。
设置default-level,即默认亮度。
设置brightness-level,即亮暗变化方向。
修改dsi配置,因为我在安卓上移植过液晶屏,所以屏参已经配置好了,这里我直接复制过来就行了。我使用的是天马的TM101JDHG30,具体屏的初始化序列,有一个文件可以配置,文件名称为:TC358764_5_774_5XBG_DSI-LVDS_Tv11p_nm 3399.xls,具体配置大家自行百度吧,时间长了我也记不太清楚了。
&dsi {
status = "okay";
rockchip,lane-rate = <800>;
dsi_panel: panel {
;
reg = <0>;
//ddc-i2c-bu
//power-supply = <&vcc_lcd>;
pinctrl-0 = <&lcd_panel_reset>;
backlight = <&backlight>;
//enable-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
reset-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
dsi,format =
;
//dsi,format =
;
//bus-format =
;
//bus-format =
;
dsi,lvds-force-clk = <800>; // 800/2/3 ~= 65Mhz
dsi,lanes = <4>;
dsi,channel = <0>;
enable-delay-ms = <35>;
prepare-delay-ms = <6>;
unprepare-delay-ms = <0>;
disable-delay-ms = <20>;
size,width = <120>;
size,height = <170>;
status = "okay";
panel-init-sequence = [
29 00 06 3C 01 09 00 07 00
29 00 06 14 01 06 00 00 00
29 00 06 64 01 09 00 00 00
29 00 06 68 01 09 00 00 00
29 00 06 6C 01 09 00 00 00
29 00 06 70 01 09 00 00 00
29 00 06 34 01 1F 00 00 00
29 00 06 10 02 1F 00 00 00
29 00 06 04 01 01 00 00 00
29 00 06 04 02 01 00 00 00
29 00 06 50 04 21 01 E0 15
29 00 06 54 04 04 00 04 00
29 00 06 58 04 00 05 28 00
29 00 06 5C 04 01 00 02 00
29 00 06 60 04 20 03 28 00
29 00 06 64 04 01 00 00 00
29 10 06 A0 04 06 80 44 00
29 00 06 A0 04 06 80 04 00
29 00 06 04 05 04 00 00 00
29 00 06 80 04 00 01 02 03
29 00 06 84 04 04 07 05 08
29 00 06 88 04 09 0A 0E 0F
29 00 06 8C 04 0B 0C 0D 10
29 00 06 90 04 16 17 11 12
29 00 06 94 04 13 14 15 1B
29 00 06 98 04 18 19 1A 06
29 00 06 9C 04 31 04 00 00
];
panel-exit-sequence = [
05 05 01 28
05 78 01 10
];
power_ctr: power_ctr {
rockchip,debug = <0>;
lcd_rst: lcd-rst {
gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&lcd_panel_reset>;
rockchip,delay = <120>;
};
};
disp_timings: display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <66866760>;
hactive = <1280>;
vactive = <800>;
hsync-len = <10>;
hback-porch = <2>;
hfront-porch = <30>;
vsync-len = <1>;
vback-porch = <2>;
vfront-porch = <40>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
};
};
};
};
下边为dsi配置的具体分析:
其中reset-gpios按照电路图引脚配置,要搜索一下是否有其他地方占用了这个IO资源,占用的屏蔽掉。
dsi,format输出格式,我的为RGB888。
dsi,lvds-force-clk,屏的频率,800MHz。
dsi,lanes,看电路图,用了几路线,填对应的数。
dsi,channel,看电路用了那个通道。
初始化序列,通过上边说的TC358764_5_774_5XBG_DSI-LVDS_Tv11p_nm 3399.xls生成对应的初始化序列。也可以跟厂家咨询初始化序列。
下边为屏的退出序列和时序配置。
clock-frequency为时钟频率,通过计算得出。
hactive为屏幕长,vactive为屏幕宽,和屏幕尺寸对应,剩下的为留边的长度宽度,如果屏幕有黑边或者少显示,则调整下边的这些参数即可。
修改vopl,vopb,如下图所示
hdmi使用的是vopl,那么dsi使用vopb,如图所示,hdmi_in_vopb为disabled,hdmi_in_vopl为okay,dsi_in_vopl为disabled,dsi_in_vopb为okay。各用一路。
配置好后,重新编译,烧录即可。
如果屏幕没有亮,则应检查以下几项:
1、reset引脚是否对,默认高低电平是否对,是否有其他地方配置该引脚。
2、屏幕初始化序列是否正确。
3、时序配置是否正确,根据屏幕参数进行配置。
4、vopl,vopb的配置是否正确,hdmi使用一路,dsi使用一路。
RK3399的linux系统,配置LVDS屏幕是可以使用的,如果不成功,则检查上述几项,基本就完事了。
遇到的问题:
1、升级后屏幕不亮,但是有背光,通过修改背光的默认值,背光有变化,说明dts的配置是没问题的,只是有某个地方没有配置对。
2、修改vopl,vopb配置后,HDMI无输出,说明配置的dts是正确的。
3、修改reset引脚后,屏幕出现白色,带有竖条纹,说明驱动有,可以使用,只是配置有问题。
4、搜索reset引脚,将其他dtsi中有用到该引脚的地方去掉后,液晶屏点亮。
使用RK3399核心板CORE-3399-JD4,接口板是自制的,采用MIPI接口转LVDS,现在在3399的板子上装ubuntu18.04系统,在该系统上点亮LVDS屏幕。
1、首先安装Linux系统
我安装的是ubuntu16.04的系统,具体安装步骤不再过多描述。
2、按照firefly的维基教程安装开发环境和ubuntu18.04的系统源码
3、根文件系统
使用firefly官方提供的根文件系统,编译完成后总是有问题,于是下载了ubuntu18.04,2020年份的系统镜像,使用Android_Tool工具进行解包,将解包后其中的rootfs.img文件系统放到源码中进行编译,可以正常启动。
4、切换编译系统类型
我使用的是RK3399,aio-3399-jd4-lvds-ubuntu.mk,根据自己的型号选择相应的版本,在源码根目录输入
./build.sh aio-3399-jd4-lvds-ubuntu.mk
打开这个文件,可以看到里面的内容,kernel dts为 rk3399-firefly-aiojd4-lvds.dts
5、配置设备树
在内核设备树目录下打开该dts,/kernel/arch/arm64/boot/dts/rockchip
下图中红框标出的三个,为配置外设经常用到的3个配置文件
修改背光
&backlight {
status = "okay";
pwms = <&pwm1 0 25000 1>;
//enable-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
default-brightness-level = <199>;
polarity = <1>;
brightness-levels = <
199 198 197 196 195 194 193 192 191 190
189 188 187 186 185 184 183 182 181 180
179 178 177 176 175 174 173 172 171 170
169 168 167 166 165 164 163 162 161 160
159 158 157 156 155 154 153 152 151 150
149 148 147 146 145 144 143 142 141 140
139 138 137 136 135 134 133 132 131 130
129 128 127 126 125 124 123 122 121 120
119 118 117 116 115 114 113 112 111 110
109 108 107 106 105 104 103 102 101 100
99 98 97 96 95 94 93 92 91 90
89 88 87 86 85 84 83 82 81 80
79 78 77 76 75 74 73 72 71 70
69 68 67 66 65 64 63 62 61 60
59 58 57 56 55 54 53 52 51 50
49 48 47 46 45 44 43 42 41 40
39 38 37 36 35 34 33 32 31 30
29 28 27 26 25 24 23 22 21 20
19 18 17 16 15 14 13 12 11 10
9 8 7 6 5 4 3 2 1 0
>;
};
查询一下电路上背光是接到那个PWM上的,pwm0或者pwm1,配置为相应pwm。
设置default-level,即默认亮度。
设置brightness-level,即亮暗变化方向。
修改dsi配置,因为我在安卓上移植过液晶屏,所以屏参已经配置好了,这里我直接复制过来就行了。我使用的是天马的TM101JDHG30,具体屏的初始化序列,有一个文件可以配置,文件名称为:TC358764_5_774_5XBG_DSI-LVDS_Tv11p_nm 3399.xls,具体配置大家自行百度吧,时间长了我也记不太清楚了。
&dsi {
status = "okay";
rockchip,lane-rate = <800>;
dsi_panel: panel {
;
reg = <0>;
//ddc-i2c-bu
//power-supply = <&vcc_lcd>;
pinctrl-0 = <&lcd_panel_reset>;
backlight = <&backlight>;
//enable-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
reset-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
dsi,format =
;
//dsi,format =
;
//bus-format =
;
//bus-format =
;
dsi,lvds-force-clk = <800>; // 800/2/3 ~= 65Mhz
dsi,lanes = <4>;
dsi,channel = <0>;
enable-delay-ms = <35>;
prepare-delay-ms = <6>;
unprepare-delay-ms = <0>;
disable-delay-ms = <20>;
size,width = <120>;
size,height = <170>;
status = "okay";
panel-init-sequence = [
29 00 06 3C 01 09 00 07 00
29 00 06 14 01 06 00 00 00
29 00 06 64 01 09 00 00 00
29 00 06 68 01 09 00 00 00
29 00 06 6C 01 09 00 00 00
29 00 06 70 01 09 00 00 00
29 00 06 34 01 1F 00 00 00
29 00 06 10 02 1F 00 00 00
29 00 06 04 01 01 00 00 00
29 00 06 04 02 01 00 00 00
29 00 06 50 04 21 01 E0 15
29 00 06 54 04 04 00 04 00
29 00 06 58 04 00 05 28 00
29 00 06 5C 04 01 00 02 00
29 00 06 60 04 20 03 28 00
29 00 06 64 04 01 00 00 00
29 10 06 A0 04 06 80 44 00
29 00 06 A0 04 06 80 04 00
29 00 06 04 05 04 00 00 00
29 00 06 80 04 00 01 02 03
29 00 06 84 04 04 07 05 08
29 00 06 88 04 09 0A 0E 0F
29 00 06 8C 04 0B 0C 0D 10
29 00 06 90 04 16 17 11 12
29 00 06 94 04 13 14 15 1B
29 00 06 98 04 18 19 1A 06
29 00 06 9C 04 31 04 00 00
];
panel-exit-sequence = [
05 05 01 28
05 78 01 10
];
power_ctr: power_ctr {
rockchip,debug = <0>;
lcd_rst: lcd-rst {
gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&lcd_panel_reset>;
rockchip,delay = <120>;
};
};
disp_timings: display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <66866760>;
hactive = <1280>;
vactive = <800>;
hsync-len = <10>;
hback-porch = <2>;
hfront-porch = <30>;
vsync-len = <1>;
vback-porch = <2>;
vfront-porch = <40>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
};
};
};
};
下边为dsi配置的具体分析:
其中reset-gpios按照电路图引脚配置,要搜索一下是否有其他地方占用了这个IO资源,占用的屏蔽掉。
dsi,format输出格式,我的为RGB888。
dsi,lvds-force-clk,屏的频率,800MHz。
dsi,lanes,看电路图,用了几路线,填对应的数。
dsi,channel,看电路用了那个通道。
初始化序列,通过上边说的TC358764_5_774_5XBG_DSI-LVDS_Tv11p_nm 3399.xls生成对应的初始化序列。也可以跟厂家咨询初始化序列。
下边为屏的退出序列和时序配置。
clock-frequency为时钟频率,通过计算得出。
hactive为屏幕长,vactive为屏幕宽,和屏幕尺寸对应,剩下的为留边的长度宽度,如果屏幕有黑边或者少显示,则调整下边的这些参数即可。
修改vopl,vopb,如下图所示
hdmi使用的是vopl,那么dsi使用vopb,如图所示,hdmi_in_vopb为disabled,hdmi_in_vopl为okay,dsi_in_vopl为disabled,dsi_in_vopb为okay。各用一路。
配置好后,重新编译,烧录即可。
如果屏幕没有亮,则应检查以下几项:
1、reset引脚是否对,默认高低电平是否对,是否有其他地方配置该引脚。
2、屏幕初始化序列是否正确。
3、时序配置是否正确,根据屏幕参数进行配置。
4、vopl,vopb的配置是否正确,hdmi使用一路,dsi使用一路。
RK3399的linux系统,配置LVDS屏幕是可以使用的,如果不成功,则检查上述几项,基本就完事了。
遇到的问题:
1、升级后屏幕不亮,但是有背光,通过修改背光的默认值,背光有变化,说明dts的配置是没问题的,只是有某个地方没有配置对。
2、修改vopl,vopb配置后,HDMI无输出,说明配置的dts是正确的。
3、修改reset引脚后,屏幕出现白色,带有竖条纹,说明驱动有,可以使用,只是配置有问题。
4、搜索reset引脚,将其他dtsi中有用到该引脚的地方去掉后,液晶屏点亮。
举报
更多回帖
rotate(-90deg);
回复
相关问答
RK3399
怎样
在
RK3399
去
安装
Ubuntu18.04
系统
呢
2022-03-07
2013
请问
RK3399
Ubuntu18.04
下是否含uac驱动?
2021-12-30
1299
RK3399
核心板
的主要特性有哪些
呢
2022-03-07
1702
RK3399
核心板
在
无人售货机的应用有哪些
呢
2022-03-07
1303
请问一下
怎样
在
RK3399
上去
安装
python opencv
呢
2022-03-07
976
怎样
在
RK3399
-firefly
上
安装
Docker容器
呢
2022-03-07
1879
基于
RK3399
Pro处理器的Firefly
核心板
有哪些优点
呢
2022-02-14
1073
如何制作
rk3399
arm64
ubuntu18.04
根文件
系统
?
2022-03-07
1210
RK3399
在
Android
上
支持屏幕拼接显示吗
2022-02-11
1304
怎样
去解决
RK3399
pro文件会进入不了
Ubuntu
系统
的问题
呢
2022-02-11
2166
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分