瑞芯微Rockchip开发者社区
登录
直播中
李慧
7年用户
857经验值
私信
关注
[问答]
如何编译RK3399?
开启该帖子的消息推送
RK3399
如何编译RK3399?
RK3399编译.pdf
(2022-3-8 10:16 上传)
88.34 KB, 下载次数: 11
回帖
(2)
梁若莲
2022-3-8 11:35:29
编译前准备: 环境搭建
安装openjdk8
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
安装其他依赖库
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev
libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl
libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils
xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev
lib32readline-gplv2-dev gcc-multilib libswitch-perl
sudo apt-get install gcc-arm-linux-gnueabihf
libssl1.0.0 libssl-dev
p7zip-full
安装碰到的问题:
libwxgtk2.8-dev无法安装的解决方法
16.04提供libwxgtk3.0-dev
sudo apt-get install libwxgtk3.0-dev
lib32readline-gplv2-dev无法安装的解决方法
vim /etc/apt/sources.list
结尾添加源地址:deb
http://cz.archive.ubuntu.com/ubuntu
trusty main
执行sudo apt-get update
然后sudo apt-get install lib32readline-gplv2-dev
使用 Firefly 官方脚本编译
单独编译kernel:
./FFTools/make.sh -k -j8
单独编译uboot:
./FFTools/make.sh -u -j8
单独编译android上层:
./FFTools/make.sh -a -j8
同时编译ubooot、kernel、android:
./FFTools/make.sh -j8
手动编译
编译前执行如下命令配置环境变量:可以加到.bashrc里再source一下.
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
编译kernel:
cd ~/proj/firefly-rk3399/kernel/
make ARCH=arm64 firefly_defconfig
make -j8 ARCH=arm64 rk3399-firefly.img
编译uboot:
cd ~/proj/firefly-rk3399/u-boot/
make rk3399_box_defconfig
make ARCHV=aarch64 -j8
编译android:
cd ~/proj/firefly-rk3399/
source build/envsetup.sh
lunch rk3399_firefly_box-userdebug
make -j8
编译tinycap
mmm external/tinyalsa/
编译好后一般在out/target/product/xxx/system/bin/tinycap
编译过程中碰到的问题
0, 编译kernel碰到的问题:
make kernel err
1, --------------------------------------------------------------------------------------------------------------------------------
Makefile:708: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
File "./scripts/gcc-wrapper.py", line 63
print "error, forbidden warning:", m.group(2)
^
SyntaxError: invalid syntax
scripts/kconfig/conf --silentoldconfig Kconfig
Makefile:708: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
File "./scripts/gcc-wrapper.py", line 63
print "error, forbidden warning:", m.group(2)
^
SyntaxError: invalid syntax
CC scripts/mod/empty.o
File "./scripts/gcc-wrapper.py", line 63
print "error, forbidden warning:", m.group(2)
^
SyntaxError: invalid syntax
scripts/Makefile.build:266: recipe for target 'scripts/mod/empty.o' failed
make[2]: *** [scripts/mod/empty.o] Error 1
scripts/Makefile.build:411: recipe for target 'scripts/mod' failed
make[1]: *** [scripts/mod] Error 2
Makefile:573: recipe for target 'scripts' failed
make: *** [scripts] Error 2
解决 =========================================
应该是arm-linux-gcc没有安装或者安装版本低于4.9引起.
重新安装
sudo apt-get install gcc-arm-linux-gnueabihf
同时记得进到kernel目录 , make clean一下.
1, - jdk要用openjdk 8 编译7.1的代码
2, jack-server问题:
参考
在编译7.1.1源码的时候,需要检查一下Jack-Server是否已经安装以及启动。
根据机器的RAM设置Jack-Server的VM大小,我机器是16G内存,所以设置8G左右VM。 修改prebuilts/sdk/tools/jack-admin 文件,找到变量JACK_SERVER_VM_ARGUMENTS位置在后面添加,添加参数 -Xmx8000M
进入prebuilts/sdk/tools 运行以下命令:
$ ./jack-admin start-server
如果提示没有安装的话,则运行以下命令,然后再次运行上面启动jack-server的命令。
$ ./jack-admin install-server jack-launcher.jar jack-server-4.8.ALPHA.jar
3,
参考
ninja: Entering directory `.'
[ 0% 1/48196] Lex: ninja: Entering directory `.'
[ 0% 1/48196] Lex: aidl <= system/tools/aidl/aidl_language_l.ll
FAILED: /bin/bash -c "prebuilts/misc/linux-x86/flex/flex-2.5.39 -oout/host/linux-x86/obj/STATIC_LIBRARIES/libaidl-common_intermediates/aidl_language_l.cpp system/tools/aidl/aidl_language_l.ll"
flex-2.5.39: loadlocale.c:130:_nl_intern_locale_data: ?? 'cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' ???
ninja: build stopped: subcommand failed.
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1
<= system/tools/aidl/aidl_language_l.ll
FAILED: /bin/bash -c "prebuilts/misc/linux-x86/flex/flex-2.5.39 -oout/host/linux-x86/obj/STATIC_LIBRARIES/libaidl-common_intermediates/aidl_language_l.cpp system/tools/aidl/aidl_language_l.ll"
flex-2.5.39: loadlocale.c:130:_nl_intern_locale_data: ?? 'cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' ???
ninja: build stopped: subcommand failed.
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1
去除所有本地化的设置,让命令能正确执行,bash 执行:
export LC_ALL=C
4, 编译tinycap过程出现
mmm external/tinyalsa
Couldn’t locate the directory external/tinyalsa
原因是因为当前shell环境是zsh , 切换到bash即可 , 直接运行bash
然后source build/envsetup.sh 再lunch就可以执行mmm命令.
编译前准备: 环境搭建
安装openjdk8
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
安装其他依赖库
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev
libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl
libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils
xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev
lib32readline-gplv2-dev gcc-multilib libswitch-perl
sudo apt-get install gcc-arm-linux-gnueabihf
libssl1.0.0 libssl-dev
p7zip-full
安装碰到的问题:
libwxgtk2.8-dev无法安装的解决方法
16.04提供libwxgtk3.0-dev
sudo apt-get install libwxgtk3.0-dev
lib32readline-gplv2-dev无法安装的解决方法
vim /etc/apt/sources.list
结尾添加源地址:deb
http://cz.archive.ubuntu.com/ubuntu
trusty main
执行sudo apt-get update
然后sudo apt-get install lib32readline-gplv2-dev
使用 Firefly 官方脚本编译
单独编译kernel:
./FFTools/make.sh -k -j8
单独编译uboot:
./FFTools/make.sh -u -j8
单独编译android上层:
./FFTools/make.sh -a -j8
同时编译ubooot、kernel、android:
./FFTools/make.sh -j8
手动编译
编译前执行如下命令配置环境变量:可以加到.bashrc里再source一下.
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
编译kernel:
cd ~/proj/firefly-rk3399/kernel/
make ARCH=arm64 firefly_defconfig
make -j8 ARCH=arm64 rk3399-firefly.img
编译uboot:
cd ~/proj/firefly-rk3399/u-boot/
make rk3399_box_defconfig
make ARCHV=aarch64 -j8
编译android:
cd ~/proj/firefly-rk3399/
source build/envsetup.sh
lunch rk3399_firefly_box-userdebug
make -j8
编译tinycap
mmm external/tinyalsa/
编译好后一般在out/target/product/xxx/system/bin/tinycap
编译过程中碰到的问题
0, 编译kernel碰到的问题:
make kernel err
1, --------------------------------------------------------------------------------------------------------------------------------
Makefile:708: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
File "./scripts/gcc-wrapper.py", line 63
print "error, forbidden warning:", m.group(2)
^
SyntaxError: invalid syntax
scripts/kconfig/conf --silentoldconfig Kconfig
Makefile:708: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
File "./scripts/gcc-wrapper.py", line 63
print "error, forbidden warning:", m.group(2)
^
SyntaxError: invalid syntax
CC scripts/mod/empty.o
File "./scripts/gcc-wrapper.py", line 63
print "error, forbidden warning:", m.group(2)
^
SyntaxError: invalid syntax
scripts/Makefile.build:266: recipe for target 'scripts/mod/empty.o' failed
make[2]: *** [scripts/mod/empty.o] Error 1
scripts/Makefile.build:411: recipe for target 'scripts/mod' failed
make[1]: *** [scripts/mod] Error 2
Makefile:573: recipe for target 'scripts' failed
make: *** [scripts] Error 2
解决 =========================================
应该是arm-linux-gcc没有安装或者安装版本低于4.9引起.
重新安装
sudo apt-get install gcc-arm-linux-gnueabihf
同时记得进到kernel目录 , make clean一下.
1, - jdk要用openjdk 8 编译7.1的代码
2, jack-server问题:
参考
在编译7.1.1源码的时候,需要检查一下Jack-Server是否已经安装以及启动。
根据机器的RAM设置Jack-Server的VM大小,我机器是16G内存,所以设置8G左右VM。 修改prebuilts/sdk/tools/jack-admin 文件,找到变量JACK_SERVER_VM_ARGUMENTS位置在后面添加,添加参数 -Xmx8000M
进入prebuilts/sdk/tools 运行以下命令:
$ ./jack-admin start-server
如果提示没有安装的话,则运行以下命令,然后再次运行上面启动jack-server的命令。
$ ./jack-admin install-server jack-launcher.jar jack-server-4.8.ALPHA.jar
3,
参考
ninja: Entering directory `.'
[ 0% 1/48196] Lex: ninja: Entering directory `.'
[ 0% 1/48196] Lex: aidl <= system/tools/aidl/aidl_language_l.ll
FAILED: /bin/bash -c "prebuilts/misc/linux-x86/flex/flex-2.5.39 -oout/host/linux-x86/obj/STATIC_LIBRARIES/libaidl-common_intermediates/aidl_language_l.cpp system/tools/aidl/aidl_language_l.ll"
flex-2.5.39: loadlocale.c:130:_nl_intern_locale_data: ?? 'cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' ???
ninja: build stopped: subcommand failed.
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1
<= system/tools/aidl/aidl_language_l.ll
FAILED: /bin/bash -c "prebuilts/misc/linux-x86/flex/flex-2.5.39 -oout/host/linux-x86/obj/STATIC_LIBRARIES/libaidl-common_intermediates/aidl_language_l.cpp system/tools/aidl/aidl_language_l.ll"
flex-2.5.39: loadlocale.c:130:_nl_intern_locale_data: ?? 'cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' ???
ninja: build stopped: subcommand failed.
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1
去除所有本地化的设置,让命令能正确执行,bash 执行:
export LC_ALL=C
4, 编译tinycap过程出现
mmm external/tinyalsa
Couldn’t locate the directory external/tinyalsa
原因是因为当前shell环境是zsh , 切换到bash即可 , 直接运行bash
然后source build/envsetup.sh 再lunch就可以执行mmm命令.
举报
xu_hua
2022-9-19 17:36:33
第0个问题,应该是python版本不对,用的python3 ,而应该用python2
第0个问题,应该是python版本不对,用的python3 ,而应该用python2
举报
更多回帖
rotate(-90deg);
回复
相关问答
RK3399
如何用64位的
rk3399
ARM
编译
器去
编译
C文件呢
2022-02-16
1706
RK3399
平台的OTA升级包
编译
过程是怎样的
2022-03-08
2673
RK3399
Pro 8.1
编译
遇到的问题及其解决办法
2022-02-11
2551
如何对
RK3399
Android7.1进行
编译
呢
2022-03-09
1044
如何对Firefly-
RK3399
Linux内核进行
编译
呢
2022-03-08
1510
如何在Firefly-
RK3399
上
编译
和移植Linux内核和Ubuntu16.04 rootfs?
2022-03-07
2425
如何对Firefly-
RK3399
进行
编译
呢
2022-03-08
1896
RK3399
是什么?
RK3399
的性能有哪些呢
2022-01-14
2482
RK3399
与
RK3399
Pro处理器的性能有何不同
2022-02-10
1864
浅析
RK3399
和
RK3399
Pro处理器性能的区别
2022-02-11
3264
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分